]> git.baikalelectronics.ru Git - kernel.git/commit
nfit: scrub and register regions in a workqueue
authorDan Williams <dan.j.williams@intel.com>
Wed, 17 Feb 2016 21:01:23 +0000 (13:01 -0800)
committerDan Williams <dan.j.williams@intel.com>
Sat, 5 Mar 2016 20:24:06 +0000 (12:24 -0800)
commit769935d88caa65e5d0592d7f40bdb33b291a7df9
treefc9c7c5046b7f3ed08c7e8ca99673e29ea6023d3
parent7e563ec27316cc8030ad522e6bdc13bedc190b0d
nfit: scrub and register regions in a workqueue

Address range scrub is a potentially long running process that we want
to complete before any pmem regions are registered.  Perform this
operation asynchronously to allow other drivers to load in the meantime.

Platform firmware may have initiated a partial scrub prior to the driver
loading, so we must be careful to consume those results before kicking
off kernel initiated scrubs on other regions.

This rework also makes the registration path more tolerant of scrub
errors in that it splits scrubbing into 2 phases.  The first phase
synchronously waits for a platform-firmware initiated scrub to complete.
The second phase scans the remaining address ranges asynchronously and
notifies the related driver(s) when the scrub completes.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/nfit.c
drivers/acpi/nfit.h