Fix hardware encryption (both WEP and AES) doesn't work with fragmentation.
Firmware sends received packets with double sized ICV/MIC.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 1b6f027..8f7e9ac 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -7587,7 +7587,10 @@
 		memmove(skb->data + IEEE80211_3ADDR_LEN,
 			skb->data + IEEE80211_3ADDR_LEN + 8,
 			skb->len - IEEE80211_3ADDR_LEN - 8);
-		skb_trim(skb, skb->len - 8);	/* MIC */
+		if (fc & IEEE80211_FCTL_MOREFRAGS)
+			skb_trim(skb, skb->len - 16);	/* 2*MIC */
+		else
+			skb_trim(skb, skb->len - 8);	/* MIC */
 		break;
 	case SEC_LEVEL_2:
 		break;
@@ -7596,7 +7599,10 @@
 		memmove(skb->data + IEEE80211_3ADDR_LEN,
 			skb->data + IEEE80211_3ADDR_LEN + 4,
 			skb->len - IEEE80211_3ADDR_LEN - 4);
-		skb_trim(skb, skb->len - 4);	/* ICV */
+		if (fc & IEEE80211_FCTL_MOREFRAGS)
+			skb_trim(skb, skb->len - 8);	/* 2*ICV */
+		else
+			skb_trim(skb, skb->len - 4);	/* ICV */
 		break;
 	case SEC_LEVEL_0:
 		break;