From: Brian King Signed-off-by: Andrew Morton --- drivers/pci/access.c | 11 +++-------- 1 files changed, 3 insertions(+), 8 deletions(-) diff -puN drivers/pci/access.c~pci-block-config-access-during-bist-update drivers/pci/access.c --- devel/drivers/pci/access.c~pci-block-config-access-during-bist-update 2005-09-05 13:07:26.000000000 -0700 +++ devel-akpm/drivers/pci/access.c 2005-09-05 13:07:26.000000000 -0700 @@ -122,12 +122,11 @@ PCI_USER_WRITE_CONFIG(dword, u32) **/ void pci_block_user_cfg_access(struct pci_dev *dev) { - unsigned long flags; - pci_save_state(dev); - spin_lock_irqsave(&pci_lock, flags); dev->block_ucfg_access = 1; - spin_unlock_irqrestore(&pci_lock, flags); + mb(); + while (spin_is_locked(&pci_lock)) + cpu_relax(); } EXPORT_SYMBOL_GPL(pci_block_user_cfg_access); @@ -139,10 +138,6 @@ EXPORT_SYMBOL_GPL(pci_block_user_cfg_acc **/ void pci_unblock_user_cfg_access(struct pci_dev *dev) { - unsigned long flags; - - spin_lock_irqsave(&pci_lock, flags); dev->block_ucfg_access = 0; - spin_unlock_irqrestore(&pci_lock, flags); } EXPORT_SYMBOL_GPL(pci_unblock_user_cfg_access); _