The advantage of kcalloc is, that will prevent integer overflows which could
result from the multiplication of number of elements and size and it is also
a bit nicer to read.
The semantic patch that makes this change is available
in https://lkml.org/lkml/2011/11/25/107
Signed-off-by: Thomas Meyer <[email protected]>
---
diff -u -p a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:36:47.770108588 +0100
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:54:53.495525543 +0100
@@ -831,11 +831,11 @@ static int rt2x00lib_probe_hw_modes(stru
if (spec->supported_rates & SUPPORT_RATE_OFDM)
num_rates += 8;
- channels = kzalloc(sizeof(*channels) * spec->num_channels, GFP_KERNEL);
+ channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
if (!channels)
return -ENOMEM;
- rates = kzalloc(sizeof(*rates) * num_rates, GFP_KERNEL);
+ rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
if (!rates)
goto exit_free_channels;
On 29 nov. 2011, at 22:08, Thomas Meyer <[email protected]> wrote:
> The advantage of kcalloc is, that will prevent integer overflows which could
> result from the multiplication of number of elements and size and it is also
> a bit nicer to read.
>
> The semantic patch that makes this change is available
> in https://lkml.org/lkml/2011/11/25/107
>
> Signed-off-by: Thomas Meyer <[email protected]>
Acked-by: Gertjan van Wingerde <[email protected]>
> ---
>
> diff -u -p a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:36:47.770108588 +0100
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:54:53.495525543 +0100
> @@ -831,11 +831,11 @@ static int rt2x00lib_probe_hw_modes(stru
> if (spec->supported_rates & SUPPORT_RATE_OFDM)
> num_rates += 8;
>
> - channels = kzalloc(sizeof(*channels) * spec->num_channels, GFP_KERNEL);
> + channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
> if (!channels)
> return -ENOMEM;
>
> - rates = kzalloc(sizeof(*rates) * num_rates, GFP_KERNEL);
> + rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
> if (!rates)
> goto exit_free_channels;
>
On Tue, Nov 29, 2011 at 10:08 PM, Thomas Meyer <[email protected]> wrote:
> The advantage of kcalloc is, that will prevent integer overflows which could
> result from the multiplication of number of elements and size and it is also
> a bit nicer to read.
>
> The semantic patch that makes this change is available
> in https://lkml.org/lkml/2011/11/25/107
>
> Signed-off-by: Thomas Meyer <[email protected]>
Acked-by: Ivo van Doorn <[email protected]>
> ---
>
> diff -u -p a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:36:47.770108588 +0100
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 2011-11-28 19:54:53.495525543 +0100
> @@ -831,11 +831,11 @@ static int rt2x00lib_probe_hw_modes(stru
> ? ? ? ?if (spec->supported_rates & SUPPORT_RATE_OFDM)
> ? ? ? ? ? ? ? ?num_rates += 8;
>
> - ? ? ? channels = kzalloc(sizeof(*channels) * spec->num_channels, GFP_KERNEL);
> + ? ? ? channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
> ? ? ? ?if (!channels)
> ? ? ? ? ? ? ? ?return -ENOMEM;
>
> - ? ? ? rates = kzalloc(sizeof(*rates) * num_rates, GFP_KERNEL);
> + ? ? ? rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
> ? ? ? ?if (!rates)
> ? ? ? ? ? ? ? ?goto exit_free_channels;
>