Commit Graph

6661 Commits

Author SHA1 Message Date
Bart Van Assche
eea7b68473 qla2x00t-32gbit: Update driver version to 10.01.00.25-k
Link: https://lore.kernel.org/r/20200226224022.24518-19-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 4cbca7ea9edaab268f344c2bcd22afcb7370569f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8832 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:40:33 +00:00
Bart Van Assche
37e6d53d11 qla2x00t-32gbit: Set Nport ID for N2N
When transitioning from loop to N2N, stale NPort ID is not
re-assigned. Stale ID can collide with remote device.  This patch will
re-assign NPort ID on N2N is detected.

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

[ commit ad8a260aa80d4dfa9588fd5d23b71ec922f61c8b upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8831 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:40:06 +00:00
Bart Van Assche
9d6877b38d qla2x00t-32gbit: Handle NVME status iocb correctly
Certain state flags bit combinations are not checked and not handled
correctly. Plus, do not log a normal underrun situation where there is
no frame drop.

Link: https://lore.kernel.org/r/20200226224022.24518-17-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 3d582b34992ba2fe4065f01019f0c08d12916faa upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8830 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:39:29 +00:00
Bart Van Assche
b4a2b8a647 qla2x00t-32gbit: Remove restriction of FC T10-PI and FC-NVMe
T10-PI and FC-NVMe are not mutually exclusive. This patch removes
restrictions where if FC-NVMe is enabled T10-PI defaults to disabled.

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

[ commit 3e4615a292b47632d409f0d53a23da85e039b031 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8829 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:38:56 +00:00
Bart Van Assche
7924ccd89c qla2x00t-32gbit: Serialize fc_port alloc in N2N
For N2N, fc_port struct is created during report id acquisition.  At
later time, the loop resync (fabric, n2n, loop) would trigger the rest
of the login using the created fc_port struct.  The loop resync logic
can trigger another fc_port allocation if the 1st allocation was not
able to execute.  This patch prevents the 2nd allocation trigger.

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

[ commit 11efe8755d73efd153d6459240866b6d52448f19 upstream ]



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8828 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:38:18 +00:00
Bart Van Assche
231611a186 qla2x00t-32gbit: Fix NPIV instantiation after FW dump
NPIV re-enable code was blocked after FW had been initialized.  The
blocking check was too broad. Reduce the check to make sure if FW is
initialized or not.

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

[ commit ab391abdc191c2a2874098df86d1fe4b9762ef60 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8827 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:37:32 +00:00
Bart Van Assche
cacab3adea qla2x00t-32gbit: Fix RDP respond data format
RPD information failed to display by switch cli command.  This is
caused by driver failure to properly format RDP response data with
data descriptor to allow switch to parse it correctly.

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

[ commit 770538c3012ac8ff92d5e4ae18850588c188c5fa upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8826 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:37:02 +00:00
Bart Van Assche
44ab6ef708 qla2x00t-32gbit: Force semaphore on flash validation failure
For single port 28XX adapter, the second core can still run in the
background.  The flash semaphore can be held by the non-active core.
This patch tell MPI FW to check for this case and clear the semaphore
from the non-active core.

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

[ commit cad9c2d28ec69f1d0370b2ba5abe309b0b709be4 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8825 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:36:34 +00:00
Bart Van Assche
8b1ff82c99 qla2x00t-32gbit: add more FW debug information
Per FW request, MB 1-7 should be logged for 8002 error.

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

[ commit a82c307e69c465e4d80cc15fde3c00f5b95832d6 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8824 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:36:04 +00:00
Bart Van Assche
44b99951e2 qla2x00t-32gbit: Update BPM enablement semantics.
commit e4e3a2ce9556 ("scsi: qla2xxx: Add ability to autodetect SFP
type") takes a heavy handed approach to BPM (Buffer Plus Management)
enablement:

1) During hardware initialization, if an LR-capable transceiver is
   recognized, the driver schedules a disruptive post-initialization
   chip-reset (ISP-ABORT) to allow the BPM settings to be sent to the
   firmware.  This chip-reset will result in (short-term) path-loss to
   all fc-rports and their attached SCSI devices.

2) LR-detection is triggered during any link-up event, resulting in a
   refresh and potential chip-reset

Based on firmware-team guidance, upon LR-capable transceiver
recognition, the driver's hardware initialization code will now
re-execute firmware with the new BPM settings, then continue on with
driver initialization.  To address the second issue, the driver
performs LR-capable detection upon the driver receiving a
transceiver-insertion asynchronous event from firmware.  No short-term
path loss is needed with this new semantic.

Link: https://lore.kernel.org/r/20200226224022.24518-10-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Andrew Vasquez <andrewv@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit b0f18eee6fc1ee21c07abb55e9ccabc9ed9c09f0 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8823 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:35:34 +00:00
Bart Van Assche
98844e3456 qla2x00t-32gbit: fix FW resource count values
This patch fixes issue where current and original exchanges count
were swapped for intiator and targets.

Also fix IOCB count for current and original which were swapped.

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

[ commit ce1ee122e0f048fc67c1259489f0802a28049bfd upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8822 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:35:00 +00:00
Bart Van Assche
99aaaf0a06 qla2x00t-32gbit: Use a dedicated interrupt handler for 'handshake-required' ISPs
There's no point checking flags.disable_msix_handshake in the
interrupt handler hot-path.  Instead perform the check during
queue-pair instantiation and use the proper interrupt handler.

Link: https://lore.kernel.org/r/20200226224022.24518-8-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Andrew Vasquez <andrewv@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 7b2a73963c91cf6bad6b8f58636560cd1f3cf319 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8821 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:34:25 +00:00
Bart Van Assche
c04763810c qla2x00t-32gbit: Return appropriate failure through BSG Interface
This patch ensures flash updates API calls return possible failure
status through BSG interface to the application.

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

[ commit 1b81e7f3019d632a707e07927e946ffbbc102910 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8820 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:33:31 +00:00
Bart Van Assche
f3061aef5f qla2x00t-32gbit: Improved secure flash support messages
This patch improved message for Secure Flash support.  No
functionality has been changed.

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

[ commit 4ba836f686284ef1eab0cf7a8f3402e24e6dc4cd upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8819 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:32:39 +00:00
Bart Van Assche
f0e0dcd903 qla2x00t-32gbit: Fix FCP-SCSI FC4 flag passing error
This patch fixes issue where incorrect flag was used for sending
switch commands.

Link: https://lore.kernel.org/r/20200226224022.24518-5-hmadhani@marvell.com
Fixes: e8c72ba51a15 ("[SCSI] qla2xxx: Use GFF_ID to check FCP-SCSI FC4 type before logging into Nx_Ports")
Fixes: a4239945b8ad ("scsi: qla2xxx: Add switch command to simplify fabric discovery")
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 8e0e063af0d1be30245a08fab0515a3cccfcd513 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8818 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:31:52 +00:00
Bart Van Assche
545a43ff56 qla2x00t-32gbit: Use FC generic update firmware options routine for ISP27xx
This patch uses generic firmware update options for FCoE based
adapters as well to reduce code duplication.

Link: https://lore.kernel.org/r/20200226224022.24518-4-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Giridhar Malavali <gmalavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 37efd51f75f30b48c2d19ee94eeccfd4325c3cb4 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8817 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:31:12 +00:00
Bart Van Assche
ab031229ce qla2x00t-32gbit: Avoid setting firmware options twice in 24xx_update_fw_options.
This patch moves ql2xrdpenable check earlier to avoids setting
fw_option once again before exiting qla24xx_update_fw_options.

Link: https://lore.kernel.org/r/20200226224022.24518-3-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Giridhar Malavali <gmalavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 9ef4847a80d317e4033c2ecf0e73e54c5fd4771d upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8816 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:30:37 +00:00
Bart Van Assche
4000dcb0fa qla2x00t-32gbit: Add 16.0GT for PCI String
This patch adds 16.0GT for readable display string.

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

[ commit efd39a2ad6ff6d1187caac8491d710f41b6a93ab upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8815 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:30:03 +00:00
Bart Van Assche
c9e7188d20 qla2x00t-32gbit: Convert MAKE_HANDLE() from a define into an inline function
This patch allows sparse to verify the endianness of the arguments passed
to make_handle().

Link: https://lore.kernel.org/r/20200220043441.20504-5-bvanassche@acm.org
Cc: Roman Bolshakov <r.bolshakov@yadro.com>
Cc: Daniel Wagner <dwagner@suse.de>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Quinn Tran <qutran@marvell.com>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.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 c25eb70a10243c1ad24e74375aceb65ab8951e93 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8814 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:29:20 +00:00
Bart Van Assche
37b9c87479 qla2x00t-32gbit: Fix sparse warnings triggered by the PCI state checking code
This patch fixes the following sparse warnings:

drivers/scsi/qla2xxx/qla_mbx.c:120:21: warning: restricted pci_channel_state_t degrades to integer
drivers/scsi/qla2xxx/qla_mbx.c:120:37: warning: restricted pci_channel_state_t degrades to integer

>From include/linux/pci.h:

enum pci_channel_state {
	/* I/O channel is in normal state */
	pci_channel_io_normal = (__force pci_channel_state_t) 1,

	/* I/O to channel is blocked */
	pci_channel_io_frozen = (__force pci_channel_state_t) 2,

	/* PCI card is dead */
	pci_channel_io_perm_failure = (__force pci_channel_state_t) 3,
};

Link: https://lore.kernel.org/r/20200220043441.20504-4-bvanassche@acm.org
Cc: Roman Bolshakov <r.bolshakov@yadro.com>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Quinn Tran <qutran@marvell.com>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.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 471298cab82d255e358901ea5baff24abe1a53b8 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8813 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:28:39 +00:00
Bart Van Assche
69315453ff qla2x00t-32gbit: Suppress endianness complaints in qla2x00_configure_local_loop()
Instead of changing endianness in-place, write the data in CPU endian
format in another buffer and copy that buffer back. This patch does not
change any functionality but silences some sparse endianness warnings.

Link: https://lore.kernel.org/r/20200220043441.20504-3-bvanassche@acm.org
Cc: Roman Bolshakov <r.bolshakov@yadro.com>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Quinn Tran <qutran@marvell.com>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 1ee5ac365c2a554b59b0e7445455d93a0577662b upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8812 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:27:57 +00:00
Bart Van Assche
75581dea86 qla2x00t-32gbit: Simplify the code for aborting SCSI commands
Since the SCSI core does not reuse the tag of the SCSI command that is
being aborted by .eh_abort() before .eh_abort() has finished it is not
necessary to check from inside that callback whether or not the SCSI
command has already completed. Instead, rely on the firmware to return an
error code when attempting to abort a command that has already
completed. Additionally, rely on the firmware to return an error code when
attempting to abort an already aborted command.

In qla2x00_abort_srb(), use blk_mq_request_started() instead of
sp->completed and sp->aborted.

Link: https://lore.kernel.org/r/20200220043441.20504-2-bvanassche@acm.org
Cc: Martin Wilck <mwilck@suse.com>
Cc: Quinn Tran <qutran@marvell.com>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.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>

c81ef0ed4477c637d1f1dd96ecd8e8fbe18b7283


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:27:19 +00:00
Bart Van Assche
0f6172d6ac qla2x00t-32gbit: Fix sparse warning reported by kbuild bot
this patch fixes following sparse warnings

 >> drivers/scsi/qla2xxx/qla_tmpl.c:873:32: sparse: sparse: incorrect type in assignment (different base types)
 >> drivers/scsi/qla2xxx/qla_tmpl.c:873:32: sparse:    expected unsigned int [usertype] capture_timestamp
 >> drivers/scsi/qla2xxx/qla_tmpl.c:873:32: sparse:    got restricted __le32 [usertype]
    drivers/scsi/qla2xxx/qla_tmpl.c:885:29: sparse: sparse: incorrect type in assignment (different base types)
 >> drivers/scsi/qla2xxx/qla_tmpl.c:885:29: sparse:    expected unsigned int

  vim +873 drivers/scsi/qla2xxx/qla_tmpl.c

  869
  870	static void
  871	qla27xx_time_stamp(struct qla27xx_fwdt_template *tmp)
  872	{
> 873		tmp->capture_timestamp = cpu_to_le32(jiffies);
  874	}
  875
  876	static void
  877	qla27xx_driver_info(struct qla27xx_fwdt_template *tmp)
  878	{
  879		uint8_t v[] = { 0, 0, 0, 0, 0, 0 };
  880
  881		WARN_ON_ONCE(sscanf(qla2x00_version_str,
  882				    "%hhu.%hhu.%hhu.%hhu.%hhu.%hhu",
  883				    v+0, v+1, v+2, v+3, v+4, v+5) != 6);
  884
> 885		tmp->driver_info[0] = cpu_to_le32(
  886			v[3] << 24 | v[2] << 16 | v[1] << 8 | v[0]);
  887		tmp->driver_info[1] = cpu_to_le32(v[5] << 8 | v[4]);
  888		tmp->driver_info[2] = __constant_cpu_to_le32(0x12345678);
  889	}
  890

Link: https://lore.kernel.org/r/20200227201148.13973-1-hmadhani@marvell.com
Fixes: a31056ddc665 ("scsi: qla2xxx: Use endian macros to assign static fields in fwdump header")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 0a36fd6cef5e3a11a273300e777a26cb26274547 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8810 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:26:34 +00:00
Bart Van Assche
f46232802b qla2x00t-32gbit: Update driver version to 10.01.00.24-k
Link: https://lore.kernel.org/r/20200212214436.25532-26-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 1939295a8dfa7be1cea478d6d7d283c091b780d4 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8809 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:25:31 +00:00
Bart Van Assche
9959382e10 qla2x00t-32gbit: Use QLA_FW_STOPPED macro to propagate flag
This patch uses QLA_FW_STOPPED macro so that flag is propogated to all the
QPairs.

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

[ commit 0fc5b7e62322e1aa8384013ee1caff3f87d30207 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8808 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:24:47 +00:00
Bart Van Assche
b72c9a33d2 qla2x00t-32gbit: Add fixes for mailbox command
This patch fixes:

- qla2x00_issue_iocb_timeout will now return if chip is down

- only check for sp->qpair in abort handling

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

[ commit 345f574dac85276d1471492c6e90c57e3f90a4f3 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8807 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:23:58 +00:00
Bart Van Assche
7c96145fa5 qla2x00t-32gbit: Fix control flags for login/logout IOCB
This patch fixes control flag options for login/logout IOCB.

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

[ commit 419ae5fe73e50084fa794934fb62fab34f564b7c upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8806 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:23:24 +00:00
Bart Van Assche
a14a1505f2 qla2x00t-32gbit: Save rscn_gen for new fcport
Add missing rscn_gen when creating new fcport.

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

[ commit d26a8982c9bd92ce3596eb4f86e922cdaf6751e5 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8805 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:22:51 +00:00
Bart Van Assche
62a6e7be90 qla2x00t-32gbit: Use correct ISP28xx active FW region
For ISP28xx, use 28xx call to retrieve active FW region.

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

[ commit 8d4926d13076a89c1f750fe5af4c082d8ea15008 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8804 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:22:15 +00:00
Bart Van Assche
be964cdb42 qla2x00t-32gbit: Print portname for logging in qla24xx_logio_entry()
Add port name in the messages file to help debugging of Login/Logout IOCBs

Link: https://lore.kernel.org/r/20200212214436.25532-20-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit cbe729a63d5a2c5909c6ae7e54665059496e43b9 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8803 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:21:46 +00:00
Bart Van Assche
67f2033af8 qla2x00t-32gbit: Fix qla2x00_echo_test() based on ISP type
Ths patch fixes MBX in-direction for setting right bits for
qla2x00_echo_test()

Link: https://lore.kernel.org/r/20200212214436.25532-19-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 83cfd3dc002fc730387a1ec5fa0d4097cc31ee9f upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8802 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:21:17 +00:00
Bart Van Assche
369e73fb5a qla2x00t-32gbit: Correction to selection of loopback/echo test
This fixes loopback and echo test options.

Link: https://lore.kernel.org/r/20200212214436.25532-18-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 64d21b314173c46d5c88a55cf559b0677e39d884 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8801 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:20:40 +00:00
Bart Van Assche
b06d019fd8 qla2x00t-32gbit: Use endian macros to assign static fields in fwdump header
This takes care of big endian architectures.

Link: https://lore.kernel.org/r/20200212214436.25532-17-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit a31056ddc6651b457d72d8d71d32143764df86d2 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8800 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:20:03 +00:00
Bart Van Assche
d2d888e9d8 qla2x00t-32gbit: Fix RDP response size
This patch fixes RDP length in case when driver needs to reduce length of
RDP response

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

[ commit 84f7d2e7b1f5203050b47cfa65e284182d32f203 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8799 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:19:26 +00:00
Bart Van Assche
9350f88176 qla2x00t-32gbit: Handle cases for limiting RDP response payload length
This patch reduces RDP response payload length, if requesting port is a
domain controller (sid 0xfffc01) and fw is earlier than 8.09.00 and fw is
not 8.05.65 then limit the RDP response payload length to maximum of 256
bytes by terminating the response just before the optical element
descriptor.

Link: https://lore.kernel.org/r/20200212214436.25532-15-hmadhani@marvell.com
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 4879237cd28eebb9350a7e6d970677997abe2b9d upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8798 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:18:56 +00:00
Bart Van Assche
f2c5c66f39 qla2x00t-32gbit: Add deferred queue for processing ABTS and RDP
This patch adds deferred queue for processing aborts and RDP in the driver.

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

[ commit 576bfde80b28232a1dfcf0466986ed2934146d0a upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8797 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:18:23 +00:00
Bart Van Assche
04176824aa qla2x00t-32gbit: Cleanup ELS/PUREX iocb fields
This patch does the following to improve RDP processing:

 - Rename field port_id to d_id in ELS and PUREX iocb structs to match FW
   spec.

 - Remove redundant comments from ELS and PUREX iocb structs.

 - Refactor fields in ELS iocb struct for error subcode common access.

 - Properly use error subcode fields in rdp processing routine.

 - Add print logs for alloc failure in purex rdp processing routine.

Link: https://lore.kernel.org/r/20200212214436.25532-13-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 09e382bc3dd946cfee74044d18d1886567874300 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8796 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:17:40 +00:00
Bart Van Assche
e57446e99f qla2x00t-32gbit: Show correct port speed capabilities for RDP command
This patch correctly displays port speed capability and current speed for
RDP command.

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

[ commit 8b01e4db834db611555cc4ec5d8d9550024361af upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8795 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:16:41 +00:00
Bart Van Assche
57b38d0397 qla2x00t-32gbit: Display message for FCE enabled
During Link up phase and Data rate MBX command response, print message
indicating FCE is enabled.

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

[ commit 75666f4a8c4103fb120717140c26cdbf6b1bf053 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8794 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:16:11 +00:00
Bart Van Assche
28a97cee1b qla2x00t-32gbit: Add vendor extended FDMI commands
This patch adds support for extended FDMI commands and cleans up code to
reduce duplication.

Link: https://lore.kernel.org/r/20200212214436.25532-10-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 52bfb089d9d384a1ac0f6d94da7636eb9373a8f9 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8793 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:15:33 +00:00
Bart Van Assche
0519dae5de qla2x00t-32gbit: Add ql2xrdpenable module parameter for RDP
This patch provides separate module parameter ql2xrdpenable to turn on/off
RDP capability in the driver. However, if ql2xsmartsan parameter is
enabled, it will also turn on ql2xfdmienable parameter since it is required
for RDP to work.

Link: https://lore.kernel.org/r/20200212214436.25532-9-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit bd7de0b1c3947e176effb5f5b4a47eab79db771e upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8792 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:14:49 +00:00
Bart Van Assche
b88921cc3c qla2x00t-32gbit: Add vendor extended RDP additions and amendments
This patch adds RDP command support in the driver. With the help of new
ql2xsmartsan parameter, driver will use PUREX IOCB mode to send RDP command
to switch and will be able to receive various diagnostic data.

Link: https://lore.kernel.org/r/20200212214436.25532-8-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit d83a80ee57f0cb38baccc75e96bc56ac47d300b3 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8791 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:12:42 +00:00
Bart Van Assche
9121118763 qla2x00t-32gbit: Add changes in preparation for vendor extended FDMI/RDP
This patch prepares code for implementing Vendor specific extended FDMI/RDP
commands. It also addes support for MBC_GET_PORT_DATABASE and
MBC_GET_RNID_PARAMS commands.

Link: https://lore.kernel.org/r/20200212214436.25532-7-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 818c7f87a177781bc155a2bfa39066c89c5a6cdc upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8790 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:12:12 +00:00
Bart Van Assche
3fe1f17050 qla2x00t-32gbit: Add endianizer macro calls to fc host stats
This patch fixes endian warning for fc_host_stats.

Link: https://lore.kernel.org/r/20200212214436.25532-6-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 974c086045446a7cdad5de26ff691d9ac82a24a6 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8789 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:11:28 +00:00
Bart Van Assche
75f9dada7a qla2x00t-32gbit: Add sysfs node for D-Port Diagnostics AEN data
This patch adds sysfs node to show D-Port diag data.

Link: https://lore.kernel.org/r/20200212214436.25532-4-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit e6ad2b79b82f41a51f90c95686c39cd8be4a35f3 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8788 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:10:56 +00:00
Bart Van Assche
bdb841a713 qla2x00t-32gbit: Move free of fcport out of interrupt context
This patch moves freeing of fcport out of interrupt context.

Link: https://lore.kernel.org/r/20200212214436.25532-3-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 054f4382417098b4d0028f8145fa214d448792d7 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8787 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:10:16 +00:00
Bart Van Assche
3b661a286d qla2x00t-32gbit: Add beacon LED config sysfs interface
This patch provides an interface to do the following (using MBC 0x3B):
    
 - Displays (in hex) the LED config words for all three LEDs.
    
 - Programs the config words for one LED or for all three LEDs.

The sysfs node defined is named beacon_config.

First, to allow driver to gain LED control, do this:
 # echo 1 > /sys/class/scsi_host/host#/beacon

Then, to display config words for all three LEDs do this:
 # cat /sys/class/scsi_host/host#/beacon_config

To set config words for all three LEDs do this:
 # echo 3 xxxx yyyy zzzz > /sys/class/scsi_host/host#/beacon_config

Or, to set config word for a specific single LED n do this:
 # echo n xxxx > /sys/class/scsi_host/host#/beacon_config
  where n is the LED number (0, 1, 2)

Finally, to restore LED control back to firmware, do this:
 # echo 0 > /sys/class/scsi_host/host#/beacon

Link: https://lore.kernel.org/r/20200212214436.25532-2-hmadhani@marvell.com
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 07553b1e83b46414caa693ba10d1a16487409b61 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8786 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:09:38 +00:00
Bart Van Assche
590c45cf32 qla2x00t-32gbit: Check locking assumptions at runtime in qla2x00_abort_srb()
Document the locking assumptions this function relies on and also verify
these locking assumptions at runtime.

Cc: Quinn Tran <qutran@marvell.com>
Cc: Daniel Wagner <dwagner@suse.de>
Link: https://lore.kernel.org/r/20200123042345.23886-2-bvanassche@acm.org
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Martin Wilck <mwilck@suse.com>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 2494c2868d6e0eaaefd42f4fd2d260a8c35d240d upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8785 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:08:16 +00:00
Bart Van Assche
98a11ac4cd qla2x00t-32gbit: Fix unbound NVME response length
On certain cases when response length is less than 32, NVME response data
is supplied inline in IOCB. This is indicated by some combination of state
flags. There was an instance when a high, and incorrect, response length
was indicated causing driver to overrun buffers. Fix this by checking and
limiting the response payload length.

Fixes: 7401bc18d1ee3 ("scsi: qla2xxx: Add FC-NVMe command handling")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200124045014.23554-1-hmadhani@marvell.com
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

[ commit 00fe717ee1ea3c2979db4f94b1533c57aed8dea9 upstream ]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8784 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-07 21:06:52 +00:00
Bart Van Assche
69d90841b6 iscsi-scstd: Fix a memory leak in conn_free()
Signed-off-by: Lev Vainblat <lev@zadarastorage.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8783 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-03-05 02:35:34 +00:00