OSDN Git Service

staging: wilc1000: use kernel provided struct cast to extract mac header
authorAjay Singh <ajay.kathat@microchip.com>
Fri, 22 Nov 2019 20:52:04 +0000 (20:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Dec 2019 09:28:31 +0000 (10:28 +0100)
To parse the mac header make use of *struct ieee80211_hdr* instead of
extracting individual fields separately using pointer operation.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Link: https://lore.kernel.org/r/20191122205153.30723-3-adham.abozaeid@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/netdev.c

index d2c0b0f..3fd8e00 100644 (file)
@@ -96,21 +96,18 @@ void wilc_mac_indicate(struct wilc *wilc)
 
 static struct net_device *get_if_handler(struct wilc *wilc, u8 *mac_header)
 {
-       u8 *bssid, *bssid1;
        struct net_device *ndev = NULL;
        struct wilc_vif *vif;
-
-       bssid = mac_header + 10;
-       bssid1 = mac_header + 4;
+       struct ieee80211_hdr *h = (struct ieee80211_hdr *)mac_header;
 
        list_for_each_entry_rcu(vif, &wilc->vif_list, list) {
                if (vif->mode == WILC_STATION_MODE)
-                       if (ether_addr_equal_unaligned(bssid, vif->bssid)) {
+                       if (ether_addr_equal_unaligned(h->addr2, vif->bssid)) {
                                ndev = vif->ndev;
                                goto out;
                        }
                if (vif->mode == WILC_AP_MODE)
-                       if (ether_addr_equal_unaligned(bssid1, vif->bssid)) {
+                       if (ether_addr_equal_unaligned(h->addr1, vif->bssid)) {
                                ndev = vif->ndev;
                                goto out;
                        }