PCI: mvebu: Remove unnecessary use of 'conf_lock' spinlock
authorAndrew Murray <amurray@embedded-bits.co.uk>
Mon, 14 Apr 2014 22:07:45 +0000 (16:07 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 29 Apr 2014 16:39:37 +0000 (10:39 -0600)
Serialization of configuration accesses is provided by 'pci_lock' in
drivers/pci/access.c thus making the driver's 'conf_lock' superfluous.

Signed-off-by: Andrew Murray <amurray@embedded-bits.co.uk>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Jason Cooper <jason@lakedaemon.net>
drivers/pci/host/pci-mvebu.c

index e384e2534594731a95eb7524fb75583fce208541..29d64c9efa85e388de494fd52b56a538838dde2c 100644 (file)
@@ -113,7 +113,6 @@ struct mvebu_pcie {
 struct mvebu_pcie_port {
        char *name;
        void __iomem *base;
-       spinlock_t conf_lock;
        u32 port;
        u32 lane;
        int devfn;
@@ -638,7 +637,6 @@ static int mvebu_pcie_wr_conf(struct pci_bus *bus, u32 devfn,
 {
        struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata);
        struct mvebu_pcie_port *port;
-       unsigned long flags;
        int ret;
 
        port = mvebu_pcie_find_port(pcie, bus, devfn);
@@ -664,10 +662,8 @@ static int mvebu_pcie_wr_conf(struct pci_bus *bus, u32 devfn,
                return PCIBIOS_DEVICE_NOT_FOUND;
 
        /* Access the real PCIe interface */
-       spin_lock_irqsave(&port->conf_lock, flags);
        ret = mvebu_pcie_hw_wr_conf(port, bus, devfn,
                                    where, size, val);
-       spin_unlock_irqrestore(&port->conf_lock, flags);
 
        return ret;
 }
@@ -678,7 +674,6 @@ static int mvebu_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
 {
        struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata);
        struct mvebu_pcie_port *port;
-       unsigned long flags;
        int ret;
 
        port = mvebu_pcie_find_port(pcie, bus, devfn);
@@ -710,10 +705,8 @@ static int mvebu_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
        }
 
        /* Access the real PCIe interface */
-       spin_lock_irqsave(&port->conf_lock, flags);
        ret = mvebu_pcie_hw_rd_conf(port, bus, devfn,
                                    where, size, val);
-       spin_unlock_irqrestore(&port->conf_lock, flags);
 
        return ret;
 }
@@ -1060,7 +1053,6 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
                mvebu_pcie_set_local_dev_nr(port, 1);
 
                port->dn = child;
-               spin_lock_init(&port->conf_lock);
                mvebu_sw_pci_bridge_init(port);
                i++;
        }