| From 4e8a4c3e223f32d0c52b151eb7a35e7202eaea6c Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Sat, 25 Jul 2009 16:14:47 +0200 |
| Subject: [PATCH] pci: Convert pci_lock to raw_spinlock |
| |
| commit b68d8890994c099f089ab36eb55302fdc1884612 in tip. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| |
| diff --git a/drivers/pci/access.c b/drivers/pci/access.c |
| index db23200..0691dbb 100644 |
| --- a/drivers/pci/access.c |
| +++ b/drivers/pci/access.c |
| @@ -12,7 +12,7 @@ |
| * configuration space. |
| */ |
| |
| -static DEFINE_SPINLOCK(pci_lock); |
| +static DEFINE_RAW_SPINLOCK(pci_lock); |
| |
| /* |
| * Wrappers for all PCI configuration access functions. They just check |
| @@ -32,10 +32,10 @@ int pci_bus_read_config_##size \ |
| unsigned long flags; \ |
| u32 data = 0; \ |
| if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \ |
| - spin_lock_irqsave(&pci_lock, flags); \ |
| + raw_spin_lock_irqsave(&pci_lock, flags); \ |
| res = bus->ops->read(bus, devfn, pos, len, &data); \ |
| *value = (type)data; \ |
| - spin_unlock_irqrestore(&pci_lock, flags); \ |
| + raw_spin_unlock_irqrestore(&pci_lock, flags); \ |
| return res; \ |
| } |
| |
| @@ -46,9 +46,9 @@ int pci_bus_write_config_##size \ |
| int res; \ |
| unsigned long flags; \ |
| if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \ |
| - spin_lock_irqsave(&pci_lock, flags); \ |
| + raw_spin_lock_irqsave(&pci_lock, flags); \ |
| res = bus->ops->write(bus, devfn, pos, len, value); \ |
| - spin_unlock_irqrestore(&pci_lock, flags); \ |
| + raw_spin_unlock_irqrestore(&pci_lock, flags); \ |
| return res; \ |
| } |
| |
| @@ -78,10 +78,10 @@ struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops) |
| struct pci_ops *old_ops; |
| unsigned long flags; |
| |
| - spin_lock_irqsave(&pci_lock, flags); |
| + raw_spin_lock_irqsave(&pci_lock, flags); |
| old_ops = bus->ops; |
| bus->ops = ops; |
| - spin_unlock_irqrestore(&pci_lock, flags); |
| + raw_spin_unlock_irqrestore(&pci_lock, flags); |
| return old_ops; |
| } |
| EXPORT_SYMBOL(pci_bus_set_ops); |
| @@ -135,9 +135,9 @@ static noinline void pci_wait_ucfg(struct pci_dev *dev) |
| __add_wait_queue(&pci_ucfg_wait, &wait); |
| do { |
| set_current_state(TASK_UNINTERRUPTIBLE); |
| - spin_unlock_irq(&pci_lock); |
| + raw_spin_unlock_irq(&pci_lock); |
| schedule(); |
| - spin_lock_irq(&pci_lock); |
| + raw_spin_lock_irq(&pci_lock); |
| } while (dev->block_ucfg_access); |
| __remove_wait_queue(&pci_ucfg_wait, &wait); |
| } |
| @@ -149,11 +149,11 @@ int pci_user_read_config_##size \ |
| int ret = 0; \ |
| u32 data = -1; \ |
| if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \ |
| - spin_lock_irq(&pci_lock); \ |
| + raw_spin_lock_irq(&pci_lock); \ |
| if (unlikely(dev->block_ucfg_access)) pci_wait_ucfg(dev); \ |
| ret = dev->bus->ops->read(dev->bus, dev->devfn, \ |
| pos, sizeof(type), &data); \ |
| - spin_unlock_irq(&pci_lock); \ |
| + raw_spin_unlock_irq(&pci_lock); \ |
| *val = (type)data; \ |
| return ret; \ |
| } |
| @@ -164,11 +164,11 @@ int pci_user_write_config_##size \ |
| { \ |
| int ret = -EIO; \ |
| if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \ |
| - spin_lock_irq(&pci_lock); \ |
| + raw_spin_lock_irq(&pci_lock); \ |
| if (unlikely(dev->block_ucfg_access)) pci_wait_ucfg(dev); \ |
| ret = dev->bus->ops->write(dev->bus, dev->devfn, \ |
| pos, sizeof(type), val); \ |
| - spin_unlock_irq(&pci_lock); \ |
| + raw_spin_unlock_irq(&pci_lock); \ |
| return ret; \ |
| } |
| |
| @@ -395,10 +395,10 @@ void pci_block_user_cfg_access(struct pci_dev *dev) |
| unsigned long flags; |
| int was_blocked; |
| |
| - spin_lock_irqsave(&pci_lock, flags); |
| + raw_spin_lock_irqsave(&pci_lock, flags); |
| was_blocked = dev->block_ucfg_access; |
| dev->block_ucfg_access = 1; |
| - spin_unlock_irqrestore(&pci_lock, flags); |
| + raw_spin_unlock_irqrestore(&pci_lock, flags); |
| |
| /* If we BUG() inside the pci_lock, we're guaranteed to hose |
| * the machine */ |
| @@ -416,7 +416,7 @@ void pci_unblock_user_cfg_access(struct pci_dev *dev) |
| { |
| unsigned long flags; |
| |
| - spin_lock_irqsave(&pci_lock, flags); |
| + raw_spin_lock_irqsave(&pci_lock, flags); |
| |
| /* This indicates a problem in the caller, but we don't need |
| * to kill them, unlike a double-block above. */ |
| @@ -424,6 +424,6 @@ void pci_unblock_user_cfg_access(struct pci_dev *dev) |
| |
| dev->block_ucfg_access = 0; |
| wake_up_all(&pci_ucfg_wait); |
| - spin_unlock_irqrestore(&pci_lock, flags); |
| + raw_spin_unlock_irqrestore(&pci_lock, flags); |
| } |
| EXPORT_SYMBOL_GPL(pci_unblock_user_cfg_access); |
| -- |
| 1.7.1.1 |
| |