On Sat, 7 Apr 2018 11:30:22 -0700 James Smart <jsmart2021@xxxxxxxxx> wrote: > On tests adding and removing a remote port, calls to nvme_info would > eventually show fewer target ports discovered than were present in > the san. Additionally, the following error messages were seen: > 6031 RemotePort Registration failed err: -116, DID x471301 > > There is a race condition that exists between the driver and the nvme > transport on remote port unregister vs the confirmed deletion. It's > possible that the driver may rediscover the remote port and reregister > the remote port before a prior unregister delete callback was made > (as it rebinded to the prior remoteport structure). However, the > driver was coded to expect the callback before seeing the remote > port again thus a new registration. The logic results in the driver > having an invalid remoteport pointer set. > > Correct by tracking when waiting for the delete callback. In cases > where the ndlp remoteport pointer is updated, it is only cleared > when the wait has not been superceded by a prior registration. > > Signed-off-by: Dick Kennedy <dick.kennedy@xxxxxxxxxxxx> > Signed-off-by: James Smart <james.smart@xxxxxxxxxxxx> > --- > drivers/scsi/lpfc/lpfc_nvme.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Cheers, Hannes