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

From: Arnd Bergmann
Date: Mon Apr 04 2022 - 04:04:25 EST


On Mon, Apr 4, 2022 at 9:44 AM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> On Mon, Apr 04, 2022 at 03:19:48PM +0900, Masahiro Yamada wrote:
> > vr->num = num;
> > vr->desc = p;
> > vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
> > - vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
> > + vr->used = (void *)(((__kernel_uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
> > + align-1) & ~(align - 1));
>
> This really does not look like it should be in a uapi header to start
> with.

The header is shared between kernel and other projects using virtio, such as
qemu and any boot loaders booting from virtio devices. It's not technically a
/kernel/ ABI, but it is an ABI and for practical reasons the kernel version is
maintained as the master copy if I understand it correctly.

Arnd