• Dan Williams's avatar
    nfit: scrub and register regions in a workqueue · 1cf03c00
    Dan Williams authored
    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: default avatarDan Williams <dan.j.williams@intel.com>
    1cf03c00
nfit.c 63.6 KB