Commit 5138e86f authored by Vlad Yasevich's avatar Vlad Yasevich Committed by David S. Miller

rtnetlink: Convert rtnetlink_event to white list

The rtnetlink_event currently functions as a blacklist where
we block cerntain netdev events from being sent to user space.
As a result, events have been added to the system that userspace
probably doesn't care about.

This patch converts the implementation to the white list so that
newly events would have to be specifically added to the list to
be sent to userspace.  This would force new event implementers to
consider whether a given event is usefull to user space or if it's
just a kernel event.
Signed-off-by: default avatarVladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 589c49cb
...@@ -4116,22 +4116,25 @@ static int rtnetlink_event(struct notifier_block *this, unsigned long event, voi ...@@ -4116,22 +4116,25 @@ static int rtnetlink_event(struct notifier_block *this, unsigned long event, voi
struct net_device *dev = netdev_notifier_info_to_dev(ptr); struct net_device *dev = netdev_notifier_info_to_dev(ptr);
switch (event) { switch (event) {
case NETDEV_UP: case NETDEV_REBOOT:
case NETDEV_DOWN: case NETDEV_CHANGEMTU:
case NETDEV_PRE_UP: case NETDEV_CHANGEADDR:
case NETDEV_POST_INIT: case NETDEV_CHANGENAME:
case NETDEV_REGISTER: case NETDEV_FEAT_CHANGE:
case NETDEV_CHANGE: case NETDEV_BONDING_FAILOVER:
case NETDEV_PRE_TYPE_CHANGE: case NETDEV_POST_TYPE_CHANGE:
case NETDEV_GOING_DOWN: case NETDEV_NOTIFY_PEERS:
case NETDEV_UNREGISTER: case NETDEV_CHANGEUPPER:
case NETDEV_UNREGISTER_FINAL: case NETDEV_RESEND_IGMP:
case NETDEV_RELEASE: case NETDEV_PRECHANGEMTU:
case NETDEV_JOIN: case NETDEV_CHANGEINFODATA:
case NETDEV_BONDING_INFO: case NETDEV_PRECHANGEUPPER:
case NETDEV_CHANGELOWERSTATE:
case NETDEV_UDP_TUNNEL_PUSH_INFO:
case NETDEV_CHANGE_TX_QUEUE_LEN:
rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL);
break; break;
default: default:
rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL);
break; break;
} }
return NOTIFY_DONE; return NOTIFY_DONE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment