Re: [PATCH 1/1] virtio_console: fix missing byte order handling for cols and rows

Amit Shah
2025-04-16T13:49:44Z

On Sat, 2025-03-22 at 01:29 +0100, Halil Pasic wrote:
> As per virtio spec the fields cols and rows are specified as little
> endian. Although there is no legacy interface requirement that would
> state that cols and rows need to be handled as native endian when
> legacy
> interface is used, unlike for the fields of the adjacent struct
> virtio_console_control, I decided to err on the side of caution based
> on some non-conclusive virtio spec repo archaeology and opt for using
> virtio16_to_cpu() much like for virtio_console_control.event.
> Strictly
> by the letter of the spec virtio_le_to_cpu() would have been
> sufficient.
> But when the legacy interface is not used, it boils down to the same.
>
> And when using the legacy interface, the device formatting these as
> little endian when the guest is big endian would surprise me more
> than
> it using guest native byte order (which would make it compatible with
> the current implementation). Nevertheless somebody trying to
> implement
> the spec following it to the letter could end up forcing little
> endian
> byte order when the legacy interface is in use. So IMHO this
> ultimately
> needs a judgement call by the maintainers.

The patch looks fine to me, but can you reword this message to say what
you chose and why (and not have the bit about judgment call by
maintainers in there)? If it sounds right, it'll be acked and merged.
If not, we'll work to ensure it's all good -- so the judgment calls
happen on the list, rather than mentioning this way in the commit.

Thanks,

Amit