Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-29 Thread Rafael J. Wysocki
Hi,

On Monday, 28 of March 2005 03:22, Li Shaohua wrote:
> On Sun, 2005-03-27 at 02:23, Rafael J. Wysocki wrote:
]--snip--[ 
> Could you please file a bug in bugzilla? I don't want to lose the
> context of thread. And please attach your acpidmp output in the bug.

The bug report is at:

http://bugzilla.kernel.org/show_bug.cgi?id=4416

I've put there all the information related to it that I've already collected.

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-29 Thread Rafael J. Wysocki
Hi,

On Monday, 28 of March 2005 03:22, Li Shaohua wrote:
 On Sun, 2005-03-27 at 02:23, Rafael J. Wysocki wrote:
]--snip--[ 
 Could you please file a bug in bugzilla? I don't want to lose the
 context of thread. And please attach your acpidmp output in the bug.

The bug report is at:

http://bugzilla.kernel.org/show_bug.cgi?id=4416

I've put there all the information related to it that I've already collected.

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll Alice's Adventures in Wonderland
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-27 Thread Li Shaohua
On Sun, 2005-03-27 at 02:23, Rafael J. Wysocki wrote:
> Hi,
> 
> On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
> > On Friday, 25 of March 2005 13:54, you wrote:
> > ]--snip--[
> > > >My box is still hanged solid on resume (swsusp) by the drivers:
> > > >
> > > >ohci_hcd
> > > >ehci_hcd
> > > >yenta_socket
> > > >
> > > >possibly others, too.  To avoid this, I had to revert the following
> > > patch from the Len's tree:
> > > >
> > > >diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > > >--- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> > > >+++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> > > >@@ -72,10 +72,12 @@
> > > > u8  active; /* Current IRQ
> > > */
> > > > u8  edge_level; /* All IRQs */
> > > > u8  active_high_low;/* All IRQs */
> > > >-u8  initialized;
> > > > u8  resource_type;
> > > > u8  possible_count;
> > > > u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
> > > >+u8  initialized:1;
> > > >+u8  suspend_resume:1;
> > > >+u8  reserved:6;
> > > > };
> > > >
> > > > struct acpi_pci_link {
> > > >@@ -530,6 +532,10 @@
> > > >
> > > > ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
> > > >
> > > >+if (link->irq.suspend_resume) {
> > > >+acpi_pci_link_set(link, link->irq.active);
> > > >+link->irq.suspend_resume = 0;
> > > >+}
> > > > if (link->irq.initialized)
> > > > return_VALUE(0);
> > > 
> > > How about just remove below line:
> > > >+acpi_pci_link_set(link, link->irq.active);
> > 
> > You mean apply the patch again and remove just the single
> > line?  No effect (ie hangs).
> 
> It looks like removing this line couldn't help.
> 
> Apparently, acpi_pci_link_set(link, link->irq.active) must be called
> _before_ the call to pci_write_config_word() in
> drivers/pci/pci.c:pci_set_power_state(), because the box hangs
> otherwise.  However, with the patch applied,
> acpi_pci_link_set(link, link->irq.active) is only called through
> pcibios_enable_irq() in pcibios_enable_device(), which is _after_
> the call to pci_set_power_state() in pci_enable_device_bars(),
> so it's too late.
> 
> Hence, it seems, if you really want to get rid of the
> irqrouter_resume(), whatever the reason, the simplest fix
> seems to be to change the order of calls to pci_set_power_state()
> and pcibios_enable_device() in pci_enable_device_bars():
> 
> --- old/drivers/pci/pci.c 2005-03-26 19:10:09.0 +0100
> +++ linux-2.6.12-rc1-mm2/drivers/pci/pci.c2005-03-26 19:10:54.0 
> +0100
> @@ -442,9 +442,9 @@ pci_enable_device_bars(struct pci_dev *d
>  {
>   int err;
>  
> - pci_set_power_state(dev, PCI_D0);
>   if ((err = pcibios_enable_device(dev, bars)) < 0)
>   return err;
> + pci_set_power_state(dev, PCI_D0);
>   return 0;
>  }
>  
> though I'm not sure if that's legal.
Hmm, no, pci_set_power_state should be called before
pcibios_enable_device, otherwise enable_device may fail. This is very
strange. In boot time, there also are uninitialized link devices, I'm
wonder why the call of pci_enable_device_bars doesn't fail in boot time.
Did you find the bug only in specific system?

Could you please file a bug in bugzilla? I don't want to lose the
context of thread. And please attach your acpidmp output in the bug.

Thanks,
Shaohua

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


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-27 Thread Li Shaohua
On Sun, 2005-03-27 at 02:23, Rafael J. Wysocki wrote:
 Hi,
 
 On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
  On Friday, 25 of March 2005 13:54, you wrote:
  ]--snip--[
   My box is still hanged solid on resume (swsusp) by the drivers:
   
   ohci_hcd
   ehci_hcd
   yenta_socket
   
   possibly others, too.  To avoid this, I had to revert the following
   patch from the Len's tree:
   
   diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
   --- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
   +++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
   @@ -72,10 +72,12 @@
u8  active; /* Current IRQ
   */
u8  edge_level; /* All IRQs */
u8  active_high_low;/* All IRQs */
   -u8  initialized;
u8  resource_type;
u8  possible_count;
u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
   +u8  initialized:1;
   +u8  suspend_resume:1;
   +u8  reserved:6;
};
   
struct acpi_pci_link {
   @@ -530,6 +532,10 @@
   
ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);
   
   +if (link-irq.suspend_resume) {
   +acpi_pci_link_set(link, link-irq.active);
   +link-irq.suspend_resume = 0;
   +}
if (link-irq.initialized)
return_VALUE(0);
   
   How about just remove below line:
   +acpi_pci_link_set(link, link-irq.active);
  
  You mean apply the patch again and remove just the single
  line?  No effect (ie hangs).
 
 It looks like removing this line couldn't help.
 
 Apparently, acpi_pci_link_set(link, link-irq.active) must be called
 _before_ the call to pci_write_config_word() in
 drivers/pci/pci.c:pci_set_power_state(), because the box hangs
 otherwise.  However, with the patch applied,
 acpi_pci_link_set(link, link-irq.active) is only called through
 pcibios_enable_irq() in pcibios_enable_device(), which is _after_
 the call to pci_set_power_state() in pci_enable_device_bars(),
 so it's too late.
 
 Hence, it seems, if you really want to get rid of the
 irqrouter_resume(), whatever the reason, the simplest fix
 seems to be to change the order of calls to pci_set_power_state()
 and pcibios_enable_device() in pci_enable_device_bars():
 
 --- old/drivers/pci/pci.c 2005-03-26 19:10:09.0 +0100
 +++ linux-2.6.12-rc1-mm2/drivers/pci/pci.c2005-03-26 19:10:54.0 
 +0100
 @@ -442,9 +442,9 @@ pci_enable_device_bars(struct pci_dev *d
  {
   int err;
  
 - pci_set_power_state(dev, PCI_D0);
   if ((err = pcibios_enable_device(dev, bars))  0)
   return err;
 + pci_set_power_state(dev, PCI_D0);
   return 0;
  }
  
 though I'm not sure if that's legal.
Hmm, no, pci_set_power_state should be called before
pcibios_enable_device, otherwise enable_device may fail. This is very
strange. In boot time, there also are uninitialized link devices, I'm
wonder why the call of pci_enable_device_bars doesn't fail in boot time.
Did you find the bug only in specific system?

Could you please file a bug in bugzilla? I don't want to lose the
context of thread. And please attach your acpidmp output in the bug.

Thanks,
Shaohua

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


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-26 Thread Rafael J. Wysocki
On Saturday, 26 of March 2005 19:23, Rafael J. Wysocki wrote:
> Hi,
> 
> On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
> > On Friday, 25 of March 2005 13:54, you wrote:
> > ]--snip--[
> > > >My box is still hanged solid on resume (swsusp) by the drivers:
> > > >
> > > >ohci_hcd
> > > >ehci_hcd
> > > >yenta_socket
> > > >
> > > >possibly others, too.  To avoid this, I had to revert the following
> > > patch from the Len's tree:
> > > >
> > > >diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > > >--- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> > > >+++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> > > >@@ -72,10 +72,12 @@
> > > > u8  active; /* Current IRQ
> > > */
> > > > u8  edge_level; /* All IRQs */
> > > > u8  active_high_low;/* All IRQs */
> > > >-u8  initialized;
> > > > u8  resource_type;
> > > > u8  possible_count;
> > > > u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
> > > >+u8  initialized:1;
> > > >+u8  suspend_resume:1;
> > > >+u8  reserved:6;
> > > > };
> > > >
> > > > struct acpi_pci_link {
> > > >@@ -530,6 +532,10 @@
> > > >
> > > > ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
> > > >
> > > >+if (link->irq.suspend_resume) {
> > > >+acpi_pci_link_set(link, link->irq.active);
> > > >+link->irq.suspend_resume = 0;
> > > >+}
> > > > if (link->irq.initialized)
> > > > return_VALUE(0);
> > > 
> > > How about just remove below line:
> > > >+acpi_pci_link_set(link, link->irq.active);
> > 
> > You mean apply the patch again and remove just the single
> > line?  No effect (ie hangs).
> 
> It looks like removing this line couldn't help.
> 
> Apparently, acpi_pci_link_set(link, link->irq.active) must be called
> _before_ the call to pci_write_config_word() in
> drivers/pci/pci.c:pci_set_power_state(), because the box hangs
> otherwise.  However, with the patch applied,
> acpi_pci_link_set(link, link->irq.active) is only called through
> pcibios_enable_irq() in pcibios_enable_device(), which is _after_
> the call to pci_set_power_state() in pci_enable_device_bars(),
> so it's too late.
> 
> Hence, it seems, if you really want to get rid of the
> irqrouter_resume(), whatever the reason, the simplest fix
> seems to be to change the order of calls to pci_set_power_state()
> and pcibios_enable_device() in pci_enable_device_bars():

Sorry, forget it.  It was a good theory that didn't work.

It seems that we have to set all of the PCI links or at least some
of them before we start calling pci_set_power_state().

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-26 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
> On Friday, 25 of March 2005 13:54, you wrote:
> ]--snip--[
> > >My box is still hanged solid on resume (swsusp) by the drivers:
> > >
> > >ohci_hcd
> > >ehci_hcd
> > >yenta_socket
> > >
> > >possibly others, too.  To avoid this, I had to revert the following
> > patch from the Len's tree:
> > >
> > >diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> > >--- a/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
> > >+++ b/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
> > >@@ -72,10 +72,12 @@
> > >   u8  active; /* Current IRQ
> > */
> > >   u8  edge_level; /* All IRQs */
> > >   u8  active_high_low;/* All IRQs */
> > >-  u8  initialized;
> > >   u8  resource_type;
> > >   u8  possible_count;
> > >   u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
> > >+  u8  initialized:1;
> > >+  u8  suspend_resume:1;
> > >+  u8  reserved:6;
> > > };
> > >
> > > struct acpi_pci_link {
> > >@@ -530,6 +532,10 @@
> > >
> > >   ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
> > >
> > >+  if (link->irq.suspend_resume) {
> > >+  acpi_pci_link_set(link, link->irq.active);
> > >+  link->irq.suspend_resume = 0;
> > >+  }
> > >   if (link->irq.initialized)
> > >   return_VALUE(0);
> > 
> > How about just remove below line:
> > >+  acpi_pci_link_set(link, link->irq.active);
> 
> You mean apply the patch again and remove just the single
> line?  No effect (ie hangs).

It looks like removing this line couldn't help.

Apparently, acpi_pci_link_set(link, link->irq.active) must be called
_before_ the call to pci_write_config_word() in
drivers/pci/pci.c:pci_set_power_state(), because the box hangs
otherwise.  However, with the patch applied,
acpi_pci_link_set(link, link->irq.active) is only called through
pcibios_enable_irq() in pcibios_enable_device(), which is _after_
the call to pci_set_power_state() in pci_enable_device_bars(),
so it's too late.

Hence, it seems, if you really want to get rid of the
irqrouter_resume(), whatever the reason, the simplest fix
seems to be to change the order of calls to pci_set_power_state()
and pcibios_enable_device() in pci_enable_device_bars():

--- old/drivers/pci/pci.c   2005-03-26 19:10:09.0 +0100
+++ linux-2.6.12-rc1-mm2/drivers/pci/pci.c  2005-03-26 19:10:54.0 
+0100
@@ -442,9 +442,9 @@ pci_enable_device_bars(struct pci_dev *d
 {
int err;
 
-   pci_set_power_state(dev, PCI_D0);
if ((err = pcibios_enable_device(dev, bars)) < 0)
return err;
+   pci_set_power_state(dev, PCI_D0);
return 0;
 }
 
though I'm not sure if that's legal.

Greets,
Rafael 


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-26 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
 On Friday, 25 of March 2005 13:54, you wrote:
 ]--snip--[
  My box is still hanged solid on resume (swsusp) by the drivers:
  
  ohci_hcd
  ehci_hcd
  yenta_socket
  
  possibly others, too.  To avoid this, I had to revert the following
  patch from the Len's tree:
  
  diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
  --- a/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
  +++ b/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
  @@ -72,10 +72,12 @@
 u8  active; /* Current IRQ
  */
 u8  edge_level; /* All IRQs */
 u8  active_high_low;/* All IRQs */
  -  u8  initialized;
 u8  resource_type;
 u8  possible_count;
 u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
  +  u8  initialized:1;
  +  u8  suspend_resume:1;
  +  u8  reserved:6;
   };
  
   struct acpi_pci_link {
  @@ -530,6 +532,10 @@
  
 ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);
  
  +  if (link-irq.suspend_resume) {
  +  acpi_pci_link_set(link, link-irq.active);
  +  link-irq.suspend_resume = 0;
  +  }
 if (link-irq.initialized)
 return_VALUE(0);
  
  How about just remove below line:
  +  acpi_pci_link_set(link, link-irq.active);
 
 You mean apply the patch again and remove just the single
 line?  No effect (ie hangs).

It looks like removing this line couldn't help.

Apparently, acpi_pci_link_set(link, link-irq.active) must be called
_before_ the call to pci_write_config_word() in
drivers/pci/pci.c:pci_set_power_state(), because the box hangs
otherwise.  However, with the patch applied,
acpi_pci_link_set(link, link-irq.active) is only called through
pcibios_enable_irq() in pcibios_enable_device(), which is _after_
the call to pci_set_power_state() in pci_enable_device_bars(),
so it's too late.

Hence, it seems, if you really want to get rid of the
irqrouter_resume(), whatever the reason, the simplest fix
seems to be to change the order of calls to pci_set_power_state()
and pcibios_enable_device() in pci_enable_device_bars():

--- old/drivers/pci/pci.c   2005-03-26 19:10:09.0 +0100
+++ linux-2.6.12-rc1-mm2/drivers/pci/pci.c  2005-03-26 19:10:54.0 
+0100
@@ -442,9 +442,9 @@ pci_enable_device_bars(struct pci_dev *d
 {
int err;
 
-   pci_set_power_state(dev, PCI_D0);
if ((err = pcibios_enable_device(dev, bars))  0)
return err;
+   pci_set_power_state(dev, PCI_D0);
return 0;
 }
 
though I'm not sure if that's legal.

Greets,
Rafael 


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll Alice's Adventures in Wonderland
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-26 Thread Rafael J. Wysocki
On Saturday, 26 of March 2005 19:23, Rafael J. Wysocki wrote:
 Hi,
 
 On Friday, 25 of March 2005 15:19, Rafael J. Wysocki wrote: 
  On Friday, 25 of March 2005 13:54, you wrote:
  ]--snip--[
   My box is still hanged solid on resume (swsusp) by the drivers:
   
   ohci_hcd
   ehci_hcd
   yenta_socket
   
   possibly others, too.  To avoid this, I had to revert the following
   patch from the Len's tree:
   
   diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
   --- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
   +++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
   @@ -72,10 +72,12 @@
u8  active; /* Current IRQ
   */
u8  edge_level; /* All IRQs */
u8  active_high_low;/* All IRQs */
   -u8  initialized;
u8  resource_type;
u8  possible_count;
u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
   +u8  initialized:1;
   +u8  suspend_resume:1;
   +u8  reserved:6;
};
   
struct acpi_pci_link {
   @@ -530,6 +532,10 @@
   
ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);
   
   +if (link-irq.suspend_resume) {
   +acpi_pci_link_set(link, link-irq.active);
   +link-irq.suspend_resume = 0;
   +}
if (link-irq.initialized)
return_VALUE(0);
   
   How about just remove below line:
   +acpi_pci_link_set(link, link-irq.active);
  
  You mean apply the patch again and remove just the single
  line?  No effect (ie hangs).
 
 It looks like removing this line couldn't help.
 
 Apparently, acpi_pci_link_set(link, link-irq.active) must be called
 _before_ the call to pci_write_config_word() in
 drivers/pci/pci.c:pci_set_power_state(), because the box hangs
 otherwise.  However, with the patch applied,
 acpi_pci_link_set(link, link-irq.active) is only called through
 pcibios_enable_irq() in pcibios_enable_device(), which is _after_
 the call to pci_set_power_state() in pci_enable_device_bars(),
 so it's too late.
 
 Hence, it seems, if you really want to get rid of the
 irqrouter_resume(), whatever the reason, the simplest fix
 seems to be to change the order of calls to pci_set_power_state()
 and pcibios_enable_device() in pci_enable_device_bars():

Sorry, forget it.  It was a good theory that didn't work.

It seems that we have to set all of the PCI links or at least some
of them before we start calling pci_set_power_state().

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll Alice's Adventures in Wonderland
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 13:54, you wrote:
]--snip--[
> >My box is still hanged solid on resume (swsusp) by the drivers:
> >
> >ohci_hcd
> >ehci_hcd
> >yenta_socket
> >
> >possibly others, too.  To avoid this, I had to revert the following
> patch from the Len's tree:
> >
> >diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> >--- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> >+++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
> >@@ -72,10 +72,12 @@
> > u8  active; /* Current IRQ
> */
> > u8  edge_level; /* All IRQs */
> > u8  active_high_low;/* All IRQs */
> >-u8  initialized;
> > u8  resource_type;
> > u8  possible_count;
> > u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
> >+u8  initialized:1;
> >+u8  suspend_resume:1;
> >+u8  reserved:6;
> > };
> >
> > struct acpi_pci_link {
> >@@ -530,6 +532,10 @@
> >
> > ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
> >
> >+if (link->irq.suspend_resume) {
> >+acpi_pci_link_set(link, link->irq.active);
> >+link->irq.suspend_resume = 0;
> >+}
> > if (link->irq.initialized)
> > return_VALUE(0);
> 
> How about just remove below line:
> >+acpi_pci_link_set(link, link->irq.active);

You mean apply the patch again and remove just the single
line?  No effect (ie hangs).

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Li, Shaohua
Hi,
>On Friday, 25 of March 2005 09:21, Andrew Morton wrote:
>>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-
>rc1/2.6.12-rc1-mm3/
>>
>> - Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.
>
>First, rmmod works again (thanks ;-)).
>
>> - Again, we'd like people who have had recent DRM and USB resume
problems
>to
>>   test and report, please.
>
>My box is still hanged solid on resume (swsusp) by the drivers:
>
>ohci_hcd
>ehci_hcd
>yenta_socket
>
>possibly others, too.  To avoid this, I had to revert the following
patch
>from
>the Len's tree:
>
>diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
>--- a/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
>+++ b/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
>@@ -72,10 +72,12 @@
>   u8  active; /* Current IRQ
*/
>   u8  edge_level; /* All IRQs */
>   u8  active_high_low;/* All IRQs */
>-  u8  initialized;
>   u8  resource_type;
>   u8  possible_count;
>   u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
>+  u8  initialized:1;
>+  u8  suspend_resume:1;
>+  u8  reserved:6;
> };
>
> struct acpi_pci_link {
>@@ -530,6 +532,10 @@
>
>   ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
>
>+  if (link->irq.suspend_resume) {
>+  acpi_pci_link_set(link, link->irq.active);
>+  link->irq.suspend_resume = 0;
>+  }
>   if (link->irq.initialized)
>   return_VALUE(0);

How about just remove below line:
>+  acpi_pci_link_set(link, link->irq.active);

Thanks,
Shaohua
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 09:21, Andrew Morton wrote:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm3/
> 
> - Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.

First, rmmod works again (thanks ;-)).

> - Again, we'd like people who have had recent DRM and USB resume problems to
>   test and report, please.

My box is still hanged solid on resume (swsusp) by the drivers:

ohci_hcd
ehci_hcd
yenta_socket

possibly others, too.  To avoid this, I had to revert the following patch from
the Len's tree:

diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
--- a/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
+++ b/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
@@ -72,10 +72,12 @@
u8  active; /* Current IRQ */
u8  edge_level; /* All IRQs */
u8  active_high_low;/* All IRQs */
-   u8  initialized;
u8  resource_type;
u8  possible_count;
u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
+   u8  initialized:1;
+   u8  suspend_resume:1;
+   u8  reserved:6;
 };
 
 struct acpi_pci_link {
@@ -530,6 +532,10 @@
 
ACPI_FUNCTION_TRACE("acpi_pci_link_allocate");
 
+   if (link->irq.suspend_resume) {
+   acpi_pci_link_set(link, link->irq.active);
+   link->irq.suspend_resume = 0;
+   }
if (link->irq.initialized)
return_VALUE(0);
 
@@ -713,38 +719,24 @@
return_VALUE(result);
 }
 
-
-static int
-acpi_pci_link_resume (
-   struct acpi_pci_link*link)
-{
-   ACPI_FUNCTION_TRACE("acpi_pci_link_resume");
-   
-   if (link->irq.active && link->irq.initialized)
-   return_VALUE(acpi_pci_link_set(link, link->irq.active));
-   else
-   return_VALUE(0);
-}
-
-
 static int
-irqrouter_resume(
-   struct sys_device *dev)
+irqrouter_suspend(
+   struct sys_device *dev,
+   u32 state)
 {
struct list_head*node = NULL;
struct acpi_pci_link*link = NULL;
 
-   ACPI_FUNCTION_TRACE("irqrouter_resume");
+   ACPI_FUNCTION_TRACE("irqrouter_suspend");
 
list_for_each(node, _link.entries) {
-
link = list_entry(node, struct acpi_pci_link, node);
if (!link) {
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid link 
context\n"));
continue;
}
-
-   acpi_pci_link_resume(link);
+   if (link->irq.active && link->irq.initialized)
+   link->irq.suspend_resume = 1;
}
return_VALUE(0);
 }
@@ -856,7 +848,7 @@
 
 static struct sysdev_class irqrouter_sysdev_class = {
 set_kset_name("irqrouter"),
-.resume = irqrouter_resume,
+.suspend = irqrouter_suspend,
 };
 
 
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/18 16:30:29-05:00 [EMAIL PROTECTED] 
#   [ACPI] S3 Suspend to RAM: interrupt resume fix
#   
#   Delete PCI Interrupt Link Device .resume method --
#   it is the device driver's job to request interrupts,
#   not the Link's job to remember what the devices want.
#   
#   This addresses the issue of attempting to run
#   the ACPI interpreter too early in resume, when
#   interrupts are still disabled.
#   
#   http://bugzilla.kernel.org/show_bug.cgi?id=3469
#   
#   Signed-off-by: David Shaohua Li <[EMAIL PROTECTED]>
#   Signed-off-by: Len Brown <[EMAIL PROTECTED]>
# 
# drivers/acpi/pci_link.c
#   2005/03/02 22:23:50-05:00 [EMAIL PROTECTED] +14 -22
#   Delete PCI Interrupt Link .resume method
# 

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 09:21, Andrew Morton wrote:
 
 ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc1/2.6.12-rc1-mm3/
 
 - Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.

First, rmmod works again (thanks ;-)).

 - Again, we'd like people who have had recent DRM and USB resume problems to
   test and report, please.

My box is still hanged solid on resume (swsusp) by the drivers:

ohci_hcd
ehci_hcd
yenta_socket

possibly others, too.  To avoid this, I had to revert the following patch from
the Len's tree:

diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
--- a/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
+++ b/drivers/acpi/pci_link.c   2005-03-24 04:57:27 -08:00
@@ -72,10 +72,12 @@
u8  active; /* Current IRQ */
u8  edge_level; /* All IRQs */
u8  active_high_low;/* All IRQs */
-   u8  initialized;
u8  resource_type;
u8  possible_count;
u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
+   u8  initialized:1;
+   u8  suspend_resume:1;
+   u8  reserved:6;
 };
 
 struct acpi_pci_link {
@@ -530,6 +532,10 @@
 
ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);
 
+   if (link-irq.suspend_resume) {
+   acpi_pci_link_set(link, link-irq.active);
+   link-irq.suspend_resume = 0;
+   }
if (link-irq.initialized)
return_VALUE(0);
 
@@ -713,38 +719,24 @@
return_VALUE(result);
 }
 
-
-static int
-acpi_pci_link_resume (
-   struct acpi_pci_link*link)
-{
-   ACPI_FUNCTION_TRACE(acpi_pci_link_resume);
-   
-   if (link-irq.active  link-irq.initialized)
-   return_VALUE(acpi_pci_link_set(link, link-irq.active));
-   else
-   return_VALUE(0);
-}
-
-
 static int
-irqrouter_resume(
-   struct sys_device *dev)
+irqrouter_suspend(
+   struct sys_device *dev,
+   u32 state)
 {
struct list_head*node = NULL;
struct acpi_pci_link*link = NULL;
 
-   ACPI_FUNCTION_TRACE(irqrouter_resume);
+   ACPI_FUNCTION_TRACE(irqrouter_suspend);
 
list_for_each(node, acpi_link.entries) {
-
link = list_entry(node, struct acpi_pci_link, node);
if (!link) {
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, Invalid link 
context\n));
continue;
}
-
-   acpi_pci_link_resume(link);
+   if (link-irq.active  link-irq.initialized)
+   link-irq.suspend_resume = 1;
}
return_VALUE(0);
 }
@@ -856,7 +848,7 @@
 
 static struct sysdev_class irqrouter_sysdev_class = {
 set_kset_name(irqrouter),
-.resume = irqrouter_resume,
+.suspend = irqrouter_suspend,
 };
 
 
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/18 16:30:29-05:00 [EMAIL PROTECTED] 
#   [ACPI] S3 Suspend to RAM: interrupt resume fix
#   
#   Delete PCI Interrupt Link Device .resume method --
#   it is the device driver's job to request interrupts,
#   not the Link's job to remember what the devices want.
#   
#   This addresses the issue of attempting to run
#   the ACPI interpreter too early in resume, when
#   interrupts are still disabled.
#   
#   http://bugzilla.kernel.org/show_bug.cgi?id=3469
#   
#   Signed-off-by: David Shaohua Li [EMAIL PROTECTED]
#   Signed-off-by: Len Brown [EMAIL PROTECTED]
# 
# drivers/acpi/pci_link.c
#   2005/03/02 22:23:50-05:00 [EMAIL PROTECTED] +14 -22
#   Delete PCI Interrupt Link .resume method
# 

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll Alice's Adventures in Wonderland
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Li, Shaohua
Hi,
On Friday, 25 of March 2005 09:21, Andrew Morton wrote:

 ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-
rc1/2.6.12-rc1-mm3/

 - Mainly a bunch of fixes relative to 2.6.12-rc1-mm2.

First, rmmod works again (thanks ;-)).

 - Again, we'd like people who have had recent DRM and USB resume
problems
to
   test and report, please.

My box is still hanged solid on resume (swsusp) by the drivers:

ohci_hcd
ehci_hcd
yenta_socket

possibly others, too.  To avoid this, I had to revert the following
patch
from
the Len's tree:

diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
--- a/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
+++ b/drivers/acpi/pci_link.c  2005-03-24 04:57:27 -08:00
@@ -72,10 +72,12 @@
   u8  active; /* Current IRQ
*/
   u8  edge_level; /* All IRQs */
   u8  active_high_low;/* All IRQs */
-  u8  initialized;
   u8  resource_type;
   u8  possible_count;
   u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
+  u8  initialized:1;
+  u8  suspend_resume:1;
+  u8  reserved:6;
 };

 struct acpi_pci_link {
@@ -530,6 +532,10 @@

   ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);

+  if (link-irq.suspend_resume) {
+  acpi_pci_link_set(link, link-irq.active);
+  link-irq.suspend_resume = 0;
+  }
   if (link-irq.initialized)
   return_VALUE(0);

How about just remove below line:
+  acpi_pci_link_set(link, link-irq.active);

Thanks,
Shaohua
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.6.12-rc1-mm3: box hangs solid on resume from disk while resuming device drivers

2005-03-25 Thread Rafael J. Wysocki
Hi,

On Friday, 25 of March 2005 13:54, you wrote:
]--snip--[
 My box is still hanged solid on resume (swsusp) by the drivers:
 
 ohci_hcd
 ehci_hcd
 yenta_socket
 
 possibly others, too.  To avoid this, I had to revert the following
 patch from the Len's tree:
 
 diff -Naru a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
 --- a/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
 +++ b/drivers/acpi/pci_link.c2005-03-24 04:57:27 -08:00
 @@ -72,10 +72,12 @@
  u8  active; /* Current IRQ
 */
  u8  edge_level; /* All IRQs */
  u8  active_high_low;/* All IRQs */
 -u8  initialized;
  u8  resource_type;
  u8  possible_count;
  u8  possible[ACPI_PCI_LINK_MAX_POSSIBLE];
 +u8  initialized:1;
 +u8  suspend_resume:1;
 +u8  reserved:6;
  };
 
  struct acpi_pci_link {
 @@ -530,6 +532,10 @@
 
  ACPI_FUNCTION_TRACE(acpi_pci_link_allocate);
 
 +if (link-irq.suspend_resume) {
 +acpi_pci_link_set(link, link-irq.active);
 +link-irq.suspend_resume = 0;
 +}
  if (link-irq.initialized)
  return_VALUE(0);
 
 How about just remove below line:
 +acpi_pci_link_set(link, link-irq.active);

You mean apply the patch again and remove just the single
line?  No effect (ie hangs).

Greets,
Rafael


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll Alice's Adventures in Wonderland
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/