[PATCH 02/12] staging: dgnc: replaces generic struct from sizeof calls

Lidza Louina lidza.louina at gmail.com
Tue Sep 3 17:26:05 UTC 2013


On Sun, Sep 1, 2013 at 7:50 PM, Dan Carpenter <dan.carpenter at oracle.com> wrote:
> On Sat, Aug 31, 2013 at 06:19:10PM -0400, Lidza Louina wrote:
>> This patch replaces all instances of "sizeof(struct"
>> with actual instances of the struct. For example
>> "sizeof(struct tty_struct" is replaced with
>> "sizeof(brd->SerialDriver.ttys".
>>
>
> This one is not right.

Is it wrong because it needs to be a pointer
to brd->SerialDriver.ttys? Or should it not be changed at all?

>> This patch affects driver.c, mgmt.c and tty.c.
>>
>
> Btw, you don't need to say this in the commit.

Alrighty

>> Signed-off-by: Lidza Louina <lidza.louina at gmail.com>
>> ---
>>  drivers/staging/dgnc/dgnc_driver.c |  2 +-
>>  drivers/staging/dgnc/dgnc_mgmt.c   |  2 +-
>>  drivers/staging/dgnc/dgnc_tty.c    | 28 ++++++++++++++--------------
>>  3 files changed, 16 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c
>> index 1e76f0c..9dee64c 100644
>> --- a/drivers/staging/dgnc/dgnc_driver.c
>> +++ b/drivers/staging/dgnc/dgnc_driver.c
>> @@ -499,7 +499,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
>>
>>       /* get the board structure and prep it */
>>       brd = dgnc_Board[dgnc_NumBoards] =
>> -     kzalloc(sizeof(struct board_t), GFP_KERNEL);
>> +     kzalloc(sizeof(brd), GFP_KERNEL);
>
> This should be "sizeof(*brd)".  The "brd" variable is a pointer (4 or
> 8 bytes) but we want the size of the struct it points to "*brd".  The
> same thing for the some of the others as well.

Okay, I can see why that would be here.

Basically sizeof function needs a pointer to the exact item that we
need the size of instead of a generic type.

Example:
if (copy_to_user(uarg, &buf, sizeof(buf))) {
becomes
if (copy_to_user(uarg, &buf, sizeof(*buf))) {

And:
memcpy(&ch->ch_digi, &new_digi, sizeof(struct digi_t));
becomes
memcpy(&ch->ch_digi, &new_digi, sizeof(*ch->ch_digi));


More information about the devel mailing list