All of lore.kernel.org
 help / color / mirror / Atom feed
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.