mwifiex: use get_random_mask_addr() helper
authorGanapathi Bhat <gbhat@marvell.com>
Mon, 18 Sep 2017 07:42:17 +0000 (13:12 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 20 Sep 2017 12:48:34 +0000 (15:48 +0300)
Avoid calculating random MAC address in driver. Instead make
use of 'get_random_mask_addr()' function.

Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/cfg80211.c

index f28040c..ac01af4 100644 (file)
@@ -2503,6 +2503,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
        struct ieee80211_channel *chan;
        struct ieee_types_header *ie;
        struct mwifiex_user_scan_cfg *user_scan_cfg;
+       u8 mac_addr[ETH_ALEN];
 
        mwifiex_dbg(priv->adapter, CMD,
                    "info: received scan request on %s\n", dev->name);
@@ -2529,12 +2530,10 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
        priv->scan_request = request;
 
        if (request->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
-               for (i = 0; i < ETH_ALEN; i++) {
-                       request->mac_addr[i] &= request->mac_addr_mask[i];
-                       request->mac_addr[i] |=
-                               get_random_int() & ~(request->mac_addr_mask[i]);
-               }
-               ether_addr_copy(user_scan_cfg->random_mac, request->mac_addr);
+               get_random_mask_addr(mac_addr, request->mac_addr,
+                                    request->mac_addr_mask);
+               ether_addr_copy(request->mac_addr, mac_addr);
+               ether_addr_copy(user_scan_cfg->random_mac, mac_addr);
        }
 
        user_scan_cfg->num_ssids = request->n_ssids;