Skip to content

Commit bb446c1

Browse files
congwangdavem330
authored andcommitted
veth: add netpoll support
It is trivial to add netpoll support to veth, since it is not a stacked device, we don't need to setup and clean up netpoll. Reported-by: Stefan Priebe <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Neil Horman <[email protected]> Acked-by: Neil Horman <[email protected]> Signed-off-by: Cong Wang <[email protected]> Acked-by: Neil Horman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 13ec7a6 commit bb446c1

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

drivers/net/veth.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,21 @@ static void veth_dev_free(struct net_device *dev)
248248
free_netdev(dev);
249249
}
250250

251+
#ifdef CONFIG_NET_POLL_CONTROLLER
252+
static void veth_poll_controller(struct net_device *dev)
253+
{
254+
/* veth only receives frames when its peer sends one
255+
* Since it's a synchronous operation, we are guaranteed
256+
* never to have pending data when we poll for it so
257+
* there is nothing to do here.
258+
*
259+
* We need this though so netpoll recognizes us as an interface that
260+
* supports polling, which enables bridge devices in virt setups to
261+
* still use netconsole
262+
*/
263+
}
264+
#endif /* CONFIG_NET_POLL_CONTROLLER */
265+
251266
static const struct net_device_ops veth_netdev_ops = {
252267
.ndo_init = veth_dev_init,
253268
.ndo_open = veth_open,
@@ -257,6 +272,9 @@ static const struct net_device_ops veth_netdev_ops = {
257272
.ndo_get_stats64 = veth_get_stats64,
258273
.ndo_set_rx_mode = veth_set_multicast_list,
259274
.ndo_set_mac_address = eth_mac_addr,
275+
#ifdef CONFIG_NET_POLL_CONTROLLER
276+
.ndo_poll_controller = veth_poll_controller,
277+
#endif
260278
};
261279

262280
#define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | \

0 commit comments

Comments
 (0)