On Thu, Apr 12, 2012 at 08:28:55PM -0400, Vivien Didelot wrote: Guess I won't wait for a more thorough off list review :) > +static void ts5500_gpio_release(struct device *dev) > +{ > + /* noop */ > +} So, this really shouldn't be here... > +static int __devinit ts5500_gpio_probe(struct platform_device *pdev) > +{ > + int ret; > + unsigned long flags; > + > + if (pdev == NULL) > + return -ENODEV; Don't bother, the kernel got seriously confused if this happens. > + ret = platform_device_register(&ts5500_gpio_pdev); > + if (ret) { > + platform_driver_unregister(&ts5500_gpio_driver); > + return ret; > + } ...probably what your release function should do is free the device which should be dynamically allocated here, platform_device_alloc() will do the right thing for you. This isn't usually an issue for static platform devices as they are registered from board files which can't be unloaded. _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors