[PATCH] virtio_console: fix order of fields cols and rows
"Michael S. Tsirkin" <[email protected]>
| Newsgroups | dev.linux.lists.virtio-comment |
|---|---|
| Message-ID | <7b939d85ec0b532bae4c16bb927edddcf663bb48.1758212319.git.mst@redhat.com> |
Filip Hejsek pointed out the following: The problem is that for a long time, the Linux kernel used a different field order from what was specified in the virtio spec. The kernel implementation was apparently merged around 2010, while the virtio spec came in 2014, so when a previous version of this patch series was being discussed here on the qemu-devel mailing list in 2020, it was decided that QEMU should match the Linux implementation, and ideally, the virtio spec should be changed. There are about 15 years' worth of kernel versions with the swapped field order, including the kernel currently shipped in Debian stable. The effects of the swapped dimensions can sometimes be quite annoying - e.g. if you have a terminal with 24 rows, this will be interpreted as 24 columns, and your shell may limit line editing to this small space, most of which will be taken by your prompt. While commit 5326ab737a47278dbd16ed3ee7380b26c7056ddd in Linux made it match the spec, no one seems to have implemented it yet host side. It seems better to just drop the change (it was only in 2 releases so far), going back to the status quo. Change the spec to match. Reported-by: Filip Hejsek <[email protected]> Cc: "Maximilian Immanuel Brandtner" <[email protected]> Signed-off-by: Michael S. Tsirkin <[email protected]> --- device-types/console/description.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device-types/console/description.tex b/device-types/console/description.tex index 40a2ba4..c18dc08 100644 --- a/device-types/console/description.tex +++ b/device-types/console/description.tex @@ -59,8 +59,8 @@ \subsection{Device configuration layout}\label{sec:Device Types / Console Device \begin{lstlisting} struct virtio_console_config { - le16 cols; le16 rows; + le16 cols; le32 max_nr_ports; le32 emerg_wr; }; -- MST