File: 23-wl-Avoid-disconnecting-invalid-interface.patch

package info (click to toggle)
broadcom-sta 6.30.223.271-23
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm
  • size: 17,716 kB
  • sloc: ansic: 27,414; makefile: 316; xml: 18; sh: 14
file content (33 lines) | stat: -rw-r--r-- 1,120 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From: Diego Escalante Urrelo <diegoe@gnome.org>
Date: Tue, 28 Jul 2020 13:59:56 -0500
Subject: wl: Avoid disconnecting invalid interface

Mimic brcmfmac driver and don't try to call WLC_DISASSOC on an invalid
interface.
---
 amd64/src/wl/sys/wl_cfg80211_hybrid.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/amd64/src/wl/sys/wl_cfg80211_hybrid.c b/amd64/src/wl/sys/wl_cfg80211_hybrid.c
index 195c0e4..1801f70 100644
--- a/amd64/src/wl/sys/wl_cfg80211_hybrid.c
+++ b/amd64/src/wl/sys/wl_cfg80211_hybrid.c
@@ -1065,14 +1065,15 @@ wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_c
 	WL_DBG(("Reason %d\n", reason_code));
 
 	if (wl->profile->active) {
-		scbval.val = reason_code;
 		memcpy(&scbval.ea, &wl->bssid, ETHER_ADDR_LEN);
-		scbval.val = htod32(scbval.val);
-		err = wl_dev_ioctl(dev, WLC_DISASSOC, &scbval, sizeof(scb_val_t));
+		scbval.val = htod32(reason_code);
+		err = wl_dev_ioctl(dev, WLC_DISASSOC, &scbval, sizeof(scbval));
 		if (err) {
 			WL_ERR(("error (%d)\n", err));
 			return err;
 		}
+	} else {
+	    return -EIO;
 	}
 
 	return err;