• Dan Williams's avatar
    tools/testing/nvdimm: fix SIGTERM vs hotplug crash · d8d378fa
    Dan Williams authored
    The unit tests crash when hotplug races the previous probe. This race
    requires that the loading of the nfit_test module be terminated with
    SIGTERM, and the module to be unloaded while the ars scan is still
    running.
    
    In contrast to the normal nfit driver, the unit test calls
    acpi_nfit_init() twice to simulate hotplug, whereas the nominal case
    goes through the acpi_nfit_notify() event handler.  The
    acpi_nfit_notify() path is careful to flush the previous region
    registration before servicing the hotplug event. The unit test was
    missing this guarantee.
    
     BUG: unable to handle kernel NULL pointer dereference at           (null)
     IP: [<ffffffff810cdce7>] pwq_activate_delayed_work+0x47/0x170
     [..]
     Call Trace:
      [<ffffffff810ce186>] pwq_dec_nr_in_flight+0x66/0xa0
      [<ffffffff810ce490>] process_one_work+0x2d0/0x680
      [<ffffffff810ce331>] ? process_one_work+0x171/0x680
      [<ffffffff810ce88e>] worker_thread+0x4e/0x480
      [<ffffffff810ce840>] ? process_one_work+0x680/0x680
      [<ffffffff810ce840>] ? process_one_work+0x680/0x680
      [<ffffffff810d5343>] kthread+0xf3/0x110
      [<ffffffff8199846f>] ret_from_fork+0x1f/0x40
      [<ffffffff810d5250>] ? kthread_create_on_node+0x230/0x230
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    d8d378fa
nfit.c 45.9 KB