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


Groups > linux.kernel > #1252917

Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h

From Emil Velikov <emil.l.velikov@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h
Date 2015-10-21 17:10 +0200
Message-ID <qm3bz-6Fw-1@gated-at.bofh.it> (permalink)
References <qjJK1-5GL-5@gated-at.bofh.it> <qjJK2-5GL-17@gated-at.bofh.it> <qjQVb-7Re-9@gated-at.bofh.it> <qjR4T-83D-27@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi Alex,

On 15 October 2015 at 14:48, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
> On Thu, Oct 15, 2015 at 09:32:10AM -0400, Alex Deucher wrote:
>> On Thu, Oct 15, 2015 at 1:55 AM, Mikko Rapeli <mikko.rapeli@iki.fi> wrote:
>> > Fixes userspace compilation error:
>> >
>> > drm/drm_mode.h:472:2: error: unknown type name ‘uint32_t’
>> >
>> > Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi>
>>
>> NACK on all these type conversions.  This has not been a problem for
>> years and years and the result looks terrible.
>
> Documentation/CodingStyle, section 5
>
>  (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.
>
> I have only been looking at kernel headers from userspace occationally in
> the past 10 years and had a several cases where the provided headers did
> not compile when included into trivial programs trying to use the structs
> for an ioctl() for example. This long lasting problem triggered me to write
> a test for this and provide these fixes too. In previous reviews usage
> of <stdint.h> and its types in kernel headers was already NACK'ed
> so I changed several places from uint32_t's to __u32.
>
> With these changes it is btw trivial now to add a grep test the there
> are no uint32_t's in include/uapi/ anymore, thus enforcing that coding style
> rule.
>
Based of the reply from Mikko, can you please elaborate your concern ?
Are you thinking about some corner case where this may cause breakage,
or it's solely on stylistic point of view ?

Over the last few years we've been doing some ad-hoc 'synchronisation'
with the headers in libdrm, and this will get us one step closer to
doing things properly.

Fwiw I fully support these changes, as does Gustavo for exynos and Rob for msm.
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>

Thanks
Emil
--
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 | Next — Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Emil Velikov <emil.l.velikov@gmail.com> - 2015-10-21 17:10 +0200
  Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Alex Deucher <alexdeucher@gmail.com> - 2015-10-21 17:20 +0200
    Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Alex Deucher <alexdeucher@gmail.com> - 2015-10-21 18:30 +0200
      Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Emil Velikov <emil.l.velikov@gmail.com> - 2015-10-21 19:50 +0200
    Re: [PATCH v4 04/79] drm_mode.h: use __u32 and __u64 from linux/types.h Emil Velikov <emil.l.velikov@gmail.com> - 2015-10-21 18:30 +0200

csiph-web