staging: r8723au: Fix sparse warning in os_dep/os_intfs.c
authorLarry Finger <Larry.Finger@lwfinger.net>
Sat, 26 Apr 2014 16:55:13 +0000 (18:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Apr 2014 17:16:16 +0000 (10:16 -0700)
Sparse reports the following:

drivers/staging/rtl8723au/os_dep/os_intfs.c:321:14: warning: restricted __be16 degrades to integer

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/os_dep/os_intfs.c

index 2b2df95..4347896 100644 (file)
@@ -311,14 +311,14 @@ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
 u16 rtw_recv_select_queue23a(struct sk_buff *skb)
 {
        struct iphdr *piphdr;
+       struct ethhdr *eth = (struct ethhdr *)skb->data;
        unsigned int dscp;
-       u16 eth_type;
+       u16 eth_type = get_unaligned_be16(&eth->h_proto);
        u32 priority;
        u8 *pdata = skb->data;
 
-       memcpy(&eth_type, pdata + (ETH_ALEN << 1), 2);
        switch (eth_type) {
-       case htons(ETH_P_IP):
+       case ETH_P_IP:
                piphdr = (struct iphdr *)(pdata + ETH_HLEN);
                dscp = piphdr->tos & 0xfc;
                priority = dscp >> 5;