All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] slab: provide and use krealloc_array()
@ 2020-11-09 11:06 ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Andy brought to my attention the fact that users allocating an array of
equally sized elements should check if the size multiplication doesn't
overflow. This is why we have helpers like kmalloc_array().

However we don't have krealloc_array() equivalent and there are many
users who do their own multiplication when calling krealloc() for arrays.

This series provides krealloc_array() and uses it in a couple places.

A separate series will follow adding devm_krealloc_array() which is
needed in the xilinx adc driver.

v1 -> v2:
- added a kernel doc for krealloc_array()
- mentioned krealloc et al in the docs
- collected review tags

v2 -> v3:
- add a patch improving krealloc()'s kerneldoc
- fix a typo
- improve .rst doc
- tweak line breaks

Bartosz Golaszewski (9):
  mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
  mm: slab: provide krealloc_array()
  ALSA: pcm: use krealloc_array()
  vhost: vringh: use krealloc_array()
  pinctrl: use krealloc_array()
  edac: ghes: use krealloc_array()
  drm: atomic: use krealloc_array()
  hwtracing: intel: use krealloc_array()
  dma-buf: use krealloc_array()

 Documentation/core-api/memory-allocation.rst |  4 ++++
 drivers/dma-buf/sync_file.c                  |  3 +--
 drivers/edac/ghes_edac.c                     |  4 ++--
 drivers/gpu/drm/drm_atomic.c                 |  3 ++-
 drivers/hwtracing/intel_th/msu.c             |  2 +-
 drivers/pinctrl/pinctrl-utils.c              |  2 +-
 drivers/vhost/vringh.c                       |  3 ++-
 include/linux/slab.h                         | 18 ++++++++++++++++++
 mm/slab_common.c                             |  6 +++---
 sound/core/pcm_lib.c                         |  4 ++--
 10 files changed, 36 insertions(+), 13 deletions(-)

-- 
2.29.1


^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH v3 0/9] slab: provide and use krealloc_array()
@ 2020-11-09 11:06 ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Andy brought to my attention the fact that users allocating an array of
equally sized elements should check if the size multiplication doesn't
overflow. This is why we have helpers like kmalloc_array().

However we don't have krealloc_array() equivalent and there are many
users who do their own multiplication when calling krealloc() for arrays.

This series provides krealloc_array() and uses it in a couple places.

A separate series will follow adding devm_krealloc_array() which is
needed in the xilinx adc driver.

v1 -> v2:
- added a kernel doc for krealloc_array()
- mentioned krealloc et al in the docs
- collected review tags

v2 -> v3:
- add a patch improving krealloc()'s kerneldoc
- fix a typo
- improve .rst doc
- tweak line breaks

Bartosz Golaszewski (9):
  mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
  mm: slab: provide krealloc_array()
  ALSA: pcm: use krealloc_array()
  vhost: vringh: use krealloc_array()
  pinctrl: use krealloc_array()
  edac: ghes: use krealloc_array()
  drm: atomic: use krealloc_array()
  hwtracing: intel: use krealloc_array()
  dma-buf: use krealloc_array()

 Documentation/core-api/memory-allocation.rst |  4 ++++
 drivers/dma-buf/sync_file.c                  |  3 +--
 drivers/edac/ghes_edac.c                     |  4 ++--
 drivers/gpu/drm/drm_atomic.c                 |  3 ++-
 drivers/hwtracing/intel_th/msu.c             |  2 +-
 drivers/pinctrl/pinctrl-utils.c              |  2 +-
 drivers/vhost/vringh.c                       |  3 ++-
 include/linux/slab.h                         | 18 ++++++++++++++++++
 mm/slab_common.c                             |  6 +++---
 sound/core/pcm_lib.c                         |  4 ++--
 10 files changed, 36 insertions(+), 13 deletions(-)

-- 
2.29.1


^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH v3 0/9] slab: provide and use krealloc_array()
@ 2020-11-09 11:06 ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Andy brought to my attention the fact that users allocating an array of
equally sized elements should check if the size multiplication doesn't
overflow. This is why we have helpers like kmalloc_array().

However we don't have krealloc_array() equivalent and there are many
users who do their own multiplication when calling krealloc() for arrays.

This series provides krealloc_array() and uses it in a couple places.

A separate series will follow adding devm_krealloc_array() which is
needed in the xilinx adc driver.

v1 -> v2:
- added a kernel doc for krealloc_array()
- mentioned krealloc et al in the docs
- collected review tags

v2 -> v3:
- add a patch improving krealloc()'s kerneldoc
- fix a typo
- improve .rst doc
- tweak line breaks

Bartosz Golaszewski (9):
  mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
  mm: slab: provide krealloc_array()
  ALSA: pcm: use krealloc_array()
  vhost: vringh: use krealloc_array()
  pinctrl: use krealloc_array()
  edac: ghes: use krealloc_array()
  drm: atomic: use krealloc_array()
  hwtracing: intel: use krealloc_array()
  dma-buf: use krealloc_array()

 Documentation/core-api/memory-allocation.rst |  4 ++++
 drivers/dma-buf/sync_file.c                  |  3 +--
 drivers/edac/ghes_edac.c                     |  4 ++--
 drivers/gpu/drm/drm_atomic.c                 |  3 ++-
 drivers/hwtracing/intel_th/msu.c             |  2 +-
 drivers/pinctrl/pinctrl-utils.c              |  2 +-
 drivers/vhost/vringh.c                       |  3 ++-
 include/linux/slab.h                         | 18 ++++++++++++++++++
 mm/slab_common.c                             |  6 +++---
 sound/core/pcm_lib.c                         |  4 ++--
 10 files changed, 36 insertions(+), 13 deletions(-)

-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH v3 1/9] mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

__GFP_ZERO is ignored by krealloc() (unless we fall-back to kmalloc()
path, in which case it's honored). Point that out in the kerneldoc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 mm/slab_common.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/slab_common.c b/mm/slab_common.c
index f9ccd5dc13f3..d6df73f79204 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1091,9 +1091,9 @@ static __always_inline void *__do_krealloc(const void *p, size_t new_size,
  * @flags: the type of memory to allocate.
  *
  * The contents of the object pointed to are preserved up to the
- * lesser of the new and old sizes.  If @p is %NULL, krealloc()
- * behaves exactly like kmalloc().  If @new_size is 0 and @p is not a
- * %NULL pointer, the object pointed to is freed.
+ * lesser of the new and old sizes (__GFP_ZERO flag is effectively ignored).
+ * If @p is %NULL, krealloc() behaves exactly like kmalloc().  If @new_size
+ * is 0 and @p is not a %NULL pointer, the object pointed to is freed.
  *
  * Return: pointer to the allocated memory or %NULL in case of error
  */
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 1/9] mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

__GFP_ZERO is ignored by krealloc() (unless we fall-back to kmalloc()
path, in which case it's honored). Point that out in the kerneldoc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 mm/slab_common.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/slab_common.c b/mm/slab_common.c
index f9ccd5dc13f3..d6df73f79204 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1091,9 +1091,9 @@ static __always_inline void *__do_krealloc(const void *p, size_t new_size,
  * @flags: the type of memory to allocate.
  *
  * The contents of the object pointed to are preserved up to the
- * lesser of the new and old sizes.  If @p is %NULL, krealloc()
- * behaves exactly like kmalloc().  If @new_size is 0 and @p is not a
- * %NULL pointer, the object pointed to is freed.
+ * lesser of the new and old sizes (__GFP_ZERO flag is effectively ignored).
+ * If @p is %NULL, krealloc() behaves exactly like kmalloc().  If @new_size
+ * is 0 and @p is not a %NULL pointer, the object pointed to is freed.
  *
  * Return: pointer to the allocated memory or %NULL in case of error
  */
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 1/9] mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

__GFP_ZERO is ignored by krealloc() (unless we fall-back to kmalloc()
path, in which case it's honored). Point that out in the kerneldoc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 mm/slab_common.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/slab_common.c b/mm/slab_common.c
index f9ccd5dc13f3..d6df73f79204 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1091,9 +1091,9 @@ static __always_inline void *__do_krealloc(const void *p, size_t new_size,
  * @flags: the type of memory to allocate.
  *
  * The contents of the object pointed to are preserved up to the
- * lesser of the new and old sizes.  If @p is %NULL, krealloc()
- * behaves exactly like kmalloc().  If @new_size is 0 and @p is not a
- * %NULL pointer, the object pointed to is freed.
+ * lesser of the new and old sizes (__GFP_ZERO flag is effectively ignored).
+ * If @p is %NULL, krealloc() behaves exactly like kmalloc().  If @new_size
+ * is 0 and @p is not a %NULL pointer, the object pointed to is freed.
  *
  * Return: pointer to the allocated memory or %NULL in case of error
  */
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 2/9] mm: slab: provide krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski, Vlastimil Babka

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

When allocating an array of elements, users should check for
multiplication overflow or preferably use one of the provided helpers
like: kmalloc_array().

There's no krealloc_array() counterpart but there are many users who use
regular krealloc() to reallocate arrays. Let's provide an actual
krealloc_array() implementation.

While at it: add some documentation regarding krealloc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
---
 Documentation/core-api/memory-allocation.rst |  4 ++++
 include/linux/slab.h                         | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/Documentation/core-api/memory-allocation.rst b/Documentation/core-api/memory-allocation.rst
index 4446a1ac36cc..5954ddf6ee13 100644
--- a/Documentation/core-api/memory-allocation.rst
+++ b/Documentation/core-api/memory-allocation.rst
@@ -147,6 +147,10 @@ The address of a chunk allocated with `kmalloc` is aligned to at least
 ARCH_KMALLOC_MINALIGN bytes.  For sizes which are a power of two, the
 alignment is also guaranteed to be at least the respective size.
 
+Chunks allocated with kmalloc() can be resized with krealloc(). Similarly
+to kmalloc_array(): a helper for resizing arrays is provided in the form of
+krealloc_array().
+
 For large allocations you can use vmalloc() and vzalloc(), or directly
 request pages from the page allocator. The memory allocated by `vmalloc`
 and related functions is not physically contiguous.
diff --git a/include/linux/slab.h b/include/linux/slab.h
index dd6897f62010..be4ba5867ac5 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -592,6 +592,24 @@ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
 	return __kmalloc(bytes, flags);
 }
 
+/**
+ * krealloc_array - reallocate memory for an array.
+ * @p: pointer to the memory chunk to reallocate
+ * @new_n: new number of elements to alloc
+ * @new_size: new size of a single member of the array
+ * @flags: the type of memory to allocate (see kmalloc)
+ */
+static __must_check inline void *
+krealloc_array(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 krealloc(p, bytes, flags);
+}
+
 /**
  * kcalloc - allocate memory for an array. The memory is set to zero.
  * @n: number of elements.
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 2/9] mm: slab: provide krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, Vlastimil Babka, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

When allocating an array of elements, users should check for
multiplication overflow or preferably use one of the provided helpers
like: kmalloc_array().

There's no krealloc_array() counterpart but there are many users who use
regular krealloc() to reallocate arrays. Let's provide an actual
krealloc_array() implementation.

While at it: add some documentation regarding krealloc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
---
 Documentation/core-api/memory-allocation.rst |  4 ++++
 include/linux/slab.h                         | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/Documentation/core-api/memory-allocation.rst b/Documentation/core-api/memory-allocation.rst
index 4446a1ac36cc..5954ddf6ee13 100644
--- a/Documentation/core-api/memory-allocation.rst
+++ b/Documentation/core-api/memory-allocation.rst
@@ -147,6 +147,10 @@ The address of a chunk allocated with `kmalloc` is aligned to at least
 ARCH_KMALLOC_MINALIGN bytes.  For sizes which are a power of two, the
 alignment is also guaranteed to be at least the respective size.
 
+Chunks allocated with kmalloc() can be resized with krealloc(). Similarly
+to kmalloc_array(): a helper for resizing arrays is provided in the form of
+krealloc_array().
+
 For large allocations you can use vmalloc() and vzalloc(), or directly
 request pages from the page allocator. The memory allocated by `vmalloc`
 and related functions is not physically contiguous.
diff --git a/include/linux/slab.h b/include/linux/slab.h
index dd6897f62010..be4ba5867ac5 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -592,6 +592,24 @@ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
 	return __kmalloc(bytes, flags);
 }
 
+/**
+ * krealloc_array - reallocate memory for an array.
+ * @p: pointer to the memory chunk to reallocate
+ * @new_n: new number of elements to alloc
+ * @new_size: new size of a single member of the array
+ * @flags: the type of memory to allocate (see kmalloc)
+ */
+static __must_check inline void *
+krealloc_array(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 krealloc(p, bytes, flags);
+}
+
 /**
  * kcalloc - allocate memory for an array. The memory is set to zero.
  * @n: number of elements.
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 2/9] mm: slab: provide krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, Vlastimil Babka, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

When allocating an array of elements, users should check for
multiplication overflow or preferably use one of the provided helpers
like: kmalloc_array().

There's no krealloc_array() counterpart but there are many users who use
regular krealloc() to reallocate arrays. Let's provide an actual
krealloc_array() implementation.

While at it: add some documentation regarding krealloc.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
---
 Documentation/core-api/memory-allocation.rst |  4 ++++
 include/linux/slab.h                         | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/Documentation/core-api/memory-allocation.rst b/Documentation/core-api/memory-allocation.rst
index 4446a1ac36cc..5954ddf6ee13 100644
--- a/Documentation/core-api/memory-allocation.rst
+++ b/Documentation/core-api/memory-allocation.rst
@@ -147,6 +147,10 @@ The address of a chunk allocated with `kmalloc` is aligned to at least
 ARCH_KMALLOC_MINALIGN bytes.  For sizes which are a power of two, the
 alignment is also guaranteed to be at least the respective size.
 
+Chunks allocated with kmalloc() can be resized with krealloc(). Similarly
+to kmalloc_array(): a helper for resizing arrays is provided in the form of
+krealloc_array().
+
 For large allocations you can use vmalloc() and vzalloc(), or directly
 request pages from the page allocator. The memory allocated by `vmalloc`
 and related functions is not physically contiguous.
diff --git a/include/linux/slab.h b/include/linux/slab.h
index dd6897f62010..be4ba5867ac5 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -592,6 +592,24 @@ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
 	return __kmalloc(bytes, flags);
 }
 
+/**
+ * krealloc_array - reallocate memory for an array.
+ * @p: pointer to the memory chunk to reallocate
+ * @new_n: new number of elements to alloc
+ * @new_size: new size of a single member of the array
+ * @flags: the type of memory to allocate (see kmalloc)
+ */
+static __must_check inline void *
+krealloc_array(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 krealloc(p, bytes, flags);
+}
+
 /**
  * kcalloc - allocate memory for an array. The memory is set to zero.
  * @n: number of elements.
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 3/9] ALSA: pcm: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski, Takashi Iwai

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/pcm_lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index bda3514c7b2d..b7e3d8f44511 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1129,8 +1129,8 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
 	if (constrs->rules_num >= constrs->rules_all) {
 		struct snd_pcm_hw_rule *new;
 		unsigned int new_rules = constrs->rules_all + 16;
-		new = krealloc(constrs->rules, new_rules * sizeof(*c),
-			       GFP_KERNEL);
+		new = krealloc_array(constrs->rules, new_rules,
+				     sizeof(*c), GFP_KERNEL);
 		if (!new) {
 			va_end(args);
 			return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 3/9] ALSA: pcm: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, Takashi Iwai, netdev, linux-kernel,
	dri-devel, virtualization, linaro-mm-sig, linux-gpio,
	Bartosz Golaszewski, linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/pcm_lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index bda3514c7b2d..b7e3d8f44511 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1129,8 +1129,8 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
 	if (constrs->rules_num >= constrs->rules_all) {
 		struct snd_pcm_hw_rule *new;
 		unsigned int new_rules = constrs->rules_all + 16;
-		new = krealloc(constrs->rules, new_rules * sizeof(*c),
-			       GFP_KERNEL);
+		new = krealloc_array(constrs->rules, new_rules,
+				     sizeof(*c), GFP_KERNEL);
 		if (!new) {
 			va_end(args);
 			return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 3/9] ALSA: pcm: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/pcm_lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index bda3514c7b2d..b7e3d8f44511 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1129,8 +1129,8 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
 	if (constrs->rules_num >= constrs->rules_all) {
 		struct snd_pcm_hw_rule *new;
 		unsigned int new_rules = constrs->rules_all + 16;
-		new = krealloc(constrs->rules, new_rules * sizeof(*c),
-			       GFP_KERNEL);
+		new = krealloc_array(constrs->rules, new_rules,
+				     sizeof(*c), GFP_KERNEL);
 		if (!new) {
 			va_end(args);
 			return -ENOMEM;
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 4/9] vhost: vringh: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/vhost/vringh.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 8bd8b403f087..08a0e1c842df 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -198,7 +198,8 @@ static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp)
 
 	flag = (iov->max_num & VRINGH_IOV_ALLOCATED);
 	if (flag)
-		new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp);
+		new = krealloc_array(iov->iov, new_num,
+				     sizeof(struct iovec), gfp);
 	else {
 		new = kmalloc_array(new_num, sizeof(struct iovec), gfp);
 		if (new) {
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 4/9] vhost: vringh: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/vhost/vringh.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 8bd8b403f087..08a0e1c842df 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -198,7 +198,8 @@ static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp)
 
 	flag = (iov->max_num & VRINGH_IOV_ALLOCATED);
 	if (flag)
-		new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp);
+		new = krealloc_array(iov->iov, new_num,
+				     sizeof(struct iovec), gfp);
 	else {
 		new = kmalloc_array(new_num, sizeof(struct iovec), gfp);
 		if (new) {
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 4/9] vhost: vringh: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/vhost/vringh.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 8bd8b403f087..08a0e1c842df 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -198,7 +198,8 @@ static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp)
 
 	flag = (iov->max_num & VRINGH_IOV_ALLOCATED);
 	if (flag)
-		new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp);
+		new = krealloc_array(iov->iov, new_num,
+				     sizeof(struct iovec), gfp);
 	else {
 		new = kmalloc_array(new_num, sizeof(struct iovec), gfp);
 		if (new) {
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 5/9] pinctrl: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/pinctrl-utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-utils.c b/drivers/pinctrl/pinctrl-utils.c
index f2bcbf62c03d..93df0d4c0a24 100644
--- a/drivers/pinctrl/pinctrl-utils.c
+++ b/drivers/pinctrl/pinctrl-utils.c
@@ -39,7 +39,7 @@ int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
 	if (old_num >= new_num)
 		return 0;
 
-	new_map = krealloc(*map, sizeof(*new_map) * new_num, GFP_KERNEL);
+	new_map = krealloc_array(*map, new_num, sizeof(*new_map), GFP_KERNEL);
 	if (!new_map) {
 		dev_err(pctldev->dev, "krealloc(map) failed\n");
 		return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 5/9] pinctrl: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/pinctrl-utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-utils.c b/drivers/pinctrl/pinctrl-utils.c
index f2bcbf62c03d..93df0d4c0a24 100644
--- a/drivers/pinctrl/pinctrl-utils.c
+++ b/drivers/pinctrl/pinctrl-utils.c
@@ -39,7 +39,7 @@ int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
 	if (old_num >= new_num)
 		return 0;
 
-	new_map = krealloc(*map, sizeof(*new_map) * new_num, GFP_KERNEL);
+	new_map = krealloc_array(*map, new_num, sizeof(*new_map), GFP_KERNEL);
 	if (!new_map) {
 		dev_err(pctldev->dev, "krealloc(map) failed\n");
 		return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 5/9] pinctrl: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/pinctrl-utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-utils.c b/drivers/pinctrl/pinctrl-utils.c
index f2bcbf62c03d..93df0d4c0a24 100644
--- a/drivers/pinctrl/pinctrl-utils.c
+++ b/drivers/pinctrl/pinctrl-utils.c
@@ -39,7 +39,7 @@ int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
 	if (old_num >= new_num)
 		return 0;
 
-	new_map = krealloc(*map, sizeof(*new_map) * new_num, GFP_KERNEL);
+	new_map = krealloc_array(*map, new_num, sizeof(*new_map), GFP_KERNEL);
 	if (!new_map) {
 		dev_err(pctldev->dev, "krealloc(map) failed\n");
 		return -ENOMEM;
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 6/9] edac: ghes: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski, Borislav Petkov

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Borislav Petkov <bp@suse.de>
---
 drivers/edac/ghes_edac.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index a918ca93e4f7..6d1ddecbf0da 100644
--- a/drivers/edac/ghes_edac.c
+++ b/drivers/edac/ghes_edac.c
@@ -207,8 +207,8 @@ static void enumerate_dimms(const struct dmi_header *dh, void *arg)
 	if (!hw->num_dimms || !(hw->num_dimms % 16)) {
 		struct dimm_info *new;
 
-		new = krealloc(hw->dimms, (hw->num_dimms + 16) * sizeof(struct dimm_info),
-			        GFP_KERNEL);
+		new = krealloc_array(hw->dimms, hw->num_dimms + 16,
+				     sizeof(struct dimm_info), GFP_KERNEL);
 		if (!new) {
 			WARN_ON_ONCE(1);
 			return;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 6/9] edac: ghes: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, Borislav Petkov, kvm, linux-mm, netdev, linux-kernel,
	dri-devel, virtualization, linaro-mm-sig, linux-gpio,
	Bartosz Golaszewski, linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Borislav Petkov <bp@suse.de>
---
 drivers/edac/ghes_edac.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index a918ca93e4f7..6d1ddecbf0da 100644
--- a/drivers/edac/ghes_edac.c
+++ b/drivers/edac/ghes_edac.c
@@ -207,8 +207,8 @@ static void enumerate_dimms(const struct dmi_header *dh, void *arg)
 	if (!hw->num_dimms || !(hw->num_dimms % 16)) {
 		struct dimm_info *new;
 
-		new = krealloc(hw->dimms, (hw->num_dimms + 16) * sizeof(struct dimm_info),
-			        GFP_KERNEL);
+		new = krealloc_array(hw->dimms, hw->num_dimms + 16,
+				     sizeof(struct dimm_info), GFP_KERNEL);
 		if (!new) {
 			WARN_ON_ONCE(1);
 			return;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 6/9] edac: ghes: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, Borislav Petkov, kvm, linux-mm, netdev, linux-kernel,
	dri-devel, virtualization, linaro-mm-sig, linux-gpio,
	Bartosz Golaszewski, linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Borislav Petkov <bp@suse.de>
---
 drivers/edac/ghes_edac.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index a918ca93e4f7..6d1ddecbf0da 100644
--- a/drivers/edac/ghes_edac.c
+++ b/drivers/edac/ghes_edac.c
@@ -207,8 +207,8 @@ static void enumerate_dimms(const struct dmi_header *dh, void *arg)
 	if (!hw->num_dimms || !(hw->num_dimms % 16)) {
 		struct dimm_info *new;
 
-		new = krealloc(hw->dimms, (hw->num_dimms + 16) * sizeof(struct dimm_info),
-			        GFP_KERNEL);
+		new = krealloc_array(hw->dimms, hw->num_dimms + 16,
+				     sizeof(struct dimm_info), GFP_KERNEL);
 		if (!new) {
 			WARN_ON_ONCE(1);
 			return;
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 7/9] drm: atomic: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski, Daniel Vetter

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_atomic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 58527f151984..09ad6a2ec17b 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -960,7 +960,8 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
 		struct __drm_connnectors_state *c;
 		int alloc = max(index + 1, config->num_connector);
 
-		c = krealloc(state->connectors, alloc * sizeof(*state->connectors), GFP_KERNEL);
+		c = krealloc_array(state->connectors, alloc,
+				   sizeof(*state->connectors), GFP_KERNEL);
 		if (!c)
 			return ERR_PTR(-ENOMEM);
 
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 7/9] drm: atomic: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Daniel Vetter,
	Bartosz Golaszewski, linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_atomic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 58527f151984..09ad6a2ec17b 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -960,7 +960,8 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
 		struct __drm_connnectors_state *c;
 		int alloc = max(index + 1, config->num_connector);
 
-		c = krealloc(state->connectors, alloc * sizeof(*state->connectors), GFP_KERNEL);
+		c = krealloc_array(state->connectors, alloc,
+				   sizeof(*state->connectors), GFP_KERNEL);
 		if (!c)
 			return ERR_PTR(-ENOMEM);
 
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 7/9] drm: atomic: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Daniel Vetter,
	Bartosz Golaszewski, linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_atomic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 58527f151984..09ad6a2ec17b 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -960,7 +960,8 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
 		struct __drm_connnectors_state *c;
 		int alloc = max(index + 1, config->num_connector);
 
-		c = krealloc(state->connectors, alloc * sizeof(*state->connectors), GFP_KERNEL);
+		c = krealloc_array(state->connectors, alloc,
+				   sizeof(*state->connectors), GFP_KERNEL);
 		if (!c)
 			return ERR_PTR(-ENOMEM);
 
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 8/9] hwtracing: intel: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/hwtracing/intel_th/msu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index 3a77551fb4fc..7d95242db900 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -2002,7 +2002,7 @@ nr_pages_store(struct device *dev, struct device_attribute *attr,
 		}
 
 		nr_wins++;
-		rewin = krealloc(win, sizeof(*win) * nr_wins, GFP_KERNEL);
+		rewin = krealloc_array(win, nr_wins, sizeof(*win), GFP_KERNEL);
 		if (!rewin) {
 			kfree(win);
 			return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 8/9] hwtracing: intel: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/hwtracing/intel_th/msu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index 3a77551fb4fc..7d95242db900 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -2002,7 +2002,7 @@ nr_pages_store(struct device *dev, struct device_attribute *attr,
 		}
 
 		nr_wins++;
-		rewin = krealloc(win, sizeof(*win) * nr_wins, GFP_KERNEL);
+		rewin = krealloc_array(win, nr_wins, sizeof(*win), GFP_KERNEL);
 		if (!rewin) {
 			kfree(win);
 			return -ENOMEM;
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 8/9] hwtracing: intel: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/hwtracing/intel_th/msu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index 3a77551fb4fc..7d95242db900 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -2002,7 +2002,7 @@ nr_pages_store(struct device *dev, struct device_attribute *attr,
 		}
 
 		nr_wins++;
-		rewin = krealloc(win, sizeof(*win) * nr_wins, GFP_KERNEL);
+		rewin = krealloc_array(win, nr_wins, sizeof(*win), GFP_KERNEL);
 		if (!rewin) {
 			kfree(win);
 			return -ENOMEM;
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 9/9] dma-buf: use krealloc_array()
  2020-11-09 11:06 ` Bartosz Golaszewski
  (?)
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  -1 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: linux-media, dri-devel, linaro-mm-sig, linux-kernel, linux-edac,
	linux-gpio, kvm, virtualization, netdev, linux-mm, alsa-devel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/sync_file.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
index 5a5a1da01a00..20d9bddbb985 100644
--- a/drivers/dma-buf/sync_file.c
+++ b/drivers/dma-buf/sync_file.c
@@ -270,8 +270,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
 		fences[i++] = dma_fence_get(a_fences[0]);
 
 	if (num_fences > i) {
-		nfences = krealloc(fences, i * sizeof(*fences),
-				  GFP_KERNEL);
+		nfences = krealloc_array(fences, i, sizeof(*fences), GFP_KERNEL);
 		if (!nfences)
 			goto err;
 
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 9/9] dma-buf: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/sync_file.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
index 5a5a1da01a00..20d9bddbb985 100644
--- a/drivers/dma-buf/sync_file.c
+++ b/drivers/dma-buf/sync_file.c
@@ -270,8 +270,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
 		fences[i++] = dma_fence_get(a_fences[0]);
 
 	if (num_fences > i) {
-		nfences = krealloc(fences, i * sizeof(*fences),
-				  GFP_KERNEL);
+		nfences = krealloc_array(fences, i, sizeof(*fences), GFP_KERNEL);
 		if (!nfences)
 			goto err;
 
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v3 9/9] dma-buf: use krealloc_array()
@ 2020-11-09 11:06   ` Bartosz Golaszewski
  0 siblings, 0 replies; 34+ messages in thread
From: Bartosz Golaszewski @ 2020-11-09 11:06 UTC (permalink / raw)
  To: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Linus Walleij, Michael S . Tsirkin,
	Jason Wang, Christoph Lameter, Pekka Enberg, David Rientjes,
	Joonsoo Kim, Andrew Morton, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, kvm, linux-mm, netdev, linux-kernel, dri-devel,
	virtualization, linaro-mm-sig, linux-gpio, Bartosz Golaszewski,
	linux-media, linux-edac

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Use the helper that checks for overflows internally instead of manually
calculating the size of the new array.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Christian König <christian.koenig@amd.com>
---
 drivers/dma-buf/sync_file.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
index 5a5a1da01a00..20d9bddbb985 100644
--- a/drivers/dma-buf/sync_file.c
+++ b/drivers/dma-buf/sync_file.c
@@ -270,8 +270,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
 		fences[i++] = dma_fence_get(a_fences[0]);
 
 	if (num_fences > i) {
-		nfences = krealloc(fences, i * sizeof(*fences),
-				  GFP_KERNEL);
+		nfences = krealloc_array(fences, i, sizeof(*fences), GFP_KERNEL);
 		if (!nfences)
 			goto err;
 
-- 
2.29.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [PATCH v3 5/9] pinctrl: use krealloc_array()
  2020-11-09 11:06   ` Bartosz Golaszewski
  (?)
  (?)
@ 2020-11-10 14:48     ` Linus Walleij
  -1 siblings, 0 replies; 34+ messages in thread
From: Linus Walleij @ 2020-11-10 14:48 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Andy Shevchenko, Sumit Semwal, Gustavo Padovan,
	Christian König, Mauro Carvalho Chehab, Borislav Petkov,
	Tony Luck, James Morse, Robert Richter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Alexander Shishkin, Michael S . Tsirkin, Jason Wang,
	Christoph Lameter, Pekka Enberg, David Rientjes, Joonsoo Kim,
	Andrew Morton, Jaroslav Kysela, Takashi Iwai,
	Linux Media Mailing List, open list:DRM PANEL DRIVERS,
	linaro-mm-sig, linux-kernel, linux-edac,
	open list:GPIO SUBSYSTEM, kvm, virtualization, netdev,
	Linux Memory Management List,
	moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
	Bartosz Golaszewski

On Mon, Nov 9, 2020 at 12:07 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Use the helper that checks for overflows internally instead of manually
> calculating the size of the new array.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v3 5/9] pinctrl: use krealloc_array()
@ 2020-11-10 14:48     ` Linus Walleij
  0 siblings, 0 replies; 34+ messages in thread
From: Linus Walleij @ 2020-11-10 14:48 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
	kvm, Michael S . Tsirkin, David Airlie, Gustavo Padovan,
	Jason Wang, open list:DRM PANEL DRIVERS,
	Linux Memory Management List, Christoph Lameter, Sumit Semwal,
	Mauro Carvalho Chehab, Bartosz Golaszewski, Alexander Shishkin,
	David Rientjes, virtualization, Linux Media Mailing List,
	Robert Richter, Thomas Zimmermann, Maarten Lankhorst,
	Maxime Ripard, linaro-mm-sig, open list:GPIO SUBSYSTEM,
	Borislav Petkov, Andy Shevchenko, Joonsoo Kim, linux-edac,
	Tony Luck, netdev, Takashi Iwai, linux-kernel, Pekka Enberg,
	James Morse, Daniel Vetter, Andrew Morton, Christian König

On Mon, Nov 9, 2020 at 12:07 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Use the helper that checks for overflows internally instead of manually
> calculating the size of the new array.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v3 5/9] pinctrl: use krealloc_array()
@ 2020-11-10 14:48     ` Linus Walleij
  0 siblings, 0 replies; 34+ messages in thread
From: Linus Walleij @ 2020-11-10 14:48 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
	kvm, Michael S . Tsirkin, David Airlie, Gustavo Padovan,
	open list:DRM PANEL DRIVERS, Jaroslav Kysela,
	Linux Memory Management List, Christoph Lameter, Sumit Semwal,
	Mauro Carvalho Chehab, Bartosz Golaszewski, Alexander Shishkin,
	David Rientjes, virtualization, Linux Media Mailing List,
	Robert Richter, Thomas Zimmermann, Maarten Lankhorst,
	Maxime Ripard, linaro-mm-sig, open list:GPIO SUBSYSTEM,
	Borislav Petkov, Andy Shevchenko, Joonsoo Kim, linux-edac,
	Tony Luck, netdev, Takashi Iwai, linux-kernel, Pekka Enberg,
	James Morse, Daniel Vetter, Andrew Morton, Christian König

On Mon, Nov 9, 2020 at 12:07 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Use the helper that checks for overflows internally instead of manually
> calculating the size of the new array.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v3 5/9] pinctrl: use krealloc_array()
@ 2020-11-10 14:48     ` Linus Walleij
  0 siblings, 0 replies; 34+ messages in thread
From: Linus Walleij @ 2020-11-10 14:48 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
	kvm, Michael S . Tsirkin, David Airlie, Gustavo Padovan,
	Jason Wang, open list:DRM PANEL DRIVERS, Jaroslav Kysela,
	Linux Memory Management List, Christoph Lameter,
	Mauro Carvalho Chehab, Bartosz Golaszewski, Alexander Shishkin,
	David Rientjes, virtualization, Linux Media Mailing List,
	Robert Richter, Thomas Zimmermann, linaro-mm-sig,
	open list:GPIO SUBSYSTEM, Borislav Petkov, Andy Shevchenko,
	Joonsoo Kim, linux-edac, Tony Luck, netdev, Takashi Iwai,
	linux-kernel, Pekka Enberg, James Morse, Andrew Morton,
	Christian König

On Mon, Nov 9, 2020 at 12:07 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Use the helper that checks for overflows internally instead of manually
> calculating the size of the new array.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2020-11-11  8:01 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-09 11:06 [PATCH v3 0/9] slab: provide and use krealloc_array() Bartosz Golaszewski
2020-11-09 11:06 ` Bartosz Golaszewski
2020-11-09 11:06 ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 1/9] mm: slab: clarify krealloc()'s behavior with __GFP_ZERO Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 2/9] mm: slab: provide krealloc_array() Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 3/9] ALSA: pcm: use krealloc_array() Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 4/9] vhost: vringh: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 5/9] pinctrl: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-10 14:48   ` Linus Walleij
2020-11-10 14:48     ` Linus Walleij
2020-11-10 14:48     ` Linus Walleij
2020-11-10 14:48     ` Linus Walleij
2020-11-09 11:06 ` [PATCH v3 6/9] edac: ghes: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 7/9] drm: atomic: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 8/9] hwtracing: intel: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06 ` [PATCH v3 9/9] dma-buf: " Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski
2020-11-09 11:06   ` Bartosz Golaszewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.