libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant
authorDan Williams <dan.j.williams@intel.com>
Thu, 18 Jul 2019 01:08:09 +0000 (18:08 -0700)
committerDan Williams <dan.j.williams@intel.com>
Thu, 18 Jul 2019 23:22:35 +0000 (16:22 -0700)
commit6de5d06e657acdbcf9637dac37916a4a5309e0f4
treeed21c6874c4945e3e21e796dccd4b420203b47c9
parent700cd033a82d466ad8f9615f9985525e45f8960a
libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant

In preparation for not holding a lock over the execution of nd_ioctl(),
update the implementation to allow multiple threads to be attempting
ioctls at the same time. The bus lock still prevents multiple in-flight
->ndctl() invocations from corrupting each other's state, but static
global staging buffers are moved to the heap.

Reported-by: Vishal Verma <vishal.l.verma@intel.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Tested-by: Vishal Verma <vishal.l.verma@intel.com>
Link: https://lore.kernel.org/r/156341208947.292348.10560140326807607481.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/bus.c