Re: [PATCH 2/2] firmware: arm_scmi: Add qcom hvc/shmem transport

From: kernel test robot
Date: Sat Jul 22 2023 - 22:16:56 EST


Hi Nikunj,

kernel test robot noticed the following build warnings:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v6.5-rc2 next-20230721]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Nikunj-Kela/dt-bindings-arm-Add-qcom-specific-hvc-transport-for-SCMI/20230719-001116
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20230718160833.36397-3-quic_nkela%40quicinc.com
patch subject: [PATCH 2/2] firmware: arm_scmi: Add qcom hvc/shmem transport
config: arm64-randconfig-r083-20230723 (https://download.01.org/0day-ci/archive/20230723/202307231034.5C5lj4Dv-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230723/202307231034.5C5lj4Dv-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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307231034.5C5lj4Dv-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/firmware/arm_scmi/qcom_hvc.c:136:26: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/firmware/arm_scmi/qcom_hvc.c:136:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/firmware/arm_scmi/qcom_hvc.c:136:52: sparse: expected void const volatile [noderef] __iomem *addr
drivers/firmware/arm_scmi/qcom_hvc.c:136:52: sparse: got void *
drivers/firmware/arm_scmi/qcom_hvc.c:139:25: sparse: sparse: cast removes address space '__iomem' of expression
drivers/firmware/arm_scmi/qcom_hvc.c:139:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/firmware/arm_scmi/qcom_hvc.c:139:58: sparse: expected void const volatile [noderef] __iomem *addr
drivers/firmware/arm_scmi/qcom_hvc.c:139:58: sparse: got void *

vim +/__iomem +136 drivers/firmware/arm_scmi/qcom_hvc.c

82
83 static int qcom_hvc_chan_setup(struct scmi_chan_info *cinfo,
84 struct device *dev, bool tx)
85 {
86 struct device *cdev = cinfo->dev;
87 struct scmi_qcom_hvc *scmi_info;
88 resource_size_t size;
89 struct resource res;
90 struct device_node *np;
91 unsigned long cap_id;
92 u32 func_id;
93 int ret, irq;
94
95 if (!tx)
96 return -ENODEV;
97
98 scmi_info = devm_kzalloc(dev, sizeof(*scmi_info), GFP_KERNEL);
99 if (!scmi_info)
100 return -ENOMEM;
101
102 np = of_parse_phandle(cdev->of_node, "shmem", 0);
103 if (!of_device_is_compatible(np, "arm,scmi-shmem"))
104 return -ENXIO;
105
106 ret = of_address_to_resource(np, 0, &res);
107 of_node_put(np);
108 if (ret) {
109 dev_err(cdev, "failed to get SCMI Tx shared memory\n");
110 return ret;
111 }
112
113 size = resource_size(&res);
114
115 /* let's map 2 additional ulong since
116 * func-id & capability-id are kept after shmem.
117 * +-------+
118 * | |
119 * | shmem |
120 * | |
121 * | |
122 * +-------+ <-- size
123 * | funcId|
124 * +-------+ <-- size + sizeof(ulong)
125 * | capId |
126 * +-------+ <-- size + 2*sizeof(ulong)
127 */
128
129 scmi_info->shmem = devm_ioremap(dev, res.start,
130 size + 2 * sizeof(unsigned long));
131 if (!scmi_info->shmem) {
132 dev_err(dev, "failed to ioremap SCMI Tx shared memory\n");
133 return -EADDRNOTAVAIL;
134 }
135
> 136 func_id = readl((void *)(scmi_info->shmem) + size);
137

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