mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-02-10 16:47:54 +00:00
The NXP LSDK kernel backported changes for interface ndo_get_stats64 functions from mainline, this causes a compile error with backports/mac80211, which expects the original 4.9 defintion. As reversing the ndo_get_stats64 change signifcantly reduces the size of patch 601, the patches that were aggregated into it have been disaggregated. Signed-off-by: Mathew McBride <matt@traverse.com.au>
61 lines
2.0 KiB
Diff
61 lines
2.0 KiB
Diff
From 3d33284eb087deb7f62639a2d2c03b9d0a3eeb34 Mon Sep 17 00:00:00 2001
|
|
From: Camelia Groza <camelia.groza@nxp.com>
|
|
Date: Mon, 11 Sep 2017 17:20:41 +0800
|
|
Subject: [PATCH] sdk_dpaa: update the xmit timestamp to avoid watchdog
|
|
timeouts
|
|
|
|
[core-linux part]
|
|
|
|
Update txq0's trans_start in order to prevent the netdev watchdog from
|
|
triggering too quickly. Since we set the LLTX flag, the stack won't update
|
|
the jiffies for other tx queues. Prevent the watchdog from checking the
|
|
other tx queues by adding the NETIF_HW_ACCEL_MQ flag.
|
|
|
|
Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
|
|
---
|
|
include/linux/netdev_features.h | 2 ++
|
|
net/sched/sch_generic.c | 7 +++++++
|
|
2 files changed, 9 insertions(+)
|
|
|
|
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
|
|
index 9c6c8ef2e9e7..90b4107ebeff 100644
|
|
--- a/include/linux/netdev_features.h
|
|
+++ b/include/linux/netdev_features.h
|
|
@@ -74,6 +74,7 @@ enum {
|
|
NETIF_F_BUSY_POLL_BIT, /* Busy poll */
|
|
|
|
NETIF_F_HW_TC_BIT, /* Offload TC infrastructure */
|
|
+ NETIF_F_HW_ACCEL_MQ_BIT, /* Hardware-accelerated multiqueue */
|
|
|
|
/*
|
|
* Add your fresh new feature above and remember to update
|
|
@@ -136,6 +137,7 @@ enum {
|
|
#define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD)
|
|
#define NETIF_F_BUSY_POLL __NETIF_F(BUSY_POLL)
|
|
#define NETIF_F_HW_TC __NETIF_F(HW_TC)
|
|
+#define NETIF_F_HW_ACCEL_MQ __NETIF_F(HW_ACCEL_MQ)
|
|
|
|
#define for_each_netdev_feature(mask_addr, bit) \
|
|
for_each_set_bit(bit, (unsigned long *)mask_addr, NETDEV_FEATURE_COUNT)
|
|
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
|
|
index 6cfb6e9038c2..3fab16cb7c58 100644
|
|
--- a/net/sched/sch_generic.c
|
|
+++ b/net/sched/sch_generic.c
|
|
@@ -309,6 +309,13 @@ static void dev_watchdog(unsigned long arg)
|
|
txq->trans_timeout++;
|
|
break;
|
|
}
|
|
+
|
|
+ /* Devices with HW_ACCEL_MQ have multiple txqs
|
|
+ * but update only the first one's transmission
|
|
+ * timestamp so avoid checking the rest.
|
|
+ */
|
|
+ if (dev->features & NETIF_F_HW_ACCEL_MQ)
|
|
+ break;
|
|
}
|
|
|
|
if (some_queue_timedout) {
|
|
--
|
|
2.11.1
|
|
|