• Mark Brown's avatar
    arm64: cmpxchg: Don't incldue linux/mmdebug.h · 4a6ccf30
    Mark Brown authored
    The arm64 asm/cmpxchg.h includes linux/mmdebug.h but doesn't so far as I
    can tell actually use anything from it.  Removing the inclusion reduces
    spurious header dependency rebuilds and also avoids issues with
    recursive inclusions of headers causing build breaks due to attempts to
    use things before they are defined if linux/mmdebug.h starts pulling in
    more low level headers.
    
    Such errors have happened in -next recently, for example:
    
    In file included from include/linux/completion.h:11:0,
                     from include/linux/rcupdate.h:43,
                     from include/linux/tracepoint.h:19,
                     from include/linux/mmdebug.h:6,
                     from ./arch/arm64/include/asm/cmpxchg.h:22,
                     from ./arch/arm64/include/asm/atomic.h:41,
                     from include/linux/atomic.h:4,
                     from include/linux/spinlock.h:406,
                     from include/linux/seqlock.h:35,
                     from include/linux/time.h:5,
                     from include/uapi/linux/timex.h:56,
                     from include/linux/timex.h:56,
                     from include/linux/sched.h:19,
                     from arch/arm64/kernel/asm-offsets.c:21:
    include/linux/wait.h: In function 'wait_on_atomic_t':
    include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
     if (atomic_read(val) == 0)
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    4a6ccf30
cmpxchg.h 6.65 KB