mac80211: merge Pat Erley's mac80211.sh from openwrt-devel@ with many cleanups and...
[openwrt.git] / package / madwifi / patches / 432-netdev_ops.patch
index be36128..372000f 100644 (file)
@@ -45,7 +45,15 @@ http://madwifi-project.org/changeset/4005
        dev->tx_queue_len = ATH_TXBUF - ATH_TXBUF_MGT_RESERVED;
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
        netif_napi_add(dev, &sc->sc_napi, ath_rx_poll, 64);
        dev->tx_queue_len = ATH_TXBUF - ATH_TXBUF_MGT_RESERVED;
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
        netif_napi_add(dev, &sc->sc_napi, ath_rx_poll, 64);
-@@ -12729,8 +12747,13 @@ ath_rcv_dev_event(struct notifier_block 
+@@ -1257,7 +1275,6 @@ ath_detach(struct net_device *dev)
+       ath_dynamic_sysctl_unregister(sc);
+       ATH_LOCK_DESTROY(sc);
+       ATH_HAL_LOCK_DESTROY(sc);
+-      dev->stop = NULL; /* prevent calling ath_stop again */
+       unregister_netdev(dev);
+       return 0;
+ }
+@@ -12732,8 +12749,13 @@ ath_rcv_dev_event(struct notifier_block 
        struct net_device *dev = (struct net_device *)ptr;
        struct ath_softc *sc = (struct ath_softc *)netdev_priv(dev);
  
        struct net_device *dev = (struct net_device *)ptr;
        struct ath_softc *sc = (struct ath_softc *)netdev_priv(dev);
  
@@ -80,7 +88,7 @@ http://madwifi-project.org/changeset/4005
  int
  ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev,
        const char *name, int opmode, int flags, struct ieee80211vap *master)
  int
  ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev,
        const char *name, int opmode, int flags, struct ieee80211vap *master)
-@@ -470,12 +482,17 @@ ieee80211_vap_setup(struct ieee80211com 
+@@ -470,16 +482,21 @@ ieee80211_vap_setup(struct ieee80211com 
                } else
                        strncpy(dev->name, name, sizeof(dev->name));
        }
                } else
                        strncpy(dev->name, name, sizeof(dev->name));
        }
@@ -92,12 +100,16 @@ http://madwifi-project.org/changeset/4005
        dev->hard_start_xmit = ieee80211_hardstart;
        dev->set_multicast_list = ieee80211_set_multicast_list;
 +      dev->do_ioctl = ieee80211_ioctl;
        dev->hard_start_xmit = ieee80211_hardstart;
        dev->set_multicast_list = ieee80211_set_multicast_list;
 +      dev->do_ioctl = ieee80211_ioctl;
-+#else
-+      dev->netdev_ops = &ieee80211_netdev_ops;
-+#endif
  #if 0
        dev->set_mac_address = ieee80211_set_mac_address;
  #endif
  #if 0
        dev->set_mac_address = ieee80211_set_mac_address;
  #endif
+       dev->change_mtu = ieee80211_change_mtu;
++#else
++      dev->netdev_ops = &ieee80211_netdev_ops;
++#endif
+       dev->tx_queue_len = 0;                  /* NB: bypass queuing */
+       dev->hard_header_len = parent->hard_header_len;
+       /*
 @@ -1823,7 +1840,11 @@ ieee80211_set_multicast_list(struct net_
        IEEE80211_UNLOCK_IRQ(ic);
  
 @@ -1823,7 +1840,11 @@ ieee80211_set_multicast_list(struct net_
        IEEE80211_UNLOCK_IRQ(ic);
  
@@ -129,7 +141,7 @@ http://madwifi-project.org/changeset/4005
        case NETDEV_CHANGENAME:
 --- a/net80211/ieee80211_var.h
 +++ b/net80211/ieee80211_var.h
        case NETDEV_CHANGENAME:
 --- a/net80211/ieee80211_var.h
 +++ b/net80211/ieee80211_var.h
-@@ -740,6 +740,7 @@ void ieee80211_build_sc_ie(struct ieee80
+@@ -739,6 +739,7 @@ void ieee80211_build_sc_ie(struct ieee80
  void ieee80211_dfs_action(struct ieee80211com *);
  void ieee80211_expire_channel_excl_restrictions(struct ieee80211com *);
  void ieee80211_setpuregbasicrates(struct ieee80211_rateset *rs);
  void ieee80211_dfs_action(struct ieee80211com *);
  void ieee80211_expire_channel_excl_restrictions(struct ieee80211com *);
  void ieee80211_setpuregbasicrates(struct ieee80211_rateset *rs);
@@ -139,7 +151,7 @@ http://madwifi-project.org/changeset/4005
   * Iterate through ic_channels to enumerate all distinct ic_ieee channel numbers.
 --- a/net80211/ieee80211_wireless.c
 +++ b/net80211/ieee80211_wireless.c
   * Iterate through ic_channels to enumerate all distinct ic_ieee channel numbers.
 --- a/net80211/ieee80211_wireless.c
 +++ b/net80211/ieee80211_wireless.c
-@@ -5945,7 +5945,7 @@ static struct iw_handler_def ieee80211_i
+@@ -5954,7 +5954,7 @@ static struct iw_handler_def ieee80211_i
  /*
   * Handle private ioctl requests.
   */
  /*
   * Handle private ioctl requests.
   */
@@ -148,7 +160,7 @@ http://madwifi-project.org/changeset/4005
  ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  {
        struct ieee80211vap *vap = netdev_priv(dev);
  ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  {
        struct ieee80211vap *vap = netdev_priv(dev);
-@@ -6035,7 +6035,6 @@ ieee80211_ioctl_vattach(struct ieee80211
+@@ -6044,7 +6044,6 @@ ieee80211_ioctl_vattach(struct ieee80211
  {
        struct net_device *dev = vap->iv_dev;
  
  {
        struct net_device *dev = vap->iv_dev;
  
@@ -156,3 +168,17 @@ http://madwifi-project.org/changeset/4005
  #if IW_HANDLER_VERSION < 7
        dev->get_wireless_stats = ieee80211_iw_getstats;
  #endif
  #if IW_HANDLER_VERSION < 7
        dev->get_wireless_stats = ieee80211_iw_getstats;
  #endif
+--- a/net80211/ieee80211_input.c
++++ b/net80211/ieee80211_input.c
+@@ -1188,7 +1188,11 @@ ieee80211_deliver_data(struct ieee80211_
+                       skb1->protocol = __constant_htons(ETH_P_802_2);
+                       /* XXX insert vlan tag before queue it? */
+                       ni_tmp = SKB_CB(skb1)->ni; /* remember node so we can free it */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
+                       ret = dev->hard_start_xmit(skb1, dev);
++#else
++                      ret = dev->netdev_ops->ndo_start_xmit(skb1, dev);
++#endif
+                       if (ret == NETDEV_TX_BUSY)
+                               ieee80211_dev_kfree_skb(&skb1);
This page took 0.028823 seconds and 4 git commands to generate.