Merge pull request #194 from 5kft/fix-startup-traps

rtl8192eu: Fix driver startup traps in rtw_cfg80211_ch_switch_notify
This commit is contained in:
Carlos Garcés 2020-08-18 09:46:16 +02:00 committed by GitHub
commit 6d2705d802
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 9 deletions

View File

@ -1784,7 +1784,7 @@ chbw_decision:
, pdvobj->padapters[i]->mlmeextpriv.cur_channel
, pdvobj->padapters[i]->mlmeextpriv.cur_bwmode
, pdvobj->padapters[i]->mlmeextpriv.cur_ch_offset
, ht_option);
, ht_option, 0);
}
}
#endif /* defined(CONFIG_IOCTL_CFG80211) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)) */

View File

@ -16096,7 +16096,7 @@ void rtw_join_done_chk_ch(_adapter *adapter, int join_res)
rtw_cfg80211_ch_switch_notify(iface
, mlmeext->cur_channel, mlmeext->cur_bwmode, mlmeext->cur_ch_offset
, ht_option);
, ht_option, 0);
#endif
}
}
@ -16314,7 +16314,7 @@ exit:
the bss freq is updated by channel switch event.
*/
rtw_cfg80211_ch_switch_notify(adapter,
cur_ch, cur_bw, cur_ch_offset, ht_option);
cur_ch, cur_bw, cur_ch_offset, ht_option, 1);
}
#endif
}

View File

@ -424,21 +424,29 @@ bool rtw_cfg80211_allow_ch_switch_notify(_adapter *adapter)
return 1;
}
u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht)
u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset,
u8 ht, bool started)
{
struct wiphy *wiphy = adapter_to_wiphy(adapter);
u8 ret = _SUCCESS;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
struct cfg80211_chan_def chdef;
if (!rtw_cfg80211_allow_ch_switch_notify(adapter))
goto exit;
struct cfg80211_chan_def chdef = {};
ret = rtw_chbw_to_cfg80211_chan_def(wiphy, &chdef, ch, bw, offset, ht);
if (ret != _SUCCESS)
goto exit;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0))
if (started) {
cfg80211_ch_switch_started_notify(adapter->pnetdev, &chdef, 0);
goto exit;
}
#endif
if (!rtw_cfg80211_allow_ch_switch_notify(adapter))
goto exit;
cfg80211_ch_switch_notify(adapter->pnetdev, &chdef);
#else

View File

@ -407,7 +407,7 @@ void rtw_cfg80211_deinit_rfkill(struct wiphy *wiphy);
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0))
u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht);
u8 rtw_cfg80211_ch_switch_notify(_adapter *adapter, u8 ch, u8 bw, u8 offset, u8 ht, bool started);
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0))