[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210611033929.ifnafw2gznjklnq2@vireshk-i7>
Date: Fri, 11 Jun 2021 09:09:29 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Jean-Philippe Brucker <jean-philippe@...aro.org>
Cc: Bartosz Golaszewski <bgolaszewski@...libre.com>,
Linus Walleij <linus.walleij@...aro.org>,
"Enrico Weigelt, metux IT consult" <info@...ux.net>,
Viresh Kumar <vireshk@...nel.org>,
"Michael S. Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>, linux-kernel@...r.kernel.org,
virtualization@...ts.linux-foundation.org,
linux-gpio@...r.kernel.org, Stefan Hajnoczi <stefanha@...hat.com>,
"Stefano Garzarella --cc virtualization @ lists . linux-foundation . org"
<sgarzare@...hat.com>, stratos-dev@...lists.linaro.org
Subject: Re: [PATCH V3 1/3] gpio: Add virtio-gpio driver
On 10-06-21, 19:40, Jean-Philippe Brucker wrote:
> On Thu, Jun 10, 2021 at 12:16:46PM +0000, Viresh Kumar via Stratos-dev wrote:
Fixed everything else you suggested.
> > +struct virtio_gpio_config {
> > + char name[32];
> > + __u16 ngpio;
> > + __u16 padding;
> > + __u32 gpio_names_size;
> > + char gpio_names[0];
>
> A variable-size array here will make it very difficult to append new
> fields to virtio_gpio_config, when adding new features to the device. (New
> fields cannot be inserted in between, since older drivers will expect
> existing fields at a specific offset.)
Yes, I thought about that earlier and though maybe we will be able to
play with that using the virtio-features, I mean a different layout of
config structure if we really need to add a field in config, based on
the feature flag.
> You could replace it with a reference to the string array, for example
> "__u16 gpio_names_offset" declaring the offset between the beginning of
> device-specific config and the string array.
But, I like this idea more and it does make it very flexible. Will
adapt to it.
> The 'name' field could also be indirect to avoid setting a fixed
> 32-char size, but that's not as important.
Yeah, 32 bytes is really enough. One won't be able to make any sense
out of a bigger name anyway :)
> > +} __packed;
>
> No need for __packed, because the fields are naturally aligned (as
> required by the virtio spec)
Yeah, I know, but I tend to add that for structures which aren't very
simple (like the request/response ones), just to avoid human errors
and hours of debugging someone need to go through. __packed won't harm
at least :)
--
viresh
Powered by blists - more mailing lists