[PATCH] [OEM-B] rsi: fix for fw assert during bg-scan
Ganapathi Kondraju
ganapathirajukondraju at gmail.com
Wed Oct 16 11:49:18 UTC 2019
BugLink: http://bugs.launchpad.net/bugs/1848318
issue: Observed firmware assert while performing background scan.
root cause: there is a redundant null check for ssid info while preparing
probe request in background scan case, which blocks the probe request pkt
length updation, leads to assert no-71(if probe-req-length is 0 or greater
the max probe length 120) in firmware.
Signed-off-by: Ganapathi Kondraju <ganapathirajukondraju at gmail.com>
---
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/rsi/rsi_91x_mgmt.c b/drivers/net/wireless/rsi/rsi_91x_mgmt.c
index 5590a35c7559..e1e4c74b908b 100644
--- a/drivers/net/wireless/rsi/rsi_91x_mgmt.c
+++ b/drivers/net/wireless/rsi/rsi_91x_mgmt.c
@@ -1823,7 +1823,7 @@ int rsi_prepare_probe_request(struct rsi_common *common,
return -EINVAL;
ssid_info = &scan_req->ssids[n_ssid];
if (!ssid_info)
- return -EINVAL;
+ rsi_dbg(INFO_ZONE, "%s: No ssid info\n" __func__);
hdr = (struct ieee80211_hdr *)pbreq;
hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
@@ -2025,9 +2025,13 @@ int rsi_send_bgscan_probe_req(struct rsi_common *common)
bgscan->channel_scan_time = cpu_to_le16(RSI_CHANNEL_SCAN_TIME);
/* Append dot11 probe request */
- rsi_prepare_probe_request(common, scan_req, 0, 0,
- &skb->data[frame_len],
- &pbreq_len);
+ status = rsi_prepare_probe_request(common, scan_req, 0, 0,
+ &skb->data[frame_len],
+ &pbreq_len);
+ if (status) {
+ rsi_dbg(ERR_ZONE, "Failed to prepare bgscan probe req\n");
+ return status;
+ }
bgscan->probe_req_length = cpu_to_le16(pbreq_len);
rsi_set_len_qno(&bgscan->desc_dword0.len_qno,
--
2.17.1
More information about the kernel-team
mailing list