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 |
Context | Check | Description |
---|---|---|
netdev/apply | fail | Patch does not apply to net-next |
netdev/tree_selection | success | Clearly marked for net-next |
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 >
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
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
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
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 --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;