mac80211: support use of NAPI for bottom-half processing
This patch implement basic infrastructure to support use of NAPI by mac80211-based hardware drivers. Because mac80211 devices can support multiple netdevs, a dummy netdev is used for interfacing with the NAPI code in the core of the network stack. That structure is hidden from the hardware drivers, but the actual napi_struct is exposed in the ieee80211_hw structure so that the poll routines in drivers can retrieve that structure. Hardware drivers can also specify their own weight value for NAPI polling. Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
@@ -187,6 +187,8 @@ static int ieee80211_open(struct net_device *dev)
|
||||
res = drv_start(local);
|
||||
if (res)
|
||||
goto err_del_bss;
|
||||
if (local->ops->napi_poll)
|
||||
napi_enable(&local->napi);
|
||||
/* we're brought up, everything changes */
|
||||
hw_reconf_flags = ~0;
|
||||
ieee80211_led_radio(local, true);
|
||||
@@ -519,6 +521,8 @@ static int ieee80211_stop(struct net_device *dev)
|
||||
ieee80211_recalc_ps(local, -1);
|
||||
|
||||
if (local->open_count == 0) {
|
||||
if (local->ops->napi_poll)
|
||||
napi_disable(&local->napi);
|
||||
ieee80211_clear_tx_pending(local);
|
||||
ieee80211_stop_device(local);
|
||||
|
||||
|
Reference in New Issue
Block a user