diff options
author | Ned Ludd <solar@gentoo.org> | 2004-08-29 04:41:33 +0000 |
---|---|---|
committer | Ned Ludd <solar@gentoo.org> | 2004-08-29 04:41:33 +0000 |
commit | 6b19a11b7b27aa6a976ea4610ef46503fe78f04e (patch) | |
tree | 57fe31f1f1da5336841028a48527eb262e841698 /net-wireless/madwifi-driver | |
parent | fix src_uri references to me (Manifest recommit) (diff) | |
download | gentoo-2-6b19a11b7b27aa6a976ea4610ef46503fe78f04e.tar.gz gentoo-2-6b19a11b7b27aa6a976ea4610ef46503fe78f04e.tar.bz2 gentoo-2-6b19a11b7b27aa6a976ea4610ef46503fe78f04e.zip |
update for 2.6.8 kernels
Diffstat (limited to 'net-wireless/madwifi-driver')
6 files changed, 240 insertions, 2 deletions
diff --git a/net-wireless/madwifi-driver/ChangeLog b/net-wireless/madwifi-driver/ChangeLog index d708b9468c37..f9379c9ac8bc 100644 --- a/net-wireless/madwifi-driver/ChangeLog +++ b/net-wireless/madwifi-driver/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for net-wireless/madwifi-driver # Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/madwifi-driver/ChangeLog,v 1.12 2004/08/24 18:42:51 solar Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-wireless/madwifi-driver/ChangeLog,v 1.13 2004/08/29 04:41:33 solar Exp $ + +*madwifi-driver-0.1_pre20040824-r1 (29 Aug 2004) + + 29 Aug 2004; <solar@gentoo.org> + +files/madwifi-driver-2.6.8-20040814-proc_dointvec.patch, + +files/madwifi-multi-ssid-support.patch, + +madwifi-driver-0.1_pre20040824-r1.ebuild: + update for 2.6.8 kernels 24 Aug 2004; <solar@gentoo.org> : updated snapshot, pulling from the wpa branch diff --git a/net-wireless/madwifi-driver/Manifest b/net-wireless/madwifi-driver/Manifest index 203224aead87..051c66ed911b 100644 --- a/net-wireless/madwifi-driver/Manifest +++ b/net-wireless/madwifi-driver/Manifest @@ -4,12 +4,16 @@ MD5 bc0f5d0eb065e14e1c707944dd81ce38 madwifi-driver-0.1_pre20031213-r1.ebuild 15 MD5 82869dab698ac726864aa4b614be0e12 madwifi-driver-0.1_pre20040726.ebuild 1442 MD5 99a34514859be45c9fa8ebf25bd65ecc madwifi-driver-0.1_pre20040824.ebuild 1716 MD5 21d600ab4701f18262587bdd50415aa5 madwifi-driver-0.1_pre20040108.ebuild 1544 -MD5 cbc3912001bac6d302d2708b361f1ec7 ChangeLog 2477 +MD5 d3e9cceb7a8e9e55f06c59025beb6464 ChangeLog 2737 MD5 19fd766bac8e110b4620363a1ace26dd metadata.xml 159 +MD5 0781d7638b13a10c286bdd7fb8e4edc3 madwifi-driver-0.1_pre20040824-r1.ebuild 2012 MD5 e00b943f3c94116d21cae2f156eddb3f files/digest-madwifi-driver-0.1_pre20031213-r1 83 MD5 87a16f54594ebda97e3ef6a9f64d798b files/digest-madwifi-driver-0.1_pre20040108 83 MD5 b328239759561fb84caa9430f6d172ef files/digest-madwifi-driver-0.1_pre20040212 83 MD5 e1ac8645264cff91daf51eb00fe88298 files/digest-madwifi-driver-0.1_pre20040514 84 MD5 acd6d2fa40bd7e96da1df6529c506a81 files/digest-madwifi-driver-0.1_pre20040726 84 MD5 fd47ace81248afcc8e4a192715a9bfe2 files/digest-madwifi-driver-0.1_pre20040824 84 +MD5 807179e31533b4895664bff1421f4381 files/madwifi-multi-ssid-support.patch 3343 +MD5 d9ea69973349d71e055b16a64039f1b7 files/madwifi-driver-2.6.8-20040814-proc_dointvec.patch 1749 MD5 444756b2062924ee7e0e631e956d46e9 files/madwifi-driver-0.1-arp-packets-33958.patch 704 +MD5 fd47ace81248afcc8e4a192715a9bfe2 files/digest-madwifi-driver-0.1_pre20040824-r1 84 diff --git a/net-wireless/madwifi-driver/files/digest-madwifi-driver-0.1_pre20040824-r1 b/net-wireless/madwifi-driver/files/digest-madwifi-driver-0.1_pre20040824-r1 new file mode 100644 index 000000000000..a22b2a8c7cd5 --- /dev/null +++ b/net-wireless/madwifi-driver/files/digest-madwifi-driver-0.1_pre20040824-r1 @@ -0,0 +1 @@ +MD5 fb4c2a2564d12dd26f9dd0297537eecc madwifi-driver-0.1_pre20040824.tar.bz2 1733884 diff --git a/net-wireless/madwifi-driver/files/madwifi-driver-2.6.8-20040814-proc_dointvec.patch b/net-wireless/madwifi-driver/files/madwifi-driver-2.6.8-20040814-proc_dointvec.patch new file mode 100644 index 000000000000..0f28f5819dbf --- /dev/null +++ b/net-wireless/madwifi-driver/files/madwifi-driver-2.6.8-20040814-proc_dointvec.patch @@ -0,0 +1,57 @@ +diff -Naur old/ath/if_ath.c new/ath/if_ath.c +--- old/ath/if_ath.c 2004-08-05 19:17:21.000000000 -0400 ++++ new/ath/if_ath.c 2004-08-14 19:50:39.000000000 -0400 +@@ -4626,7 +4626,7 @@ + + static int + ath_sysctl_halparam(ctl_table *ctl, int write, struct file *filp, +- void *buffer, size_t *lenp) ++ void __user *buffer, size_t *lenp, loff_t *ppos) + { + struct ath_softc *sc = ctl->extra1; + u_int val; +@@ -4635,7 +4635,7 @@ + ctl->data = &val; + ctl->maxlen = sizeof(val); + if (write) { +- ret = proc_dointvec(ctl, write, filp, buffer, lenp); ++ ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); + if (ret == 0) { + switch (ctl->ctl_name) { + case ATH_SLOTTIME: +@@ -4687,7 +4687,7 @@ + default: + return -EINVAL; + } +- ret = proc_dointvec(ctl, write, filp, buffer, lenp); ++ ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); + } + return ret; + } +diff -Naur old/net80211/ieee80211_linux.c new/net80211/ieee80211_linux.c +--- old/net80211/ieee80211_linux.c 2004-08-05 13:34:54.000000000 -0400 ++++ new/net80211/ieee80211_linux.c 2004-08-14 19:49:24.000000000 -0400 +@@ -357,7 +357,7 @@ + + static int + ieee80211_sysctl_debug(ctl_table *ctl, int write, struct file *filp, +- void *buffer, size_t *lenp) ++ void __user *buffer, size_t *lenp, loff_t *ppos) + { + struct ieee80211com *ic = ctl->extra1; + u_int val; +@@ -366,12 +366,12 @@ + ctl->data = &val; + ctl->maxlen = sizeof(val); + if (write) { +- ret = proc_dointvec(ctl, write, filp, buffer, lenp); ++ ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); + if (ret == 0) + ic->msg_enable = val; + } else { + val = ic->msg_enable; +- ret = proc_dointvec(ctl, write, filp, buffer, lenp); ++ ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); + } + return ret; + } diff --git a/net-wireless/madwifi-driver/files/madwifi-multi-ssid-support.patch b/net-wireless/madwifi-driver/files/madwifi-multi-ssid-support.patch new file mode 100644 index 000000000000..b62a5e60204d --- /dev/null +++ b/net-wireless/madwifi-driver/files/madwifi-multi-ssid-support.patch @@ -0,0 +1,89 @@ +Index: net80211/ieee80211_input.c +=================================================================== +RCS file: /cvsroot/madwifi/madwifi/net80211/ieee80211_input.c,v +retrieving revision 1.12 +diff -u -r1.12 ieee80211_input.c +--- madwifi/net80211/ieee80211_input.c 19 Aug 2004 02:15:44 -0000 1.12 ++++ madwifi/net80211/ieee80211_input.c 25 Aug 2004 17:14:08 -0000 +@@ -1684,17 +1684,20 @@ + } + + /* +- * Use mac and channel for lookup so we collect all +- * potential AP's when scanning. Otherwise we may ++ * Use mac, channel and SSID for lookup so we collect all ++ * potential AP's with all SSIDs when scanning. Otherwise we may + * see the same AP on multiple channels and will only +- * record the last one. We could filter APs here based ++ * record the last one, or omit the second response from an ++ * AP supporting several SSIDs. We could filter APs here based + * on rssi, etc. but leave that to the end of the scan + * so we can keep the selection criteria in one spot. + * This may result in a bloat of the scanned AP list but + * it shouldn't be too much. + */ +- ni = ieee80211_find_node_with_channel(ic, wh->i_addr2, +- &ic->ic_channels[chan]); ++ ni = ieee80211_find_node_with_channel_and_ssid(ic, wh->i_addr2, ++ &ic->ic_channels[chan], ssid); ++ ++ + if (ni == NULL) { + #ifdef IEEE80211_DEBUG + if (ieee80211_msg_scan(ic)) +Index: net80211/ieee80211_node.c +=================================================================== +RCS file: /cvsroot/madwifi/madwifi/net80211/ieee80211_node.c,v +retrieving revision 1.7 +diff -u -r1.7 ieee80211_node.c +--- madwifi/net80211/ieee80211_node.c 19 Aug 2004 02:09:13 -0000 1.7 ++++ madwifi/net80211/ieee80211_node.c 25 Aug 2004 17:14:08 -0000 +@@ -817,6 +817,31 @@ + } + + /* ++ * Like find but search based on the channel too. ++ */ ++struct ieee80211_node * ++ieee80211_find_node_with_channel_and_ssid(struct ieee80211com *ic, u_int8_t *macaddr, ++ struct ieee80211_channel *chan, char *ssid) ++{ ++ struct ieee80211_node *ni; ++ int hash; ++ ++ hash = IEEE80211_NODE_HASH(macaddr); ++ IEEE80211_NODE_LOCK(ic); ++ LIST_FOREACH(ni, &ic->ic_hash[hash], ni_hash) { ++ if (IEEE80211_ADDR_EQ(ni->ni_macaddr, macaddr) && ++ ni->ni_chan == chan && ++ (ssid[1] == 0 || (ssid[1] == ni->ni_esslen && ++ !memcmp(ssid + 2, ni->ni_essid, ssid[1])))){ ++ ieee80211_node_incref(ni);/* mark referenced */ ++ break; ++ } ++ } ++ IEEE80211_NODE_UNLOCK(ic); ++ return ni; ++} ++ ++/* + * Like find but search based on the ssid too. + */ + struct ieee80211_node * +Index: net80211/ieee80211_node.h +=================================================================== +RCS file: /cvsroot/madwifi/madwifi/net80211/ieee80211_node.h,v +retrieving revision 1.4 +diff -u -r1.4 ieee80211_node.h +--- madwifi/net80211/ieee80211_node.h 19 Aug 2004 01:06:58 -0000 1.4 ++++ madwifi/net80211/ieee80211_node.h 25 Aug 2004 17:14:08 -0000 +@@ -193,6 +193,9 @@ + extern struct ieee80211_node *ieee80211_find_node_with_channel( + struct ieee80211com *, u_int8_t *macaddr, + struct ieee80211_channel *); ++extern struct ieee80211_node *ieee80211_find_node_with_channel_and_ssid( ++ struct ieee80211com *, u_int8_t *macaddr, ++ struct ieee80211_channel *, char *); + extern struct ieee80211_node *ieee80211_find_node_with_ssid( + struct ieee80211com *, u_int8_t *macaddr, u_int ssidlen, + const u_int8_t *ssid); diff --git a/net-wireless/madwifi-driver/madwifi-driver-0.1_pre20040824-r1.ebuild b/net-wireless/madwifi-driver/madwifi-driver-0.1_pre20040824-r1.ebuild new file mode 100644 index 000000000000..508e1a931c7e --- /dev/null +++ b/net-wireless/madwifi-driver/madwifi-driver-0.1_pre20040824-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/madwifi-driver/madwifi-driver-0.1_pre20040824-r1.ebuild,v 1.1 2004/08/29 04:41:33 solar Exp $ + +# All work on madwifi is pretty much done under the WPA branch. At some +# point in the near future it should be merged back into HEAD. +# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co -r WPA madwifi + +inherit eutils kernel-mod + +DESCRIPTION="Wireless driver for Atheros chipset a/b/g cards" +HOMEPAGE="http://madwifi.sourceforge.net/" + +# Point to any required sources; these will be automatically downloaded by +# Portage. +SRC_URI="mirror://gentoo/$P.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" + +KEYWORDS="~x86" +IUSE="" +DEPEND="" + +S=${WORKDIR} + +pkg_setup() { + if [[ "${KV}" > "2.5" ]] ; then + cd ${ROOT}/usr/src/linux + if [[ "${KV}" > "2.6.8" ]] ; then + ./scripts/mod/modpost ./vmlinux + else + ./scripts/modpost ./vmlinux + fi + fi +} + +src_unpack() { + check_KV + unpack ${A} + cd ${S} + + # http://article.gmane.org/gmane.linux.drivers.madwifi.user/4033 + epatch ${FILESDIR}/madwifi-multi-ssid-support.patch + + if kernel-mod_is_2_6_kernel && [ ${KV_PATCH} -gt 5 ]; then + for dir in ath ath_hal net80211; do + sed -i -e "s:SUBDIRS=:M=:" ${S}/${dir}/Makefile + done + + [[ "${KV_PATCH}" -ge 8 ]] && epatch ${FILESDIR}/${PN}-2.6.8-20040814-proc_dointvec.patch + fi +} + +src_compile() { + unset ARCH + make clean + make KERNELPATH="${ROOT}/usr/src/linux" KERNELRELEASE="${KV}" || die +} + +src_install() { + unset ARCH + make KERNELPATH="${ROOT}/usr/src/linux" KERNELRELEASE="${KV}" \ + DESTDIR="${D}" install || die + + dodoc README +} + +pkg_postinst() { + + [ -r "${ROOT}/usr/src/linux/System.map" ] && \ + depmod -ae -F "${ROOT}/usr/src/linux/System.map" -b "${ROOT}" -r ${KV} + + einfo "" + einfo "The madwifi drivers create an interface named 'athX'" + einfo "Create /etc/init.d/net.ath0 and add a line for athX" + einfo "in /etc/conf.d/net like 'iface_ath0=\"dhcp\"'" + einfo "" +} |