mirror of
https://github.com/openwrt/openwrt.git
synced 2024-11-27 20:04:24 +08:00
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 <jan@3e8.eu>
This commit is contained in:
parent
ae0a3f88ac
commit
2c40359c5c
@ -343,6 +343,9 @@ static int l2_table_show(struct seq_file *m, void *v)
|
||||
|
||||
seq_printf(m, "Hash table bucket %d index %d ", bucket, index);
|
||||
l2_table_print_entry(m, priv, &e);
|
||||
|
||||
if (!((i + 1) % 64))
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
|
@ -1728,6 +1728,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++) {
|
||||
|
@ -343,6 +343,9 @@ static int l2_table_show(struct seq_file *m, void *v)
|
||||
|
||||
seq_printf(m, "Hash table bucket %d index %d ", bucket, index);
|
||||
l2_table_print_entry(m, priv, &e);
|
||||
|
||||
if (!((i + 1) % 64))
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
|
@ -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++) {
|
||||
|
Loading…
Reference in New Issue
Block a user