Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111308
b: refs/heads/master
c: de9cc7a
h: refs/heads/master
v: v3
  • Loading branch information
Harvey Harrison authored and John W. Linville committed Aug 29, 2008
1 parent fad8270 commit 41a90f0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 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: 15635744484d4255778fc641261be27179c51f9a
refs/heads/master: de9cc7a4e6f975ca5e91cf8745b3e35a7e780bae
20 changes: 8 additions & 12 deletions trunk/drivers/net/wireless/libertas_tf/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -477,9 +477,9 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb)
{
struct ieee80211_rx_status stats;
struct rxpd *prxpd;
bool is_qos, is_4addr, is_amsdu, need_padding;
int need_padding;
unsigned int flags;
u16 fc, fc_le;
struct ieee80211_hdr *hdr;

prxpd = (struct rxpd *) skb->data;

Expand All @@ -497,19 +497,15 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb)
stats.rate_idx = prxpd->rx_rate;
skb_pull(skb, sizeof(struct rxpd));

fc_le = *((__le16 *) skb->data);
fc = le16_to_cpu(fc_le);
hdr = (struct ieee80211_hdr *)skb->data;
flags = le32_to_cpu(*(__le32 *)(skb->data + 4));

is_qos = ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
(fc & IEEE80211_STYPE_QOS_DATA);
is_4addr = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) ==
(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
is_amsdu = ((fc & 0x8C) == 0x88) &&
(*(skb->data + ieee80211_hdrlen(fc_le) - QOS_CONTROL_LEN)
& IEEE80211_QOS_CONTROL_A_MSDU_PRESENT);
need_padding = ieee80211_is_data_qos(hdr->frame_control);
need_padding ^= ieee80211_has_a4(hdr->frame_control);
need_padding ^= ieee80211_is_data_qos(hdr->frame_control) &&
(*ieee80211_get_qos_ctl(hdr) &
IEEE80211_QOS_CONTROL_A_MSDU_PRESENT);

need_padding = is_qos ^ is_4addr ^ is_amsdu;
if (need_padding) {
memmove(skb->data + 2, skb->data, skb->len);
skb_reserve(skb, 2);
Expand Down

0 comments on commit 41a90f0

Please sign in to comment.