public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Shay Agroskin <shayagr@amazon.com>
To: Tom Rix <trix@redhat.com>
Cc: Eric Dumazet <edumazet@google.com>, <akiyano@amazon.com>,
	<darinzon@amazon.com>, <ndagan@amazon.com>, <saeedb@amazon.com>,
	<davem@davemloft.net>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<nathan@kernel.org>, <ndesaulniers@google.com>, <khalasa@piap.pl>,
	<wsa+renesas@sang-engineering.com>, <yuancan@huawei.com>,
	<tglx@linutronix.de>, <42.hyeyoo@gmail.com>,
	<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<llvm@lists.linux.dev>
Subject: Re: [PATCH] net: ena: initialize dim_sample
Date: Wed, 11 Jan 2023 10:46:50 +0200	[thread overview]
Message-ID: <pj41zllem9bglr.fsf@u570694869fb251.ant.amazon.com> (raw)
In-Reply-To: <db824c89-13f2-3349-9dd0-0fb7559c6273@redhat.com>


Tom Rix <trix@redhat.com> writes:

> On 1/10/23 8:58 AM, Shay Agroskin wrote:
>>
>> Eric Dumazet <edumazet@google.com> writes:
>>
>>> On Sun, Jan 8, 2023 at 3:38 PM Tom Rix <trix@redhat.com> 
>>> wrote:
>>>>
>>>> clang static analysis reports this problem
>>>> drivers/net/ethernet/amazon/ena/ena_netdev.c:1821:2: warning:
>>>> Passed-by-value struct
>>>>   argument contains uninitialized data (e.g., field: 
>>>> 'comp_ctr')
>>>> [core.CallAndMessage]
>>>>         net_dim(&ena_napi->dim, dim_sample);
>>>>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>
>>>> net_dim can call dim_calc_stats() which uses the comp_ctr 
>>>> element,
>>>> so it must be initialized.
>>>
>>> This seems to be a dim_update_sample() problem really, when 
>>> comp_ctr
>>> has been added...
>>>
>>> Your patch works, but we could avoid pre-initializing 
>>> dim_sample in
>>> all callers,
>>> then re-writing all but one field...
>>>
>>> diff --git a/include/linux/dim.h b/include/linux/dim.h
>>> index
>>> 6c5733981563eadf5f06c59c5dc97df961692b02..4604ced4517268ef8912cd8053ac8f4d2630f977
>>> 100644
>>> --- a/include/linux/dim.h
>>> +++ b/include/linux/dim.h
>>> @@ -254,6 +254,7 @@ dim_update_sample(u16 event_ctr, u64 
>>> packets, u64
>>> bytes, struct dim_sample *s)
>>>         s->pkt_ctr   = packets;
>>>         s->byte_ctr  = bytes;
>>>         s->event_ctr = event_ctr;
>>> +       s->comp_ctr  = 0;
>>>  }
>>>
>>>  /**
>>
>> Hi,
>>
>> I'd rather go with Eric's solution to this issue than zero the 
>> whole
>> struct in ENA
>
> Please look at the other callers of dim_update_sample.  The 
> common
> pattern is to initialize the struct.
>
> This alternative will work, but the pattern of initializing the 
> struct
> the other (~20) callers should be refactored.
>
> Tom
>

While Eric's patch might be bigger if you also remove the 
pre-initialization in the other drivers, the Linux code itself 
would be smaller (granted not significantly) and
it make less room for pitfalls in adding DIM support in other 
drivers.

Is there a good argument against using Eric's patch other than 
'the other patch would be bigger' ?

Shay

>>
>> Thanks,
>> Shay
>>


  reply	other threads:[~2023-01-11  8:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-08 14:38 [PATCH] net: ena: initialize dim_sample Tom Rix
2023-01-09 10:34 ` Eric Dumazet
2023-01-10 16:58   ` Shay Agroskin
2023-01-10 17:17     ` Tom Rix
2023-01-11  8:46       ` Shay Agroskin [this message]
2023-01-11 14:29         ` Tom Rix
2023-01-10 16:44 ` Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pj41zllem9bglr.fsf@u570694869fb251.ant.amazon.com \
    --to=shayagr@amazon.com \
    --cc=42.hyeyoo@gmail.com \
    --cc=akiyano@amazon.com \
    --cc=darinzon@amazon.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=khalasa@piap.pl \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=nathan@kernel.org \
    --cc=ndagan@amazon.com \
    --cc=ndesaulniers@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedb@amazon.com \
    --cc=tglx@linutronix.de \
    --cc=trix@redhat.com \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yuancan@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox