On Wed, 26 Aug 2026 at 15:05, Shah, Tanmay <[email protected]> wrote:
>
>
>
> 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.
>

Sparse complains when an __iomem * gets typecasted to anything other
than a void *.  I don't think there is a need to use the memremap()
API because all that does is assigned the value of ioremap_xyz() to a
void * before returning the value.

Looking at the errors reported herein, it is possible to use a void *
and then casting that to another type to keep sparse happy.

> 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
>

Reply via email to