2023-11-30 13:44:24

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH v2 1/2] cfi: Flip headers

Normal include order is that linux/foo.h should include asm/foo.h, CFI has it
the wrong way around.

Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
---
arch/riscv/include/asm/cfi.h | 3 ++-
arch/riscv/kernel/cfi.c | 2 +-
arch/x86/include/asm/cfi.h | 3 ++-
arch/x86/kernel/cfi.c | 4 ++--
include/asm-generic/Kbuild | 1 +
include/asm-generic/cfi.h | 5 +++++
include/linux/cfi.h | 1 +
7 files changed, 14 insertions(+), 5 deletions(-)

--- a/arch/riscv/include/asm/cfi.h
+++ b/arch/riscv/include/asm/cfi.h
@@ -7,8 +7,9 @@
*
* Copyright (C) 2023 Google LLC
*/
+#include <linux/bug.h>

-#include <linux/cfi.h>
+struct pt_regs;

#ifdef CONFIG_CFI_CLANG
enum bug_trap_type handle_cfi_failure(struct pt_regs *regs);
--- a/arch/riscv/kernel/cfi.c
+++ b/arch/riscv/kernel/cfi.c
@@ -4,7 +4,7 @@
*
* Copyright (C) 2023 Google LLC
*/
-#include <asm/cfi.h>
+#include <linux/cfi.h>
#include <asm/insn.h>

/*
--- a/arch/x86/include/asm/cfi.h
+++ b/arch/x86/include/asm/cfi.h
@@ -7,8 +7,9 @@
*
* Copyright (C) 2022 Google LLC
*/
+#include <linux/bug.h>

-#include <linux/cfi.h>
+struct pt_regs;

#ifdef CONFIG_CFI_CLANG
enum bug_trap_type handle_cfi_failure(struct pt_regs *regs);
--- a/arch/x86/kernel/cfi.c
+++ b/arch/x86/kernel/cfi.c
@@ -4,10 +4,10 @@
*
* Copyright (C) 2022 Google LLC
*/
-#include <asm/cfi.h>
+#include <linux/string.h>
+#include <linux/cfi.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
-#include <linux/string.h>

/*
* Returns the target address and the expected type when regs->ip points
--- a/include/asm-generic/Kbuild
+++ b/include/asm-generic/Kbuild
@@ -11,6 +11,7 @@ mandatory-y += bitops.h
mandatory-y += bug.h
mandatory-y += bugs.h
mandatory-y += cacheflush.h
+mandatory-y += cfi.h
mandatory-y += checksum.h
mandatory-y += compat.h
mandatory-y += current.h
--- /dev/null
+++ b/include/asm-generic/cfi.h
@@ -0,0 +1,5 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_GENERIC_CFI_H
+#define __ASM_GENERIC_CFI_H
+
+#endif /* __ASM_GENERIC_CFI_H */
--- a/include/linux/cfi.h
+++ b/include/linux/cfi.h
@@ -9,6 +9,7 @@

#include <linux/bug.h>
#include <linux/module.h>
+#include <asm/cfi.h>

#ifdef CONFIG_CFI_CLANG
enum bug_trap_type report_cfi_failure(struct pt_regs *regs, unsigned long addr,



2023-12-04 19:18:52

by Sami Tolvanen

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] cfi: Flip headers

On Thu, Nov 30, 2023 at 5:43 AM Peter Zijlstra <[email protected]> wrote:
>
> Normal include order is that linux/foo.h should include asm/foo.h, CFI has it
> the wrong way around.
>
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> ---
> arch/riscv/include/asm/cfi.h | 3 ++-
> arch/riscv/kernel/cfi.c | 2 +-
> arch/x86/include/asm/cfi.h | 3 ++-
> arch/x86/kernel/cfi.c | 4 ++--
> include/asm-generic/Kbuild | 1 +
> include/asm-generic/cfi.h | 5 +++++
> include/linux/cfi.h | 1 +
> 7 files changed, 14 insertions(+), 5 deletions(-)

Looks good to me, thanks!

Reviewed-by: Sami Tolvanen <[email protected]>

Sami