On Thu, Aug 20, 2020 at 08:51:08PM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > Implement the managed variant of krealloc(). This function works with > all memory allocated by devm_kmalloc() (or devres functions using it > implicitly like devm_kmemdup(), devm_kstrdup() etc.). > > Managed realloc'ed chunks can be manually released with devm_kfree(). > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> ... > +static struct devres *to_devres(void *data) > +{ > + return data - ALIGN(sizeof(struct devres), ARCH_KMALLOC_MINALIGN); > +} > + > +static size_t devres_data_size(size_t total_size) > +{ > + return total_size - ALIGN(sizeof(struct devres), ARCH_KMALLOC_MINALIGN); > +} I'm fine with above, but here is a side note, perhaps offsetof(struct devres, data) will be more practical (no duplication of alignment and hence slightly better maintenance)? (Note, I didn't check if it provides the correct result) Another side note: do we have existing users of these helpers? -- With Best Regards, Andy Shevchenko