forked from luck/tmp_suning_uos_patched
SCSI fixes on 20200620
One minor fix and two patches reworking the ata dma drain for the
!CONFIG_LIBATA case. The latter is a regression fix for cc97923a5b
("block: move dma drain handling to scsi")
Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com>
-----BEGIN PGP SIGNATURE-----
iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXu5JliYcamFtZXMuYm90
dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishcWzAP0SdVNo
4pWvdzaqxBqdoe0UlKygfyDUI2/d2682v9qcsgEA1mfpI6NHbmwAftO63t6kF+ll
PPNnsJKcjYph5MrJzkk=
=+54z
-----END PGP SIGNATURE-----
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"One minor fix and two patches reworking the ata dma drain for the
!CONFIG_LIBATA case. The latter is a 5.7 regression fix"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: Wire up ata_scsi_dma_need_drain for SAS HBA drivers
scsi: libata: Provide an ata_scsi_dma_need_drain stub for !CONFIG_ATA
scsi: ufs-bsg: Fix runtime PM imbalance on error
This commit is contained in:
commit
64677779e8
|
@ -40,6 +40,7 @@ static struct scsi_host_template aic94xx_sht = {
|
|||
/* .name is initialized */
|
||||
.name = "aic94xx",
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = sas_slave_configure,
|
||||
.scan_finished = asd_scan_finished,
|
||||
|
|
|
@ -1756,6 +1756,7 @@ static struct scsi_host_template sht_v1_hw = {
|
|||
.proc_name = DRV_NAME,
|
||||
.module = THIS_MODULE,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = hisi_sas_slave_configure,
|
||||
.scan_finished = hisi_sas_scan_finished,
|
||||
|
|
|
@ -3532,6 +3532,7 @@ static struct scsi_host_template sht_v2_hw = {
|
|||
.proc_name = DRV_NAME,
|
||||
.module = THIS_MODULE,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = hisi_sas_slave_configure,
|
||||
.scan_finished = hisi_sas_scan_finished,
|
||||
|
|
|
@ -3075,6 +3075,7 @@ static struct scsi_host_template sht_v3_hw = {
|
|||
.proc_name = DRV_NAME,
|
||||
.module = THIS_MODULE,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = hisi_sas_slave_configure,
|
||||
.scan_finished = hisi_sas_scan_finished,
|
||||
|
|
|
@ -6731,6 +6731,7 @@ static struct scsi_host_template driver_template = {
|
|||
.compat_ioctl = ipr_ioctl,
|
||||
#endif
|
||||
.queuecommand = ipr_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.eh_abort_handler = ipr_eh_abort,
|
||||
.eh_device_reset_handler = ipr_eh_dev_reset,
|
||||
.eh_host_reset_handler = ipr_eh_host_reset,
|
||||
|
|
|
@ -153,6 +153,7 @@ static struct scsi_host_template isci_sht = {
|
|||
.name = DRV_NAME,
|
||||
.proc_name = DRV_NAME,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = sas_slave_configure,
|
||||
.scan_finished = isci_host_scan_finished,
|
||||
|
|
|
@ -33,6 +33,7 @@ static struct scsi_host_template mvs_sht = {
|
|||
.module = THIS_MODULE,
|
||||
.name = DRV_NAME,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = sas_slave_configure,
|
||||
.scan_finished = mvs_scan_finished,
|
||||
|
|
|
@ -87,6 +87,7 @@ static struct scsi_host_template pm8001_sht = {
|
|||
.module = THIS_MODULE,
|
||||
.name = DRV_NAME,
|
||||
.queuecommand = sas_queuecommand,
|
||||
.dma_need_drain = ata_scsi_dma_need_drain,
|
||||
.target_alloc = sas_target_alloc,
|
||||
.slave_configure = sas_slave_configure,
|
||||
.scan_finished = pm8001_scan_finished,
|
||||
|
|
|
@ -106,8 +106,10 @@ static int ufs_bsg_request(struct bsg_job *job)
|
|||
desc_op = bsg_request->upiu_req.qr.opcode;
|
||||
ret = ufs_bsg_alloc_desc_buffer(hba, job, &desc_buff,
|
||||
&desc_len, desc_op);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
pm_runtime_put_sync(hba->dev);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* fall through */
|
||||
case UPIU_TRANSACTION_NOP_OUT:
|
||||
|
|
|
@ -1095,7 +1095,11 @@ extern int ata_scsi_ioctl(struct scsi_device *dev, unsigned int cmd,
|
|||
#define ATA_SCSI_COMPAT_IOCTL /* empty */
|
||||
#endif
|
||||
extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
#if IS_ENABLED(CONFIG_ATA)
|
||||
bool ata_scsi_dma_need_drain(struct request *rq);
|
||||
#else
|
||||
#define ata_scsi_dma_need_drain NULL
|
||||
#endif
|
||||
extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev,
|
||||
unsigned int cmd, void __user *arg);
|
||||
extern bool ata_link_online(struct ata_link *link);
|
||||
|
|
Loading…
Reference in New Issue
Block a user