[PATCH RESEND] lockdep: Move list.h inclusion into lockdep.h

From: Herbert Xu
Date: Mon Jul 06 2020 - 23:43:07 EST


On Thu, Jun 18, 2020 at 04:37:35PM +0200, Peter Zijlstra wrote:
>
> OK, done. tip/locking/header should contain just this patch, and that
> branch also got merged into tip/locking/core.

Hi Peter:

Could you please apply this patch on top as there is still a header
loop otherwise? Thanks!

---8<---
Currently lockdep_types.h includes list.h without actually using any
of its macros or functions. All it needs are the type definitions
which were moved into types.h long ago. This potentially causes
inclusion loops because both are included by many core header
files.

This patch moves the list.h inclusion into lockdep.h. Note that
we could probably remove it completely but that could potentially
result in compile failures should any end users not include list.h
directly and also be unlucky enough to not get list.h via some other
header file.

Reported-by: Petr Mladek <pmladek@xxxxxxxx>
Tested-by: Petr Mladek <pmladek@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 3b73cf84f77d..b1ad5c045353 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -21,6 +21,7 @@ extern int lock_stat;
#ifdef CONFIG_LOCKDEP

#include <linux/linkage.h>
+#include <linux/list.h>
#include <linux/debug_locks.h>
#include <linux/stacktrace.h>

diff --git a/include/linux/lockdep_types.h b/include/linux/lockdep_types.h
index 7b9350624577..bb35b449f533 100644
--- a/include/linux/lockdep_types.h
+++ b/include/linux/lockdep_types.h
@@ -32,8 +32,6 @@ enum lockdep_wait_type {

#ifdef CONFIG_LOCKDEP

-#include <linux/list.h>
-
/*
* We'd rather not expose kernel/lockdep_states.h this wide, but we do need
* the total number of states... :-(
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt