Skip to contentSkip to conversation

i40e: Fix kernel panic on enable/disable LLDP

Intel-wired-lan Dan Carpenter 2 participants 2 messages Sep 30, 2016 Kernel janitors

lore
Share & tools
lore
#0 lore raw

Hello Dave Ertman,

The patch a036244c0686: "i40e: Fix kernel panic on enable/disable LLDP" from Aug 29, 2016, leads to the following static checker warning:

	drivers/net/ethernet/intel/i40e/i40e_main.c:10958 i40e_probe()
	warn: odd binop '0x20000000 & 0x100000'

drivers/net/ethernet/intel/i40e/i40e_main.c
10952 pci_set_drvdata(pdev, pf);
10953 pci_save_state(pdev);
10954 #ifdef CONFIG_I40E_DCB
10955 err = i40e_init_pf_dcb(pf);
10956 if (err) {
10957 dev_info(&pdev->dev, "DCB init failed %d, disabled\n", err);
10958 pf->flags &= ~(I40E_FLAG_DCB_CAPABLE & I40E_FLAG_DCB_ENABLED);

Should this be an | instead of an &? The current code is a no-op.

10959 /* Continue without DCB enabled */
10960 }
10961 #endif /* CONFIG_I40E_DCB */

regards,
dan carpenter

#1 lore raw

Dan,

Nice catch! I have submitted a patch to fix this to intel-wired-lan at lists.osuosl.org and credited you with a Reported-by. Thanks for letting me know!

Thanks,
Dave Ertman

-----Original Message-----
From: Dan Carpenter [mailto:dan.carpenter at oracle.com]
Sent: Friday, September 30, 2016 3:41 AM
To: Ertman, David M <[email protected]>
Cc: intel-wired-lan at lists.osuosl.org; kernel-janitors at vger.kernel.org
Subject: [bug report] i40e: Fix kernel panic on enable/disable LLDP

Hello Dave Ertman,

The patch a036244c0686: "i40e: Fix kernel panic on enable/disable LLDP" from Aug 29, 2016, leads to the following static checker warning:

	drivers/net/ethernet/intel/i40e/i40e_main.c:10958 i40e_probe()
	warn: odd binop '0x20000000 & 0x100000'

drivers/net/ethernet/intel/i40e/i40e_main.c
10952 pci_set_drvdata(pdev, pf);
10953 pci_save_state(pdev);
10954 #ifdef CONFIG_I40E_DCB
10955 err = i40e_init_pf_dcb(pf);
10956 if (err) {
10957 dev_info(&pdev->dev, "DCB init failed %d, disabled\n", err);
10958 pf->flags &= ~(I40E_FLAG_DCB_CAPABLE & I40E_FLAG_DCB_ENABLED);

Should this be an | instead of an &? The current code is a no-op.

10959 /* Continue without DCB enabled */
10960 }
10961 #endif /* CONFIG_I40E_DCB */

regards,
dan carpenter