Commit Graph

6090 Commits

Author SHA1 Message Date
Bart Van Assche
bfefaa0180 qla2xxx: Unregister chrdev if module initialization fails
If module initialization fails after the character device has been
registered, unregister the character device. Additionally, avoid
duplicating error path code.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8235 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:34:50 +00:00
Bart Van Assche
0f7639a9a2 qla2xxx: Use get/put_unaligned where appropriate
This patch makes the code easier to read but does not change any
functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8234 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:34:26 +00:00
Bart Van Assche
5da65c0be7 qla2xxx: Make qla2x00_process_response_queue() easier to read
Make qla2x00_process_response_queue() easier to read by splitting this
function. This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8233 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:30:27 +00:00
Bart Van Assche
8eb2cd5104 qla2xxx: Declare local symbols static
This patch avoids that sparse complains that a declaration is missing.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8232 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:29:58 +00:00
Bart Van Assche
9696dfb235 qla2xxx: Use ARRAY_SIZE() in the definition of QLA_LAST_SPEED
Make the code easier to read by avoiding to use a hard-coded constant. This
patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8231 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:29:34 +00:00
Bart Van Assche
674a38d006 qla2xxx: Change a stack variable into a static const variable
Make qla2x00_get_host_fabric_name() slightly faster by changing a stack
array into a static array. Declare that array const now that the
wwn_to_u64() argument pointer has been declared const.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8230 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:29:07 +00:00
Bart Van Assche
22af9c7653 qla2xxx: Fix spelling mistake "alredy" -> "already"
There is a spelling mistake in a ql_log message. Fix it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8229 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:28:40 +00:00
Bart Van Assche
5892ed7ed1 qla2xxx: Remove useless memset()
The memory return by kzalloc() has already be set to zero, so remove
useless memset(0).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8228 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:28:05 +00:00
Bart Van Assche
3548f0998a qla2xxx: Update driver version to 10.01.00.16-k
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8227 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:27:20 +00:00
Bart Van Assche
371c5d00e3 qla2xxx: Change abort wait_loop from msleep to wait_event_timeout
This patch converts driver wait time from using msleep to
wair_event_timeout to prevent race condition.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8226 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:26:57 +00:00
Bart Van Assche
16f7d633dd qla2xxx: Fix driver unload when FC-NVMe LUNs are connected
This patch allows driver to unload using "modprobe -r" when FC-NVMe LUNs
are connected.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8225 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:26:34 +00:00
Bart Van Assche
1e7c4b0d9b qla2xxx: Remove redundant qla2x00_abort_all_cmds during unload
This patch removes redundant qla2x00_abort_all_cmds() during driver unload.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8224 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:26:12 +00:00
Bart Van Assche
c4e0fbce6f qla2xxx: Cleanup fcport memory to prevent leak
Clean up fcport list and loopid in one place and iterate through for loop.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8223 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:25:48 +00:00
Bart Van Assche
a32be9e6d2 qla2xxx: Protect qla2x00_sysfs_read_fw_dump() with a mutex
Add mutex protection to prevent driver from freeing the FW dump buffer
while the extraction is in progress.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8222 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:25:24 +00:00
Bart Van Assche
81a25cb3e0 qla2xxx: Fix fw dump corruption
If fw dump buffer size changes and there is an existing fw dump, then save
the old dump in the newly allocated buffer.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8221 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:24:43 +00:00
Bart Van Assche
b93f3b4b8c qla2xxx: Further limit FLASH region write access from SysFS
Recent ISPs have larger and more complex flash-write semantics
(secure-access and signing). The BSG interfaces support these semantics for
all ISPs and is exclusively used by QLogic user-space tools. Limit
flash-write operations to ISPs <= 25xx.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:24:17 +00:00
Bart Van Assche
10505579af qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines
Commit e6f77540c067 ("scsi: qla2xxx: Fix an integer overflow in sysfs
code") incorrectly set 'optrom_region_size' to 'start+size', which can
overflow option-rom boundaries when 'start' is non-zero.  Continue setting
optrom_region_size to the proper adjusted value of 'size'.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8219 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:23:55 +00:00
Bart Van Assche
a686180c77 qla2xxx: Disable T10-DIF feature with FC-NVMe during probe
With FC-NVMe enabled, driver does not support T10 DIF/DIX. This patch
disables T10-PI information when ql2xnvmeenable is set.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8218 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:23:33 +00:00
Bart Van Assche
e1ae689531 qla2xxx: Increase max_sgl_segments to 1024
This patch increases max_sgl_segments from 128 to the maximum supported
which is 1024. Increasing max_sgl_segments allows the driver to support
larger I/O sizes.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8217 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:23:00 +00:00
Bart Van Assche
32324e46de qla2xxx: Reset the FCF_ASYNC_{SENT|ACTIVE} flags
Driver maintains state machine for processing and completing switch
commands. This patch resets FCF_ASYNC_{SENT|ACTIVE} flag to indicate if the
previous command is active or sent, in order for next GPSC command to
advance the state machine.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:22:14 +00:00
Bart Van Assche
03427baae1 qla2xxx: Set the qpair in SRB to NULL when SRB is released
This patch sets QPair pointer to NULL to prevent abort command racing ahead
of normal command completion handling during scsi_done call.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8215 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:21:34 +00:00
Bart Van Assche
eb4388978e qla2xxx: Set the SCSI command result before calling the command done
This patch tries to address race condition between abort handler and
completion handler. When scsi command result is set by both abort and
completion handler, scsi_done() is only called after refcount on SRB
structure goes to zero. The abort handler sets this result prematurely even
when the refcount is non-zero value. Fix this by setting SCSI cmd->result
before scsi_done() is called.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8214 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:21:01 +00:00
Bart Van Assche
6093c63ba1 qla2xxx: Simplify conditional check again
Clang warns when it sees a logical not on the left side of a conditional
statement because it thinks the logical not should be applied to the whole
statement, not just the left side:

drivers/scsi/qla2xxx/qla_nx.c:3703:7: warning: logical not is only
applied to the left hand side of this comparison
[-Wlogical-not-parentheses]

This particular instance was already fixed by commit 0bfe7d3cae58 ("scsi:
qla2xxx: Simplify conditional check") upstream but it was reintroduced by
commit 3695310e37b4 ("scsi: qla2xxx: Update flash read/write routine") in
the 5.2/scsi-queue.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8213 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:20:36 +00:00
Bart Van Assche
c93f1c41ab qla2xxx: Fix a small typo in qla_bsg.c
Fixed a typo for 'iiDMA' cmd in qla_bsg.c.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8212 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:20:10 +00:00
Bart Van Assche
176993a766 qla2xxx: Fix comment alignment in qla_bsg.c
Fix a minor formatting issue with comment section in qla_bsg.c.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8211 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:19:48 +00:00
Bart Van Assche
de350a3ca4 qla2xxx: Update driver version to 10.01.00.15-k
This version includes support for ISP28XX.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8210 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:19:21 +00:00
Bart Van Assche
3e397c0d71 qla2xxx: Secure flash update support for ISP28XX
This patch adds support for Secure flash update with ISP28xx.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8209 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:18:59 +00:00
Bart Van Assche
e273f3dedb qla2xxx: Add 28xx flash primary/secondary status/image mechanism
Includes the following:
- correction to 27xx image status struct;
- factoring of 27xx image status validating routines to make common;
- image status generation compare that works across zero wrap;
- bsg interface to report current active images (as loaded by driver).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8208 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:18:36 +00:00
Bart Van Assche
386626802f qla2xxx: Simplify register address used in qla_tmpl.c
Reduce stack space on each fwdt routine by eliminating local variable reg.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8207 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:18:11 +00:00
Bart Van Assche
f6fc5d8484 qla2xxx: Correction and improvement to fwdt processing
This patch cleans up and fixes firmware dump template processing. These
changes are added to support newer features for ISP27XX/ISP28XX.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8206 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:17:21 +00:00
Bart Van Assche
cfe8d10222 qla2xxx: Update flash read/write routine
This patch makes following changes to flash access routines:

- update return type for read_optrom
- use void instead of uint32_t * for buffer parameter in read
  and write optrom routines
- fix flash/nvram addressing


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8205 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:16:52 +00:00
Bart Van Assche
c4697a40e4 qla2xxx: Fix read offset in qla24xx_load_risc_flash()
Fixes: "qla2xxx: Cleanups for NVRAM/Flash read/write path"


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8204 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:16:28 +00:00
Bart Van Assche
f4efe31dbc qla2xxx: Add support for multiple fwdump templates/segments
This patch adds multipe firmware dump template and segments support for
ISP27XX/28XX.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8203 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:16:05 +00:00
Bart Van Assche
201e9ba136 qla2xxx: Cleanups for NVRAM/Flash read/write path
This patch does following:

 - Clean up NVRAM code.
 - Optimizes reading of primary/secondary flash image validation.
 - Remove 0xff mask and make correct width in FLT structure.
 - Use endian macros to assign static fields in fwdump header.
 - Correct fdwt checksum calculation.
 - Simplify ql_dump_buffer() interface usage.
 - Add endianizers to 27xx firmware image validator.
 - fixes compiler warnings for big endian architecture.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8202 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:15:41 +00:00
Bart Van Assche
e8995d41ee qla2xxx: Correctly report max/min supported speeds
This patch fixes reported speed for min_link and max_supported speed. Also
rename sysfs nodes link_speed and max_supported to be consistent with
{min|max}_suuported_speed.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8201 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:15:08 +00:00
Bart Van Assche
e2ded798c0 qla2xxx: Add Serdes support for ISP28XX
This patch adds sysfs node for serdes_version and also cleans up port_speed
display.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8200 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:14:38 +00:00
Bart Van Assche
6e708764f7 qla2xxx: Add Device ID for ISP28XX
This patch adds PCI device ID ISP28XX for Gen7 support.  Also signature
determination for primary/secondary flash image for ISP27XX/28XX is added as
part of Gen7 support.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8199 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:14:12 +00:00
Bart Van Assche
5184753236 qla2xxx: Fix routine qla27xx_dump_{mpi|ram}()
This patch fixes qla27xx_dump_{mpi|ram} api for ISP27XX.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8198 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:13:40 +00:00
Bart Van Assche
fa72f713e0 qla2xxx: Remove FW default template
This patch removes FW default template as there will never be case where
the default template would be invoked.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8197 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:13:19 +00:00
Bart Van Assche
e1b2d90bff qla2xxx: Add fw_attr and port_no sysfs attributes
This patch adds new sysfs attributes for the firmware attributes and port
number.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8196 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:12:50 +00:00
Bart Van Assche
a359ed4904 scst/include/backport.h: Port recent changes to RHEL 6 and RHEL 7
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8195 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-14 01:11:31 +00:00
Bart Van Assche
a2ed73c287 scst/include/backport.h: Backport FC_PORTSPEED_64GBIT
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8194 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:57:18 +00:00
Bart Van Assche
e4a05976e7 scst/include/backport.h: Add wait_event_lock_irq_timeout() backport
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8193 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:56:39 +00:00
Bart Van Assche
5a85f399c8 scst/include/backport.h: Backport wwn_to_u64()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8192 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:55:58 +00:00
Bart Van Assche
3c4dcb4135 qla2x00t-32gbit: Avoid corrupting vha->plogi_ack_list
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8191 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:53:24 +00:00
Bart Van Assche
88e87e1506 qla2x00t-32gbit, target: Verify locking assumptions at runtime
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8190 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:52:48 +00:00
Bart Van Assche
f0ffaaa59c qla2x00t-32gbit, target, Makefile: Modify an echo statement
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8189 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:52:10 +00:00
Bart Van Assche
c382752163 qla2x00t-32gbit: Build the qla2xxx_scst driver with the same flags as the target driver
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8188 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:51:30 +00:00
Bart Van Assche
1c65ca5dc1 qla2x00t-32gbit: Complain loudly about reference count underflow
Reference undercount underflow is a serious issue so complain loudly
about it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8187 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:50:45 +00:00
Bart Van Assche
c5f45ada28 qla2x00t-32gbit, target: Reduce the number of forward declarations
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8186 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-04-13 22:49:48 +00:00