)]}'
{
  "log": [
    {
      "commit": "5e61afe211e82a9af15a8794a0bd29bb574e953b",
      "tree": "0e800e887378fc4b25169ea96ebeab4bb84904af",
      "parents": [
        "e1f06e20ca9d5c26decc76ddd5de7853f9859fec",
        "e4c7ebde643811e8dc1f640b50f37ad0a0dd1dac"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Mon May 11 10:49:53 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Mon May 11 10:49:53 2026 -0400"
      },
      "message": "Merge tag \u0027ui-pull-request\u0027 of https://gitlab.com/marcandre.lureau/qemu into staging\n\n- gtk clipboard fixes\n- dbus-vmstate test fixes\n- vt100 emulator support for utf8\n- qemu-vnc tool\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iQIzBAABCgAdFiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmn/axAACgkQ2ujhCXWW\n# nOXsvw/+IUmFaUQQ1a/7DaRVqemWJK6voFqPI7Zykftlq2qkDovo3L/JG+d3soqk\n# l9VIIFv1EpN4ZfL6r7poaV/bXPwBJG9JDvQAD7o+9i97eWBMbWFsPbdo2gtyJYhC\n# 29WosuaUa3YJ9rjc2YWLrOCx0RIjYZCgh2UJuS0XaZZdQNiv2E+p35dBvqP5fM/E\n# DVvJEpGFQvHoQN9Tp9LU7HyONo1gp77+0SA2OKA30nL7RcEmHqpoDHxkz86C+ffN\n# 9qzxC7armk2bjRHKsaNr1of1BOLycGK3Gz9vR/y3ycYKFsc9IRdWyRxmHMY/Rt31\n# rMZ522PkgEA+W9j7DpF9nSGaLFB9fo0S1IXIWcDZYoAx+mXJ+ib+IOmfakrVOc1L\n# T60GIkPvWPYiaMetCuoiM/TyEKhFIUs9soNJ1tYlfUNEzqSdxkFCjxRlKlUUUrmR\n# VLcUJ8NtrXwdiwa999uD8+58GOQyyLBnPKUqelL9nir5uzJNALYHBe5rh/1seW1o\n# +D4Yq3ahPEs9JPcRAdHc0WcSctERvlbTgcgWYLPWJtYjn++hmCDgvYByg4EP3cLB\n# lIT9XP7aYYqaUBfSYOWyJxGIkSxzb8f9Fju5fwnUe/19Is79ycl0wanezLa73yY5\n# Wl6GZo7LC5D0pKgATWAzEV8YLJS6NIoA1QF5FOT1EBeH2Dfn6Io\u003d\n# \u003dbQJb\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Sat 09 May 2026 13:12:48 EDT\n# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5\n# gpg: Good signature from \"Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\" [full]\n# gpg:                 aka \"Marc-André Lureau \u003cmarcandre.lureau@gmail.com\u003e\" [full]\n# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5\n\n* tag \u0027ui-pull-request\u0027 of https://gitlab.com/marcandre.lureau/qemu: (33 commits)\n  qemu-options: document -chardev dbus\n  tools/qemu-vnc: add standalone VNC server over D-Bus\n  tests/qtest: drop DBUS_VMSTATE_TEST_TMPDIR\n  ui: extract common sources into a static library\n  ui/vnc: replace VNC_DEBUG with trace-events\n  ui/console: rename public API to use consistent qemu_console_ prefix\n  ui/console: add doc comment for qemu_console_{un}register_listener()\n  ui/console: simplify registering display/console change listener\n  ui/vnc: add vnc-system unit, to allow different implementations\n  ui/vnc: defer listener registration until the console is known\n  ui/vnc: clean up VNC displays on exit\n  ui/vnc: merge vnc_display_init() and vnc_display_open()\n  ui/vnc: vnc_display_init() and vnc_display_open() return bool\n  ui/vnc: make the worker thread per-VncDisplay\n  ui/console-vc: move VT100 emulation into separate unit\n  ui/console: remove console_ch_t typedef and console_write_ch()\n  ui/console-vc: extract vt100_init() and vt100_fini()\n  ui/console-vc: extract vt100_keysym() from qemu_text_console_handle_keysym()\n  ui/console-vc: extract vt100_input() from vc_chr_write()\n  ui/console-vc: move VT100 state machine and output FIFO into QemuVT100\n  ...\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "e1f06e20ca9d5c26decc76ddd5de7853f9859fec",
      "tree": "021abed1242e95dac0cfcfadd8f4976cd05f7bd0",
      "parents": [
        "8333dba7326d89ce180221c4d0c6d34826a9a4a3",
        "16495533131af2eb94019e32c72688ea5e1b2742"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Mon May 11 10:49:37 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Mon May 11 10:49:37 2026 -0400"
      },
      "message": "Merge tag \u0027pull-fpu-20260509\u0027 of https://gitlab.com/rth7680/qemu into staging\n\nfpu: Cleanups and export FloatParts{64,128} internals,\n     so far with a limited number of primitives.\nhost-utils: Introduce signed saturation primitives\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmn/WBYdHHJpY2hhcmQu\n# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV+Uzgf9EnDTxP6DC+axVf4B\n# HM9lFLf7VBVLvN9SJKmqyAVueCTXqFxjtaYkkps7syXevcklSWOgDcJglPyBRjua\n# UQsV3QSj1XPe4GNS679a0dYpepuOJAoG0ThWuPKMIoIL6sI3Bgr72cEAjmKe2mXB\n# dXHjsVWXAvG0b0GWom2pr+OPjF9B3DljGPS5X2D4bNGWQq+z4YD3j0tcHBumtJrJ\n# DjENcRMe83cOAwwiw+nz3B1QdPM/6uNSYUTGD3D+IfTXw8KJctRGCOmMz6Yaz4xO\n# n99N7H5drc1AzGzz5p/sSZh9WiPClpJPmF8U7DY9phsXwWlTLX25v/0g/CrDXKf5\n# IKkDBw\u003d\u003d\n# \u003dxs2f\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Sat 09 May 2026 11:51:50 EDT\n# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F\n# gpg:                issuer \"richard.henderson@linaro.org\"\n# gpg: Good signature from \"Richard Henderson \u003crichard.henderson@linaro.org\u003e\" [full]\n# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F\n\n* tag \u0027pull-fpu-20260509\u0027 of https://gitlab.com/rth7680/qemu: (28 commits)\n  host-utils: Introduce signed saturation primitives\n  fpu: Drop QEMU_FLATTEN from muladd routines\n  fpu: Return struct from parts{64,128}_addsub\n  fpu: Return struct from parts{64,128}_mul\n  fpu: Export parts{64,128}_compare\n  fpu: Split scalbn from partsN(muladd_scalbn)\n  fpu: Introduce record_denormals_used\n  fpu: Return struct from parts{64,128}_pick_nan_muladd\n  fpu: Introduce parts64_round_to_fmt\n  fpu: Export default_nan, pick_nan, return_nan routines\n  fpu: Return struct from parts{64,128}_round_to_int\n  fpu: Return struct from parts{64,128}_div\n  fpu: Return struct from parts{64,128}_pick_nan\n  fpu: Sink exp_bias adjustment in float64r32_pack_raw\n  fpu: Return struct from parts{64,128}_return_nan\n  fpu: Return struct from parts{64,128}_silence_nan\n  fpu: Return struct from parts{64,128}_default_nan\n  fpu: Export unpack_canonical and round_pack_canonical routines\n  fpu: Export FloatFmt structures\n  fpu: Split FloatParts{64,128} to softfloat-parts.h\n  ...\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "16495533131af2eb94019e32c72688ea5e1b2742",
      "tree": "32cc0b9b45fd5847d4e18d9f0b8b9bdab57423cb",
      "parents": [
        "a93d4778997c2ae6e685de6a7e95e5241feed024"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Wed Apr 29 04:32:49 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat May 09 10:50:01 2026 -0500"
      },
      "message": "host-utils: Introduce signed saturation primitives\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "a93d4778997c2ae6e685de6a7e95e5241feed024",
      "tree": "daefe83e852498c6561f7920c0d60eebf0f7d2da",
      "parents": [
        "24b46e7bb731a99cb0fd58ad4e79d950d9e47a24"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 12:23:00 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat May 09 10:50:01 2026 -0500"
      },
      "message": "fpu: Drop QEMU_FLATTEN from muladd routines\n\nThe float16, bfloat16 and float128 paths are not so\nimportant that they require forced optimization.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "e4c7ebde643811e8dc1f640b50f37ad0a0dd1dac",
      "tree": "7aa9d0c821dd9ebfa10ccdec5b045a010172a84b",
      "parents": [
        "3a453266e3345cc1117238d147bb66806d49c960"
      ],
      "author": {
        "name": "uchouT",
        "email": "i@uchout.moe",
        "time": "Sat May 09 17:48:01 2026 +0800"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:16 2026 +0400"
      },
      "message": "qemu-options: document -chardev dbus\n\nDocument the dbus backend introduced in commit 3e301c8d7ef0 (\"ui/dbus:\nadd chardev backend \u0026 interface\")\n\nSigned-off-by: uchouT \u003ci@uchout.moe\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260509094801.111103-1-i@uchout.moe\u003e\n"
    },
    {
      "commit": "3a453266e3345cc1117238d147bb66806d49c960",
      "tree": "7214afe3a96c1cf452c2dfdc4a275c3721679310",
      "parents": [
        "2eacf4b7be01bb7882b65d59fc8af0e7e507106e"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Apr 02 17:19:05 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:16 2026 +0400"
      },
      "message": "tools/qemu-vnc: add standalone VNC server over D-Bus\n\nAdd a standalone VNC server binary that connects to a running QEMU\ninstance via the D-Bus display interface (org.qemu.Display1, via the bus\nor directly p2p). This allows serving a VNC display without compiling\nVNC support directly into the QEMU system emulator, and enables running\nthe VNC server as a separate process with independent lifecycle and\nprivilege domain.\n\nBuilt only when both VNC and D-Bus display support are enabled.\nIf we wanted to have qemu -vnc disabled, and qemu-vnc built, we would\nneed to split CONFIG_VNC. This is left as a future exercise.\n\nCurrent omissions include some QEMU VNC runtime features (better handled via\nrestart), legacy options, and Windows support.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "2eacf4b7be01bb7882b65d59fc8af0e7e507106e",
      "tree": "543d25c2032dfbb983094e725365590cf88249ff",
      "parents": [
        "c28f1188055a1a2581e3f635b8bcded8e57d7299"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Mar 17 00:33:11 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:15 2026 +0400"
      },
      "message": "tests/qtest: drop DBUS_VMSTATE_TEST_TMPDIR\n\nIt can rely on the location of the temporary configuration instead, so\nwe don\u0027t have to set that environment variable on every test.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "c28f1188055a1a2581e3f635b8bcded8e57d7299",
      "tree": "2fbf2bb32d1e111a5c17bf7d13aea255cc528726",
      "parents": [
        "d5503319da72adbfe1e869f3efb5d78569f05f62"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Mon Feb 23 11:42:00 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:15 2026 +0400"
      },
      "message": "ui: extract common sources into a static library\n\nMove clipboard, cursor, display-surface, input-keymap, kbd-state,\nkeymaps, vt100, and qemu-pixman into a separate static library \u0027qemuui\u0027.\nThis allows these common UI sources to be linked by targets outside of\nthe system emulator build, such as standalone VNC or D-Bus display\nbinaries.\n\nkeymaps generation has to be moved earlier, so that header dependency\nare resolved first.\n\nThe library objects are re-exported via a dependency so existing\nsystem_ss consumers are unaffected.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "d5503319da72adbfe1e869f3efb5d78569f05f62",
      "tree": "3b274bc3bc9dc611162c9dd1f2ba9cc4936e9f4d",
      "parents": [
        "405a42e36550e17598b007b144d19bc99caabfe3"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Apr 07 19:14:51 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:15 2026 +0400"
      },
      "message": "ui/vnc: replace VNC_DEBUG with trace-events\n\nReplace #ifdef printf() with run-time trace events.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "405a42e36550e17598b007b144d19bc99caabfe3",
      "tree": "8ce6f030107ac216c5c6b6eceade4d22b85c6de3",
      "parents": [
        "2f6e359c5b3a02e6cb30866a7fd2566153cd7892"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Mar 03 21:45:06 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 18:54:15 2026 +0400"
      },
      "message": "ui/console: rename public API to use consistent qemu_console_ prefix\n\nRename the display and graphic console public functions to follow a\nconsistent qemu_console_ (or qemu_graphic_console_) naming convention.\n\nThe previous API used a mix of prefixes: dpy_, graphic_hw_,\ngraphic_console_, console_has_, and update_displaychangelistener().\nUnify them under a common qemu_console_ namespace for better\ndiscoverability and consistency.\n\nThe main renames are:\n- dpy_gfx_*() / dpy_text_*() / dpy_gl_*() → qemu_console_*()\n- dpy_{get,set}_ui_info() → qemu_console_{get,set}_ui_info()\n- graphic_hw_*() → qemu_console_hw_*()\n- graphic_console_*() → qemu_graphic_console_*()\n- console_has_gl() → qemu_console_has_gl()\n- update_displaychangelistener() → qemu_console_listener_set_refresh()\n\nNo functional changes.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "8333dba7326d89ce180221c4d0c6d34826a9a4a3",
      "tree": "14fa08b3b4d16a18f3f1c962bacf57f14f0e86c4",
      "parents": [
        "5f489e1ed04ce56d20966b11a1eccf65197c1042",
        "87c7b07fe4aa43dc7257b1e711faa835fac1cccb"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:39:01 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:39:01 2026 -0400"
      },
      "message": "Merge tag \u0027for-upstream\u0027 of https://gitlab.com/bonzini/qemu into staging\n\n* scsi: register again after PREEMPT without reservation\n* scsi: handle reservation changes across migration\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmn+KNYUHHBib256aW5p\n# QHJlZGhhdC5jb20ACgkQv/vSX3jHroM4tAf/Yrkk3/VBFxP7jCJAwZ49g9tgl3+b\n# 98+4HpybZ46AV2EK5o+sfeOptiP+5feostsoMGNGptyDjGBl0sxZhXJimys29QXr\n# 1TkRrBnpYH/E7JNqJcj79pFOUC7qIaPHYqgyVZrTM1b1dRuk2f1db0h/yKG2YGDu\n# EjoUGdYeY/LjvxuytyY74nJ6oNjHJx3vBGyjBWXP3oDlIZA2FSBuu/E3oF562r/a\n# u4I3ZOQATeLAfLVB8Sx731B7aJxMBh7qCi4Pxz580b4oK94YVpn8mo2x+8CBAvdo\n# Ib7Mfz1sYjgQNipyrM3FoMteYCy/xrA9lhJFzosrVx4sGXCiSNx+Xnh2PA\u003d\u003d\n# \u003dr31J\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Fri 08 May 2026 14:17:58 EDT\n# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83\n# gpg:                issuer \"pbonzini@redhat.com\"\n# gpg: Good signature from \"Paolo Bonzini \u003cbonzini@gnu.org\u003e\" [full]\n# gpg:                 aka \"Paolo Bonzini \u003cpbonzini@redhat.com\u003e\" [full]\n# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1\n#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83\n\n* tag \u0027for-upstream\u0027 of https://gitlab.com/bonzini/qemu:\n  scsi: handle reservation changes across migration\n  scsi: register again after PREEMPT without reservation\n  scsi: always send valid PREEMPT TYPE field\n  scsi: adjust error_prepend() formatting\n  scsi: change buf_size to unsigned int in scsi_SG_IO()\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "5f489e1ed04ce56d20966b11a1eccf65197c1042",
      "tree": "37d126f807b959eeef842d593f0a59f666bc182d",
      "parents": [
        "4eee6ecb5735faf82733d85080e18cc2177971f4",
        "b4680c02b8e838c75691656ee2c4450b454d1ca7"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:35 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:35 2026 -0400"
      },
      "message": "Merge tag \u0027firmware-20260508-pull-request\u0027 of https://gitlab.com/kraxel/qemu into staging\n\nhw/uefi: collection of CVE fixes.\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmn9svYACgkQTLbY7tPo\n# cThcEA/8DG1riNLCKxotL4k6doFP91LW72j11vrxkrP1QtTc7Al7Pd7jFpiO46cx\n# cGgFuhwZT3pzY6lCIekheDzbm1nW09V9UcMzirW9kpwCiw9R79sMw6DXFxJ1Zmza\n# DFuvBajdQ0Cik+iesNeN1M+Zg55hXe2FJTgxo/bUR8wSgfv2oew/B61RV9j43q3Q\n# g7mJKgJTlnleS8yJyN5js3G59p7egOgFZSdcJlMC9Ozkun/bonoTJAeYMF5N7LXI\n# kA5p42kGLCNe6nOUrQSk+WSum8CnAld6Qs+b13gVbsMK83QRF3yApXG63bJGqBJ1\n# t4zWLUieTCEVW38I/MOEjGu2qEksfLe81KJ7hfEMLhUPjeCv9++9YU35XgbHubIv\n# Kfh7B0xV0K9g+JYEYfflwQdI5AdSp5EmFb9ztf02u4CH5nC0EcDVb8hB2fJW+Psj\n# ElJH0SQl+Hdco/Ln7dcenKMgqAl9ekarYysV3xvO4e59pxqx/2S03HiEvNnrYByw\n# pklUobv8gnuZujHyq/5fOgrLnH7qMsfgyYRej4iBaRWNOa4K5Oz0HhnBxdpjvMqa\n# 1u3BXlv6VjDrGNnhHUA+2nPdqx2iUSDbE20BhUoOAOjOnGfCi6REFWS7fhyLvQBT\n# MedYFgWT/eD37n65j+4Nvd73CQfHasQCFEedAbU8wAQRoDe+jP0\u003d\n# \u003dgKLo\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Fri 08 May 2026 05:55:02 EDT\n# gpg:                using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138\n# gpg: Good signature from \"Gerd Hoffmann (work) \u003ckraxel@redhat.com\u003e\" [full]\n# gpg:                 aka \"Gerd Hoffmann \u003cgerd@kraxel.org\u003e\" [full]\n# gpg:                 aka \"Gerd Hoffmann (private) \u003ckraxel@gmail.com\u003e\" [full]\n# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138\n\n* tag \u0027firmware-20260508-pull-request\u0027 of https://gitlab.com/kraxel/qemu:\n  hw/uefi: avoid possibly unaligned variable_auth_2 struct field access\n  hw/uefi: verify data size before accessing it in wrap_pkcs7\n  hw/uefi: add name_size check to uefi_vars_mm_lock_variable()\n  hw/uefi: fix ucs2 string helper functions\n  hw/uefi: verify pio_xfer_offset before calculating buffer checksum\n  hw/uefi: fix buffer overruns\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "4eee6ecb5735faf82733d85080e18cc2177971f4",
      "tree": "164c8ac2d723d0c6ee33fc2d3c9b0488f7d5ae13",
      "parents": [
        "533a789e13183161b47b42447c648b7811dfd7a8",
        "d735016e9111e7bf0c2457556cedafd387c044a9"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:20 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:20 2026 -0400"
      },
      "message": "Merge tag \u0027pull-loongarch-20260508-2\u0027 of https://github.com/gaosong715/qemu into staging\n\npull-loongarch-20260508\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iLMEAAEKAB0WIQTKRzxE1qCcGJoZP81FK5aFKyaCFgUCaf2HjwAKCRBFK5aFKyaC\n# FnBgA/4rVzGrTcTvLIxceLpewgBsH+BsAxHvpOwaVWWPHWjTWL5BgYiudS4dukTO\n# fllXZBAIejUded8h5YazdGqqN2nZYq3QAQD3TKgkqDaiS2qdbVHn1caTLyPg6oEK\n# XKyZwzQpuZ3xjlYbnmNwDMTkChV1sxEKSpWZlSHwcgUNhuvFWQ\u003d\u003d\n# \u003dOze1\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Fri 08 May 2026 02:49:51 EDT\n# gpg:                using RSA key CA473C44D6A09C189A193FCD452B96852B268216\n# gpg: Good signature from \"Song Gao \u003cgaosong@loongson.cn\u003e\" [unknown]\n# gpg: WARNING: This key is not certified with a trusted signature!\n# gpg:          There is no indication that the signature belongs to the owner.\n# Primary key fingerprint: CA47 3C44 D6A0 9C18 9A19  3FCD 452B 9685 2B26 8216\n\n* tag \u0027pull-loongarch-20260508-2\u0027 of https://github.com/gaosong715/qemu:\n  target/loongarch: Add support for dbar hint variants\n  hw/loongarch/virt: Define versioned virt machine\n  hw/loongarch/virt: Define virt machine type with type_init()\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "533a789e13183161b47b42447c648b7811dfd7a8",
      "tree": "c28b8cae1022f59f242e46eb8bc7260f2f681573",
      "parents": [
        "1743c1de165fcc2905249e5b02d0b88329f9c9ad",
        "18b664c90085b0d2be9c2ad8c747e00a7a733402"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:05 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:37:06 2026 -0400"
      },
      "message": "Merge tag \u0027pull-target-arm-20260507\u0027 of https://gitlab.com/pm215/qemu into staging\n\ntarget-arm queue:\n * Initial experimental GICv5 interrupt controller emulation\n * target/arm: Report IL\u003d0 for Thumb 16-bit BKPT insn\n * hw/misc/bcm2835_rng: Specify valid memory access sizes\n\n# -----BEGIN PGP SIGNATURE-----\n#\n# iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmn8tN8ZHHBldGVyLm1h\n# eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3kRED/43IeDEsDkxsikfrbZWqzQY\n# Mpy3FDYeSa31XE0xcK97wbpEhwdzUdsyjR3lHIphHTOIit8XdrawySEtaA9k2pKc\n# o1AmI8s2QReg0cM+Znwc9mSfDi52ExxrVEObGUBa27RVtX06jY9nwrUfegAaMMW5\n# bIljGTc6b9U5XEbxe2qF53BeQouYtgsSLInA5ID6TtZwocw/sSYyIwEmJ7AVGvX/\n# 6BepwjYg6jWTqZ884YNuUK4PAFMxgsxtowEI3D7Frxc0sPOxzZYitp5hrnQwZJdo\n# 7omXk3VVEjOsJRztdy6Ulxw4+atb4zLcZRHIi96w719/Q7dUmLggK2ZG1FmMHNat\n# TevJFEmg5eYjdXWEodIRCHCpGXBxzUFzfh8lEGW5afsjxQMRABgKHv9e5bcpmyT+\n# +YpgWgscC2FJTv6/E6Qjy4VYLjyUHbqsUWtr+5OZFb8pHd9DWO5gGwZE2RhDwKUI\n# RaCrMneVhPWDHfyauIgAQ1K2DdDRr8a75mDVbH620ldxyoetKnork7huE1qwKC32\n# be46fk9u6/KcyafbQQCiZe3KzqoKxpvJPsu5tlsvLtuzEgz6pQdI5j0NsS0k3Ow8\n# VSfynqAFaCUNZaJNqLj6Inj9YOqYzxu+6RmB3s+L1+Aj2QxHiPQJjbggCHJOPTo0\n# 2uyaQodquIbdfBabUpgtlg\u003d\u003d\n# \u003dB0BC\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Thu 07 May 2026 11:50:55 EDT\n# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE\n# gpg:                issuer \"peter.maydell@linaro.org\"\n# gpg: Good signature from \"Peter Maydell \u003cpeter.maydell@linaro.org\u003e\" [full]\n# gpg:                 aka \"Peter Maydell \u003cpmaydell@gmail.com\u003e\" [full]\n# gpg:                 aka \"Peter Maydell \u003cpmaydell@chiark.greenend.org.uk\u003e\" [full]\n# gpg:                 aka \"Peter Maydell \u003cpeter@archaic.org.uk\u003e\" [unknown]\n# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE\n\n* tag \u0027pull-target-arm-20260507\u0027 of https://gitlab.com/pm215/qemu: (67 commits)\n  hw/misc/bcm2835_rng: Specify valid memory access sizes\n  target/arm: Report IL\u003d0 for Thumb 16-bit BKPT insn\n  hw/arm/virt: Allow user to select GICv5\n  hw/arm/virt: Enable GICv5 CPU interface when using GICv5\n  hw/arm/virt: Use correct interrupt type for GICv5 SPIs in the DTB\n  hw/arm/virt: Handle GICv5 in interrupt bindings for PPIs\n  hw/arm/virt: Advertise GICv5 in the DTB\n  hw/arm/virt: Create and connect GICv5\n  hw/arm/virt: Split GICv2 and GICv3/4 creation\n  hw/arm/virt: Pull \"wire CPU interrupts\" out of create_gic()\n  hw/arm/virt: Move MSI controller creation out of create_gic()\n  hw/arm/virt: Remember CPU phandles rather than looking them up by name\n  hw/intc/arm_gicv3_cpuif: Don\u0027t allow GICv3 if CPU has GICv5 cpuif\n  target/arm: Add has_gcie property to enable FEAT_GCIE\n  target/arm: Connect internal interrupt sources up as GICv5 PPIs\n  target/arm: GICv5 cpuif: Signal IRQ or FIQ\n  target/arm: GICv5 cpuif: Implement GIC CDDI\n  hw/intc/arm_gicv5: Implement Deactivate command\n  target/arm: GICv5 cpuif: Implement GIC CDEOI\n  target/arm: GICv5 cpuif: Implement GICR CDIA command\n  ...\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "1743c1de165fcc2905249e5b02d0b88329f9c9ad",
      "tree": "402e51c92d5bf0a14f05f5ddf7cef7c9dd902274",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83",
        "d21201257aa736ed5f80732f59a60a8b2e8f567f"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:36:20 2026 -0400"
      },
      "committer": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Sat May 09 07:36:21 2026 -0400"
      },
      "message": "Merge tag \u0027bsd-user-2026-05-pull-request\u0027 of https://gitlab.com/bsdimp/qemu-from-official into staging\n\nbsd-user May 2026 pull request\n\nThree patch series were reviewed during the code freeze and are finally ready to\nhead into the tree.\n\n(1) Use SPDX identifiers in most places. This makes it easier for me to upstream\nsince I can do almost all of the files in the forked tree and not have it be an\nissue each time I add a new file.\n\n(2) Per discussions in the review, copy thunk.c to bsd-user from linux-user. We\nwill use this in the third set of patches, ioctls. All that changed is the\ncopyright header. This file has style problems, but fixing them would be a worse\nproblem than the style issues since we share it with linux-user and want to\ntrack changes there. In the future we may actually share, but for now this was\nthe compromise.\n\n(3) All the ioctls that bsd-user supports in FreeBSD. This uses the thunk.c code\nto translate back and forth between host and target. A number of pedantic\nchanges were made against the blitz branch upstream and were discovered or\nhighlighted by claude code.\n\nI used claude to extract all the ioctl code from the blitz branch for\nupstreaming. I had it review the code and fixed the problems it found (though\none was a false positive). I\u0027ve not tagged these as Assisted-by: since that part\nof our policy is in flux. No creative output of claude was applied here, though\nit also suggested the commit messages (that I rewrote in large part, but\nvestiges of the original remain). To be clear: Claude didn\u0027t write any of\nthe actual code.\n\n# -----BEGIN PGP SIGNATURE-----\n# Comment: GPGTools - https://gpgtools.org\n#\n# iQIzBAABCgAdFiEEIDX4lLAKo898zeG3bBzRKH2wEQAFAmn7+HkACgkQbBzRKH2w\n# EQBseRAAn4RqHJDLLdFpyfspFPOr8Etjmq6MdJ3MXtDauyOWE2IIY1bBsr5a81Ko\n# VjG3zpZ3kOE6eQsCKIHHUEljtrfej3kdrvfdMI5d0Qtk4YQSU3rN2Tz6CRNIQNRb\n# xALkkvsKY0AxP1xzdldUMCR2oO0AT1u0NC7aPpiKbg8Z4wUujDcaPXnNkun6xoRw\n# ysELRm3G1zyvIw0WX3LUrcxYel+O4cXoF1Fzi3ZLSyryeKOBXTQG/uA7+9YJUyLx\n# wsrl++bACCDHwkwnuFiIvg+ZkBiMfkVHz6SLRcMfVjwmAfRuPukvjB8ZZBXRLT94\n# zeG+R9t4zCRKC8Cka4AsYUyceHfgj/kdNkEd7u5rJHVHSUsfQAbWywRRhjOyO4Ad\n# 3nzKOCJ68e4bu3FOc7ih2pcrS71/zxR1HWa2FgwPOntrDaagCbugfSepZ5bJewvW\n# rBqujzgLV7B5fNDUAaYP+HnYr/qu6oaJZ4APalubBu+/Y++P1KBzfsiNSoFLHTzU\n# XFsGB0ktMbVJtqMfQKNBJlsd8XrRguhRvrujwBAKJxUt1XIS7lJfYQIN1sn2pfBe\n# evUsHsp978u1BR58rwEMRJeYxLIZe+Q6T3JJNXhwC+WsWZvjdLo2Xta78HcudC0R\n# z1FnH99jlUFpgHiySQUMR/6FYPBxRMQ4dPa4hgLVKYOSyN4GguI\u003d\n# \u003dL844\n# -----END PGP SIGNATURE-----\n# gpg: Signature made Wed 06 May 2026 22:27:05 EDT\n# gpg:                using RSA key 2035F894B00AA3CF7CCDE1B76C1CD1287DB01100\n# gpg: Good signature from \"Warner Losh \u003cwlosh@netflix.com\u003e\" [unknown]\n# gpg:                 aka \"Warner Losh \u003cimp@bsdimp.com\u003e\" [unknown]\n# gpg:                 aka \"Warner Losh \u003cimp@freebsd.org\u003e\" [unknown]\n# gpg:                 aka \"Warner Losh \u003cimp@village.org\u003e\" [unknown]\n# gpg:                 aka \"Warner Losh \u003cwlosh@bsdimp.com\u003e\" [unknown]\n# gpg: WARNING: This key is not certified with a trusted signature!\n# gpg:          There is no indication that the signature belongs to the owner.\n# Primary key fingerprint: 2035 F894 B00A A3CF 7CCD  E1B7 6C1C D128 7DB0 1100\n\n* tag \u0027bsd-user-2026-05-pull-request\u0027 of https://gitlab.com/bsdimp/qemu-from-official: (25 commits)\n  bsd-user: Add call to do_bsd_ioctl and add bsd-ioctl.c to the build\n  bsd-user: Add init_bsd_ioctl function\n  bsd-user: Add do_bsd_ioctl main function\n  bsd-user: Add do_ioctl_in6_ifreq_sockaddr_int function\n  bsd-user: Add target_to_host_sockaddr_in6 function\n  bsd-user: Add do_ioctl_unsupported function\n  bsd-user: Add log_unsupported_ioctl function\n  bsd-user: Add bsd-ioctl.c infrastructure and termios conversion\n  bsd-user: Add target_sockaddr and safe_ioctl to syscall_defs.h\n  bsd-user: Add bsd-ioctl.h header\n  bsd-user: Add FreeBSD ioctl command table\n  bsd-user: Add FreeBSD ioctl type definitions\n  bsd-user: Add FreeBSD IPv6 ioctl definitions\n  bsd-user: Add FreeBSD disk ioctl definitions\n  bsd-user: Add FreeBSD cryptodev ioctl definitions\n  bsd-user: Add FreeBSD socket ioctl definitions\n  bsd-user: Add FreeBSD file I/O ioctl definitions\n  bsd-user: Add FreeBSD tty ioctl definitions\n  bsd-user: ioctl: add common definitions\n  bsd-user: Copy linux-user/thunk.c to bsd-user\n  ...\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n"
    },
    {
      "commit": "2f6e359c5b3a02e6cb30866a7fd2566153cd7892",
      "tree": "aa3cc53f353c03cf726203c4e32d8e3a5caf710a",
      "parents": [
        "770af5de567cfc26d21fa7f6bab78a3f7ce41146"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat Apr 04 18:45:15 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:25:01 2026 +0400"
      },
      "message": "ui/console: add doc comment for qemu_console_{un}register_listener()\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "770af5de567cfc26d21fa7f6bab78a3f7ce41146",
      "tree": "b5ccca3652840c78fad539a3a7d92e4a5a77a345",
      "parents": [
        "8f95c4053b51a5b665abfb628876039455798ff0"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Mar 03 21:06:57 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:25:00 2026 +0400"
      },
      "message": "ui/console: simplify registering display/console change listener\n\nIntroduce qemu_console_register_listener() which combines setting\ndcl-\u003econ, dcl-\u003eops and calling register_displaychangelistener() into a\nsingle call. This removes repetitive boilerplate across all display\nbackends and makes it harder to forget setting one of the fields.\n\nAlso move the early-return check in unregister_displaychangelistener()\nbefore the trace call, so that unregistering a never-registered listener\n(e.g. on error paths) does not dereference a NULL ops pointer.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "8f95c4053b51a5b665abfb628876039455798ff0",
      "tree": "5ec25d49b916dd380f6464c75dd227e24cf9a257",
      "parents": [
        "d4895fb4bfbcd98fc687de09f9f4ef541ee5860a"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Mon Mar 16 12:40:16 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:58 2026 +0400"
      },
      "message": "ui/vnc: add vnc-system unit, to allow different implementations\n\nThe qemu-vnc server will want to signal the XVP requests, let it\nhave its own implementation.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "d4895fb4bfbcd98fc687de09f9f4ef541ee5860a",
      "tree": "88fa1e2ea447fb7f1a63a88ad3c8094defdc93cc",
      "parents": [
        "4a33bdd9e0412971b5dec5e435024f29dc0cd5fe"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Wed Feb 25 14:15:26 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:56 2026 +0400"
      },
      "message": "ui/vnc: defer listener registration until the console is known\n\nPreviously, the display change listener was registered early in\nvnc_display_new() without a console, requiring vnc_display_open() to\nconditionally unregister and re-register it when the actual console was\nresolved. Since vnc_display_new() and vnc_display_open() were merged in\nthe previous commit, simply delay the registration and keyboard state\ninitialization to vnc_display_open(), after the console has been looked\nup. This removes the conditional re-registration and simplifies the code.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "4a33bdd9e0412971b5dec5e435024f29dc0cd5fe",
      "tree": "724b81c48032c7a2e6677420c00567ef5f6f4da3",
      "parents": [
        "bbd8cb0ed7c36e60d5f1858a0fe84026b3d3712f"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Wed Apr 08 17:15:42 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:55 2026 +0400"
      },
      "message": "ui/vnc: clean up VNC displays on exit\n\nPreviously, VNC displays were never torn down on QEMU exit, leaking\nresources and leaving connected clients with unclean disconnects.\n\nAdd vnc_cleanup() to free all VNC displays during qemu_cleanup().\nMake vnc_display_close() initiate disconnection of active clients,\nand have vnc_display_free() drain the main loop until all clients\nhave completed their teardown, instead of asserting the client list\nis empty.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "bbd8cb0ed7c36e60d5f1858a0fe84026b3d3712f",
      "tree": "4ba2635cdd5bbcab85a7726f6c3fa349769da845",
      "parents": [
        "86dd35cf71bf66b6cc2fc3e1399ee0528b087150"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Feb 24 16:22:59 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:53 2026 +0400"
      },
      "message": "ui/vnc: merge vnc_display_init() and vnc_display_open()\n\nCombine the two-step vnc_display_init()/vnc_display_open() sequence\ninto a single vnc_display_new() function that returns VncDisplay*.\nThis simplifies the API by making vnc_display_open() an\ninternal detail and will allow further code simplification.\n\nvnc_display_new() is moved to vnc.h, since it returns VncDisplay* now.\nAdd vnc_display_free() for consistency, and it will be later used.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "86dd35cf71bf66b6cc2fc3e1399ee0528b087150",
      "tree": "3cbe7e72133aab2bdea8b8588fa6afc669215904",
      "parents": [
        "3ca9eff4aff07489d885691f6fa5db199c2674a9"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat Apr 04 18:28:59 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:51 2026 +0400"
      },
      "message": "ui/vnc: vnc_display_init() and vnc_display_open() return bool\n\nUse the QEMU-style error pattern returning \"true\" on success.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "3ca9eff4aff07489d885691f6fa5db199c2674a9",
      "tree": "7543365c2c95bf65af8a0fd69c1659e04a524fa0",
      "parents": [
        "c3cb2067d99f12d88dc87b44ba200b2c018e91f2"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Apr 07 16:03:02 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:50 2026 +0400"
      },
      "message": "ui/vnc: make the worker thread per-VncDisplay\n\nThe VNC encoding worker thread was using a single global queue shared\nacross all VNC displays, with no way to stop it. This made it impossible\nto properly clean up resources when a VncDisplay is freed.\n\nMove the VncJobQueue from a file-scoped global to a per-VncDisplay\nmember, so each display owns its worker thread and queue. Add\nvnc_stop_worker_thread() to perform an orderly shutdown: signal the\nthread to exit, join it, and destroy the queue. The thread is now\ncreated as QEMU_THREAD_JOINABLE instead of QEMU_THREAD_DETACHED.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "c3cb2067d99f12d88dc87b44ba200b2c018e91f2",
      "tree": "fdd4dd1b1a3524bd0f0943defc06d1a620b306d4",
      "parents": [
        "9e839f1ab704e6d172ecaddbf2f95b2e8aedfe0a"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sun Feb 22 19:46:58 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:48 2026 +0400"
      },
      "message": "ui/console-vc: move VT100 emulation into separate unit\n\nMove the VT100 terminal emulation code into dedicated ui/vt100.c and\nui/vt100.h files, completing the extraction from console-vc.c started\nin the previous patches. This makes the VT100 layer a self-contained\nmodule that can be reused independently of the chardev/console\ninfrastructure.\n\nThe code is moved as-is, with minor coding style fixes (adding missing\nbraces, fixing whitespace) applied during the move.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "9e839f1ab704e6d172ecaddbf2f95b2e8aedfe0a",
      "tree": "88e445966913cd318f01f6b213f1376f8faf4629",
      "parents": [
        "d209ed157084037dcd1ee982c7427176df7818f1"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Tue Apr 28 12:59:27 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:46 2026 +0400"
      },
      "message": "ui/console: remove console_ch_t typedef and console_write_ch()\n\nSince commit e2f82e924d05 (\"console: purge curses bits from\nconsole.h\"), console_ch_t is a plain uint32_t typedef and\nconsole_write_ch() is a trivial assignment (*dest \u003d ch). These\nabstractions were originally needed because console_ch_t was the\ncurses chtype when CONFIG_CURSES was enabled, and console_write_ch()\nhandled VGA-to-curses character translation. That commit moved the\ncurses logic into curses_update(), making the typedef and helper\ndead abstractions.\n\nReplace console_ch_t with uint32_t and console_write_ch() calls\nwith direct assignments.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "d209ed157084037dcd1ee982c7427176df7818f1",
      "tree": "40995b557f5ad1f1f4c07cb0431629c9b83d1aa2",
      "parents": [
        "c81db697a494b0cc2e9950415aaa730daceb6723"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sun Feb 22 20:04:52 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:45 2026 +0400"
      },
      "message": "ui/console-vc: extract vt100_init() and vt100_fini()\n\nConsolidate VT100 initialization and finalization into dedicated\nfunctions, continuing the extraction of the VT100 layer from the\nconsole/chardev code.\n\nvt100_init() gathers the scattered setup (cursor timer, list insertion,\nFIFO creation, default attributes, and image) that was previously spread\nacross vc_chr_open() and qemu_text_console_class_init().\n\nvt100_fini() pairs with it by handling list removal, FIFO destruction,\nand cells cleanup, replacing the open-coded QTAILQ_REMOVE in\nqemu_text_console_finalize().\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "c81db697a494b0cc2e9950415aaa730daceb6723",
      "tree": "95b2ddcb0ac41cc79d9d167ed3cd9842f7b91e90",
      "parents": [
        "61420f141562810d542bdb90f20a2b1371ddbf6a"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Feb 19 22:36:46 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:43 2026 +0400"
      },
      "message": "ui/console-vc: extract vt100_keysym() from qemu_text_console_handle_keysym()\n\nMove the keysym handling logic out of qemu_text_console_handle_keysym()\ninto a new vt100_keysym() helper that operates on QemuVT100 directly,\ncontinuing the effort to decouple the VT100 layer from the console layer.\n\nThe echo path is updated to call vt100_input() instead of\nqemu_chr_write(), since the function no longer has direct access\nto the chardev.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "61420f141562810d542bdb90f20a2b1371ddbf6a",
      "tree": "b6bd3c6e2e32e4ad05eb111e531a4ce6e21cc6cb",
      "parents": [
        "8fa294482eb8148ef7278d0b01bfb55f2cf3f227"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Feb 19 22:18:01 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:41 2026 +0400"
      },
      "message": "ui/console-vc: extract vt100_input() from vc_chr_write()\n\nMove the VT100 input processing logic out of vc_chr_write() into a new\nvt100_input() function that operates on QemuVT100 directly, rather than\ngoing through the Chardev/VCChardev layers. This continues the effort\nto decouple the VT100 emulation from the chardev backend, making the\nVT100 layer self-contained and reusable.\n\nvc_chr_write() becomes a thin wrapper that extracts the QemuVT100 from\nthe chardev and delegates to vt100_input().\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "8fa294482eb8148ef7278d0b01bfb55f2cf3f227",
      "tree": "e915121fe1e55897689d4cf6b5f7e016db8d7455",
      "parents": [
        "5080dc706ecf03e3fc3e9c507710fdc3ff431d0f"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Feb 19 15:10:26 2026 +0100"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:39 2026 +0400"
      },
      "message": "ui/console-vc: move VT100 state machine and output FIFO into QemuVT100\n\nMove the terminal escape sequence parser state (TTYState, esc_params,\ntext attributes, saved cursor position) and the output FIFO from\nVCChardev/QemuTextConsole into QemuVT100. Rename the corresponding\nfunctions from vc_* to vt100_* to reflect they now operate on the VT100\nlayer directly, removing the indirection through vc-\u003econsole-\u003evt.\n\nAdd an out_flush callback to QemuVT100 so vt100_write() can flush\noutput without knowing about QemuTextConsole, and move FIFO/VT100\ninitialization from qemu_text_console_init() to vc_chr_open() where\nthe callback can be wired up.\n\nThis continues the decoupling of VT100 terminal emulation from the\nchardev layer, making QemuVT100 a self-contained terminal emulator.\n\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\n"
    },
    {
      "commit": "5080dc706ecf03e3fc3e9c507710fdc3ff431d0f",
      "tree": "3199384ffa0905f4a16a4bb56cd4602f7edcab1a",
      "parents": [
        "ff7977e2c69d57b4dfcf98c80c6943042d15e119"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Mar 12 17:29:29 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:37 2026 +0400"
      },
      "message": "ui/console-vc: add UTF-8 input decoding with CP437 rendering\n\nThe text console receives bytes that may be UTF-8 encoded (e.g. from\na guest running a modern distro), but currently treats each byte as a\nraw character index into the VGA/CP437 font, producing garbled output\nfor any multi-byte sequence.\n\nAdd a UTF-8 decoder using Bjoern Hoehrmann\u0027s DFA. The DFA inherently\nrejects overlong encodings, surrogates, and codepoints above U+10FFFF.\nCompleted codepoints are then mapped to CP437, unmappable characters are\ndisplayed as \u0027?\u0027.\n\nNote that QEMU has a \"buffered\" utf8 decoder in util/unicode.c, but\nit is not a good fit for byte-per-byte decoding.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "ff7977e2c69d57b4dfcf98c80c6943042d15e119",
      "tree": "d1756cb4b77b45bbc90795123865206ad1c3ab32",
      "parents": [
        "0b1f0367533eb2dc91688f45f18e7da7890aed88"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Mon Apr 20 17:04:31 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:35 2026 +0400"
      },
      "message": "ui/dbus: expose vc encoding via D-Bus Chardev.VCEncoding interface\n\nWhen a D-Bus VC chardev is instantiated, export an extra\norg.qemu.Display1.Chardev.VCEncoding interface on the chardev\nobject.  This lets D-Bus display clients discover the encoding\n(cp437 or utf8) in use by the virtual console.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "0b1f0367533eb2dc91688f45f18e7da7890aed88",
      "tree": "5e66045da4386d090ccfd1981194e36cd5950ed7",
      "parents": [
        "b389b87d3c8accf21e7a77a65d2ed675499cc6fa"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Apr 23 15:41:22 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:33 2026 +0400"
      },
      "message": "ui/console: default vc encoding to cp437 for machine \u003c 11.1\n\nAdd a QOM \"encoding\" enum property to some chardev-vc backends\n(console-vc \u0026 dbus - gtk and spice don\u0027t make use of it) so that the\nmachine compat mechanism can override the default. For machine versions\nprior to 11.1, the charset defaults to cp437 (raw 8-bit VGA) instead of\nutf8, preserving the historical behaviour.\n\nThe following commits are going to wire this to VT100 emulation code and\nan extra exported D-Bus property.\n\nNote that GTK libvte uses utf8 unconditionally, and Spice doesn\u0027t have a\nway to set the encoding, and typically just use libvte in client too.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "b389b87d3c8accf21e7a77a65d2ed675499cc6fa",
      "tree": "05871ca722a599283c17444d92c8ee9b0fe7aa37",
      "parents": [
        "4cb2250c583ad8a020a3ff40f5bda3a5c44381d4"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Mon Apr 20 12:11:24 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:32 2026 +0400"
      },
      "message": "ui/console: add vc encoding\u003dutf8/cp437 option\n\nExpose a new \"encoding\" QemuOpt option.\n\nAdd the corresponding QAPI type and properties.\n\nThis is going to be wired in the following commits.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "4cb2250c583ad8a020a3ff40f5bda3a5c44381d4",
      "tree": "70953a1bf53475a9a177365319e28328deaf24a8",
      "parents": [
        "f031490790018e0ba8e620f704fd6645d6fdf8b1"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Thu Apr 23 15:20:53 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:30 2026 +0400"
      },
      "message": "char: error out if given unhandled size options\n\nThis is a small help, because in fact all combined chardev\noptions are accepted by qemu_chardev_opts[]. But given that a user may\nlegitimately want to use the size options with a VC backend, we can\nreport an error when we know the backend doesn\u0027t support it.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "f031490790018e0ba8e620f704fd6645d6fdf8b1",
      "tree": "5c95d869110ff710f05b8f07aca6ccf2295b193a",
      "parents": [
        "960a41fbfd8a4969e4f7da32352f0038b103efad"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Mon Apr 20 15:50:24 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:24:28 2026 +0400"
      },
      "message": "qemu-options.hx: document -chardev vc backend-specific behavior\n\nThe -chardev vc documentation only mentioned the built-in console with\noptional size parameters, but the actual behavior depends on the display\nbackend. Document the GTK (libvte), D-Bus and spice-app cases.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "960a41fbfd8a4969e4f7da32352f0038b103efad",
      "tree": "535c358b461606029cf68fcb5d92f5a1905dbb20",
      "parents": [
        "4dc8407837c9825264e12ffb22c4c9991de2c5c7"
      ],
      "author": {
        "name": "Jindřich Makovička",
        "email": "makovick@gmail.com",
        "time": "Fri May 01 10:10:38 2026 +0200"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:52 2026 +0400"
      },
      "message": "ui/gtk: Fix GTK assertion failure introduced with clipboard fixes\n\ngtk_clipboard_request_targets actually returns n_targets \u003d\u003d -1\nwhen targets \u003d\u003d  NULL instead of zero. This result in failed assertion\nwithin GTK:\n\nqemu: Gtk: gtk_targets_include_text:\nassertion \u0027targets !\u003d NULL || n_targets \u003d\u003d 0\u0027 failed\n\nExtend the check to require non-null targets and positive n_targets.\n\nSigned-off-by: Jindrich Makovicka \u003cmakovick@gmail.com\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260501-clipboard-assert-fix-v1-1-e549243e4583@gmail.com\u003e\n"
    },
    {
      "commit": "4dc8407837c9825264e12ffb22c4c9991de2c5c7",
      "tree": "c615ba921b8a61e611fccb3d34d5fd1317b9a6cd",
      "parents": [
        "9a816f6843afb208fe30d8e141f6a99c93584d11"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sun May 03 10:48:04 2026 +0400"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:36 2026 +0400"
      },
      "message": "ui/input: do not assert() when tracing invalid input\n\nIt\u0027s possible to reach an assert() in the input tracing code by sending\nsome out of range input values via D-Bus for ex:\n\n  #0  0x00007fec8652186c in __pthread_kill_implementation () at /lib64/libc.so.6\n  #1  0x00007fec864c648e in raise () at /lib64/libc.so.6\n  #2  0x00007fec864ad7b3 in abort () at /lib64/libc.so.6\n  #3  0x00007fec864ae804 in __libc_message_impl.cold () at /lib64/libc.so.6\n  #4  0x00007fec864be345 in __assert_fail () at /lib64/libc.so.6\n  #5  0x00005597964c551e in qapi_enum_lookup[cold] ()\n  #6  0x000055979650514a in qemu_input_event_send_impl ()\n  #7  0x0000559796505a4d in qemu_input_queue_btn ()\n  #8  0x00007fec85780c19 in dbus_mouse_press () at /usr/bin/../lib64/qemu/ui-dbus.so\n  #9  0x00007fec857912fc in _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT.part.0 () at /usr/bin/../lib64/qemu/ui-dbus.so\n  #10 0x00007fec874cce7c in g_closure_invoke () at /lib64/libgobject-2.0.so.0\n  #11 0x00007fec874eb849 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0\n  #12 0x00007fec874ec66f in g_signal_emitv () at /lib64/libgobject-2.0.so.0\n  #13 0x00007fec85797e0a in _qemu_dbus_display1_mouse_skeleton_handle_method_call () at /usr/bin/../lib64/qemu/ui-dbus.so\n\nOther paths in input code accept out-of-range values\n(qemu_input_key_value_to_number etc). Let it pass tracing.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "9a816f6843afb208fe30d8e141f6a99c93584d11",
      "tree": "2f93379dc42ba4cf113d0b9556061872b25b33b8",
      "parents": [
        "50c71bc767409dc548e7c1f7298bb2a1579d15b5"
      ],
      "author": {
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de",
        "time": "Wed Apr 29 16:05:50 2026 -0300"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:36 2026 +0400"
      },
      "message": "tests/qtest/dbus-vmstate: Re-enable the test\n\nBack in 2020, the dbus-vmstate test was disabled by commit d46f81cb74\n(\"tests: Disable dbus-vmstate-test\") due to Patchew failures. We don\u0027t\nuse Patchew anymore for CI, so re-enable the test.\n\nG_TEST_DBUS_DAEMON\u003d../tests/dbus-vmstate-daemon.sh \\\nQTEST_QEMU_BINARY\u003d./qemu-system-x86_64  \\\n./tests/qtest/dbus-vmstate-test\n\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260429190550.20122-6-farosas@suse.de\u003e\n"
    },
    {
      "commit": "50c71bc767409dc548e7c1f7298bb2a1579d15b5",
      "tree": "c0d91ce394425bc7d669ef665c131d20da0abaf9",
      "parents": [
        "db0c5927bc9e7e8cdaa4932a28d8493caca45e90"
      ],
      "author": {
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de",
        "time": "Wed Apr 29 16:05:49 2026 -0300"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:36 2026 +0400"
      },
      "message": "tests/qtest/dbus-vmstate: Stop the daemons explicitly\n\nThe dbus-vmstate test is currently non-deterministically emitting a\n\"cleaning up pid\" message, followed by the PID of one of the\ndbus-daemon processes used during the test. This is due to a race\nbetween the GTestDBus g_autoptr destructor and a child process that\ndoes cleanup when the program ends.\n\nAdd calls to g_test_dbus_down() to make the issuance of the SIGTERM to\nthe dbus-daemon deterministic.\n\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260429190550.20122-5-farosas@suse.de\u003e\n"
    },
    {
      "commit": "db0c5927bc9e7e8cdaa4932a28d8493caca45e90",
      "tree": "9f242d4acfdb00378b5a74c597f1ef58432ea9d4",
      "parents": [
        "09218537e453caf123f4c451e5d3251f1e59ee18"
      ],
      "author": {
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de",
        "time": "Wed Apr 29 16:05:48 2026 -0300"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:36 2026 +0400"
      },
      "message": "tests/qtest/dbus-vmstate: Honor QTEST_LOG env variable\n\nDon\u0027t hide QEMU error messages unconditionally, make the tests that\nexpect to fail honor QTEST_LOG and show every output if the variable\nis set.\n\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260429190550.20122-4-farosas@suse.de\u003e\n"
    },
    {
      "commit": "09218537e453caf123f4c451e5d3251f1e59ee18",
      "tree": "c901cf6aadd125551c27770b50eb0d298b32cf80",
      "parents": [
        "18ff25e1315937f712354092be727aa7db0db127"
      ],
      "author": {
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de",
        "time": "Wed Apr 29 16:05:47 2026 -0300"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:35 2026 +0400"
      },
      "message": "tests/qtest/dbus-vmstate: Mute Glib complaints about g_unsetenv thread-safety\n\nTLDR: GLib is bugged, the dbus-vmstate-test spams debug messages\nunconditionally. Mute them.\n\nGLib is trying to protect against the lack of thread-safety of\nsetenv/unsetsenv functions by warning when those functions were\ninvoked after a thread has been started.\nhttps://gitlab.gnome.org/GNOME/glib/issues/715\n\nUnfortunately:\n1) GLib itself starts a thread pool via _g_dbus_initialize when\nworking around a bug in its type dependency chain. This happens in\nmany places, but the test triggers it via\ng_dbus_address_get_for_bus_sync.\nhttps://bugzilla.gnome.org/show_bug.cgi?id\u003d627724\n\n2) GLib itself calls g_unsetenv after the test calls g_test_dbus_up.\n\n3) The debug message at g_unsetenv is issued to the G_LOG_DOMAIN\ndefined while compiling the library, i.e \"GLib\", but this domain is\nnever initialized, so the log functions go into a fallback chain that\nresults in ignoring the G_MESSAGES_DEBUG environment variable, causing\nthe debug messages to not be suppressed when they should.\n\nMute the messages by implementing a handler for G_LOG_LEVEL_DEBUG\nin the \"GLib\" log domain and honoring G_MESSAGES_DEBUG.\n\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260429190550.20122-3-farosas@suse.de\u003e\n"
    },
    {
      "commit": "18ff25e1315937f712354092be727aa7db0db127",
      "tree": "923cbfd5db29c1e2ff89c97b318de99a394b59bb",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83"
      ],
      "author": {
        "name": "Fabiano Rosas",
        "email": "farosas@suse.de",
        "time": "Wed Apr 29 16:05:46 2026 -0300"
      },
      "committer": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Sat May 09 10:20:35 2026 +0400"
      },
      "message": "tests/qtest/dbus-vmstate: Bring the test up-to-date\n\nThe dbus-vmstate-test has been disabled for years. Here\u0027s the things\nthat have changed in the meantime and how to update the test:\n\n- Migration tests got new headers.\nUpdate the includes.\n\n- migrate_qmp got new parameters.\nUpdate the caller.\n\n- migrate_incoming_qmp is now used instead of -incoming URL.\nUse -incoming defer.\n\n- Tests expecting failure should not check non-zero return code.\nCheck for failed migration state instead.\n\n- The test result enum was introduced.\nReplace the migration_fail flag with the enum.\n\n- The DEVICE state was added.\nReplace wait_for_migration_complete with migration_event_wait, which\nwon\u0027t trip on intermediary states.\n\n- Migration completion was reworked.\nExplicitly wait for the RESUME event before asserting runstate is\nRUNNING to avoid checking too quickly and seeing FINISH_MIGRATE\ninstead.\n\n- The FAILING state was added.\nWait for it before waiting for the RESUME event.\n\n- Sanity checks were added to migration_get_env().\nStart calling that function in main.\n\n- qtest_add_func now has a wrapper.\nReplace qtest_add_func with migration_test_add. Update tests\u0027\nsignatures to take MigrationCommon, although it\u0027s unused.\n\n- meson now sets up G_TEST_DBUS_DAEMON.\nRemove the logic around it.\n\nSigned-off-by: Fabiano Rosas \u003cfarosas@suse.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nMessage-ID: \u003c20260429190550.20122-2-farosas@suse.de\u003e\n"
    },
    {
      "commit": "87c7b07fe4aa43dc7257b1e711faa835fac1cccb",
      "tree": "1d055bbbfc0eb54aaa3f8fac8bdbf10fcb50fd68",
      "parents": [
        "b9a3b329d09dea5a4692de483419693ef0e23052"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Wed Apr 15 19:29:06 2026 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 08 16:40:20 2026 +0200"
      },
      "message": "scsi: handle reservation changes across migration\n\nOther nodes in the cluster can preempt or clear SCSI Persistent\nReservations at any time. When this happens across live migration, the\nreservation state transferred with the guest might be outdated.\n\nAttempt to handle such cases gracefully by checking the current\nreservation or registered keys to detect stale state before restoring.\nIf the actual state of the disk has changed, do not modify it and accept\nthat as the most up-to-date state.\n\nDo this using READ RESERVATION when the guest holds a reservation or\nREAD KEYS when the guest has registered a key but does not hold a\nreservation.\n\nThere is still a race condition between checking and restoring state,\nbut it seems unavoidable and is no worse than before.\n\nBuglink: https://redhat.atlassian.net/browse/RHEL-153123\nFixes: ab57b51f1375b6a6f098a74c6f79207a9630948d (\"scsi: save/load SCSI reservation state\")\nReported-by: Qing Wang\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nLink: https://lore.kernel.org/r/20260415232906.212349-3-stefanha@redhat.com\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "b9a3b329d09dea5a4692de483419693ef0e23052",
      "tree": "ac34f7829a84d5ed66cfb0a023c48e3759aa2866",
      "parents": [
        "15a202656cd553911272f9666aa067c706fc3dfe"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Wed Apr 01 13:19:27 2026 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 08 16:40:03 2026 +0200"
      },
      "message": "scsi: register again after PREEMPT without reservation\n\nThe SCSI specification says PREEMPT without a reservation removes all\nregistrations with the given key. Try to register again after PREEMPT\nsince our key will have been removed.\n\nIn practice some SCSI targets keep the calling I_T nexus\u0027 registration\ninstead of removing it. Therefore we need to handle both the\nspec-compliant and the non-compliant behavior.\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nReviewed-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nLink: https://lore.kernel.org/r/20260401171927.396672-4-stefanha@redhat.com\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "15a202656cd553911272f9666aa067c706fc3dfe",
      "tree": "6e90202fbb601861823dc9356c12d42968a57aba",
      "parents": [
        "15c57ac351ccb4af625cd7dc582831f472c1a68f"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Wed Apr 01 13:19:26 2026 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 08 16:40:03 2026 +0200"
      },
      "message": "scsi: always send valid PREEMPT TYPE field\n\nThe SPC-6 specification says that the PREEMPT service action ignores the\nTYPE field when there is no reservation. However, the LIO Linux iSCSI\ntarget rejects commands with a zero TYPE field. The field never ends up\nbeing used in this case, so replace it with a \"valid\" value to work\naround the issue.\n\nReported-by: Qing Wang \u003cqinwang@redhat.com\u003e\nBuglink: https://redhat.atlassian.net/browse/RHEL-155807\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nLink: https://lore.kernel.org/r/20260401171927.396672-3-stefanha@redhat.com\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "15c57ac351ccb4af625cd7dc582831f472c1a68f",
      "tree": "c911f5fa6d6d0bde160f1e5a7064251af9b06f24",
      "parents": [
        "f4193228dd20d3d5b8eaaf65f46e2426181794f3"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Wed Apr 01 13:19:25 2026 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 08 16:40:03 2026 +0200"
      },
      "message": "scsi: adjust error_prepend() formatting\n\nThe error strings will be concatenated so add a separator to make the\ncombined error message easy to read.\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nLink: https://lore.kernel.org/r/20260401171927.396672-2-stefanha@redhat.com\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f4193228dd20d3d5b8eaaf65f46e2426181794f3",
      "tree": "3ce8374346fa4baf57ae51307f5d10a53c2fe353",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Wed Apr 15 19:29:05 2026 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 08 16:37:18 2026 +0200"
      },
      "message": "scsi: change buf_size to unsigned int in scsi_SG_IO()\n\nSG_IO supports an unsigned int dxfer_len value. Existing callers use\nless than 256 bytes, so scsi_SG_IO()\u0027s uint8_t buf_size type was\nsufficient. The next patch will use a larger value, so update the type.\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nLink: https://lore.kernel.org/r/20260415232906.212349-2-stefanha@redhat.com\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "b4680c02b8e838c75691656ee2c4450b454d1ca7",
      "tree": "2e54a9c6c104b70075c5dd21b2c6893e81a2963f",
      "parents": [
        "22b7b222d8f5428be8b5d4787f36efd0a0b75292"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:09 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:12:11 2026 +0200"
      },
      "message": "hw/uefi: avoid possibly unaligned variable_auth_2 struct field access\n\nCopy data to stack-allocated struct before accessing it\nto make sure it is properly aligned.\n\nFixes: CVE-2026-41440\nFixes: f1488fac0584 (\"hw/uefi: add var-service-auth.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-7-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "22b7b222d8f5428be8b5d4787f36efd0a0b75292",
      "tree": "74653356ea52694f7f41a26f59de841ffb5a1717",
      "parents": [
        "c45b460d16f991ff3f753623f3423e1adc4077a2"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:08 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:10:38 2026 +0200"
      },
      "message": "hw/uefi: verify data size before accessing it in wrap_pkcs7\n\nFixes: CVE-2026-41439\nFixes: 3e33af2cb306 (\"hw/uefi: add var-service-pkcs7.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-6-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "c45b460d16f991ff3f753623f3423e1adc4077a2",
      "tree": "0cf29dcb1ee44e44c9bb7ce3790bfce61d754095",
      "parents": [
        "5247b3034c23bdfd91a7f78587c3b3e37f90568c"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:07 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:10:38 2026 +0200"
      },
      "message": "hw/uefi: add name_size check to uefi_vars_mm_lock_variable()\n\nMake sure the total variable_policy_entry size stays below\n64k so the (16-bit) size field can not wrap.\n\nFixes: CVE-2026-41438\nFixes: db1ecfb473ac (\"hw/uefi: add var-service-vars.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-5-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "5247b3034c23bdfd91a7f78587c3b3e37f90568c",
      "tree": "6995f9970547c8e08746c76660fd33b064e1ce32",
      "parents": [
        "94d9a8b2c9e6962aa7f7673229d2db7b110cfac6"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:06 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:10:38 2026 +0200"
      },
      "message": "hw/uefi: fix ucs2 string helper functions\n\nThe length passed in is in bytes not characters.  Rename the\nparameters to make that clear.  Calculate the number of chars\nif needed.  Fix length checks to use the number of chars not\nbytes to avoid OOB reads.\n\nFixes: CVE-2026-41437\nFixes: 1ebc319c8ca7 (\"hw/uefi: add var-service-utils.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-4-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "94d9a8b2c9e6962aa7f7673229d2db7b110cfac6",
      "tree": "fcda6d0de917d01af5676e6b2962898e11cc9dc2",
      "parents": [
        "f252769a23e67765f9b95d8944ca3da6c9edf58b"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:05 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:10:38 2026 +0200"
      },
      "message": "hw/uefi: verify pio_xfer_offset before calculating buffer checksum\n\nWithout that it is possible to do trigger OOB reads by first\nadvancing offset, then making the buffer smaller, finally\nasking for a checksum.\n\nFixes: CVE-2026-41436\nFixes: 90ca4e03c27d (\"hw/uefi: add var-service-core.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-3-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "f252769a23e67765f9b95d8944ca3da6c9edf58b",
      "tree": "c66c7758f87476378a7a1f7e7df9477309081eb0",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed Apr 22 11:29:04 2026 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 08 09:10:38 2026 +0200"
      },
      "message": "hw/uefi: fix buffer overruns\n\nThe buffer size checks do not consider the mm_header size, simliar to\nCVE-2026-5744.  Factor out the repeated size check to a small helper\nfunction, fix the check, update all places to use the new helper.\n\nFixes: CVE-2026-41435\nFixes: db1ecfb473ac (\"hw/uefi: add var-service-vars.c\")\nReported-by: Katherine Leaver \u003ckatherine.j.leaver@gmail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nMessage-ID: \u003c20260422092910.444997-2-kraxel@redhat.com\u003e\n"
    },
    {
      "commit": "d735016e9111e7bf0c2457556cedafd387c044a9",
      "tree": "6c4062fcc82b401f31bd3500277429419069b2b5",
      "parents": [
        "d20af87fdaa93672ca951a14131209147346040a"
      ],
      "author": {
        "name": "Song Gao",
        "email": "gaosong@loongson.cn",
        "time": "Thu Apr 16 19:47:15 2026 +0800"
      },
      "committer": {
        "name": "Song Gao",
        "email": "gaosong@loongson.cn",
        "time": "Fri May 08 02:48:04 2026 -0400"
      },
      "message": "target/loongarch: Add support for dbar hint variants\n\nLoongArch architecture (since LA664) introduces fine-grained dbar\nhints that allow controlling which memory accesses are ordered by\nthe barrier. Previously, all dbar instructions were treated as a\nfull barrier (TCG_MO_ALL | TCG_BAR_SC).\n\nThis patch adds support for decoding dbar hints and emitting the\nappropriate TCG memory barrier flags. For CPUs that do not advertise\nthe DBAR_HINTS feature (cpucfg3.DBAR_HINTS \u003d 0), all dbar hints\nfall back to a full barrier, preserving compatibility.\n\nThe hint encoding follows the LoongArch v1.10 specification:\nThe hint is a 5-bit field (bits 4-0). Bit4 is reserved and currently\nignored/discarded. Only bits 3-0 are used for ordering control.\n * Bit3: barrier for previous read (0: true, 1: false)\n * Bit2: barrier for previous write (0: true, 1: false)\n * Bit1: barrier for succeeding read (0: true, 1: false)\n * Bit0: barrier for succeeding write (0: true, 1: false)\n\nThe mapping to TCG memory order flags is as follows:\n  TCG_BAR_SC |TCG_MO_LD_LD | TCG_MO_LD_ST;\n  TCG_BAR_SC |TCG_MO_ST_LD | TCG_MO_ST_ST;\n  TCG_BAR_SC |TCG_MO_LD_LD | TCG_MO_ST_LD;\n  TCG_BAR_SC |TCG_MO_ST_ST | TCG_MO_LD_ST;\n\nSpecial hint handling:\n- hint 0x700: LL/SC loop barrier, treated as a full barrier as recommended.\n- hint 0xf and 0x1f: reserved/no-op, treated as no operation\n\nSigned-off-by: Song Gao \u003cgaosong@loongson.cn\u003e\nReviewed-by: Bibo Mao \u003cmaobibo@loongson.cn\u003e\n"
    },
    {
      "commit": "d20af87fdaa93672ca951a14131209147346040a",
      "tree": "0540715c668b9b756f95b34faa01c3df42d368f7",
      "parents": [
        "c66f9c8094331e6e9badc0f39ab9ad048681c021"
      ],
      "author": {
        "name": "Bibo Mao",
        "email": "maobibo@loongson.cn",
        "time": "Wed Apr 01 09:57:05 2026 +0800"
      },
      "committer": {
        "name": "Song Gao",
        "email": "gaosong@loongson.cn",
        "time": "Fri May 08 02:47:59 2026 -0400"
      },
      "message": "hw/loongarch/virt: Define versioned virt machine\n\nAdd versioned virt machine started from QEMU 11.1\n\nSigned-off-by: Bibo Mao \u003cmaobibo@loongson.cn\u003e\nReviewed-by: Song Gao \u003cgaosong@loongson.cn\u003e\nSigned-off-by: Song Gao \u003cgaosong@loongson.cn\u003e\n"
    },
    {
      "commit": "c66f9c8094331e6e9badc0f39ab9ad048681c021",
      "tree": "533f5fb272928f7f614abde4dff7fa239974ecd7",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83"
      ],
      "author": {
        "name": "Bibo Mao",
        "email": "maobibo@loongson.cn",
        "time": "Wed Apr 01 09:57:04 2026 +0800"
      },
      "committer": {
        "name": "Song Gao",
        "email": "gaosong@loongson.cn",
        "time": "Fri May 08 02:47:47 2026 -0400"
      },
      "message": "hw/loongarch/virt: Define virt machine type with type_init()\n\nDefine virt machine with function type_init(), so that qemu versioned\nvirt machine can be added in later with similar method.\n\nSigned-off-by: Bibo Mao \u003cmaobibo@loongson.cn\u003e\nReviewed-by: Song Gao \u003cgaosong@loongson.cn\u003e\nSigned-off-by: Song Gao \u003cgaosong@loongson.cn\u003e\n"
    },
    {
      "commit": "24b46e7bb731a99cb0fd58ad4e79d950d9e47a24",
      "tree": "f16599b15e9d0261724ed2e8742123c65af5b6b2",
      "parents": [
        "e0076227680a9764e6d92835f20c1798f644200e"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 17:09:52 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 10:16:56 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_addsub\n\nAt the same time, export.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "e0076227680a9764e6d92835f20c1798f644200e",
      "tree": "13f0be43dea43bd97f6dfb01359fa45d0f2be100",
      "parents": [
        "b8b683af5909267196c1df851bfbcecbb6b981d3"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 13:04:15 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:56:45 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_mul\n\nAt the same time, export.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "b8b683af5909267196c1df851bfbcecbb6b981d3",
      "tree": "2550d373a6c55a2a1473d96b245131783a2413a4",
      "parents": [
        "1f5d3cebf0d5131e4dada5c07d778b00eb9ce2e2"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 12:27:16 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:51:58 2026 -0500"
      },
      "message": "fpu: Export parts{64,128}_compare\n\nAt the same time, constify the inputs.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "1f5d3cebf0d5131e4dada5c07d778b00eb9ce2e2",
      "tree": "55243baf5bb47e283b430bc2d84b281638795167",
      "parents": [
        "333a9d621fba94a0678c9bed7612edd15a3081e5"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Tue Apr 28 08:01:10 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:38 2026 -0500"
      },
      "message": "fpu: Split scalbn from partsN(muladd_scalbn)\n\nHandle the scaling separately with parts64_scalbn.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "333a9d621fba94a0678c9bed7612edd15a3081e5",
      "tree": "4174a2a4826dc297f7461da8eab3e684d133df5a",
      "parents": [
        "0743fd1a0b861af26b0ad1e8c050ec9984bc5adc"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 08:56:23 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:38 2026 -0500"
      },
      "message": "fpu: Introduce record_denormals_used\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "0743fd1a0b861af26b0ad1e8c050ec9984bc5adc",
      "tree": "4b993e368c76597dd37e5627cefc14f23008ac19",
      "parents": [
        "3d952d7cb57752a1b6a2a7d3a06c1265c72b6da4"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 07:56:08 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:38 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_pick_nan_muladd\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "3d952d7cb57752a1b6a2a7d3a06c1265c72b6da4",
      "tree": "e8fc28c2285101f00555de95dd2e7c69ff7daa0f",
      "parents": [
        "e63e64b528a2504979962d0c249496fe1e3eb837"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 22:15:21 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:38 2026 -0500"
      },
      "message": "fpu: Introduce parts64_round_to_fmt\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "e63e64b528a2504979962d0c249496fe1e3eb837",
      "tree": "e1444a65813ef4e101efecd14d14f850554511c9",
      "parents": [
        "2f0d5f872d4a4dd93123d5834bd32c3770a22a8b"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 21:25:16 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Export default_nan, pick_nan, return_nan routines\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "2f0d5f872d4a4dd93123d5834bd32c3770a22a8b",
      "tree": "6f7a8aa33ab2f83136adf8a22bd68b20404494cf",
      "parents": [
        "4d91aa8f77d020ef0d3f06158ea2cf605ac3f721"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 23:41:35 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_round_to_int\n\nAt the same time, export.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "4d91aa8f77d020ef0d3f06158ea2cf605ac3f721",
      "tree": "2b3168fcdcdf5f7534829bf35159328dcd47f6c3",
      "parents": [
        "bf6efdb9443665d6deda5212966ff20776b1a0af"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 11:05:06 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_div\n\nAt the same time, export.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "bf6efdb9443665d6deda5212966ff20776b1a0af",
      "tree": "799bd2efe806a26f2f1bac2a4324d877205efe41",
      "parents": [
        "558c92ed740b765260ba31a328d5d78b7ced0347"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 23:19:40 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_pick_nan\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "558c92ed740b765260ba31a328d5d78b7ced0347",
      "tree": "e662710c2ea0c314de5380da9ebad6d5ca5ef92d",
      "parents": [
        "343b2067222da07a507a7f42a4be216e3f10af8e"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sun Apr 26 10:50:54 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Sink exp_bias adjustment in float64r32_pack_raw\n\nShare the float32-\u003efloat64 bias adjustment from both\nthe normal and denormal paths.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "343b2067222da07a507a7f42a4be216e3f10af8e",
      "tree": "73158ede3776d1cc6acc2e5a056d5a1dc676ea56",
      "parents": [
        "c5c5828f7f1497f3a7b8acef7707fd149489bbac"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 23:08:50 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_return_nan\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "c5c5828f7f1497f3a7b8acef7707fd149489bbac",
      "tree": "8f24fd25938da2bfb2bf9fa3c814fe8b1a622f6f",
      "parents": [
        "8fb0b7c6e3ba006c0c03e2c71cbc970c27a49b9d"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 23:00:11 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_silence_nan\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "8fb0b7c6e3ba006c0c03e2c71cbc970c27a49b9d",
      "tree": "6204e21689f080343893e501e5268103327d3517",
      "parents": [
        "5511af9044ec751f064683c26b6978bf4a85b89f"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 21:19:45 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Return struct from parts{64,128}_default_nan\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "5511af9044ec751f064683c26b6978bf4a85b89f",
      "tree": "b3cf6ab8f3ce3a2f4145ba84eae1649414a65cb2",
      "parents": [
        "47f8b74ab14400fccb2b4de7f77806496c281699"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:57:20 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Export unpack_canonical and round_pack_canonical routines\n\nExport the unpacking and repacking into the various formats.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "47f8b74ab14400fccb2b4de7f77806496c281699",
      "tree": "9adb0441bf3742ab490662dcd684a0457b778961",
      "parents": [
        "7a8bb2218a105816a479992e4bdb3dd5be36c839"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 21:52:19 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Export FloatFmt structures\n\nExport most of the FloatFmt structures.\nSkip float16_params_ahp and the floatx80 precisions.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "7a8bb2218a105816a479992e4bdb3dd5be36c839",
      "tree": "c1e56f9126bb9815414b4431c1e6f4a7271b7472",
      "parents": [
        "744d9e9c1995ea35d257273d508defe96e0b6055"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:47:16 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Split FloatParts{64,128} to softfloat-parts.h\n\nBegin exposing the intermediate representation of softfloat.\nStart with just the representation structures.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "744d9e9c1995ea35d257273d508defe96e0b6055",
      "tree": "c779d45f2425993db85d2f09590b142e7b630064",
      "parents": [
        "1d8c1b44d63bca8165aa649d6cf669ccfa8cbf0a"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:38:46 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Mark pack_raw64 QEMU_ALWAYS_INLINE\n\nThis is almost always used with a constant FloatFmt,\nso inlining pulls the constants into the shifts.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "1d8c1b44d63bca8165aa649d6cf669ccfa8cbf0a",
      "tree": "57e822d446005a8c0237548958d34bb2d826be7b",
      "parents": [
        "ded64df396bc89a3d803a3f4b1db0c7066d88623"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:35:29 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Mark unpack_raw64 QEMU_ALWAYS_INLINE\n\nThis is almost always used with a constant FloatFmt,\nso inlining pulls the constants into the shifts.\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "ded64df396bc89a3d803a3f4b1db0c7066d88623",
      "tree": "d33f665957e405cb1da318e66baa6ac9709783ea",
      "parents": [
        "14dfa4f8ea7227b0e764c6e7104eb77939b7ec59"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:24:33 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline float64_pack_raw into callers\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "14dfa4f8ea7227b0e764c6e7104eb77939b7ec59",
      "tree": "c4ec3fcdc375957bd8a06d84f24d68ad0b72c0b7",
      "parents": [
        "d7f83833da660a1881807160ca46ce8465541add"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:22:51 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline float32_pack_raw into callers\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "d7f83833da660a1881807160ca46ce8465541add",
      "tree": "2dfaad59a78fb68155879ef2cb19344a5cf410db",
      "parents": [
        "1b57b0655deb20373cb3b31520059694d4ba7b93"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:21:07 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline bfloat16_pack_raw into callers\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "1b57b0655deb20373cb3b31520059694d4ba7b93",
      "tree": "9b82c0afeadfa064835eb5e9d473b841c842cd67",
      "parents": [
        "4746196cf8edad1e98018054aa70184b608fa0d5"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:18:45 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline float16_pack_raw into callers\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "4746196cf8edad1e98018054aa70184b608fa0d5",
      "tree": "97214d0915248cc3339ab2b9c6f5e4a993092e6a",
      "parents": [
        "7a457a21272b0fcf20ab6c65d0b6b341f9541d0a"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:12:40 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline float8_e5m2_pack_raw into single caller\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "7a457a21272b0fcf20ab6c65d0b6b341f9541d0a",
      "tree": "2b91f49445104e34a6cf15ac46b1eb3959ba1380",
      "parents": [
        "ee7eb612be8f8886d48c1d0c1f1c65e495138f83"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Sat Apr 25 20:11:16 2026 +1000"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "richard.henderson@linaro.org",
        "time": "Thu May 07 09:41:37 2026 -0500"
      },
      "message": "fpu: Inline float8_e4m3_pack_raw to single caller\n\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n"
    },
    {
      "commit": "18b664c90085b0d2be9c2ad8c747e00a7a733402",
      "tree": "01e45e2e15a9222dc709d4ce0661f862cb5b7c71",
      "parents": [
        "f443b687636205b7f70029692b244f1f90532cf2"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri May 01 17:27:00 2026 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/misc/bcm2835_rng: Specify valid memory access sizes\n\nThe BCM2835 RNG has 32-bit registers only; specify this in\nthe MemoryRegionOps so wrong-sized accesses are rejected rather\nthan getting to the assertions in the read and write functions,\nand for clarity add the matching .impl constraints.\n\nCc: qemu-stable@nongnu.org\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/3394\nFixes: 54a5ba13a9f (\"target-arm: Implement BCM2835 hardware RNG\")\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260501162700.4092512-1-peter.maydell@linaro.org\n"
    },
    {
      "commit": "f443b687636205b7f70029692b244f1f90532cf2",
      "tree": "143c5a9f4ae7c7b49d933156945df2bb5d00bcf0",
      "parents": [
        "b380e88021af0b05075d7c582ec1bc5952a1c440"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Tue May 05 11:37:26 2026 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "target/arm: Report IL\u003d0 for Thumb 16-bit BKPT insn\n\nThe Thumb BKPT insn is 16-bit, and the ESR_ELx syndrome register\ndefinition requires that we set the IL bit to 0 for this, and 1 for\nthe 32-bit A32 and A64 BKPT/BRK.\n\nWe used to do this correctly, but accidentally lost it in the\nconversion to decodetree, because we converted the A32 BKPT first,\nand then when we converted the T16 BKPT we forgot that trans_BKPT()\nwas unconditionally setting IL\u003d1.\n\nPass the right value for syn_aa32_bkpt()\u0027s is_16bit argument.\n\nCc: qemu-stable@nongnu.org\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/3474\nFixes: 43f7e42c7d515f (\"target/arm: Convert T16, Miscellaneous 16-bit instructions\")\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nReviewed-by: Alex Bennée \u003calex.bennee@linaro.org\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nMessage-id: 20260505103726.419195-1-peter.maydell@linaro.org\n"
    },
    {
      "commit": "b380e88021af0b05075d7c582ec1bc5952a1c440",
      "tree": "6be6742dd99d650ddfa56fe98f16ae029e4de077",
      "parents": [
        "e42a0b7644905acc6c3c0b375519444e4b334eae"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:17:00 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Allow user to select GICv5\n\nAllow the user to select a GICv5 via \u0027-machine gic-version\u003dx-5\u0027, and\ndocument this.  The \u0027x-\u0027 prefix indicates that the emulation is still\nin an \"experimental\" state as far as QEMU is concerned; the\ndocumentation describes what \"experimental\" means for the user and\nwhat parts are not yet implemented.\n\nWe do not make \u0027gic-version\u003dmax\u0027 enable GICv5 here because:\n\n * the GICv5 architectural spec is still at the EAC level and could\n   have minor changes between now and its final version; only users\n   who specifically want to start working with the GICv5 should\n   select it\n * QEMU\u0027s implementation here is still not fully featured, and\n   selecting it instead of GICv3 will mean losing functionality such\n   as MSIs\n * the GICv5 is not backwards compatible with the GICv3/GICv4 for\n   system software, so silently \"upgrading\" an existing command line\n   to GICv5 is just going to break existing guest kernels\n\nThe last one in particular suggests that even when the emulation\nmoves out of \"experimental\" status we will probably not want to\nchange \"max\".\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260327111700.795099-66-peter.maydell@linaro.org\n"
    },
    {
      "commit": "e42a0b7644905acc6c3c0b375519444e4b334eae",
      "tree": "f300f555b6abbaa09ed234c207692128f056349a",
      "parents": [
        "b23a9cad3124d1da511116117a327f11311982e5"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:59 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Enable GICv5 CPU interface when using GICv5\n\nIf we are using the GICv5 in the virt board, we need to set the\nhas_gcie property on the CPU objects to tell them to implement the\ncpu interface part of GICv5.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-65-peter.maydell@linaro.org\n"
    },
    {
      "commit": "b23a9cad3124d1da511116117a327f11311982e5",
      "tree": "3498be065a21db0056aa26118599a337006983f7",
      "parents": [
        "c41215f1a957ee2ef941eeb8303295688ded378a"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:58 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Use correct interrupt type for GICv5 SPIs in the DTB\n\nThe GICv5 devicetree binding specifies that the \"interrupts\" property\nfor devices connected to it should use the architectural INTID.TYPE\nvalues to specify whether the interrupt is an SPI, LPI or PPI.  This\nis different to the GICv2 and GICv3, so instead of hardcoding the\nGIC_FDT_IRQ_TYPE_SPI constant when we create \"interrupts\" bindings,\ncreate a new function gic_fdt_irq_type_spi() that returns the right\nvalue for the interrupt controller in use.\n\nFor SPIs, the INTID.ID and the trigger-mode fields of the\n\"interrupts\" property remain the same for GICv5 and the older GIC\nversions.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-64-peter.maydell@linaro.org\n"
    },
    {
      "commit": "c41215f1a957ee2ef941eeb8303295688ded378a",
      "tree": "c71b3e6571abb341d7193eda97168dcdb132690e",
      "parents": [
        "2b85bfa1f07cf3a8fe8d5884d81ac10e1ddec4dd"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:57 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Handle GICv5 in interrupt bindings for PPIs\n\nThe GICv5 devicetree binding specifies the \"interrupts\" property\ndifferently to GICv2 and GICv3 for PPIs: the first field is the\narchitectural INTID.TYPE, and the second is the architectural\nINTID.ID.  (The third field defining the level/edge trigger mode has\nthe same values for GICv5 as it did for the older GICs.)\n\nIn the places in the virt board where we wire up PPIs (the timer and\nthe PMU), handle the GICv5:\n\n * use the architectural constant GICV5_PPI for the type\n * use the architected GICv5 PPI numbers for the interrupt sources\n   (which differ from the old ones and don\u0027t need to be adjusted via\n   INTID_TO_PPI())\n * leave the irqflags as-is\n\nAdd some commentary in our include/hw/arm/fdt.h file about what the\nthe constants defined there are valid for.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-63-peter.maydell@linaro.org\n"
    },
    {
      "commit": "2b85bfa1f07cf3a8fe8d5884d81ac10e1ddec4dd",
      "tree": "b4a6735119826c298f65bb5128d10d70a47c1c6d",
      "parents": [
        "aa82039d7d8a62f4de983baf81b0db0c4e02d635"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:56 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Advertise GICv5 in the DTB\n\nAdvertise the GICv5 in the DTB. This binding is final as it is in\nthe upstream Linux kernel as:\nDocumentation/devicetree/bindings/interrupt-controller/arm,gic-v5.yaml\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260327111700.795099-62-peter.maydell@linaro.org\n"
    },
    {
      "commit": "aa82039d7d8a62f4de983baf81b0db0c4e02d635",
      "tree": "bd53ad283a1b1f0ae305c3c2184735a3e99f209a",
      "parents": [
        "1d2f92600ddaf14107b439f48f189c464e462f07"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:55 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Create and connect GICv5\n\nIn this commit we create and connect up the GICv5.  We do not\nadvertise it in the ACPI tables or DTB; that will be done in a\nfollowing commit.\n\nThe user-facing gic-version property still only documents and permits\nin its setter function the existing set of possible values; we won\u0027t\npermit the user to select a GICv5 until all the code to handle it is\nin place.\n\nAlthough we currently implement only the IRS, and only for EL1,\nwe reserve space in the virt board\u0027s memory map now for all the\nregister frames that the GICv5 may use. Each interrupt domain has:\n * one IRS config register frame\n * one ITS config register frame\n * one ITS translate register frame\nand each of these frames is 64K in size and 64K aligned and must be\nat a unique address (that is, it is not permitted to have all the IRS\nconfig register frames at the same physical address in the different\nS/NS/etc physical address spaces).\n\nThe addresses and layout of these frames are entirely up to the\nimplementation: software will be passed their addresses via firmware\ndata structures (ACPI or DTB).\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260327111700.795099-61-peter.maydell@linaro.org\n"
    },
    {
      "commit": "1d2f92600ddaf14107b439f48f189c464e462f07",
      "tree": "eb4bb96f5f9494dd1b6cba9ddade60641ebe7918",
      "parents": [
        "a7a9b822be07dd7c907182366b90ef5c0990b0c9"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:54 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Split GICv2 and GICv3/4 creation\n\nCurrently create_gic() handles GICv2 and GICv3/4 in a single\nfunction, with large sections that are conditional on the\nvms-\u003egic_version.  GICv5 will be different to both.\n\nRefactor into create_gicv2() and create_gicv3().\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-60-peter.maydell@linaro.org\n"
    },
    {
      "commit": "a7a9b822be07dd7c907182366b90ef5c0990b0c9",
      "tree": "7558e59dd9f0139ae84f315e75ee81d65aaac836",
      "parents": [
        "9c8ac5bbdd28606b1131260512ff34c6e5280b29"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:53 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Pull \"wire CPU interrupts\" out of create_gic()\n\ncreate_gic() is quite long and mixes GICv2 and GICv3 even though\nthey\u0027re mostly different in their creation.  As a preliminary to\nsplitting it up, pull out the \"wire the CPU interrupts to the GIC PPI\ninputs\" code out into its own function.  This is a long and\nself-contained piece of code that is the main thing that we need to\ndo basically the same way for GICv2 and GICv3.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260327111700.795099-59-peter.maydell@linaro.org\n"
    },
    {
      "commit": "9c8ac5bbdd28606b1131260512ff34c6e5280b29",
      "tree": "808092c0ee90e706345bd4557a56fb2b7faaf636",
      "parents": [
        "abc2eb40ada3fde9bf9ae26d5e19533b0c996c20"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:52 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Move MSI controller creation out of create_gic()\n\nThe create_gic() function also creates the MSI controller; however\nthere isn\u0027t really a strong linkage here, and for the GICv5 it will\nbe more convenient to separate it out.  Move it to a new\ncreate_msi_controller() function.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cphilmd@linaro.org\u003e\nMessage-id: 20260327111700.795099-58-peter.maydell@linaro.org\n"
    },
    {
      "commit": "abc2eb40ada3fde9bf9ae26d5e19533b0c996c20",
      "tree": "8673755a2daac43e06f03c516bbf0c648343bc2e",
      "parents": [
        "6c86e20591aa37619bef7153936497008a9722d7"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:51 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/arm/virt: Remember CPU phandles rather than looking them up by name\n\nIn fdt_add_cpu_nodes(), we currently add phandles for each CPU node\nif we are going to add a topology description, and when we do, we\nre-look-up the phandle by node name when creating the topology\ndescription.\n\nFor GICv5 we will also want to refer to the CPU phandles; so always\nadd a phandle, and keep track of those phandles in the\nVirtMachineState so we don\u0027t have to look them up by name in the dtb\nevery time.\n\nThe phandle property is extra data in the final DTB, but only a tiny\namount, so it\u0027s not worth trying to carefully track the conditions\nwhen we\u0027re going to need them so we only emit them when required.\n\n(We need to change the smp_cpus variable to unsigned because\notherwise gcc thinks that we might be passing a negative number to\ng_new0() and produces an error:\n\n/usr/include/glib-2.0/glib/gmem.h:270:19: error: argument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Werror\u003dalloc-size-larger-than\u003d]\n  270 |             __p \u003d g_##func##_n (__n, __s);                      \\\n      |                   ^~~~~~~~~~~~~~~~~~~~~~~\n/usr/include/glib-2.0/glib/gmem.h:332:57: note: in expansion of macro ‘_G_NEW’\n  332 | #define g_new0(struct_type, n_structs)                  _G_NEW (struct_type, n_structs, malloc0)\n      |                                                         ^~~~~~\n../../hw/arm/virt.c:469:25: note: in expansion of macro ‘g_new0’\n  469 |     vms-\u003ecpu_phandles \u003d g_new0(uint32_t, smp_cpus);\n      |                         ^~~~~~\n\n)\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-57-peter.maydell@linaro.org\n"
    },
    {
      "commit": "6c86e20591aa37619bef7153936497008a9722d7",
      "tree": "0508b15280aac5b32ed4f63df9627112ef8932af",
      "parents": [
        "d934f21b870df843783e883bb56afe7331079fd5"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:50 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "hw/intc/arm_gicv3_cpuif: Don\u0027t allow GICv3 if CPU has GICv5 cpuif\n\nThe GICv3 and GICv5 CPU interfaces are not compatible, and a CPU will\nonly implement either one or the other.  If we find that we\u0027re trying\nto connect a GICv3 to a CPU that implements FEAT_GCIE, fail.  This\nwill only happen if the board code has a bug and doesn\u0027t configure\nits CPUs and its GIC consistently.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-56-peter.maydell@linaro.org\n"
    },
    {
      "commit": "d934f21b870df843783e883bb56afe7331079fd5",
      "tree": "51ab964d258e5668ffea655edd48f5a041030731",
      "parents": [
        "c2f85a1641a88fbbf971c106aa02ae04fc0d8530"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:49 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:58 2026 +0100"
      },
      "message": "target/arm: Add has_gcie property to enable FEAT_GCIE\n\nAdd a has_gcie QOM property to the CPU which allows the board code to\nenable FEAT_GCIE, the GICv5 CPU interface.\n\nEnabling the GICv5 CPU interface comes with a significant\nrestriction: because the GICv5 architecture is Armv9, it assumes the\nArmv9 requirement that only EL0 (userspace) may be in AArch32.  So\nthere are no GIC control system registers defined for AArch32.  We\nforce AArch32 at ELs 1, 2 and 3 to disabled, to avoid a guest being\nable to get into an EL where interrupts are completely broken.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-55-peter.maydell@linaro.org\n"
    },
    {
      "commit": "c2f85a1641a88fbbf971c106aa02ae04fc0d8530",
      "tree": "63533bfcf850afe01318796d5e6ea640b7cab303",
      "parents": [
        "9bd90bddb79b6f531e451425d27f767ca8178b0b"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:57 2026 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:14:57 2026 +0100"
      },
      "message": "target/arm: Connect internal interrupt sources up as GICv5 PPIs\n\nThe CPU has several interrupt sources which are exposed as GICv5\nPPIs.  For QEMU, this means the generic timers and the PMU.\n\nIn GICv3, we implemented these as qemu_irq lines which connect up to\nthe external interrupt controller device.  In a GICv5, the PPIs are\nhandled entirely inside the CPU interface, so there are no external\nsignals.  Instead we provide a gicv5_update_ppi_state() function\nwhich the emulated timer and PMU code uses to tell the CPU interface\nabout the new state of the PPI source.\n\nWe make the GICv5 function a no-op if there is no GICv5 present, so\nthat calling code can do both \"update the old irq lines\" and \"update\nthe GICv5 PPI\" without having to add conditionals.  (In a GICv5\nsystem the old irq lines won\u0027t be connected to anything, so the\nqemu_set_irq() will be a no-op.)\n\nUpdating PPIs via either mechanism is unnecessary in user-only mode;\nwe got away with not ifdeffing this away before because\nqemu_set_irq() is built for user-only mode, but since the GICv5 cpuif\ncode is system-emulation only, we do need an ifdef now.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-54-peter.maydell@linaro.org"
    },
    {
      "commit": "9bd90bddb79b6f531e451425d27f767ca8178b0b",
      "tree": "20b2e1bb01fd3c674e8fbc435b81238164095b36",
      "parents": [
        "49f4c98648c1a693d5f752c7a2411d4904e94bc7"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:47 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:13:47 2026 +0100"
      },
      "message": "target/arm: GICv5 cpuif: Signal IRQ or FIQ\n\nThe CPU interface must signal IRQ or FIQ (possibly with\nsuperpriority) when there is a pending interrupt of sufficient\npriority available.  Implement this logic.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-53-peter.maydell@linaro.org\n"
    },
    {
      "commit": "49f4c98648c1a693d5f752c7a2411d4904e94bc7",
      "tree": "445e4e62cb991b3f109ea4ad17b84f8be446dce5",
      "parents": [
        "576891bc313ebfdff04b3428818404c3be3a264e"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:46 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:13:47 2026 +0100"
      },
      "message": "target/arm: GICv5 cpuif: Implement GIC CDDI\n\nImplement the GIC CDDI system instruction, which deactivates the\nspecified interrupt.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-52-peter.maydell@linaro.org\n"
    },
    {
      "commit": "576891bc313ebfdff04b3428818404c3be3a264e",
      "tree": "4ce63a3693bd04fdccd56bb36b7c6b61fb99759a",
      "parents": [
        "7070e62c1b2beccc27a32de6fb216a348863717c"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri Mar 27 11:16:45 2026 +0000"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 07 15:13:47 2026 +0100"
      },
      "message": "hw/intc/arm_gicv5: Implement Deactivate command\n\nImplement the equivalent of the GICv5 stream protocol\u0027s Deactivate\ncommand, which lets the cpuif tell the IRS to deactivate the\nspecified interrupt.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Jonathan Cameron \u003cjonathan.cameron@huawei.com\u003e\nMessage-id: 20260327111700.795099-51-peter.maydell@linaro.org\n"
    }
  ],
  "next": "7070e62c1b2beccc27a32de6fb216a348863717c"
}
