Hi,

The following patch cleans up resource allocations in the i8042 driver when initialization fails.

Please consider for tree application. Patch is generated against current bk pull.

Thanks,

P.

Signed-off-by: Prarit Bhargava <[EMAIL PROTECTED]>

===== i8042.c 1.71 vs edited =====
--- 1.71/drivers/input/serio/i8042.c    2005-01-03 08:11:49 -05:00
+++ edited/i8042.c      2005-01-21 10:02:20 -05:00
@@ -696,7 +696,10 @@
               unsigned char param;

               if (i8042_command(&param, I8042_CMD_CTL_TEST)) {
-                       printk(KERN_ERR "i8042.c: i8042 controller self test 
timeout.\n");
+                       if (i8042_read_status() != 0xFF)
+                               printk(KERN_ERR "i8042.c: i8042 controller self test 
timeout.\n");
+                       else
+                               printk(KERN_ERR "i8042.c: no i8042 controller 
found.\n");
                       return -1;
               }

               }

@@ -1011,21 +1014,34 @@
       i8042_timer.function = i8042_timer_func;

       if (i8042_platform_init())
+       {
+               del_timer_sync(&i8042_timer);
               return -EBUSY;
+       }

       i8042_aux_values.irq = I8042_AUX_IRQ;
       i8042_kbd_values.irq = I8042_KBD_IRQ;

       if (i8042_controller_init())
+       {
+               i8042_platform_exit();
+               del_timer_sync(&i8042_timer);
               return -ENODEV;
+       }

       err = driver_register(&i8042_driver);
       if (err)
+       {
+               i8042_platform_exit();
+               del_timer_sync(&i8042_timer);
               return err;
+       }

       i8042_platform_device = platform_device_register_simple("i8042", -1, 
NULL, 0);
       if (IS_ERR(i8042_platform_device)) {
               driver_unregister(&i8042_driver);
+               i8042_platform_exit();
+               del_timer_sync(&i8042_timer);
               return PTR_ERR(i8042_platform_device);
       }



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to