* [linux-next:master 7520/15793] arch/arm64/kernel/hibernate.c:192:22: sparse: sparse: cast to non-scalar
@ 2020-06-07 10:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-07 10:24 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 9996 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: af30725c132e2e5c5369b60369ff0771fde7d4ff
commit: 7b364f0949ae2dd205d5e9afa4b82ee17030d928 [7520/15793] READ_ONCE: Drop pointer qualifiers when reading from scalar types
config: arm64-randconfig-s032-20200607 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-247-gcadbd124-dirty
git checkout 7b364f0949ae2dd205d5e9afa4b82ee17030d928
# save the attached .config to linux build tree
make W=1 C=1 ARCH=arm64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
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/arm64/kernel/hibernate.c:192:22: sparse: sparse: cast to non-scalar
>> arch/arm64/kernel/hibernate.c:192:22: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:200:13: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:200:13: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:207:16: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:207:16: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:208:13: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:208:13: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:215:16: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:215:16: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:341:21: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:341:21: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:377:20: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:377:20: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:379:20: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:379:20: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:395:13: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:395:13: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:401:20: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:401:20: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:403:20: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:403:20: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:405:29: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:405:29: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:430:22: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:430:22: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:440:29: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:440:29: sparse: sparse: cast from non-scalar
arch/arm64/kernel/hibernate.c:467:30: sparse: sparse: cast to non-scalar
arch/arm64/kernel/hibernate.c:467:30: sparse: sparse: cast from non-scalar
--
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:180:28: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:180:28: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:247:27: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:247:27: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:369:15: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:369:15: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:462:43: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:462:43: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:471:28: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:471:28: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:482:27: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:482:27: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:499:27: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:499:27: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:618:23: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:618:23: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:635:23: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:635:23: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1193:16: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1193:16: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1282:15: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1282:15: sparse: sparse: cast from non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1426:15: sparse: sparse: cast to non-scalar
arch/arm64/kvm/../../../virt/kvm/arm/mmu.c:1426:15: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
arch/arm64/include/asm/pgtable.h:709:15: sparse: sparse: cast to non-scalar
arch/arm64/include/asm/pgtable.h:709:15: sparse: sparse: cast from non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast to non-scalar
>> arch/arm64/include/asm/stage2_pgtable.h:176:24: sparse: sparse: cast from non-scalar
vim +192 arch/arm64/kernel/hibernate.c
82869ac57b5d3b James Morse 2016-04-27 181
a2c2e67923ecb7 Pavel Tatashin 2019-12-04 182 static int trans_pgd_map_page(pgd_t *trans_pgd, void *page,
82869ac57b5d3b James Morse 2016-04-27 183 unsigned long dst_addr,
a2c2e67923ecb7 Pavel Tatashin 2019-12-04 184 pgprot_t pgprot)
82869ac57b5d3b James Morse 2016-04-27 185 {
20a004e7b017cc Will Deacon 2018-02-15 186 pgd_t *pgdp;
20a004e7b017cc Will Deacon 2018-02-15 187 pud_t *pudp;
20a004e7b017cc Will Deacon 2018-02-15 188 pmd_t *pmdp;
20a004e7b017cc Will Deacon 2018-02-15 189 pte_t *ptep;
82869ac57b5d3b James Morse 2016-04-27 190
8c551f919a73c1 Pavel Tatashin 2019-10-14 191 pgdp = pgd_offset_raw(trans_pgd, dst_addr);
20a004e7b017cc Will Deacon 2018-02-15 @192 if (pgd_none(READ_ONCE(*pgdp))) {
051a7a94aaa9ca Pavel Tatashin 2019-12-04 193 pudp = (void *)get_safe_page(GFP_ATOMIC);
a89d7ff933b015 Pavel Tatashin 2019-12-04 194 if (!pudp)
a89d7ff933b015 Pavel Tatashin 2019-12-04 195 return -ENOMEM;
20a004e7b017cc Will Deacon 2018-02-15 196 pgd_populate(&init_mm, pgdp, pudp);
82869ac57b5d3b James Morse 2016-04-27 197 }
82869ac57b5d3b James Morse 2016-04-27 198
20a004e7b017cc Will Deacon 2018-02-15 199 pudp = pud_offset(pgdp, dst_addr);
20a004e7b017cc Will Deacon 2018-02-15 200 if (pud_none(READ_ONCE(*pudp))) {
051a7a94aaa9ca Pavel Tatashin 2019-12-04 201 pmdp = (void *)get_safe_page(GFP_ATOMIC);
a89d7ff933b015 Pavel Tatashin 2019-12-04 202 if (!pmdp)
a89d7ff933b015 Pavel Tatashin 2019-12-04 203 return -ENOMEM;
20a004e7b017cc Will Deacon 2018-02-15 204 pud_populate(&init_mm, pudp, pmdp);
82869ac57b5d3b James Morse 2016-04-27 205 }
82869ac57b5d3b James Morse 2016-04-27 206
20a004e7b017cc Will Deacon 2018-02-15 207 pmdp = pmd_offset(pudp, dst_addr);
20a004e7b017cc Will Deacon 2018-02-15 208 if (pmd_none(READ_ONCE(*pmdp))) {
051a7a94aaa9ca Pavel Tatashin 2019-12-04 209 ptep = (void *)get_safe_page(GFP_ATOMIC);
a89d7ff933b015 Pavel Tatashin 2019-12-04 210 if (!ptep)
a89d7ff933b015 Pavel Tatashin 2019-12-04 211 return -ENOMEM;
20a004e7b017cc Will Deacon 2018-02-15 212 pmd_populate_kernel(&init_mm, pmdp, ptep);
82869ac57b5d3b James Morse 2016-04-27 213 }
82869ac57b5d3b James Morse 2016-04-27 214
20a004e7b017cc Will Deacon 2018-02-15 215 ptep = pte_offset_kernel(pmdp, dst_addr);
13373f0e658013 Pavel Tatashin 2019-12-04 216 set_pte(ptep, pfn_pte(virt_to_pfn(page), PAGE_KERNEL_EXEC));
82869ac57b5d3b James Morse 2016-04-27 217
a2c2e67923ecb7 Pavel Tatashin 2019-12-04 218 return 0;
a2c2e67923ecb7 Pavel Tatashin 2019-12-04 219 }
a2c2e67923ecb7 Pavel Tatashin 2019-12-04 220
:::::: The code at line 192 was first introduced by commit
:::::: 20a004e7b017cce282a46ac5d02c2b9c6b9bb1fa arm64: mm: Use READ_ONCE/WRITE_ONCE when accessing page tables
:::::: TO: Will Deacon <will.deacon@arm.com>
:::::: CC: Catalin Marinas <catalin.marinas@arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35800 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-06-07 10:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-07 10:24 [linux-next:master 7520/15793] arch/arm64/kernel/hibernate.c:192:22: sparse: sparse: cast to non-scalar kernel test robot
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.