[PATCH] staging/wilc1000: fixes kzalloc call

Lidza Louina lidza.louina at oracle.com
Fri May 27 18:24:38 UTC 2016



On 05/27/2016 02:07 PM, Joe Perches wrote:
> On Fri, 2016-05-27 at 13:51 -0400, Lidza Louina wrote:
>> The wl pointer was initialized as a pointer to a struct wilc and
>> assigned to a piece of memory the size of the pointer. It should be the
>> size of struct wilc.
> This isn't necessary.
>
> The code in question is:
>
> 	struct wilc *wl;
>
> 	sema_init(&close_exit_sync, 0);
>
> 	wl = kzalloc(sizeof(*wl), GFP_KERNEL);
> 	if (!wl)
> 		return -ENOMEM;
>
> 	*wilc = wl;
>
> so this isn't any real change and the generally desired form for
> allocations from CodingStyle (Chapter 14: Allocating Memory) is:
>
> The preferred form for passing a size of a struct is the following:	p = kmalloc(sizeof(*p), ...);

Ahh, okay. I see that in the documentation. Thanks.

Lidza

>
>> diff --git a/drivers/staging/wilc1000/linux_wlan.c
> []
>> @@ -1260,7 +1260,7 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
>>   
>>   	sema_init(&close_exit_sync, 0);
>>   
>> -	wl = kzalloc(sizeof(*wl), GFP_KERNEL);
>> +	wl = kzalloc(sizeof(struct wilc), GFP_KERNEL);
>>   	if (!wl)
>>   		return -ENOMEM;



More information about the devel mailing list