summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Brix Andersen <brix@gentoo.org>2005-09-06 14:53:17 +0000
committerHenrik Brix Andersen <brix@gentoo.org>2005-09-06 14:53:17 +0000
commitbee3385f51de93945f96b903b67483638d9db9ad (patch)
tree3bf9f8f1c0b288455f883ac11a4a7cf4a53e9382 /net-wireless/ieee80211/files
parentStable on x86. (diff)
downloadgentoo-2-bee3385f51de93945f96b903b67483638d9db9ad.tar.gz
gentoo-2-bee3385f51de93945f96b903b67483638d9db9ad.tar.bz2
gentoo-2-bee3385f51de93945f96b903b67483638d9db9ad.zip
Apply bugfixes from upstream, bail out if incompatible ieee80211.h found in kernel sources (bug #97397).
(Portage version: 2.0.51.22-r2)
Diffstat (limited to 'net-wireless/ieee80211/files')
-rw-r--r--net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r21
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch28
-rw-r--r--net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch63
3 files changed, 92 insertions, 0 deletions
diff --git a/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2 b/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2
new file mode 100644
index 000000000000..bb51c85dc9c8
--- /dev/null
+++ b/net-wireless/ieee80211/files/digest-ieee80211-1.0.3-r2
@@ -0,0 +1 @@
+MD5 49870c030278e3716194ff5b64f9cbaa ieee80211-1.0.3.tgz 63355
diff --git a/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch b/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch
new file mode 100644
index 000000000000..7173adbbb55e
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.0.3-keep_restricted_bit.patch
@@ -0,0 +1,28 @@
+[Bug 768] Keep auth mode unchanged after iwconfig key off/on.
+
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+diff -urp ieee80211-1.0.3/ieee80211_wx.c ieee80211-1.0.3-keep_restricted_bit/ieee80211_wx.c
+--- ieee80211-1.0.3/ieee80211_wx.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-keep_restricted_bit/ieee80211_wx.c 2005-09-01 13:03:16.000000000 +0800
+@@ -413,11 +413,15 @@ int ieee80211_wx_set_encode(struct ieee8
+ sec.flags |= SEC_ACTIVE_KEY;
+ }
+ }
+- ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED);
+- sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY;
+- sec.flags |= SEC_AUTH_MODE;
+- IEEE80211_DEBUG_WX("Auth: %s\n", sec.auth_mode == WLAN_AUTH_OPEN ?
+- "OPEN" : "SHARED KEY");
++ if (erq->flags & (IW_ENCODE_OPEN | IW_ENCODE_RESTRICTED)) {
++ ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED);
++ sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN :
++ WLAN_AUTH_SHARED_KEY;
++ sec.flags |= SEC_AUTH_MODE;
++ IEEE80211_DEBUG_WX("Auth: %s\n",
++ sec.auth_mode == WLAN_AUTH_OPEN ?
++ "OPEN" : "SHARED KEY");
++ }
+
+ /* For now we just support WEP, so only set that security level...
+ * TODO: When WPA is added this is one place that needs to change */
diff --git a/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch b/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch
new file mode 100644
index 000000000000..11dfa4ca7d83
--- /dev/null
+++ b/net-wireless/ieee80211/files/ieee80211-1.0.3-open_frag.patch
@@ -0,0 +1,63 @@
+Add host_open_frag to indicate if fragmentation is need to be done by host.
+
+Signed-off-by: Hong Liu <hong.liu@intel.com>
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+diff -urp ieee80211-1.0.3/ieee80211_module.c ieee80211-1.0.3-open-frag/ieee80211_module.c
+--- ieee80211-1.0.3/ieee80211_module.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/ieee80211_module.c 2005-08-03 16:12:25.000000000 +0800
+@@ -137,6 +137,11 @@ struct net_device *alloc_ieee80211(int s
+ /* Default to enabling full open WEP with host based encrypt/decrypt */
+ ieee->host_encrypt = 1;
+ ieee->host_decrypt = 1;
++ /* Host fragementation in Open mode. Default is enabled. Note host
++ * fragmentation is always enabled if host encryption is enabled.
++ * For cards can do hardware encryption, they can do hardware
++ * fragmentation as well. So we don't need a variable host_enc_frag. */
++ ieee->host_open_frag = 1;
+ ieee->ieee802_1x = 1; /* Default to supporting 802.1x */
+
+ INIT_LIST_HEAD(&ieee->crypt_deinit_list);
+@@ -151,7 +156,6 @@ struct net_device *alloc_ieee80211(int s
+ ieee->tkip_countermeasures = 0;
+ ieee->drop_unencrypted = 0;
+ ieee->privacy_invoked = 0;
+- ieee->ieee802_1x = 1;
+
+ return dev;
+
+diff -urp ieee80211-1.0.3/ieee80211_tx.c ieee80211-1.0.3-open-frag/ieee80211_tx.c
+--- ieee80211-1.0.3/ieee80211_tx.c 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/ieee80211_tx.c 2005-08-03 16:12:25.000000000 +0800
+@@ -363,7 +363,7 @@ int ieee80211_xmit(struct sk_buff *skb,
+ skb_pull(skb, hdr_len);
+ }
+
+- if (host_encrypt) {
++ if (host_encrypt || ieee->host_open_frag) {
+ /* Determine fragmentation size based on destination (multicast
+ * and broadcast are not fragmented) */
+ if (is_multicast_ether_addr(dest))
+@@ -382,8 +382,9 @@ int ieee80211_xmit(struct sk_buff *skb,
+
+ /* Each fragment may need to have room for encryptiong
+ * pre/postfix */
+- bytes_per_frag -= crypt->ops->extra_mpdu_prefix_len +
+- crypt->ops->extra_mpdu_postfix_len;
++ if (host_encrypt)
++ bytes_per_frag -= crypt->ops->extra_mpdu_prefix_len +
++ crypt->ops->extra_mpdu_postfix_len;
+
+ /* Number of fragments is the total
+ * bytes_per_frag / payload_per_fragment */
+diff -urp ieee80211-1.0.3/net/ieee80211.h ieee80211-1.0.3-open-frag/net/ieee80211.h
+--- ieee80211-1.0.3/net/ieee80211.h 2005-07-15 07:53:35.000000000 +0800
++++ ieee80211-1.0.3-open-frag/net/ieee80211.h 2005-08-03 16:12:25.000000000 +0800
+@@ -798,6 +798,7 @@ struct ieee80211_device {
+ int host_encrypt;
+ int host_encrypt_msdu;
+ int host_decrypt;
++ int host_open_frag;
+ int ieee802_1x; /* is IEEE 802.1X used */
+
+ /* WPA data */