-
- Downloads
Merge tag 'libnvdimm-fixes-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams: "A collection of locking and async operations fixes for v5.3-rc2. These had been soaking in a branch targeting the merge window, but missed due to a regression hunt. This fixed up version has otherwise been in -next this past week with no reported issues. In order to gain confidence in the locking changes the pull also includes a debug / instrumentation patch to enable lockdep coverage for libnvdimm subsystem operations that depend on the device_lock for exclusion. As mentioned in the changelog it is a hack, but it works and documents the locking expectations of the sub-system in a way that others can use lockdep to verify. The driver core touches got an ack from Greg. Summary: - Fix duplicate device_unregister() calls (multiple threads competing to do unregister work when scheduling device removal from a sysfs attribute of the self-same device). - Fix badblocks registration order bug. Ensure region badblocks are initialized in advance of namespace registration. - Fix a deadlock between the bus lock and probe operations. - Export device-core infrastructure to coordinate async operations via the device ->dead state. - Add device-core infrastructure to validate device_lock() usage with lockdep" * tag 'libnvdimm-fixes-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: driver-core, libnvdimm: Let device subsystems add local lockdep coverage libnvdimm/bus: Fix wait_nvdimm_bus_probe_idle() ABBA deadlock libnvdimm/bus: Stop holding nvdimm_bus_list_mutex over __nd_ioctl() libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant libnvdimm/region: Register badblocks before namespaces libnvdimm/bus: Prevent duplicate device_unregister() calls drivers/base: Introduce kill_device()
Showing
- drivers/acpi/nfit/core.c 14 additions, 14 deletionsdrivers/acpi/nfit/core.c
- drivers/acpi/nfit/nfit.h 24 additions, 0 deletionsdrivers/acpi/nfit/nfit.h
- drivers/base/core.c 22 additions, 8 deletionsdrivers/base/core.c
- drivers/nvdimm/btt_devs.c 8 additions, 8 deletionsdrivers/nvdimm/btt_devs.c
- drivers/nvdimm/bus.c 140 additions, 70 deletionsdrivers/nvdimm/bus.c
- drivers/nvdimm/core.c 5 additions, 5 deletionsdrivers/nvdimm/core.c
- drivers/nvdimm/dimm_devs.c 2 additions, 2 deletionsdrivers/nvdimm/dimm_devs.c
- drivers/nvdimm/namespace_devs.c 18 additions, 18 deletionsdrivers/nvdimm/namespace_devs.c
- drivers/nvdimm/nd-core.h 70 additions, 1 deletiondrivers/nvdimm/nd-core.h
- drivers/nvdimm/pfn_devs.c 12 additions, 12 deletionsdrivers/nvdimm/pfn_devs.c
- drivers/nvdimm/pmem.c 2 additions, 2 deletionsdrivers/nvdimm/pmem.c
- drivers/nvdimm/region.c 12 additions, 12 deletionsdrivers/nvdimm/region.c
- drivers/nvdimm/region_devs.c 8 additions, 4 deletionsdrivers/nvdimm/region_devs.c
- include/linux/device.h 6 additions, 0 deletionsinclude/linux/device.h
Loading
Please register or sign in to comment