Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 79332
b: refs/heads/master
c: d9e94d5
h: refs/heads/master
v: v3
  • Loading branch information
Al Viro authored and David S. Miller committed Jan 28, 2008
1 parent 9f61f2a commit 9891454
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c414e84b2200ca8a7e7ae565cad200e5c02e02ec
refs/heads/master: d9e94d5647ee6700773d81514a8ccb7dc6342fb4
6 changes: 3 additions & 3 deletions trunk/include/net/ieee80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ struct ieee80211_probe_request {

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,
Expand Down Expand Up @@ -718,8 +718,8 @@ struct ieee80211_txb {
u8 encrypted;
u8 rts_included;
u8 reserved;
__le16 frag_size;
__le16 payload_size;
u16 frag_size;
u16 payload_size;
struct sk_buff *fragments[0];
};

Expand Down
22 changes: 11 additions & 11 deletions trunk/net/ieee80211/ieee80211_crypt_tkip.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ static inline u16 Mk16(u8 hi, u8 lo)
return lo | (((u16) hi) << 8);
}

static inline u16 Mk16_le(u16 * v)
static inline u16 Mk16_le(__le16 * v)
{
return le16_to_cpu(*v);
}
Expand Down Expand Up @@ -275,15 +275,15 @@ static void tkip_mixing_phase2(u8 * WEPSeed, const u8 * TK, const u16 * TTAK,
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]);
Expand All @@ -294,7 +294,7 @@ static void tkip_mixing_phase2(u8 * WEPSeed, const u8 * TK, const u16 * TTAK,
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
{
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/ieee80211/ieee80211_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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), 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);
Expand Down
14 changes: 7 additions & 7 deletions trunk/net/ieee80211/ieee80211_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 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;
Expand All @@ -136,15 +136,14 @@ static int ieee80211_copy_snap(u8 * data, u16 h_proto)
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[0] = oui[0];
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);
Expand Down Expand Up @@ -261,7 +260,8 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
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 */
Expand Down Expand Up @@ -292,19 +292,19 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
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_encrypt_msdu = ieee->host_encrypt_msdu && 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;
}
Expand Down

0 comments on commit 9891454

Please sign in to comment.