[PATCH 1/5] staging: lirc_serial: Fix init/exit order

Jonathan Nieder jrnieder at gmail.com
Fri Mar 2 03:45:45 UTC 2012

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 at decadent.org.uk>
> ---
> 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


[1] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/40486

More information about the devel mailing list