Re: [34-longterm 006/247] USB: serial: handle Data Carrier Detect changes

Paul Gortmaker
2011-06-24T13:41:16Z

On 11-06-24 08:13 AM, Libor Pechacek wrote:
> Hi Paul,
>
>> @@ -726,6 +726,10 @@ static void spcp8x5_read_bulk_callback(struct urb *urb)
>> /* overrun is special, not associated with a char */
>> if (status & UART_OVERRUN_ERROR)
>> tty_insert_flip_char(tty, 0, TTY_OVERRUN);
>> + if (status & UART_DCD)
>> + usb_serial_handle_dcd_change(port, tty,
>> + priv->line_status & MSR_STATUS_LINE_DCD);
>> +
>> tty_insert_flip_string_fixed_flag(tty, data, tty_flag,
>> urb->actual_length);
>> tty_flip_buffer_push(tty);
>
> The above code is mistakenly placed inside the "if (tty && urb->actual_length)"
> block. Should be right after it.

Thanks -- that is one of those cases where what seems like the
"obvious choice" just so happens to also be the wrong one. :(

In any case, I appreciate the review, it is now fixed.

Paul.

>
> For kernels v2.6.31 - v2.6.34 use the following patch
> http://git.kernel.org/?p=linux/kernel/git/longterm/linux-2.6.32.y.git;a=commitdiff;h=6fe7015007299e14f5ea212a503bcba5958c7086
>
> For kernels v2.6.35 - v2.6.37 use
> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.37.y.git;a=commitdiff;h=2631217445b84e5d31341eaaf6e7951bf8907f52
>
> Libor