From: Tony Lindgren <tony@atomide.com>
To: Jiri Slaby <jirislaby@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Gregory CLEMENT <gregory.clement@bootlin.com>,
linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Subject: Re: [PATCH] n_gsm: Fix write handling for zero bytes written
Date: Tue, 18 Aug 2020 12:56:09 +0300 [thread overview]
Message-ID: <20200818095609.GQ2994@atomide.com> (raw)
In-Reply-To: <1b8538a8-d8b6-4287-36e1-aa1e0863ff2d@kernel.org>
Hi,
* Jiri Slaby <jirislaby@kernel.org> [200818 08:24]:
> On 17. 08. 20, 15:54, Tony Lindgren wrote:
> > If write returns zero we currently end up removing the message
> > from the queue. Instead of removing the message, we want to just
> > break out of the loop just like we already do for error codes.
>
> When exactly does the only writer (gsmld_output) return zero for
> non-zero len parameter?
I ran into this when testing with the WIP serial core PM runtime
changes from Andy Shevchenko earlier. If there are also other
cases where we have serial drivers return 0, I don't know about
them.
Basically with the WIP serial core changes, if the open serial port
is in PM runtime suspended state with it's autosuspend_delay_ms
expired, we have write return 0 and just wake up the serial device
on TX.
I don't think there's much anything else we can currently do there
in the PM runtime suspended case as we want to get rid of the
remaining pm_runtime_irq_safe() dependencies as it takes a permanent
usage count on the parent device.
Regards,
Tony
>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > ---
> > drivers/tty/n_gsm.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
> > --- a/drivers/tty/n_gsm.c
> > +++ b/drivers/tty/n_gsm.c
> > @@ -691,7 +691,8 @@ static void gsm_data_kick(struct gsm_mux *gsm, struct gsm_dlci *dlci)
> > print_hex_dump_bytes("gsm_data_kick: ",
> > DUMP_PREFIX_OFFSET,
> > gsm->txframe, len);
> > - if (gsm->output(gsm, gsm->txframe, len) < 0)
> > +
> > + if (gsm->output(gsm, gsm->txframe, len) <= 0)
> > break;
> > /* FIXME: Can eliminate one SOF in many more cases */
> > gsm->tx_bytes -= msg->len;
> >
>
> thanks,
> --
> js
next prev parent reply other threads:[~2020-08-18 9:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-17 13:54 [PATCH] n_gsm: Fix write handling for zero bytes written Tony Lindgren
2020-08-18 8:24 ` Jiri Slaby
2020-08-18 9:56 ` Tony Lindgren [this message]
2020-08-18 10:14 ` Jiri Slaby
2020-08-18 10:47 ` Tony Lindgren
2020-08-19 6:19 ` Jiri Slaby
2020-08-19 6:40 ` Tony Lindgren
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=20200818095609.GQ2994@atomide.com \
--to=tony@atomide.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=gregory.clement@bootlin.com \
--cc=jirislaby@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@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.