Loading block/blk-core.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -2455,14 +2455,16 @@ struct request *blk_peek_request(struct request_queue *q) rq = NULL; rq = NULL; break; break; } else if (ret == BLKPREP_KILL) { } else if (ret == BLKPREP_KILL || ret == BLKPREP_INVALID) { int err = (ret == BLKPREP_INVALID) ? -EREMOTEIO : -EIO; rq->cmd_flags |= REQ_QUIET; rq->cmd_flags |= REQ_QUIET; /* /* * Mark this request as started so we don't trigger * Mark this request as started so we don't trigger * any debug logic in the end I/O path. * any debug logic in the end I/O path. */ */ blk_start_request(rq); blk_start_request(rq); __blk_end_request_all(rq, -EIO); __blk_end_request_all(rq, err); } else { } else { printk(KERN_ERR "%s: bad return=%d\n", __func__, ret); printk(KERN_ERR "%s: bad return=%d\n", __func__, ret); break; break; Loading drivers/scsi/device_handler/scsi_dh_rdac.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -562,7 +562,7 @@ static int mode_select_handle_sense(struct scsi_device *sdev, /* /* * Command Lock contention * Command Lock contention */ */ err = SCSI_DH_RETRY; err = SCSI_DH_IMM_RETRY; break; break; default: default: break; break; Loading Loading @@ -612,6 +612,8 @@ static void send_mode_select(struct work_struct *work) err = mode_select_handle_sense(sdev, h->sense); err = mode_select_handle_sense(sdev, h->sense); if (err == SCSI_DH_RETRY && retry_cnt--) if (err == SCSI_DH_RETRY && retry_cnt--) goto retry; goto retry; if (err == SCSI_DH_IMM_RETRY) goto retry; } } if (err == SCSI_DH_OK) { if (err == SCSI_DH_OK) { h->state = RDAC_STATE_ACTIVE; h->state = RDAC_STATE_ACTIVE; Loading drivers/scsi/hisi_sas/Kconfig +1 −1 Original line number Original line Diff line number Diff line config SCSI_HISI_SAS config SCSI_HISI_SAS tristate "HiSilicon SAS" tristate "HiSilicon SAS" depends on HAS_DMA depends on HAS_DMA && HAS_IOMEM depends on ARM64 || COMPILE_TEST depends on ARM64 || COMPILE_TEST select SCSI_SAS_LIBSAS select SCSI_SAS_LIBSAS select BLK_DEV_INTEGRITY select BLK_DEV_INTEGRITY Loading drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +3 −6 Original line number Original line Diff line number Diff line Loading @@ -1289,13 +1289,10 @@ static int slot_complete_v1_hw(struct hisi_hba *hisi_hba, goto out; goto out; } } if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK) { if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK && if (!(cmplt_hdr_data & CMPLT_HDR_CMD_CMPLT_MSK) || !(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) { !(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) ts->stat = SAS_DATA_OVERRUN; else slot_err_v1_hw(hisi_hba, task, slot); slot_err_v1_hw(hisi_hba, task, slot); goto out; goto out; } } Loading drivers/scsi/scsi_devinfo.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,7 @@ static struct { {"Intel", "Multi-Flex", NULL, BLIST_NO_RSOC}, {"Intel", "Multi-Flex", NULL, BLIST_NO_RSOC}, {"iRiver", "iFP Mass Driver", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"iRiver", "iFP Mass Driver", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"LASOUND", "CDX7405", "3.10", BLIST_MAX5LUN | BLIST_SINGLELUN}, {"LASOUND", "CDX7405", "3.10", BLIST_MAX5LUN | BLIST_SINGLELUN}, {"Marvell", "Console", NULL, BLIST_SKIP_VPD_PAGES}, {"MATSHITA", "PD-1", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"MATSHITA", "PD-1", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"MATSHITA", "DMC-LC5", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC5", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC40", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC40", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, Loading Loading
block/blk-core.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -2455,14 +2455,16 @@ struct request *blk_peek_request(struct request_queue *q) rq = NULL; rq = NULL; break; break; } else if (ret == BLKPREP_KILL) { } else if (ret == BLKPREP_KILL || ret == BLKPREP_INVALID) { int err = (ret == BLKPREP_INVALID) ? -EREMOTEIO : -EIO; rq->cmd_flags |= REQ_QUIET; rq->cmd_flags |= REQ_QUIET; /* /* * Mark this request as started so we don't trigger * Mark this request as started so we don't trigger * any debug logic in the end I/O path. * any debug logic in the end I/O path. */ */ blk_start_request(rq); blk_start_request(rq); __blk_end_request_all(rq, -EIO); __blk_end_request_all(rq, err); } else { } else { printk(KERN_ERR "%s: bad return=%d\n", __func__, ret); printk(KERN_ERR "%s: bad return=%d\n", __func__, ret); break; break; Loading
drivers/scsi/device_handler/scsi_dh_rdac.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -562,7 +562,7 @@ static int mode_select_handle_sense(struct scsi_device *sdev, /* /* * Command Lock contention * Command Lock contention */ */ err = SCSI_DH_RETRY; err = SCSI_DH_IMM_RETRY; break; break; default: default: break; break; Loading Loading @@ -612,6 +612,8 @@ static void send_mode_select(struct work_struct *work) err = mode_select_handle_sense(sdev, h->sense); err = mode_select_handle_sense(sdev, h->sense); if (err == SCSI_DH_RETRY && retry_cnt--) if (err == SCSI_DH_RETRY && retry_cnt--) goto retry; goto retry; if (err == SCSI_DH_IMM_RETRY) goto retry; } } if (err == SCSI_DH_OK) { if (err == SCSI_DH_OK) { h->state = RDAC_STATE_ACTIVE; h->state = RDAC_STATE_ACTIVE; Loading
drivers/scsi/hisi_sas/Kconfig +1 −1 Original line number Original line Diff line number Diff line config SCSI_HISI_SAS config SCSI_HISI_SAS tristate "HiSilicon SAS" tristate "HiSilicon SAS" depends on HAS_DMA depends on HAS_DMA && HAS_IOMEM depends on ARM64 || COMPILE_TEST depends on ARM64 || COMPILE_TEST select SCSI_SAS_LIBSAS select SCSI_SAS_LIBSAS select BLK_DEV_INTEGRITY select BLK_DEV_INTEGRITY Loading
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +3 −6 Original line number Original line Diff line number Diff line Loading @@ -1289,13 +1289,10 @@ static int slot_complete_v1_hw(struct hisi_hba *hisi_hba, goto out; goto out; } } if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK) { if (cmplt_hdr_data & CMPLT_HDR_ERR_RCRD_XFRD_MSK && if (!(cmplt_hdr_data & CMPLT_HDR_CMD_CMPLT_MSK) || !(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) { !(cmplt_hdr_data & CMPLT_HDR_RSPNS_XFRD_MSK)) ts->stat = SAS_DATA_OVERRUN; else slot_err_v1_hw(hisi_hba, task, slot); slot_err_v1_hw(hisi_hba, task, slot); goto out; goto out; } } Loading
drivers/scsi/scsi_devinfo.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,7 @@ static struct { {"Intel", "Multi-Flex", NULL, BLIST_NO_RSOC}, {"Intel", "Multi-Flex", NULL, BLIST_NO_RSOC}, {"iRiver", "iFP Mass Driver", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"iRiver", "iFP Mass Driver", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"LASOUND", "CDX7405", "3.10", BLIST_MAX5LUN | BLIST_SINGLELUN}, {"LASOUND", "CDX7405", "3.10", BLIST_MAX5LUN | BLIST_SINGLELUN}, {"Marvell", "Console", NULL, BLIST_SKIP_VPD_PAGES}, {"MATSHITA", "PD-1", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"MATSHITA", "PD-1", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"MATSHITA", "DMC-LC5", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC5", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC40", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"MATSHITA", "DMC-LC40", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, Loading