Re: [PATCH 8/8] virtio_ring.h: do not include <stdint.h> from exported header

From: Christoph Hellwig
Date: Tue Apr 05 2022 - 03:01:47 EST


On Tue, Apr 05, 2022 at 08:29:36AM +0200, Arnd Bergmann wrote:
> I think the users all have their own copies, at least the ones I could
> find on codesearch.debian.org. However, there are 27 virtio_*.h
> files in include/uapi/linux that probably should stay together for
> the purpose of defining the virtio protocol, and some others might
> be uapi relevant.
>
> I see that at least include/uapi/linux/vhost.h has ioctl() definitions
> in it, and includes the virtio_ring.h header indirectly.

Uhh. We had a somilar mess (but at a smaller scale) in nvme, where
the uapi nvme.h contained both the UAPI and the protocol definition.
We took a hard break to only have a nvme_ioctl.h in the uapi header
and linux/nvme.h for the protocol. This did break a bit of userspace
compilation (but not running obviously) at the time, but really made
the headers much easier to main. Some userspace keeps on copying
nvme.h with the protocol definitions.