From 2c40359c5c12621fa386efca3139ea523db6d39f Mon Sep 17 00:00:00 2001 From: Jan Hoffmann Date: Sat, 17 Dec 2022 21:45:43 +0100 Subject: realtek: add cond_resched to loops accessing the FDB table A full loop accessing all FDB entries can take several milliseconds (on RTL839x about 20 ms), so give other kernel tasks a chance to run. This is especially important for rtl83xx_port_fdb_dump which is itself called in a loop for all ports by the kernel. Signed-off-by: Jan Hoffmann --- target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c') diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c index 9281e08d33..3e71813112 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c @@ -1725,6 +1725,9 @@ static int rtl83xx_port_fdb_dump(struct dsa_switch *ds, int port, if (e.port == port || e.port == RTL930X_PORT_IGNORE) cb(e.mac, e.vid, e.is_static, data); + + if (!((i + 1) % 64)) + cond_resched(); } for (i = 0; i < 64; i++) { -- cgit v1.2.3