Hi Ben, Ben Hutchings wrote[1]: > Currently the module init function registers a platform_device and > only then allocates its IRQ and I/O region. This allows allocation to > race with the device's suspend() function. Instead, allocate > resources in the platform driver's probe() function and free them in > the remove() function. > > The module exit function removes the platform device before the > character device that provides access to it. Change it to reverse the > order of initialisation. > > Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> > --- > The down-side of this is that module insertion now succeeds even if the > device can't be probed. But that's how most driver modules work, and > there will be obvious error messages logged on failure. >From <http://bugs.debian.org/645811> I see that you tested these patches: affc9a0d59ac [media] staging: lirc_serial: Do not assume error codes returned by request_irq() 9b98d6067971 [media] staging: lirc_serial: Fix bogus error codes 1ff1d88e8629 [media] staging: lirc_serial: Fix deadlock on resume failure c8e57e1b766c [media] staging: lirc_serial: Free resources on failure paths of lirc_serial_probe() 9105b8b20041 [media] staging: lirc_serial: Fix init/exit order in a VM. They were applied in 3.3-rc1 and have been in the Debian kernel since 3.1.4-1 at the end of November. Would some of these patches (e.g., at least patches 1, 2, and 5) be appropriate for inclusion in the 3.0.y and 3.2.y stable kernels from kernel.org? Thanks, Jonathan [1] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/40486 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel