Skip to contentSkip to conversation

serial: 8250: move rx_running out of the bitfield

PATCH NAK John Ogness 2 participants 2 messages Jul 30, 2015 TTY layer and serial drivers

lore
Share & tools
lore
#0 lore raw

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

That bitfield is modified by read + or + write operation. If someone sets any of the other two bits it might render the lock useless.

---
 drivers/tty/serial/8250/8250.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/tty/serial/8250/8250.h +1 -1
index c43f74c..78f5e3a 100644
@@ -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 {
Signature · 1 line
1.7.10.4
#1 lore raw
Quoted 2 lines · John Ogness

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

Quoted 20 lines
---
 drivers/tty/serial/8250/8250.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/tty/serial/8250/8250.h +1 -1
index c43f74c..78f5e3a 100644
@@ -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 {