From 87465258abbd1056c8be4e934385d6c7197dc655 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 14 Mar 2014 14:05:38 +0000 Subject: [netdevice] Notify upper-layer drivers when RX processing is (un)frozen Signed-off-by: Michael Brown --- src/net/netdevice.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/net') diff --git a/src/net/netdevice.c b/src/net/netdevice.c index 82d0e82b6..4a42ef42c 100644 --- a/src/net/netdevice.c +++ b/src/net/netdevice.c @@ -108,6 +108,34 @@ static void netdev_notify ( struct net_device *netdev ) { } } +/** + * Freeze network device receive queue processing + * + * @v netdev Network device + */ +void netdev_rx_freeze ( struct net_device *netdev ) { + + /* Mark receive queue processing as frozen */ + netdev->state |= NETDEV_RX_FROZEN; + + /* Notify drivers of change */ + netdev_notify ( netdev ); +} + +/** + * Unfreeze network device receive queue processing + * + * @v netdev Network device + */ +void netdev_rx_unfreeze ( struct net_device *netdev ) { + + /* Mark receive queue processing as not frozen */ + netdev->state &= ~NETDEV_RX_FROZEN; + + /* Notify drivers of change */ + netdev_notify ( netdev ); +} + /** * Mark network device as having a specific link state * -- cgit v1.2.3-55-g7522