From f7ae58b7f5cda70ee6c295cd498a58bb7ccd6c11 Mon Sep 17 00:00:00 2001 From: Ganapathi Kondraju Date: Wed, 16 Oct 2019 15:03:17 +0530 Subject: [PATCH] [OEM-B] rsi: fix for fw assert during bg-scan 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 --- drivers/net/wireless/rsi/rsi_91x_mgmt.c | 13 +++++++++---- 1 file changed, 9 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..2d0b689c67f9 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 | @@ -2003,6 +2003,7 @@ int rsi_send_bgscan_probe_req(struct rsi_common *common) u16 frame_len = sizeof(*bgscan); u16 len = MAX_BGSCAN_PROBE_REQ_LEN; u16 pbreq_len = 0; + int status; rsi_dbg(MGMT_TX_ZONE, "%s: Sending bgscan probe req frame\n", __func__); @@ -2025,9 +2026,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