hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
....@@ -275,14 +275,13 @@
275275 }
276276 }
277277
278
-/**
278
+/*
279279 * This function frees the WL per-device resources.
280280 *
281281 * This function frees resources owned by the WL device pointed to
282282 * by the wl parameter.
283283 *
284284 * precondition: can both be called locked and unlocked
285
- *
286285 */
287286 static void brcms_free(struct brcms_info *wl)
288287 {
....@@ -850,8 +849,7 @@
850849 "START: tid %d is not agg\'able\n", tid);
851850 return -EINVAL;
852851 }
853
- ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
854
- break;
852
+ return IEEE80211_AMPDU_TX_START_IMMEDIATE;
855853
856854 case IEEE80211_AMPDU_TX_STOP_CONT:
857855 case IEEE80211_AMPDU_TX_STOP_FLUSH:
....@@ -983,11 +981,11 @@
983981 .set_tim = brcms_ops_beacon_set_tim,
984982 };
985983
986
-void brcms_dpc(unsigned long data)
984
+void brcms_dpc(struct tasklet_struct *t)
987985 {
988986 struct brcms_info *wl;
989987
990
- wl = (struct brcms_info *) data;
988
+ wl = from_tasklet(wl, t, tasklet);
991989
992990 spin_lock_bh(&wl->lock);
993991
....@@ -1116,7 +1114,7 @@
11161114 return ieee_hw_rate_init(hw);
11171115 }
11181116
1119
-/**
1117
+/*
11201118 * attach to the WL device.
11211119 *
11221120 * Attach to the WL device identified by vendor and device parameters.
....@@ -1150,7 +1148,7 @@
11501148 init_waitqueue_head(&wl->tx_flush_wq);
11511149
11521150 /* setup the bottom half handler */
1153
- tasklet_init(&wl->tasklet, brcms_dpc, (unsigned long) wl);
1151
+ tasklet_setup(&wl->tasklet, brcms_dpc);
11541152
11551153 spin_lock_init(&wl->lock);
11561154 spin_lock_init(&wl->isr_lock);
....@@ -1211,7 +1209,7 @@
12111209
12121210
12131211
1214
-/**
1212
+/*
12151213 * determines if a device is a WL device, and if so, attaches it.
12161214 *
12171215 * This function determines if a device pointed to by pdev is a WL device,
....@@ -1297,7 +1295,7 @@
12971295 .id_table = brcms_coreid_table,
12981296 };
12991297
1300
-/**
1298
+/*
13011299 * This is the main entry point for the brcmsmac driver.
13021300 *
13031301 * This function is scheduled upon module initialization and
....@@ -1324,7 +1322,7 @@
13241322 return 0;
13251323 }
13261324
1327
-/**
1325
+/*
13281326 * This function unloads the brcmsmac driver from the system.
13291327 *
13301328 * This function unconditionally unloads the brcmsmac driver module from the
....@@ -1438,6 +1436,7 @@
14381436 * precondition: perimeter lock has been acquired
14391437 */
14401438 void brcms_down(struct brcms_info *wl)
1439
+ __must_hold(&wl->lock)
14411440 {
14421441 uint callbacks, ret_val = 0;
14431442
....@@ -1724,6 +1723,7 @@
17241723 * precondition: perimeter lock has been acquired
17251724 */
17261725 bool brcms_rfkill_set_hw_state(struct brcms_info *wl)
1726
+ __must_hold(&wl->lock)
17271727 {
17281728 bool blocked = brcms_c_check_radio_disabled(wl->wlc);
17291729