Hannes Reinecke
dcece99e86
scsi: core: add scsi_host_busy_iter()
...
Add an iterator scsi_host_busy_iter() to traverse all busy commands. If
locking against concurrent command completions is required, it has to be
provided by the caller.
Link: https://lore.kernel.org/r/20200228075318.91255-11-hare@suse.de
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:52 -05:00
Hannes Reinecke
3d3ca53b16
scsi: aacraid: use scsi_host_(block,unblock) to block I/O
...
Use scsi_host_block() and scsi_host_unblock() instead of
scsi_block_requests()/scsi_unblock_requests() to block and unblock I/O.
This has the advantage that the block layer will stop sending I/O to the
adapter instead of having the SCSI midlayer requeueing I/O internally.
Link: https://lore.kernel.org/r/20200228075318.91255-10-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Acked-by: Balsundar P < Balsundar.P@microchip.com >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:51 -05:00
Hannes Reinecke
2bb955840c
scsi: core: add scsi_host_(block,unblock) helper function
...
Add helper functions to call scsi_internal_device_block()/
scsi_internal_device_unblock() for all attached devices on a SCSI host.
Link: https://lore.kernel.org/r/20200228075318.91255-9-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:51 -05:00
Hannes Reinecke
5646e13a95
scsi: aacraid: move scsi_(block,unblock)_requests out of _aac_reset_adapter()
...
_aac_reset_adapter() only has one caller, and that one already calls
scsi_block_requests(). Move the calls out of _aac_reset_adapter() to avoid
calling scsi_block_requests() twice.
Link: https://lore.kernel.org/r/20200228075318.91255-8-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Acked-by: Balsundar P < Balsundar.P@microchip.com >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:50 -05:00
Hannes Reinecke
b64f239e61
scsi: aacraid: replace aac_flush_ios() with midlayer helper
...
Use the midlayer helper scsi_host_complete_all_commands() to flush all
outstanding commands.
Link: https://lore.kernel.org/r/20200228075318.91255-7-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Acked-by: Balsundar P <balsundar.p@microchip.com >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:49 -05:00
Hannes Reinecke
a1855f6126
scsi: aacraid: use scsi_host_complete_all_commands() to terminate outstanding commands
...
Use scsi_host_complete_all_commands() to terminate all outstanding commands
and change the command result for terminated commands to the more common
'DID_RESET' instead of 'QUEUE_FULL'.
Link: https://lore.kernel.org/r/20200228075318.91255-6-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Acked-by: Balsundar P <balsundar.p@microchip.com >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:49 -05:00
Hannes Reinecke
2c644b1d70
scsi: aacraid: Do not wait for outstanding write commands on synchronize_cache
...
There is no need to wait for outstanding write commands on synchronize
cache; the block layer is responsible for I/O scheduling, no need to
out-guess it in the driver layer.
Link: https://lore.kernel.org/r/20200228075318.91255-5-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Acked-by: Balsundar P <balsundar.b@microchip.com >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:49 -05:00
Hannes Reinecke
84ff9532e5
scsi: dpt_i2o: use scsi_host_complete_all_commands() to abort outstanding commands
...
Rather than traversing all outstanding commands manually, use the
scsi_host_complete_all_commands() helper to terminate all commands during
reset. With that we can drop the cmd_list usage from the midlayer.
Link: https://lore.kernel.org/r/20200228075318.91255-4-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:48 -05:00
Hannes Reinecke
466552b9f3
scsi: core: add scsi_host_complete_all_commands() helper
...
Add a helper scsi_host_complete_all_commands() to terminate all outstanding
commands on a SCSI host.
Link: https://lore.kernel.org/r/20200228075318.91255-3-hare@suse.de
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:47 -05:00
Hannes Reinecke
22f0ba4a28
scsi: dpt_i2o: rename adpt_i2o_to_scsi() to adpt_i2o_scsi_complete()
...
Rename the badly named function into adpt_i2o_scsi_complete(), and make it
a void function as the return value is never used. This also fixes a
potential use-after-free as the return value might be evaluated from the
command result after the command has been freed.
Link: https://lore.kernel.org/r/20200228075318.91255-2-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:54:47 -05:00
Guosong Su
9e7bd945b9
scsi: core: use kobj_to_dev
...
Use kobj_to_dev to instead of open-coding it.
Link: https://lore.kernel.org/r/20200225100411.10250-1-guosongsu@gmail.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Guosong Su <suguosong@xiaomi.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:43:53 -05:00
Stanley Chu
b3222c326c
scsi: ufs: ufs-mediatek: add waiting time for reference clock
...
Some delays may be required either after gating or before ungating
reference clock for device according to vendor requirements.
Note that in UFS 3.0, the delay time after gating reference
clock can be defined by attribute bRefClkGatingWaitTime. Use the
formal value instead if it can be queried from device.
Link: https://lore.kernel.org/r/20200220134848.8807-2-stanley.chu@mediatek.com
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:41:52 -05:00
Can Guo
27ff2c60e0
scsi: ufs-qcom: Apply QUIRK_HOST_TACTIVATE for WDC UFS devices
...
Western Digital UFS devices require host's PA_TACTIVATE to be lower than
device's PA_TACTIVATE, otherwise it may get stuck during hibern8 sequence.
Link: https://lore.kernel.org/r/1582517363-11536-3-git-send-email-cang@codeaurora.org
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org >
Acked-by: Avri Altman <avri.altman@wdc.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:40:01 -05:00
Can Guo
e91ed9e0e4
scsi: ufs: Allow vendor device quirks to be applied early
...
Currently ufshcd_vops_apply_dev_quirks() comes after all UniPro parameters
have been tuned. Move it up so that vendors have a chance to apply device
quirks in advance.
Link: https://lore.kernel.org/r/1582517363-11536-2-git-send-email-cang@codeaurora.org
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Signed-off-by: Can Guo <cang@codeaurora.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:40:00 -05:00
Christoph Hellwig
c3f7d1fcb4
scsi: ufshcd: use an enum for quirks
...
Use an enum to specify the various quirks instead of #defines inside the
structure definition.
[mkp: fix typo]
Link: https://lore.kernel.org/r/20200221140812.476338-3-hch@lst.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:37:00 -05:00
Christoph Hellwig
492001990f
scsi: ufshcd: remove unused quirks
...
Remove various quirks that don't have users, as well as the dead code keyed
off them.
Link: https://lore.kernel.org/r/20200221140812.476338-2-hch@lst.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-28 20:36:59 -05:00
Himanshu Madhani
4cbca7ea9e
scsi: qla2xxx: 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 >
2020-02-28 20:32:37 -05:00
Quinn Tran
ad8a260aa8
scsi: qla2xxx: 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 >
2020-02-28 20:32:37 -05:00
Arun Easi
3d582b3499
scsi: qla2xxx: 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 >
2020-02-28 20:32:36 -05:00
Quinn Tran
3e4615a292
scsi: qla2xxx: 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 >
2020-02-28 20:32:36 -05:00
Quinn Tran
11efe8755d
scsi: qla2xxx: 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 >
2020-02-28 20:32:35 -05:00
Quinn Tran
ab391abdc1
scsi: qla2xxx: 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 >
2020-02-28 20:32:35 -05:00
Quinn Tran
770538c301
scsi: qla2xxx: 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 >
2020-02-28 20:32:34 -05:00
Quinn Tran
cad9c2d28e
scsi: qla2xxx: 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 >
2020-02-28 20:32:34 -05:00
Quinn Tran
a82c307e69
scsi: qla2xxx: 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 >
2020-02-28 20:32:33 -05:00
Andrew Vasquez
b0f18eee6f
scsi: qla2xxx: Update BPM enablement semantics.
...
commit e4e3a2ce95 ("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 >
2020-02-28 20:32:33 -05:00
Quinn Tran
ce1ee122e0
scsi: qla2xxx: 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 >
2020-02-28 20:32:31 -05:00
Andrew Vasquez
7b2a73963c
scsi: qla2xxx: 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 >
2020-02-28 20:32:30 -05:00
Michael Hernandez
1b81e7f301
scsi: qla2xxx: 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 >
2020-02-28 20:32:29 -05:00
Michael Hernandez
4ba836f686
scsi: qla2xxx: 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 >
2020-02-28 20:32:29 -05:00
Quinn Tran
8e0e063af0
scsi: qla2xxx: 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: e8c72ba51a ("[SCSI] qla2xxx: Use GFF_ID to check FCP-SCSI FC4 type before logging into Nx_Ports")
Fixes: a4239945b8 ("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 >
2020-02-28 20:32:28 -05:00
Giridhar Malavali
37efd51f75
scsi: qla2xxx: 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 >
2020-02-28 20:32:27 -05:00
Giridhar Malavali
9ef4847a80
scsi: qla2xxx: 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 >
2020-02-28 20:32:26 -05:00
Himanshu Madhani
efd39a2ad6
scsi: qla2xxx: 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 >
2020-02-28 20:32:25 -05:00
Bart Van Assche
c25eb70a10
scsi: qla2xxx: 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 >
2020-02-28 19:55:01 -05:00
Bart Van Assche
471298cab8
scsi: qla2xxx: 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 >
2020-02-28 19:54:59 -05:00
Bart Van Assche
1ee5ac365c
scsi: qla2xxx: 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 >
2020-02-28 19:54:59 -05:00
Bart Van Assche
c81ef0ed44
scsi: qla2xxx: 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 >
2020-02-28 19:54:58 -05:00
Himanshu Madhani
0a36fd6cef
scsi: qla2xxx: 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: a31056ddc6 ("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 >
2020-02-28 19:49:00 -05:00
Colin Ian King
162e250031
scsi: lpfc: fix spelling mistake "Notication" -> "Notification"
...
There is a spelling mistake in a lpfc_printf_vlog info message. Fix it.
[mkp: fix spelling mistake in commit description]
Link: https://lore.kernel.org/linux-scsi/20200221154841.77791-1-colin.king@canonical.com
Reviewed-by: James Smart <james.smart@broadcom.com >
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 15:18:14 -05:00
Merlijn Wajer
51a858817d
scsi: sr: get rid of sr global mutex
...
When replacing the Big Kernel Lock in commit 2a48fc0ab2 ("block:
autoconvert trivial BKL users to private mutex"), the lock was replaced
with a sr-wide lock.
This causes very poor performance when using multiple sr devices, as the sr
driver was not able to execute more than one command to one drive at any
given time, even when there were many CD drives available.
Replace the global mutex with per-sr-device mutex.
Someone tried this patch at the time, but it never made it upstream, due to
possible concerns with race conditions, but it's not clear the patch
actually caused those:
https://www.spinics.net/lists/linux-scsi/msg63706.html
https://www.spinics.net/lists/linux-scsi/msg63750.html
Also see
http://lists.xiph.org/pipermail/paranoia/2019-December/001647.html
Link: https://lore.kernel.org/r/20200218143918.30267-1-merlijn@archive.org
Acked-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Merlijn Wajer <merlijn@archive.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 15:01:57 -05:00
Diego Elio Pettenò
679b2ec8e0
scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
...
This kernel configuration is basically enabling/disabling sr driver quirks
detection. While these quirks are for fairly rare devices (very old CD
burners, and a glucometer), the additional detection of these models is a
very minimal amount of code.
The logic behind the quirks is always built into the sr driver.
This also removes the config from all the defconfig files that are enabling
this already.
Link: https://lore.kernel.org/r/20200223191144.726-1-flameeyes@flameeyes.com
Reviewed-by: Jens Axboe <axboe@kernel.dk >
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 14:59:01 -05:00
Hannes Reinecke
30f6d494cc
scsi: ch: remove ch_mutex()
...
ch_mutex() was introduced with a mechanical conversion, but as we now have
correct locking we can remove it altogether.
Link: https://lore.kernel.org/r/20200213153207.123357-4-hare@suse.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 14:54:25 -05:00
Hannes Reinecke
1c7ce4bcfb
scsi: ch: synchronize ch_probe() and ch_open()
...
The 'ch' device node is created before the configuration is being read in,
which leads to a race window when ch_open() is called before that.
To avoid any races we should be taking the device mutex during
ch_readconfig() and ch_init_elem(), and also during ch_open().
That ensures ch_probe is finished before ch_open() completes.
Link: https://lore.kernel.org/r/20200213153207.123357-3-hare@suse.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 14:54:25 -05:00
Hannes Reinecke
66167283c2
scsi: ch: fixup refcounting imbalance for SCSI devices
...
The SCSI device is required to be present during ch_probe() and ch_open().
But the SCSI device itself is only checked during ch_open(), so it's anyones
guess if it had been present during ch_probe(). And consequently we can't
reliably detach it during ch_release(), as ch_remove() might have been
called first. So initialize the changer device during ch_probe(), and take
a reference to the SCSI device during both ch_probe() and ch_open().
[mkp: fixed checkpatch warning]
Link: https://lore.kernel.org/r/20200213153207.123357-2-hare@suse.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2020-02-24 14:54:24 -05:00
Himanshu Madhani
1939295a8d
scsi: qla2xxx: 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 >
2020-02-24 12:34:30 -05:00
Himanshu Madhani
0fc5b7e623
scsi: qla2xxx: 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 >
2020-02-24 12:34:29 -05:00
Himanshu Madhani
345f574dac
scsi: qla2xxx: 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 >
2020-02-24 12:34:29 -05:00
Himanshu Madhani
419ae5fe73
scsi: qla2xxx: 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 >
2020-02-24 12:34:29 -05:00
Himanshu Madhani
d26a8982c9
scsi: qla2xxx: 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 >
2020-02-24 12:34:29 -05:00