[PATCH 0/3] Fix races on device removal

From: Lukas Wunner
Date: Wed Jul 08 2020 - 09:38:58 EST


Prevent dynamic SPI device addition below a controller which is
being removed. To do so, set the controller's "dead" flag using
kill_device() (patch [3/3]).

Serialize access to a device's "dead" flag with a newly introduced
rw_semaphore in lieu of the device_lock to avoid deadlocks occurring
with the new use case (patch [2/3]).

Add a missing check for the "dead" flag upon driver binding
(patch [1/3]).


Lukas Wunner (3):
driver core: Avoid binding drivers to dead devices
driver core: Use rwsem for kill_device() serialization
driver core: Avoid adding children below a dead parent

drivers/base/base.h | 2 ++
drivers/base/core.c | 49 ++++++++++++++++++++++++++++++--------------
drivers/base/dd.c | 12 ++++++++++-
drivers/nvdimm/bus.c | 8 +-------
drivers/spi/spi.c | 3 +++
5 files changed, 51 insertions(+), 23 deletions(-)

--
2.27.0