MIPS: Octeon: Allow CVMSEG to be disabled
authorJiaxun Yang <jiaxun.yang@flygoat.com>
Tue, 4 Apr 2023 09:33:46 +0000 (10:33 +0100)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Wed, 5 Apr 2023 07:45:09 +0000 (09:45 +0200)
Don't include cvmseg states into thread_status when
CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE is not defined or 0.

Fix compile for kernel without this feature.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/include/asm/processor.h
arch/mips/kernel/asm-offsets.c

index 3fde1ff72bd167e8ce322a2a73dd5612c9b5423b..ae2cd37a38f05faf3578e599c1fa218835cc485a 100644 (file)
@@ -202,11 +202,13 @@ struct octeon_cop2_state {
 #define COP2_INIT                                              \
        .cp2                    = {0,},
 
+#if defined(CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE) && \
+       CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0
 struct octeon_cvmseg_state {
        unsigned long cvmseg[CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE]
                            [cpu_dcache_line_size() / sizeof(unsigned long)];
 };
-
+#endif
 #else
 #define COP2_INIT
 #endif
@@ -263,7 +265,10 @@ struct thread_struct {
        unsigned long trap_nr;
 #ifdef CONFIG_CPU_CAVIUM_OCTEON
        struct octeon_cop2_state cp2 __attribute__ ((__aligned__(128)));
+#if defined(CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE) && \
+       CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0
        struct octeon_cvmseg_state cvmseg __attribute__ ((__aligned__(128)));
+#endif
 #endif
        struct mips_abi *abi;
 };
index c4501897b870b76fda486b9c919bdaffbd39b353..40fd4051bb3d40380d70643dcc49b08c43cb9471 100644 (file)
@@ -306,7 +306,10 @@ void output_octeon_cop2_state_defines(void)
        OFFSET(OCTEON_CP2_HSH_IVW,      octeon_cop2_state, cop2_hsh_ivw);
        OFFSET(OCTEON_CP2_SHA3,         octeon_cop2_state, cop2_sha3);
        OFFSET(THREAD_CP2,      task_struct, thread.cp2);
+#if defined(CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE) && \
+    CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0
        OFFSET(THREAD_CVMSEG,   task_struct, thread.cvmseg.cvmseg);
+#endif
        BLANK();
 }
 #endif