• Dan Williams's avatar
    libnvdimm: restore "libnvdimm: band aid btt vs clear poison locking" · a3e9af95
    Dan Williams authored
    This continues the 4.11 status quo of disabling of error clearing from
    the BTT I/O path. Toshi found that even though we have eliminated all
    the libnvdimm sources of sleeping-while-atomic triggers, we still have
    sleeping operations that will occur in the path to send the ACPI DSM to
    the DIMM to clear the error:
    
     BUG: sleeping function called from invalid context at mm/slab.h:432
     in_atomic(): 1, irqs_disabled(): 0, pid: 13353, name: dd
     Call Trace:
      dump_stack+0x86/0xc3
      ___might_sleep+0x17d/0x250
      __might_sleep+0x4a/0x80
      __kmalloc+0x1c0/0x2e0
      acpi_os_allocate_zeroed+0x2d/0x2f
      acpi_evaluate_object+0x59/0x3b1
      acpi_evaluate_dsm+0xbd/0x10c
      acpi_nfit_ctl+0x1ef/0x7c0 [nfit]
      ? nsio_rw_bytes+0x152/0x280
      nvdimm_clear_poison+0x77/0x140
      nsio_rw_bytes+0x18f/0x280
      btt_write_pg+0x1d4/0x3d0 [nd_btt]
      btt_make_request+0x119/0x2d0 [nd_btt]
    
    A solution for tracking and handling media errors natively in the BTT is
    needed.
    
    Cc: Jeff Moyer <jmoyer@redhat.com>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Reported-by: default avatarToshi Kani <toshi.kani@hpe.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    a3e9af95
claim.c 7.84 KB