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(). -- With Best Regards, Andy Shevchenko