On 02/16/2015 01:35 AM, Alan Fisher wrote:

Alan,

I looked at the routine, and it is returning true for all IPv6 packets.

Does the attached patch for 3.18 or 3.19 help?

Larry

Index: wireless-drivers-next/drivers/net/wireless/rtlwifi/base.c
===================================================================
--- wireless-drivers-next.orig/drivers/net/wireless/rtlwifi/base.c
+++ wireless-drivers-next/drivers/net/wireless/rtlwifi/base.c
@@ -1347,7 +1347,7 @@ u8 rtl_is_special_data(struct ieee80211_
        offset = mac_hdr_len + SNAP_SIZE + encrypt_header_len;
        ether_type = be16_to_cpup((__be16 *)(skb->data + offset));
 
-       if (ETH_P_IP == ether_type) {
+       if (ETH_P_IP == ether_type || ETH_P_IPV6 == ether_type) {
                ip = (struct iphdr *)((u8 *)skb->data + offset +
                     PROTOC_TYPE_SIZE);
                if (IPPROTO_UDP == ip->protocol) {
@@ -1386,8 +1386,6 @@ u8 rtl_is_special_data(struct ieee80211_
                }
 
                return true;
-       } else if (0x86DD == ether_type) {
-               return true;
        }
 
 end:

Reply via email to