drivers/interconnect/qcom/icc-rpmh.c:133:29: sparse: sparse: incorrect type in assignment (different base types)

From: kernel test robot
Date: Mon Dec 28 2020 - 23:34:50 EST


Hi Odelu,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dea8dcf2a9fa8cc540136a6cd885c3beece16ec3
commit: 2d1f95ab9feb4f5373f81c3805bfbc126670812d interconnect: qcom: Add SC7180 interconnect provider driver
date: 10 months ago
config: arm64-randconfig-s031-20201225 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-184-g1b896707-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2d1f95ab9feb4f5373f81c3805bfbc126670812d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2d1f95ab9feb4f5373f81c3805bfbc126670812d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


"sparse warnings: (new ones prefixed by >>)"
drivers/interconnect/qcom/icc-rpmh.c:132:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] unit @@ got unsigned int [usertype] @@
drivers/interconnect/qcom/icc-rpmh.c:132:28: sparse: expected restricted __le32 [usertype] unit
drivers/interconnect/qcom/icc-rpmh.c:132:28: sparse: got unsigned int [usertype]
>> drivers/interconnect/qcom/icc-rpmh.c:133:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] width @@ got unsigned short [usertype] @@
drivers/interconnect/qcom/icc-rpmh.c:133:29: sparse: expected restricted __le16 [usertype] width
drivers/interconnect/qcom/icc-rpmh.c:133:29: sparse: got unsigned short [usertype]

vim +133 drivers/interconnect/qcom/icc-rpmh.c

976daac4a1c581e David Dai 2020-02-28 94
976daac4a1c581e David Dai 2020-02-28 95 /**
976daac4a1c581e David Dai 2020-02-28 96 * qcom_icc_bcm_init - populates bcm aux data and connect qnodes
976daac4a1c581e David Dai 2020-02-28 97 * @bcm: bcm to be initialized
976daac4a1c581e David Dai 2020-02-28 98 * @dev: associated provider device
976daac4a1c581e David Dai 2020-02-28 99 *
976daac4a1c581e David Dai 2020-02-28 100 * Return: 0 on success, or an error code otherwise
976daac4a1c581e David Dai 2020-02-28 101 */
976daac4a1c581e David Dai 2020-02-28 102 int qcom_icc_bcm_init(struct qcom_icc_bcm *bcm, struct device *dev)
976daac4a1c581e David Dai 2020-02-28 103 {
976daac4a1c581e David Dai 2020-02-28 104 struct qcom_icc_node *qn;
976daac4a1c581e David Dai 2020-02-28 105 const struct bcm_db *data;
976daac4a1c581e David Dai 2020-02-28 106 size_t data_count;
976daac4a1c581e David Dai 2020-02-28 107 int i;
976daac4a1c581e David Dai 2020-02-28 108
976daac4a1c581e David Dai 2020-02-28 109 /* BCM is already initialised*/
976daac4a1c581e David Dai 2020-02-28 110 if (bcm->addr)
976daac4a1c581e David Dai 2020-02-28 111 return 0;
976daac4a1c581e David Dai 2020-02-28 112
976daac4a1c581e David Dai 2020-02-28 113 bcm->addr = cmd_db_read_addr(bcm->name);
976daac4a1c581e David Dai 2020-02-28 114 if (!bcm->addr) {
976daac4a1c581e David Dai 2020-02-28 115 dev_err(dev, "%s could not find RPMh address\n",
976daac4a1c581e David Dai 2020-02-28 116 bcm->name);
976daac4a1c581e David Dai 2020-02-28 117 return -EINVAL;
976daac4a1c581e David Dai 2020-02-28 118 }
976daac4a1c581e David Dai 2020-02-28 119
976daac4a1c581e David Dai 2020-02-28 120 data = cmd_db_read_aux_data(bcm->name, &data_count);
976daac4a1c581e David Dai 2020-02-28 121 if (IS_ERR(data)) {
976daac4a1c581e David Dai 2020-02-28 122 dev_err(dev, "%s command db read error (%ld)\n",
976daac4a1c581e David Dai 2020-02-28 123 bcm->name, PTR_ERR(data));
976daac4a1c581e David Dai 2020-02-28 124 return PTR_ERR(data);
976daac4a1c581e David Dai 2020-02-28 125 }
976daac4a1c581e David Dai 2020-02-28 126 if (!data_count) {
976daac4a1c581e David Dai 2020-02-28 127 dev_err(dev, "%s command db missing or partial aux data\n",
976daac4a1c581e David Dai 2020-02-28 128 bcm->name);
976daac4a1c581e David Dai 2020-02-28 129 return -EINVAL;
976daac4a1c581e David Dai 2020-02-28 130 }
976daac4a1c581e David Dai 2020-02-28 131
976daac4a1c581e David Dai 2020-02-28 132 bcm->aux_data.unit = le32_to_cpu(data->unit);
976daac4a1c581e David Dai 2020-02-28 @133 bcm->aux_data.width = le16_to_cpu(data->width);
976daac4a1c581e David Dai 2020-02-28 134 bcm->aux_data.vcd = data->vcd;
976daac4a1c581e David Dai 2020-02-28 135 bcm->aux_data.reserved = data->reserved;
976daac4a1c581e David Dai 2020-02-28 136 INIT_LIST_HEAD(&bcm->list);
976daac4a1c581e David Dai 2020-02-28 137 INIT_LIST_HEAD(&bcm->ws_list);
976daac4a1c581e David Dai 2020-02-28 138
976daac4a1c581e David Dai 2020-02-28 139 /* Link Qnodes to their respective BCMs */
976daac4a1c581e David Dai 2020-02-28 140 for (i = 0; i < bcm->num_nodes; i++) {
976daac4a1c581e David Dai 2020-02-28 141 qn = bcm->nodes[i];
976daac4a1c581e David Dai 2020-02-28 142 qn->bcms[qn->num_bcms] = bcm;
976daac4a1c581e David Dai 2020-02-28 143 qn->num_bcms++;
976daac4a1c581e David Dai 2020-02-28 144 }
976daac4a1c581e David Dai 2020-02-28 145
976daac4a1c581e David Dai 2020-02-28 146 return 0;
976daac4a1c581e David Dai 2020-02-28 147 }
976daac4a1c581e David Dai 2020-02-28 148 EXPORT_SYMBOL_GPL(qcom_icc_bcm_init);
976daac4a1c581e David Dai 2020-02-28 149

:::::: The code at line 133 was first introduced by commit
:::::: 976daac4a1c581e5d5fd64047519fd6fcde39738 interconnect: qcom: Consolidate interconnect RPMh support

:::::: TO: David Dai <daidavid1@xxxxxxxxxxxxxx>
:::::: CC: Georgi Djakov <georgi.djakov@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip