Re: [PATCH V6] gpio: virtio: Add IRQ support

From: Arnd Bergmann
Date: Thu Oct 21 2021 - 06:48:04 EST


On Thu, Oct 21, 2021 at 11:58 AM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
> On Thu, Oct 21, 2021 at 12:52 PM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> > On 21-10-21, 12:42, Andy Shevchenko wrote:
> > > On Thu, Oct 21, 2021 at 7:34 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> > > > On 20-10-21, 18:10, Andy Shevchenko wrote:
> >
> > > If there is a possibility to have 32-bit to 64-bit or vice versa
> > > communication you have a problem.
> >
> > This should work as well.
> >
> > The structure will get aligned to the size of largest element and each
> > element will be aligned to itself. I don't see how this will break
> > even in case of 32/64 bit communication.
>
> I admit I haven't looked into the specification, but in the past we
> had had quite an issue exactly in GPIO on kernel side because of this
> kind of design mistake. The problem here if in the future one wants to
> supply more than one item at a time, it will be not possible with this
> interface. Yes, I understand that in current design it's rather missed
> scalability, but hey, I believe in the future we may need
> performance-wise calls.

In my experience, adding __packed to structures causes more problems
than it solves, please don't do that.

The rules for the virtio structures should be roughly the same that I
documented in Documentation/driver-api/ioctl.rst, and the layout that
Viresh has picked does not suffer from any of the common issues
that are listed there.

Arnd