Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6-block.git] / arch / x86 / kernel / microcode_core.c
index 0c8632433090d6e90de8dff937f7fcf7719e6e0b..2cd8c544e41a22a224c8f29f3f517e609c60536e 100644 (file)
@@ -201,9 +201,9 @@ static int do_microcode_update(const void __user *buf, size_t size)
        return error;
 }
 
-static int microcode_open(struct inode *unused1, struct file *unused2)
+static int microcode_open(struct inode *inode, struct file *file)
 {
-       return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
+       return capable(CAP_SYS_RAWIO) ? nonseekable_open(inode, file) : -EPERM;
 }
 
 static ssize_t microcode_write(struct file *file, const char __user *buf,
@@ -521,9 +521,6 @@ static int __init microcode_init(void)
                return PTR_ERR(microcode_pdev);
        }
 
-       if (microcode_ops->init)
-               microcode_ops->init(&microcode_pdev->dev);
-
        get_online_cpus();
        mutex_lock(&microcode_mutex);
 
@@ -566,9 +563,6 @@ static void __exit microcode_exit(void)
 
        platform_device_unregister(microcode_pdev);
 
-       if (microcode_ops->fini)
-               microcode_ops->fini();
-
        microcode_ops = NULL;
 
        pr_info("Microcode Update Driver: v" MICROCODE_VERSION " removed.\n");