Re: [PATCH v2 3/7] soc: qcom: add QCOM PBS driver

From: Dan Carpenter
Date: Thu Jul 27 2023 - 01:06:56 EST


Hi Anjelique,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Anjelique-Melendez/dt-bindings-soc-qcom-Add-qcom-pbs-bindings/20230726-034011
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20230725193423.25047-4-quic_amelende%40quicinc.com
patch subject: [PATCH v2 3/7] soc: qcom: add QCOM PBS driver
config: parisc-randconfig-m041-20230726 (https://download.01.org/0day-ci/archive/20230727/202307270539.1JVFQf6W-lkp@xxxxxxxxx/config)
compiler: hppa-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230727/202307270539.1JVFQf6W-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202307270539.1JVFQf6W-lkp@xxxxxxxxx/

smatch warnings:
drivers/soc/qcom/qcom-pbs.c:97 qcom_pbs_wait_for_ack() warn: should this be 'retries == -1'

vim +97 drivers/soc/qcom/qcom-pbs.c

c261225d90e1d3 Anjelique Melendez 2023-07-25 68 static int qcom_pbs_wait_for_ack(struct pbs_dev *pbs, u8 bit_pos)
c261225d90e1d3 Anjelique Melendez 2023-07-25 69 {
c261225d90e1d3 Anjelique Melendez 2023-07-25 70 u16 retries = 2000, delay = 1000;
c261225d90e1d3 Anjelique Melendez 2023-07-25 71 int ret;
c261225d90e1d3 Anjelique Melendez 2023-07-25 72 u8 val;
c261225d90e1d3 Anjelique Melendez 2023-07-25 73
c261225d90e1d3 Anjelique Melendez 2023-07-25 74 while (retries--) {

Change this to while (--retries) {

c261225d90e1d3 Anjelique Melendez 2023-07-25 75 ret = qcom_pbs_read(pbs, PBS_CLIENT_SCRATCH2, &val);
c261225d90e1d3 Anjelique Melendez 2023-07-25 76 if (ret < 0)
c261225d90e1d3 Anjelique Melendez 2023-07-25 77 return ret;
c261225d90e1d3 Anjelique Melendez 2023-07-25 78
c261225d90e1d3 Anjelique Melendez 2023-07-25 79 if (val == 0xFF) {
c261225d90e1d3 Anjelique Melendez 2023-07-25 80 /* PBS error - clear SCRATCH2 register */
c261225d90e1d3 Anjelique Melendez 2023-07-25 81 ret = qcom_pbs_write(pbs, PBS_CLIENT_SCRATCH2, 0);
c261225d90e1d3 Anjelique Melendez 2023-07-25 82 if (ret < 0)
c261225d90e1d3 Anjelique Melendez 2023-07-25 83 return ret;
c261225d90e1d3 Anjelique Melendez 2023-07-25 84
c261225d90e1d3 Anjelique Melendez 2023-07-25 85 dev_err(pbs->dev, "NACK from PBS for bit %u\n", bit_pos);
c261225d90e1d3 Anjelique Melendez 2023-07-25 86 return -EINVAL;
c261225d90e1d3 Anjelique Melendez 2023-07-25 87 }
c261225d90e1d3 Anjelique Melendez 2023-07-25 88
c261225d90e1d3 Anjelique Melendez 2023-07-25 89 if (val & BIT(bit_pos)) {
c261225d90e1d3 Anjelique Melendez 2023-07-25 90 dev_dbg(pbs->dev, "PBS sequence for bit %u executed!\n", bit_pos);
c261225d90e1d3 Anjelique Melendez 2023-07-25 91 break;
c261225d90e1d3 Anjelique Melendez 2023-07-25 92 }
c261225d90e1d3 Anjelique Melendez 2023-07-25 93
c261225d90e1d3 Anjelique Melendez 2023-07-25 94 usleep_range(delay, delay + 100);
c261225d90e1d3 Anjelique Melendez 2023-07-25 95 }
c261225d90e1d3 Anjelique Melendez 2023-07-25 96
c261225d90e1d3 Anjelique Melendez 2023-07-25 @97 if (!retries) {

Otherwise this check needs to be: "if (retries == USHRT_MAX)".

Btw, I really feel like people are generally better off declaring list
iterators as int whenever possible. I have written a very rude blog
to that effect.
https://staticthinking.wordpress.com/2022/06/01/unsigned-int-i-is-stupid/

c261225d90e1d3 Anjelique Melendez 2023-07-25 98 dev_err(pbs->dev, "Timeout for PBS ACK/NACK for bit %u\n", bit_pos);
c261225d90e1d3 Anjelique Melendez 2023-07-25 99 return -ETIMEDOUT;
c261225d90e1d3 Anjelique Melendez 2023-07-25 100 }
c261225d90e1d3 Anjelique Melendez 2023-07-25 101
c261225d90e1d3 Anjelique Melendez 2023-07-25 102 return 0;
c261225d90e1d3 Anjelique Melendez 2023-07-25 103 }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki