On Fri, 5 Mar 2021 at 14:22, Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Fri, Mar 05, 2021 at 01:39:46PM +0530, Naresh Kamboju wrote:
On Fri, 5 Mar 2021 at 02:45, Linus Torvalds torvalds@linux-foundation.org wrote:
On Thu, Mar 4, 2021 at 9:56 AM Naresh Kamboju naresh.kamboju@linaro.org wrote:
On Thu, 4 Mar 2021 at 01:34, Guenter Roeck linux@roeck-us.net wrote:
Upstream has:
e71a8d5cf4b4 tty: fix up iterate_tty_read() EOVERFLOW handling ddc5fda74561 tty: fix up hung_up_tty_read() conversion
I have applied these two patches and the reported problem did not solve.
Hmm. Upstream has:
- 3342ff2698e9 ("tty: protect tty_write from odd low-level tty disciplines")
- a9cbbb80e3e7 ("tty: avoid using vfs_iocb_iter_write() for
redirected console writes")
- 17749851eb9c ("tty: fix up hung_up_tty_write() conversion")
G e71a8d5cf4b4 ("tty: fix up iterate_tty_read() EOVERFLOW handling") G ddc5fda74561 ("tty: fix up hung_up_tty_read() conversion")
- c7135bbe5af2 ("tty: fix up hung_up_tty_write() conversion")
d7fe75cbc23c ("tty: teach the n_tty ICANON case about the new "cookie continuations" too") 15ea8ae8e03f ("tty: teach n_tty line discipline about the new "cookie continuations"") 64a69892afad ("tty: clean up legacy leftovers from n_tty line discipline")
- 9bb48c82aced ("tty: implement write_iter")
- dd78b0c483e3 ("tty: implement read_iter")
- 3b830a9c34d5 ("tty: convert tty_ldisc_ops 'read()' function to take
a kernel pointer")
Where those ones marked with '*' seem to be in v5.10.y, and the one prefixed with 'G' are the ones Guenter mentioned.
(We seem to have the "tty: fix up hung_up_tty_write() conversion" commit twice. I'm not sure how that happened, but whatever).
I merged it through two different branches by applying it from email, one for 5.10-final and one for 5.11-rc1, sorry about that.
But that still leaves three commits that don't seem to be in 5.10.y:
d7fe75cbc23c ("tty: teach the n_tty ICANON case about the new "cookie continuations" too") 15ea8ae8e03f ("tty: teach n_tty line discipline about the new "cookie continuations"") 64a69892afad ("tty: clean up legacy leftovers from n_tty line discipline")
and they might fix what are otherwise short reads. Which is allowed by POSIX, afaik, but ..
Do those three commits fix your test-case?
Yes. As per your suggestion I've added these three patches and tested and the reported test case PASS now [1].
This means I have five extra patches on top of the stable v5.10.20 tag.
$ git log --oneline 8c1c1de499af tty: teach the n_tty ICANON case about the new "cookie continuations" too 02aada164879 tty: teach n_tty line discipline about the new "cookie continuations" fb0df6b17897 tty: clean up legacy leftovers from n_tty line discipline 429f7fc84d6a tty: fix up iterate_tty_read() EOVERFLOW handling d0d54bca80a8 tty: fix up hung_up_tty_read() conversion 83be32b6c9e5 (tag: v5.10.20, origin/linux-5.10.y) Linux 5.10.20
That last commit, "tty: fix up hung_up_tty_read() conversion" is already in 5.10.20 as e018e57fd5c0 ("tty: fix up hung_up_tty_write() conversion"), it came in at 5.10.11, so how did you apply it again?
It is easy to confuse between read() and write(). tty: fix up hung_up_tty_read() conversion tty: fix up hung_up_tty_write() conversion
Write() was there but read() is a commit that has been cherry-picked.
Anyway, thanks for these, I've queued up the 4 other commits now to the 5.10.y and 5.11.y trees, let's see what happens...
Thank you !
- Naresh