diff options
Diffstat (limited to 'drivers/net/wireless/libertas/scan.c')
-rw-r--r-- | drivers/net/wireless/libertas/scan.c | 10 |
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)) { |