Commit Graph

6559 Commits

Author SHA1 Message Date
Bart Van Assche
5bab3ecb99 qla2x00t-32gbit: Use explicit LOGO in target mode
Target makes implicit LOGO on session teardown. LOGO ELS is not send on the
wire and initiator is not aware that target no longer wants talking to
it. Initiator keeps sending I/O requests, target responds with BA_RJT, they
time out and then initiator sends ABORT TASK (ABTS-LS).

Current behaviour incurs unneeded I/O timeout and can be fixed for some
initiators by making explicit LOGO on session deletion.

Link: https://lore.kernel.org/r/20191125165702.1013-3-r.bolshakov@yadro.com
Reviewed-by: Hannes Reinecke <hare@suse.de>
Tested-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 86196a8fa8a84af1395a28ea0548f2ce6ae9bc22 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8730 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:29:20 +00:00
Bart Van Assche
686aa95dcf qla2x00t-32gbit: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
SFUB length should be in DWORDs when passed to FW.

Fixes: 3f006ac342c03 ("scsi: qla2xxx: Secure flash update support for ISP28XX")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191203223657.22109-4-hmadhani@marvell.com
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit c868907e1ac6a08a17f8fa9ce482c0a496896e9e upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8729 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:28:59 +00:00
Bart Van Assche
6c892b651d qla2x00t-32gbit: Added support for MPI and PEP regions for ISP28XX
This patch adds support for MPI/PEP region updates which is required with
secure flash updates for ISP28XX.

Fixes: 3f006ac342c0 ("scsi: qla2xxx: Secure flash update support for ISP28XX")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191203223657.22109-3-hmadhani@marvell.com
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit a530bf691f0e4691214562c165e6c8889dc51e57 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8728 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:28:38 +00:00
Bart Van Assche
2806eeb93b qla2x00t-32gbit: Correctly retrieve and interpret active flash region
ISP27XX/28XX supports multiple flash regions. This patch fixes issue where
active flash region was not interpreted correctly during secure flash
update process.

Fixes: 5fa8774c7f38c ("scsi: qla2xxx: Add 28xx flash primary/secondary status/image mechanism")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191203223657.22109-2-hmadhani@marvell.com
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[mkp: typo]

[ commit 4e71dcae0c4cd1e9d19b8b3d80214a4bcdca5a42 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8727 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:28:14 +00:00
Bart Van Assche
80e6db859a qla2x00t-32gbit: Fix qla2x00_request_irqs() for MSI
Commit 4fa183455988 ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/
pci_free_irq_vectors calls.") use pci_alloc_irq_vectors() to replace
pci_enable_msi() but it didn't handle the return value correctly. This bug
make qla2x00 always fail to setup MSI if MSI-X fail, so fix it.

BTW, improve the log message of return value in qla2x00_request_irqs() to
avoid confusion.

Fixes: 4fa183455988 ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/pci_free_irq_vectors calls.")
Cc: Michael Hernandez <michael.hernandez@cavium.com>
Link: https://lore.kernel.org/r/1574314847-14280-1-git-send-email-chenhc@lemote.com
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 45dc8f2d9c94ed74a5e31e63e9136a19a7e16081 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8726 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:27:52 +00:00
Bart Van Assche
5a64ee930e qla2x00t-32gbit: unregister ports after GPN_FT failure
When ports are lost due to unzoning them, and the initiator port is
not part of any more zones, the GPN_FT command used for the fabric
scan may fail. In this case, the current code simply gives up after a
few retries. But if the zone is gone, all rports should actually be
marked as lost.

Fix this by jumping to the code that handles logout after GNN_FT after
scan retries are exhausted.

Fixes: f352eeb75419 ("scsi: qla2xxx: Add ability to use GPNFT/GNNFT for RSCN handling")
Link: https://lore.kernel.org/r/20191122221912.20100-3-martin.wilck@suse.com
Tested-by: Jason Orendorf <orendorf@hpe.com>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit c8a347931869bf4373bfd4036d297b8e11ab48ab upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8725 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:26:50 +00:00
Bart Van Assche
49cf31c71f qla2x00t-32gbit: fix rports not being mark as lost in sync fabric scan
In qla2x00_find_all_fabric_devs(), fcport->flags & FCF_LOGIN_NEEDED is a
necessary condition for logging into new rports, but not for dropping lost
ones.

Fixes: 726b85487067 ("qla2xxx: Add framework for async fabric discovery")
Link: https://lore.kernel.org/r/20191122221912.20100-2-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit d341e9a8f2cffe4000c610225c629f62c7489c74 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8724 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:25:44 +00:00
Bart Van Assche
91a600d894 qla2x00t-32gbit: add module to ops template to allow module references
In nvme-fc: it's possible to have connected active controllers
and as no references are taken on the LLDD, the LLDD can be
unloaded.  The controller would enter a reconnect state and as
long as the LLDD resumed within the reconnect timeout, the
controller would resume.  But if a namespace on the controller
is the root device, allowing the driver to unload can be problematic.
To reload the driver, it may require new io to the boot device,
and as it's no longer connected we get into a catch-22 that
eventually fails, and the system locks up.

Fix this issue by taking a module reference for every connected
controller (which is what the core layer did to the transport
module). Reference is cleared when the controller is removed.

Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>

[ commit 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8723 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:25:21 +00:00
Bart Van Assche
7da5ef65ff qla2x00t-32gbit: Revert "scsi: qla2xxx: Fix memory leak when sending I/O fails"
This reverts commit 2f856d4e8c23f5ad5221f8da4a2f22d090627f19.

This patch was found to introduce a double free regression. The issue
it originally attempted to address was fixed in patch
f45bca8c5052 ("scsi: qla2xxx: Fix double scsi_done for abort path").

Link: https://lore.kernel.org/r/4BDE2B95-835F-43BE-A32C-2629D7E03E0A@marvell.com
Requested-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 5a993e507ee65a28eca6690ee11868555c4ca46b upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8722 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:24:57 +00:00
Bart Van Assche
ca0c061ed5 qla2x00t-32gbit: don't use zero for FC4_PRIORITY_NVME
Avoid an uninitialized value (0) for ha->fc4_type_priority being falsely
interpreted as NVMe priority. Not strictly needed any more after the
previous patch, but makes the fc4_type_priority handling more explicit.

Link: https://lore.kernel.org/r/20191107224839.32417-3-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit a10c8803d0dbab54370eeac2a07e6540c6215908 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8721 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:24:31 +00:00
Bart Van Assche
6432df87e6 qla2x00t-32gbit: initialize fc4_type_priority
ha->fc4_type_priority is currently initialized only in
qla81xx_nvram_config(). That makes it default to NVMe for other adapters.
Fix it.

Fixes: 84ed362ac40c ("scsi: qla2xxx: Dual FCP-NVMe target port support")
Link: https://lore.kernel.org/r/20191107224839.32417-2-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit f5a2b219a7897751f9bb1c8d7308933e33000f2f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8720 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:24:09 +00:00
Bart Van Assche
3680a3d745 qla2x00t-32gbit: Fix a dma_pool_free() call
This patch fixes the following kernel warning:

DMA-API: qla2xxx 0000:00:0a.0: device driver frees DMA memory with different size [device address=0x00000000c7b60000] [map size=4088 bytes] [unmap size=512 bytes]
WARNING: CPU: 3 PID: 1122 at kernel/dma/debug.c:1021 check_unmap+0x4d0/0xbd0
CPU: 3 PID: 1122 Comm: rmmod Tainted: G           O      5.4.0-rc1-dbg+ #1
RIP: 0010:check_unmap+0x4d0/0xbd0
Call Trace:
 debug_dma_free_coherent+0x123/0x173
 dma_free_attrs+0x76/0xe0
 qla2x00_mem_free+0x329/0xc40 [qla2xxx_scst]
 qla2x00_free_device+0x170/0x1c0 [qla2xxx_scst]
 qla2x00_remove_one+0x4f0/0x6d0 [qla2xxx_scst]
 pci_device_remove+0xd5/0x1f0
 device_release_driver_internal+0x159/0x280
 driver_detach+0x8b/0xf2
 bus_remove_driver+0x9a/0x15a
 driver_unregister+0x51/0x70
 pci_unregister_driver+0x2d/0x130
 qla2x00_module_exit+0x1c/0xbc [qla2xxx_scst]
 __x64_sys_delete_module+0x22a/0x300
 do_syscall_64+0x6f/0x2e0
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

Fixes: 3f006ac342c0 ("scsi: qla2xxx: Secure flash update support for ISP28XX") # v5.2-rc1~130^2~270.
Cc: Michael Hernandez <mhernandez@marvell.com>
Cc: Himanshu Madhani <hmadhani@marvell.com>
Link: https://lore.kernel.org/r/20191106044226.5207-3-bvanassche@acm.org
Reviewed-by: Martin Wilck <mwilck@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 162b805e38327135168cb0938bd37b131b481cb0 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8719 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:23:44 +00:00
Bart Van Assche
7c9bf10d00 qla2x00t-32gbit: Update driver version to 10.01.00.21-k
Link: https://lore.kernel.org/r/20191105150657.8092-9-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit b3f74568411b2df0806e0d1df6458cb270eb29ce upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8718 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:23:19 +00:00
Bart Van Assche
50dae0f799 qla2x00t-32gbit: Fix device connect issues in P2P configuration
P2P needs to take the alternate plogi route.

Link: https://lore.kernel.org/r/20191105150657.8092-8-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 65e9200938052ce90f24421bb057e1be1d6147c7 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8717 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:22:54 +00:00
Bart Van Assche
2888c8de2e qla2x00t-32gbit: Fix memory leak when sending I/O fails
On heavy loads, a memory leak of the srb_t structure is observed.  This
would make the qla2xxx_srbs cache gobble up memory.

Fixes: 219d27d7147e0 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-7-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 2f856d4e8c23f5ad5221f8da4a2f22d090627f19 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8716 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:22:26 +00:00
Bart Van Assche
e6f87e326f qla2x00t-32gbit: Fix double scsi_done for abort path
Current code assumes abort will remove the original command from the active
list where scsi_done will not be called. Instead, the eh_abort thread will
do the scsi_done. That is not the case.  Instead, we have a double
scsi_done calls triggering use after free.

Abort will tell FW to release the command from FW possesion. The original
command will return to ULP with error in its normal fashion via scsi_done.
eh_abort path would wait for the original command completion before
returning.  eh_abort path will not perform the scsi_done call.

Fixes: 219d27d7147e0 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-6-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit f45bca8c5052e8c59bab64ee90c44441678b9a52 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8715 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:22:04 +00:00
Bart Van Assche
021c298151 qla2x00t-32gbit: Fix driver unload hang
This patch fixes driver unload hang by removing msleep()

Fixes: d74595278f4ab ("scsi: qla2xxx: Add multiple queue pair functionality.")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191105150657.8092-5-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit dd322b7f3efc8cda085bb60eadc4aee6324eadd8 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8714 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:21:37 +00:00
Bart Van Assche
958e8eda7d qla2x00t-32gbit: Fix SRB leak on switch command timeout
when GPSC/GPDB switch command fails, driver just returns without doing a
proper cleanup. This patch fixes this memory leak by calling sp->free() in
the error path.

Link: https://lore.kernel.org/r/20191105150657.8092-4-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit af2a0c51b1205327f55a7e82e530403ae1d42cbb upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8713 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:21:14 +00:00
Bart Van Assche
a763c697b0 qla2x00t-32gbit: Do command completion on abort timeout
On switch, fabric and mgt command timeout, driver send Abort to tell FW to
return the original command.  If abort is timeout, then return both Abort
and original command for cleanup.

Fixes: 219d27d7147e0 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")
Cc: stable@vger.kernel.org # 5.2
Link: https://lore.kernel.org/r/20191105150657.8092-3-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 71c80b75ce8f08c0978ce9a9816b81b5c3ce5e12 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8712 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:20:38 +00:00
Bart Van Assche
f6593f38cd qla2x00t-32gbit: Retry PLOGI on FC-NVMe PRLI failure
Current code will send PRLI with FC-NVMe bit set for the targets which
support only FCP. This may result into issue with targets which do not
understand NVMe and will go into a strange state. This patch would restart
the login process by going back to PLOGI state. The PLOGI state will force
the target to respond to correct PRLI request.

Fixes: c76ae845ea836 ("scsi: qla2xxx: Add error handling for PLOGI ELS passthrough")
Cc: stable@vger.kernel.org # 5.4
Link: https://lore.kernel.org/r/20191105150657.8092-2-hmadhani@marvell.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 983f127603fac650fa34ee69db363e4615eaf9e7 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8711 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:20:14 +00:00
Bart Van Assche
41781f030b qla2x00t-32gbit: Update driver version to 10.01.00.20-k
Link: https://lore.kernel.org/r/20190912180918.6436-15-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 8ae15a460b1471622f85bad6caebe56fd91f4f83 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8710 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:19:49 +00:00
Bart Van Assche
d7df645158 qla2x00t-32gbit: Improve logging for scan thread
Move messages to verbose logging for scan thread.

Link: https://lore.kernel.org/r/20190912180918.6436-14-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8709 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:19:24 +00:00
Bart Van Assche
2b96536e51 qla2x00t-32gbit: Capture FW dump on MPI heartbeat stop event
For MPI heartbeat stop Async Event, this patch would capture MPI FW dump
and chip reset. FW will tell which function to capture FW dump for.

Link: https://lore.kernel.org/r/20190912180918.6436-13-hmadhani@marvell.com
Reviewed-by: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8708 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:19:00 +00:00
Bart Van Assche
a082f1c862 qla2x00t-32gbit: Check for MB timeout while capturing ISP27/28xx FW dump
Add mailbox timeout checkout for ISP 27xx/28xx during FW dump procedure.
Without the timeout check, hardware lock can be held for long period. This
patch would shorten the dump procedure if a timeout condition is
encountered.

Link: https://lore.kernel.org/r/20190912180918.6436-12-hmadhani@marvell.com
Reviewed-by: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8707 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:18:35 +00:00
Bart Van Assche
770a53d10d qla2x00t-32gbit: Set remove flag for all VP
During driver unload, the remove flag will be set for all
scsi_qla_host/NPIV. This allows each NPIV to see the flag instead of
reaching for base_vha to search for it.

Link: https://lore.kernel.org/r/20190912180918.6436-11-hmadhani@marvell.com
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8706 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:18:09 +00:00
Bart Van Assche
db78f0ff56 qla2x00t-32gbit: Add error handling for PLOGI ELS passthrough
Add error handling logic to ELS Passthrough relating to NVME devices.
Current code does not parse error code to take proper recovery action,
instead it re-logins with the same login parameters that encountered the
error. Ex: nport handle collision.

Link: https://lore.kernel.org/r/20190912180918.6436-10-hmadhani@marvell.com
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com

[ commit c76ae845ea836d6128982dcbd41ac35c81e2de63 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8705 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:17:45 +00:00
Bart Van Assche
e783a511da qla2x00t-32gbit: Dual FCP-NVMe target port support
Some storage arrays advertise FCP LUNs and NVMe namespaces behind the same
WWN.  The driver now offers a user option by way of NVRAM parameter to
allow users to choose, on a per port basis, the kind of FC-4 type they
would like to prioritize for login.

Link: https://lore.kernel.org/r/20190912180918.6436-9-hmadhani@marvell.com
Signed-off-by: Michael Hernandez <mhernandez@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 84ed362ac40ca44dbbbebf767301463aa72bc797 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8704 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:17:20 +00:00
Bart Van Assche
fcf0141902 qla2x00t-32gbit: Remove redundant assignment to pointer 'host'
The pointer 'host' is being initialized with a value that is never read and
is being re-assigned a little later on. The assignment is redundant and
hence can be removed.

Link: https://lore.kernel.org/r/20190905134229.21194-1-colin.king@canonical.com
Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit da6d2965dbdb480f091c42f54a09abe8056282e5 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8703 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:16:16 +00:00
Bart Van Assche
2a757086d4 scripts/checkpatch: Ignore the iscsi-scst/usr directory
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8702 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:15:35 +00:00
Bart Van Assche
c312bb71c7 scst_vdisk: Change 'static const char *' into 'static const char *const'
This patch addresses a checkpatch complaint.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8701 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-26 00:14:57 +00:00
Bart Van Assche
85f8ac3a1e vdisk_blockio: Add support for unaligned buffers
This patch prevents that the following warning is reported when running the
libiscsi tests against the vdisk_blockio handler:

Refused bio with invalid length 4080 and/or offset 16.

WARNING: CPU: 3 PID: 16022 at /home/bvanassche/software/scst.git/scst/src/dev_handlers/scst_vdisk.c:6180 blockio_exec_rw+0xc89/0xcf0 [scst_vdisk]
Call Trace:
 blockio_exec_write+0x9c/0xe0 [scst_vdisk]
 vdev_do_job+0xe8/0x220 [scst_vdisk]
 blockio_exec+0x140/0x370 [scst_vdisk]
 scst_do_real_exec+0xf4/0x610 [scst]
 scst_exec_check_blocking+0x24e/0x6b0 [scst]
 scst_exec_check_sn+0x222/0x6c0 [scst]
 scst_process_active_cmd+0xdff/0x31c0 [scst]
 scst_cmd_thread+0x36f/0xb60 [scst]
 kthread+0x1bc/0x210
 ret_from_fork+0x24/0x30

See also https://github.com/sahlberg/libiscsi/issues/302.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8700 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 19:04:18 +00:00
Bart Van Assche
105ac34449 scst_vdisk: Rename vdisk_parse() into fileio_parse()
Since this function is only used by the vdisk_fileio handler, reflect this
in the function name.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8699 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:56:47 +00:00
Bart Van Assche
5ca9d97b65 scst: Remove the code that depends on the SCSI_EXEC_REQ_FIFO_DEFINED macro
The exec_req_fifo patches have been removed some time ago. Hence also remove
the code that depends on these patches having been applied. See also commit
78d6da4517 ("scst: Remove obsolete exec_req_fifo kernel patches"; r8022).



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8698 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:55:58 +00:00
Bart Van Assche
6fde88d57b scst, qla2x00t: Use pr_warn() instead of pr_warning()
pr_warning() has been removed from kernel v5.5. Hence use pr_warn() instead
of pr_warning().


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8697 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:54:35 +00:00
Bart Van Assche
60bf4671a4 scst: Change static const char * into static const char* const
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8696 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:53:43 +00:00
Bart Van Assche
2ec09741db scripts/checkpatch: Suppress more checkpatch complaints about long lines
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8695 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:52:57 +00:00
Bart Van Assche
d91851cccc scst: Convert mutex_release() and rwlock_release() to the kernel v5.5 prototypes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8694 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:52:15 +00:00
Bart Van Assche
d85e33dbcc iscsi-scst: Serialize socket disconnect calls properly
This patch fixes the following kernel complaint:

WARNING: suspicious RCU usage
include/net/sock.h:1907 suspicious rcu_dereference_protected() usage!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
no locks held by iscsi_conn_clea/18329.
stack backtrace:
Call Trace:
 dump_stack+0xa5/0xe6
 lockdep_rcu_suspicious+0x107/0x111
 tcp_disconnect+0x9ee/0xa60
 iscsi_tcp_conn_close+0x5d/0x90 [iscsi_scst]
 close_conn+0xcfe/0x1470 [iscsi_scst]
 close_conn_thr+0x54/0x80 [iscsi_scst]
 kthread+0x1bc/0x210
 ret_from_fork+0x24/0x30

Fixes: commit ba3062fe6b ("iscsi-scst: Improve connection shutdown time";
r297).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8693 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:51:02 +00:00
Bart Van Assche
11ca9d6704 scst/kernel/in-tree/Makefile.drivers.Linux-5.4.patch: Add to the source tree
Signed-off-by: Sietse van Zanen <sietse@wizdom.nu>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8692 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 15:38:58 +00:00
Bart Van Assche
ffb1b505cc scripts/specialize-patch: Fix expansion of HAVE_IB_SG_DMA_LEN
This patch fixes commit ac145e1cb6 ("ib_srpt: Detect ib_sg_dma_len()
presence at compile time"; r8655).



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8691 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 15:37:37 +00:00
Bart Van Assche
73de09a7cb nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8690 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-21 17:00:39 +00:00
Bart Van Assche
79b07ad0c3 scst: Remove three superfluous unlikely() annotations
This was detected by checkpatch.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8689 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-21 02:55:40 +00:00
Bart Van Assche
3217d67ef4 qla2x00t-32gbit: Revert r8656
Instead of trying to fix the regressions introduced upstream, stay close
to the upstream code and let the upstream maintainers fix regressions.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8688 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-21 02:49:20 +00:00
Bart Van Assche
1379918d8a iscsi-scst/Makefile: Avoid duplicate exported symbol warnings for kernel v5.5
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8687 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-17 04:24:55 +00:00
Bart Van Assche
a169500590 Makefiles: Use KBUILD_EXTRA_SYMBOLS instead of copying Module.symvers
Copying Module.symvers is the oldest supported method for building external
kernel modules that depend on another external kernel module. Since support
for that method will be removed from Linux kernel v5.5, use
KBUILD_EXTRA_SYMBOLS instead to specify the external symbols SCST kernel
modules depend on. Support for KBUILD_EXTRA_SYMBOLS was introduced in
upstream kernel v2.6.26 so this patch drops support for kernels before
v2.6.26.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8686 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-16 23:29:42 +00:00
Bart Van Assche
d0183001e4 Makefiles: Remove the $(BUILD_INI) variable
Since the BUILD_INI variable is set but not used, remove it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8685 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-16 21:31:30 +00:00
Bart Van Assche
94ba3b87b2 fcst/Makefile: Remove the 'tgt' target
Since that makefile target is not used, remove it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8684 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-16 21:25:35 +00:00
Bart Van Assche
ecaab978f0 scst, scstadmin, ...: Bump the version number to 3.5.0-pre
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8683 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-06 05:28:56 +00:00
Bart Van Assche
d39337637c SVN_TAGS: Update
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8682 d57e44dd-8a1f-0410-8b47-8ef2f437770f
v3.4
2019-12-04 05:09:52 +00:00
Bart Van Assche
fa156aa40d scripts/update-version: Fix the code for updating the scstadmin version number
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8681 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-04 05:00:49 +00:00