On Tue, Jul 26, 2005 at 04:49:34PM -0700, Greg KH wrote: > On Fri, Jul 08, 2005 at 02:34:56PM -0400, John W. Linville wrote: > > @@ -301,6 +335,16 @@ pci_set_power_state(struct pci_dev *dev, > > udelay(200); > > dev->current_state = state; > > > > + /* According to section 5.4.1 of the "PCI BUS POWER MANAGEMENT > > + * INTERFACE SPECIFICATION, REV. 1.2", a device transitioning > > + * from D3hot to D0 _may_ perform an internal reset, thereby > > + * going to "D0 Uninitialized" rather than "D0 Initialized". > > + * In that case, we need to restore at least the BARs so that > > + * the device will be accessible to its driver. > > + */ > > + if (need_restore) > > + pci_restore_bars(dev); > > + > > This code doesn't even build, as need_restore isn't a global variable. Hmmm...you must be missing this hunk from the patch posted on July 8? @@ -239,7 +270,7 @@ pci_find_parent_resource(const struct pc int pci_set_power_state(struct pci_dev *dev, pci_power_t state) { - int pm; + int pm, need_restore = 0; u16 pmcsr, pmc; /* bound the state we're entering */ > Care to redo this patch (and merge it with your other one) and resend > it? I'll be happy to do so, and include the other comment tweaks that Grant requested. I should get to it tomorrow morning. Thanks, John -- John W. Linville linville@xxxxxxxxxxxxx