On Fri, 13 Oct 2006, Alan Cox wrote: > Ar Gwe, 2006-10-13 am 10:49 -0600, ysgrifennodd Matthew Wilcox: > > No it didn't. It's undefined behaviour to perform *any* PCI config > > access to the device while it's doing a D-state transition. It may have > > I think you missed the earlier parts of the story - the kernel caches > the base config register state. > > > happened to work with the chips you tried it with, but more likely you > > never hit that window because X simply didn't try to do that. > > Which is why the kernel caches the register state. This all came up long > ago and the solution we currently have was the one chosen after > considerable debate and analysis about things like locking. We preserved > the historical reliable interface going back to the early Linux PCI > support and used by all the apps. Would it be okay for pci_block_user_cfg_access() to use its own cache, so it doesn't interfere with data previously cached by pci_save_state()? Alan Stern