diff mbox

[2/3] serial: 8250: move rx_running out of the bitfield

Message ID 87fv452r4k.fsf@linutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

John Ogness July 30, 2015, 10:54 p.m. UTC
That bitfield is modified by read + or + write operation. If someone
sets any of the other two bits it might render the lock useless.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/tty/serial/8250/8250.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Hurley July 30, 2015, 11:24 p.m. UTC | #1
On 07/30/2015 06:54 PM, John Ogness wrote:
> That bitfield is modified by read + or + write operation. If someone
> sets any of the other two bits it might render the lock useless.

Good catch.
Let's just make all of the fields not bitfield though.

Regards,
Peter Hurley

> Signed-off-by: John Ogness <john.ogness@linutronix.de>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  drivers/tty/serial/8250/8250.h |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h
> index c43f74c..78f5e3a 100644
> --- a/drivers/tty/serial/8250/8250.h
> +++ b/drivers/tty/serial/8250/8250.h
> @@ -44,7 +44,7 @@ struct uart_8250_dma {
>  
>  	unsigned char		tx_running:1;
>  	unsigned char		tx_err: 1;
> -	unsigned char		rx_running:1;
> +	unsigned char		rx_running;
>  };
>  
>  struct old_serial_port {
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h
index c43f74c..78f5e3a 100644
--- a/drivers/tty/serial/8250/8250.h
+++ b/drivers/tty/serial/8250/8250.h
@@ -44,7 +44,7 @@  struct uart_8250_dma {
 
 	unsigned char		tx_running:1;
 	unsigned char		tx_err: 1;
-	unsigned char		rx_running:1;
+	unsigned char		rx_running;
 };
 
 struct old_serial_port {