X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmisc%2Fibmasm%2Fmodule.c;h=c46da50699ba10b3960db35e8285e3a02c29ca47;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=9dcf33c2aea1f12c81d791487c66a63b87ada586;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c index 9dcf33c2a..c46da5069 100644 --- a/drivers/misc/ibmasm/module.c +++ b/drivers/misc/ibmasm/module.c @@ -57,15 +57,15 @@ #include "remote.h" -static int __init ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id) +static int __devinit ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id) { - int result = -ENOMEM; + int err, result = -ENOMEM; struct service_processor *sp; - if (pci_enable_device(pdev)) { + if ((err = pci_enable_device(pdev))) { printk(KERN_ERR "%s: can't enable PCI device at %s\n", DRIVER_NAME, pci_name(pdev)); - return -ENODEV; + return err; } sp = kmalloc(sizeof(struct service_processor), GFP_KERNEL); @@ -107,7 +107,7 @@ static int __init ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_ goto error_remote_queue; } - sp->lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&sp->lock); INIT_LIST_HEAD(&sp->command_queue); result = request_irq(sp->irq, ibmasm_interrupt_handler, SA_SHIRQ, sp->devname, (void*)sp); @@ -161,7 +161,7 @@ error_kmalloc: return result; } -static void __exit ibmasm_remove_one(struct pci_dev *pdev) +static void __devexit ibmasm_remove_one(struct pci_dev *pdev) { struct service_processor *sp = (struct service_processor *)pci_get_drvdata(pdev); @@ -209,10 +209,9 @@ static int __init ibmasm_init(void) return result; } result = pci_register_driver(&ibmasm_driver); - if (result <= 0) { - pci_unregister_driver(&ibmasm_driver); + if (result) { ibmasmfs_unregister(); - return -ENODEV; + return result; } ibmasm_register_panic_notifier(); info(DRIVER_DESC " version " DRIVER_VERSION " loaded"); @@ -225,3 +224,4 @@ module_exit(ibmasm_exit); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL"); +