cxlflash: Fix to resolve cmd leak after host reset
authorManoj Kumar <manoj@linux.vnet.ibm.com>
Mon, 14 Dec 2015 21:07:02 +0000 (15:07 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 7 Jan 2016 01:52:31 +0000 (20:52 -0500)
commitee91e332a6e6e9b939f60f6e1bd72fb2def5290d
treec83bcbc27b8422941b0ac819979d0820a30b4423
parent85599218914dadad3347eaa4337e71f09f39e78f
cxlflash: Fix to resolve cmd leak after host reset

After a few iterations of resetting the card, either during EEH
recovery, or a host_reset the following is seen in the logs.  cxlflash
0008:00: cxlflash_queuecommand: could not get a free command

At every reset of the card, the commands that are outstanding are being
leaked.  No effort is being made to reap these commands.  A few more
resets later, the above error message floods the logs and the card is
rendered totally unusable as no free commands are available.

Iterated through the 'cmd' queue and printed out the 'free' counter and
found that on each reset certain commands were in-use and stayed in-use
through subsequent resets.

To resolve this issue, when the card is reset, reap all the commands
that are active/outstanding.

Signed-off-by: Manoj N. Kumar <manoj@linux.vnet.ibm.com>
Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/cxlflash/main.c