• D
    libnvdimm, region: Fail badblocks listing for inactive regions · 8f696986
    Dan Williams 提交于
    commit 5d394eee upstream.
    
    While experimenting with region driver loading the following backtrace
    was triggered:
    
     INFO: trying to register non-static key.
     the code is fine but needs lockdep annotation.
     turning off the locking correctness validator.
     [..]
     Call Trace:
      dump_stack+0x85/0xcb
      register_lock_class+0x571/0x580
      ? __lock_acquire+0x2ba/0x1310
      ? kernfs_seq_start+0x2a/0x80
      __lock_acquire+0xd4/0x1310
      ? dev_attr_show+0x1c/0x50
      ? __lock_acquire+0x2ba/0x1310
      ? kernfs_seq_start+0x2a/0x80
      ? lock_acquire+0x9e/0x1a0
      lock_acquire+0x9e/0x1a0
      ? dev_attr_show+0x1c/0x50
      badblocks_show+0x70/0x190
      ? dev_attr_show+0x1c/0x50
      dev_attr_show+0x1c/0x50
    
    This results from a missing successful call to devm_init_badblocks()
    from nd_region_probe(). Block attempts to show badblocks while the
    region is not enabled.
    
    Fixes: 6a6bef90 ("libnvdimm: add mechanism to publish badblocks...")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: NJohannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: NDave Jiang <dave.jiang@intel.com>
    Signed-off-by: NDan Williams <dan.j.williams@intel.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8f696986
region_devs.c 30.4 KB