Signed-off-by: Andriy V. Tkachuk <andrit@ukr.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
                return -1;
 
        pos = skb->data + hdr_len + CCMP_HDR_LEN;
-       mic = skb_put(skb, CCMP_MIC_LEN);
        hdr = (struct ieee80211_hdr *)skb->data;
        ccmp_init_blocks(key->tfm, hdr, key->tx_pn, data_len, b0, b, s0);
 
                pos += len;
        }
 
+       mic = skb_put(skb, CCMP_MIC_LEN);
        for (i = 0; i < CCMP_MIC_LEN; i++)
                mic[i] = b[i] ^ s0[i];
 
 
        if ((lib80211_tkip_hdr(skb, hdr_len, rc4key, 16, priv)) < 0)
                return -1;
 
-       icv = skb_put(skb, 4);
-
        crc = ~crc32_le(~0, pos, len);
+       icv = skb_put(skb, 4);
        icv[0] = crc;
        icv[1] = crc >> 8;
        icv[2] = crc >> 16;