device-dax: Introduce bus + driver model
authorDan Williams <dan.j.williams@intel.com>
Thu, 13 Jul 2017 00:58:21 +0000 (17:58 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 7 Jan 2019 05:24:46 +0000 (21:24 -0800)
commit9567da0b408a2553d32ca83cba4f1fc5a8aad459
treeb381bc4c908be5e14d4653f698515725b12ae806
parent51cf784c42d07fbd62cb604836a9270cf3361509
device-dax: Introduce bus + driver model

In support of multiple device-dax instances per device-dax-region and
allowing the 'kmem' driver to attach to dax-instances instead of the
current device-node access, convert the dax sub-system from a class to a
bus. Recall that the kmem driver takes reserved / special purpose
memories and assigns them to be managed by the core-mm.

Aside from the fact the device-dax instances are registered and probed
on a bus, two other lifetime-management changes are made:

1/ Delay attaching a cdev until driver probe time

2/ A new run_dax() helper is introduced to allow restoring dax-operation
   after a kill_dax() event. So, at driver ->probe() time we run_dax()
   and at ->remove() time we kill_dax() and invalidate all mappings.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dax/bus.c
drivers/dax/bus.h
drivers/dax/dax-private.h
drivers/dax/device.c
drivers/dax/super.c