Re: BUG: Bad page map in process udevd (anon_vma: (null)) in2.6.38-rc4

From: David Miller
Date: Sun Feb 20 2011 - 14:53:26 EST


From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 19 Feb 2011 22:15:23 -0800

> So unregister_netdevice_many() should always return with the list
> empty and destroyed. There is no valid use of a list of netdevices
> after you've unregistered them.
>
> Now, dev_deactivate_many() actually has uses of that list after
> they've been de-activated (__dev_close_many will deactivate them, and
> then after that do the whole ndo_stop dance too, so I guess all (two)
> callers of that function need to get rid of their list manually. So I
> think your patch to sch_generic.c is good, but I really think the
> semantics of unregister_netdevice_many() should just be changed.

The key, as Eric D. mentioned, is the moment we changed the "scope" of
this list.

Previously all manipulations and use were guareded entirely inside of
holding the RTNL mutex.

The commit that introduced this regression allowed the list to be
"live" across RTNL mutex drop/re-grab.

Anyways, Eric B.'s patch (which I've just added to net-2.6) should
handle the known remaining cases, and as Eric D. said we should do one
more audit to make sure we got them all now.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/