X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fiface-host-pci.c;h=48097d8322d74bd4a63b88acb2eff0cc3d6b1a86;hb=0246f0904a4800dbe1e8e23332d49b468a58f751;hp=ce6ec7b7e3aebafacbed2bb2913e132baa8efebe;hpb=ffd6d915b585a4a17a2d5b081313f0968885a105;p=palacios.git diff --git a/linux_module/iface-host-pci.c b/linux_module/iface-host-pci.c index ce6ec7b..48097d8 100644 --- a/linux_module/iface-host-pci.c +++ b/linux_module/iface-host-pci.c @@ -81,9 +81,9 @@ static struct v3_host_pci_dev * request_pci_dev(char * url, void * v3_ctx) { unsigned long flags; struct host_pci_device * host_dev = NULL; - spin_lock_irqsave(&lock, flags); + palacios_spinlock_lock_irqsave(&lock, flags); host_dev = find_dev_by_name(url); - spin_unlock_irqrestore(&lock, flags); + palacios_spinlock_unlock_irqrestore(&lock, flags); if (host_dev == NULL) { printk("Could not find host device (%s)\n", url); @@ -192,16 +192,16 @@ static int register_pci_hw_dev(unsigned int cmd, unsigned long arg) { host_dev->hw_dev.devfn = PCI_DEVFN(hw_dev_arg.dev, hw_dev_arg.func); - spin_lock_irqsave(&lock, flags); + palacios_spinlock_lock_irqsave(&lock, flags); if (!find_dev_by_name(hw_dev_arg.name)) { list_add(&(host_dev->dev_node), &device_list); ret = 1; } - spin_unlock_irqrestore(&lock, flags); + palacios_spinlock_unlock_irqrestore(&lock, flags); if (ret == 0) { // Error device already exists - kfree(host_dev); + palacios_free(host_dev); return -EFAULT; } @@ -221,7 +221,7 @@ static int register_pci_user_dev(unsigned int cmd, unsigned long arg) { static int host_pci_init( void ) { INIT_LIST_HEAD(&(device_list)); - spin_lock_init(&lock); + palacios_spinlock_init(&lock); V3_Init_Host_PCI(&pci_hooks); @@ -232,11 +232,18 @@ static int host_pci_init( void ) { return 0; } +static int host_pci_deinit(void) { + remove_global_ctrl(V3_ADD_PCI_USER_DEV); + remove_global_ctrl(V3_ADD_PCI_HW_DEV); + palacios_spinlock_deinit(&lock); + return 0; +} static struct linux_ext host_pci_ext = { .name = "HOST_PCI", .init = host_pci_init, + .deinit = host_pci_deinit, };