devres: move the size check from alloc_dr() into a separate function
add this patch for arm-cmn
commit dc2a633ccb
upstream.
We will perform the same size check in devm_krealloc(). Move the relevant
code into a separate helper.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Link: https://lore.kernel.org/r/20200629065008.27620-3-brgl@bgdev.pl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Huang Cun <cunhuang@tencent.com>
This commit is contained in:
parent
8698752488
commit
ac3e23db87
|
@ -89,15 +89,23 @@ static struct devres_group * node_to_group(struct devres_node *node)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static bool check_dr_size(size_t size, size_t *tot_size)
|
||||
{
|
||||
/* We must catch any near-SIZE_MAX cases that could overflow. */
|
||||
if (unlikely(check_add_overflow(sizeof(struct devres),
|
||||
size, tot_size)))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static __always_inline struct devres * alloc_dr(dr_release_t release,
|
||||
size_t size, gfp_t gfp, int nid)
|
||||
{
|
||||
size_t tot_size;
|
||||
struct devres *dr;
|
||||
|
||||
/* We must catch any near-SIZE_MAX cases that could overflow. */
|
||||
if (unlikely(check_add_overflow(sizeof(struct devres), size,
|
||||
&tot_size)))
|
||||
if (!check_dr_size(size, &tot_size))
|
||||
return NULL;
|
||||
|
||||
dr = kmalloc_node_track_caller(tot_size, gfp, nid);
|
||||
|
|
Loading…
Reference in New Issue