Skip to contentSkip to conversation

libnvdimm fixes for 4.13-rc2

GIT PULL Williams, Dan J 1 participant 1 message Jul 20, 2017 libnvdimm: non-volatile memory device

lore
Share & tools
lore

Williams, Dan J

author Reviewed-by Vishal Verma Acked-by Jeff Moyer Reviewed-by Vishal Verma
#0 lore raw

Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-fixes-4.13-rc2

...to receive a handful of small fixes for 4.13-rc2. 3 of these fixes are tagged for -stable. They have all appeared in at least one -next release with no reported issues. Full commit log below:

---

The following changes since commit 5771a8c08880cdca3bfb4a3fc6d309d6bba20877:

Linux v4.13-rc1 (2017-07-15 15:22:10 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/libnvdimm-fixes-4.13-rc2

for you to fetch changes up to bbb3be170ac2891526ad07b18af7db226879a8e7:

device-dax: fix sysfs duplicate warnings (2017-07-18 17:49:14 -0700)

----------------------------------------------------------------
libnvdimm for 4.13-rc2

* Fix handling of media errors that span a sector

* Fix support of multiple namespaces in a libnvdimm region being in device-dax mode

* Clean up the machine check notifier properly when the nfit driver fails to register

* Address a static analysis (smatch) report in device-dax

----------------------------------------------------------------
Dan Williams (3):
device-dax: fix 'passing zero to ERR_PTR()' warning
MAINTAINERS: list drivers/acpi/nfit/ files for libnvdimm sub-system
device-dax: fix sysfs duplicate warnings

Prarit Bhargava (1):
acpi/nfit: Fix memory corruption/Unregister mce decoder on failure

Toshi Kani (1):
libnvdimm: fix badblock range handling of ARS range

 MAINTAINERS              |  2 +--
 drivers/acpi/nfit/core.c | 10 +-+-+-+-+-+-+-+-+--
 drivers/dax/device-dax.h |  2 +--
 drivers/dax/device.c     | 33 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----------
 drivers/dax/pmem.c       | 12 +-+-+-+-+-+-+------
 drivers/nvdimm/core.c    |  7 +-+-+-+----
 6 files changed, 45 insertions(+-), 21 deletions(-)

---

commit 4e3f0701f25ab194c5362576b1146a1e6cc6c2e7

Author: Toshi Kani <[email protected]>
Date:   Fri Jul 7 17:44:26 2017 -0600

libnvdimm: fix badblock range handling of ARS range

__add_badblock_range() does not account sector alignment when it sets 'num_sectors'. Therefore, an ARS error record range spanning across two sectors is set to a single sector length, which leaves the 2nd sector unprotected.

Change __add_badblock_range() to set 'num_sectors' properly.

Fixes 0caeef63e6d2 ("libnvdimm: Add a poison list and export badblocks")

commit 43fe51e11c194a6576634585f81ba33e104194a5

Author: Dan Williams <[email protected]>
Date:   Wed Jul 12 13:42:37 2017 -0700

device-dax: fix 'passing zero to ERR_PTR()' warning

Dan Carpenter reports:

The patch 7b6be8444e0f: "dax: refactor dax-fs into a generic provider of 'struct dax_device' instances" from Apr 11, 2017, leads to the following static checker warning:

drivers/dax/device.c:643 devm_create_dev_dax()
warn: passing zero to 'ERR_PTR'

Fix the case where we inadvertently leak 0 to ERR_PTR() by setting at every error case, and make it clear that 'count' is never 0.

commit 7e700d2c59e5853c9126642976b4f5768f64c9b3

Author: Prarit Bhargava <[email protected]>
Date:   Wed May 31 13:32:00 2017 -0400

acpi/nfit: Fix memory corruption/Unregister mce decoder on failure

nfit_init() calls nfit_mce_register() on module load. When the module load fails the nfit mce decoder is not unregistered. The module's memory is freed leaving the decoder chain referencing junk. This will cause panics as future registrations will reference the free'd memory.

Unregister the nfit mce decoder on module init failure.

[v2]: register and then unregister mce handler to avoid losing mce events [v3]: also cleanup nfit workqueue

Fixes 6839a6d96f4e ("nfit: do an ARS scrub on hitting a latent media error")
Cc "Rafael J. Wysocki" <[email protected]>
Cc Len Brown <[email protected]>
Cc Vishal Verma <[email protected]>
Cc "Lee, Chun-Yi" <[email protected]>
Cc Linda Knippers <[email protected]>

commit 23b9babb50ff5ac8eb9208b978b2a630e99bf90b

Author: Dan Williams <[email protected]>
Date:   Mon Jul 17 09:58:51 2017 -0700

MAINTAINERS: list drivers/acpi/nfit/ files for libnvdimm sub-system

Patches that update the drivers/acpi/nfit/ directory need to be copied to the nvdimm mailing list. The drivers/acpi/nfit* glob has been broken ever since the nfit driver source was refactored into multiple files under the drivers/acpi/nfit/ directory.

commit bbb3be170ac2891526ad07b18af7db226879a8e7

Author: Dan Williams <[email protected]>
Date:   Tue Jul 18 17:49:14 2017 -0700
    device-dax: fix sysfs duplicate warnings
    
    Fix warnings of the form...
    
         WARNING: CPU: 10 PID: 4983 at fs/sysfs/dir.c:31 sysfs_warn_dup+-0x62/0x80
         sysfs: cannot create duplicate filename '/class/dax/dax12.0'
         Call Trace:
          dump_stack+-0x63/0x86
          __warn+-0xcb/0xf0
          warn_slowpath_fmt+-0x5a/0x80
          ? kernfs_path_from_node+-0x4f/0x60
          sysfs_warn_dup+-0x62/0x80
          sysfs_do_create_link_sd.isra.2+-0x97/0xb0
          sysfs_create_link+-0x25/0x40
          device_add+-0x266/0x630
          devm_create_dax_dev+-0x2cf/0x340 [dax]
          dax_pmem_probe+-0x1f5/0x26e [dax_pmem]
          nvdimm_bus_probe+-0x71/0x120
    
    ...by reusing the namespace id for the device-dax instance name.
    
    Now that we have decided that there will never by more than one
    device-dax instance per libnvdimm-namespace parent device [1], we can
    directly reuse the namepace ids. There are some possible follow-on
    cleanups, but those are saved for a later patch to simplify the -stable
    backport.
    
    [1]: https://lists.01.org/pipermail/linux-nvdimm/2016-December/008266.html
    
    Fixes: 98a29c39dc68 ("libnvdimm, namespace: allow creation of multiple pmem...")
    Cc: Jeff Moyer <[email protected]>
    Cc: <[email protected]>
    Reported-by: Dariusz Dokupil <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm