linux/drivers/scsi/cxlflash
Manoj Kumar ee91e332a6 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>
2016-01-06 20:52:31 -05:00
..
common.h cxlflash: Fix to avoid corrupting adapter fops 2015-10-30 17:20:00 +09:00
Kconfig
lunmgt.c cxlflash: Fix to avoid corrupting port selection mask 2015-10-30 17:23:55 +09:00
main.c cxlflash: Fix to resolve cmd leak after host reset 2016-01-06 20:52:31 -05:00
main.h cxlflash: Removed driver date print 2016-01-06 20:51:14 -05:00
Makefile cxlflash: Virtual LUN support 2015-08-26 18:05:39 -07:00
sislite.h cxlflash: Correct spelling, grammar, and alignment mistakes 2015-10-30 17:18:28 +09:00
superpipe.c cxlflash: drop unlikely before IS_ERR_OR_NULL 2015-12-10 12:55:37 -05:00
superpipe.h cxlflash: Fix to avoid corrupting port selection mask 2015-10-30 17:23:55 +09:00
vlun.c cxlflash: Fix to avoid virtual LUN failover failure 2016-01-06 20:50:08 -05:00
vlun.h cxlflash: Virtual LUN support 2015-08-26 18:05:39 -07:00