bridge: Partially disable netpoll support
The new netpoll code in bridging contains use-after-free bugs that are non-trivial to fix. This patch fixes this by removing the code that uses skbs after they're freed. As a consequence, this means that we can no longer call bridge from the netpoll path, so this patch also removes the controller function in order to disable netpoll. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Thanks, Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
45e77d3145
commit
573201f36f
@@ -217,14 +217,6 @@ static bool br_devices_support_netpoll(struct net_bridge *br)
|
||||
return count != 0 && ret;
|
||||
}
|
||||
|
||||
static void br_poll_controller(struct net_device *br_dev)
|
||||
{
|
||||
struct netpoll *np = br_dev->npinfo->netpoll;
|
||||
|
||||
if (np->real_dev != br_dev)
|
||||
netpoll_poll_dev(np->real_dev);
|
||||
}
|
||||
|
||||
void br_netpoll_cleanup(struct net_device *dev)
|
||||
{
|
||||
struct net_bridge *br = netdev_priv(dev);
|
||||
@@ -295,7 +287,6 @@ static const struct net_device_ops br_netdev_ops = {
|
||||
.ndo_do_ioctl = br_dev_ioctl,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_netpoll_cleanup = br_netpoll_cleanup,
|
||||
.ndo_poll_controller = br_poll_controller,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user