Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1248085

Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace

From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace
Date 2015-10-15 21:00 +0200
Message-ID <qjVUS-6LD-19@gated-at.bofh.it> (permalink)
References <qjJK1-5GL-5@gated-at.bofh.it> <qjUP8-54K-9@gated-at.bofh.it> <qjVBw-6l0-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thursday 15 October 2015 20:32:45 Miklos Szeredi wrote:
> > In my other patches I got review comments that kernel headers should not
> > use <stdint.h> and also Documentation/CodingStyle section 5 says:
> >
> >  (e) Types safe for use in userspace.
> >
> >      In certain structures which are visible to userspace, we cannot
> >      require C99 types and cannot use the 'u32' form above. Thus, we
> >      use __u32 and similar types in all structures which are shared
> >      with userspace.
> 
> Ok, if you cannot require C99, then the __uXX types are the way to go.
> But for the fuse API we *can* use C99 types, nothing preventing us
> from doing it.

What the sentence above means is that you should not rely on the
user including <stdint.h> before including a kernel header, and
that kernel headers are not allowed to include <stdint.h> themselves,
because that would break any pre-C99 user space that defines types
with the same names in their own headers and that relies on that
header not to be included implicitly.

It's possible that it has never been a problem for the fuse headers,
but it has been a problem for other headers in the past and what
Mikko is trying to achieve is to ensure that none of the kernel
headers do this so we can make it an error in 'make headers_install'.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v4 00/79] Userspace compile test and fixes for exported uapi header files Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 42/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
    Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Alex Deucher <alexdeucher@gmail.com> - 2015-10-15 15:40 +0200
      Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from  linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 15:50 +0200
  [PATCH v4 26/79] scsi_netlink.h: use __u8, __u16 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 12/79] include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 40/79] include/uapi/linux/if_tunnel.h: include linux/if.h, linux/ip.h and linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 03/79] drm.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
    Re: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test script for exported headers Alexander Stein <alexander.stein@systec-electronic.com> - 2015-10-15 09:20 +0200
      Re: [PATCH v4 02/79] scripts/headers_compile_test.sh: compile test  script for exported headers Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:30 +0200
  [PATCH v4 36/79] include/uapi/asm-generic/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 38/79] include/uapi/linux/rds.h: include linux/socket.h and linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
    Re: [PATCH v4 38/79] include/uapi/linux/rds.h: include  linux/socket.h and linux/types.h Sowmini Varadhan <sowmini.varadhan@oracle.com> - 2015-10-15 13:20 +0200
  [PATCH v4 08/79] r128_drm.h: include drm/drm.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
    Re: [PATCH v4 08/79] r128_drm.h: include drm/drm.h Daniel Vetter <daniel@ffwll.ch> - 2015-10-15 09:50 +0200
  [PATCH v4 27/79] scsi_netlink_fc.h: use __u16, __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 39/79] include/uapi/linux/if_pppox.h: include linux/if.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:00 +0200
  [PATCH v4 48/79] include/uapi/linux/mqueue.h: include linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 32/79] include/uapi/asm-generic/ipcbuf.h: include linux/posix_types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 49/79] include/uapi/linux/mroute.h: include linux/in.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 44/79] include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
    Re: [Xen-devel] [PATCH v4 30/79] gntdev.h: use __u32 and __u64 from  linux/types.h David Vrabel <david.vrabel@citrix.com> - 2015-10-15 13:00 +0200
  [PATCH v4 24/79] sctp.h: use __u8 and __u32 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 20/79] include/uapi/linux/hsi/cs-protocol.h: include linux/time.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 21/79] ebtables.h: use __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 31/79] include/uapi/linux/sysctl.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 34/79] include/uapi/asm-generic/shmbuf.h: include fixes Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 33/79] include/uapi/asm-generic/msgbuf.h: include asm/ipcbuf.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
    Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64  from linux/types.h Sowmini Varadhan <sowmini.varadhan@oracle.com> - 2015-10-15 13:10 +0200
      Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64  from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-16 00:10 +0200
        Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64  from linux/types.h Sowmini Varadhan <sowmini.varadhan@oracle.com> - 2015-10-16 00:30 +0200
          Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64  from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-16 00:40 +0200
            Re: [PATCH v4 23/79] rds.h: use __u8, __u16, __s16, __u32 and __s64  from linux/types.h Sowmini Varadhan <sowmini.varadhan@oracle.com> - 2015-10-16 01:10 +0200
  [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
    Re: [PATCH v4 28/79] hdspm.h: use __u8, __u32 and __u64 from linux/types.h instead of stdint.h Takashi Iwai <tiwai@suse.de> - 2015-10-15 10:10 +0200
  [PATCH v4 25/79] scsi_bsg_fc.h: use __u8, __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 19/79] hsi_char.h: use __u32 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 46/79] include/uapi/linux/packet_diag.h: include linux/netdevice.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 47/79] include/uapi/linux/llc.h: include linux/if.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 37/79] include/uapi/linux/socket.h: include sys/socket.h in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 43/79] include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 35/79] asm-generic/sembuf.h: include asm/posix_types.h and asm/ipcbuf.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 41/79] include/uapi/linux/ipv6_route.h: include linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
  [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
    Re: [PATCH v4 17/79] include/uapi/sound/emu10k1.h: added EMU10K1 version of DECLARE_BITMAP macro Takashi Iwai <tiwai@suse.de> - 2015-10-15 10:10 +0200
  [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:10 +0200
    Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64  from linux/types.h Mike Snitzer <snitzer@redhat.com> - 2015-10-15 10:20 +0200
      Re: [PATCH v4 18/79] dm-log-userspace.h: use __u32, __s32 and __u64  from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 20:00 +0200
  [PATCH v4 06/79] nouveau_drm.h: use __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
    Re: [PATCH v4 13/79] drm/i810_drm.h: include drm/drm.h Daniel Vetter <daniel@ffwll.ch> - 2015-10-15 09:50 +0200
  [PATCH v4 14/79] include/uapi/drm/vmwgfx_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 15/79] include/uapi/drm/qxl_drm.h: use __s32, __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 10/79] via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 11/79] savage_drm.h: include <drm/drm.h> Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
    Re: [PATCH v4 11/79] savage_drm.h: include <drm/drm.h> Daniel Vetter <daniel@ffwll.ch> - 2015-10-15 08:50 +0200
  [PATCH v4 07/79] radeon_drm.h: use __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 09/79] via_drm.h: don't include non-existing via_drmclient.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 16/79] include/uapi/linux/agpgart.h: include stdlib.h in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
  [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:20 +0200
    Re: [PATCH v4 05/79] exynos_drm.h: use __u64 from linux/types.h Gustavo Padovan <gustavo@padovan.org> - 2015-10-15 18:20 +0200
  [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
    Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation  in userspace David Vrabel <david.vrabel@citrix.com> - 2015-10-15 12:30 +0200
      Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in  userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 13:20 +0200
        Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation  in userspace David Vrabel <david.vrabel@citrix.com> - 2015-10-15 13:30 +0200
          Re: [PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in  userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 13:40 +0200
  [PATCH v4 68/79] arch/x86/include/uapi/asm/sembuf.h: include linux/types.h and linux/ipc.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 62/79] include/uapi/linux/btrfs.h: define NULL Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 63/79] include/uapi/linux/kexec.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 53/79] include/uapi/linux/errqueue.h: include linux/time.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 78/79] include/uapi/linux/errqueue.h: include time.h in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 76/79] coda_psdev.h: move upc_req definition from uapi to kernel side headers Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:30 +0200
  [PATCH v4 55/79] arch/x86/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 52/79] include/uapi/netfilter/*.h: fix include files for compilation Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 77/79] include/uapi/linux/elfcore.h: remove non-compiling userspace parts Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 51/79] include/uapi/linux/ip6_tunnel.h: include linux/if.h and linux/in6.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 66/79] include/uapi/linux/coda.h: use __kernel_pid_t and add u_short etc definitions for userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 69/79] include/uapi/linux/dvb/video.h: remove stdint.h include Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 67/79] include/uapi/linux/android/binder.h: use __kernel_pid_t and __kernel_uid_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 56/79] include/uapi/linux/auto_fs.h: include linux/limits.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 65/79] include/uapi/linux/patchkey.h: change #error to #warning if file included directly Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:40 +0200
  [PATCH v4 59/79] include/uapi/linux/omapfb.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 50/79] include/uapi/linux/dlm_netlink.h: include linux/dlmconstants.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 79/79] arch/arm/include/uapi/asm/signal.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 60/79] include/uapi/linux/atm_zatm.h: include linux/time.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
    Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h  also in userspace Miklos Szeredi <miklos@szeredi.hu> - 2015-10-15 17:30 +0200
      Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h  also in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 19:50 +0200
        Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h  also in userspace Miklos Szeredi <miklos@szeredi.hu> - 2015-10-15 20:40 +0200
          Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace Arnd Bergmann <arnd@arndb.de> - 2015-10-15 21:00 +0200
            Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h  also in userspace Miklos Szeredi <miklos@szeredi.hu> - 2015-10-15 21:30 +0200
              Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h  also in userspace Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 23:10 +0200
  [PATCH v4 61/79] include/uapi/linux/scc.h: include linux/sockios.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 57/79] include/uapi/linux/openvswitch.h: use __u32 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 58/79] include/uapi/linux/target_core_user.h: use __u8, __u16, __u32 and __u64 from linux/types.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 70/79] include/uapi/mtd/mtd-user.h: remove stdint.h include Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 08:50 +0200
  [PATCH v4 54/79] include/uapi/asm-generic/ucontext.h: include asm/signal.h and asm/sigcontext.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:00 +0200
  [PATCH v4 64/79] include/uapi/linux/reiserfs_xattr.h: use __kernel_size_t instead of size_t Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:00 +0200
  [PATCH v4 72/79] include/linux/ipmi-fru.h: use linux/types.h instead of stdint.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:00 +0200
  [PATCH v4 74/79] include/linux/xz.h: use linux/types.h types instead of stdint.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:10 +0200
  [PATCH v4 73/79] include/linux/sdb.h: use linux/types.h types instead of stdint.h Mikko Rapeli <mikko.rapeli@iki.fi> - 2015-10-15 09:10 +0200

csiph-web