All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>,
	David Miller <davem@davemloft.net>,
	linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Seth Bollinger <sethb@digi.com>
Subject: Re: Linux 3.15: SPARC serial console regression
Date: Tue, 10 Jun 2014 21:24:38 +0200	[thread overview]
Message-ID: <20140610192438.GA6846@ravnborg.org> (raw)
In-Reply-To: <1402357697-20976-1-git-send-email-peter@hurleysoftware.com>

> From: Peter Hurley <peter@hurleysoftware.com>
> Date: Mon, 9 Jun 2014 19:21:43 -0400
> Subject: [PATCH] serial: sunsab: Test for no tx data on tx restart
> 
> Commit 717f3bbab3c7628736ef738fdbf3d9a28578c26c,
> 'serial_core: Fix conditional start_tx on ring buffer not empty'
> exposes an incorrect assumption in sunsab's start_tx method; the
> tx ring buffer can, in fact, be empty when restarting tx when
> performing flow control.
> 
> Test for empty tx ring buffer when in sunsab's start_tx method.
> 
> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>

Hi Peter.

Can you please take a look at sunzilog.c.
It looks like the same test is missing in sunzilog_start_tx():
        } else {
                struct circ_buf *xmit = &port->state->xmit;

                writeb(xmit->buf[xmit->tail], &channel->data);
                ZSDELAY();
                ZS_WSYNC(channel);

                xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
                port->icount.tx++;

                if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
                        uart_write_wakeup(&up->port);
        }


I did not review all drives - only a few sun drivers
and this was the only one that occured to me also
required this check.

I also noticed the typical pattern is:

    if (uart_circ_empty(xmit) || uart_tx_stopped(port))

Should you use this pattern also in sunsab.c?

	Sam

WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>,
	David Miller <davem@davemloft.net>,
	linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Seth Bollinger <sethb@digi.com>
Subject: Re: Linux 3.15: SPARC serial console regression
Date: Tue, 10 Jun 2014 19:24:38 +0000	[thread overview]
Message-ID: <20140610192438.GA6846@ravnborg.org> (raw)
In-Reply-To: <1402357697-20976-1-git-send-email-peter@hurleysoftware.com>

> From: Peter Hurley <peter@hurleysoftware.com>
> Date: Mon, 9 Jun 2014 19:21:43 -0400
> Subject: [PATCH] serial: sunsab: Test for no tx data on tx restart
> 
> Commit 717f3bbab3c7628736ef738fdbf3d9a28578c26c,
> 'serial_core: Fix conditional start_tx on ring buffer not empty'
> exposes an incorrect assumption in sunsab's start_tx method; the
> tx ring buffer can, in fact, be empty when restarting tx when
> performing flow control.
> 
> Test for empty tx ring buffer when in sunsab's start_tx method.
> 
> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>

Hi Peter.

Can you please take a look at sunzilog.c.
It looks like the same test is missing in sunzilog_start_tx():
        } else {
                struct circ_buf *xmit = &port->state->xmit;

                writeb(xmit->buf[xmit->tail], &channel->data);
                ZSDELAY();
                ZS_WSYNC(channel);

                xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
                port->icount.tx++;

                if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
                        uart_write_wakeup(&up->port);
        }


I did not review all drives - only a few sun drivers
and this was the only one that occured to me also
required this check.

I also noticed the typical pattern is:

    if (uart_circ_empty(xmit) || uart_tx_stopped(port))

Should you use this pattern also in sunsab.c?

	Sam

  parent reply	other threads:[~2014-06-10 19:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-09 20:59 Linux 3.15: SPARC serial console regression Aaro Koskinen
2014-06-09 20:59 ` Aaro Koskinen
2014-06-09 23:43 ` On 06/09/2014 04:59 PM, Aaro Koskinen wrote:> Hi, Peter Hurley
2014-06-09 23:43   ` Peter Hurley
2014-06-09 23:48 ` FW: Linux 3.15: SPARC serial console regression Peter Hurley
2014-06-09 23:48   ` Peter Hurley
2014-06-10 18:53   ` Aaro Koskinen
2014-06-10 18:53     ` Aaro Koskinen
2014-06-10 19:24   ` Sam Ravnborg [this message]
2014-06-10 19:24     ` Sam Ravnborg
2014-06-10 21:20     ` Peter Hurley
2014-06-10 21:20       ` Peter Hurley
2014-06-15 18:56       ` Sam Ravnborg
2014-06-15 18:56         ` Sam Ravnborg
2014-06-16 14:24         ` Thomas Bogendoerfer
2014-06-16 14:24           ` Thomas Bogendoerfer
2014-06-16 15:37         ` Peter Hurley
2014-06-16 15:37           ` Peter Hurley
2014-06-18  6:19         ` David Miller
2014-06-18  6:19           ` David Miller
2014-06-13 20:18   ` Linux 3.15: " Aaro Koskinen
2014-06-13 20:18     ` Aaro Koskinen
2014-07-06 15:29 ` [PATCH 0/2] fixes for empty tx buffer breakage Peter Hurley
2014-07-06 15:29   ` [PATCH 1/2] serial: Test for no tx data on tx restart Peter Hurley
2014-07-06 15:29   ` [PATCH 2/2] serial: arc_uart: Use uart_circ_empty() for open-coded comparison Peter Hurley
2014-07-10 23:14   ` [PATCH 0/2] fixes for empty tx buffer breakage Greg Kroah-Hartman
2014-07-10 23:12     ` David Miller
2014-07-10 23:29       ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140610192438.GA6846@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=aaro.koskinen@iki.fi \
    --cc=davem@davemloft.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter@hurleysoftware.com \
    --cc=sethb@digi.com \
    --cc=sparclinux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.