On Tue, Dec 19, 2023 at 4:12 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Tue, Dec 19, 2023 at 01:57:06PM +0100, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > > > Pull the array of GPIO descriptors into struct gpio_device as a flexible > > array and use __counted_by() to control its size. > > How big is the struct gpio_device? Unifying like this might provoke subtle > errors on very fragmented memory, where k*alloc() might not find enough free > space. Note, k*alloc() guarantees finding only memory for a single page. > With PAGE_SIZE = 4k, this might be an issue. > > I would suggest, if nothing prevents us from switching, to use kvmalloc(). > That's a good point but there's another thing. We need to call gpiochip_get_ngpios() before the allocation. I need to revisit this one. Bart > -- > With Best Regards, > Andy Shevchenko > >