Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=kernel2631.git;a=commitdiff;h=dc26cdb30a568f13beb1e593a41b57aadb3e4511
commit dc26cdb30a568f13beb1e593a41b57aadb3e4511 Author: Miklos Vajna <vmik...@frugalware.org> Date: Mon Sep 14 22:31:31 2009 +0200 madwifi-0.9.4-28-i686 - add kernel-2.6.31.patch diff --git a/source/network/madwifi/FrugalBuild b/source/network/madwifi/FrugalBuild index 3a1f1be..49c3954 100644 --- a/source/network/madwifi/FrugalBuild +++ b/source/network/madwifi/FrugalBuild @@ -3,7 +3,7 @@ pkgname=madwifi pkgver=0.9.4 -pkgrel=27 +pkgrel=28 pkgdesc="Madwifi drivers for Atheros wireless chipsets" Finclude kernel-module depends=(${depen...@]} 'wireless_tools') @@ -13,13 +13,14 @@ groups=('network') archs=('i686' 'x86_64') Finclude sourceforge url="http://madwifi.sourceforge.net/" -source=($source madwifi-0.9.3-cflags.diff kernel-2.6.2{6,7,9}.patch kernel-2.6.30.patch) +source=($source madwifi-0.9.3-cflags.diff kernel-2.6.2{6,7,9}.patch kernel-2.6.3{0,1}.patch) sha1sums=('6f289cb2e99d27b23570d15b69bf0f4240e34d1e' \ '26fdc221e5bb0299d8b3c41ad30b6fe6882a8e35' \ '41928bbfdbb4e1c1fa5c1ed93fb673542c18bbc3' \ 'd13a31f131b227838046c384e04cb32922b481bf' \ '0afa565128984ebcae441580b83eb916a2f3f09c' \ - '8e9aef8b6d7fe815bb0816f107b65cda362d520e') + '8e9aef8b6d7fe815bb0816f107b65cda362d520e' \ + '49e925f5a0a1705e9e9475f44f4005d6576fe51b') # If the package needs testing, feel free to poke Benjamin Woods <woods...@gmail.com> diff --git a/source/network/madwifi/kernel-2.6.31.patch b/source/network/madwifi/kernel-2.6.31.patch new file mode 100644 index 0000000..ca9946d --- /dev/null +++ b/source/network/madwifi/kernel-2.6.31.patch @@ -0,0 +1,203 @@ +diff --git a/ath/if_ath.c b/ath/if_ath.c +index 1409fd7..43ae664 100644 +--- a/ath/if_ath.c ++++ b/ath/if_ath.c +@@ -396,6 +396,18 @@ enum { + (bssid)[0] |= (((id) << 2) | 0x02); \ + } while(0) + ++static const struct net_device_ops ath_netdev_ops = { ++ .ndo_open = ath_init, ++ .ndo_stop = ath_stop, ++ .ndo_start_xmit = ath_hardstart, ++ .ndo_tx_timeout = ath_tx_timeout, ++ .ndo_set_multicast_list = ath_mode_init, ++ .ndo_do_ioctl = ath_ioctl, ++ .ndo_get_stats = ath_getstats, ++ .ndo_set_mac_address = ath_set_mac_address, ++ .ndo_change_mtu = ath_change_mtu, ++}; ++ + int + ath_attach(u_int16_t devid, struct net_device *dev, HAL_BUS_TAG tag) + { +@@ -675,16 +687,8 @@ ath_attach(u_int16_t devid, struct net_device *dev, HAL_BUS_TAG tag) + } + + /* NB: ether_setup is done by bus-specific code */ +- dev->open = ath_init; +- dev->stop = ath_stop; +- dev->hard_start_xmit = ath_hardstart; +- dev->tx_timeout = ath_tx_timeout; ++ dev->netdev_ops = &ath_netdev_ops; + dev->watchdog_timeo = 5 * HZ; /* XXX */ +- dev->set_multicast_list = ath_mode_init; +- dev->do_ioctl = ath_ioctl; +- dev->get_stats = ath_getstats; +- dev->set_mac_address = ath_set_mac_address; +- dev->change_mtu = ath_change_mtu; + dev->tx_queue_len = ATH_TXBUF - 1; /* 1 for mgmt frame */ + #ifdef USE_HEADERLEN_RESV + dev->hard_header_len += sizeof(struct ieee80211_qosframe) + +@@ -1002,7 +1006,7 @@ ath_detach(struct net_device *dev) + + ath_dynamic_sysctl_unregister(sc); + ATH_LOCK_DESTROY(sc); +- dev->stop = NULL; /* prevent calling ath_stop again */ ++ dev->flags &= ~IFF_RUNNING; /* mark as stopped */ + unregister_netdev(dev); + return 0; + } +@@ -9925,7 +9929,7 @@ ath_rcv_dev_event(struct notifier_block *this, unsigned long event, + struct net_device *dev = (struct net_device *) ptr; + struct ath_softc *sc = (struct ath_softc *) netdev_priv(dev); + +- if (!dev || !sc || dev->open != &ath_init) ++ if (!dev || !sc || dev->netdev_ops->ndo_open != &ath_init) + return 0; + + switch (event) { +diff --git a/net80211/ieee80211.c b/net80211/ieee80211.c +index f08cb93..4569383 100644 +--- a/net80211/ieee80211.c ++++ b/net80211/ieee80211.c +@@ -371,6 +371,21 @@ ieee80211_ifdetach(struct ieee80211com *ic) + } + EXPORT_SYMBOL(ieee80211_ifdetach); + ++static const struct net_device_ops ieee80211_netdev_ops = { ++ .ndo_get_stats = ieee80211_getstats, ++ .ndo_open = ieee80211_open, ++ .ndo_stop = ieee80211_stop, ++ .ndo_start_xmit = ieee80211_hardstart, ++ .ndo_set_multicast_list = ieee80211_set_multicast_list, ++ .ndo_change_mtu = ieee80211_change_mtu, ++ .ndo_do_ioctl = ieee80211_ioctl, ++#if IEEE80211_VLAN_TAG_USED ++ .ndo_vlan_rx_register = ieee80211_vlan_register, ++ .ndo_vlan_rx_add_vid = ieee80211_vlan_add_vid, ++ .ndo_vlan_rx_kill_vid = ieee80211_vlan_kill_vid, ++#endif ++}; ++ + int + ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev, + const char *name, int unit, int opmode, int flags) +@@ -391,15 +406,7 @@ ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev, + } else + strncpy(dev->name, name, sizeof(dev->name)); + } +- dev->get_stats = ieee80211_getstats; +- dev->open = ieee80211_open; +- dev->stop = ieee80211_stop; +- dev->hard_start_xmit = ieee80211_hardstart; +- dev->set_multicast_list = ieee80211_set_multicast_list; +-#if 0 +- dev->set_mac_address = ieee80211_set_mac_address; +-#endif +- dev->change_mtu = ieee80211_change_mtu; ++ dev->netdev_ops = &ieee80211_netdev_ops; + dev->tx_queue_len = 0; /* NB: bypass queuing */ + dev->hard_header_len = parent->hard_header_len; + /* +@@ -1518,7 +1525,7 @@ ieee80211_set_multicast_list(struct net_device *dev) + IEEE80211_UNLOCK_IRQ(ic); + + /* XXX merge multicast list into parent device */ +- parent->set_multicast_list(ic->ic_dev); ++ parent->netdev_ops->ndo_set_multicast_list(ic->ic_dev); + } + + void +diff --git a/net80211/ieee80211_linux.c b/net80211/ieee80211_linux.c +index d93b208..d433b10 100644 +--- a/net80211/ieee80211_linux.c ++++ b/net80211/ieee80211_linux.c +@@ -137,7 +137,7 @@ __skb_queue_drain(struct sk_buff_head *q) + /* + * Register a vlan group. + */ +-static void ++void + ieee80211_vlan_register(struct net_device *dev, struct vlan_group *grp) + { + struct ieee80211vap *vap = netdev_priv(dev); +@@ -148,7 +148,7 @@ ieee80211_vlan_register(struct net_device *dev, struct vlan_group *grp) + /* + * Add an rx vlan identifier + */ +-static void ++void + ieee80211_vlan_add_vid(struct net_device *dev, unsigned short vid) + { + struct ieee80211vap *vap = netdev_priv(dev); +@@ -160,7 +160,7 @@ ieee80211_vlan_add_vid(struct net_device *dev, unsigned short vid) + /* + * Kill (i.e. delete) a vlan identifier. + */ +-static void ++void + ieee80211_vlan_kill_vid(struct net_device *dev, unsigned short vid) + { + struct ieee80211vap *vap = netdev_priv(dev); +@@ -178,9 +178,6 @@ ieee80211_vlan_vattach(struct ieee80211vap *vap) + + dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | + NETIF_F_HW_VLAN_FILTER; +- dev->vlan_rx_register = ieee80211_vlan_register; +- dev->vlan_rx_add_vid = ieee80211_vlan_add_vid; +- dev->vlan_rx_kill_vid = ieee80211_vlan_kill_vid; + #endif /* IEEE80211_VLAN_TAG_USED */ + } + +@@ -898,7 +895,7 @@ ieee80211_rcv_dev_event(struct notifier_block *this, unsigned long event, + void *ptr) + { + struct net_device *dev = (struct net_device *) ptr; +- if (!dev || dev->open != &ieee80211_open) ++ if (!dev || dev->netdev_ops->ndo_open != &ieee80211_open) + return 0; + + switch (event) { +diff --git a/net80211/ieee80211_linux.h b/net80211/ieee80211_linux.h +index 2efe4a1..a615197 100644 +--- a/net80211/ieee80211_linux.h ++++ b/net80211/ieee80211_linux.h +@@ -559,6 +559,7 @@ void ieee80211_vlan_vdetach(struct ieee80211vap *); + #define free_netdev(dev) kfree(dev) + #endif + ++int ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); + void ieee80211_ioctl_vattach(struct ieee80211vap *); + void ieee80211_ioctl_vdetach(struct ieee80211vap *); + struct ifreq; +@@ -566,4 +567,8 @@ int ieee80211_ioctl_create_vap(struct ieee80211com *, struct ifreq *, + struct net_device *); + int ieee80211_create_vap(struct ieee80211com *, char *, struct net_device *, + int, int); ++void ieee80211_vlan_register(struct net_device *dev, struct vlan_group *grp); ++void ieee80211_vlan_add_vid(struct net_device *dev, unsigned short vid); ++void ieee80211_vlan_kill_vid(struct net_device *dev, unsigned short vid); ++ + #endif /* _NET80211_IEEE80211_LINUX_H_ */ +diff --git a/net80211/ieee80211_wireless.c b/net80211/ieee80211_wireless.c +index cb07209..b2b6d2a 100644 +--- a/net80211/ieee80211_wireless.c ++++ b/net80211/ieee80211_wireless.c +@@ -5306,7 +5306,7 @@ static void ieee80211_delete_wlanunit(u_int); + /* + * Handle private ioctl requests. + */ +-static int ++int + ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + { + struct ieee80211vap *vap = netdev_priv(dev); +@@ -5439,7 +5439,6 @@ ieee80211_ioctl_vattach(struct ieee80211vap *vap) + { + struct net_device *dev = vap->iv_dev; + +- dev->do_ioctl = ieee80211_ioctl; + #if IW_HANDLER_VERSION < 7 + dev->get_wireless_stats = ieee80211_iw_getstats; + #endif _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git