Messages in this thread | | | From | Jesse Barnes <> | Subject | Re: pci commands resume order [Was: 2.6.25-git2: BUG: unable to handle kernel paging request at ffffffffffffffff] | Date | Fri, 25 Apr 2008 10:11:51 -0700 |
| |
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
| |