Re: [PATCH] USB: Staging: media: lirc: initialize spinlocks before usage

From: Sasha Levin
Date: Sun Jun 10 2012 - 08:18:07 EST


Ping? This thing still causes spinlock errors in 3.5-rc2.

On Sat, May 26, 2012 at 9:25 PM, Sasha Levin <levinsasha928@xxxxxxxxx> wrote:
> Initialize the spinlock for each hardware time.
>
> Signed-off-by: Sasha Levin <levinsasha928@xxxxxxxxx>
> ---
>  drivers/staging/media/lirc/lirc_serial.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
> index 3295ea6..97ef670 100644
> --- a/drivers/staging/media/lirc/lirc_serial.c
> +++ b/drivers/staging/media/lirc/lirc_serial.c
> @@ -129,6 +129,7 @@ static void send_space_homebrew(long length);
>
>  static struct lirc_serial hardware[] = {
>        [LIRC_HOMEBREW] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_HOMEBREW].lock),
>                .signal_pin        = UART_MSR_DCD,
>                .signal_pin_change = UART_MSR_DDCD,
>                .on  = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
> @@ -145,6 +146,7 @@ static struct lirc_serial hardware[] = {
>        },
>
>        [LIRC_IRDEO] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_IRDEO].lock),
>                .signal_pin        = UART_MSR_DSR,
>                .signal_pin_change = UART_MSR_DDSR,
>                .on  = UART_MCR_OUT2,
> @@ -156,6 +158,7 @@ static struct lirc_serial hardware[] = {
>        },
>
>        [LIRC_IRDEO_REMOTE] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_IRDEO_REMOTE].lock),
>                .signal_pin        = UART_MSR_DSR,
>                .signal_pin_change = UART_MSR_DDSR,
>                .on  = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2),
> @@ -167,6 +170,7 @@ static struct lirc_serial hardware[] = {
>        },
>
>        [LIRC_ANIMAX] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_ANIMAX].lock),
>                .signal_pin        = UART_MSR_DCD,
>                .signal_pin_change = UART_MSR_DDCD,
>                .on  = 0,
> @@ -177,6 +181,7 @@ static struct lirc_serial hardware[] = {
>        },
>
>        [LIRC_IGOR] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_IGOR].lock),
>                .signal_pin        = UART_MSR_DSR,
>                .signal_pin_change = UART_MSR_DDSR,
>                .on  = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
> @@ -201,6 +206,7 @@ static struct lirc_serial hardware[] = {
>         * See also http://www.nslu2-linux.org for this device
>         */
>        [LIRC_NSLU2] = {
> +               .lock = __SPIN_LOCK_UNLOCKED(hardware[LIRC_NSLU2].lock),
>                .signal_pin        = UART_MSR_CTS,
>                .signal_pin_change = UART_MSR_DCTS,
>                .on  = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
> --
> 1.7.8.6
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/