sdata->dev = ndev;
}
-@@ -1773,6 +1792,15 @@ int ieee80211_if_add(struct ieee80211_lo
- ieee80211_setup_sdata(sdata, type);
-
- if (ndev) {
-+ struct txq_info *txqi = NULL;
-+
-+ if (local->ops->wake_tx_queue) {
-+ txqi = kzalloc(sizeof(*txqi) +
-+ local->hw.txq_data_size, GFP_KERNEL);
-+ if (txqi)
-+ ieee80211_init_tx_queue(sdata, NULL, txqi, 0);
-+ }
-+
- if (params) {
- ndev->ieee80211_ptr->use_4addr = params->use_4addr;
- if (type == NL80211_IFTYPE_STATION)
-@@ -1785,6 +1813,7 @@ int ieee80211_if_add(struct ieee80211_lo
-
- ret = register_netdevice(ndev);
- if (ret) {
-+ kfree(txqi);
- free_netdev(ndev);
- return ret;
- }
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1019,6 +1019,9 @@ int ieee80211_register_hw(struct ieee802