* [linux-next:master 4332/12552] drivers/firmware/tegra/bpmp.c:204:17: sparse: sparse: incorrect type in argument 2 (different address spaces)
@ 2022-07-24 23:08 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-24 23:08 UTC (permalink / raw)
To: Timo Alho
Cc: kbuild-all, Linux Memory Management List, Thierry Reding,
Mikko Perttunen
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 18c107a1f120d095404d141dfad8f594bdc44020
commit: a4740b148a04dc60e14fe6a1dfe216d3bae214fd [4332/12552] firmware: tegra: bpmp: Do only aligned access to IPC memory area
config: arm-randconfig-s042-20220721 (https://download.01.org/0day-ci/archive/20220725/202207250715.8g5iCHHS-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.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.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4740b148a04dc60e14fe6a1dfe216d3bae214fd
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout a4740b148a04dc60e14fe6a1dfe216d3bae214fd
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm SHELL=/bin/bash drivers/firmware/tegra/ drivers/gpu/drm/qxl/ drivers/gpu/drm/ttm/ drivers/video/fbdev/aty/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/firmware/tegra/bpmp.c:204:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem *from @@ got unsigned char * @@
drivers/firmware/tegra/bpmp.c:204:17: sparse: expected void const volatile [noderef] __iomem *from
drivers/firmware/tegra/bpmp.c:204:17: sparse: got unsigned char *
>> drivers/firmware/tegra/bpmp.c:248:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *to @@ got unsigned char * @@
drivers/firmware/tegra/bpmp.c:248:17: sparse: expected void volatile [noderef] __iomem *to
drivers/firmware/tegra/bpmp.c:248:17: sparse: got unsigned char *
drivers/firmware/tegra/bpmp.c:423:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *to @@ got unsigned char * @@
drivers/firmware/tegra/bpmp.c:423:17: sparse: expected void volatile [noderef] __iomem *to
drivers/firmware/tegra/bpmp.c:423:17: sparse: got unsigned char *
drivers/firmware/tegra/bpmp.c:505:53: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned int [usertype] mrq @@ got restricted __le32 [usertype] @@
drivers/firmware/tegra/bpmp.c:505:53: sparse: expected unsigned int [usertype] mrq
drivers/firmware/tegra/bpmp.c:505:53: sparse: got restricted __le32 [usertype]
vim +204 drivers/firmware/tegra/bpmp.c
197
198 static ssize_t __tegra_bpmp_channel_read(struct tegra_bpmp_channel *channel,
199 void *data, size_t size, int *ret)
200 {
201 int err;
202
203 if (data && size > 0)
> 204 memcpy_fromio(data, channel->ib->data, size);
205
206 err = tegra_bpmp_ack_response(channel);
207 if (err < 0)
208 return err;
209
210 *ret = channel->ib->code;
211
212 return 0;
213 }
214
215 static ssize_t tegra_bpmp_channel_read(struct tegra_bpmp_channel *channel,
216 void *data, size_t size, int *ret)
217 {
218 struct tegra_bpmp *bpmp = channel->bpmp;
219 unsigned long flags;
220 ssize_t err;
221 int index;
222
223 index = tegra_bpmp_channel_get_thread_index(channel);
224 if (index < 0) {
225 err = index;
226 goto unlock;
227 }
228
229 spin_lock_irqsave(&bpmp->lock, flags);
230 err = __tegra_bpmp_channel_read(channel, data, size, ret);
231 clear_bit(index, bpmp->threaded.allocated);
232 spin_unlock_irqrestore(&bpmp->lock, flags);
233
234 unlock:
235 up(&bpmp->threaded.lock);
236
237 return err;
238 }
239
240 static ssize_t __tegra_bpmp_channel_write(struct tegra_bpmp_channel *channel,
241 unsigned int mrq, unsigned long flags,
242 const void *data, size_t size)
243 {
244 channel->ob->code = mrq;
245 channel->ob->flags = flags;
246
247 if (data && size > 0)
> 248 memcpy_toio(channel->ob->data, data, size);
249
250 return tegra_bpmp_post_request(channel);
251 }
252
--
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-07-24 23:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-24 23:08 [linux-next:master 4332/12552] drivers/firmware/tegra/bpmp.c:204:17: sparse: sparse: incorrect type in argument 2 (different address spaces) kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox