• Toshi Kani's avatar
    libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify · b2518c78
    Toshi Kani authored
    The following BUG was observed when nd_pmem_notify() was called
    for a BTT device.  The use of a pmem_device pointer is not valid
    with BTT.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
     IP: nd_pmem_notify+0x30/0xf0 [nd_pmem]
     Call Trace:
      nd_device_notify+0x40/0x50
      child_notify+0x10/0x20
      device_for_each_child+0x50/0x90
      nd_region_notify+0x20/0x30
      nd_device_notify+0x40/0x50
      nvdimm_region_notify+0x27/0x30
      acpi_nfit_scrub+0x341/0x590 [nfit]
      process_one_work+0x197/0x450
      worker_thread+0x4e/0x4a0
      kthread+0x109/0x140
    
    Fix nd_pmem_notify() by setting nd_region and badblocks pointers
    properly for BTT.
    
    Cc: <stable@vger.kernel.org>
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Fixes: 71999466 ("libnvdimm: async notification support")
    Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    b2518c78
pmem.c 11.7 KB