net: bridge: move bridge ioctls out of .ndo_do_ioctl
Working towards obsoleting the .ndo_do_ioctl operation entirely, stop passing the SIOCBRADDIF/SIOCBRDELIF device ioctl commands into this callback. My first attempt was to add another ndo_siocbr() callback, but as there is only a single driver that takes these commands and there is already a hook mechanism to call directly into this driver, extend this hook instead, and use it for both the deviceless and the device specific ioctl commands. Cc: Roopa Prabhu <roopa@nvidia.com> Cc: Nikolay Aleksandrov <nikolay@nvidia.com> Cc: bridge@lists.linux-foundation.org Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
88fc023f7d
commit
ad2f99aedf
@@ -6,6 +6,7 @@
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/net_tstamp.h>
|
||||
#include <linux/wireless.h>
|
||||
#include <linux/if_bridge.h>
|
||||
#include <net/dsa.h>
|
||||
#include <net/wext.h>
|
||||
|
||||
@@ -374,6 +375,12 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, void __user *data,
|
||||
case SIOCWANDEV:
|
||||
return dev_siocwandev(dev, &ifr->ifr_settings);
|
||||
|
||||
case SIOCBRADDIF:
|
||||
case SIOCBRDELIF:
|
||||
if (!netif_device_present(dev))
|
||||
return -ENODEV;
|
||||
return br_ioctl_call(net, netdev_priv(dev), cmd, ifr, NULL);
|
||||
|
||||
case SIOCSHWTSTAMP:
|
||||
err = net_hwtstamp_validate(ifr);
|
||||
if (err)
|
||||
@@ -399,9 +406,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, void __user *data,
|
||||
cmd == SIOCBONDSETHWADDR ||
|
||||
cmd == SIOCBONDSLAVEINFOQUERY ||
|
||||
cmd == SIOCBONDINFOQUERY ||
|
||||
cmd == SIOCBONDCHANGEACTIVE ||
|
||||
cmd == SIOCBRADDIF ||
|
||||
cmd == SIOCBRDELIF) {
|
||||
cmd == SIOCBONDCHANGEACTIVE) {
|
||||
err = dev_do_ioctl(dev, ifr, cmd);
|
||||
} else
|
||||
err = -EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user