linux_dsm_epyc7002/drivers/net/dsa
Uwe Kleine-König 3d82475ad4 net: dsa: mv88e6xxx: fix races between lock and irq freeing
free_irq() waits until all handlers for this IRQ have completed. As the
relevant handler (mv88e6xxx_g1_irq_thread_fn()) takes the chip's reg_lock
it might never return if the thread calling free_irq() holds this lock.

For the same reason kthread_cancel_delayed_work_sync() in the polling case
must not hold this lock.

Also first free the irq (or stop the worker respectively) such that
mv88e6xxx_g1_irq_thread_work() isn't called any more before the irq
mappings are dropped in mv88e6xxx_g1_irq_free_common() to prevent the
worker thread to call handle_nested_irq(0) which results in a NULL-pointer
exception.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-21 22:42:41 -07:00
..
b53 treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
microchip net: dsa: Pass stringset to ethtool operations 2018-04-27 11:53:03 -04:00
mv88e6xxx net: dsa: mv88e6xxx: fix races between lock and irq freeing 2018-07-21 22:42:41 -07:00
bcm_sf2_cfp.c net: dsa: bcm_sf2: Fix IPv6 rule half deletion 2018-05-16 14:11:22 -04:00
bcm_sf2_regs.h net: dsa: bcm_sf2: Allow matching arbitrary IPv4 mask lengths 2017-10-23 03:06:47 +01:00
bcm_sf2.c drivers: net: Remove device_node checks with of_mdiobus_register() 2018-05-16 14:20:36 -04:00
bcm_sf2.h net: dsa: bcm_sf2: Add support for IPv6 CFP rules 2017-10-23 03:06:47 +01:00
dsa_loop_bdinfo.c net: dsa: Mock-up driver 2017-04-01 12:39:32 -07:00
dsa_loop.c net: dsa: dsa_loop: Make dynamic debugging helpful 2018-05-25 16:46:29 -04:00
dsa_loop.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig net: dsa: Allow compiling out legacy support 2017-12-07 14:14:54 -05:00
lan9303_i2c.c net: dsa: lan9303: Adjust indenting 2017-11-08 13:29:06 +09:00
lan9303_mdio.c net: dsa: lan9303: Adjust indenting 2017-11-08 13:29:06 +09:00
lan9303-core.c net: dsa: Pass stringset to ethtool operations 2018-04-27 11:53:03 -04:00
lan9303.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
Makefile net: dsa: Fix functional dsa-loop dependency on FIXED_PHY 2018-03-22 13:02:47 -04:00
mt7530.c net: dsa: Pass stringset to ethtool operations 2018-04-27 11:53:03 -04:00
mt7530.h net: dsa: mediatek: add VLAN support for MT7530 2017-12-15 10:31:54 -05:00
mv88e6060.c net: dsa: Pass a port to get_tag_protocol() 2017-11-13 10:34:54 +09:00
mv88e6060.h net: dsa: Keep the mii bus and address in the private structure 2016-04-13 18:15:23 -04:00
qca8k.c net: dsa: qca8k: Remove redundant parentheses 2018-05-23 15:46:34 -04:00
qca8k.h net: dsa: qca8k: Allow overwriting CPU port setting 2018-05-23 15:46:18 -04:00