lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <54119A36.5000001@hurleysoftware.com>
Date:	Thu, 11 Sep 2014 08:48:54 -0400
From:	Peter Hurley <peter@...leysoftware.com>
To:	Sebastian Andrzej Siewior <bigeasy@...utronix.de>
CC:	Jiri Slaby <jslaby@...e.cz>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH] tty: serial: core: Only invoke ->start_tx() if there
 is data to send

On 09/11/2014 04:03 AM, Sebastian Andrzej Siewior wrote:
> On 09/10/2014 09:52 PM, Peter Hurley wrote:
>> The serial core can't assume that start_tx() does not need invoking
>> because hardware that can stop_tx() with data in the transmitter
>> won't restart if the ring buffer is empty but data is still in the
>> transmitter. [Note that the 16C950 port type does this in the 8250 driver.]
> 
> oh, not sure how I missed this… But now that I look at this, it is also
> that ->x_char that could be use for flow control which would have to be
> sent even with an empty xmit buffer.
> And 8250 in DMA mode does not look at x_char at all. But it would be
> better if it would, right? However if the TX side does a 2 KiB transfer
> not sure what should be done…

Yeah, 8250 dma doesn't send x_char at all; at a minimum 8250 dma should
at least send the x_char.

The preferred solution is to:
1. Stop DMA
2. Enable interrupt mode, which will automatically send the x_char
3. Restart DMA (presumably from the interrupt handler if UART_LSR_THRE)

The issue is whether 8250 dma hardware in general can stop and restart
dma without losing where the dma transfer was.

Regards,
Peter Hurley
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ