aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/libertas/scan.c')
-rw-r--r--drivers/net/wireless/libertas/scan.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index 2d6bc7811b27..a98feedf001c 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -1099,6 +1099,12 @@ static int libertas_process_bss(struct bss_descriptor * bss,
1099 memcpy(bss->wpa_ie, elem, bss->wpa_ie_len); 1099 memcpy(bss->wpa_ie, elem, bss->wpa_ie_len);
1100 lbs_dbg_hex("process_bss: WPA IE", bss->wpa_ie, 1100 lbs_dbg_hex("process_bss: WPA IE", bss->wpa_ie,
1101 elem->len); 1101 elem->len);
1102 } else if (elem->len >= MARVELL_MESH_IE_LENGTH &&
1103 elem->data[0] == 0x00 &&
1104 elem->data[1] == 0x50 &&
1105 elem->data[2] == 0x43 &&
1106 elem->data[3] == 0x04) {
1107 bss->mesh = 1;
1102 } 1108 }
1103 break; 1109 break;
1104 1110
@@ -1611,6 +1617,10 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
1611 break; 1617 break;
1612 } 1618 }
1613 1619
1620 /* For mesh device, list only mesh networks */
1621 if (dev == priv->mesh_dev && !iter_bss->mesh)
1622 continue;
1623
1614 /* Prune old an old scan result */ 1624 /* Prune old an old scan result */
1615 stale_time = iter_bss->last_scanned + DEFAULT_MAX_SCAN_AGE; 1625 stale_time = iter_bss->last_scanned + DEFAULT_MAX_SCAN_AGE;
1616 if (time_after(jiffies, stale_time)) { 1626 if (time_after(jiffies, stale_time)) {