Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | Jean-Jacques Hiblot <> | Subject | [PATCH v10 1/5] devres: provide devm_krealloc_array() | Date | Sat, 24 Jun 2023 10:42:13 +0200 |
| |
Implement the managed variant of krealloc_array(). This internally uses devm_krealloc() and as such is usable 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: Jean-Jacques Hiblot <jjhiblot@traphandler.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> --- include/linux/device.h | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/include/linux/device.h b/include/linux/device.h index 472dd24d4823..e45dc78068b7 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -223,6 +223,19 @@ static inline void *devm_kcalloc(struct device *dev, { return devm_kmalloc_array(dev, n, size, flags | __GFP_ZERO); } +static inline void *devm_krealloc_array(struct device *dev, + void *p, + size_t new_n, + size_t new_size, + gfp_t flags) +{ + size_t bytes; + + if (unlikely(check_mul_overflow(new_n, new_size, &bytes))) + return NULL; + + return devm_krealloc(dev, p, bytes, flags); +} void devm_kfree(struct device *dev, const void *p); char *devm_kstrdup(struct device *dev, const char *s, gfp_t gfp) __malloc; const char *devm_kstrdup_const(struct device *dev, const char *s, gfp_t gfp); -- 2.34.1
| ![\](/images/icornerr.gif) |