From: kernel test robot <lkp@intel.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Michael Ellerman <mpe@ellerman.id.au>
Subject: arch/powerpc/kvm/book3s_hv_builtin.c:419:22: sparse: sparse: incorrect type in assignment (different base types)
Date: Thu, 7 Apr 2022 15:43:10 +0800 [thread overview]
Message-ID: <202204071547.7NKPu5MS-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3e732ebf7316ac83e8562db7e64cc68aec390a18
commit: 2ce008c8b25467ceacf45bcf0e183d660edb82f2 KVM: PPC: Book3S HV: Remove unused nested HV tests in XICS emulation
date: 10 months ago
config: powerpc64-randconfig-s031-20220403 (https://download.01.org/0day-ci/archive/20220407/202204071547.7NKPu5MS-lkp@intel.com/config)
compiler: powerpc64le-linux-gcc (GCC) 11.2.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-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2ce008c8b25467ceacf45bcf0e183d660edb82f2
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2ce008c8b25467ceacf45bcf0e183d660edb82f2
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
arch/powerpc/kvm/book3s_hv_builtin.c:417:41: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] *out_xirr @@ got restricted __be32 * @@
arch/powerpc/kvm/book3s_hv_builtin.c:417:41: sparse: expected unsigned int [usertype] *out_xirr
arch/powerpc/kvm/book3s_hv_builtin.c:417:41: sparse: got restricted __be32 *
>> arch/powerpc/kvm/book3s_hv_builtin.c:419:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [addressable] [usertype] xirr @@ got unsigned int @@
arch/powerpc/kvm/book3s_hv_builtin.c:419:22: sparse: expected restricted __be32 [addressable] [usertype] xirr
arch/powerpc/kvm/book3s_hv_builtin.c:419:22: sparse: got unsigned int
>> arch/powerpc/kvm/book3s_hv_builtin.c:450:41: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 [addressable] [usertype] xirr @@
arch/powerpc/kvm/book3s_hv_builtin.c:450:41: sparse: expected unsigned int [usertype] val
arch/powerpc/kvm/book3s_hv_builtin.c:450:41: sparse: got restricted __be32 [addressable] [usertype] xirr
arch/powerpc/kvm/book3s_hv_builtin.c: note: in included file:
arch/powerpc/include/asm/kvm_ppc.h:966:1: sparse: sparse: cast to restricted __be64
arch/powerpc/include/asm/kvm_ppc.h:966:1: sparse: sparse: cast to restricted __le64
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] srr0 @@ got restricted __be64 [usertype] @@
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: expected unsigned long long [usertype] srr0
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: got restricted __be64 [usertype]
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] srr0 @@ got restricted __le64 [usertype] @@
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: expected unsigned long long [usertype] srr0
arch/powerpc/include/asm/kvm_ppc.h:962:1: sparse: got restricted __le64 [usertype]
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] srr1 @@ got restricted __be64 [usertype] @@
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: expected unsigned long long [usertype] srr1
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: got restricted __be64 [usertype]
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] srr1 @@ got restricted __le64 [usertype] @@
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: expected unsigned long long [usertype] srr1
arch/powerpc/include/asm/kvm_ppc.h:963:1: sparse: got restricted __le64 [usertype]
vim +419 arch/powerpc/kvm/book3s_hv_builtin.c
f725758b899f11c Paul Mackerras 2016-11-18 395
f725758b899f11c Paul Mackerras 2016-11-18 396 static long kvmppc_read_one_intr(bool *again)
37f55d30df2eef8 Suresh Warrier 2016-08-19 397 {
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 398 void __iomem *xics_phys;
37f55d30df2eef8 Suresh Warrier 2016-08-19 399 u32 h_xirr;
37f55d30df2eef8 Suresh Warrier 2016-08-19 400 __be32 xirr;
37f55d30df2eef8 Suresh Warrier 2016-08-19 401 u32 xisr;
37f55d30df2eef8 Suresh Warrier 2016-08-19 402 u8 host_ipi;
f725758b899f11c Paul Mackerras 2016-11-18 403 int64_t rc;
37f55d30df2eef8 Suresh Warrier 2016-08-19 404
5af50993850a48b Benjamin Herrenschmidt 2017-04-05 405 if (xive_enabled())
5af50993850a48b Benjamin Herrenschmidt 2017-04-05 406 return 1;
5af50993850a48b Benjamin Herrenschmidt 2017-04-05 407
37f55d30df2eef8 Suresh Warrier 2016-08-19 408 /* see if a host IPI is pending */
37f55d30df2eef8 Suresh Warrier 2016-08-19 409 host_ipi = local_paca->kvm_hstate.host_ipi;
37f55d30df2eef8 Suresh Warrier 2016-08-19 410 if (host_ipi)
37f55d30df2eef8 Suresh Warrier 2016-08-19 411 return 1;
37f55d30df2eef8 Suresh Warrier 2016-08-19 412
37f55d30df2eef8 Suresh Warrier 2016-08-19 413 /* Now read the interrupt from the ICP */
37f55d30df2eef8 Suresh Warrier 2016-08-19 414 xics_phys = local_paca->kvm_hstate.xics_phys;
53af3ba2e8195f5 Paul Mackerras 2017-01-30 415 rc = 0;
ab9bad0ead9ab17 Benjamin Herrenschmidt 2017-02-07 416 if (!xics_phys)
53af3ba2e8195f5 Paul Mackerras 2017-01-30 @417 rc = opal_int_get_xirr(&xirr, false);
53af3ba2e8195f5 Paul Mackerras 2017-01-30 418 else
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 @419 xirr = __raw_rm_readl(xics_phys + XICS_XIRR);
f725758b899f11c Paul Mackerras 2016-11-18 420 if (rc < 0)
37f55d30df2eef8 Suresh Warrier 2016-08-19 421 return 1;
37f55d30df2eef8 Suresh Warrier 2016-08-19 422
37f55d30df2eef8 Suresh Warrier 2016-08-19 423 /*
37f55d30df2eef8 Suresh Warrier 2016-08-19 424 * Save XIRR for later. Since we get control in reverse endian
37f55d30df2eef8 Suresh Warrier 2016-08-19 425 * on LE systems, save it byte reversed and fetch it back in
37f55d30df2eef8 Suresh Warrier 2016-08-19 426 * host endian. Note that xirr is the value read from the
37f55d30df2eef8 Suresh Warrier 2016-08-19 427 * XIRR register, while h_xirr is the host endian version.
37f55d30df2eef8 Suresh Warrier 2016-08-19 428 */
37f55d30df2eef8 Suresh Warrier 2016-08-19 429 h_xirr = be32_to_cpu(xirr);
37f55d30df2eef8 Suresh Warrier 2016-08-19 430 local_paca->kvm_hstate.saved_xirr = h_xirr;
37f55d30df2eef8 Suresh Warrier 2016-08-19 431 xisr = h_xirr & 0xffffff;
37f55d30df2eef8 Suresh Warrier 2016-08-19 432 /*
37f55d30df2eef8 Suresh Warrier 2016-08-19 433 * Ensure that the store/load complete to guarantee all side
37f55d30df2eef8 Suresh Warrier 2016-08-19 434 * effects of loading from XIRR has completed
37f55d30df2eef8 Suresh Warrier 2016-08-19 435 */
37f55d30df2eef8 Suresh Warrier 2016-08-19 436 smp_mb();
37f55d30df2eef8 Suresh Warrier 2016-08-19 437
37f55d30df2eef8 Suresh Warrier 2016-08-19 438 /* if nothing pending in the ICP */
37f55d30df2eef8 Suresh Warrier 2016-08-19 439 if (!xisr)
37f55d30df2eef8 Suresh Warrier 2016-08-19 440 return 0;
37f55d30df2eef8 Suresh Warrier 2016-08-19 441
37f55d30df2eef8 Suresh Warrier 2016-08-19 442 /* We found something in the ICP...
37f55d30df2eef8 Suresh Warrier 2016-08-19 443 *
37f55d30df2eef8 Suresh Warrier 2016-08-19 444 * If it is an IPI, clear the MFRR and EOI it.
37f55d30df2eef8 Suresh Warrier 2016-08-19 445 */
37f55d30df2eef8 Suresh Warrier 2016-08-19 446 if (xisr == XICS_IPI) {
53af3ba2e8195f5 Paul Mackerras 2017-01-30 447 rc = 0;
2ce008c8b25467c Nicholas Piggin 2021-05-28 448 if (xics_phys) {
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 449 __raw_rm_writeb(0xff, xics_phys + XICS_MFRR);
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 @450 __raw_rm_writel(xirr, xics_phys + XICS_XIRR);
f725758b899f11c Paul Mackerras 2016-11-18 451 } else {
ab9bad0ead9ab17 Benjamin Herrenschmidt 2017-02-07 452 opal_int_set_mfrr(hard_smp_processor_id(), 0xff);
ab9bad0ead9ab17 Benjamin Herrenschmidt 2017-02-07 453 rc = opal_int_eoi(h_xirr);
53af3ba2e8195f5 Paul Mackerras 2017-01-30 454 }
f725758b899f11c Paul Mackerras 2016-11-18 455 /* If rc > 0, there is another interrupt pending */
f725758b899f11c Paul Mackerras 2016-11-18 456 *again = rc > 0;
f725758b899f11c Paul Mackerras 2016-11-18 457
37f55d30df2eef8 Suresh Warrier 2016-08-19 458 /*
37f55d30df2eef8 Suresh Warrier 2016-08-19 459 * Need to ensure side effects of above stores
37f55d30df2eef8 Suresh Warrier 2016-08-19 460 * complete before proceeding.
37f55d30df2eef8 Suresh Warrier 2016-08-19 461 */
37f55d30df2eef8 Suresh Warrier 2016-08-19 462 smp_mb();
37f55d30df2eef8 Suresh Warrier 2016-08-19 463
37f55d30df2eef8 Suresh Warrier 2016-08-19 464 /*
37f55d30df2eef8 Suresh Warrier 2016-08-19 465 * We need to re-check host IPI now in case it got set in the
37f55d30df2eef8 Suresh Warrier 2016-08-19 466 * meantime. If it's clear, we bounce the interrupt to the
37f55d30df2eef8 Suresh Warrier 2016-08-19 467 * guest
37f55d30df2eef8 Suresh Warrier 2016-08-19 468 */
37f55d30df2eef8 Suresh Warrier 2016-08-19 469 host_ipi = local_paca->kvm_hstate.host_ipi;
37f55d30df2eef8 Suresh Warrier 2016-08-19 470 if (unlikely(host_ipi != 0)) {
37f55d30df2eef8 Suresh Warrier 2016-08-19 471 /* We raced with the host,
37f55d30df2eef8 Suresh Warrier 2016-08-19 472 * we need to resend that IPI, bummer
37f55d30df2eef8 Suresh Warrier 2016-08-19 473 */
2ce008c8b25467c Nicholas Piggin 2021-05-28 474 if (xics_phys)
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 475 __raw_rm_writeb(IPI_PRIORITY,
d381d7caf812f7a Benjamin Herrenschmidt 2017-04-05 476 xics_phys + XICS_MFRR);
f725758b899f11c Paul Mackerras 2016-11-18 477 else
ab9bad0ead9ab17 Benjamin Herrenschmidt 2017-02-07 478 opal_int_set_mfrr(hard_smp_processor_id(),
f725758b899f11c Paul Mackerras 2016-11-18 479 IPI_PRIORITY);
37f55d30df2eef8 Suresh Warrier 2016-08-19 480 /* Let side effects complete */
37f55d30df2eef8 Suresh Warrier 2016-08-19 481 smp_mb();
37f55d30df2eef8 Suresh Warrier 2016-08-19 482 return 1;
37f55d30df2eef8 Suresh Warrier 2016-08-19 483 }
37f55d30df2eef8 Suresh Warrier 2016-08-19 484
37f55d30df2eef8 Suresh Warrier 2016-08-19 485 /* OK, it's an IPI for us */
37f55d30df2eef8 Suresh Warrier 2016-08-19 486 local_paca->kvm_hstate.saved_xirr = 0;
37f55d30df2eef8 Suresh Warrier 2016-08-19 487 return -1;
37f55d30df2eef8 Suresh Warrier 2016-08-19 488 }
37f55d30df2eef8 Suresh Warrier 2016-08-19 489
f725758b899f11c Paul Mackerras 2016-11-18 490 return kvmppc_check_passthru(xisr, xirr, again);
37f55d30df2eef8 Suresh Warrier 2016-08-19 491 }
5af50993850a48b Benjamin Herrenschmidt 2017-04-05 492
:::::: The code at line 419 was first introduced by commit
:::::: d381d7caf812f7aa9f05cfeb858c9004ac654412 powerpc: Consolidate variants of real-mode MMIOs
:::::: TO: Benjamin Herrenschmidt <benh@kernel.crashing.org>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-04-07 7:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-07 7:43 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-06-14 6:08 arch/powerpc/kvm/book3s_hv_builtin.c:419:22: sparse: sparse: incorrect type in assignment (different base types) kernel test robot
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=202204071547.7NKPu5MS-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
/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.