struct ieee80211_probe_response {
        struct ieee80211_hdr_3addr header;
-       u32 time_stamp[2];
+       __le32 time_stamp[2];
        __le16 beacon_interval;
        __le16 capability;
        /* SSID, supported rates, FH params, DS params,
        u8 encrypted;
        u8 rts_included;
        u8 reserved;
-       __le16 frag_size;
-       __le16 payload_size;
+       u16 frag_size;
+       u16 payload_size;
        struct sk_buff *fragments[0];
 };
 
 
        return lo | (((u16) hi) << 8);
 }
 
-static inline u16 Mk16_le(u16 * v)
+static inline u16 Mk16_le(__le16 * v)
 {
        return le16_to_cpu(*v);
 }
        PPK[5] = TTAK[4] + IV16;
 
        /* Step 2 - 96-bit bijective mixing using S-box */
-       PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) & TK[0]));
-       PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) & TK[2]));
-       PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) & TK[4]));
-       PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) & TK[6]));
-       PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) & TK[8]));
-       PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) & TK[10]));
-
-       PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) & TK[12]));
-       PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) & TK[14]));
+       PPK[0] += _S_(PPK[5] ^ Mk16_le((__le16 *) & TK[0]));
+       PPK[1] += _S_(PPK[0] ^ Mk16_le((__le16 *) & TK[2]));
+       PPK[2] += _S_(PPK[1] ^ Mk16_le((__le16 *) & TK[4]));
+       PPK[3] += _S_(PPK[2] ^ Mk16_le((__le16 *) & TK[6]));
+       PPK[4] += _S_(PPK[3] ^ Mk16_le((__le16 *) & TK[8]));
+       PPK[5] += _S_(PPK[4] ^ Mk16_le((__le16 *) & TK[10]));
+
+       PPK[0] += RotR1(PPK[5] ^ Mk16_le((__le16 *) & TK[12]));
+       PPK[1] += RotR1(PPK[0] ^ Mk16_le((__le16 *) & TK[14]));
        PPK[2] += RotR1(PPK[1]);
        PPK[3] += RotR1(PPK[2]);
        PPK[4] += RotR1(PPK[3]);
        WEPSeed[0] = Hi8(IV16);
        WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
        WEPSeed[2] = Lo8(IV16);
-       WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((u16 *) & TK[0])) >> 1);
+       WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((__le16 *) & TK[0])) >> 1);
 
 #ifdef __BIG_ENDIAN
        {
 
                memcpy(skb_push(skb, ETH_ALEN), src, ETH_ALEN);
                memcpy(skb_push(skb, ETH_ALEN), dst, ETH_ALEN);
        } else {
-               u16 len;
+               __be16 len;
                /* Leave Ethernet header part of hdr and full payload */
                skb_pull(skb, hdrlen);
                len = htons(skb->len);
 
 static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
 static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 };
 
-static int ieee80211_copy_snap(u8 * data, u16 h_proto)
+static int ieee80211_copy_snap(u8 * data, __be16 h_proto)
 {
        struct ieee80211_snap_hdr *snap;
        u8 *oui;
        snap->ssap = 0xaa;
        snap->ctrl = 0x03;
 
-       if (h_proto == 0x8137 || h_proto == 0x80f3)
+       if (h_proto == htons(ETH_P_AARP) || h_proto == htons(ETH_P_IPX))
                oui = P802_1H_OUI;
        else
                oui = RFC1042_OUI;
        snap->oui[1] = oui[1];
        snap->oui[2] = oui[2];
 
-       h_proto = htons(h_proto);
        memcpy(data + SNAP_SIZE, &h_proto, sizeof(u16));
 
        return SNAP_SIZE + sizeof(u16);
            rts_required;
        unsigned long flags;
        struct net_device_stats *stats = &ieee->stats;
-       int ether_type, encrypt, host_encrypt, host_encrypt_msdu, host_build_iv;
+       int encrypt, host_encrypt, host_encrypt_msdu, host_build_iv;
+       __be16 ether_type;
        int bytes, fc, hdr_len;
        struct sk_buff *skb_frag;
        struct ieee80211_hdr_3addrqos header = {/* Ensure zero initialized */
                goto success;
        }
 
-       ether_type = ntohs(((struct ethhdr *)skb->data)->h_proto);
+       ether_type = ((struct ethhdr *)skb->data)->h_proto;
 
        crypt = ieee->crypt[ieee->tx_keyidx];
 
-       encrypt = !(ether_type == ETH_P_PAE && ieee->ieee802_1x) &&
+       encrypt = !(ether_type == htons(ETH_P_PAE) && ieee->ieee802_1x) &&
            ieee->sec.encrypt;
 
        host_encrypt = ieee->host_encrypt && encrypt && crypt;
        host_build_iv = ieee->host_build_iv && encrypt && crypt;
 
        if (!encrypt && ieee->ieee802_1x &&
-           ieee->drop_unencrypted && ether_type != ETH_P_PAE) {
+           ieee->drop_unencrypted && ether_type != htons(ETH_P_PAE)) {
                stats->tx_dropped++;
                goto success;
        }