ieee80211: fix misannotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c414e84b22
commit
d9e94d5647
4 changed files with 21 additions and 21 deletions
|
@ -677,7 +677,7 @@ struct ieee80211_probe_request {
|
||||||
|
|
||||||
struct ieee80211_probe_response {
|
struct ieee80211_probe_response {
|
||||||
struct ieee80211_hdr_3addr header;
|
struct ieee80211_hdr_3addr header;
|
||||||
u32 time_stamp[2];
|
__le32 time_stamp[2];
|
||||||
__le16 beacon_interval;
|
__le16 beacon_interval;
|
||||||
__le16 capability;
|
__le16 capability;
|
||||||
/* SSID, supported rates, FH params, DS params,
|
/* SSID, supported rates, FH params, DS params,
|
||||||
|
@ -718,8 +718,8 @@ struct ieee80211_txb {
|
||||||
u8 encrypted;
|
u8 encrypted;
|
||||||
u8 rts_included;
|
u8 rts_included;
|
||||||
u8 reserved;
|
u8 reserved;
|
||||||
__le16 frag_size;
|
u16 frag_size;
|
||||||
__le16 payload_size;
|
u16 payload_size;
|
||||||
struct sk_buff *fragments[0];
|
struct sk_buff *fragments[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ static inline u16 Mk16(u8 hi, u8 lo)
|
||||||
return lo | (((u16) hi) << 8);
|
return lo | (((u16) hi) << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u16 Mk16_le(u16 * v)
|
static inline u16 Mk16_le(__le16 * v)
|
||||||
{
|
{
|
||||||
return le16_to_cpu(*v);
|
return le16_to_cpu(*v);
|
||||||
}
|
}
|
||||||
|
@ -275,15 +275,15 @@ static void tkip_mixing_phase2(u8 * WEPSeed, const u8 * TK, const u16 * TTAK,
|
||||||
PPK[5] = TTAK[4] + IV16;
|
PPK[5] = TTAK[4] + IV16;
|
||||||
|
|
||||||
/* Step 2 - 96-bit bijective mixing using S-box */
|
/* Step 2 - 96-bit bijective mixing using S-box */
|
||||||
PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) & TK[0]));
|
PPK[0] += _S_(PPK[5] ^ Mk16_le((__le16 *) & TK[0]));
|
||||||
PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) & TK[2]));
|
PPK[1] += _S_(PPK[0] ^ Mk16_le((__le16 *) & TK[2]));
|
||||||
PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) & TK[4]));
|
PPK[2] += _S_(PPK[1] ^ Mk16_le((__le16 *) & TK[4]));
|
||||||
PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) & TK[6]));
|
PPK[3] += _S_(PPK[2] ^ Mk16_le((__le16 *) & TK[6]));
|
||||||
PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) & TK[8]));
|
PPK[4] += _S_(PPK[3] ^ Mk16_le((__le16 *) & TK[8]));
|
||||||
PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) & TK[10]));
|
PPK[5] += _S_(PPK[4] ^ Mk16_le((__le16 *) & TK[10]));
|
||||||
|
|
||||||
PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) & TK[12]));
|
PPK[0] += RotR1(PPK[5] ^ Mk16_le((__le16 *) & TK[12]));
|
||||||
PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) & TK[14]));
|
PPK[1] += RotR1(PPK[0] ^ Mk16_le((__le16 *) & TK[14]));
|
||||||
PPK[2] += RotR1(PPK[1]);
|
PPK[2] += RotR1(PPK[1]);
|
||||||
PPK[3] += RotR1(PPK[2]);
|
PPK[3] += RotR1(PPK[2]);
|
||||||
PPK[4] += RotR1(PPK[3]);
|
PPK[4] += RotR1(PPK[3]);
|
||||||
|
@ -294,7 +294,7 @@ static void tkip_mixing_phase2(u8 * WEPSeed, const u8 * TK, const u16 * TTAK,
|
||||||
WEPSeed[0] = Hi8(IV16);
|
WEPSeed[0] = Hi8(IV16);
|
||||||
WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
|
WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
|
||||||
WEPSeed[2] = Lo8(IV16);
|
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
|
#ifdef __BIG_ENDIAN
|
||||||
{
|
{
|
||||||
|
|
|
@ -754,7 +754,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
||||||
memcpy(skb_push(skb, ETH_ALEN), src, ETH_ALEN);
|
memcpy(skb_push(skb, ETH_ALEN), src, ETH_ALEN);
|
||||||
memcpy(skb_push(skb, ETH_ALEN), dst, ETH_ALEN);
|
memcpy(skb_push(skb, ETH_ALEN), dst, ETH_ALEN);
|
||||||
} else {
|
} else {
|
||||||
u16 len;
|
__be16 len;
|
||||||
/* Leave Ethernet header part of hdr and full payload */
|
/* Leave Ethernet header part of hdr and full payload */
|
||||||
skb_pull(skb, hdrlen);
|
skb_pull(skb, hdrlen);
|
||||||
len = htons(skb->len);
|
len = htons(skb->len);
|
||||||
|
|
|
@ -126,7 +126,7 @@ payload of each frame is reduced to 492 bytes.
|
||||||
static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
|
static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
|
||||||
static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 };
|
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;
|
struct ieee80211_snap_hdr *snap;
|
||||||
u8 *oui;
|
u8 *oui;
|
||||||
|
@ -136,7 +136,7 @@ static int ieee80211_copy_snap(u8 * data, u16 h_proto)
|
||||||
snap->ssap = 0xaa;
|
snap->ssap = 0xaa;
|
||||||
snap->ctrl = 0x03;
|
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;
|
oui = P802_1H_OUI;
|
||||||
else
|
else
|
||||||
oui = RFC1042_OUI;
|
oui = RFC1042_OUI;
|
||||||
|
@ -144,7 +144,6 @@ static int ieee80211_copy_snap(u8 * data, u16 h_proto)
|
||||||
snap->oui[1] = oui[1];
|
snap->oui[1] = oui[1];
|
||||||
snap->oui[2] = oui[2];
|
snap->oui[2] = oui[2];
|
||||||
|
|
||||||
h_proto = htons(h_proto);
|
|
||||||
memcpy(data + SNAP_SIZE, &h_proto, sizeof(u16));
|
memcpy(data + SNAP_SIZE, &h_proto, sizeof(u16));
|
||||||
|
|
||||||
return SNAP_SIZE + sizeof(u16);
|
return SNAP_SIZE + sizeof(u16);
|
||||||
|
@ -261,7 +260,8 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
rts_required;
|
rts_required;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct net_device_stats *stats = &ieee->stats;
|
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;
|
int bytes, fc, hdr_len;
|
||||||
struct sk_buff *skb_frag;
|
struct sk_buff *skb_frag;
|
||||||
struct ieee80211_hdr_3addrqos header = {/* Ensure zero initialized */
|
struct ieee80211_hdr_3addrqos header = {/* Ensure zero initialized */
|
||||||
|
@ -292,11 +292,11 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
goto success;
|
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];
|
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;
|
ieee->sec.encrypt;
|
||||||
|
|
||||||
host_encrypt = ieee->host_encrypt && encrypt && crypt;
|
host_encrypt = ieee->host_encrypt && encrypt && crypt;
|
||||||
|
@ -304,7 +304,7 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
host_build_iv = ieee->host_build_iv && encrypt && crypt;
|
host_build_iv = ieee->host_build_iv && encrypt && crypt;
|
||||||
|
|
||||||
if (!encrypt && ieee->ieee802_1x &&
|
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++;
|
stats->tx_dropped++;
|
||||||
goto success;
|
goto success;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue