host_dev->hw_dev.dev = dev;
host_dev->hw_dev.intx_disabled = 1;
- spin_lock_init(&(host_dev->hw_dev.intx_lock));
+ palacios_spinlock_init(&(host_dev->hw_dev.intx_lock));
if (pci_enable_device(dev)) {
printk("Could not enable Device\n");
int rom_size = pci_resource_len(dev, PCI_ROM_RESOURCE);
if (rom_size > 0) {
- unsigned long flags;
+ //unsigned long flags;
v3_dev->exp_rom.size = rom_size;
v3_dev->exp_rom.addr = pci_resource_start(dev, PCI_ROM_RESOURCE);
- flags = pci_resource_flags(dev, PCI_ROM_RESOURCE);
+ // flags = pci_resource_flags(dev, PCI_ROM_RESOURCE);
v3_dev->exp_rom.type = PT_EXP_ROM;
// printk("Host PCI IRQ handler (%d)\n", irq);
- spin_lock(&(host_dev->hw_dev.intx_lock));
+ palacios_spinlock_lock(&(host_dev->hw_dev.intx_lock));
disable_irq_nosync(irq);
host_dev->hw_dev.intx_disabled = 1;
- spin_unlock(&(host_dev->hw_dev.intx_lock));
+ palacios_spinlock_unlock(&(host_dev->hw_dev.intx_lock));
V3_host_pci_raise_irq(&(host_dev->v3_dev), 0);
}
host_dev->hw_dev.num_msix_vecs = 0;
- kfree(host_dev->hw_dev.msix_entries);
+ palacios_free(host_dev->hw_dev.msix_entries);
pci_disable_msix(dev);
// printk("Acking IRQ vector %d\n", vector);
- spin_lock_irqsave(&(host_dev->hw_dev.intx_lock), flags);
+ palacios_spinlock_lock_irqsave(&(host_dev->hw_dev.intx_lock), flags);
// printk("Enabling IRQ %d\n", dev->irq);
enable_irq(dev->irq);
host_dev->hw_dev.intx_disabled = 0;
- spin_unlock_irqrestore(&(host_dev->hw_dev.intx_lock), flags);
+ palacios_spinlock_unlock_irqrestore(&(host_dev->hw_dev.intx_lock), flags);
return 0;
}
struct v3_host_pci_dev * v3_dev = &(host_dev->v3_dev);
struct pci_dev * dev = host_dev->hw_dev.dev;
- spin_lock_irqsave(&lock, flags);
+ palacios_spinlock_lock_irqsave(&lock, flags);
if (host_dev->hw_dev.in_use == 0) {
host_dev->hw_dev.in_use = 1;
} else {
ret = -1;
}
- spin_unlock_irqrestore(&lock, flags);
+ palacios_spinlock_unlock_irqrestore(&lock, flags);
if (v3_dev->iface == IOMMU) {
return 0;
}
+
+
+//
+// Should be a matching teardown function here, otherwise we
+// are at least leaking the lock from the lockchecker's perspective
+// we would like to be able to do a palacios_spinlock_deinit() here...