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] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 01 May 2007 08:23:14 -0500
From:	Corey Minyard <minyard@....org>
To:	Russell King <rmk+lkml@....linux.org.uk>,
	Linux Kernel <linux-kernel@...r.kernel.org>,
	linux-serial@...r.kernel.org
Subject: Re: Serial 8250: clear the lsr_break_flag at open

Russell King wrote:
> On Mon, Apr 30, 2007 at 05:08:59PM -0500, Corey Minyard wrote:
>   
>> I'm having a hard time understanding why the lsr_break_flag
>> is necessary.
>>     
>
> Merely reading the LSR clears status bits.  We read the LSR repeatedly
> so that we can monitor the transmit FIFO when outputting serial console
> messages.
>
> This means that if you have a busy serial console, and you want to send
> it a sysrq request, there's a chance that the break flag in the LSR will
> be cleared by the transmit FIFO status polling code thereby being lost.
>
> So, we need to remember that status, and we do this via the lsr_break_flag.
>   
I should have said a little more.  I couldn't find anywhere in any docs
for this that said it was a destructive read.  I've done some experiments
and that seems to be the case, though.

So two things:

There are other bits in this register that also appear to be destroyed on
read: framing, parity, and overrun.  Should those be saved, too?

There are several places where the LSR is read and nothing is done
for this, in serial8250_start_tx, serial8250_backup_timeout, and
serial8250_tx_empty.  It seems like these would need to be handled,
too.

If this is really a problem, I'd be glad to generate another patch.

-corey
-
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