]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/char/scx200_gpio.c
[PATCH] lockdep: better lock debugging
[karo-tx-linux.git] / drivers / char / scx200_gpio.c
index 5a280a330401f76924b57d4031457439670f504e..425c58719db6a6af14c5dc12a68e2e53642087bc 100644 (file)
@@ -63,7 +63,7 @@ static int scx200_gpio_release(struct inode *inode, struct file *file)
 }
 
 
-static struct file_operations scx200_gpio_fops = {
+static const struct file_operations scx200_gpio_fops = {
        .owner   = THIS_MODULE,
        .write   = nsc_gpio_write,
        .read    = nsc_gpio_read,
@@ -126,9 +126,10 @@ static int __init scx200_gpio_init(void)
 undo_chrdev_region:
        unregister_chrdev_region(dev, num_pins);
 undo_platform_device_add:
-       platform_device_put(pdev);
+       platform_device_del(pdev);
 undo_malloc:
-       kfree(pdev);
+       platform_device_put(pdev);
+
        return rc;
 }
 
@@ -136,7 +137,6 @@ static void __exit scx200_gpio_cleanup(void)
 {
        kfree(scx200_devices);
        unregister_chrdev_region(MKDEV(major, 0), num_pins);
-       platform_device_put(pdev);
        platform_device_unregister(pdev);
        /* kfree(pdev); */
 }