bnx2x: fix a power state test
PATCH 1/1 bnx2x: fix a power state test
PCI_D0 is zero so the original test is never true.
---
I don't have the hardware to test this, and I'm not positive on it. Buyer beware!
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +1 -1
@@ -1391,7 +1391,7 @@ static bool bnx2x_is_nvm_accessible(struct bnx2x *bp) rc =pci_read_config_word (bp->pdev, bp->pm_cap +PCI_PM_CTRL , &pm); -if ((rc && !netif_running (dev)) || (!rc && ((pm &PCI_D0 ) !=PCI_D0 ))) +if ((rc && !netif_running (dev)) || (!rc && pm !=PCI_D0 ))return false;return true;
David Miller
maintainerFrom: Dan Carpenter <[email protected]>
Date: Fri, 31 May 2013 13:07:19 +0300
Quoted 6 lines
PCI_D0is zero so the original test is never true.Signed-off-by Dan Carpenter <[email protected]>---
I don't have the hardware to test this, and I'm not positive on it. Buyer beware!
Someone please review/test this patch, thanks.
Quoted 14 lines
PCI_D0is zero so the original test is never true.Signed-off-by Dan Carpenter <[email protected]>---
I don't have the hardware to test this, and I'm not positive on it. Buyer beware!drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +0
-0
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c static bool bnx2x_is_nvm_accessible(struct bnx2x · line 1396
Quoted 7 lines
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +1
-1@@ -1391,7 +1391,7 @@ static bool bnx2x_is_nvm_accessible(struct bnx2x *bp) rc =pci_read_config_word (bp->pdev, bp->pm_cap +PCI_PM_CTRL , &pm); -if ((rc && !netif_running (dev)) || (!rc && ((pm &PCI_D0 ) !=PCI_D0 ))) +if ((rc && !netif_running (dev)) || (!rc && pm !=PCI_D0 ))return false;
Hi Dan,
Thanks for the catch, but I think your fix might be incomplete; It should probably be
+ if ((rc && !netif_running(dev)) || (!rc && ((pm & PCI_PM_CTRL_STATE_MASK) != PCI_D0)))
Otherwise the condition will fail if other bits are set in the PM control register.
Thanks,
Yuval