On Fri, Nov 2, 2018 at 11:55 AM Souptick Joarder <jrdr.linux@xxxxxxxxx> wrote: > We run the static analyser "make includecheck" which list out files where > duplicate headers can be removed and based on that we thought to remove > from this file. Didn't understood about the existence of second include ?? #define ____xchg(type, args...) __xchg ## type ## _local(args) #define ____cmpxchg(type, args...) __cmpxchg ## type ## _local(args) #include <asm/xchg.h> [snip] #undef ____xchg #undef ____cmpxchg #define ____xchg(type, args...) __xchg ##type(args) #define ____cmpxchg(type, args...) __cmpxchg ##type(args) #include <asm/xchg.h> asm/xchg.h has a comment at the top that says /* * xchg/xchg_local and cmpxchg/cmpxchg_local share the same code * except that local version do not have the expensive memory barrier. * So this file is included twice from asm/cmpxchg.h. */