net: Fix userspace RTM_NEWLINK notifications.
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 12 Dec 2009 22:11:15 +0000 (22:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Dec 2009 03:45:22 +0000 (19:45 -0800)
commitd90a909e1f3e006a1d57fe11fd417173b6494701
tree72893da9ed5083b44dbb8d778d648e114d351a0a
parent5781b2356cbecb0b73b06ec8c3897cabdfdd0928
net: Fix userspace RTM_NEWLINK notifications.

I received some bug reports about userspace programs having problems
because after RTM_NEWLINK was received they could not immediate access
files under /proc/sys/net/ because they had not been registered yet.

The original problem was trivially fixed by moving the userspace
notification from rtnetlink_event() to the end of
register_netdevice().

When testing that change I discovered I was still getting RTM_NEWLINK
events before I could access proc and I was also getting RTM_NEWLINK
events after I was seeing RTM_DELLINK.  Things practically guaranteed
to confuse userspace.

After a little more investigation these extra notifications proved to
be from the new notifiers NETDEV_POST_INIT and NETDEV_UNREGISTER_BATCH
hitting the default case in rtnetlink_event, and triggering
unnecessary RTM_NEWLINK messages.

rtnetlink_event now explicitly handles NETDEV_UNREGISTER_BATCH and
NETDEV_POST_INIT to avoid sending the incorrect userspace
notifications.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c
net/core/rtnetlink.c