[PATCH v2 2/3] staging: dgnc: driver.c and tty.c: replaces dgnc_driver_kzmalloc with kzalloc

Lidza Louina lidza.louina at gmail.com
Thu Aug 29 00:05:14 UTC 2013


On Wed, Aug 28, 2013 at 4:30 AM, Dan Carpenter <dan.carpenter at oracle.com> wrote:
> On Tue, Aug 27, 2013 at 10:13:27PM -0400, Lidza Louina wrote:
>> @@ -501,7 +501,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
>>
>>       /* get the board structure and prep it */
>>       brd = dgnc_Board[dgnc_NumBoards] =
>> -     (struct board_t *) dgnc_driver_kzmalloc(sizeof(struct board_t), GFP_KERNEL);
>> +     (struct board_t *) kzalloc(sizeof(struct board_t), GFP_KERNEL);
>>       if (!brd) {
>>               APR(("memory allocation for board structure failed\n"));
>>               return(-ENOMEM);
>
> So you didn't introduce this, but here are the style problems in this
> section, in case you want to fix them in a later patch.
>
> 1) Bad indenting.
> 2) Unneeded casting.
> 3) Use sizeof(*brd) instead of sizeof(struct board_t).
> 4) board_t is a bad and wrong name for this data type.  "board" is too
>    generic, and "_t" means "typedef" but this is a not a typedef.
> 5) Put the two assignments on two lines.  First assign "brd" and then
>    initialize "dgnc_Board[dgnc_NumBoards]" after allocating
>    "brd->msgbuf".
> 6) Comment is obvious and at the same time wrong.  It means "allocate
>    the board structure" instead of "get".  Delete.
> 7) kmalloc() has its own error message which is much more useful.  No
>    need to print a useless error message.  Also this error will never
>    occur in real life so adding code for something which will never
>    happen and it's a waste of time for people reading the code.
> 8) No parenthesis around the return.
>
>> @@ -509,7 +509,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
>>
>>       /* make a temporary message buffer for the boot messages */
>>       brd->msgbuf = brd->msgbuf_head =
>> -             (char *) dgnc_driver_kzmalloc(sizeof(char) * 8192, GFP_KERNEL);
>> +             (char *) kzalloc(sizeof(char) * 8192, GFP_KERNEL);
>>       if (!brd->msgbuf) {
>>               kfree(brd);
>>               APR(("memory allocation for board msgbuf failed\n"));
>
> 9)  I think we know the sizeof(char)...  If we want to keep that then
>     use kcalloc() instead of kzalloc().  But it's simplest to just say:
>
>     brd->msgbuf = kzalloc(8192, GFP_KERNEL);
>
> 10) The error handling should be:
>
>         if (!brd->msgbuf) {
>                 ret = -ENOMEM;
>                 goto err_free_brd;
>         }
>
>         [snip code in the middle]
>
>         return 0;
>
> err_free_brd:
>         kfree(brd);
>
>         return ret;
>
>     We leak memory later on in this function...

Also, can I put your name in the Reported-by: section of these patches?


More information about the devel mailing list