@@ -1,15 +1,20 @@
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1126,10 +1126,20 @@ static void ieee80211_uninit(struct net_
+@@ -1128,10 +1128,25 @@ static void ieee80211_uninit(struct net_
ieee80211_teardown_sdata(IEEE80211_DEV_TO_SUB_IF(dev));
}
-+#if LINUX_VERSION_IS_GEQ(3,14,0) || \
-+ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++#if LINUX_VERSION_IS_GEQ(4,19,0)
static u16 ieee80211_netdev_select_queue(struct net_device *dev,
struct sk_buff *skb,
- void *accel_priv,
+ struct net_device *sb_dev,
select_queue_fallback_t fallback)
++#elif LINUX_VERSION_IS_GEQ(3,14,0) || \
++ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++static u16 ieee80211_netdev_select_queue(struct net_device *dev,
++ struct sk_buff *skb,
++ void *accel_priv,
++ select_queue_fallback_t fallback)
+#elif LINUX_VERSION_IS_GEQ(3,13,0)
+static u16 ieee80211_netdev_select_queue(struct net_device *dev,
+ struct sk_buff *skb,
@@ -21,16 +26,21 @@
{
return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
}
-@@ -1172,10 +1182,20 @@ static const struct net_device_ops ieee8
+@@ -1174,10 +1189,25 @@ static const struct net_device_ops ieee8
.ndo_get_stats64 = ieee80211_get_stats64,
};
-+#if LINUX_VERSION_IS_GEQ(3,14,0) || \
-+ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++#if LINUX_VERSION_IS_GEQ(4,19,0)
static u16 ieee80211_monitor_select_queue(struct net_device *dev,
struct sk_buff *skb,
- void *accel_priv,
+ struct net_device *sb_dev,
select_queue_fallback_t fallback)
++#elif LINUX_VERSION_IS_GEQ(3,14,0) || \
++ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++static u16 ieee80211_monitor_select_queue(struct net_device *dev,
++ struct sk_buff *skb,
++ void *accel_priv,
++ select_queue_fallback_t fallback)
+#elif LINUX_VERSION_IS_GEQ(3,13,0)
+static u16 ieee80211_monitor_select_queue(struct net_device *dev,
+ struct sk_buff *skb,
@@ -1,14 +1,19 @@
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
-@@ -1261,9 +1261,19 @@ static struct net_device_stats *mwifiex_
+@@ -1280,10 +1280,24 @@ static struct net_device_stats *mwifiex_
return &priv->stats;
}
-+#if LINUX_VERSION_IS_GEQ(3,14,0) || \
-+ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++#if LINUX_VERSION_IS_GEQ(4,19,0)
static u16
mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb,
- void *accel_priv, select_queue_fallback_t fallback)
+ struct net_device *sb_dev,
+ select_queue_fallback_t fallback)
++#elif LINUX_VERSION_IS_GEQ(3,14,0) || \
++ (LINUX_VERSION_CODE == KERNEL_VERSION(3,13,11) && UTS_UBUNTU_RELEASE_ABI > 30)
++static u16
++mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb,
++ void *accel_priv, select_queue_fallback_t fallback)
+#elif LINUX_VERSION_IS_GEQ(3,13,0)
+static u16
+mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb,
new file mode 100644
@@ -0,0 +1,18 @@
+--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
++++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+@@ -244,9 +244,15 @@ static unsigned int rtw_classify8021d(st
+ return dscp >> 5;
+ }
+
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
+ struct net_device *sb_dev,
+ select_queue_fallback_t fallback)
++#else
++static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
++ void *accel_priv,
++ select_queue_fallback_t fallback)
++#endif
+ {
+ struct adapter *padapter = rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
new file mode 100644
@@ -0,0 +1,18 @@
+--- a/drivers/staging/rtl8723bs/os_dep/os_intfs.c
++++ b/drivers/staging/rtl8723bs/os_dep/os_intfs.c
+@@ -403,9 +403,15 @@ static unsigned int rtw_classify8021d(st
+ }
+
+
++#if LINUX_VERSION_IS_GEQ(4,19,0)
+ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
+ struct net_device *sb_dev,
+ select_queue_fallback_t fallback)
++#else
++static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
++ void *accel_priv,
++ select_queue_fallback_t fallback)
++#endif
+ {
+ struct adapter *padapter = rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
The select queue API was changed in upstream commit 4f49dec9075a ("net: allow ndo_select_queue to pass netdev"). This patch adds a new version of the API for kernel < 4.19 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- patches/0028-select_queue/mac80211.patch | 26 ++++++++++++++++++-------- patches/0028-select_queue/mwifiex.patch | 13 +++++++++---- patches/0028-select_queue/rtl8188eu.patch | 18 ++++++++++++++++++ patches/0028-select_queue/rtl8723bs.patch | 18 ++++++++++++++++++ 4 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 patches/0028-select_queue/rtl8188eu.patch create mode 100644 patches/0028-select_queue/rtl8723bs.patch