From: Luis R. Rodriguez Date: Wed, 4 Feb 2009 08:53:05 +0000 (-0800) Subject: Port new net_device_ops changes, this ports work from: X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=011152f94614693886cec16672ec64cc00c4101f;p=openwrt%2Fstaging%2Fblogic.git Port new net_device_ops changes, this ports work from: mac80211: convert master interface to netdev_ops mac80211: convert to net_device_ops 2.6.27 and 2.6.28 get the old stuff. Signed-off-by: Luis R. Rodriguez --- diff --git a/compat/compat.diff b/compat/compat.diff index 2e85d535547d..0efa60305349 100644 --- a/compat/compat.diff +++ b/compat/compat.diff @@ -180,27 +180,9 @@ index a0c860f..9c6f214 100644 - zd_chip_control_leds(&mac->chip, LED_OFF); + zd_chip_control_leds(&mac->chip, LED_OFF_ZD); } ---- a/net/mac80211/main.c 2009-01-23 12:56:18.000000000 -0800 -+++ b/net/mac80211/main.c 2009-01-23 12:56:24.000000000 -0800 -@@ -485,6 +485,7 @@ - return; - } - -+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)) - if (!test_sta_flags(sta, WLAN_STA_PS) && !skb->requeue) { - /* Software retry the packet once */ - skb->requeue = 1; -@@ -492,6 +493,7 @@ - dev_queue_xmit(skb); - return; - } -+#endif - - #ifdef CONFIG_MAC80211_VERBOSE_DEBUG - if (net_ratelimit()) ---- a/net/mac80211/rx.c 2009-01-15 16:35:33.000000000 -0800 -+++ b/net/mac80211/rx.c 2009-01-15 16:35:33.000000000 -0800 -@@ -780,12 +780,17 @@ +--- a/net/mac80211/rx.c 2009-02-04 00:21:05.000000000 -0800 ++++ b/net/mac80211/rx.c 2009-02-04 00:20:41.000000000 -0800 +@@ -771,12 +771,17 @@ /* Send all buffered frames to the station */ while ((skb = skb_dequeue(&sta->tx_filtered)) != NULL) { @@ -218,7 +200,7 @@ index a0c860f..9c6f214 100644 sent++; #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %pM aid %d send PS frame " -@@ -794,6 +799,9 @@ +@@ -785,6 +790,9 @@ #endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ skb->requeue = 1; dev_queue_xmit(skb); @@ -317,3 +299,120 @@ index a0c860f..9c6f214 100644 dev->irq = sdev->irq; SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); +--- a/net/mac80211/iface.c 2009-02-04 00:14:56.000000000 -0800 ++++ b/net/mac80211/iface.c 2009-02-04 00:19:28.000000000 -0800 +@@ -658,6 +658,7 @@ + WARN_ON(flushed); + } + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + static const struct net_device_ops ieee80211_dataif_ops = { + .ndo_open = ieee80211_open, + .ndo_stop = ieee80211_stop, +@@ -677,11 +678,22 @@ + .ndo_change_mtu = ieee80211_change_mtu, + .ndo_set_mac_address = eth_mac_addr, + }; ++#endif + + static void ieee80211_if_setup(struct net_device *dev) + { + ether_setup(dev); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + dev->netdev_ops = &ieee80211_dataif_ops; ++#else ++ dev->hard_start_xmit = ieee80211_subif_start_xmit; ++ dev->set_multicast_list = ieee80211_set_multicast_list; ++ dev->change_mtu = ieee80211_change_mtu; ++ dev->open = ieee80211_open; ++ dev->stop = ieee80211_stop; ++ /* we will validate the address ourselves in ->open */ ++ dev->validate_addr = NULL; ++#endif + dev->wireless_handlers = &ieee80211_iw_handler_def; + dev->destructor = free_netdev; + } +@@ -697,7 +709,11 @@ + + /* and set some type-dependent values */ + sdata->vif.type = type; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + sdata->dev->netdev_ops = &ieee80211_dataif_ops; ++#else ++ sdata->dev->hard_start_xmit = ieee80211_subif_start_xmit; ++#endif + sdata->wdev.iftype = type; + + /* only monitor differs */ +@@ -718,7 +734,11 @@ + break; + case NL80211_IFTYPE_MONITOR: + sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + sdata->dev->netdev_ops = &ieee80211_monitorif_ops; ++#else ++ sdata->dev->hard_start_xmit = ieee80211_monitor_start_xmit; ++#endif + sdata->u.mntr_flags = MONITOR_FLAG_CONTROL | + MONITOR_FLAG_OTHER_BSS; + break; +@@ -824,6 +844,10 @@ + if (ret) + goto fail; + ++#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,28)) ++ ndev->uninit = ieee80211_teardown_sdata; ++#endif ++ + if (ieee80211_vif_is_mesh(&sdata->vif) && + params && params->mesh_id_len) + ieee80211_sdata_set_mesh_id(sdata, +--- a/net/mac80211/main.c 2009-02-04 00:10:33.000000000 -0800 ++++ b/net/mac80211/main.c 2009-02-04 00:07:50.000000000 -0800 +@@ -485,6 +485,7 @@ + return; + } + ++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)) + if (!test_sta_flags(sta, WLAN_STA_PS) && !skb->requeue) { + /* Software retry the packet once */ + skb->requeue = 1; +@@ -492,6 +493,7 @@ + dev_queue_xmit(skb); + return; + } ++#endif + + #ifdef CONFIG_MAC80211_VERBOSE_DEBUG + if (net_ratelimit()) +@@ -791,6 +793,7 @@ + } + EXPORT_SYMBOL(ieee80211_alloc_hw); + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + static const struct net_device_ops ieee80211_master_ops = { + .ndo_start_xmit = ieee80211_master_start_xmit, + .ndo_open = ieee80211_master_open, +@@ -798,12 +801,22 @@ + .ndo_set_multicast_list = ieee80211_master_set_multicast_list, + .ndo_select_queue = ieee80211_select_queue, + }; ++#endif + + static void ieee80211_master_setup(struct net_device *mdev) + { + mdev->type = ARPHRD_IEEE80211; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + mdev->netdev_ops = &ieee80211_master_ops; + mdev->header_ops = &ieee80211_header_ops; ++#else ++ mdev->hard_start_xmit = ieee80211_master_start_xmit; ++ mdev->open = ieee80211_master_open; ++ mdev->stop = ieee80211_master_stop; ++ mdev->header_ops = &ieee80211_header_ops; ++ mdev->set_multicast_list = ieee80211_master_set_multicast_list; ++ mdev->select_queue = ieee80211_select_queue; ++#endif + mdev->tx_queue_len = 1000; + mdev->addr_len = ETH_ALEN; + }