diff mbox series

[3/8] staging: wilc1000: refactor get_bssid() function

Message ID 1541090691-31928-4-git-send-email-ajay.kathat@microchip.com (mailing list archive)
State Not Applicable
Delegated to: Kalle Valo
Headers show
Series staging: wilc1000: make use of cfg80211 provided API's | expand

Commit Message

Ajay Singh Nov. 1, 2018, 4:45 p.m. UTC
From: Ajay Singh <ajay.kathat@microchip.com>

Refactor get_bssid() by making use of 'ieee80211_mgmt' struct. Instead
of passing the memory offset now using structure element to fetch the
bssid information.
Returning the pointer to bssid from get_bssid() instead of filing the
input argument.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
 drivers/staging/wilc1000/coreconfigurator.c | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)
diff mbox series

Patch

diff --git a/drivers/staging/wilc1000/coreconfigurator.c b/drivers/staging/wilc1000/coreconfigurator.c
index 166443d..ac44846 100644
--- a/drivers/staging/wilc1000/coreconfigurator.c
+++ b/drivers/staging/wilc1000/coreconfigurator.c
@@ -8,29 +8,14 @@ 
 
 #include "coreconfigurator.h"
 
-static inline void get_address1(u8 *msa, u8 *addr)
+static inline u8 *get_bssid(struct ieee80211_mgmt *mgmt)
 {
-	memcpy(addr, msa + 4, 6);
-}
-
-static inline void get_address2(u8 *msa, u8 *addr)
-{
-	memcpy(addr, msa + 10, 6);
-}
-
-static inline void get_address3(u8 *msa, u8 *addr)
-{
-	memcpy(addr, msa + 16, 6);
-}
-
-static inline void get_bssid(__le16 fc, u8 *data, u8 *bssid)
-{
-	if (ieee80211_has_fromds(fc))
-		get_address2(data, bssid);
-	else if (ieee80211_has_tods(fc))
-		get_address1(data, bssid);
+	if (ieee80211_has_fromds(mgmt->frame_control))
+		return mgmt->sa;
+	else if (ieee80211_has_tods(mgmt->frame_control))
+		return mgmt->da;
 	else
-		get_address3(data, bssid);
+		return mgmt->bssid;
 }
 
 static inline u16 get_asoc_status(u8 *data)
@@ -87,7 +72,7 @@  s32 wilc_parse_network_info(u8 *msg_buffer,
 		return -EIO;
 	}
 
-	get_bssid(mgt->frame_control, msa, network_info->bssid);
+	ether_addr_copy(network_info->bssid, get_bssid(mgt));
 
 	ies = mgt->u.beacon.variable;
 	ies_len = rx_len - offset;