Re: [ 069/100] e1000e: fix pci-device enable-counter balance

From: Konstantin Khlebnikov
Date: Wed Mar 13 2013 - 03:52:32 EST


Greg Kroah-Hartman wrote:
3.8-stable review patch. If anyone has any objections, please let me know.

Vivek Goyal reported about problem caused by this improper fix.

https://lkml.org/lkml/2013/3/12/529

(this patch also pending to 3.0-stable and 3.4-stable)


------------------

From: Konstantin Khlebnikov<khlebnikov@xxxxxxxxxx>

commit 4e0855dff094b0d56d6b5b271e0ce7851cc1e063 upstream.

This patch removes redundant and unbalanced pci_disable_device() from
__e1000_shutdown(). pci_clear_master() is enough, device can go into
suspended state with elevated enable_cnt.

Bug was introduced in commit 23606cf5d1192c2b17912cb2ef6e62f9b11de133
("e1000e / PCI / PM: Add basic runtime PM support (rev. 4)") in v2.6.35

Signed-off-by: Konstantin Khlebnikov<khlebnikov@xxxxxxxxxx>
Cc: Bruce Allan<bruce.w.allan@xxxxxxxxx>
Acked-by: Rafael J. Wysocki<rafael.j.wysocki@xxxxxxxxx>
Tested-by: Borislav Petkov<bp@xxxxxxx>
Tested-by: Aaron Brown<aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher<jeffrey.t.kirsher@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman<gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/net/ethernet/intel/e1000e/netdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -5549,7 +5549,7 @@ static int __e1000_shutdown(struct pci_d
*/
e1000e_release_hw_control(adapter);

- pci_disable_device(pdev);
+ pci_clear_master(pdev);

return 0;
}



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/