On Fri, Mar 05, 2021 at 03:32:14PM +0530, Naresh Kamboju wrote: > On Fri, 5 Mar 2021 at 14:22, Greg Kroah-Hartman > <gregkh@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > > > > On Thu, Mar 4, 2021 at 9:56 AM Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote: > > > > > > > > > > On Thu, 4 Mar 2021 at 01:34, Guenter Roeck <linux@xxxxxxxxxxxx> 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. Ugh, you are right. Ok, I think I have things correct in the queue, if not, please let me know. greg k-h