On Tuesday 01 September 2015 17:10:10 Palmer Dabbelt wrote: > From: Palmer Dabbelt <palmer.dabbelt@xxxxxxxxxxxxxxxxx> > > When working on the RISC-V port I noticed that F_SETLK64 was being > defined on our 64-bit platform, despite our port being so new that > we've only ever had the 64-bit file ops. Since there's not compat > layer for these, this causes fcntl to bail out. > > It turns out that one of the ways in with F_SETLK64 was being defined > (there's some more in glibc, but that's a whole different story... :)) > is the result of CONFIG_64BIT showing up in this user-visible header. > <asm-generic/bitsperlong.h> confirms this isn't sane, so I replaced it > with a __BITS_PER_LONG check. > > I went ahead and grep'd for any more of these (with > headers_install_all), and this was the only one I found. > > Signed-off-by: Palmer Dabbelt <palmer.dabbelt@xxxxxxxxxxxxxxxxx> > Reviewed-by: Andrew Waterman <waterman@xxxxxxxxxxxxxxxxx> > Reviewed-by: Albert Ou <aou@xxxxxxxxxxxxxxxxx> Looks good to me. Are you planning to submit the RISC-V port upstream any time soon? If so, just keep the patch in your tree and add my Acked-by: Arnd Bergmann <arnd@xxxxxxxx> However, I did see a lot of similar bugs now that you point me to it: $ grep -r \\\<CONFIG obj-tmp/usr/include/ obj-tmp/usr/include/asm-generic/fcntl.h:#ifndef CONFIG_64BIT obj-tmp/usr/include/asm-generic/mman-common.h:#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED obj-tmp/usr/include/asm-generic/unistd.h:#ifdef CONFIG_MMU obj-tmp/usr/include/asm-generic/unistd.h:#endif /* CONFIG_MMU */ obj-tmp/usr/include/linux/atmdev.h:#ifdef CONFIG_COMPAT obj-tmp/usr/include/linux/elfcore.h:#ifdef CONFIG_BINFMT_ELF_FDPIC obj-tmp/usr/include/linux/eventpoll.h:#ifdef CONFIG_PM_SLEEP obj-tmp/usr/include/linux/fb.h:#ifdef CONFIG_FB_BACKLIGHT obj-tmp/usr/include/linux/flat.h:#ifdef CONFIG_BINFMT_SHARED_FLAT obj-tmp/usr/include/linux/hw_breakpoint.h:#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS obj-tmp/usr/include/linux/pktcdvd.h:#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) obj-tmp/usr/include/linux/raw.h:#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS obj-tmp/usr/include/asm/ptrace.h:#ifdef CONFIG_CPU_ENDIAN_BE8 These all have the same problem, and we should fix them, as well as (probably) adding an automated check to scripts/headers_install.sh. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html