CC: [email protected] BCC: [email protected] CC: [email protected] TO: Bart Van Assche <[email protected]> CC: "Martin K. Petersen" <[email protected]> CC: Jaegeuk Kim <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f1b45d8ccb9839b48e5884664470e54520e17f4c commit: edc0596cc04bf0ac3a69c66e994d3ff8b650ff71 scsi: ufs: core: Stop clearing UNIT ATTENTIONS date: 6 months ago :::::: branch date: 4 hours ago :::::: commit date: 6 months ago compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout edc0596cc04bf0ac3a69c66e994d3ff8b650ff71 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) drivers/scsi/ufs/ufshcd.c:7721:5: warning: Variable 'gran_to_us_table' can be declared with const [constVariable] u8 gran_to_us_table[] = {1, 4, 8, 16, 32, 100}; ^ drivers/scsi/ufs/ufshcd.c:5378:67: warning: Parameter 'other_mask' can be declared with const [constParameter] int ufshcd_update_ee_control(struct ufs_hba *hba, u16 *mask, u16 *other_mask, ^ >> drivers/scsi/ufs/ufshcd.c:4346:23: warning: Signed integer overflow for >> expression '(0xD041&0xFFFF)<<16'. [integerOverflow] ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalFC0ProtectionTimeOutVal), ^ >> drivers/scsi/ufs/ufshcd.c:4348:23: warning: Signed integer overflow for >> expression '(0xD042&0xFFFF)<<16'. [integerOverflow] ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalTC0ReplayTimeOutVal), ^ >> drivers/scsi/ufs/ufshcd.c:4350:23: warning: Signed integer overflow for >> expression '(0xD043&0xFFFF)<<16'. [integerOverflow] ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalAFC0ReqTimeOutVal), ^ >> drivers/scsi/ufs/ufshcd.c:410:43: warning: Uninitialized variable: >> clki->min_freq [uninitvar] if (!IS_ERR_OR_NULL(clki->clk) && clki->min_freq && ^ drivers/scsi/ufs/ufshcd.c:406:16: note: Assuming condition is false if (list_empty(head)) ^ drivers/scsi/ufs/ufshcd.c:410:43: note: Uninitialized variable: clki->min_freq if (!IS_ERR_OR_NULL(clki->clk) && clki->min_freq && ^ drivers/scsi/ufs/ufshcd.c:1049:26: warning: Uninitialized variable: clki->max_freq [uninitvar] if (scale_up && clki->max_freq) { ^ drivers/scsi/ufs/ufshcd.c:1044:16: note: Assuming condition is false if (list_empty(head)) ^ drivers/scsi/ufs/ufshcd.c:1049:26: note: Uninitialized variable: clki->max_freq if (scale_up && clki->max_freq) { ^ vim +4346 drivers/scsi/ufs/ufshcd.c 7eb584db73bebb Dolev Raviv 2014-09-25 4282 7eb584db73bebb Dolev Raviv 2014-09-25 4283 static int ufshcd_change_power_mode(struct ufs_hba *hba, 7eb584db73bebb Dolev Raviv 2014-09-25 4284 struct ufs_pa_layer_attr *pwr_mode) 7eb584db73bebb Dolev Raviv 2014-09-25 4285 { 7eb584db73bebb Dolev Raviv 2014-09-25 4286 int ret; 7eb584db73bebb Dolev Raviv 2014-09-25 4287 7eb584db73bebb Dolev Raviv 2014-09-25 4288 /* if already configured to the requested pwr_mode */ 2355b66ed20ce4 Can Guo 2020-08-24 4289 if (!hba->force_pmc && 2355b66ed20ce4 Can Guo 2020-08-24 4290 pwr_mode->gear_rx == hba->pwr_info.gear_rx && 7eb584db73bebb Dolev Raviv 2014-09-25 4291 pwr_mode->gear_tx == hba->pwr_info.gear_tx && 7eb584db73bebb Dolev Raviv 2014-09-25 4292 pwr_mode->lane_rx == hba->pwr_info.lane_rx && 7eb584db73bebb Dolev Raviv 2014-09-25 4293 pwr_mode->lane_tx == hba->pwr_info.lane_tx && 7eb584db73bebb Dolev Raviv 2014-09-25 4294 pwr_mode->pwr_rx == hba->pwr_info.pwr_rx && 7eb584db73bebb Dolev Raviv 2014-09-25 4295 pwr_mode->pwr_tx == hba->pwr_info.pwr_tx && 7eb584db73bebb Dolev Raviv 2014-09-25 4296 pwr_mode->hs_rate == hba->pwr_info.hs_rate) { 7eb584db73bebb Dolev Raviv 2014-09-25 4297 dev_dbg(hba->dev, "%s: power already configured\n", __func__); 7eb584db73bebb Dolev Raviv 2014-09-25 4298 return 0; d3e89bac715534 Seungwon Jeon 2013-08-31 4299 } d3e89bac715534 Seungwon Jeon 2013-08-31 4300 d3e89bac715534 Seungwon Jeon 2013-08-31 4301 /* d3e89bac715534 Seungwon Jeon 2013-08-31 4302 * Configure attributes for power mode change with below. d3e89bac715534 Seungwon Jeon 2013-08-31 4303 * - PA_RXGEAR, PA_ACTIVERXDATALANES, PA_RXTERMINATION, d3e89bac715534 Seungwon Jeon 2013-08-31 4304 * - PA_TXGEAR, PA_ACTIVETXDATALANES, PA_TXTERMINATION, d3e89bac715534 Seungwon Jeon 2013-08-31 4305 * - PA_HSSERIES d3e89bac715534 Seungwon Jeon 2013-08-31 4306 */ 7eb584db73bebb Dolev Raviv 2014-09-25 4307 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXGEAR), pwr_mode->gear_rx); 7eb584db73bebb Dolev Raviv 2014-09-25 4308 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_ACTIVERXDATALANES), 7eb584db73bebb Dolev Raviv 2014-09-25 4309 pwr_mode->lane_rx); 7eb584db73bebb Dolev Raviv 2014-09-25 4310 if (pwr_mode->pwr_rx == FASTAUTO_MODE || 7eb584db73bebb Dolev Raviv 2014-09-25 4311 pwr_mode->pwr_rx == FAST_MODE) d3e89bac715534 Seungwon Jeon 2013-08-31 4312 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), TRUE); 7eb584db73bebb Dolev Raviv 2014-09-25 4313 else 7eb584db73bebb Dolev Raviv 2014-09-25 4314 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), FALSE); d3e89bac715534 Seungwon Jeon 2013-08-31 4315 7eb584db73bebb Dolev Raviv 2014-09-25 4316 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXGEAR), pwr_mode->gear_tx); 7eb584db73bebb Dolev Raviv 2014-09-25 4317 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_ACTIVETXDATALANES), 7eb584db73bebb Dolev Raviv 2014-09-25 4318 pwr_mode->lane_tx); 7eb584db73bebb Dolev Raviv 2014-09-25 4319 if (pwr_mode->pwr_tx == FASTAUTO_MODE || 7eb584db73bebb Dolev Raviv 2014-09-25 4320 pwr_mode->pwr_tx == FAST_MODE) d3e89bac715534 Seungwon Jeon 2013-08-31 4321 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), TRUE); 7eb584db73bebb Dolev Raviv 2014-09-25 4322 else 7eb584db73bebb Dolev Raviv 2014-09-25 4323 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), FALSE); d3e89bac715534 Seungwon Jeon 2013-08-31 4324 7eb584db73bebb Dolev Raviv 2014-09-25 4325 if (pwr_mode->pwr_rx == FASTAUTO_MODE || 7eb584db73bebb Dolev Raviv 2014-09-25 4326 pwr_mode->pwr_tx == FASTAUTO_MODE || 7eb584db73bebb Dolev Raviv 2014-09-25 4327 pwr_mode->pwr_rx == FAST_MODE || 7eb584db73bebb Dolev Raviv 2014-09-25 4328 pwr_mode->pwr_tx == FAST_MODE) 7eb584db73bebb Dolev Raviv 2014-09-25 4329 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_HSSERIES), 7eb584db73bebb Dolev Raviv 2014-09-25 4330 pwr_mode->hs_rate); d3e89bac715534 Seungwon Jeon 2013-08-31 4331 b1d0d2eb89d4e3 Kiwoong Kim 2020-12-21 4332 if (!(hba->quirks & UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING)) { 0834253734cbb4 Can Guo 2019-12-05 4333 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA0), 0834253734cbb4 Can Guo 2019-12-05 4334 DL_FC0ProtectionTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4335 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA1), 0834253734cbb4 Can Guo 2019-12-05 4336 DL_TC0ReplayTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4337 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA2), 0834253734cbb4 Can Guo 2019-12-05 4338 DL_AFC0ReqTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4339 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA3), 0834253734cbb4 Can Guo 2019-12-05 4340 DL_FC1ProtectionTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4341 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA4), 0834253734cbb4 Can Guo 2019-12-05 4342 DL_TC1ReplayTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4343 ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA5), 0834253734cbb4 Can Guo 2019-12-05 4344 DL_AFC1ReqTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 4345 0834253734cbb4 Can Guo 2019-12-05 @4346 ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalFC0ProtectionTimeOutVal), 0834253734cbb4 Can Guo 2019-12-05 4347 DL_FC0ProtectionTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 @4348 ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalTC0ReplayTimeOutVal), 0834253734cbb4 Can Guo 2019-12-05 4349 DL_TC0ReplayTimeOutVal_Default); 0834253734cbb4 Can Guo 2019-12-05 @4350 ufshcd_dme_set(hba, UIC_ARG_MIB(DME_LocalAFC0ReqTimeOutVal), 0834253734cbb4 Can Guo 2019-12-05 4351 DL_AFC0ReqTimeOutVal_Default); b1d0d2eb89d4e3 Kiwoong Kim 2020-12-21 4352 } 0834253734cbb4 Can Guo 2019-12-05 4353 7eb584db73bebb Dolev Raviv 2014-09-25 4354 ret = ufshcd_uic_change_pwr_mode(hba, pwr_mode->pwr_rx << 4 7eb584db73bebb Dolev Raviv 2014-09-25 4355 | pwr_mode->pwr_tx); 7eb584db73bebb Dolev Raviv 2014-09-25 4356 7eb584db73bebb Dolev Raviv 2014-09-25 4357 if (ret) { d3e89bac715534 Seungwon Jeon 2013-08-31 4358 dev_err(hba->dev, 7eb584db73bebb Dolev Raviv 2014-09-25 4359 "%s: power mode change failed %d\n", __func__, ret); 7eb584db73bebb Dolev Raviv 2014-09-25 4360 } else { 0263bcd0e83196 Yaniv Gardi 2015-10-28 4361 ufshcd_vops_pwr_change_notify(hba, POST_CHANGE, NULL, 0263bcd0e83196 Yaniv Gardi 2015-10-28 4362 pwr_mode); 7eb584db73bebb Dolev Raviv 2014-09-25 4363 7eb584db73bebb Dolev Raviv 2014-09-25 4364 memcpy(&hba->pwr_info, pwr_mode, 7eb584db73bebb Dolev Raviv 2014-09-25 4365 sizeof(struct ufs_pa_layer_attr)); 7eb584db73bebb Dolev Raviv 2014-09-25 4366 } 7eb584db73bebb Dolev Raviv 2014-09-25 4367 7eb584db73bebb Dolev Raviv 2014-09-25 4368 return ret; 7eb584db73bebb Dolev Raviv 2014-09-25 4369 } 7eb584db73bebb Dolev Raviv 2014-09-25 4370 :::::: The code at line 4346 was first introduced by commit :::::: 0834253734cbb40c312c06e5beb9b94ac7cf5e80 scsi: ufs: Do not clear the DL layer timers :::::: TO: Can Guo <[email protected]> :::::: CC: Martin K. Petersen <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
