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:
"Six small and reasonably obvious fixes, all in drivers"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: pm80xx: Set stopped phy's linkrate to Disabled
scsi: pm80xx: Fix 'Unknown' max/min linkrate
scsi: ufs: core: Fix missing clk change notification on host reset
scsi: ufs: core: Drop loglevel of WriteBoost message
scsi: megaraid: Clear READ queue map's nr_queues
scsi: target: Fix WRITE_SAME No Data Buffer crash

+28 -19
+3
drivers/scsi/megaraid/megaraid_sas_base.c
··· 3195 3195 qoff += map->nr_queues; 3196 3196 offset += map->nr_queues; 3197 3197 3198 + /* we never use READ queue, so can't cheat blk-mq */ 3199 + shost->tag_set.map[HCTX_TYPE_READ].nr_queues = 0; 3200 + 3198 3201 /* Setup Poll hctx */ 3199 3202 map = &shost->tag_set.map[HCTX_TYPE_POLL]; 3200 3203 map->nr_queues = instance->iopoll_q_count;
+3 -16
drivers/scsi/pm8001/pm8001_hwi.c
··· 3145 3145 if (!phy->phy_attached) 3146 3146 return; 3147 3147 3148 - if (sas_phy->phy) { 3149 - struct sas_phy *sphy = sas_phy->phy; 3150 - sphy->negotiated_linkrate = sas_phy->linkrate; 3151 - sphy->minimum_linkrate = phy->minimum_linkrate; 3152 - sphy->minimum_linkrate_hw = SAS_LINK_RATE_1_5_GBPS; 3153 - sphy->maximum_linkrate = phy->maximum_linkrate; 3154 - sphy->maximum_linkrate_hw = phy->maximum_linkrate; 3155 - } 3156 - 3157 3148 if (phy->phy_type & PORT_TYPE_SAS) { 3158 3149 struct sas_identify_frame *id; 3159 3150 id = (struct sas_identify_frame *)phy->frame_rcvd; ··· 3168 3177 switch (link_rate) { 3169 3178 case PHY_SPEED_120: 3170 3179 phy->sas_phy.linkrate = SAS_LINK_RATE_12_0_GBPS; 3171 - phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_12_0_GBPS; 3172 3180 break; 3173 3181 case PHY_SPEED_60: 3174 3182 phy->sas_phy.linkrate = SAS_LINK_RATE_6_0_GBPS; 3175 - phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_6_0_GBPS; 3176 3183 break; 3177 3184 case PHY_SPEED_30: 3178 3185 phy->sas_phy.linkrate = SAS_LINK_RATE_3_0_GBPS; 3179 - phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS; 3180 3186 break; 3181 3187 case PHY_SPEED_15: 3182 3188 phy->sas_phy.linkrate = SAS_LINK_RATE_1_5_GBPS; 3183 - phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_1_5_GBPS; 3184 3189 break; 3185 3190 } 3186 3191 sas_phy->negotiated_linkrate = phy->sas_phy.linkrate; 3187 - sas_phy->maximum_linkrate_hw = SAS_LINK_RATE_6_0_GBPS; 3192 + sas_phy->maximum_linkrate_hw = phy->maximum_linkrate; 3188 3193 sas_phy->minimum_linkrate_hw = SAS_LINK_RATE_1_5_GBPS; 3189 - sas_phy->maximum_linkrate = SAS_LINK_RATE_6_0_GBPS; 3190 - sas_phy->minimum_linkrate = SAS_LINK_RATE_1_5_GBPS; 3194 + sas_phy->maximum_linkrate = phy->maximum_linkrate; 3195 + sas_phy->minimum_linkrate = phy->minimum_linkrate; 3191 3196 } 3192 3197 3193 3198 /**
+2
drivers/scsi/pm8001/pm8001_init.c
··· 143 143 struct asd_sas_phy *sas_phy = &phy->sas_phy; 144 144 phy->phy_state = PHY_LINK_DISABLE; 145 145 phy->pm8001_ha = pm8001_ha; 146 + phy->minimum_linkrate = SAS_LINK_RATE_1_5_GBPS; 147 + phy->maximum_linkrate = SAS_LINK_RATE_6_0_GBPS; 146 148 sas_phy->enabled = (phy_id < pm8001_ha->chip->n_phy) ? 1 : 0; 147 149 sas_phy->class = SAS; 148 150 sas_phy->iproto = SAS_PROTOCOL_ALL;
+5 -1
drivers/scsi/pm8001/pm80xx_hwi.c
··· 3723 3723 pm8001_dbg(pm8001_ha, MSG, "phy:0x%x status:0x%x\n", 3724 3724 phyid, status); 3725 3725 if (status == PHY_STOP_SUCCESS || 3726 - status == PHY_STOP_ERR_DEVICE_ATTACHED) 3726 + status == PHY_STOP_ERR_DEVICE_ATTACHED) { 3727 3727 phy->phy_state = PHY_LINK_DISABLE; 3728 + phy->sas_phy.phy->negotiated_linkrate = SAS_PHY_DISABLED; 3729 + phy->sas_phy.linkrate = SAS_PHY_DISABLED; 3730 + } 3731 + 3728 3732 return 0; 3729 3733 } 3730 3734
+3
drivers/target/target_core_file.c
··· 448 448 return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; 449 449 } 450 450 451 + if (!cmd->t_data_nents) 452 + return TCM_INVALID_CDB_FIELD; 453 + 451 454 if (cmd->t_data_nents > 1 || 452 455 cmd->t_data_sg[0].length != cmd->se_dev->dev_attrib.block_size) { 453 456 pr_err("WRITE_SAME: Illegal SGL t_data_nents: %u length: %u"
+4
drivers/target/target_core_iblock.c
··· 494 494 " backends not supported\n"); 495 495 return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; 496 496 } 497 + 498 + if (!cmd->t_data_nents) 499 + return TCM_INVALID_CDB_FIELD; 500 + 497 501 sg = &cmd->t_data_sg[0]; 498 502 499 503 if (cmd->t_data_nents > 1 ||
+6
drivers/target/target_core_sbc.c
··· 312 312 pr_warn("WRITE SAME with ANCHOR not supported\n"); 313 313 return TCM_INVALID_CDB_FIELD; 314 314 } 315 + 316 + if (flags & 0x01) { 317 + pr_warn("WRITE SAME with NDOB not supported\n"); 318 + return TCM_INVALID_CDB_FIELD; 319 + } 320 + 315 321 /* 316 322 * Special case for WRITE_SAME w/ UNMAP=1 that ends up getting 317 323 * translated into block discard requests within backend code.
+2 -2
drivers/ufs/core/ufshcd.c
··· 5738 5738 } 5739 5739 5740 5740 hba->dev_info.wb_enabled = enable; 5741 - dev_info(hba->dev, "%s Write Booster %s\n", 5741 + dev_dbg(hba->dev, "%s Write Booster %s\n", 5742 5742 __func__, enable ? "enabled" : "disabled"); 5743 5743 5744 5744 return ret; ··· 7253 7253 hba->silence_err_logs = false; 7254 7254 7255 7255 /* scale up clocks to max frequency before full reinitialization */ 7256 - ufshcd_set_clk_freq(hba, true); 7256 + ufshcd_scale_clks(hba, true); 7257 7257 7258 7258 err = ufshcd_hba_enable(hba); 7259 7259