[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0610111632240.6353-100000@iolanthe.rowland.org>
Date: Wed, 11 Oct 2006 16:41:22 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Greg KH <greg@...ah.com>
cc: linux-pci@...ey.karlin.mff.cuni.cz,
Linux-pm mailing list <linux-pm@...ts.osdl.org>,
Kernel development list <linux-kernel@...r.kernel.org>
Subject: Bug in PCI core
When a PCI device is suspended, its driver calls pci_save_state() so that
the config space can be restored when the device is resumed. Then the
driver calls pci_set_power_state().
However pci_set_power_state() calls pci_block_user_cfg_access(), and that
routine calls pci_save_state() again. This overwrites the saved state
with data in which memory, I/O, and bus master accesses are disabled. As
a result, when the device is resumed it doesn't work.
Obviously pci_block_user_cfg_access() needs to be fixed. I don't know the
right way to fix it; hopefully somebody else does.
Alan Stern
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists