All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/scsi/ufs/ufshcd.c:4346:23: warning: Signed integer overflow for expression '(0xD041&0xFFFF)<<16'. [integerOverflow]
@ 2022-04-09  8:35 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-09  8:35 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 10779 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Bart Van Assche <bvanassche@google.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Jaegeuk Kim <jaegeuk@kernel.org>

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 <lkp@intel.com>


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 <cang@codeaurora.org>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-09  8:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-09  8:35 drivers/scsi/ufs/ufshcd.c:4346:23: warning: Signed integer overflow for expression '(0xD041&0xFFFF)<<16'. [integerOverflow] kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.