* [PATCH] virtio: console: Make resize control event handling compliant with spec
@ 2025-03-20 17:26 Maximilian Immanuel Brandtner
2025-03-20 17:31 ` Maximilian Immanuel Brandtner
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Maximilian Immanuel Brandtner @ 2025-03-20 17:26 UTC (permalink / raw)
To: linux-kernel, virtualization, mst, pasic, amit, schnelle
According to section 5.3.6.2 of the virtio spec a control buffer with
the event VIRITO_CONSOLE_RESIZE is followed by a virtio_console_resize
struct containing 2 little endian 16bit integerts cols,rows. The kernel
implementation assums native endianness (which results in mangled values
on big endian architectures)(a seperate patch by Halil Pasic will deal with
that issue) and swaps the ordering of columns and rows.
This patch changes the ordering of rows and columns to columns then
rows.
Fixes: 8345adbf96fc1 ("virtio: console: Accept console size along with resize control message")
Signed-off-by: Maximilian Immanuel Brandtner <maxbr@linux.ibm.com>
Cc: stable@vger.kernel.org # v2.6.35+
---
drivers/char/virtio_console.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 24442485e73e..9668e89873cf 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1579,8 +1579,8 @@ static void handle_control_message(struct virtio_device *vdev,
break;
case VIRTIO_CONSOLE_RESIZE: {
struct {
- __u16 rows;
__u16 cols;
+ __u16 rows;
} size;
if (!is_console_port(port))
--
2.48.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio: console: Make resize control event handling compliant with spec
2025-03-20 17:26 [PATCH] virtio: console: Make resize control event handling compliant with spec Maximilian Immanuel Brandtner
@ 2025-03-20 17:31 ` Maximilian Immanuel Brandtner
2025-03-23 12:40 ` Halil Pasic
2025-03-27 10:40 ` Amit Shah
2 siblings, 0 replies; 4+ messages in thread
From: Maximilian Immanuel Brandtner @ 2025-03-20 17:31 UTC (permalink / raw)
To: linux-kernel, virtualization, mst, pasic, amit, schnelle
On Thu, 2025-03-20 at 18:26 +0100, Maximilian Immanuel Brandtner wrote:
> According to section 5.3.6.2 of the virtio spec a control buffer with
> the event VIRITO_CONSOLE_RESIZE is followed by a
> virtio_console_resize
> struct containing 2 little endian 16bit integerts cols,rows. The
> kernel
> implementation assums native endianness (which results in mangled
> values
> on big endian architectures)(a seperate patch by Halil Pasic will
> deal with
> that issue) and swaps the ordering of columns and rows.
> This patch changes the ordering of rows and columns to columns then
> rows.
>
> Fixes: 8345adbf96fc1 ("virtio: console: Accept console size along
> with resize control message")
> Signed-off-by: Maximilian Immanuel Brandtner <maxbr@linux.ibm.com>
> Cc: stable@vger.kernel.org # v2.6.35+
> ---
> drivers/char/virtio_console.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/virtio_console.c
> b/drivers/char/virtio_console.c
> index 24442485e73e..9668e89873cf 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -1579,8 +1579,8 @@ static void handle_control_message(struct
> virtio_device *vdev,
> break;
> case VIRTIO_CONSOLE_RESIZE: {
> struct {
> - __u16 rows;
> __u16 cols;
> + __u16 rows;
> } size;
>
> if (!is_console_port(port))
I forgot to run git format-patch with --subject-prefix="PATCH v2".
Sorry about that
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio: console: Make resize control event handling compliant with spec
2025-03-20 17:26 [PATCH] virtio: console: Make resize control event handling compliant with spec Maximilian Immanuel Brandtner
2025-03-20 17:31 ` Maximilian Immanuel Brandtner
@ 2025-03-23 12:40 ` Halil Pasic
2025-03-27 10:40 ` Amit Shah
2 siblings, 0 replies; 4+ messages in thread
From: Halil Pasic @ 2025-03-23 12:40 UTC (permalink / raw)
To: Maximilian Immanuel Brandtner
Cc: linux-kernel, virtualization, mst, amit, schnelle, Halil Pasic
On Thu, 20 Mar 2025 18:26:54 +0100
Maximilian Immanuel Brandtner <maxbr@linux.ibm.com> wrote:
Let my try to do some nitpicking here. First on the subject. I would go
with something more specific like "fix order of fields cols and rows",
especially now that we have figured out the byte order handling is absent
as well.
> According to section 5.3.6.2 of the virtio spec a control buffer with
I would refrain form referencing section from the spec only by its
number without also telling which incarnation of the spec you mean. I
don't think those numbers are set in stone.
> the event VIRITO_CONSOLE_RESIZE is followed by a virtio_console_resize
> struct containing 2 little endian 16bit integerts cols,rows.
s/integerts/integers/
I think technically it is still the same buffer. I would opt for struct
virtio_console_control is followed by struct virtio_console_resize.
> The kernel
> implementation assums native endianness (which results in mangled
> values on big endian architectures)(a seperate patch by Halil Pasic
> will deal with that issue) and swaps the ordering of columns and rows.
I would simply omit the reference to the other patch. I understand that
you introduced this because your patch does not deliver everything that
the short description promises.
I didn't realize that addressing the byte order stuff would cause
a merge conflict, but it does. So maybe it would make sense to rebase
your fix on top of mine and send it as a series titled.
"Make resize control event handling compliant with spec". Just an idea.
> This patch changes the ordering of rows and columns to columns then
> rows.
>
> Fixes: 8345adbf96fc1 ("virtio: console: Accept console size along with
> resize control message") Signed-off-by: Maximilian Immanuel Brandtner
> <maxbr@linux.ibm.com> Cc: stable@vger.kernel.org # v2.6.35+
> ---
> drivers/char/virtio_console.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/virtio_console.c
> b/drivers/char/virtio_console.c index 24442485e73e..9668e89873cf 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -1579,8 +1579,8 @@ static void handle_control_message(struct
> virtio_device *vdev, break;
> case VIRTIO_CONSOLE_RESIZE: {
> struct {
> - __u16 rows;
> __u16 cols;
> + __u16 rows;
> } size;
>
> if (!is_console_port(port))
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio: console: Make resize control event handling compliant with spec
2025-03-20 17:26 [PATCH] virtio: console: Make resize control event handling compliant with spec Maximilian Immanuel Brandtner
2025-03-20 17:31 ` Maximilian Immanuel Brandtner
2025-03-23 12:40 ` Halil Pasic
@ 2025-03-27 10:40 ` Amit Shah
2 siblings, 0 replies; 4+ messages in thread
From: Amit Shah @ 2025-03-27 10:40 UTC (permalink / raw)
To: Maximilian Immanuel Brandtner, linux-kernel, virtualization, mst,
pasic, schnelle
On Thu, 2025-03-20 at 18:26 +0100, Maximilian Immanuel Brandtner wrote:
> According to section 5.3.6.2 of the virtio spec a control buffer with
> the event VIRITO_CONSOLE_RESIZE is followed by a
> virtio_console_resize
> struct containing 2 little endian 16bit integerts cols,rows. The
> kernel
> implementation assums native endianness (which results in mangled
> values
> on big endian architectures)(a seperate patch by Halil Pasic will
> deal with
> that issue) and swaps the ordering of columns and rows.
> This patch changes the ordering of rows and columns to columns then
> rows.
It's clearer and cleaner to only describe the issue you're solving
here; the other patch will take care of the other issue.
You can add more info here, like: the console resize messages via the
config space (section 5.3.4) are used for resizing, and that works fine
for single-console devices. However, for multi-console devices
(enabled by multiport) had the spec and Linux implementation out of
sync. As far as I know, there are no device-side implementations of
mutiport console, so patching Linux is the way to go. (You can replace
the 'I' with my name as the maintainer there.)
> Fixes: 8345adbf96fc1 ("virtio: console: Accept console size along
> with resize control message")
> Signed-off-by: Maximilian Immanuel Brandtner <maxbr@linux.ibm.com>
> Cc: stable@vger.kernel.org # v2.6.35+
> ---
> drivers/char/virtio_console.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/virtio_console.c
> b/drivers/char/virtio_console.c
> index 24442485e73e..9668e89873cf 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -1579,8 +1579,8 @@ static void handle_control_message(struct
> virtio_device *vdev,
> break;
> case VIRTIO_CONSOLE_RESIZE: {
> struct {
> - __u16 rows;
> __u16 cols;
> + __u16 rows;
> } size;
>
> if (!is_console_port(port))
Thanks,
Amit
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-27 10:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-20 17:26 [PATCH] virtio: console: Make resize control event handling compliant with spec Maximilian Immanuel Brandtner
2025-03-20 17:31 ` Maximilian Immanuel Brandtner
2025-03-23 12:40 ` Halil Pasic
2025-03-27 10:40 ` Amit Shah
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).