summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2020-12-12 21:16:12 +0200
committerJakub Kicinski <kuba@kernel.org>2020-12-14 19:28:22 -0800
commitca0b272b48f3adc112112a481f9f117f8308abf1 (patch)
treeea560a6605b504b1cb465eaf885709cbd1093f52 /net
parenta4485baefa1efa596702ebffd5a9c760d42b14b5 (diff)
downloadlinux-stable-ca0b272b48f3adc112112a481f9f117f8308abf1.tar.gz
linux-stable-ca0b272b48f3adc112112a481f9f117f8308abf1.tar.bz2
linux-stable-ca0b272b48f3adc112112a481f9f117f8308abf1.zip
net: mscc: ocelot: install MAC addresses in .ndo_set_rx_mode from process context
Currently ocelot_set_rx_mode calls ocelot_mact_learn directly, which has a very nice ocelot_mact_wait_for_completion at the end. Introduced in commit 639c1b2625af ("net: mscc: ocelot: Register poll timeout should be wall time not attempts"), this function uses readx_poll_timeout which triggers a lot of lockdep warnings and is also dangerous to use from atomic context, potentially leading to lockups and panics. Steen Hegelund added a poll timeout of 100 ms for checking the MAC table, a duration which is clearly absurd to poll in atomic context. So we need to defer the MAC table access to process context, which we do via a dynamically allocated workqueue which contains all there is to know about the MAC table operation it has to do. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Link: https://lore.kernel.org/r/20201212191612.222019-1-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions