]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/char/tlclk.c
[S390] don't call handle_mm_fault() if in an atomic context.
[linux-2.6-omap-h63xx.git] / drivers / char / tlclk.c
index d2c5ba4e83b8bcdada44f028b0dfe9dd93952222..448d5083c3810abf73d0ea647c44773c5bc52508 100644 (file)
@@ -193,7 +193,7 @@ static DEFINE_SPINLOCK(event_lock);
 
 static int tlclk_major = TLCLK_MAJOR;
 
-static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs);
+static irqreturn_t tlclk_interrupt(int irq, void *dev_id);
 
 static DECLARE_WAIT_QUEUE_HEAD(wq);
 
@@ -792,15 +792,14 @@ static int __init tlclk_init(void)
        ret = misc_register(&tlclk_miscdev);
        if (ret < 0) {
                printk(KERN_ERR "tlclk: misc_register returns %d.\n", ret);
-               ret = -EBUSY;
                goto out3;
        }
 
        tlclk_device = platform_device_register_simple("telco_clock",
                                -1, NULL, 0);
-       if (!tlclk_device) {
+       if (IS_ERR(tlclk_device)) {
                printk(KERN_ERR "tlclk: platform_device_register failed.\n");
-               ret = -EBUSY;
+               ret = PTR_ERR(tlclk_device);
                goto out4;
        }
 
@@ -808,8 +807,6 @@ static int __init tlclk_init(void)
                        &tlclk_attribute_group);
        if (ret) {
                printk(KERN_ERR "tlclk: failed to create sysfs device attributes.\n");
-               sysfs_remove_group(&tlclk_device->dev.kobj,
-                       &tlclk_attribute_group);
                goto out5;
        }
 
@@ -856,7 +853,7 @@ static void switchover_timeout(unsigned long data)
        wake_up(&wq);
 }
 
-static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t tlclk_interrupt(int irq, void *dev_id)
 {
        unsigned long flags;