[openwrt/openwrt] rockchip: reliably distribute net interrupts

LEDE Commits lede-commits at lists.infradead.org
Fri Jul 15 04:32:43 PDT 2022


ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/01b8cd32003408ba3aab7a48b0ffa90b5b720f0d

commit 01b8cd32003408ba3aab7a48b0ffa90b5b720f0d
Author: Ronny Kotzschmar <ro.ok at me.com>
AuthorDate: Wed Jul 6 15:14:21 2022 +0200

    rockchip: reliably distribute net interrupts
    
    On the NanoPI R4S it takes an average of 3..5 seconds for the network devices
    to appear in '/proc/interrupts'.
    Wait up to 10 seconds to ensure that the distribution of the interrupts
    really happens.
    
    Signed-off-by: Ronny Kotzschmar <ro.ok at me.com>
    (cherry picked from commit 9b00e9795660f53caf1f4f5fd932bbbebd2eeeb1)
---
 .../armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity    | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity
index 9e4a4cf4fc..c76e62a23a 100644
--- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity
+++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity
@@ -4,8 +4,15 @@
 
 get_device_irq() {
 	local device="$1"
-
-	local line=$(grep -m 1 "${device}\$" /proc/interrupts)
+	local line
+	local seconds="0"
+
+	# wait up to 10 seconds for the irq/device to appear
+	while [ "${seconds}" -le 10 ]; do
+		line=$(grep -m 1 "${device}\$" /proc/interrupts) && break
+		seconds="$(( seconds + 2 ))"
+		sleep 2
+	done
 	echo ${line} | sed 's/:.*//'
 }
 




More information about the lede-commits mailing list