|
@@ -399,30 +399,6 @@ static int ieee80211_ifa6_changed(struct notifier_block *nb,
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-static int ieee80211_napi_poll(struct napi_struct *napi, int budget)
|
|
|
-{
|
|
|
- struct ieee80211_local *local =
|
|
|
- container_of(napi, struct ieee80211_local, napi);
|
|
|
-
|
|
|
- return local->ops->napi_poll(&local->hw, budget);
|
|
|
-}
|
|
|
-
|
|
|
-void ieee80211_napi_schedule(struct ieee80211_hw *hw)
|
|
|
-{
|
|
|
- struct ieee80211_local *local = hw_to_local(hw);
|
|
|
-
|
|
|
- napi_schedule(&local->napi);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ieee80211_napi_schedule);
|
|
|
-
|
|
|
-void ieee80211_napi_complete(struct ieee80211_hw *hw)
|
|
|
-{
|
|
|
- struct ieee80211_local *local = hw_to_local(hw);
|
|
|
-
|
|
|
- napi_complete(&local->napi);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ieee80211_napi_complete);
|
|
|
-
|
|
|
/* There isn't a lot of sense in it, but you can transmit anything you like */
|
|
|
static const struct ieee80211_txrx_stypes
|
|
|
ieee80211_default_mgmt_stypes[NUM_NL80211_IFTYPES] = {
|
|
@@ -686,9 +662,6 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
|
|
|
skb_queue_head_init(&local->skb_queue);
|
|
|
skb_queue_head_init(&local->skb_queue_unreliable);
|
|
|
|
|
|
- /* init dummy netdev for use w/ NAPI */
|
|
|
- init_dummy_netdev(&local->napi_dev);
|
|
|
-
|
|
|
ieee80211_led_names(local);
|
|
|
|
|
|
ieee80211_roc_setup(local);
|
|
@@ -1043,9 +1016,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
|
|
goto fail_ifa6;
|
|
|
#endif
|
|
|
|
|
|
- netif_napi_add(&local->napi_dev, &local->napi, ieee80211_napi_poll,
|
|
|
- local->hw.napi_weight);
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
#if IS_ENABLED(CONFIG_IPV6)
|