• Dan Williams's avatar
    Revert "acpi, nfit: Further restrict userspace ARS start requests" · 2121db09
    Dan Williams authored
    The following lockdep splat results from acquiring the init_mutex in
    acpi_nfit_clear_to_send():
    
     WARNING: possible circular locking dependency detected
     lt-daxdev-error/7216 is trying to acquire lock:
     00000000f694db15 (&acpi_desc->init_mutex){+.+.}, at: acpi_nfit_clear_to_send+0x27/0x80 [nfit]
    
     but task is already holding lock:
     00000000182298f2 (&nvdimm_bus->reconfig_mutex){+.+.}, at: __nd_ioctl+0x457/0x610 [libnvdimm]
    
     which lock already depends on the new lock.
    
    
     the existing dependency chain (in reverse order) is:
    
     -> #1 (&nvdimm_bus->reconfig_mutex){+.+.}:
            nvdimm_badblocks_populate+0x41/0x150 [libnvdimm]
            nd_region_notify+0x95/0xb0 [libnvdimm]
            nd_device_notify+0x40/0x50 [libnvdimm]
            ars_complete+0x7f/0xd0 [nfit]
            acpi_nfit_scrub+0xbb/0x410 [nfit]
            process_one_work+0x22b/0x5c0
            worker_thread+0x3c/0x390
            kthread+0x11e/0x140
            ret_from_fork+0x3a/0x50
    
     -> #0 (&acpi_desc->init_mutex){+.+.}:
            __mutex_lock+0x83/0x980
            acpi_nfit_clear_to_send+0x27/0x80 [nfit]
            __nd_ioctl+0x474/0x610 [libnvdimm]
            nd_ioctl+0xa4/0xb0 [libnvdimm]
            do_vfs_ioctl+0xa5/0x6e0
            ksys_ioctl+0x70/0x80
            __x64_sys_ioctl+0x16/0x20
            do_syscall_64+0x60/0x210
            entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    New infrastructure is needed to be able to perform this check without
    acquiring the lock.
    
    Fixes: 59486121 ("acpi, nfit: Further restrict userspace ARS start")
    Cc: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    2121db09
core.c 96.4 KB