[PATCH] nvme_fc: fix ctrl create failures racing with workq items

Keith Busch keith.busch at intel.com
Thu Mar 15 13:30:08 PDT 2018


On Tue, Mar 13, 2018 at 09:48:07AM -0700, James Smart wrote:
> If there are errors during initial controller create, the transport
> will teardown the partially initialized controller struct and free
> the ctlr memory.  Trouble is - most of those errors can occur due
> to asynchronous events happening such io timeouts and subsystem
> connectivity failures. Those failures invoke async workq items to
> reset the controller and attempt reconnect.  Those may be in progress
> as the main thread frees the ctrl memory, resulting in NULL ptr oops.
> 
> Prevent this from happening by having the main ctrl failure thread
> changing state to DELETING followed by synchronously cancelling any
> pending queued work item. The change of state will prevent the
> scheduling of resets or reconnect events.
> 
> Signed-off-by: James Smart <james.smart at broadcom.com>

Thanks, applied for 4.17.



More information about the Linux-nvme mailing list