Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 310926 Details for
Bug 453390
wifi problems with kernel 2.6.25.9-74
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
0001-Revert-mac80211-wpa.c-use-new-access-helpers.txt
0001-Revert-mac80211-wpa.c-use-new-access-helpers.txt (text/plain), 4.30 KB, created by
John W. Linville
on 2008-07-03 14:13:28 UTC
(
hide
)
Description:
0001-Revert-mac80211-wpa.c-use-new-access-helpers.txt
Filename:
MIME Type:
Creator:
John W. Linville
Created:
2008-07-03 14:13:28 UTC
Size:
4.30 KB
patch
obsolete
>From 110e8cab1c0d756dde2a68ec0a8a3525cb60a88e Mon Sep 17 00:00:00 2001 >From: John Linville <linville@savage.usersys.redhat.com> >Date: Thu, 3 Jul 2008 10:09:20 -0400 >Subject: [PATCH] Revert "mac80211: wpa.c use new access helpers" > >This reverts commit d5184cacf3eeaeb6ae0c7a02aa44fe589beeda23. >--- > net/mac80211/wpa.c | 63 +++++++++++++++++++++++++++++++++++++++------------- > 1 files changed, 47 insertions(+), 16 deletions(-) > >diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c >index b414d5d..4c74ff8 100644 >--- a/net/mac80211/wpa.c >+++ b/net/mac80211/wpa.c >@@ -24,22 +24,46 @@ static int ieee80211_get_hdr_info(const > { > struct ieee80211_hdr *hdr; > size_t hdrlen; >- __le16 fc; >- >- hdr = (struct ieee80211_hdr *)skb->data; >- fc = hdr->frame_control; >+ u16 fc; >+ int a4_included; >+ u8 *pos; > >- hdrlen = ieee80211_hdrlen(fc); >+ hdr = (struct ieee80211_hdr *) skb->data; >+ fc = le16_to_cpu(hdr->frame_control); >+ >+ hdrlen = 24; >+ if ((fc & (IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) == >+ (IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) { >+ hdrlen += ETH_ALEN; >+ *sa = hdr->addr4; >+ *da = hdr->addr3; >+ } else if (fc & IEEE80211_FCTL_FROMDS) { >+ *sa = hdr->addr3; >+ *da = hdr->addr1; >+ } else if (fc & IEEE80211_FCTL_TODS) { >+ *sa = hdr->addr2; >+ *da = hdr->addr3; >+ } else { >+ *sa = hdr->addr2; >+ *da = hdr->addr1; >+ } > >- *sa = ieee80211_get_SA(hdr); >- *da = ieee80211_get_DA(hdr); >+ if (fc & 0x80) >+ hdrlen += 2; > > *data = skb->data + hdrlen; > *data_len = skb->len - hdrlen; > >- if (ieee80211_is_data_qos(fc)) >- *qos_tid = (*ieee80211_get_qos_ctl(hdr) & 0x0f) | 0x80; >- else >+ a4_included = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) == >+ (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS); >+ if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && >+ fc & IEEE80211_STYPE_QOS_DATA) { >+ pos = (u8 *) &hdr->addr4; >+ if (a4_included) >+ pos += 6; >+ *qos_tid = pos[0] & 0x0f; >+ *qos_tid |= 0x80; /* qos_included flag */ >+ } else > *qos_tid = 0; > > return skb->len < hdrlen ? -1 : 0; >@@ -167,8 +191,8 @@ static int tkip_encrypt_skb(struct ieee8 > struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; > struct ieee80211_key *key = tx->key; > struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); >- unsigned int hdrlen; >- int len, tail; >+ int hdrlen, len, tail; >+ u16 fc; > u8 *pos; > > info->control.icv_len = TKIP_ICV_LEN; >@@ -181,7 +205,8 @@ static int tkip_encrypt_skb(struct ieee8 > return 0; > } > >- hdrlen = ieee80211_hdrlen(hdr->frame_control); >+ fc = le16_to_cpu(hdr->frame_control); >+ hdrlen = ieee80211_get_hdrlen(fc); > len = skb->len - hdrlen; > > if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) >@@ -246,12 +271,14 @@ ieee80211_rx_result > ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx) > { > struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; >+ u16 fc; > int hdrlen, res, hwaccel = 0, wpa_test = 0; > struct ieee80211_key *key = rx->key; > struct sk_buff *skb = rx->skb; > DECLARE_MAC_BUF(mac); > >- hdrlen = ieee80211_hdrlen(hdr->frame_control); >+ fc = le16_to_cpu(hdr->frame_control); >+ hdrlen = ieee80211_get_hdrlen(fc); > > if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) > return RX_CONTINUE; >@@ -392,6 +419,7 @@ static int ccmp_encrypt_skb(struct ieee8 > struct ieee80211_key *key = tx->key; > struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); > int hdrlen, len, tail; >+ u16 fc; > u8 *pos, *pn, *b_0, *aad, *scratch; > int i; > >@@ -410,7 +438,8 @@ static int ccmp_encrypt_skb(struct ieee8 > b_0 = scratch + 3 * AES_BLOCK_LEN; > aad = scratch + 4 * AES_BLOCK_LEN; > >- hdrlen = ieee80211_hdrlen(hdr->frame_control); >+ fc = le16_to_cpu(hdr->frame_control); >+ hdrlen = ieee80211_get_hdrlen(fc); > len = skb->len - hdrlen; > > if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) >@@ -479,6 +508,7 @@ ieee80211_rx_result > ieee80211_crypto_ccmp_decrypt(struct ieee80211_rx_data *rx) > { > struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; >+ u16 fc; > int hdrlen; > struct ieee80211_key *key = rx->key; > struct sk_buff *skb = rx->skb; >@@ -486,7 +516,8 @@ ieee80211_crypto_ccmp_decrypt(struct iee > int data_len; > DECLARE_MAC_BUF(mac); > >- hdrlen = ieee80211_hdrlen(hdr->frame_control); >+ fc = le16_to_cpu(hdr->frame_control); >+ hdrlen = ieee80211_get_hdrlen(fc); > > if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) > return RX_CONTINUE; >-- >1.4.2.GIT >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 453390
:
310568
|
310569
|
310888
| 310926 |
311029
|
311030
|
312090