[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