From: Johan Hovold <johan@kernel.org>
To: Lanqing Liu <liuhhome@gmail.com>, Rob Herring <robh@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: baolin.wang@unisoc.com, baolin.wang@linaro.org, jslaby@suse.com,
lanqing.liu@unisoc.com, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org, chunyan.zhang@unisoc.com,
orson.zhai@unisoc.com, zhang.lyra@gmail.com
Subject: Re: [PATCH] tty: serial_core: Fix the incorrect configuration of baud rate and data length at the console serial port resume
Date: Tue, 14 May 2019 09:34:57 +0200 [thread overview]
Message-ID: <20190514073457.GI9651@localhost> (raw)
In-Reply-To: <a8bd7d19de25b799098659334de7e19670a806fc.1557379676.git.liuhhome@gmail.com>
On Thu, May 09, 2019 at 01:42:39PM +0800, Lanqing Liu wrote:
> When userspace opens a serial port for console, uart_port_startup()
> is called. This function assigns the uport->cons->cflag value to
> TTY->termios.c_cflag, then it is cleared to 0. When the user space
> closes this serial port, the TTY structure will be released, and at
> this time uport->cons->cflag has also been cleared.
>
> On the Spreadtrum platform, in some special scenarios, like charging mode,
> userspace needs to close the console, which means the uport->cons->cflag
> has also been cleared. But printing logs is still needed in the kernel. So
> when system enters suspend and resume, the console needs to be configure
> the baud rate and data length of the serial port according to its own cflag
> when resuming the console port. At this time, the cflag is 0, which will
> cause serial port to produce configuration errors that do not meet user
> expectations.
This is actually yet another regression due to 761ed4a94582 ("tty:
serial_core: convert uart_close to use tty_port_close") which
incidentally removed the call to uart_shutdown() where the cflag was
being saved precisely to avoid the problem you're describing:
ae84db9661ca ("serial: core: Preserve termios c_cflag for console resume")
Judging from a quick look it seems the xmit buf, which is released in
that function may now be leaking too.
> To fix this, assigning the TTY->termios.c_cflag value to uport->cons->cflag
> before the userspace closes this console serial port. It will ensure that
> the correct cflag value can be gotten when the console serial port was
> resumed.
Not sure this is the right fix, but I don't have time to look at this
right now.
Johan
next prev parent reply other threads:[~2019-05-14 7:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-09 5:42 [PATCH] tty: serial_core: Fix the incorrect configuration of baud rate and data length at the console serial port resume Lanqing Liu
2019-05-14 7:34 ` Johan Hovold [this message]
2019-05-15 9:15 ` hhome liu
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=20190514073457.GI9651@localhost \
--to=johan@kernel.org \
--cc=baolin.wang@linaro.org \
--cc=baolin.wang@unisoc.com \
--cc=chunyan.zhang@unisoc.com \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.com \
--cc=lanqing.liu@unisoc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=liuhhome@gmail.com \
--cc=orson.zhai@unisoc.com \
--cc=robh@kernel.org \
--cc=zhang.lyra@gmail.com \
/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.