On Sat, Nov 21, 2020 at 6:52 PM Jakub Kicinski <k...@kernel.org> wrote: > > We're about to do some reshuffling in networking headers and make > some of the file lose the implicit includes. This results in: > > In file included from net/ipv4/netfilter/arp_tables.c:26: > include/net/compat.h:57:23: error: conflicting types for ‘uintptr_t’ > #define compat_uptr_t uintptr_t > ^~~~~~~~~ > include/asm-generic/compat.h:22:13: note: in expansion of macro > ‘compat_uptr_t’ > typedef u32 compat_uptr_t; > ^~~~~~~~~~~~~ > In file included from include/linux/limits.h:6, > from include/linux/kernel.h:7, > from net/ipv4/netfilter/arp_tables.c:14: > include/linux/types.h:37:24: note: previous declaration of ‘uintptr_t’ was > here > typedef unsigned long uintptr_t; > ^~~~~~~~~ > > Currently net/compat.h depends on linux/compat.h being included > first. After the upcoming changes this would break the 32bit build. > > Signed-off-by: Jakub Kicinski <k...@kernel.org> > --- > Not sure who officially maintains this. Arnd, Christoph any objections?
Looks good to me. I would actually go one step further and completely remove this #ifdef, if possible. In the old days, it was not possible to include linux/compat.h on 32-bit architectures, but now this should just work without an #ifdef. Arnd