Messages in this thread | | | Date | Wed, 11 Oct 2006 16:41:22 -0400 (EDT) | From | Alan Stern <> | 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |