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:
"Nine changes, eight in drivers [ufs, target, lpfc x 2, qla2xxx x 4]
and one core change in sd that fixes an I/O failure on DIF type 3
devices"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: qla2xxx: stop timer in shutdown path
scsi: sd: define variable dif as unsigned int instead of bool
scsi: target: cxgbit: Fix cxgbit_fw4_ack()
scsi: qla2xxx: Fix partial flash write of MBI
scsi: qla2xxx: Initialized mailbox to prevent driver load failure
scsi: lpfc: Honor module parameter lpfc_use_adisc
scsi: ufs-bsg: Wake the device before sending raw upiu commands
scsi: lpfc: Check queue pointer before use
scsi: qla2xxx: fixup incorrect usage of host_byte

+23 -13
+2 -2
drivers/scsi/lpfc/lpfc_nportdisc.c
··· 851 851 852 852 if (!(vport->fc_flag & FC_PT2PT)) { 853 853 /* Check config parameter use-adisc or FCP-2 */ 854 - if ((vport->cfg_use_adisc && (vport->fc_flag & FC_RSCN_MODE)) || 854 + if (vport->cfg_use_adisc && ((vport->fc_flag & FC_RSCN_MODE) || 855 855 ((ndlp->nlp_fcp_info & NLP_FCP_2_DEVICE) && 856 - (ndlp->nlp_type & NLP_FCP_TARGET))) { 856 + (ndlp->nlp_type & NLP_FCP_TARGET)))) { 857 857 spin_lock_irq(shost->host_lock); 858 858 ndlp->nlp_flag |= NLP_NPR_ADISC; 859 859 spin_unlock_irq(shost->host_lock);
+1 -1
drivers/scsi/lpfc/lpfc_sli.c
··· 7866 7866 if (sli4_hba->hdwq) { 7867 7867 for (eqidx = 0; eqidx < phba->cfg_irq_chann; eqidx++) { 7868 7868 eq = phba->sli4_hba.hba_eq_hdl[eqidx].eq; 7869 - if (eq->queue_id == sli4_hba->mbx_cq->assoc_qid) { 7869 + if (eq && eq->queue_id == sli4_hba->mbx_cq->assoc_qid) { 7870 7870 fpeq = eq; 7871 7871 break; 7872 7872 }
+3 -4
drivers/scsi/qla2xxx/qla_attr.c
··· 440 440 valid = 0; 441 441 if (ha->optrom_size == OPTROM_SIZE_2300 && start == 0) 442 442 valid = 1; 443 - else if (start == (ha->flt_region_boot * 4) || 444 - start == (ha->flt_region_fw * 4)) 445 - valid = 1; 446 443 else if (IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha)) 447 444 valid = 1; 448 445 if (!valid) { ··· 486 489 "Writing flash region -- 0x%x/0x%x.\n", 487 490 ha->optrom_region_start, ha->optrom_region_size); 488 491 489 - ha->isp_ops->write_optrom(vha, ha->optrom_buffer, 492 + rval = ha->isp_ops->write_optrom(vha, ha->optrom_buffer, 490 493 ha->optrom_region_start, ha->optrom_region_size); 494 + if (rval) 495 + rval = -EIO; 491 496 break; 492 497 default: 493 498 rval = -EINVAL;
+3 -3
drivers/scsi/qla2xxx/qla_bsg.c
··· 253 253 srb_t *sp; 254 254 const char *type; 255 255 int req_sg_cnt, rsp_sg_cnt; 256 - int rval = (DRIVER_ERROR << 16); 256 + int rval = (DID_ERROR << 16); 257 257 uint16_t nextlid = 0; 258 258 259 259 if (bsg_request->msgcode == FC_BSG_RPT_ELS) { ··· 432 432 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); 433 433 scsi_qla_host_t *vha = shost_priv(host); 434 434 struct qla_hw_data *ha = vha->hw; 435 - int rval = (DRIVER_ERROR << 16); 435 + int rval = (DID_ERROR << 16); 436 436 int req_sg_cnt, rsp_sg_cnt; 437 437 uint16_t loop_id; 438 438 struct fc_port *fcport; ··· 1950 1950 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); 1951 1951 scsi_qla_host_t *vha = shost_priv(host); 1952 1952 struct qla_hw_data *ha = vha->hw; 1953 - int rval = (DRIVER_ERROR << 16); 1953 + int rval = (DID_ERROR << 16); 1954 1954 struct qla_mt_iocb_rqst_fx00 *piocb_rqst; 1955 1955 srb_t *sp; 1956 1956 int req_sg_cnt = 0, rsp_sg_cnt = 0;
+2 -1
drivers/scsi/qla2xxx/qla_mbx.c
··· 702 702 mcp->mb[2] = LSW(risc_addr); 703 703 mcp->mb[3] = 0; 704 704 mcp->mb[4] = 0; 705 + mcp->mb[11] = 0; 705 706 ha->flags.using_lr_setting = 0; 706 707 if (IS_QLA25XX(ha) || IS_QLA81XX(ha) || IS_QLA83XX(ha) || 707 708 IS_QLA27XX(ha) || IS_QLA28XX(ha)) { ··· 747 746 if (ha->flags.exchoffld_enabled) 748 747 mcp->mb[4] |= ENABLE_EXCHANGE_OFFLD; 749 748 750 - mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; 749 + mcp->out_mb |= MBX_4 | MBX_3 | MBX_2 | MBX_1 | MBX_11; 751 750 mcp->in_mb |= MBX_3 | MBX_2 | MBX_1; 752 751 } else { 753 752 mcp->mb[1] = LSW(risc_addr);
+4
drivers/scsi/qla2xxx/qla_os.c
··· 3535 3535 qla2x00_try_to_stop_firmware(vha); 3536 3536 } 3537 3537 3538 + /* Disable timer */ 3539 + if (vha->timer_active) 3540 + qla2x00_stop_timer(vha); 3541 + 3538 3542 /* Turn adapter off line */ 3539 3543 vha->flags.online = 0; 3540 3544
+2 -1
drivers/scsi/sd.c
··· 1166 1166 sector_t lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 1167 1167 sector_t threshold; 1168 1168 unsigned int nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); 1169 - bool dif, dix; 1170 1169 unsigned int mask = logical_to_sectors(sdp, 1) - 1; 1171 1170 bool write = rq_data_dir(rq) == WRITE; 1172 1171 unsigned char protect, fua; 1173 1172 blk_status_t ret; 1173 + unsigned int dif; 1174 + bool dix; 1174 1175 1175 1176 ret = scsi_init_io(cmd); 1176 1177 if (ret != BLK_STS_OK)
+4
drivers/scsi/ufs/ufs_bsg.c
··· 98 98 99 99 bsg_reply->reply_payload_rcv_len = 0; 100 100 101 + pm_runtime_get_sync(hba->dev); 102 + 101 103 msgcode = bsg_request->msgcode; 102 104 switch (msgcode) { 103 105 case UPIU_TRANSACTION_QUERY_REQ: ··· 136 134 137 135 break; 138 136 } 137 + 138 + pm_runtime_put_sync(hba->dev); 139 139 140 140 if (!desc_buff) 141 141 goto out;
+2 -1
drivers/target/iscsi/cxgbit/cxgbit_cm.c
··· 1831 1831 1832 1832 while (credits) { 1833 1833 struct sk_buff *p = cxgbit_sock_peek_wr(csk); 1834 - const u32 csum = (__force u32)p->csum; 1834 + u32 csum; 1835 1835 1836 1836 if (unlikely(!p)) { 1837 1837 pr_err("csk 0x%p,%u, cr %u,%u+%u, empty.\n", ··· 1840 1840 break; 1841 1841 } 1842 1842 1843 + csum = (__force u32)p->csum; 1843 1844 if (unlikely(credits < csum)) { 1844 1845 pr_warn("csk 0x%p,%u, cr %u,%u+%u, < %u.\n", 1845 1846 csk, csk->tid,