@@ -1,6 +1,6 @@
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -4755,6 +4755,9 @@ struct wiphy_iftype_akm_suites {
+@@ -4782,6 +4782,9 @@ struct wiphy_iftype_akm_suites {
struct wiphy {
/* assign these fields before you register the wiphy */
@@ -11,19 +11,19 @@
device_initialize(&rdev->wiphy.dev);
rdev->wiphy.dev.class = &ieee80211_class;
rdev->wiphy.dev.platform_data = rdev;
-@@ -1319,6 +1315,15 @@ static int cfg80211_netdev_notifier_call
- }
- wdev->netdev = dev;
+@@ -1271,6 +1267,15 @@ void cfg80211_init_wdev(struct wireless_
+ INIT_WORK(&wdev->pmsr_free_wk, cfg80211_pmsr_free_wk);
+
#ifdef CONFIG_CFG80211_WEXT
+#ifdef CONFIG_WIRELESS_EXT
-+ if (!dev->wireless_handlers)
-+ dev->wireless_handlers = &cfg80211_wext_handler;
++ if (!wdev->netdev->wireless_handlers)
++ wdev->netdev->wireless_handlers = &cfg80211_wext_handler;
+#else
-+ printk_once(KERN_WARNING "cfg80211: wext will not work because "
-+ "kernel was compiled with CONFIG_WIRELESS_EXT=n. "
-+ "Tools using wext interface, like iwconfig will "
-+ "not work.\n");
++ printk_once(KERN_WARNING "cfg80211: wext will not work because "
++ "kernel was compiled with CONFIG_WIRELESS_EXT=n. "
++ "Tools using wext interface, like iwconfig will "
++ "not work.\n");
+#endif
- wdev->wext.default_key = -1;
- wdev->wext.default_mgmt_key = -1;
- wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
+ wdev->wext.default_key = -1;
+ wdev->wext.default_mgmt_key = -1;
+ wdev->wext.connect.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
@@ -1,6 +1,6 @@
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -9042,7 +9042,9 @@ static int nl80211_dump_scan(struct sk_b
+@@ -9047,7 +9047,9 @@ static int nl80211_dump_scan(struct sk_b
if (start == 0)
cfg80211_bss_expire(rdev);
@@ -1,6 +1,6 @@
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -1319,6 +1319,7 @@ struct ieee80211_local {
+@@ -1318,6 +1318,7 @@ struct ieee80211_local {
struct mutex chanctx_mtx;
#ifdef CONFIG_MAC80211_LEDS
@@ -1,6 +1,6 @@
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1310,6 +1310,7 @@ EXPORT_SYMBOL_GPL(usbnet_tx_timeout);
+@@ -1311,6 +1311,7 @@ EXPORT_SYMBOL_GPL(usbnet_tx_timeout);
/*-------------------------------------------------------------------------*/
@@ -8,7 +8,7 @@
static int build_dma_sg(const struct sk_buff *skb, struct urb *urb)
{
unsigned num_sgs, total_len = 0;
-@@ -1342,6 +1343,12 @@ static int build_dma_sg(const struct sk_
+@@ -1343,6 +1344,12 @@ static int build_dma_sg(const struct sk_
return 1;
}
@@ -21,7 +21,7 @@
netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
struct net_device *net)
-@@ -1398,12 +1405,19 @@ netdev_tx_t usbnet_start_xmit (struct sk
+@@ -1399,12 +1406,19 @@ netdev_tx_t usbnet_start_xmit (struct sk
if (!(info->flags & FLAG_SEND_ZLP)) {
if (!(info->flags & FLAG_MULTI_PACKET)) {
length++;
@@ -41,7 +41,7 @@
}
} else
urb->transfer_flags |= URB_ZERO_PACKET;
-@@ -1475,7 +1489,9 @@ not_drop:
+@@ -1476,7 +1490,9 @@ not_drop:
if (skb)
dev_kfree_skb_any (skb);
if (urb) {
@@ -51,17 +51,17 @@
usb_free_urb(urb);
}
} else
-@@ -1528,7 +1544,9 @@ static void usbnet_bh (struct timer_list
+@@ -1529,7 +1545,9 @@ static void usbnet_bh (struct timer_list
rx_process (dev, skb);
continue;
case tx_done:
+#if LINUX_VERSION_IS_GEQ(3,35,0)
kfree(entry->urb->sg);
+#endif
- /* fall through */
+ fallthrough;
case rx_cleanup:
usb_free_urb (entry->urb);
-@@ -1903,7 +1921,9 @@ int usbnet_resume (struct usb_interface
+@@ -1904,7 +1922,9 @@ int usbnet_resume (struct usb_interface
retval = usb_submit_urb(res, GFP_ATOMIC);
if (retval < 0) {
dev_kfree_skb_any(skb);
@@ -2,7 +2,7 @@ diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 04e5785..a251da1 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -4898,12 +4898,12 @@ struct wiphy {
+@@ -4925,12 +4925,12 @@ struct wiphy {
static inline struct net *wiphy_net(struct wiphy *wiphy)
{
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
-@@ -2339,7 +2339,9 @@ struct wireless_dev *brcmf_p2p_add_vif(s
+@@ -2338,7 +2338,9 @@ struct wireless_dev *brcmf_p2p_add_vif(s
}
strncpy(ifp->ndev->name, name, sizeof(ifp->ndev->name) - 1);
@@ -1,6 +1,6 @@
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
-@@ -678,7 +678,11 @@ void ieee80211_amsdu_to_8023s(struct sk_
+@@ -686,7 +686,11 @@ void ieee80211_amsdu_to_8023s(struct sk_
u8 *payload;
int offset = 0, remaining;
struct ethhdr eth;
@@ -12,7 +12,7 @@
{
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
-@@ -285,5 +285,9 @@ extern void usbnet_status_stop(struct us
+@@ -287,5 +287,9 @@ extern void usbnet_status_stop(struct us
extern void usbnet_update_max_qlen(struct usbnet *dev);
extern void usbnet_get_stats64(struct net_device *dev,
struct rtnl_link_stats64 *stats);
@@ -1,6 +1,6 @@
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -15246,7 +15246,7 @@ static const struct genl_ops nl80211_ops
+@@ -15252,7 +15252,7 @@ static const struct genl_ops nl80211_ops
},
};
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -626,6 +626,23 @@ static const struct net_device_ops brcmf
+@@ -629,6 +629,23 @@ static const struct net_device_ops brcmf
.ndo_set_rx_mode = brcmf_netdev_set_multicast_list
};
@@ -24,7 +24,7 @@
int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked)
{
struct brcmf_pub *drvr = ifp->drvr;
-@@ -876,7 +893,11 @@ struct brcmf_if *brcmf_add_if(struct brc
+@@ -879,7 +896,11 @@ struct brcmf_if *brcmf_add_if(struct brc
if (!ndev)
return ERR_PTR(-ENOMEM);
deleted file mode 100644
@@ -1,36 +0,0 @@
---- a/include/net/fq.h
-+++ b/include/net/fq.h
-@@ -69,7 +69,15 @@ struct fq {
- struct list_head backlogs;
- spinlock_t lock;
- u32 flows_cnt;
-+#if LINUX_VERSION_IS_GEQ(5,3,10) || \
-+ LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
-+ LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
-+ LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
-+ LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
- siphash_key_t perturbation;
-+#else
-+ u32 perturbation;
-+#endif
- u32 limit;
- u32 memory_limit;
- u32 memory_usage;
---- a/include/net/fq_impl.h
-+++ b/include/net/fq_impl.h
-@@ -108,7 +108,15 @@ begin:
-
- static u32 fq_flow_idx(struct fq *fq, struct sk_buff *skb)
- {
-+#if LINUX_VERSION_IS_GEQ(5,3,10) || \
-+ LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
-+ LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
-+ LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
-+ LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
- u32 hash = skb_get_hash_perturb(skb, &fq->perturbation);
-+#else
-+ u32 hash = skb_get_hash_perturb(skb, fq->perturbation);
-+#endif
-
- return reciprocal_scale(hash, fq->flows_cnt);
- }
@@ -10,7 +10,7 @@
#endif /* _ISL_GEN_H */
--- a/drivers/net/wireless/intersil/prism54/islpci_eth.c
+++ b/drivers/net/wireless/intersil/prism54/islpci_eth.c
-@@ -491,3 +491,10 @@ islpci_eth_tx_timeout(struct net_device
+@@ -487,3 +487,10 @@ islpci_eth_tx_timeout(struct net_device
"%s: tx_timeout, waiting for reset", ndev->name);
}
}
@@ -1,6 +1,6 @@
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
-@@ -254,6 +254,7 @@ extern int usbnet_stop(struct net_device
+@@ -255,6 +255,7 @@ extern int usbnet_stop(struct net_device
extern netdev_tx_t usbnet_start_xmit(struct sk_buff *skb,
struct net_device *net);
extern void usbnet_tx_timeout(struct net_device *net, unsigned int txqueue);
patches/0010-add-wext-handlers-to-netdev/net_wireless_core.patch was manually applied. The position where we add our wireless_handlers was changed because of some upstream changes. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- .../include_net_cfg80211.patch | 2 +- .../net_wireless_core.patch | 24 ++++++------- .../net_wireless_nl80211.patch | 2 +- patches/0024-led-blink-api/mac80211.patch | 2 +- patches/0025-usb-sg/usbnet.patch | 14 ++++---- patches/0053-possible_net_t.patch | 2 +- patches/0055-name_assign_type/brcmfmac.patch | 2 +- patches/0071-skb-head_frag/wireless.patch | 2 +- patches/0075-ndo-stats-64/usbnet.patch | 2 +- patches/0077-genl-ro-after-init/nl80211.patch | 2 +- patches/0079-netdev-destructor/brcmfmac.patch | 4 +-- patches/0091-fq-no-siphash_key_t/fq.patch | 36 ------------------- patches/0094-ndo-tx-timeout/prism54.patch | 2 +- patches/0094-ndo-tx-timeout/usbnet.patch | 2 +- 14 files changed, 31 insertions(+), 67 deletions(-) delete mode 100644 patches/0091-fq-no-siphash_key_t/fq.patch