diff mbox series

i40e: fix uninitialized variable in i40e_set_vsi_promisc

Message ID 20200812143950.11675-1-sassmann@kpanic.de
State Awaiting Upstream
Delegated to: David Miller
Headers show
Series i40e: fix uninitialized variable in i40e_set_vsi_promisc | expand

Commit Message

Stefan Assmann Aug. 12, 2020, 2:39 p.m. UTC
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function ‘i40e_set_vsi_promisc’:
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:1176:14: error: ‘aq_ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  i40e_status aq_ret;

In case the code inside the if statement and the for loop does not get
executed aq_ret will be uninitialized when the variable gets returned at
the end of the function.

Fixes: 37d318d7805f ("i40e: Remove scheduling while atomic possibility")
Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
---
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jakub Kicinski Aug. 12, 2020, 5:46 p.m. UTC | #1
On Wed, 12 Aug 2020 16:39:50 +0200 Stefan Assmann wrote:
> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function ‘i40e_set_vsi_promisc’:
> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:1176:14: error: ‘aq_ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   i40e_status aq_ret;

What's your compiler? I don't see it on GCC 10.1.

> In case the code inside the if statement and the for loop does not get
> executed aq_ret will be uninitialized when the variable gets returned at
> the end of the function.

I think it'd be a better fix to make num_vlans unsigned.
Stefan Assmann Aug. 13, 2020, 5:28 a.m. UTC | #2
On 12.08.20 19:46, Jakub Kicinski wrote:
> On Wed, 12 Aug 2020 16:39:50 +0200 Stefan Assmann wrote:
>> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c: In function ‘i40e_set_vsi_promisc’:
>> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c:1176:14: error: ‘aq_ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>>   i40e_status aq_ret;
> 
> What's your compiler? I don't see it on GCC 10.1.

gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)

>> In case the code inside the if statement and the for loop does not get
>> executed aq_ret will be uninitialized when the variable gets returned at
>> the end of the function.
> 
> I think it'd be a better fix to make num_vlans unsigned.

Agreed, I'll send a v2 patch later.
Thanks for the review Jakub!

  Stefan
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 8e133d6545bd..ae290ebd83cf 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -1173,7 +1173,7 @@  i40e_set_vsi_promisc(struct i40e_vf *vf, u16 seid, bool multi_enable,
 {
 	struct i40e_pf *pf = vf->pf;
 	struct i40e_hw *hw = &pf->hw;
-	i40e_status aq_ret;
+	i40e_status aq_ret = 0;
 	int i;
 
 	/* No VLAN to set promisc on, set on VSI */