X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=target%2Flinux%2Fifxmips%2Ffiles%2Farch%2Fmips%2Fpci%2Fops-ifxmips.c;h=e04c246eaeb82abd5326f77a688efe68ccdd1b65;hb=4fea8d2283645d50dc58ab28036713f2e16e5082;hp=3eb25821ddf72347ae355308000be460e251e86a;hpb=a6e679f20b3f51aa3cae09554c8573c51f0cf8d3;p=openwrt-10.03%2F.git diff --git a/target/linux/ifxmips/files/arch/mips/pci/ops-ifxmips.c b/target/linux/ifxmips/files/arch/mips/pci/ops-ifxmips.c index 3eb25821d..e04c246ea 100644 --- a/target/linux/ifxmips/files/arch/mips/pci/ops-ifxmips.c +++ b/target/linux/ifxmips/files/arch/mips/pci/ops-ifxmips.c @@ -8,6 +8,7 @@ #include #include #include +#include #define IFXMIPS_PCI_CFG_BUSNUM_SHF 16 #define IFXMIPS_PCI_CFG_DEVNUM_SHF 11 @@ -33,7 +34,7 @@ ifxmips_pci_config_access(unsigned char access_type, || ((devfn & 0xf8) == 0) || ((devfn & 0xf8) == 0x68)) return 1; - local_irq_save(flags); + spin_lock_irqsave(&ebu_lock, flags); cfg_base = ifxmips_pci_mapped_cfg; cfg_base |= (bus->number << IFXMIPS_PCI_CFG_BUSNUM_SHF) | (devfn << @@ -64,7 +65,7 @@ ifxmips_pci_config_access(unsigned char access_type, cfg_base = (ifxmips_pci_mapped_cfg | (0x68 << IFXMIPS_PCI_CFG_FUNNUM_SHF)) + 4; ifxmips_w32(temp, ((u32*)cfg_base)); - local_irq_restore(flags); + spin_unlock_irqrestore(&ebu_lock, flags); if (((*data) == 0xffffffff) && (access_type == PCI_ACCESS_READ)) return 1;