--- zzzz-none-000/linux-4.4.60/net/sched/cls_u32.c 2017-04-08 07:53:53.000000000 +0000 +++ scorpion-1750e-727/linux-4.4.60/net/sched/cls_u32.c 2021-02-04 17:41:59.000000000 +0000 @@ -151,7 +151,7 @@ data = skb_header_pointer(skb, toff, 4, &hdata); if (!data) goto out; - if ((*data ^ key->val) & key->mask) { + if ((net_hdr_word(data) ^ key->val) & key->mask) { n = rcu_dereference_bh(n->next); goto next_knode; } @@ -204,8 +204,8 @@ &hdata); if (!data) goto out; - sel = ht->divisor & u32_hash_fold(*data, &n->sel, - n->fshift); + sel = ht->divisor & u32_hash_fold(net_hdr_word(data), + &n->sel, n->fshift); } if (!(n->sel.flags & (TC_U32_VAROFFSET | TC_U32_OFFSET | TC_U32_EAT))) goto next_ht;