madwifi: fix wlanconfig athX destroy on 2.6.30 (incomplete netdev_ops transition)
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Jun 2009 22:35:48 +0000 (22:35 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Jun 2009 22:35:48 +0000 (22:35 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16289 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/madwifi/patches/432-netdev_ops.patch [moved from package/madwifi/patches/432-backport_oops.patch with 74% similarity]

similarity index 74%
rename from package/madwifi/patches/432-backport_oops.patch
rename to package/madwifi/patches/432-netdev_ops.patch
index 4118fd812a58d0b225f37b7720ead4e5f220ecc7..be361287d39fcbe54034026ff8b060238305d0db 100644 (file)
@@ -61,7 +61,7 @@ http://madwifi-project.org/changeset/4005
        case NETDEV_CHANGENAME:
 --- a/net80211/ieee80211.c
 +++ b/net80211/ieee80211.c
-@@ -450,6 +450,17 @@ ieee80211_ifdetach(struct ieee80211com *
+@@ -450,6 +450,18 @@ ieee80211_ifdetach(struct ieee80211com *
  }
  EXPORT_SYMBOL(ieee80211_ifdetach);
  
@@ -73,13 +73,14 @@ http://madwifi-project.org/changeset/4005
 +      .ndo_start_xmit         = ieee80211_hardstart,
 +      .ndo_set_multicast_list = ieee80211_set_multicast_list,
 +      .ndo_change_mtu         = ieee80211_change_mtu,
++      .ndo_do_ioctl           = ieee80211_ioctl,
 +};
 +#endif
 +
  int
  ieee80211_vap_setup(struct ieee80211com *ic, struct net_device *dev,
        const char *name, int opmode, int flags, struct ieee80211vap *master)
-@@ -470,12 +481,16 @@ ieee80211_vap_setup(struct ieee80211com 
+@@ -470,12 +482,17 @@ ieee80211_vap_setup(struct ieee80211com 
                } else
                        strncpy(dev->name, name, sizeof(dev->name));
        }
@@ -90,13 +91,14 @@ http://madwifi-project.org/changeset/4005
        dev->stop = ieee80211_stop;
        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
-@@ -1823,7 +1838,11 @@ ieee80211_set_multicast_list(struct net_
+@@ -1823,7 +1840,11 @@ ieee80211_set_multicast_list(struct net_
        IEEE80211_UNLOCK_IRQ(ic);
  
        /* XXX: Merge multicast list into parent device */
@@ -125,3 +127,32 @@ http://madwifi-project.org/changeset/4005
  
        switch (event) {
        case NETDEV_CHANGENAME:
+--- a/net80211/ieee80211_var.h
++++ b/net80211/ieee80211_var.h
+@@ -740,6 +740,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);
++int ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
+ /*
+  * 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
+ /*
+  * Handle private ioctl requests.
+  */
+-static int
++int
+ 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
+ {
+       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