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

Reply via email to