Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+15 -1
+1
drivers/scsi/aic94xx/aic94xx_init.c
··· 40 40 /* .name is initialized */ 41 41 .name = "aic94xx", 42 42 .queuecommand = sas_queuecommand, 43 + .dma_need_drain = ata_scsi_dma_need_drain, 43 44 .target_alloc = sas_target_alloc, 44 45 .slave_configure = sas_slave_configure, 45 46 .scan_finished = asd_scan_finished,
+1
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
··· 1756 1756 .proc_name = DRV_NAME, 1757 1757 .module = THIS_MODULE, 1758 1758 .queuecommand = sas_queuecommand, 1759 + .dma_need_drain = ata_scsi_dma_need_drain, 1759 1760 .target_alloc = sas_target_alloc, 1760 1761 .slave_configure = hisi_sas_slave_configure, 1761 1762 .scan_finished = hisi_sas_scan_finished,
+1
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
··· 3532 3532 .proc_name = DRV_NAME, 3533 3533 .module = THIS_MODULE, 3534 3534 .queuecommand = sas_queuecommand, 3535 + .dma_need_drain = ata_scsi_dma_need_drain, 3535 3536 .target_alloc = sas_target_alloc, 3536 3537 .slave_configure = hisi_sas_slave_configure, 3537 3538 .scan_finished = hisi_sas_scan_finished,
+1
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
··· 3075 3075 .proc_name = DRV_NAME, 3076 3076 .module = THIS_MODULE, 3077 3077 .queuecommand = sas_queuecommand, 3078 + .dma_need_drain = ata_scsi_dma_need_drain, 3078 3079 .target_alloc = sas_target_alloc, 3079 3080 .slave_configure = hisi_sas_slave_configure, 3080 3081 .scan_finished = hisi_sas_scan_finished,
+1
drivers/scsi/ipr.c
··· 6731 6731 .compat_ioctl = ipr_ioctl, 6732 6732 #endif 6733 6733 .queuecommand = ipr_queuecommand, 6734 + .dma_need_drain = ata_scsi_dma_need_drain, 6734 6735 .eh_abort_handler = ipr_eh_abort, 6735 6736 .eh_device_reset_handler = ipr_eh_dev_reset, 6736 6737 .eh_host_reset_handler = ipr_eh_host_reset,
+1
drivers/scsi/isci/init.c
··· 153 153 .name = DRV_NAME, 154 154 .proc_name = DRV_NAME, 155 155 .queuecommand = sas_queuecommand, 156 + .dma_need_drain = ata_scsi_dma_need_drain, 156 157 .target_alloc = sas_target_alloc, 157 158 .slave_configure = sas_slave_configure, 158 159 .scan_finished = isci_host_scan_finished,
+1
drivers/scsi/mvsas/mv_init.c
··· 33 33 .module = THIS_MODULE, 34 34 .name = DRV_NAME, 35 35 .queuecommand = sas_queuecommand, 36 + .dma_need_drain = ata_scsi_dma_need_drain, 36 37 .target_alloc = sas_target_alloc, 37 38 .slave_configure = sas_slave_configure, 38 39 .scan_finished = mvs_scan_finished,
+1
drivers/scsi/pm8001/pm8001_init.c
··· 87 87 .module = THIS_MODULE, 88 88 .name = DRV_NAME, 89 89 .queuecommand = sas_queuecommand, 90 + .dma_need_drain = ata_scsi_dma_need_drain, 90 91 .target_alloc = sas_target_alloc, 91 92 .slave_configure = sas_slave_configure, 92 93 .scan_finished = pm8001_scan_finished,
+3 -1
drivers/scsi/ufs/ufs_bsg.c
··· 106 106 desc_op = bsg_request->upiu_req.qr.opcode; 107 107 ret = ufs_bsg_alloc_desc_buffer(hba, job, &desc_buff, 108 108 &desc_len, desc_op); 109 - if (ret) 109 + if (ret) { 110 + pm_runtime_put_sync(hba->dev); 110 111 goto out; 112 + } 111 113 112 114 /* fall through */ 113 115 case UPIU_TRANSACTION_NOP_OUT:
+4
include/linux/libata.h
··· 1095 1095 #define ATA_SCSI_COMPAT_IOCTL /* empty */ 1096 1096 #endif 1097 1097 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); 1098 + #if IS_ENABLED(CONFIG_ATA) 1098 1099 bool ata_scsi_dma_need_drain(struct request *rq); 1100 + #else 1101 + #define ata_scsi_dma_need_drain NULL 1102 + #endif 1099 1103 extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, 1100 1104 unsigned int cmd, void __user *arg); 1101 1105 extern bool ata_link_online(struct ata_link *link);