.. | .. |
---|
291 | 291 | } |
---|
292 | 292 | |
---|
293 | 293 | if (!test_bit(WLAN_ENABLED, &vif->flags)) { |
---|
294 | | - ath6kl_err("wlan disabled\n"); |
---|
| 294 | + ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "wlan disabled\n"); |
---|
295 | 295 | return false; |
---|
296 | 296 | } |
---|
297 | 297 | |
---|
.. | .. |
---|
1322 | 1322 | struct ath6kl_vif *vif = netdev_priv(ndev); |
---|
1323 | 1323 | struct ath6kl_key *key = NULL; |
---|
1324 | 1324 | u8 key_usage; |
---|
1325 | | - enum crypto_type key_type = NONE_CRYPT; |
---|
| 1325 | + enum ath6kl_crypto_type key_type = NONE_CRYPT; |
---|
1326 | 1326 | |
---|
1327 | 1327 | ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: index %d\n", __func__, key_index); |
---|
1328 | 1328 | |
---|
.. | .. |
---|
2194 | 2194 | if (!in_dev) |
---|
2195 | 2195 | return 0; |
---|
2196 | 2196 | |
---|
2197 | | - ifa = in_dev->ifa_list; |
---|
| 2197 | + ifa = rtnl_dereference(in_dev->ifa_list); |
---|
2198 | 2198 | memset(&ips, 0, sizeof(ips)); |
---|
2199 | 2199 | |
---|
2200 | 2200 | /* Configure IP addr only if IP address count < MAX_IP_ADDRS */ |
---|
2201 | 2201 | while (index < MAX_IP_ADDRS && ifa) { |
---|
2202 | 2202 | ips[index] = ifa->ifa_local; |
---|
2203 | | - ifa = ifa->ifa_next; |
---|
| 2203 | + ifa = rtnl_dereference(ifa->ifa_next); |
---|
2204 | 2204 | index++; |
---|
2205 | 2205 | } |
---|
2206 | 2206 | |
---|
.. | .. |
---|
3249 | 3249 | return 0; |
---|
3250 | 3250 | } |
---|
3251 | 3251 | |
---|
3252 | | -static void ath6kl_mgmt_frame_register(struct wiphy *wiphy, |
---|
3253 | | - struct wireless_dev *wdev, |
---|
3254 | | - u16 frame_type, bool reg) |
---|
| 3252 | +static void ath6kl_update_mgmt_frame_registrations(struct wiphy *wiphy, |
---|
| 3253 | + struct wireless_dev *wdev, |
---|
| 3254 | + struct mgmt_frame_regs *upd) |
---|
3255 | 3255 | { |
---|
3256 | 3256 | struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev); |
---|
3257 | 3257 | |
---|
3258 | | - ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: frame_type=0x%x reg=%d\n", |
---|
3259 | | - __func__, frame_type, reg); |
---|
3260 | | - if (frame_type == IEEE80211_STYPE_PROBE_REQ) { |
---|
3261 | | - /* |
---|
3262 | | - * Note: This notification callback is not allowed to sleep, so |
---|
3263 | | - * we cannot send WMI_PROBE_REQ_REPORT_CMD here. Instead, we |
---|
3264 | | - * hardcode target to report Probe Request frames all the time. |
---|
3265 | | - */ |
---|
3266 | | - vif->probe_req_report = reg; |
---|
3267 | | - } |
---|
| 3258 | + /* |
---|
| 3259 | + * FIXME: send WMI_PROBE_REQ_REPORT_CMD here instead of hardcoding |
---|
| 3260 | + * the reporting in the target all the time, this callback |
---|
| 3261 | + * *is* allowed to sleep after all. |
---|
| 3262 | + */ |
---|
| 3263 | + vif->probe_req_report = |
---|
| 3264 | + upd->interface_stypes & BIT(IEEE80211_STYPE_PROBE_REQ >> 4); |
---|
3268 | 3265 | } |
---|
3269 | 3266 | |
---|
3270 | 3267 | static int ath6kl_cfg80211_sscan_start(struct wiphy *wiphy, |
---|
.. | .. |
---|
3464 | 3461 | .remain_on_channel = ath6kl_remain_on_channel, |
---|
3465 | 3462 | .cancel_remain_on_channel = ath6kl_cancel_remain_on_channel, |
---|
3466 | 3463 | .mgmt_tx = ath6kl_mgmt_tx, |
---|
3467 | | - .mgmt_frame_register = ath6kl_mgmt_frame_register, |
---|
| 3464 | + .update_mgmt_frame_registrations = |
---|
| 3465 | + ath6kl_update_mgmt_frame_registrations, |
---|
3468 | 3466 | .get_antenna = ath6kl_get_antenna, |
---|
3469 | 3467 | .sched_scan_start = ath6kl_cfg80211_sscan_start, |
---|
3470 | 3468 | .sched_scan_stop = ath6kl_cfg80211_sscan_stop, |
---|
.. | .. |
---|
3899 | 3897 | switch (ar->hw.cap) { |
---|
3900 | 3898 | case WMI_11AN_CAP: |
---|
3901 | 3899 | ht = true; |
---|
3902 | | - /* fall through */ |
---|
| 3900 | + fallthrough; |
---|
3903 | 3901 | case WMI_11A_CAP: |
---|
3904 | 3902 | band_5gig = true; |
---|
3905 | 3903 | break; |
---|
3906 | 3904 | case WMI_11GN_CAP: |
---|
3907 | 3905 | ht = true; |
---|
3908 | | - /* fall through */ |
---|
| 3906 | + fallthrough; |
---|
3909 | 3907 | case WMI_11G_CAP: |
---|
3910 | 3908 | band_2gig = true; |
---|
3911 | 3909 | break; |
---|
3912 | 3910 | case WMI_11AGN_CAP: |
---|
3913 | 3911 | ht = true; |
---|
3914 | | - /* fall through */ |
---|
| 3912 | + fallthrough; |
---|
3915 | 3913 | case WMI_11AG_CAP: |
---|
3916 | 3914 | band_2gig = true; |
---|
3917 | 3915 | band_5gig = true; |
---|