From: Gregory CLEMENT <gregory.clement@bootlin.com>
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"Théo Lebrun" <theo.lebrun@bootlin.com>
Subject: Re: arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: cast truncates bits from constant value (fffffffff000 becomes fffff000)
Date: Tue, 10 Dec 2024 18:06:37 +0100 [thread overview]
Message-ID: <87ed2flb6q.fsf@BLaptop.bootlin.com> (raw)
In-Reply-To: <202412091227.KUZgstBB-lkp@intel.com>
Hello,
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4
> commit: 6f14293257309a02a6d451e80e4ef1d78560479e MIPS: Allow using more than 32-bit addresses for reset vectors when possible
> date: 6 weeks ago
> config: mips-randconfig-r112-20241209 (https://download.01.org/0day-ci/archive/20241209/202412091227.KUZgstBB-lkp@intel.com/config)
> compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 592c0fe55f6d9a811028b5f3507be91458ab2713)
> reproduce: (https://download.01.org/0day-ci/archive/20241209/202412091227.KUZgstBB-lkp@intel.com/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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202412091227.KUZgstBB-lkp@intel.com/
[...]
> arch/mips/kernel/smp-cps.c: note: in included file (through arch/mips/include/asm/mips-cps.h):
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void volatile [noderef] __iomem *mem
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void volatile [noderef] __iomem *mem
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void volatile [noderef] __iomem *mem
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void volatile [noderef] __iomem *mem
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void *
>>> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: cast truncates bits from constant value (fffffffff000 becomes fffff000)
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void [noderef] __iomem *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void [noderef] __iomem *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
> arch/mips/include/asm/mips-cm.h:329:1: sparse: expected void *
> arch/mips/include/asm/mips-cm.h:329:1: sparse: got void [noderef] __iomem *
>>> arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: cast truncates bits from constant value (fffffffff000 becomes fffff000)
So I looked for from where this error comes and found that it was caused
by:
write_gcr_co_reset64_base(CM_GCR_Cx_RESET64_BASE_BEVEXCBASE);
in function check_64bit_reset() (smp-cps.c)
The constant value being CM_GCR_Cx_RESET64_BASE_BEVEXCBASE.
It occurs due to:
__raw_writel(val, addr_##unit##_##name());
in write_##unit##_##name(uint##sz##_t val) (mips-cps.h)
However, check_64bit_reset() is only called when mips_cm_is64 is true,
whereas in write_##unit##_##name(uint##sz##_t val) __raw_writel is not
called when mips_cm_is64 is true. This warning is therefore a false
positive and I do not see any reasonable way to silence it, so I think
we should simply ignore it unless someone has a better proposal.
Gregory
[...]
>
> vim +329 arch/mips/include/asm/mips-cm.h
>
> 326
> 327 /* GCR_Cx_RESET_BASE - Configure where powered up cores will fetch from */
> 328 GCR_CX_ACCESSOR_RW(32, 0x020, reset_base)
> > 329 GCR_CX_ACCESSOR_RW(64, 0x020, reset64_base)
> 330 #define CM_GCR_Cx_RESET_BASE_BEVEXCBASE GENMASK(31, 12)
> 331 #define CM_GCR_Cx_RESET64_BASE_BEVEXCBASE GENMASK_ULL(47, 12)
> 332 #define CM_GCR_Cx_RESET_BASE_MODE BIT(1)
> 333
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
--
Grégory CLEMENT, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2024-12-10 17:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 5:08 arch/mips/include/asm/mips-cm.h:329:1: sparse: sparse: cast truncates bits from constant value (fffffffff000 becomes fffff000) kernel test robot
2024-12-10 17:06 ` Gregory CLEMENT [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ed2flb6q.fsf@BLaptop.bootlin.com \
--to=gregory.clement@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=theo.lebrun@bootlin.com \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.