On 8/19/2026 10:33 AM, Mathieu Poirier wrote:
> Tanmay - please have a look.
>
Hello Mathieu,
I looked into this. So, I can silent sparse by using __force sparse
annotation, but that's not the full solution. I think to properly
address these warnings use of ioremap*() APIs should be replaced with
memremap() API. This ensures that DDR reserved memory is not mapped as
iomem, and correct pointer type is returned.
However, this needs serious restructure in the driver. It will take me
some more time to address this issue. Until then I prefer to keep the
sparse warnings.
Thank You,
Tanmay
> ---------- Forwarded message ---------
> From: kernel test robot <[email protected]>
> Date: Tue, 18 Aug 2026 at 10:59
> Subject: [linux-next:master 2763/15982]
> drivers/remoteproc/xlnx_r5_remoteproc.c:837:49: sparse: sparse:
> incorrect type in initializer (different address spaces)
> To: Tanmay Shah <[email protected]>
> Cc: <[email protected]>, Mathieu Poirier
> <[email protected]>
>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> master
> head: e6664f2b33db9b6811eb4cec109f06cb2b4f458d
> commit: 5ae3dc078874693a0a7fd1cf32660bd473fe544d [2763/15982]
> remoteproc: xlnx: Add crash detection mechanism
> config: arm64-randconfig-r111-20260818
> (https://download.01.org/0day-ci/archive/20260819/[email protected]/config)
> compiler: clang version 24.0.0git
> (https://github.com/llvm/llvm-project
> 844a18e753e822736c9805ab779144b647a2c186)
> rustc: rustc 1.96.0 (ac68faa20 2026-05-25)
> sparse: v0.6.5-rc1
> reproduce (this is a W=1 build):
> (https://download.01.org/0day-ci/archive/20260819/[email protected]/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 <[email protected]>
> | Closes:
> https://lore.kernel.org/oe-kbuild-all/[email protected]/
>
> sparse warnings: (new ones prefixed by >>)
> drivers/remoteproc/xlnx_r5_remoteproc.c:571:20: sparse: sparse:
> cast removes address space '__iomem' of expression
> drivers/remoteproc/xlnx_r5_remoteproc.c:749:17: sparse: sparse:
> cast removes address space '__iomem' of expression
> drivers/remoteproc/xlnx_r5_remoteproc.c:773:24: sparse: sparse:
> cast removes address space '__iomem' of expression
> drivers/remoteproc/xlnx_r5_remoteproc.c:797:25: sparse: sparse:
> cast removes address space '__iomem' of expression
>>> drivers/remoteproc/xlnx_r5_remoteproc.c:837:49: sparse: sparse: incorrect
>>> type in initializer (different address spaces) @@ expected void
>>> *rsc_offset @@ got void [noderef] __iomem * @@
> drivers/remoteproc/xlnx_r5_remoteproc.c:837:49: sparse:
> expected void *rsc_offset
> drivers/remoteproc/xlnx_r5_remoteproc.c:837:49: sparse: got
> void [noderef] __iomem *
>
> vim +837 drivers/remoteproc/xlnx_r5_remoteproc.c
>
> 832
> 833 static int zynqmp_r5_handle_rsc(struct rproc *rproc, u32
> rsc_type, void *rsc,
> 834 int offset, int avail)
> 835 {
> 836 struct zynqmp_r5_core *r5_core = rproc->priv;
> > 837 void *rsc_offset = (r5_core->rsc_tbl_va + offset);
> 838
> 839 if (rsc_type != XLNX_RPROC_FW_CRASH_REPORT)
> 840 return RSC_IGNORED;
> 841
> 842 r5_core->crash_report = rsc_offset;
> 843 /* reset all values */
> 844 r5_core->crash_report->crashed = false;
> 845 r5_core->crash_report->crash_reason = 0;
> 846 r5_core->crash_report->crash_reason_str[0] = '\0';
> 847
> 848 return RSC_HANDLED;
> 849 }
> 850
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki