Re: 2.6.10: e100 network broken after swsusp/resume

Pavel Machek
2005-01-03T08:47:31Z

Hi!

> > The Documentation/kernel-parameters.txt says this about pci=routeirq:
> > "Do IRQ routing for all PCI devices. This is normally done in
> > pci_enable_device(), so this option is a temporary workaround for broken
> > drivers that don't call it."
> >
> > Ie, it doesn't sound too bad to use it until the problem is solved.
> > And I don't know if this particular issue is a case of broken drivers,
> > but that was what the parameter was added to work around.
>
> I don't think this is a case of broken drivers. So far in this thread, it's
> been seen with e100, 8139too, snd-intel8x0, and probably one of the USB
> drivers too. And the problem happens even if the module is unloaded and
> reloaded -- unless I'm seriously missing something, this probably means
> pci_enable_device() is unable to do its job properly for some reason --
> but only after a swsusp resume.
...
> So, I think this bug probably lies in ACPI or swsusp. I highly *highly*
> doubt it's driver bugs. Hopefully I'll have time later tonight or
> tomorrow morning to see if I can figure anything else out...

Actually, as you found out in earlier mail, problem is in the driver;
but it is the interrupt controller driver.

Right soution is to save APICs state during sysdev_suspend(), and
resture it during sysdev_resume().
Pavel
--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!