wil6210: treat broadcast bssid as "disconnect all"
Hostapd request disconnect for broadcast bssid when it wants to disconnect all stations from the AP. Detect this and really disconnect all connected stations. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
6cc6c46838
commit
68682b4108
|
@ -203,11 +203,13 @@ static void _wil6210_disconnect(struct wil6210_priv *wil, const u8 *bssid,
|
||||||
* - disconnect single STA, already disconnected
|
* - disconnect single STA, already disconnected
|
||||||
* - disconnect all
|
* - disconnect all
|
||||||
*
|
*
|
||||||
* For "disconnect all", there are 2 options:
|
* For "disconnect all", there are 3 options:
|
||||||
* - bssid == NULL
|
* - bssid == NULL
|
||||||
|
* - bssid is broadcast address (ff:ff:ff:ff:ff:ff)
|
||||||
* - bssid is our MAC address
|
* - bssid is our MAC address
|
||||||
*/
|
*/
|
||||||
if (bssid && memcmp(ndev->dev_addr, bssid, ETH_ALEN)) {
|
if (bssid && !is_broadcast_ether_addr(bssid) &&
|
||||||
|
!ether_addr_equal_unaligned(ndev->dev_addr, bssid)) {
|
||||||
cid = wil_find_cid(wil, bssid);
|
cid = wil_find_cid(wil, bssid);
|
||||||
wil_dbg_misc(wil, "Disconnect %pM, CID=%d, reason=%d\n",
|
wil_dbg_misc(wil, "Disconnect %pM, CID=%d, reason=%d\n",
|
||||||
bssid, cid, reason_code);
|
bssid, cid, reason_code);
|
||||||
|
|
Loading…
Reference in New Issue