[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202001102201.gnR04QZ3%lkp@intel.com>
Date: Fri, 10 Jan 2020 22:41:39 +0800
From: kbuild test robot <lkp@...el.com>
To: Sergey Dyasli <sergey.dyasli@...rix.com>
Cc: kbuild-all@...ts.01.org, xen-devel@...ts.xen.org,
kasan-dev@...glegroups.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
Andrey Ryabinin <aryabinin@...tuozzo.com>,
Alexander Potapenko <glider@...gle.com>,
Dmitry Vyukov <dvyukov@...gle.com>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Juergen Gross <jgross@...e.com>,
Stefano Stabellini <sstabellini@...nel.org>,
George Dunlap <george.dunlap@...rix.com>,
Ross Lagerwall <ross.lagerwall@...rix.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Sergey Dyasli <sergey.dyasli@...rix.com>
Subject: Re: [PATCH v1 1/4] kasan: introduce set_pmd_early_shadow()
Hi Sergey,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
[also build test ERROR on net/master linus/master v5.5-rc5 next-20200109]
[cannot apply to xen-tip/linux-next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Sergey-Dyasli/basic-KASAN-support-for-Xen-PV-domains/20200110-042623
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 4a4a52d49d11f5c4a0df8b9806c8c5563801f753
config: arm64-randconfig-a001-20200109 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>
All error/warnings (new ones prefixed by >>):
In file included from arch/arm64/include/asm/kasan.h:9:0,
from arch/arm64/include/asm/processor.h:34,
from include/asm-generic/qrwlock.h:14,
from ./arch/arm64/include/generated/asm/qrwlock.h:1,
from arch/arm64/include/asm/spinlock.h:8,
from include/linux/spinlock.h:89,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/memblock.h:13,
from mm/kasan/init.c:14:
mm/kasan/init.c: In function 'set_pmd_early_shadow':
>> mm/kasan/init.c:90:43: error: '_PAGE_TABLE' undeclared (first use in this function); did you mean 'NR_PAGETABLE'?
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^
arch/arm64/include/asm/pgtable-types.h:40:30: note: in definition of macro '__pgd'
#define __pgd(x) ((pgd_t) { (x) } )
^
>> include/asm-generic/pgtable-nopmd.h:50:32: note: in expansion of macro '__pud'
#define __pmd(x) ((pmd_t) { __pud(x) } )
^~~~~
>> mm/kasan/init.c:90:16: note: in expansion of macro '__pmd'
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^~~~~
mm/kasan/init.c:90:43: note: each undeclared identifier is reported only once for each function it appears in
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^
arch/arm64/include/asm/pgtable-types.h:40:30: note: in definition of macro '__pgd'
#define __pgd(x) ((pgd_t) { (x) } )
^
>> include/asm-generic/pgtable-nopmd.h:50:32: note: in expansion of macro '__pud'
#define __pmd(x) ((pmd_t) { __pud(x) } )
^~~~~
>> mm/kasan/init.c:90:16: note: in expansion of macro '__pmd'
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^~~~~
--
In file included from arch/arm64/include/asm/kasan.h:9:0,
from arch/arm64/include/asm/processor.h:34,
from include/asm-generic/qrwlock.h:14,
from ./arch/arm64/include/generated/asm/qrwlock.h:1,
from arch/arm64/include/asm/spinlock.h:8,
from include/linux/spinlock.h:89,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/memblock.h:13,
from mm//kasan/init.c:14:
mm//kasan/init.c: In function 'set_pmd_early_shadow':
mm//kasan/init.c:90:43: error: '_PAGE_TABLE' undeclared (first use in this function); did you mean 'NR_PAGETABLE'?
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^
arch/arm64/include/asm/pgtable-types.h:40:30: note: in definition of macro '__pgd'
#define __pgd(x) ((pgd_t) { (x) } )
^
>> include/asm-generic/pgtable-nopmd.h:50:32: note: in expansion of macro '__pud'
#define __pmd(x) ((pmd_t) { __pud(x) } )
^~~~~
mm//kasan/init.c:90:16: note: in expansion of macro '__pmd'
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^~~~~
mm//kasan/init.c:90:43: note: each undeclared identifier is reported only once for each function it appears in
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^
arch/arm64/include/asm/pgtable-types.h:40:30: note: in definition of macro '__pgd'
#define __pgd(x) ((pgd_t) { (x) } )
^
>> include/asm-generic/pgtable-nopmd.h:50:32: note: in expansion of macro '__pud'
#define __pmd(x) ((pmd_t) { __pud(x) } )
^~~~~
mm//kasan/init.c:90:16: note: in expansion of macro '__pmd'
set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
^~~~~
vim +90 mm/kasan/init.c
> 14 #include <linux/memblock.h>
15 #include <linux/init.h>
16 #include <linux/kasan.h>
17 #include <linux/kernel.h>
18 #include <linux/mm.h>
19 #include <linux/pfn.h>
20 #include <linux/slab.h>
21
22 #include <asm/page.h>
23 #include <asm/pgalloc.h>
24
25 #include "kasan.h"
26
27 /*
28 * This page serves two purposes:
29 * - It used as early shadow memory. The entire shadow region populated
30 * with this page, before we will be able to setup normal shadow memory.
31 * - Latter it reused it as zero shadow to cover large ranges of memory
32 * that allowed to access, but not handled by kasan (vmalloc/vmemmap ...).
33 */
34 unsigned char kasan_early_shadow_page[PAGE_SIZE] __page_aligned_bss;
35
36 #if CONFIG_PGTABLE_LEVELS > 4
37 p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D] __page_aligned_bss;
38 static inline bool kasan_p4d_table(pgd_t pgd)
39 {
40 return pgd_page(pgd) == virt_to_page(lm_alias(kasan_early_shadow_p4d));
41 }
42 #else
43 static inline bool kasan_p4d_table(pgd_t pgd)
44 {
45 return false;
46 }
47 #endif
48 #if CONFIG_PGTABLE_LEVELS > 3
49 pud_t kasan_early_shadow_pud[PTRS_PER_PUD] __page_aligned_bss;
50 static inline bool kasan_pud_table(p4d_t p4d)
51 {
52 return p4d_page(p4d) == virt_to_page(lm_alias(kasan_early_shadow_pud));
53 }
54 #else
55 static inline bool kasan_pud_table(p4d_t p4d)
56 {
57 return false;
58 }
59 #endif
60 #if CONFIG_PGTABLE_LEVELS > 2
61 pmd_t kasan_early_shadow_pmd[PTRS_PER_PMD] __page_aligned_bss;
62 static inline bool kasan_pmd_table(pud_t pud)
63 {
64 return pud_page(pud) == virt_to_page(lm_alias(kasan_early_shadow_pmd));
65 }
66 #else
67 static inline bool kasan_pmd_table(pud_t pud)
68 {
69 return false;
70 }
71 #endif
72 pte_t kasan_early_shadow_pte[PTRS_PER_PTE] __page_aligned_bss;
73
74 static inline bool kasan_pte_table(pmd_t pmd)
75 {
76 return pmd_page(pmd) == virt_to_page(lm_alias(kasan_early_shadow_pte));
77 }
78
79 static inline bool kasan_early_shadow_page_entry(pte_t pte)
80 {
81 return pte_page(pte) == virt_to_page(lm_alias(kasan_early_shadow_page));
82 }
83
84 static inline void set_pmd_early_shadow(pmd_t *pmd)
85 {
86 static bool pmd_populated = false;
87 pte_t *early_shadow = lm_alias(kasan_early_shadow_pte);
88
89 if (likely(pmd_populated)) {
> 90 set_pmd(pmd, __pmd(__pa(early_shadow) | _PAGE_TABLE));
91 } else {
92 pmd_populate_kernel(&init_mm, pmd, early_shadow);
93 pmd_populated = true;
94 }
95 }
96
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (32377 bytes)
Powered by blists - more mailing lists