Browse Source

wl12xx: don't fail on AP scan

AP role uses its own role_id for scans, so there's
no reason to fail the scan if dev_role_id is invalid.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Eliad Peller 13 years ago
parent
commit
35d7742ff3
1 changed files with 7 additions and 6 deletions
  1. 7 6
      drivers/net/wireless/wl12xx/scan.c

+ 7 - 6
drivers/net/wireless/wl12xx/scan.c

@@ -175,16 +175,17 @@ static int wl1271_scan_send(struct wl1271 *wl, struct ieee80211_vif *vif,
 	if (passive)
 		scan_options |= WL1271_SCAN_OPT_PASSIVE;
 
-	if (WARN_ON(wlvif->role_id == WL12XX_INVALID_ROLE_ID ||
-		    wlvif->dev_role_id == WL12XX_INVALID_ROLE_ID)) {
-		ret = -EINVAL;
-		goto out;
-	}
-	if (test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags))
+	if (wlvif->bss_type == BSS_TYPE_AP_BSS ||
+	    test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags))
 		cmd->params.role_id = wlvif->role_id;
 	else
 		cmd->params.role_id = wlvif->dev_role_id;
 
+	if (WARN_ON(cmd->params.role_id == WL12XX_INVALID_ROLE_ID)) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	cmd->params.scan_options = cpu_to_le16(scan_options);
 
 	cmd->params.n_ch = wl1271_get_scan_channels(wl, wl->scan.req,