[Bug 771] Fix hwcrypto CCMP/WEP packets received 8 more bytes at the tail. Signed-off-by: Zhu Yi -- diff -urp ipw2200-1.0.6/ipw2200.c ipw2200-1.0.6-hwcrypt-decrypt-fix/ipw2200.c --- ipw2200-1.0.6/ipw2200.c 2005-07-14 03:00:28.000000000 +0800 +++ ipw2200-1.0.6-hwcrypt-decrypt-fix/ipw2200.c 2005-09-08 13:39:54.000000000 +0800 @@ -7587,10 +7587,7 @@ static void ipw_rebuild_decrypted_skb(st memmove(skb->data + IEEE80211_3ADDR_LEN, skb->data + IEEE80211_3ADDR_LEN + 8, skb->len - IEEE80211_3ADDR_LEN - 8); - if (fc & IEEE80211_FCTL_MOREFRAGS) - skb_trim(skb, skb->len - 16); /* 2*MIC */ - else - skb_trim(skb, skb->len - 8); /* MIC */ + skb_trim(skb, skb->len - 16); /* CCMP_HDR_LEN + CCMP_MIC_LEN */ break; case SEC_LEVEL_2: break; @@ -7599,10 +7596,7 @@ static void ipw_rebuild_decrypted_skb(st memmove(skb->data + IEEE80211_3ADDR_LEN, skb->data + IEEE80211_3ADDR_LEN + 4, skb->len - IEEE80211_3ADDR_LEN - 4); - if (fc & IEEE80211_FCTL_MOREFRAGS) - skb_trim(skb, skb->len - 8); /* 2*ICV */ - else - skb_trim(skb, skb->len - 4); /* ICV */ + skb_trim(skb, skb->len - 8); /* IV + ICV */ break; case SEC_LEVEL_0: break;