Quinn Tran 0c9a5f3e42 scsi: qla2xxx: Fix unsafe removal from linked list
On NPIV delete, the VPort is taken off a linked list in an unsafe manner.
The check for VPort refcount should be done behind lock before taking off
the element.

[ 2733.016907] general protection fault: 0000 [#1] SMP NOPTI
[ 2733.016908] qla2xxx [0000:22:00.1]-7088:27: VP[4] deleted.
[ 2733.016912] CPU: 22 PID: 23481 Comm: qla2xxx_15_dpc Kdump: loaded Tainted:
G           OE KX    5.3.18-47-default #1 SLE15-SP3
[ 2733.016914] Hardware name: Dell Inc. PowerEdge R7525/0PYVT1, BIOS 2.1.4 02/17/2021
[ 2733.016929] RIP: 0010:qla2x00_abort_isp+0x90/0x850 [qla2xxx]
[ 2733.016933] RSP: 0018:ffffb9cfc91efe98 EFLAGS: 00010087
[ 2733.016935] RAX: 0000000000000292 RBX: dead000000000100 RCX: 0000000000000000
[ 2733.016936] RDX: 0000000000000001 RSI: ffff944bfeb99558 RDI: ffff944bfc4b4488
[ 2733.016937] RBP: ffff944bfc4b2868 R08: 00000000000187a2 R09: 0000000000000001
[ 2733.016937] R10: ffffb9cfc91efcc8 R11: 0000000000000001 R12: ffff944bfc4b4000
[ 2733.016938] R13: ffff944bfc4b4870 R14: ffff944bfc4b4488 R15: ffff944bda895c80
[ 2733.016939] FS:  0000000000000000(0000) GS:ffff944bfeb80000(0000) knlGS:0000000000000000
[ 2733.016940] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2733.016940] CR2: 00007fc173e74458 CR3: 0000001ff57de000 CR4: 0000000000350ee0
[ 2733.016941] Call Trace:
[ 2733.016951]   qla2xxx_pci_error_detected+0x190/0x190 [qla2xxx]
[ 2733.016957]   qla2x00_do_dpc+0x560/0xa10 [qla2xxx]
[ 2733.016962]   kthread+0x10d/0x130
[ 2733.016963]   kthread_park+0xa0/0xa0
[ 2733.016966]   ret_from_fork+0x22/0x40

Link: https://lore.kernel.org/r/20210810043720.1137-9-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-08-11 23:17:56 -04:00
..
2021-07-11 10:59:53 -07:00
2021-07-11 10:59:53 -07:00
2021-07-12 21:41:31 -04:00
2021-05-21 17:01:18 -04:00
2021-07-11 10:59:53 -07:00
2021-06-02 01:28:21 -04:00
2020-03-11 23:07:59 -04:00
2021-01-22 21:14:08 -05:00
2021-01-22 21:14:07 -05:00
2021-01-22 21:14:08 -05:00
2021-05-31 22:48:22 -04:00
2020-03-11 23:07:59 -04:00
2021-05-31 22:48:21 -04:00
2020-09-02 22:49:06 -04:00
2021-05-31 22:48:21 -04:00
2021-04-13 00:20:48 -04:00
2020-12-07 20:24:09 -05:00
2020-12-07 20:24:09 -05:00
2021-05-31 22:48:23 -04:00
2021-05-21 16:59:33 -04:00
2021-03-24 23:03:43 -04:00
2020-10-14 15:15:35 -07:00
2019-07-11 15:14:01 -07:00
2020-02-24 15:01:57 -05:00
2021-04-06 09:28:17 -06:00
2021-04-13 00:20:48 -04:00
2021-07-02 15:14:36 -07:00
2019-07-11 15:14:01 -07:00