[PATCH] RISC-V: Remove unnecessary include from compat.h

Yao Zi ziyao at disroot.org
Sun Dec 8 08:42:30 PST 2024


On Tue, Nov 26, 2024 at 06:32:50AM -0800, Palmer Dabbelt wrote:
> Without this I get a bunch of build errors like
> 
>     In file included from ./include/linux/sched/task_stack.h:12,
>                      from ./arch/riscv/include/asm/compat.h:12,
>                      from ./arch/riscv/include/asm/pgtable.h:115,
>                      from ./include/linux/pgtable.h:6,
>                      from ./include/linux/mm.h:30,
>                      from arch/riscv/kernel/asm-offsets.c:8:
>     ./include/linux/kasan.h:50:37: error: ‘MAX_PTRS_PER_PTE’ undeclared here (not in a function); did you mean ‘PTRS_PER_PTE’?
>        50 | extern pte_t kasan_early_shadow_pte[MAX_PTRS_PER_PTE + PTE_HWTABLE_PTRS];
>           |                                     ^~~~~~~~~~~~~~~~
>           |                                     PTRS_PER_PTE
>     ./include/linux/kasan.h:51:8: error: unknown type name ‘pmd_t’; did you mean ‘pgd_t’?
>        51 | extern pmd_t kasan_early_shadow_pmd[MAX_PTRS_PER_PMD];
>           |        ^~~~~
>           |        pgd_t
>     ./include/linux/kasan.h:51:37: error: ‘MAX_PTRS_PER_PMD’ undeclared here (not in a function); did you mean ‘PTRS_PER_PGD’?
>        51 | extern pmd_t kasan_early_shadow_pmd[MAX_PTRS_PER_PMD];
>           |                                     ^~~~~~~~~~~~~~~~
>           |                                     PTRS_PER_PGD
>     ./include/linux/kasan.h:52:8: error: unknown type name ‘pud_t’; did you mean ‘pgd_t’?
>        52 | extern pud_t kasan_early_shadow_pud[MAX_PTRS_PER_PUD];
>           |        ^~~~~
>           |        pgd_t
>     ./include/linux/kasan.h:52:37: error: ‘MAX_PTRS_PER_PUD’ undeclared here (not in a function); did you mean ‘PTRS_PER_PGD’?
>        52 | extern pud_t kasan_early_shadow_pud[MAX_PTRS_PER_PUD];
>           |                                     ^~~~~~~~~~~~~~~~
>           |                                     PTRS_PER_PGD
>     ./include/linux/kasan.h:53:8: error: unknown type name ‘p4d_t’; did you mean ‘pgd_t’?
>        53 | extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D];
>           |        ^~~~~
>           |        pgd_t
>     ./include/linux/kasan.h:53:37: error: ‘MAX_PTRS_PER_P4D’ undeclared here (not in a function); did you mean ‘PTRS_PER_PGD’?
>        53 | extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D];
>           |                                     ^~~~~~~~~~~~~~~~
>           |                                     PTRS_PER_PGD
> 
> Signed-off-by: Palmer Dabbelt <palmer at rivosinc.com>
> 
> Signed-off-by: Palmer Dabbelt <palmer at rivosinc.com>
> ---
>  arch/riscv/include/asm/compat.h | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/arch/riscv/include/asm/compat.h b/arch/riscv/include/asm/compat.h
> index aa103530a5c8..6081327e55f5 100644
> --- a/arch/riscv/include/asm/compat.h
> +++ b/arch/riscv/include/asm/compat.h
> @@ -9,7 +9,6 @@
>   */
>  #include <linux/types.h>
>  #include <linux/sched.h>
> -#include <linux/sched/task_stack.h>
>  #include <asm-generic/compat.h>
>  
>  static inline int is_compat_task(void)
> -- 
> 2.45.2

Hi Palmer, do you think we should backport this to 6.12?

Commit fd7b4f9f46d4
("sched/task_stack: fix object_is_on_stack() for KASAN tagged pointers"),
introduces extra header dependency in linux/sched/task_stack.h. Without
this patch, build may fail because of the include sequence if KASAN is
enabled.

Since commit fd7b4f9f46d4 has landed in 6.12 before this patch was
merged, KASAN is completely broken on RISC-V in current LTS release.

Thanks,
Yao Zi



More information about the linux-riscv mailing list