Re: Linux 2.6.20-rc6 - sky2 resume breakage

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Stephen Hemminger
Date: Monday, January 29, 2007 - 12:31 pm

Does this fix it?
---
 drivers/net/sky2.c |   43 ++++++++++++++++++-------------------------
 1 file changed, 18 insertions(+), 25 deletions(-)

--- sky2-2.6.orig/drivers/net/sky2.c	2007-01-29 10:05:12.000000000 -0800
+++ sky2-2.6/drivers/net/sky2.c	2007-01-29 10:29:56.000000000 -0800
@@ -3675,6 +3675,12 @@
 	sky2_write32(hw, B0_IMSK, 0);
 	sky2_power_aux(hw);
 
+	/* Turn off IRQ to avoid power management bug (see resume) */
+	if (hw->msi) {
+		free_irq(pdev->irq, hw);
+		pci_disable_msi(pdev);
+	}
+
 	pci_save_state(pdev);
 	pci_enable_wake(pdev, pci_choose_state(pdev, state), wol);
 	pci_set_power_state(pdev, pci_choose_state(pdev, state));
@@ -3700,6 +3706,18 @@
 
 	sky2_write32(hw, B0_IMSK, Y2_IS_BASE);
 
+	/* Can't re-enable MSI because kernel resume ordering is broken
+	 * and calls device resume before ACPI (BIOS) is called.
+	 * BIOS then resets device to INTx!
+	 */
+	if (hw->msi) {
+		err = request_irq(pdev->irq, sky2_intr, IRQF_SHARED,
+				  hw->dev[0]->name, hw);
+		if (err)
+			goto out;
+		hw->msi = 0;
+	}
+
 	for (i = 0; i < hw->ports; i++) {
 		struct net_device *dev = hw->dev[i];
 		if (netif_running(dev)) {
@@ -3721,29 +3739,6 @@
 	pci_disable_device(pdev);
 	return err;
 }
-
-/* BIOS resume runs after device (it's a bug in PM)
- * as a temporary workaround on suspend/resume leave MSI disabled
- */
-static int sky2_suspend_late(struct pci_dev *pdev, pm_message_t state)
-{
-	struct sky2_hw *hw = pci_get_drvdata(pdev);
-
-	free_irq(pdev->irq, hw);
-	if (hw->msi) {
-		pci_disable_msi(pdev);
-		hw->msi = 0;
-	}
-	return 0;
-}
-
-static int sky2_resume_early(struct pci_dev *pdev)
-{
-	struct sky2_hw *hw = pci_get_drvdata(pdev);
-	struct net_device *dev = hw->dev[0];
-
-	return request_irq(pdev->irq, sky2_intr, IRQF_SHARED, dev->name, hw);
-}
 #endif
 
 static void sky2_shutdown(struct pci_dev *pdev)
@@ -3783,8 +3778,6 @@
 #ifdef CONFIG_PM
 	.suspend = sky2_suspend,
 	.resume = sky2_resume,
-	.suspend_late = sky2_suspend_late,
-	.resume_early = sky2_resume_early,
 #endif
 	.shutdown = sky2_shutdown,
 };
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Linux 2.6.20-rc6, Linus Torvalds, (Wed Jan 24, 7:58 pm)
Re: Linux 2.6.20-rc6, Sunil Naidu, (Thu Jan 25, 3:09 am)
Re: Linux 2.6.20-rc6 - build failure, Eyal Lebedinsky, (Thu Jan 25, 4:10 am)
Re: Linux 2.6.20-rc6, Arkadiusz Patyk, (Thu Jan 25, 10:50 am)
Re: Linux 2.6.20-rc6, Michal Piotrowski, (Thu Jan 25, 2:05 pm)
Re: Linux 2.6.20-rc6, David Miller, (Thu Jan 25, 2:12 pm)
Re: Linux 2.6.20-rc6 - build failure, Eyal Lebedinsky, (Thu Jan 25, 7:22 pm)
RE: Linux 2.6.20-rc6, Venkat Yekkirala, (Fri Jan 26, 9:52 am)
2.6.20-rc6: known unfixed regressions (part 1), Adrian Bunk, (Fri Jan 26, 11:10 am)
2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Fri Jan 26, 11:11 am)
2.6.20-rc6: known regressions with patches, Adrian Bunk, (Fri Jan 26, 11:18 am)
Re: Linux 2.6.20-rc6 - build failure, Mark Fasheh, (Fri Jan 26, 11:46 am)
[2.6 patch] fix OCFS2 compile error, Adrian Bunk, (Fri Jan 26, 11:49 am)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Michal Piotrowski, (Fri Jan 26, 12:04 pm)
RE: 2.6.20-rc6: known unfixed regressions (part 2), Venkat Yekkirala, (Fri Jan 26, 12:08 pm)
Re: [2.6 patch] fix OCFS2 compile error, Mark Fasheh, (Fri Jan 26, 12:47 pm)
Re: [2.6 patch] fix OCFS2 compile error, Adrian Bunk, (Fri Jan 26, 12:53 pm)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Sat Jan 27, 10:28 am)
2.6.20-rc6: known unfixed regressions (v2) (part 1), Adrian Bunk, (Sat Jan 27, 10:32 am)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Sat Jan 27, 10:39 am)
2.6.20-rc6: known unfixed regressions (v2) (part 2), Adrian Bunk, (Sat Jan 27, 10:42 am)
2.6.20-rc6: known regressions with patches (v2), Adrian Bunk, (Sat Jan 27, 10:44 am)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Linus Torvalds, (Sat Jan 27, 10:58 am)
Re: Linux 2.6.20-rc6 - supend lockdep warning, Thomas Gleixner, (Sat Jan 27, 1:47 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Sat Jan 27, 1:55 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sat Jan 27, 3:11 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Jeff Garzik, (Sat Jan 27, 3:40 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sat Jan 27, 3:44 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sun Jan 28, 3:05 pm)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Mike Galbraith, (Sun Jan 28, 11:26 pm)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Andrew Morton, (Sun Jan 28, 11:48 pm)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Mike Galbraith, (Mon Jan 29, 12:08 am)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Linus Torvalds, (Mon Jan 29, 12:13 am)
Re: 2.6.20-rc6: known regressions with patches, Ingo Molnar, (Mon Jan 29, 1:45 am)
Re: 2.6.20-rc6: known regressions with patches, Dave Jones, (Mon Jan 29, 5:58 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 12:31 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 1:10 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 2:38 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 3:23 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 3:23 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 3:31 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 3:37 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 3:38 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 3:40 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 3:45 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 3:50 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 3:57 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 4:04 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 4:26 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 4:37 pm)
[PATCH] sky2: fix MSI related resume breakage, Thomas Gleixner, (Mon Jan 29, 4:42 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 4:45 pm)
[PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 4:50 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 5:12 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 5:16 pm)
Re: [PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 5:21 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 5:22 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 5:25 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 5:26 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 5:26 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 5:31 pm)
Re: [PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 5:31 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Mon Jan 29, 11:54 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Tue Jan 30, 12:39 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 12:53 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Tue Jan 30, 1:02 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 1:03 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 1:08 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 1:13 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Len Brown, (Tue Jan 30, 1:57 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Rafael J. Wysocki, (Tue Jan 30, 9:01 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Nigel Cunningham, (Tue Jan 30, 2:28 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Wed Jan 31, 8:27 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Wed Jan 31, 10:38 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Wed Jan 31, 10:52 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Wed Jan 31, 1:13 pm)
[LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Wed Jan 31, 11:15 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Pavel Machek, (Thu Feb 1, 5:49 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Thu Feb 1, 10:48 pm)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Jeff Garzik, (Wed Feb 7, 5:40 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Tue Feb 13, 12:30 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Wed Feb 14, 11:30 pm)