diff mbox series

[net-next,v2] net/mlx5e: Fix uninitialised struct field moder.comps

Message ID 1618902026-16588-1-git-send-email-wangyunjian@huawei.com (mailing list archive)
State Awaiting Upstream
Delegated to: Netdev Maintainers
Headers show
Series [net-next,v2] net/mlx5e: Fix uninitialised struct field moder.comps | expand

Checks

Context Check Description
netdev/apply fail Patch does not apply to net-next
netdev/tree_selection success Clearly marked for net-next

Commit Message

wangyunjian April 20, 2021, 7 a.m. UTC
From: Yunjian Wang <wangyunjian@huawei.com>

The 'comps' struct field in 'moder' is not being initialized in
mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
So initialize 'moder' to zero to avoid the issue.

Addresses-Coverity: ("Uninitialized scalar variable")
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
v2: update mlx5e_get_def_tx_moderation() also needs fixing
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Zhu Yanjun April 20, 2021, 7:09 a.m. UTC | #1
On Tue, Apr 20, 2021 at 3:01 PM wangyunjian <wangyunjian@huawei.com> wrote:
>
> From: Yunjian Wang <wangyunjian@huawei.com>
>
> The 'comps' struct field in 'moder' is not being initialized in
> mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
> So initialize 'moder' to zero to avoid the issue.
>
> Addresses-Coverity: ("Uninitialized scalar variable")
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> ---
> v2: update mlx5e_get_def_tx_moderation() also needs fixing
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> index 5db63b9f3b70..17a817b7e539 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> @@ -4868,7 +4868,7 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
>
>  static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
>  {
> -       struct dim_cq_moder moder;

> +       struct dim_cq_moder moder = {};

If I remember correctly, some gcc compiler will report errors about this "{}".

Zhu Yanjun

>
>         moder.cq_period_mode = cq_period_mode;
>         moder.pkts = MLX5E_PARAMS_DEFAULT_TX_CQ_MODERATION_PKTS;
> @@ -4881,7 +4881,7 @@ static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
>
>  static struct dim_cq_moder mlx5e_get_def_rx_moderation(u8 cq_period_mode)
>  {
> -       struct dim_cq_moder moder;
> +       struct dim_cq_moder moder = {};
>
>         moder.cq_period_mode = cq_period_mode;
>         moder.pkts = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_PKTS;
> --
> 2.23.0
>
Leon Romanovsky April 20, 2021, 9:21 a.m. UTC | #2
On Tue, Apr 20, 2021 at 03:09:03PM +0800, Zhu Yanjun wrote:
> On Tue, Apr 20, 2021 at 3:01 PM wangyunjian <wangyunjian@huawei.com> wrote:
> >
> > From: Yunjian Wang <wangyunjian@huawei.com>
> >
> > The 'comps' struct field in 'moder' is not being initialized in
> > mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
> > So initialize 'moder' to zero to avoid the issue.

Please state that it is false alarm and this patch doesn't fix anything
except broken static analyzer tool.

> >
> > Addresses-Coverity: ("Uninitialized scalar variable")
> > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > ---
> > v2: update mlx5e_get_def_tx_moderation() also needs fixing
> > ---
> >  drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > index 5db63b9f3b70..17a817b7e539 100644
> > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > @@ -4868,7 +4868,7 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
> >
> >  static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
> >  {
> > -       struct dim_cq_moder moder;
> 
> > +       struct dim_cq_moder moder = {};
> 
> If I remember correctly, some gcc compiler will report errors about this "{}".

Kernel doesn't support such compilers.

Thanks
Zhu Yanjun April 20, 2021, 9:28 a.m. UTC | #3
On Tue, Apr 20, 2021 at 5:21 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> On Tue, Apr 20, 2021 at 03:09:03PM +0800, Zhu Yanjun wrote:
> > On Tue, Apr 20, 2021 at 3:01 PM wangyunjian <wangyunjian@huawei.com> wrote:
> > >
> > > From: Yunjian Wang <wangyunjian@huawei.com>
> > >
> > > The 'comps' struct field in 'moder' is not being initialized in
> > > mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
> > > So initialize 'moder' to zero to avoid the issue.
>
> Please state that it is false alarm and this patch doesn't fix anything
> except broken static analyzer tool.
>
> > >
> > > Addresses-Coverity: ("Uninitialized scalar variable")
> > > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > ---
> > > v2: update mlx5e_get_def_tx_moderation() also needs fixing
> > > ---
> > >  drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > index 5db63b9f3b70..17a817b7e539 100644
> > > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > @@ -4868,7 +4868,7 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
> > >
> > >  static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
> > >  {
> > > -       struct dim_cq_moder moder;
> >
> > > +       struct dim_cq_moder moder = {};
> >
> > If I remember correctly, some gcc compiler will report errors about this "{}".
>
> Kernel doesn't support such compilers.

Are you sure? Why are you so confirmative?

Zhu Yanjun

>
> Thanks
Leon Romanovsky April 20, 2021, 11:05 a.m. UTC | #4
On Tue, Apr 20, 2021 at 05:28:43PM +0800, Zhu Yanjun wrote:
> On Tue, Apr 20, 2021 at 5:21 PM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > On Tue, Apr 20, 2021 at 03:09:03PM +0800, Zhu Yanjun wrote:
> > > On Tue, Apr 20, 2021 at 3:01 PM wangyunjian <wangyunjian@huawei.com> wrote:
> > > >
> > > > From: Yunjian Wang <wangyunjian@huawei.com>
> > > >
> > > > The 'comps' struct field in 'moder' is not being initialized in
> > > > mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
> > > > So initialize 'moder' to zero to avoid the issue.
> >
> > Please state that it is false alarm and this patch doesn't fix anything
> > except broken static analyzer tool.
> >
> > > >
> > > > Addresses-Coverity: ("Uninitialized scalar variable")
> > > > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > > ---
> > > > v2: update mlx5e_get_def_tx_moderation() also needs fixing
> > > > ---
> > > >  drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > > index 5db63b9f3b70..17a817b7e539 100644
> > > > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> > > > @@ -4868,7 +4868,7 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
> > > >
> > > >  static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
> > > >  {
> > > > -       struct dim_cq_moder moder;
> > >
> > > > +       struct dim_cq_moder moder = {};
> > >
> > > If I remember correctly, some gcc compiler will report errors about this "{}".
> >
> > Kernel doesn't support such compilers.
> 
> Are you sure? Why are you so confirmative?

Yes, I'm sure.

Please read this whole discussion, I hope that it will answer your
question on why I'm so sure.
https://lore.kernel.org/linux-rdma/20200730192026.110246-1-yepeilin.cs@gmail.com/

> 
> Zhu Yanjun
> 
> >
> > Thanks
Leon Romanovsky May 4, 2021, 7:27 a.m. UTC | #5
On Tue, Apr 20, 2021 at 03:00:26PM +0800, wangyunjian wrote:
> From: Yunjian Wang <wangyunjian@huawei.com>
> 
> The 'comps' struct field in 'moder' is not being initialized in
> mlx5e_get_def_rx_moderation() and mlx5e_get_def_tx_moderation().
> So initialize 'moder' to zero to avoid the issue.
> 
> Addresses-Coverity: ("Uninitialized scalar variable")
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> ---
> v2: update mlx5e_get_def_tx_moderation() also needs fixing

Actually grep other all "struct dim_cq_moder ...;" declarations shows
many places like this. Are you going to change them too?

Thanks
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 5db63b9f3b70..17a817b7e539 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4868,7 +4868,7 @@  static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
 
 static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
 {
-	struct dim_cq_moder moder;
+	struct dim_cq_moder moder = {};
 
 	moder.cq_period_mode = cq_period_mode;
 	moder.pkts = MLX5E_PARAMS_DEFAULT_TX_CQ_MODERATION_PKTS;
@@ -4881,7 +4881,7 @@  static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
 
 static struct dim_cq_moder mlx5e_get_def_rx_moderation(u8 cq_period_mode)
 {
-	struct dim_cq_moder moder;
+	struct dim_cq_moder moder = {};
 
 	moder.cq_period_mode = cq_period_mode;
 	moder.pkts = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_PKTS;