Messages in this thread | | | Date | Mon, 14 Feb 2005 11:32:30 -0500 | From | Prarit Bhargava <> | Subject | Re: [PATCH][RFC]: Clean up resource allocation in i8042 driver |
| |
I didn't see a final ACK on this patch -- just checking for one :)
P.
Prarit Bhargava wrote:
> I've taken into account Dmitry's comments (thanks Dmitry!) and > generated a new patch. > > Thanks, > > P. > Jesse Barnes wrote: > >> On Friday, January 21, 2005 8:35 am, Vojtech Pavlik wrote: >> >> >>> No. But vacant ports usually return 0xff. The problem here is that 0xff >>> is a valid value for the status register, too. Fortunately this patch >>> checks for 0xff only after the timeout failed. >>> >> >> >> On PCs you'll get all 1s, but on some ia64 platforms and others, >> you'll take a hard machine check exception if you try to access >> non-existent memory (mmio, port space, or otherwise). >> >> Jesse >> - >> To unsubscribe from this list: send the line "unsubscribe >> linux-kernel" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> Please read the FAQ at http://www.tux.org/lkml/ >> >> >> >------------------------------------------------------------------------ > >===== 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 11:50:11 -05:00 >@@ -696,7 +696,10 @@ > unsigned char param; > > if (i8042_command(¶m, 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; > } > >@@ -1016,16 +1019,22 @@ > i8042_aux_values.irq = I8042_AUX_IRQ; > i8042_kbd_values.irq = I8042_KBD_IRQ; > >- if (i8042_controller_init()) >+ if (i8042_controller_init()) { >+ i8042_platform_exit(); > return -ENODEV; >+ } > > err = driver_register(&i8042_driver); >- if (err) >+ if (err) { >+ i8042_platform_exit(); > 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |