Re: [PATCH v2] seqlock: Fix build errors

From: Xingxing Su
Date: Fri Aug 14 2020 - 06:30:27 EST


On 08/14/2020 04:35 PM, Peter Zijlstra wrote:

On Fri, Aug 14, 2020 at 12:12:38PM +0800, Xingxing Su wrote:
Fix the following build errors:

In file included from ./include/linux/time.h:6:0,
from ./include/linux/compat.h:10,
from arch/mips/kernel/asm-offsets.c:12:
./include/linux/seqlock.h: In function ‘write_seqcount_begin_nested’:
./include/linux/seqlock.h:286:2: error: implicit declaration of function
‘raw_smp_processor_id’ [-Werror=implicit-function-declaration]
lockdep_assert_preemption_disabled();
^
./arch/mips/include/asm/smp.h: At top level:
./arch/mips/include/asm/smp.h:28:19: error: static declaration of
‘raw_smp_processor_id’ follows non-static declaration
static inline int raw_smp_processor_id(void)
^
cc1: some warnings being treated as errors
scripts/Makefile.build:117: recipe for target 'arch/mips/kernel/asm-offsets.s' failed
make[1]: *** [arch/mips/kernel/asm-offsets.s] Error 1
arch/mips/Makefile:396: recipe for target 'archprepare' failed
make: *** [archprepare] Error 2

What kernel are you building?

Commit 0cd39f4600ed ("locking/seqlock, headers: Untangle the spaghetti monster")

should have solved that I think.

Signed-off-by: Xingxing Su <suxingxing@xxxxxxxxxxx>
---
v2: update the commit message

include/linux/seqlock.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
index 54bc204..4763c13 100644
--- a/include/linux/seqlock.h
+++ b/include/linux/seqlock.h
@@ -17,6 +17,7 @@
#include <linux/lockdep.h>
#include <linux/compiler.h>
#include <linux/kcsan-checks.h>
+#include <linux/smp.h>
#include <asm/processor.h>
Wrong place, it's lockdep_assert_preemption_disabled() that requires
asm/percpu.h, and thus lockdep.h should include linux/smp. before
asm/percpu.h

Thanks for your reply, I will check it.