Re: pci commands resume order [Was: 2.6.25-git2: BUG: unable to handle kernel paging request at ffffffffffffffff]

From: Jesse Barnes
Date: Fri Apr 25 2008 - 13:12:24 EST


On Friday, April 25, 2008 1:18 am Jiri Slaby wrote:
> On 04/25/2008 09:45 AM, David Miller wrote:
> > I notice Jiri, in your hardware list, you have an ath5k Atheros AR5212
> > chip in there.
> >
> > I took a look at the resume code for ath5k but nothing really suspicious
> > there except:
> >
> > err = pci_enable_device(pdev);
> > if (err)
> > return err;
> >
> > pci_restore_state(pdev);
> >
> > Shouldn't we restore state before we turn the chip back on and thus
> > potentially let it start DMA'ing all over the place?
>
> Hmm, actually every second wireless driver do this :/. I think it's wrong
> too. Jesse?

It might be a little safer to enable the device after restoring its state, but
if your device starts DMAing randomly when going from D3->D0 it's probably
not a very good device. :)

> BTW pci_set_power_state(pdev, PCI_D0); in resume isn't needed at all,
> right? It's done in pci_enable_device, isn't it?

Right, pci_enable_device will put the device in D0, so setting it again is
redundant (looks like lots of drivers do this).

Jesse
--
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/