From 01b8cd32003408ba3aab7a48b0ffa90b5b720f0d Mon Sep 17 00:00:00 2001 From: Ronny Kotzschmar Date: Wed, 6 Jul 2022 15:14:21 +0200 Subject: [PATCH] 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 (cherry picked from commit 9b00e9795660f53caf1f4f5fd932bbbebd2eeeb1) --- .../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/:.*//' } -- 2.30.2