* [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial @ 2018-05-19 17:48 Patryk Olszewski 2018-05-22 11:53 ` Markus Armbruster 0 siblings, 1 reply; 7+ messages in thread From: Patryk Olszewski @ 2018-05-19 17:48 UTC (permalink / raw) To: qemu-devel; +Cc: Paolo Bonzini, Marc-André Lureau, Patryk Olszewski Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> --- chardev/char-serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chardev/char-serial.c b/chardev/char-serial.c index feb52e5..ae548d2 100644 --- a/chardev/char-serial.c +++ b/chardev/char-serial.c @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); - tty.c_oflag |= OPOST; + tty.c_oflag &= ~OPOST; tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); switch (data_bits) { -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-19 17:48 [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial Patryk Olszewski @ 2018-05-22 11:53 ` Markus Armbruster 2018-05-22 13:07 ` Peter Maydell 0 siblings, 1 reply; 7+ messages in thread From: Markus Armbruster @ 2018-05-22 11:53 UTC (permalink / raw) To: Patryk Olszewski; +Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau Patryk Olszewski <patryk@fala.ehost.pl> writes: > Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> > --- > chardev/char-serial.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/chardev/char-serial.c b/chardev/char-serial.c > index feb52e5..ae548d2 100644 > --- a/chardev/char-serial.c > +++ b/chardev/char-serial.c > @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, > > tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP > | INLCR | IGNCR | ICRNL | IXON); > - tty.c_oflag |= OPOST; > + tty.c_oflag &= ~OPOST; > tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); > tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); > switch (data_bits) { This change may well make sense, but your commit message needs to explain *why*. For what it's worth, POSIX documents OPOST as "Post-process output", and the Linux manual page as "Enable implementation-defined output processing." ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-22 11:53 ` Markus Armbruster @ 2018-05-22 13:07 ` Peter Maydell 2018-05-23 12:57 ` Patryk 0 siblings, 1 reply; 7+ messages in thread From: Peter Maydell @ 2018-05-22 13:07 UTC (permalink / raw) To: Markus Armbruster Cc: Patryk Olszewski, Paolo Bonzini, QEMU Developers, Marc-André Lureau On 22 May 2018 at 12:53, Markus Armbruster <armbru@redhat.com> wrote: > Patryk Olszewski <patryk@fala.ehost.pl> writes: > >> Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> >> --- >> chardev/char-serial.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/chardev/char-serial.c b/chardev/char-serial.c >> index feb52e5..ae548d2 100644 >> --- a/chardev/char-serial.c >> +++ b/chardev/char-serial.c >> @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, >> >> tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP >> | INLCR | IGNCR | ICRNL | IXON); >> - tty.c_oflag |= OPOST; >> + tty.c_oflag &= ~OPOST; >> tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); >> tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); >> switch (data_bits) { > > This change may well make sense, but your commit message needs to > explain *why*. > > For what it's worth, POSIX documents OPOST as "Post-process output", and > the Linux manual page as "Enable implementation-defined output > processing." We've set OPOST on our terminals since forever, right back to commit 0824d6fc674 in 2003. Not setting it seems like the right thing, though, since we're generally otherwise setting the thing up to be a raw mode tty (and if we're connecting this to a guest then raw seems like what we want). I wonder whether connecting, say, the HMP monitor to a 'serial' chardev (a) works now (b) ends up with stair-step output after this change (c) is something we care about... thanks -- PMM ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-22 13:07 ` Peter Maydell @ 2018-05-23 12:57 ` Patryk 2018-05-23 16:40 ` Markus Armbruster 0 siblings, 1 reply; 7+ messages in thread From: Patryk @ 2018-05-23 12:57 UTC (permalink / raw) To: Peter Maydell, Markus Armbruster Cc: Paolo Bonzini, QEMU Developers, Marc-André Lureau W dniu 22.05.2018 o 15:07, Peter Maydell pisze: > On 22 May 2018 at 12:53, Markus Armbruster <armbru@redhat.com> wrote: >> Patryk Olszewski <patryk@fala.ehost.pl> writes: >> >>> Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> >>> --- >>> chardev/char-serial.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/chardev/char-serial.c b/chardev/char-serial.c >>> index feb52e5..ae548d2 100644 >>> --- a/chardev/char-serial.c >>> +++ b/chardev/char-serial.c >>> @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, >>> >>> tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP >>> | INLCR | IGNCR | ICRNL | IXON); >>> - tty.c_oflag |= OPOST; >>> + tty.c_oflag &= ~OPOST; >>> tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); >>> tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); >>> switch (data_bits) { >> This change may well make sense, but your commit message needs to >> explain *why*. >> >> For what it's worth, POSIX documents OPOST as "Post-process output", and >> the Linux manual page as "Enable implementation-defined output >> processing." > We've set OPOST on our terminals since forever, right back to > commit 0824d6fc674 in 2003. Not setting it seems like the right thing, > though, since we're generally otherwise setting the thing up to be a > raw mode tty (and if we're connecting this to a guest then raw seems > like what we want). > > I wonder whether connecting, say, the HMP monitor to a 'serial' > chardev (a) works now (b) ends up with stair-step output after > this change (c) is something we care about... > > thanks > -- PMM > This patch is here to help fix years old bug of lf being replaced with crlf in serial, which is super problematic in binary transmissions, making communication with devices through serial from guest almost impossible. Setting OPOST flag in c_oflag enables the output processing, in other words it makes any other flag set in c_oflag come into action. From my quick experiment on serial devices on Linux I found out that by default c_oflag has enabled ONLCR flag, which is the one responsible for the crlf conversion. Unsetting OPOST disables it. Bug reports related to that: https://bugs.launchpad.net/qemu/+bug/1772086 https://bugs.launchpad.net/qemu/+bug/1407813 https://bugs.launchpad.net/qemu/+bug/1715296 also https://lists.nongnu.org/archive/html/qemu-devel/2006-06/msg00196.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-23 12:57 ` Patryk @ 2018-05-23 16:40 ` Markus Armbruster 2018-05-23 16:48 ` Patryk Olszewski 0 siblings, 1 reply; 7+ messages in thread From: Markus Armbruster @ 2018-05-23 16:40 UTC (permalink / raw) To: Patryk Cc: Peter Maydell, Paolo Bonzini, QEMU Developers, Marc-André Lureau Patryk <patryk@fala.ehost.pl> writes: > W dniu 22.05.2018 o 15:07, Peter Maydell pisze: >> On 22 May 2018 at 12:53, Markus Armbruster <armbru@redhat.com> wrote: >>> Patryk Olszewski <patryk@fala.ehost.pl> writes: >>> >>>> Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> >>>> --- >>>> chardev/char-serial.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/chardev/char-serial.c b/chardev/char-serial.c >>>> index feb52e5..ae548d2 100644 >>>> --- a/chardev/char-serial.c >>>> +++ b/chardev/char-serial.c >>>> @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, >>>> >>>> tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP >>>> | INLCR | IGNCR | ICRNL | IXON); >>>> - tty.c_oflag |= OPOST; >>>> + tty.c_oflag &= ~OPOST; >>>> tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); >>>> tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); >>>> switch (data_bits) { >>> This change may well make sense, but your commit message needs to >>> explain *why*. >>> >>> For what it's worth, POSIX documents OPOST as "Post-process output", and >>> the Linux manual page as "Enable implementation-defined output >>> processing." >> We've set OPOST on our terminals since forever, right back to >> commit 0824d6fc674 in 2003. Not setting it seems like the right thing, >> though, since we're generally otherwise setting the thing up to be a >> raw mode tty (and if we're connecting this to a guest then raw seems >> like what we want). >> >> I wonder whether connecting, say, the HMP monitor to a 'serial' >> chardev (a) works now (b) ends up with stair-step output after >> this change (c) is something we care about... >> >> thanks >> -- PMM >> > This patch is here to help fix years old bug of lf being replaced with > crlf in serial, which is super problematic in binary transmissions, > making communication with devices through serial from guest almost > impossible. > > Setting OPOST flag in c_oflag enables the output processing, in other > words it makes any other flag set in c_oflag come into action. From my > quick experiment on serial devices on Linux I found out that by default > c_oflag has enabled ONLCR flag, which is the one responsible for the > crlf conversion. Unsetting OPOST disables it. > > Bug reports related to that: > > https://bugs.launchpad.net/qemu/+bug/1772086 > > https://bugs.launchpad.net/qemu/+bug/1407813 > > https://bugs.launchpad.net/qemu/+bug/1715296 > > also > > https://lists.nongnu.org/archive/html/qemu-devel/2006-06/msg00196.html Work that into your commit message, and you got a fine patch as far as I'm concerned :) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-23 16:40 ` Markus Armbruster @ 2018-05-23 16:48 ` Patryk Olszewski 2018-05-23 17:48 ` Eric Blake 0 siblings, 1 reply; 7+ messages in thread From: Patryk Olszewski @ 2018-05-23 16:48 UTC (permalink / raw) To: Markus Armbruster Cc: Peter Maydell, Paolo Bonzini, QEMU Developers, Marc-André Lureau W dniu 23.05.2018 o 18:40, Markus Armbruster pisze: > Patryk <patryk@fala.ehost.pl> writes: > >> W dniu 22.05.2018 o 15:07, Peter Maydell pisze: >>> On 22 May 2018 at 12:53, Markus Armbruster <armbru@redhat.com> wrote: >>>> Patryk Olszewski <patryk@fala.ehost.pl> writes: >>>> >>>>> Signed-off-by: Patryk Olszewski <patryk@fala.ehost.pl> >>>>> --- >>>>> chardev/char-serial.c | 2 +- >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>> >>>>> diff --git a/chardev/char-serial.c b/chardev/char-serial.c >>>>> index feb52e5..ae548d2 100644 >>>>> --- a/chardev/char-serial.c >>>>> +++ b/chardev/char-serial.c >>>>> @@ -139,7 +139,7 @@ static void tty_serial_init(int fd, int speed, >>>>> >>>>> tty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP >>>>> | INLCR | IGNCR | ICRNL | IXON); >>>>> - tty.c_oflag |= OPOST; >>>>> + tty.c_oflag &= ~OPOST; >>>>> tty.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); >>>>> tty.c_cflag &= ~(CSIZE | PARENB | PARODD | CRTSCTS | CSTOPB); >>>>> switch (data_bits) { >>>> This change may well make sense, but your commit message needs to >>>> explain *why*. >>>> >>>> For what it's worth, POSIX documents OPOST as "Post-process output", and >>>> the Linux manual page as "Enable implementation-defined output >>>> processing." >>> We've set OPOST on our terminals since forever, right back to >>> commit 0824d6fc674 in 2003. Not setting it seems like the right thing, >>> though, since we're generally otherwise setting the thing up to be a >>> raw mode tty (and if we're connecting this to a guest then raw seems >>> like what we want). >>> >>> I wonder whether connecting, say, the HMP monitor to a 'serial' >>> chardev (a) works now (b) ends up with stair-step output after >>> this change (c) is something we care about... >>> >>> thanks >>> -- PMM >>> >> This patch is here to help fix years old bug of lf being replaced with >> crlf in serial, which is super problematic in binary transmissions, >> making communication with devices through serial from guest almost >> impossible. >> >> Setting OPOST flag in c_oflag enables the output processing, in other >> words it makes any other flag set in c_oflag come into action. From my >> quick experiment on serial devices on Linux I found out that by default >> c_oflag has enabled ONLCR flag, which is the one responsible for the >> crlf conversion. Unsetting OPOST disables it. >> >> Bug reports related to that: >> >> https://bugs.launchpad.net/qemu/+bug/1772086 >> >> https://bugs.launchpad.net/qemu/+bug/1407813 >> >> https://bugs.launchpad.net/qemu/+bug/1715296 >> >> also >> >> https://lists.nongnu.org/archive/html/qemu-devel/2006-06/msg00196.html > Work that into your commit message, and you got a fine patch as far as > I'm concerned :) > First time contribution to such large project. Trying to learn how to properly work with mailing lists and such. If there's something I actually have to do now I'd like to get some pointers on how to do it. Thank you, ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial 2018-05-23 16:48 ` Patryk Olszewski @ 2018-05-23 17:48 ` Eric Blake 0 siblings, 0 replies; 7+ messages in thread From: Eric Blake @ 2018-05-23 17:48 UTC (permalink / raw) To: Patryk Olszewski, Markus Armbruster Cc: Peter Maydell, QEMU Developers, Marc-André Lureau, Paolo Bonzini On 05/23/2018 11:48 AM, Patryk Olszewski wrote: >>> This patch is here to help fix years old bug of lf being replaced with >>> crlf in serial, which is super problematic in binary transmissions, >>> making communication with devices through serial from guest almost >>> impossible. >>> >>> Setting OPOST flag in c_oflag enables the output processing, in other >>> words it makes any other flag set in c_oflag come into action. From my >>> quick experiment on serial devices on Linux I found out that by default >>> c_oflag has enabled ONLCR flag, which is the one responsible for the >>> crlf conversion. Unsetting OPOST disables it. >>> >>> Bug reports related to that: >>> >>> https://bugs.launchpad.net/qemu/+bug/1772086 >>> >>> https://bugs.launchpad.net/qemu/+bug/1407813 >>> >>> https://bugs.launchpad.net/qemu/+bug/1715296 >>> >>> also >>> >>> https://lists.nongnu.org/archive/html/qemu-devel/2006-06/msg00196.html >> Work that into your commit message, and you got a fine patch as far as >> I'm concerned :) >> > First time contribution to such large project. Trying to learn how to > properly work with mailing lists and such. If there's something I > actually have to do now I'd like to get some pointers on how to do it. > Thank you, Then welcome to the qemu community! In answer to your question, yes, now that you've had some valid reviewer comments, the ball is back in your court to incorporate the changes that were suggested to you, and submit a new top-level thread with a v2 in the subject line. The easiest thing is to do 'git commit --amend' (works for a single commit) or even 'git rebase -i' then change the patch from 'pick' to 'edit' (required when editing a patch series, but can also be used on a single patch to learn the patch flow), make the requested edits (that is, add your rationale into the commit message), and then send your new patch revision ('git send-email -1 -v2' or similar). It also helps if version 2 contains a description after the '---' separator explaining how it is improved from v1 (in this case, improving the commit message). Other patch submission hints can be found at http://wiki.qemu.org/Contribute/SubmitAPatch Don't worry if you don't get everything perfect on your first try; we were all once beginners, so we don't mind helping someone else learn. But at the same time, demonstrating that you were able to make life easier for reviewers by following as many suggestions as possible, rather than leaving all the cleanup work to someone else, is an important skill to have if you plan to stick around for further contributions. Also, feel free to ask questions on IRC where you might get faster response time, when it comes to figuring out your ideal setup for submitting patches with git. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-05-23 17:48 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-05-19 17:48 [Qemu-devel] [PATCH] Remove unwanted crlf conversion in serial Patryk Olszewski 2018-05-22 11:53 ` Markus Armbruster 2018-05-22 13:07 ` Peter Maydell 2018-05-23 12:57 ` Patryk 2018-05-23 16:40 ` Markus Armbruster 2018-05-23 16:48 ` Patryk Olszewski 2018-05-23 17:48 ` Eric Blake
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).