From: kernel test robot <lkp@intel.com>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [koverstreet-bcachefs:time_stats_sched 63/63] include/asm-generic/pgalloc.h:112:2: error: call to undeclared function 'pagetable_dtor_free'; ISO C99 and later do not support implicit function declarations
Date: Sun, 9 Feb 2025 06:08:26 +0800 [thread overview]
Message-ID: <202502090524.WcPTOmwj-lkp@intel.com> (raw)
tree: https://github.com/koverstreet/bcachefs time_stats_sched
head: d9b1e57f3b38d16fdd7177f3b9636dcbb4c749ed
commit: d9b1e57f3b38d16fdd7177f3b9636dcbb4c749ed [63/63] sched_wakeup_backtrace debugfs
config: hexagon-randconfig-002-20250209 (https://download.01.org/0day-ci/archive/20250209/202502090524.WcPTOmwj-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 6807164500e9920638e2ab0cdb4bf8321d24f8eb)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250209/202502090524.WcPTOmwj-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/202502090524.WcPTOmwj-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from kernel/sched/timestats_bt.c:6:
In file included from include/linux/mmu_context.h:5:
In file included from arch/hexagon/include/asm/mmu_context.h:15:
In file included from arch/hexagon/include/asm/pgalloc.h:14:
include/asm-generic/pgalloc.h:21:26: error: call to undeclared function 'pagetable_alloc_noprof'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
21 | struct ptdesc *ptdesc = pagetable_alloc_noprof(GFP_PGTABLE_KERNEL &
| ^
include/asm-generic/pgalloc.h:21:17: error: incompatible integer to pointer conversion initializing 'struct ptdesc *' with an expression of type 'int' [-Wint-conversion]
21 | struct ptdesc *ptdesc = pagetable_alloc_noprof(GFP_PGTABLE_KERNEL &
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22 | ~__GFP_HIGHMEM, 0);
| ~~~~~~~~~~~~~~~~~~
include/asm-generic/pgalloc.h:26:9: error: call to undeclared function 'ptdesc_address'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
26 | return ptdesc_address(ptdesc);
| ^
include/asm-generic/pgalloc.h:26:9: error: incompatible integer to pointer conversion returning 'int' from a function with result type 'pte_t *' [-Wint-conversion]
26 | return ptdesc_address(ptdesc);
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/pgalloc.h:51:2: error: call to undeclared function 'pagetable_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
51 | pagetable_free(virt_to_ptdesc(pte));
| ^
include/asm-generic/pgalloc.h:51:17: error: call to undeclared function 'virt_to_ptdesc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
51 | pagetable_free(virt_to_ptdesc(pte));
| ^
include/asm-generic/pgalloc.h:51:17: note: did you mean 'irq_to_desc'?
include/linux/irqnr.h:10:25: note: 'irq_to_desc' declared here
10 | extern struct irq_desc *irq_to_desc(unsigned int irq);
| ^
In file included from kernel/sched/timestats_bt.c:6:
In file included from include/linux/mmu_context.h:5:
In file included from arch/hexagon/include/asm/mmu_context.h:15:
In file included from arch/hexagon/include/asm/pgalloc.h:14:
include/asm-generic/pgalloc.h:70:11: error: call to undeclared function 'pagetable_alloc_noprof'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
70 | ptdesc = pagetable_alloc_noprof(gfp, 0);
| ^
include/asm-generic/pgalloc.h:70:9: error: incompatible integer to pointer conversion assigning to 'struct ptdesc *' from 'int' [-Wint-conversion]
70 | ptdesc = pagetable_alloc_noprof(gfp, 0);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/pgalloc.h:73:7: error: call to undeclared function 'pagetable_pte_ctor'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
73 | if (!pagetable_pte_ctor(ptdesc)) {
| ^
include/asm-generic/pgalloc.h:74:3: error: call to undeclared function 'pagetable_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
74 | pagetable_free(ptdesc);
| ^
>> include/asm-generic/pgalloc.h:112:2: error: call to undeclared function 'pagetable_dtor_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
112 | pagetable_dtor_free(ptdesc);
| ^
include/asm-generic/pgalloc.h:270:11: error: call to undeclared function 'pagetable_alloc_noprof'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
270 | ptdesc = pagetable_alloc_noprof(gfp, order);
| ^
include/asm-generic/pgalloc.h:270:9: error: incompatible integer to pointer conversion assigning to 'struct ptdesc *' from 'int' [-Wint-conversion]
270 | ptdesc = pagetable_alloc_noprof(gfp, order);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/pgalloc.h:274:2: error: call to undeclared function 'pagetable_pgd_ctor'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
274 | pagetable_pgd_ctor(ptdesc);
| ^
include/asm-generic/pgalloc.h:275:9: error: call to undeclared function 'ptdesc_address'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
275 | return ptdesc_address(ptdesc);
| ^
>> include/asm-generic/pgalloc.h:275:9: error: incompatible integer to pointer conversion returning 'int' from a function with result type 'pgd_t *' [-Wint-conversion]
275 | return ptdesc_address(ptdesc);
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/pgalloc.h:281:26: error: call to undeclared function 'virt_to_ptdesc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
281 | struct ptdesc *ptdesc = virt_to_ptdesc(pgd);
| ^
include/asm-generic/pgalloc.h:281:17: error: incompatible integer to pointer conversion initializing 'struct ptdesc *' with an expression of type 'int' [-Wint-conversion]
281 | struct ptdesc *ptdesc = virt_to_ptdesc(pgd);
| ^ ~~~~~~~~~~~~~~~~~~~
include/asm-generic/pgalloc.h:284:2: error: call to undeclared function 'pagetable_dtor_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
284 | pagetable_dtor_free(ptdesc);
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
vim +/pagetable_dtor_free +112 include/asm-generic/pgalloc.h
5c01b46bb6bb8f Arnd Bergmann 2009-05-13 97
5fba4af4456b5d Mike Rapoport 2019-07-11 98 /*
5fba4af4456b5d Mike Rapoport 2019-07-11 99 * Should really implement gc for free page table pages. This could be
5fba4af4456b5d Mike Rapoport 2019-07-11 100 * done with a reference count in struct page.
5fba4af4456b5d Mike Rapoport 2019-07-11 101 */
5fba4af4456b5d Mike Rapoport 2019-07-11 102
5fba4af4456b5d Mike Rapoport 2019-07-11 103 /**
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 104) * pte_free - free PTE-level user page table memory
5fba4af4456b5d Mike Rapoport 2019-07-11 105 * @mm: the mm_struct of the current context
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 106) * @pte_page: the `struct page` referencing the ptdesc
5fba4af4456b5d Mike Rapoport 2019-07-11 107 */
5fba4af4456b5d Mike Rapoport 2019-07-11 108 static inline void pte_free(struct mm_struct *mm, struct page *pte_page)
5fba4af4456b5d Mike Rapoport 2019-07-11 109 {
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 110) struct ptdesc *ptdesc = page_ptdesc(pte_page);
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 111)
553e77529fb61e Qi Zheng 2025-01-08 @112 pagetable_dtor_free(ptdesc);
5fba4af4456b5d Mike Rapoport 2019-07-11 113 }
5fba4af4456b5d Mike Rapoport 2019-07-11 114
1355c31eeb7ea6 Mike Rapoport 2020-08-06 115
1355c31eeb7ea6 Mike Rapoport 2020-08-06 116 #if CONFIG_PGTABLE_LEVELS > 2
1355c31eeb7ea6 Mike Rapoport 2020-08-06 117
1355c31eeb7ea6 Mike Rapoport 2020-08-06 118 #ifndef __HAVE_ARCH_PMD_ALLOC_ONE
1355c31eeb7ea6 Mike Rapoport 2020-08-06 119 /**
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 120) * pmd_alloc_one - allocate memory for a PMD-level page table
1355c31eeb7ea6 Mike Rapoport 2020-08-06 121 * @mm: the mm_struct of the current context
1355c31eeb7ea6 Mike Rapoport 2020-08-06 122 *
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 123) * Allocate memory for a page table and ptdesc and runs pagetable_pmd_ctor().
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 124) *
1355c31eeb7ea6 Mike Rapoport 2020-08-06 125 * Allocations use %GFP_PGTABLE_USER in user context and
1355c31eeb7ea6 Mike Rapoport 2020-08-06 126 * %GFP_PGTABLE_KERNEL in kernel context.
1355c31eeb7ea6 Mike Rapoport 2020-08-06 127 *
1355c31eeb7ea6 Mike Rapoport 2020-08-06 128 * Return: pointer to the allocated memory or %NULL on error
1355c31eeb7ea6 Mike Rapoport 2020-08-06 129 */
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 130 static inline pmd_t *pmd_alloc_one_noprof(struct mm_struct *mm, unsigned long addr)
1355c31eeb7ea6 Mike Rapoport 2020-08-06 131 {
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 132) struct ptdesc *ptdesc;
1355c31eeb7ea6 Mike Rapoport 2020-08-06 133 gfp_t gfp = GFP_PGTABLE_USER;
1355c31eeb7ea6 Mike Rapoport 2020-08-06 134
1355c31eeb7ea6 Mike Rapoport 2020-08-06 135 if (mm == &init_mm)
1355c31eeb7ea6 Mike Rapoport 2020-08-06 136 gfp = GFP_PGTABLE_KERNEL;
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 137 ptdesc = pagetable_alloc_noprof(gfp, 0);
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 138) if (!ptdesc)
1355c31eeb7ea6 Mike Rapoport 2020-08-06 139 return NULL;
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 140) if (!pagetable_pmd_ctor(ptdesc)) {
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 141) pagetable_free(ptdesc);
1355c31eeb7ea6 Mike Rapoport 2020-08-06 142 return NULL;
1355c31eeb7ea6 Mike Rapoport 2020-08-06 143 }
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 144) return ptdesc_address(ptdesc);
1355c31eeb7ea6 Mike Rapoport 2020-08-06 145 }
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 146 #define pmd_alloc_one(...) alloc_hooks(pmd_alloc_one_noprof(__VA_ARGS__))
1355c31eeb7ea6 Mike Rapoport 2020-08-06 147 #endif
1355c31eeb7ea6 Mike Rapoport 2020-08-06 148
1355c31eeb7ea6 Mike Rapoport 2020-08-06 149 #ifndef __HAVE_ARCH_PMD_FREE
1355c31eeb7ea6 Mike Rapoport 2020-08-06 150 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
1355c31eeb7ea6 Mike Rapoport 2020-08-06 151 {
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 152) struct ptdesc *ptdesc = virt_to_ptdesc(pmd);
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 153)
1355c31eeb7ea6 Mike Rapoport 2020-08-06 154 BUG_ON((unsigned long)pmd & (PAGE_SIZE-1));
553e77529fb61e Qi Zheng 2025-01-08 155 pagetable_dtor_free(ptdesc);
1355c31eeb7ea6 Mike Rapoport 2020-08-06 156 }
1355c31eeb7ea6 Mike Rapoport 2020-08-06 157 #endif
1355c31eeb7ea6 Mike Rapoport 2020-08-06 158
1355c31eeb7ea6 Mike Rapoport 2020-08-06 159 #endif /* CONFIG_PGTABLE_LEVELS > 2 */
1355c31eeb7ea6 Mike Rapoport 2020-08-06 160
d9e8b929670b4f Mike Rapoport 2020-08-06 161 #if CONFIG_PGTABLE_LEVELS > 3
d9e8b929670b4f Mike Rapoport 2020-08-06 162
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 163 static inline pud_t *__pud_alloc_one_noprof(struct mm_struct *mm, unsigned long addr)
60639f74c2f4fc Alexandre Ghiti 2021-12-06 164 {
60639f74c2f4fc Alexandre Ghiti 2021-12-06 165 gfp_t gfp = GFP_PGTABLE_USER;
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 166) struct ptdesc *ptdesc;
60639f74c2f4fc Alexandre Ghiti 2021-12-06 167
60639f74c2f4fc Alexandre Ghiti 2021-12-06 168 if (mm == &init_mm)
60639f74c2f4fc Alexandre Ghiti 2021-12-06 169 gfp = GFP_PGTABLE_KERNEL;
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 170) gfp &= ~__GFP_HIGHMEM;
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 171)
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 172 ptdesc = pagetable_alloc_noprof(gfp, 0);
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 173) if (!ptdesc)
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 174) return NULL;
55d2a0bd5eadaa Baolin Wang 2023-09-18 175
55d2a0bd5eadaa Baolin Wang 2023-09-18 176 pagetable_pud_ctor(ptdesc);
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 177) return ptdesc_address(ptdesc);
60639f74c2f4fc Alexandre Ghiti 2021-12-06 178 }
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 179 #define __pud_alloc_one(...) alloc_hooks(__pud_alloc_one_noprof(__VA_ARGS__))
60639f74c2f4fc Alexandre Ghiti 2021-12-06 180
9922c1deff915c Mike Rapoport 2020-08-14 181 #ifndef __HAVE_ARCH_PUD_ALLOC_ONE
d9e8b929670b4f Mike Rapoport 2020-08-06 182 /**
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 183) * pud_alloc_one - allocate memory for a PUD-level page table
d9e8b929670b4f Mike Rapoport 2020-08-06 184 * @mm: the mm_struct of the current context
d9e8b929670b4f Mike Rapoport 2020-08-06 185 *
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 186) * Allocate memory for a page table using %GFP_PGTABLE_USER for user context
c787ae5b391496 Vishal Moola (Oracle 2023-08-07 187) * and %GFP_PGTABLE_KERNEL for kernel context.
d9e8b929670b4f Mike Rapoport 2020-08-06 188 *
d9e8b929670b4f Mike Rapoport 2020-08-06 189 * Return: pointer to the allocated memory or %NULL on error
d9e8b929670b4f Mike Rapoport 2020-08-06 190 */
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 191 static inline pud_t *pud_alloc_one_noprof(struct mm_struct *mm, unsigned long addr)
d9e8b929670b4f Mike Rapoport 2020-08-06 192 {
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 193 return __pud_alloc_one_noprof(mm, addr);
d9e8b929670b4f Mike Rapoport 2020-08-06 194 }
2c321f3f70bc28 Suren Baghdasaryan 2024-04-14 195 #define pud_alloc_one(...) alloc_hooks(pud_alloc_one_noprof(__VA_ARGS__))
d9e8b929670b4f Mike Rapoport 2020-08-06 196 #endif
d9e8b929670b4f Mike Rapoport 2020-08-06 197
60639f74c2f4fc Alexandre Ghiti 2021-12-06 198 static inline void __pud_free(struct mm_struct *mm, pud_t *pud)
d9e8b929670b4f Mike Rapoport 2020-08-06 199 {
55d2a0bd5eadaa Baolin Wang 2023-09-18 200 struct ptdesc *ptdesc = virt_to_ptdesc(pud);
55d2a0bd5eadaa Baolin Wang 2023-09-18 201
d9e8b929670b4f Mike Rapoport 2020-08-06 202 BUG_ON((unsigned long)pud & (PAGE_SIZE-1));
553e77529fb61e Qi Zheng 2025-01-08 203 pagetable_dtor_free(ptdesc);
d9e8b929670b4f Mike Rapoport 2020-08-06 204 }
d9e8b929670b4f Mike Rapoport 2020-08-06 205
60639f74c2f4fc Alexandre Ghiti 2021-12-06 206 #ifndef __HAVE_ARCH_PUD_FREE
60639f74c2f4fc Alexandre Ghiti 2021-12-06 207 static inline void pud_free(struct mm_struct *mm, pud_t *pud)
60639f74c2f4fc Alexandre Ghiti 2021-12-06 208 {
60639f74c2f4fc Alexandre Ghiti 2021-12-06 209 __pud_free(mm, pud);
60639f74c2f4fc Alexandre Ghiti 2021-12-06 210 }
60639f74c2f4fc Alexandre Ghiti 2021-12-06 211 #endif
60639f74c2f4fc Alexandre Ghiti 2021-12-06 212
d9e8b929670b4f Mike Rapoport 2020-08-06 213 #endif /* CONFIG_PGTABLE_LEVELS > 3 */
d9e8b929670b4f Mike Rapoport 2020-08-06 214
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 215 #if CONFIG_PGTABLE_LEVELS > 4
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 216
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 217 static inline p4d_t *__p4d_alloc_one_noprof(struct mm_struct *mm, unsigned long addr)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 218 {
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 219 gfp_t gfp = GFP_PGTABLE_USER;
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 220 struct ptdesc *ptdesc;
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 221
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 222 if (mm == &init_mm)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 223 gfp = GFP_PGTABLE_KERNEL;
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 224 gfp &= ~__GFP_HIGHMEM;
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 225
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 226 ptdesc = pagetable_alloc_noprof(gfp, 0);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 227 if (!ptdesc)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 228 return NULL;
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 229
5fcf5fa6121817 Qi Zheng 2025-01-08 230 pagetable_p4d_ctor(ptdesc);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 231 return ptdesc_address(ptdesc);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 232 }
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 233 #define __p4d_alloc_one(...) alloc_hooks(__p4d_alloc_one_noprof(__VA_ARGS__))
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 234
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 235 #ifndef __HAVE_ARCH_P4D_ALLOC_ONE
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 236 static inline p4d_t *p4d_alloc_one_noprof(struct mm_struct *mm, unsigned long addr)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 237 {
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 238 return __p4d_alloc_one_noprof(mm, addr);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 239 }
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 240 #define p4d_alloc_one(...) alloc_hooks(p4d_alloc_one_noprof(__VA_ARGS__))
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 241 #endif
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 242
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 243 static inline void __p4d_free(struct mm_struct *mm, p4d_t *p4d)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 244 {
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 245 struct ptdesc *ptdesc = virt_to_ptdesc(p4d);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 246
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 247 BUG_ON((unsigned long)p4d & (PAGE_SIZE-1));
553e77529fb61e Qi Zheng 2025-01-08 248 pagetable_dtor_free(ptdesc);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 249 }
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 250
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 251 #ifndef __HAVE_ARCH_P4D_FREE
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 252 static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d)
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 253 {
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 254 if (!mm_p4d_folded(mm))
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 255 __p4d_free(mm, p4d);
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 256 }
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 257 #endif
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 258
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 259 #endif /* CONFIG_PGTABLE_LEVELS > 4 */
98a7e47faa3ec3 Kevin Brodsky 2025-01-08 260
a9b3c355c2e638 Kevin Brodsky 2025-01-03 261 static inline pgd_t *__pgd_alloc_noprof(struct mm_struct *mm, unsigned int order)
a9b3c355c2e638 Kevin Brodsky 2025-01-03 262 {
a9b3c355c2e638 Kevin Brodsky 2025-01-03 263 gfp_t gfp = GFP_PGTABLE_USER;
a9b3c355c2e638 Kevin Brodsky 2025-01-03 264 struct ptdesc *ptdesc;
a9b3c355c2e638 Kevin Brodsky 2025-01-03 265
a9b3c355c2e638 Kevin Brodsky 2025-01-03 266 if (mm == &init_mm)
a9b3c355c2e638 Kevin Brodsky 2025-01-03 267 gfp = GFP_PGTABLE_KERNEL;
a9b3c355c2e638 Kevin Brodsky 2025-01-03 268 gfp &= ~__GFP_HIGHMEM;
a9b3c355c2e638 Kevin Brodsky 2025-01-03 269
a9b3c355c2e638 Kevin Brodsky 2025-01-03 270 ptdesc = pagetable_alloc_noprof(gfp, order);
a9b3c355c2e638 Kevin Brodsky 2025-01-03 271 if (!ptdesc)
a9b3c355c2e638 Kevin Brodsky 2025-01-03 272 return NULL;
a9b3c355c2e638 Kevin Brodsky 2025-01-03 273
d95936a2267c11 Kevin Brodsky 2025-01-03 @274 pagetable_pgd_ctor(ptdesc);
a9b3c355c2e638 Kevin Brodsky 2025-01-03 @275 return ptdesc_address(ptdesc);
a9b3c355c2e638 Kevin Brodsky 2025-01-03 276 }
a9b3c355c2e638 Kevin Brodsky 2025-01-03 277 #define __pgd_alloc(...) alloc_hooks(__pgd_alloc_noprof(__VA_ARGS__))
a9b3c355c2e638 Kevin Brodsky 2025-01-03 278
:::::: The code at line 112 was first introduced by commit
:::::: 553e77529fb61e5520b839a0ce412a46cba996e0 mm: pgtable: introduce generic pagetable_dtor_free()
:::::: TO: Qi Zheng <zhengqi.arch@bytedance.com>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-02-08 22:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202502090524.WcPTOmwj-lkp@intel.com \
--to=lkp@intel.com \
--cc=kent.overstreet@linux.dev \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/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.