diff mbox

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

Message ID 1439568064-7907-1-git-send-email-bigeasy@linutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Sebastian Andrzej Siewior Aug. 14, 2015, 4:01 p.m. UTC
From: John Ogness <john.ogness@linutronix.de>

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

While at it, remove other bitfields as well to avoid more such
errors.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/tty/serial/8250/8250.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Sekhar Nori Aug. 26, 2015, 9:37 a.m. UTC | #1
On Friday 14 August 2015 09:31 PM, Sebastian Andrzej Siewior wrote:
> From: John Ogness <john.ogness@linutronix.de>
> 
> That bitfield is modified by read + or + write operation. If someone
> sets any of the other two bits it might render the lock useless.
> 
> While at it, remove other bitfields as well to avoid more such
> errors.
> 
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: John Ogness <john.ogness@linutronix.de>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Tested with wilink BT module on TI's DRA7 EVM.

Tested-by: Sekhar Nori <nsekhar@ti.com>

Thanks,
Sekhar
--
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
Peter Hurley Aug. 26, 2015, 12:43 p.m. UTC | #2
On 08/26/2015 05:37 AM, Sekhar Nori wrote:
> On Friday 14 August 2015 09:31 PM, Sebastian Andrzej Siewior wrote:
>> From: John Ogness <john.ogness@linutronix.de>
>>
>> That bitfield is modified by read + or + write operation. If someone
>> sets any of the other two bits it might render the lock useless.
>>
>> While at it, remove other bitfields as well to avoid more such
>> errors.
>>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Signed-off-by: John Ogness <john.ogness@linutronix.de>
>> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> 
> Tested with wilink BT module on TI's DRA7 EVM.
> 
> Tested-by: Sekhar Nori <nsekhar@ti.com>

Already in Greg's tty-next tree (and 4.3-rc1 pull request), Sekhar.

Regards,
Peter Hurley

--
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
Sekhar Nori Aug. 26, 2015, 12:58 p.m. UTC | #3
On Wednesday 26 August 2015 06:13 PM, Peter Hurley wrote:
> On 08/26/2015 05:37 AM, Sekhar Nori wrote:
>> On Friday 14 August 2015 09:31 PM, Sebastian Andrzej Siewior wrote:
>>> From: John Ogness <john.ogness@linutronix.de>
>>>
>>> That bitfield is modified by read + or + write operation. If someone
>>> sets any of the other two bits it might render the lock useless.
>>>
>>> While at it, remove other bitfields as well to avoid more such
>>> errors.
>>>
>>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>> Signed-off-by: John Ogness <john.ogness@linutronix.de>
>>> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
>>
>> Tested with wilink BT module on TI's DRA7 EVM.
>>
>> Tested-by: Sekhar Nori <nsekhar@ti.com>
> 
> Already in Greg's tty-next tree (and 4.3-rc1 pull request), Sekhar.

Oops, no problem. Did not notice that.

Thanks,
Sekhar
--
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 c43f74c53cd9..a407757dcecc 100644
--- a/drivers/tty/serial/8250/8250.h
+++ b/drivers/tty/serial/8250/8250.h
@@ -42,9 +42,9 @@  struct uart_8250_dma {
 	size_t			rx_size;
 	size_t			tx_size;
 
-	unsigned char		tx_running:1;
-	unsigned char		tx_err: 1;
-	unsigned char		rx_running:1;
+	unsigned char		tx_running;
+	unsigned char		tx_err;
+	unsigned char		rx_running;
 };
 
 struct old_serial_port {