)]}'
{
  "log": [
    {
      "commit": "77b108c6a6f1c66fb7f60a80d17596bb80bda8ad",
      "tree": "98cda87984783e9681156d95cdec878fb85a8276",
      "parents": [
        "9b46ebc561d3cc3bb54a350e4eed94d24562f347"
      ],
      "author": {
        "name": "Suzuki K Poulose",
        "email": "suzuki.poulose@arm.com",
        "time": "Wed Apr 05 12:09:05 2023 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Apr 06 15:26:59 2023 +0100"
      },
      "message": "arm: Do not add padding alignment for hugetlbfs backed memory\n\nThe arm code tries to align the memory allocation size to 2M to potentially\nmake use of the transparent hugepages. But this would be problematic if we\ntry to allocate from the hugetlbfs, where the allocation size could be more than\n2M. Given we support upto 1G, let use leave it to the user to align the\nrequested memory when hugetlbfs is used.\n\nWithout the patch:\n $ echo 1 \u003e /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages\n $ mount -t hugetlbfs -o pagesize\u003d1G none /root/hugemem/\n $  lkvm run -m 1024 --hugetlbfs /root/hugemem/  ...\n   # lkvm run -k ...  -m 1024 -c 6\n   Fatal: Can\u0027t ftruncate for mem mapping size 1075838976\n\nSigned-off-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nAcked-by: Marc Zyngier \u003cmaz@kernel.org\u003e\nLink: https://lore.kernel.org/r/20230405110905.669217-1-suzuki.poulose@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "9b46ebc561d3cc3bb54a350e4eed94d24562f347",
      "tree": "28d99fd6c8b7cb8df1e8494fe5136e685bfc8145",
      "parents": [
        "2f030d283c0e7a417f50cf0d70d076870815f3e6"
      ],
      "author": {
        "name": "Rajnesh Kanwal",
        "email": "rkanwal@rivosinc.com",
        "time": "Mon Mar 20 14:33:44 2023 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Mar 24 17:37:39 2023 +0000"
      },
      "message": "Add virtio-transport option and deprecate force-pci and virtio-legacy.\n\nThis is a follow-up patch for [0] which proposed the --force-pci option\nfor riscv. As per the discussion it was concluded to add virtio-tranport\noption taking in four options (pci, pci-legacy, mmio, mmio-legacy).\n\nWith this change force-pci and virtio-legacy are both deprecated and\narm\u0027s default transport changes from MMIO to PCI as agreed in [0].\nThis is also true for riscv.\n\nNothing changes for other architectures.\n\n[0]: https://lore.kernel.org/all/20230118172007.408667-1-rkanwal@rivosinc.com/\n\nSigned-off-by: Rajnesh Kanwal \u003crkanwal@rivosinc.com\u003e\nLink: https://lore.kernel.org/r/20230320143344.404307-1-rkanwal@rivosinc.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "2f030d283c0e7a417f50cf0d70d076870815f3e6",
      "tree": "363f9770417382cc4da72162a5a177e0a9143e00",
      "parents": [
        "e17d182ad3f797f01947fc234d95c96c050c534b"
      ],
      "author": {
        "name": "Rajnesh Kanwal",
        "email": "rkanwal@rivosinc.com",
        "time": "Fri Feb 03 12:29:34 2023 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Mar 24 17:34:17 2023 +0000"
      },
      "message": "riscv: Move serial and rtc from IO port space to MMIO area.\n\nThe default serial and rtc IO region overlaps with PCI IO bar\nregion leading bar 0 activation to fail. Moving these devices\nto MMIO region similar to ARM.\n\nGiven serial has been moved from 0x3f8 to 0x10000000, this\nrequires us to now pass earlycon\u003duart8250,mmio,0x10000000\nfrom cmdline rather than earlycon\u003duart8250,mmio,0x3f8.\n\nTo avoid the need to change the address every time the tool\nis updated, we can also just pass \"earlycon\" from cmdline\nand guest then finds the type and base address by following\nthe Device Tree\u0027s stdout-path property.\n\nSigned-off-by: Rajnesh Kanwal \u003crkanwal@rivosinc.com\u003e\nTested-by: Atish Patra \u003catishp@rivosinc.com\u003e\nReviewed-by: Atish Patra \u003catishp@rivosinc.com\u003e\nLink: https://lore.kernel.org/r/20230203122934.18714-1-rkanwal@rivosinc.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "e17d182ad3f797f01947fc234d95c96c050c534b",
      "tree": "fb57274bb1ece0d86eb117972d9249607760cef9",
      "parents": [
        "798398f40a163d476ec142b57e35bc1de4f17ca0"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Tue Oct 18 19:38:54 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "riscv: Add --disable-\u003cxyz\u003e options to allow user disable extensions\n\nBy default, the KVM RISC-V keeps all extensions available to VCPU\nenabled and KVMTOOL does not disable any extension.\n\nWe add --disable-\u003cxyz\u003e command-line options in KVMTOOL RISC-V to\nallow users explicitly disable certain extension if they don\u0027t\ndesire it.\n\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-7-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "798398f40a163d476ec142b57e35bc1de4f17ca0",
      "tree": "747084b5d8acf14c0396959713c51851e4c969c9",
      "parents": [
        "b721ac0ad88a828890a7e44aa7889675152997eb"
      ],
      "author": {
        "name": "Andrew Jones",
        "email": "ajones@ventanamicro.com",
        "time": "Tue Oct 18 19:38:53 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "riscv: Add Zicbom extension support\n\nWhen the Zicbom extension is available expose it to the guest.\nAlso provide the guest the size of the cache block through DT.\n\nSigned-off-by: Andrew Jones \u003cajones@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-6-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "b721ac0ad88a828890a7e44aa7889675152997eb",
      "tree": "98e4797f2d6b5653e94ce3d6989a38e766e944d9",
      "parents": [
        "23a8ed9073310d6aa06930cf65820cd2ccab2037"
      ],
      "author": {
        "name": "Andrew Jones",
        "email": "ajones@ventanamicro.com",
        "time": "Tue Oct 18 19:38:52 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "riscv: Move reg encoding helpers to kvm-cpu-arch.h\n\nWe\u0027ll need one of these helpers in the next patch in another file.\nLet\u0027s proactively move them all now, since others may some day also\nbe useful.\n\nSigned-off-by: Andrew Jones \u003cajones@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-5-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "23a8ed9073310d6aa06930cf65820cd2ccab2037",
      "tree": "7d00c5bc626bd345d54afc958df281f4de11b7ea",
      "parents": [
        "ac16e9430627c8f502b949c569de03ddabac5821"
      ],
      "author": {
        "name": "Mayuresh Chitale",
        "email": "mchitale@ventanamicro.com",
        "time": "Tue Oct 18 19:38:51 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "riscv: Add zihintpause extension support\n\nThe zihintpause extension allows software to use the PAUSE instruction to\nreduce energy consumption while executing spin-wait code sequences. Add the\nzihintpause extension to the device tree if it is supported by the host.\n\nSigned-off-by: Mayuresh Chitale \u003cmchitale@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-4-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "ac16e9430627c8f502b949c569de03ddabac5821",
      "tree": "fa0a95531ba29eb194a49dbcfe45c4cd43ed89b5",
      "parents": [
        "76dfc0cf2d6bce6fedf53746cec3787c3b15847b"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Tue Oct 18 19:38:50 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "riscv: Add Svinval extension support\n\nSvinval extension allows the guest OS to perform range based TLB\nmaintenance efficiently. Add the Svinval extensiont to the device\ntree if it is supported by the host.\n\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-3-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "76dfc0cf2d6bce6fedf53746cec3787c3b15847b",
      "tree": "3944ba022b7d2999e19add8902bddd3ce238a26c",
      "parents": [
        "5a9cde6532ea2caf690a30d31da6c4ed658e3643"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Tue Oct 18 19:38:49 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:34:21 2022 +0000"
      },
      "message": "Update UAPI headers based on Linux-6.1-rc1\n\nWe update all UAPI headers based on Linux-6.1-rc1 so that we can\nuse latest features.\n\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20221018140854.69846-2-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "5a9cde6532ea2caf690a30d31da6c4ed658e3643",
      "tree": "d0952757d418a08f3ea12839cb2a9b52c813101c",
      "parents": [
        "78771e779a3aca3f6d7ce7aff60ae0f835fbc14f"
      ],
      "author": {
        "name": "hbuxiaofei",
        "email": "hbuxiaofei@gmail.com",
        "time": "Wed Nov 02 16:05:01 2022 +0800"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:32:42 2022 +0000"
      },
      "message": "hw/i8042: Fix value uninitialized in kbd_io()\n\n  GCC Version:\n    gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)\n\n  hw/i8042.c: In function ‘kbd_io’:\n  hw/i8042.c:153:19: error: ‘value’ may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n     state.write_cmd \u003d val;\n     ~~~~~~~~~~~~~~~~^~~~~\n  hw/i8042.c:298:5: note: ‘value’ was declared here\n    u8 value;\n       ^~~~~\n  cc1: all warnings being treated as errors\n  make: *** [Makefile:508: hw/i8042.o] Error 1\n\nSigned-off-by: hbuxiaofei \u003chbuxiaofei@gmail.com\u003e\nLink: https://lore.kernel.org/r/20221102080501.69274-1-hbuxiaofei@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "78771e779a3aca3f6d7ce7aff60ae0f835fbc14f",
      "tree": "56152fde803276a10ee0b2dbcb6bd363cca0b755",
      "parents": [
        "717a3ab0a195626360f40e9d3b4d6d8e072e83ba"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Thu Oct 20 18:34:53 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Nov 08 15:31:22 2022 +0000"
      },
      "message": "pci: Disable writes to Status register\n\nAlthough the PCI Status register only contains read-only and\nwrite-1-to-clear bits, we currently keep anything written there, which\ncan confuse a guest.\n\nThe problem was highlighted by recent Linux commit 6cd514e58f12 (\"PCI:\nClear PCI_STATUS when setting up device\"), which unconditionally writes\n0xffff to the Status register in order to clear pending errors. Then the\nEDAC driver sees the parity status bits set and attempts to clear them\nby writing 0xc100, which in turn clears the Capabilities List bit.\nLater on, when the virtio-pci driver starts probing, it assumes due to\nmissing capabilities that the device is using the legacy transport, and\nfails to setup the device because of mismatched protocol.\n\nFilter writes to the config space, keeping only those to writable\nfields. Tighten the access size check while we\u0027re at it, to prevent\noverflow. This is only a small step in the right direction, not a\nfoolproof solution, because a guest could still write both Command and\nStatus registers using a single 32-bit write. More work is needed for:\n* Supporting arbitrary sized writes.\n* Sanitizing accesses to capabilities, which are device-specific.\n\nAlso remove the old hack that filtered accesses. It was most likely\nguarding against ROM BAR writes, which is now handled by the\npci_config_writable bitmap.\n\nReported-by: Pierre Gondois \u003cpierre.gondois@arm.com\u003e\nTested-by: Pierre Gondois \u003cpierre.gondois@arm.com\u003e\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nLink: https://lore.kernel.org/r/20221020173452.203043-1-jean-philippe@linaro.org\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "717a3ab0a195626360f40e9d3b4d6d8e072e83ba",
      "tree": "6d1474babb083de65eb060c1663dbd739cf8f923",
      "parents": [
        "ed805be52f57934729379e0afd546b7433f7f987"
      ],
      "author": {
        "name": "Tu Dinh Ngoc",
        "email": "dinhngoc.tu@irit.fr",
        "time": "Thu Sep 29 14:18:58 2022 +0200"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Tue Oct 04 12:52:17 2022 +0100"
      },
      "message": "virtio-net: Fix vq-\u003euse_event_idx flag check\n\nVIRTIO_RING_F_EVENT_IDX is a bit position value, but\nvirtio_init_device_vq populates vq-\u003euse_event_idx by ANDing this value\ndirectly to vdev-\u003efeatures.\n\nFix the check for this flag in virtio_init_device_vq.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Tu Dinh Ngoc \u003cdinhngoc.tu@irit.fr\u003e\nLink: https://lore.kernel.org/r/20220929121858.156-1-dinhngoc.tu@irit.fr\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "ed805be52f57934729379e0afd546b7433f7f987",
      "tree": "4f24eae12a29093fe4d7aceebef00ba067a96c75",
      "parents": [
        "3c07aeaf993a2ec607ff4e1f8b5b78d300c3c8f5"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Mon Aug 15 15:43:25 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:28:36 2022 +0100"
      },
      "message": "riscv: Fix serial0 alias path\n\nWe have all MMIO devices under \"/smb\" DT node so the serial0 alias\npath should have \"/smb\" prefix.\n\nFixes: 7c9aac003925 (\"riscv: Generate FDT at runtime for Guest/VM\")\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20220815101325.477694-6-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3c07aeaf993a2ec607ff4e1f8b5b78d300c3c8f5",
      "tree": "b972737b1be9e72318185c9c0206c4a059ad408e",
      "parents": [
        "2b4fe0f8cff1c7d16ed47016068ad19eedc90068"
      ],
      "author": {
        "name": "Atish Patra",
        "email": "atishp@rivosinc.com",
        "time": "Mon Aug 15 15:43:24 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:28:36 2022 +0100"
      },
      "message": "riscv: Add Sstc extension support\n\nSstc extension allows the guest OS to program the timer directly without\nrelying on the SBI call. The kernel detects the presence of Sstc extnesion\nfrom the riscv,isa DT property. Add the Sstc extension to the device tree\nif it is supported by the host.\n\nSigned-off-by: Atish Patra \u003catishp@rivosinc.com\u003e\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20220815101325.477694-5-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "2b4fe0f8cff1c7d16ed47016068ad19eedc90068",
      "tree": "f267084a2d0dfc9b72d7051e3b1522e205abb908",
      "parents": [
        "8aff29e1dafe888d00786574925765ea667fbb43"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Mon Aug 15 15:43:23 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:28:36 2022 +0100"
      },
      "message": "riscv: Add Svpbmt extension support\n\nThe Svpbmt extension allows PTE based memory attributes in page tables.\nThis extension also allows Guest/VM to use PTE based memory attributes\nin VS-stage page tables so let us add it Guest/VM ISA string when KVM\nRISC-V supports it.\n\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20220815101325.477694-4-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "8aff29e1dafe888d00786574925765ea667fbb43",
      "tree": "28dc6684ea77b395c9eb78d055584d5f12959650",
      "parents": [
        "8d0facec06aed40cc6affd3460dd8b52f621e7f2"
      ],
      "author": {
        "name": "Atish Patra",
        "email": "atishp@rivosinc.com",
        "time": "Mon Aug 15 15:43:22 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:28:36 2022 +0100"
      },
      "message": "riscv: Append ISA extensions to the device tree\n\nThe riscv,isa DT property only contains single letter base extensions\nuntil now. However, there are also multi-letter extensions which were\nratified recently. Add a mechanism to append those extension details\nto the device tree so that guest can leverage those.\n\nSigned-off-by: Atish Patra \u003catishp@rivosinc.com\u003e\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20220815101325.477694-3-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "8d0facec06aed40cc6affd3460dd8b52f621e7f2",
      "tree": "dd69db0b38aaf881235f39bbc55ceacb298abad5",
      "parents": [
        "9987a37cfc574bd90df9dbb6a1e08ac6b48c7cea"
      ],
      "author": {
        "name": "Anup Patel",
        "email": "apatel@ventanamicro.com",
        "time": "Mon Aug 15 15:43:21 2022 +0530"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:28:36 2022 +0100"
      },
      "message": "Update UAPI headers based on Linux-6.0-rc1\n\nWe update all UAPI headers based on Linux-6.0-rc1 so that we can\nuse latest features.\n\nSigned-off-by: Anup Patel \u003capatel@ventanamicro.com\u003e\nLink: https://lore.kernel.org/r/20220815101325.477694-2-apatel@ventanamicro.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "9987a37cfc574bd90df9dbb6a1e08ac6b48c7cea",
      "tree": "bed8cc41914d9cd37f73546498ae0aa568302805",
      "parents": [
        "336751fb10ef24e65cd2f25c450da1d52ff5b33c"
      ],
      "author": {
        "name": "Suzuki K Poulose",
        "email": "suzuki.poulose@arm.com",
        "time": "Tue Aug 09 13:48:16 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Sep 22 13:27:10 2022 +0100"
      },
      "message": "net: Use vfork() instead of fork() for script execution\n\nWhen a script is specified for a guest nic setup, we fork() and execl()s\nthe script when it is time to execute the script. However this is not\noptimal, given we are running a VM. The fork() will trigger marking the\nentire page-table of the current process as CoW, which will trigger\nunmapping the entire stage2 page tables from the guest. Anyway, the\nchild process will exec the script as soon as we fork(), making all\nthese mm operations moot. Also, this operation could be problematic\nfor confidential compute VMs, where it may be expensive (and sometimes\ndestructive) to make changes to the stage2 page tables.\n\nSo, instead we could use vfork() and avoid the CoW and unmap of the stage2.\n\nSigned-off-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220809124816.2880990-1-suzuki.poulose@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "336751fb10ef24e65cd2f25c450da1d52ff5b33c",
      "tree": "14ac0c654f2678ca704ebaccf932dec264197b48",
      "parents": [
        "6c88c26f701ffcd9534bb4bfdc6f3225d20c4921"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Fri Jul 22 15:14:48 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Aug 04 15:55:54 2022 +0100"
      },
      "message": "Makefile: Introduce LIBFDT_DIR to specify libfdt location\n\nThe arm, arm64, powerpc and riscv architectures require that libfdt is\ninstalled on the system, however the library might not be available for\nevery architecture on the user\u0027s distro of choice. Or the static version of\nthe library, needed for the lkvm-static target, might be missing.\nFortunately, kvmtool has anticipated this situation and it includes\ninstructions to compile and install libfdt in the INSTALL file.\nUnfortunately, those instructions do not always work (for example, because\nthe user is missing the needed permisssions), leaving the user unable to\ncompile kvmtool.\n\nAs an alternative to installing libfdt system-wide, provide the\nLIBFDT_DIR variable when compiling kvmtool. For example, when compiling\nwith the command:\n\n$ make ARCH\u003d\u003carch\u003e CROSS_COMPILE\u003d\u003ccross_compile\u003e LIBFDT_DIR\u003d\u003cdir\u003e\n\nkvmtool will link the executable against the static version of the library\nlocated in LIBFDT_DIR/libfdt.a.\n\nLIBFDT_DIR takes precedence over the system library, as there are valid\nreasons to prefer a self-compiled library over the one that the distro\nprovides (like the system library being older).\n\nNote that this will slightly increase the size of the executable. For the\narm64 architecture, the increase has been measured to be about 100KB, or\nabout 5% of the total executable size.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220722141448.168252-2-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "6c88c26f701ffcd9534bb4bfdc6f3225d20c4921",
      "tree": "86506337449777e1834518bc652b5cd9acec83e4",
      "parents": [
        "fe2182731b721ecaec97cb7f02b2c334469669ce"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Fri Jul 22 15:17:32 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Aug 04 15:51:33 2022 +0100"
      },
      "message": "virtio/rng: Zero-initialize the device\n\nUse calloc() to avoid uninitialized fields in the rng device.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nLink: https://lore.kernel.org/r/20220722141731.64039-5-jean-philippe@linaro.org\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "fe2182731b721ecaec97cb7f02b2c334469669ce",
      "tree": "97ae4819f697f3152c7b9c8726e321e953581fbf",
      "parents": [
        "ae22ac7a81e5f59b8f93db6127a8797500836f60"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Fri Jul 22 15:17:31 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Aug 04 15:51:33 2022 +0100"
      },
      "message": "virtio/pci: Deassert IRQ line on ISR read\n\nSince commit 2108c86d0623 (\"virtio/pci: Signal INTx interrupts as level\ninstead of edge\"), virtio uses level-triggered IRQs. Bring the modern\ndevice up to date, by deasserting the IRQ line when the guest reads the\ninterrupt status register.\n\nFixes: 3bf79498e6d5 (\"virtio: Add support for modern virtio-pci\")\nReported-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nLink: https://lore.kernel.org/r/20220722141731.64039-4-jean-philippe@linaro.org\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "ae22ac7a81e5f59b8f93db6127a8797500836f60",
      "tree": "0787702739fc06460486017db07d9cbdf69dcea5",
      "parents": [
        "3863f34bd76723358b4ec7d44a12a4b6b990ceb5"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Fri Jul 22 15:17:30 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Aug 04 15:51:33 2022 +0100"
      },
      "message": "Makefile: Fix ARCH override\n\nVariables set on the command-line are not overridden by normal\nassignments. So when passing ARCH\u003dx86_64 on the command-line, build\nfails:\n\nMakefile:227: *** This architecture (x86_64) is not supported in kvmtool.\n\nUse the \u0027override\u0027 directive to force the ARCH reassignment.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nTested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220722141731.64039-3-jean-philippe@linaro.org\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3863f34bd76723358b4ec7d44a12a4b6b990ceb5",
      "tree": "7b232b5a58ec58c3bb04740fabeba65f220ff0e3",
      "parents": [
        "6a1f699108e5c2a280d7cd1f1ae4816b8250a29f"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Fri Jul 22 15:17:29 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Aug 04 15:51:33 2022 +0100"
      },
      "message": "Makefile: Add missing build dependencies\n\nWhen running kvmtool after updating without doing a make clean, one\nmight run into strange issues such as:\n\n  Warning: Failed init: symbol_init\n  Fatal: Initialisation failed\n\nor worse. This happens because symbol.o is not automatically rebuilt\nafter a change of headers, because .symbol.o.d is not in the $(DEPS)\nvariable. So if the layout of struct kvm_config changes, for example,\nsymbols.o that was built for an older version will try to read\nkvm-\u003evmlinux from the wrong location in struct kvm, and lkvm will die.\n\nAdd all .d files to $(DEPS). Also include $(STATIC_DEPS) which was\npreviously set but not used.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220722141731.64039-2-jean-philippe@linaro.org\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "6a1f699108e5c2a280d7cd1f1ae4816b8250a29f",
      "tree": "cb819ea4eacbe9572b924054313ec51d6428ab75",
      "parents": [
        "c86ef0b86366ce7e1320a902b2aa738166187667"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Wed Jun 29 11:39:05 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:31:59 2022 +0100"
      },
      "message": "arm64: pvtime: Use correct region size\n\npvtime uses ARM_PVTIME_BASE instead of ARM_PVTIME_SIZE for the size of the\nmemory region given to the guest, which causes to the following error when\ncreating a flash device (via the -F/--flash command line argument):\n\n  Error: RAM (read-only) region [2000000-27fffff] would overlap RAM region [1020000-203ffff]\n\nThe read-only region represents the guest memory where the flash image is\ncopied by kvmtool. The region starting at 0x102_0000 (ARM_PVTIME_BASE) is\nthe pvtime region, which should be 64K in size. kvmtool erroneously creates\nthe region to be ARM_PVTIME_BASE in size instead, and the last address\nbecomes:\n\nARM_PVTIME_BASE + ARM_PVTIME_BASE - 1 \u003d 0x102_0000 + 0x102_0000 - 1 \u003d 0x203_ffff\n\nwhich corresponds to the end of the region from the error message.\n\nDo the right thing and make the pvtime memory region ARM_PVTIME_SIZE \u003d 64K\nbytes, as it was intended.\n\nFixes: 7d4671e5d372 (\"aarch64: Add stolen time support\")\nReported-by: Pierre Gondois \u003cpierre.gondois@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nReviewed-by: Sebastian Ene \u003csebastianene@google.com\u003e\nLink: https://lore.kernel.org/r/20220629103905.24480-1-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "c86ef0b86366ce7e1320a902b2aa738166187667",
      "tree": "e08ffa50d6acf9b1765889cc7a055ac3d8379178",
      "parents": [
        "3d5cefc2eb3e2dec92bad5bf46a87251027975a2"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:34 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/pci: Remove VIRTIO_PCI_F_SIGNAL_MSI\n\nVIRTIO_PCI_F_SIGNAL_MSI is not a virtio feature but an internal flag.\nChange it to bool to avoid confusion.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-13-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3d5cefc2eb3e2dec92bad5bf46a87251027975a2",
      "tree": "34736d0a58872ed986593590eab9cc471e189337",
      "parents": [
        "5fe5eb04de80b8bc68f4d57443596d0b935907ef"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:33 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/pci: Initialize all vectors to VIRTIO_MSI_NO_VECTOR\n\nAccording to the virtio spec, all vectors must be initialized to\nVIRTIO_MSI_NO_VECTOR (0xffff). In 4.1.5.1.2.1 \"Device Requirements:\nMSI-X Vector Configuration\":\n\n    The device MUST return vector mapped to a given event, (NO_VECTOR if\n    unmapped) on read of config_msix_vector/queue_msix_vector.\n\nCurrently we return 0, which is a valid MSI vector. Return NO_VECTOR\ninstead.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-12-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "5fe5eb04de80b8bc68f4d57443596d0b935907ef",
      "tree": "d1481326626b71b5d3557cd2e56ff66b69b74332",
      "parents": [
        "22a0823676f13ade6a8d561eaf45c6d4e3218059"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:32 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Add support for modern virtio-mmio\n\nAdd modern MMIO transport to virtio, make it the default. Legacy transport\ncan be enabled with --virtio-legacy. The main change for MMIO is the queue\naddresses. They are now 64-bit addresses instead of 32-bit PFNs. Apart\nfrom that all changes for supporting modern devices are already\nimplemented.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-11-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "22a0823676f13ade6a8d561eaf45c6d4e3218059",
      "tree": "24407fa387c19bcd7f5c3b17af7e4c720e8962ce",
      "parents": [
        "b0d56e3c994a0feb3ffb519cecda5c1f6da8b1ab"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:31 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Move MMIO transport to mmio-legacy\n\nTo make space for the modern register layout, move the current code to\nmmio-legacy.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-10-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "b0d56e3c994a0feb3ffb519cecda5c1f6da8b1ab",
      "tree": "df803cb0f7c77b65d69153b28ecb80b0da82fa22",
      "parents": [
        "930876d51193a33f335dc4416999be07b0b03463"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:30 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Add support for modern virtio-pci\n\nAdd support for modern virtio-pci implementation (based on the 1.0 virtio\nspec). We add a new transport, alongside MMIO and PCI-legacy. This is now\nthe default when selecting PCI, but users can still select the legacy\ntransport for all virtio devices by passing \"--virtio-legacy\" on the\ncommand-line.\n\nThe main change in modern PCI is the way we address virtqueues, using\n64-bit values instead of PFNs. To keep the queue configuration atomic the\ndevice also gets a \"queue enable\" register. Configuration is also made\nextensible by more feature bits and PCI capabilities. Scalability is\nimproved as well, as devices can have notification registers for each\nvirtqueue on separate pages. However this implementation keeps a single\nnotification register.\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-9-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "930876d51193a33f335dc4416999be07b0b03463",
      "tree": "795c4b86781540f8a0dc955677bdc7548fc99838",
      "parents": [
        "3c8f82b8d4a7d98a9e391e5ccd22198d775bcb49"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:29 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Move PCI transport to pci-legacy\n\nTo make space for the more recent virtio version, move the legacy bits of\nvirtio-pci to a different file.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-8-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3c8f82b8d4a7d98a9e391e5ccd22198d775bcb49",
      "tree": "c8a5f3de86ff86085d5eb37bf1688b694f09bb40",
      "parents": [
        "de166e5f7edc93de3189c6848c40b39a4ac11a93"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:28 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Prepare for more feature bits\n\nModern virtio uses more than 32 bits of features. Bump the feature\nbitfield size to 64 bits.\n\nvirtio_set_guest_features() changes in behavior because it will now be\ncalled multiple times, each time the guest writes to a 32-bit slice of\nthe features.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-7-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "de166e5f7edc93de3189c6848c40b39a4ac11a93",
      "tree": "5314f2d9936a541214c65be63eb434f5c27b07d2",
      "parents": [
        "73fd13686e2276f9ea3b2e47bdb92c2d73752daa"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:27 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/net: Set vhost backend after queue address\n\nWe currently call VHOST_SET_BACKEND from notify_vq_gsi(), which can\u0027t\nwork with modern virtio because vhost checks that the virtqueue is\naccessible when handling VHOST_SET_BACKEND, and the modern driver\ninitializes the MSIs before setting up the virtqueue. Move\nVHOST_SET_BACKEND to init_vq().\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-6-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "73fd13686e2276f9ea3b2e47bdb92c2d73752daa",
      "tree": "8ebae270665ba62953ec43ed3ac2257918d64487",
      "parents": [
        "21c9bc7440878fd341c26a32a068e045ff188e5c"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:26 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/pci: Use the correct eventfd for vhost notification\n\nLegacy virtio drivers write to the I/O port BAR, and the modern virtio\ndevice uses the MMIO BAR. Since vhost can only listen on one ioeventfd,\nselect the one that the guest will use.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-5-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "21c9bc7440878fd341c26a32a068e045ff188e5c",
      "tree": "65f2fb4351c7a3c9e9f0a62f1e84e55fc91d00c9",
      "parents": [
        "d0607293c937ec3f3fd1b69ef535a3a282754f9c"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:25 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/pci: Make doorbell offset dynamic\n\nThe doorbell offset depends on the transport - virtio-legacy uses a\nfixed offset, but modern virtio can have per-vq offsets. Add an offset\nfield to the virtio_pci structure.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-4-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "d0607293c937ec3f3fd1b69ef535a3a282754f9c",
      "tree": "2478b59dcccb79c4c235cb9176e18c04fdf0da3b",
      "parents": [
        "c6590f782be68e5321d3fbd90af2ebe3dbd92550"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:24 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio: Extract init_vq() for PCI and MMIO\n\nModern virtio will need to reuse this code when initializing a\nvirtqueue. It\u0027s not much, but still nicer to have next to exit_vq().\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-3-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "c6590f782be68e5321d3fbd90af2ebe3dbd92550",
      "tree": "6c0495d4f25fbbfe19b08e5c1d2b5fd3b368384b",
      "parents": [
        "8b91a1828ee9d7c137cd5c7974e67687d735d472"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Fri Jul 01 15:24:23 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:09:00 2022 +0100"
      },
      "message": "virtio/pci: Delete MSI routes\n\nOn exit_vq() and device reset, remove the MSI routes that were set up at\nruntime.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220701142434.75170-2-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "8b91a1828ee9d7c137cd5c7974e67687d735d472",
      "tree": "f4a0b6878d6b173695a37c0dec111eff7c18bbe4",
      "parents": [
        "3f7e48f621bb229aad995111a20251dc027bf953"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:28 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "arm64: Allow the user to specify the RAM base address\n\nAllow the user to specify the RAM base address by using -m/--mem size@addr\ncommand line argument. The base address must be above 2GB, as to not\noverlap with the MMIO I/O region.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-13-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3f7e48f621bb229aad995111a20251dc027bf953",
      "tree": "c7cca211ff2191242ad22623556b616a8b45bd63",
      "parents": [
        "a37dad0ea9c76af03bf7bd135d5dc69563b6628b"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:27 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "Introduce kvm__arch_default_ram_address()\n\nAdd a new function, kvm__arch_default_ram_address(), which returns the\ndefault address for guest RAM for each architecture.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-12-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "a37dad0ea9c76af03bf7bd135d5dc69563b6628b",
      "tree": "b46979e9cc0e555b466b105ce50f7be34122709e",
      "parents": [
        "5e9c654e60e85090ff365e875b2a7269d9301859"
      ],
      "author": {
        "name": "Julien Grall",
        "email": "julien.grall@arm.com",
        "time": "Thu Jun 16 14:48:26 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "arm/arm64: Consolidate RAM initialization in kvm__init_ram()\n\nRAM initialization is unnecessarily split between kvm__init_ram() and\nkvm__arch_init(). Move all code related to RAM initialization to\nkvm__init_ram(), making the code easier to follow and to modify.\n\nOne thing to note is that the initialization order is slightly altered:\nkvm__arch_enable_mte() and gic__create() are now called before mmap\u0027ing the\nguest RAM. That is perfectly fine, as they don\u0027t use the host\u0027s mapping of\nthe guest memory.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Julien Grall \u003cjulien.grall@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-11-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "5e9c654e60e85090ff365e875b2a7269d9301859",
      "tree": "89fa17d48f0168dcaf46d4c6aa01a012c0c6549f",
      "parents": [
        "a9c24ec78b4fb23596fa4cb0894e2c58e9345f8b"
      ],
      "author": {
        "name": "Julien Grall",
        "email": "julien.grall@arm.com",
        "time": "Thu Jun 16 14:48:25 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "kvm__arch_init: Remove hugetlbfs_path and ram_size as parameters\n\nThe kvm struct already contains a pointer to the configuration, which\ncontains both hugetlbfs_path and ram_size, so is it not necessary to pass\nthem as arguments to kvm__arch_init().\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Julien Grall \u003cjulien.grall@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-10-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "a9c24ec78b4fb23596fa4cb0894e2c58e9345f8b",
      "tree": "4d65c0596c021ad015309da1eaabe9a9791eb2e8",
      "parents": [
        "d6d4220133b7624e372daa45f9761d8f15050a80"
      ],
      "author": {
        "name": "Suzuki K Poulose",
        "email": "suzuki.poulose@arm.com",
        "time": "Thu Jun 16 14:48:24 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "builtin_run: Allow standard size specifiers for memory\n\nAllow the user to use the standard B (bytes), K (kilobytes), M (megabytes),\nG (gigabytes), T (terabytes) and P (petabytes) suffixes for memory size.\nWhen none are specified, the default is megabytes.\n\nAlso raise an error if the guest specifies 0 as the memory size, instead\nof treating it as uninitialized, as kvmtool has done so far.\n\nSigned-off-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-9-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "d6d4220133b7624e372daa45f9761d8f15050a80",
      "tree": "e0551065fe326287fe80b40b5f18b5bc65fbcfd1",
      "parents": [
        "1af57dcdce5145bc951826a164504bd28efa7453"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:23 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "arm/arm64: Kill the ARM_HIMAP_MAX_MEMORY() macro\n\nThe ARM_HIMAP_MAX_MEMORY() is a remnant of a time when KVM only supported\n40 bits if IPA. There are no users left for this macro, remove it.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-8-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "1af57dcdce5145bc951826a164504bd28efa7453",
      "tree": "85db51e62d0df975687e530636c778a83b57f2ef",
      "parents": [
        "cce5a4f6ae9b1db634245521e7967cc605e0bedc"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:22 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "arm/arm64: Kill the ARM_MAX_MEMORY() macro\n\nFor 32-bit guests, the maximum memory size is represented by the define\nARM_LOMAP_MAX_MEMORY, which ARM_MAX_MEMORY() returns.\n\nFor 64-bit guests, the RAM size is checked against the maximum allowed\nby KVM in kvm__get_vm_type().\n\nThere are no users left for the ARM_MAX_MEMORY() macro, remove it.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-7-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "cce5a4f6ae9b1db634245521e7967cc605e0bedc",
      "tree": "9b3940c81295537378f4786cc641d1c81b16ea9c",
      "parents": [
        "abe3f28a9c0700837aca75887f0cd65c6371e2e4"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:21 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "arm/arm64: Fail if RAM size is too large for 32-bit guests\n\nFor 64-bit guests, kvmtool exists with an error in kvm__get_vm_type() if\nthe memory size is larger than what KVM supports. For 32-bit guests, the\nRAM size is silently rounded down to ARM_LOMAP_MAX_MEMORY in\nkvm__arch_init().\n\nBe consistent and exit with an error when the user has configured the\nwrong RAM size for 32-bit guests.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-6-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "abe3f28a9c0700837aca75887f0cd65c6371e2e4",
      "tree": "606513ebdeecc3f6f13f739a7403a1cf5d34b205",
      "parents": [
        "28b96259fbdf602178d209fe93a0eddd3eec07d8"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:20 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "builtin-run: Add arch hook to validate VM configuration\n\nArchitectures are free to set their own command line options. Add an\narchitecture specific hook to validate these options.\n\nFor now, the hook does nothing, but it will be used in later patches.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-5-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "28b96259fbdf602178d209fe93a0eddd3eec07d8",
      "tree": "1cb4e7d0ab9f92a21e9c176ac4c597c500a96900",
      "parents": [
        "9d655190e466fd6a0b042ba8107ec06570c2e6d5"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:19 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "builtin-run: Rework RAM size validation\n\nhost_ram_size() uses sysconf() to calculate the available ram, and\nsysconf() can fail. When that happens, host_ram_size() returns 0. kvmtool\nwarns the user when the configured VM ram size exceeds the size of the\nhost\u0027s memory, but doesn\u0027t take into account that host_ram_size() can\nreturn 0. If the function returns zero, skip the warning.\n\nSince this can only happen when the user sets the memory size (via the\n-m/--mem command line argument), skip the check entirely if the user hasn\u0027t\nset it. Move the check to kvm_run_validate_cfg(), as it checks for valid\nuser configuration.\n\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-4-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "9d655190e466fd6a0b042ba8107ec06570c2e6d5",
      "tree": "cb58e14cb5a6f1567e5e56988f6786f9718db595",
      "parents": [
        "024c331b8483664853d9346d7884bf382c6745ca"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:18 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "builtin-run: Always use RAM size in bytes\n\nThe user can specify the virtual machine memory size in MB, which is saved\nin cfg-\u003eram_size. kvmtool validates it against the host memory size,\nconverted from bytes to MB. ram_size is then converted to bytes, and this\nis how it is used throughout the rest of kvmtool.\n\nTo avoid any confusion about the unit of measurement, especially once the\nuser is allowed to specify the unit of measurement, always use ram_size in\nbytes.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-3-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "024c331b8483664853d9346d7884bf382c6745ca",
      "tree": "b382ca65867c00e1b0e6db8e1dd4e98adb35c970",
      "parents": [
        "d9fdaad02dfdb0ea079245218058d60270264660"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Thu Jun 16 14:48:17 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:08:06 2022 +0100"
      },
      "message": "Use MB for megabytes consistently\n\nThe help text for the -m/--mem argument states that the guest memory size\nis in MiB (mebibyte). MiB is the same thing as MB (megabyte), and indeed\nthis is how MB is used throughout kvmtool.\n\nReplace MiB with MB, so people don\u0027t get the wrong idea and start\nbelieving that for kvmtool a MB is 10^6 bytes instead of 2^20.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-and-Tested-by: Suzuki K Poulose \u003csuzuki.poulose@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616134828.129006-2-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "d9fdaad02dfdb0ea079245218058d60270264660",
      "tree": "afa45d36d1609d5fa8dc88fce3eed1847ce5ff53",
      "parents": [
        "f44af23e3a62e46158341807b0d2d132249b96a8"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@arm.com",
        "time": "Thu Jun 16 15:55:26 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri Jul 01 16:06:48 2022 +0100"
      },
      "message": "arm: gic: fdt: fix PPI CPU mask calculation\n\nThe GICv2 DT binding describes the third cell in each interrupt\ndescriptor as holding the trigger type, but also the CPU mask that this\nIRQ applies to, in bits [15:8]. However this is not the case for GICv3,\nwhere we don\u0027t use a CPU mask in the third cell: a simple mask wouldn\u0027t\nfit for the many more supported cores anyway.\n\nAt the moment we fill this CPU mask field regardless of the GIC type,\nfor the PMU and arch timer DT nodes. This is not only the wrong thing to\ndo in case of a GICv3, but also triggers UBSAN splats when using more\nthan 30 cores, as we do shifting beyond what a u32 can hold:\n$ lkvm run -k Image -c 31 --pmu\narm/timer.c:13:22: runtime error: left shift of 1 by 31 places cannot be represented in type \u0027int\u0027\narm/timer.c:13:38: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type \u0027int\u0027\narm/timer.c:13:43: runtime error: left shift of 2147483647 by 8 places cannot be represented in type \u0027int\u0027\narm/aarch64/pmu.c:202:22: runtime error: left shift of 1 by 31 places cannot be represented in type \u0027int\u0027\narm/aarch64/pmu.c:202:38: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type \u0027int\u0027\narm/aarch64/pmu.c:202:43: runtime error: left shift of 2147483647 by 8 places cannot be represented in type \u0027int\u0027\n\nFix that by adding a function that creates the mask by looking at the\nGIC type first, and returning zero when a GICv3 is used. Also we\nexplicitly check for the CPU limit again, even though this would be\ndone before already, when we try to create a GICv2 VM with more than 8\ncores.\n\nAcked-by: Marc Zyngier \u003cmaz@kernel.org\u003e\nSigned-off-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nLink: https://lore.kernel.org/r/20220616145526.3337196-1-andre.przywara@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "f44af23e3a62e46158341807b0d2d132249b96a8",
      "tree": "cf3193c15d05eff8d9040db3081146b61c52145b",
      "parents": [
        "484278913807e4e3523eff1b9933c7e86a27b6d2"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:31 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:15 2022 +0100"
      },
      "message": "virtio/pci: Factor MSI route creation\n\nThe code for creating an MSI route is already duplicated between config\nand virtqueue MSI. Modern virtio will need it as well, so move it to a\nseparate function.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-17-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "484278913807e4e3523eff1b9933c7e86a27b6d2",
      "tree": "e15bbb61baea221b655b13c2bc24b02772f3a13a",
      "parents": [
        "e74b56e1495cce0c6a09d340c210f74266e755f8"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:30 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:15 2022 +0100"
      },
      "message": "virtio/blk: Implement VIRTIO_F_ANY_LAYOUT feature\n\nThe current virtio-block implementation assumes that buffers have a\nspecific layout (5.2.6.4 \"Legacy Interface: Framing Requirements\").\nModern virtio removes this layout constraint, so we have to be careful\nwhen reading buffers. Note that since the Linux driver uses the same\nlayout as the legacy transport, arbitrary layouts were not actually\ntested.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-16-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "e74b56e1495cce0c6a09d340c210f74266e755f8",
      "tree": "30fc372b4caf5f0d20152faccc79682aa70394ef",
      "parents": [
        "6daffe57762cb5863eef0441a2d40cc57cdde37b"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:29 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:15 2022 +0100"
      },
      "message": "virtio/console: Add VIRTIO_F_ANY_LAYOUT feature\n\nOur virtio-console implementation already supports ANY_LAYOUT, because\nbuffers are accessed with scatter-gather operations. Advertise the\nVIRTIO_F_ANY_LAYOUT feature.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-15-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "6daffe57762cb5863eef0441a2d40cc57cdde37b",
      "tree": "453faa67969b6f4a88a4d22ac527ab61d8c3f950",
      "parents": [
        "b231683c336132441496060a81726305ca56b11b"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:28 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:15 2022 +0100"
      },
      "message": "virtio/net: Implement VIRTIO_F_ANY_LAYOUT feature\n\nModern virtio demands that devices do not make assumptions about the\nbuffer layouts. Currently the user network backend assumes that TX\npackets are neatly split between virtio-net header and ethernet frame.\nModern virtio-net usually puts everything into one descriptor, but could\nalso split the buffer arbitrarily. Handle arbitrary buffer layouts and\nadvertise the VIRTIO_F_ANY_LAYOUT feature.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-14-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "b231683c336132441496060a81726305ca56b11b",
      "tree": "f4c24f35ae15371eb0c777d1abce268e8a82d976",
      "parents": [
        "8b27bcff44fd4adaa1466e3198e4222816eefa06"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:27 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:15 2022 +0100"
      },
      "message": "virtio/net: Prepare for modern virtio\n\nThe virtio_net header contains a \u0027num_buffers\u0027 field, used when the\nVIRTIO_NET_F_MRG_RXBUF feature is negotiated. The legacy driver does not\npresent this field when the feature is not negotiated. In that case the\nheader is 2 bytes smaller.\n\nWhen using the modern virtio transport, the header always contains the\nfield and in addition the device MUST set it to 1 when the\nVIRTIO_NET_F_MRG_RXBUF is not negotiated. Prepare for modern virtio\nsupport by enabling this case once the \u0027legacy\u0027 flag is switched off.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-13-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "8b27bcff44fd4adaa1466e3198e4222816eefa06",
      "tree": "aba5b136538b564210687a3a11591ff7fa60521c",
      "parents": [
        "c492534f3ac930107a628c0fadd4c152e8972b35"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:26 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio/net: Offload vnet header endianness conversion to tap\n\nThe conversion of vnet header fields will be more difficult when\nsupporting the virtio ANY_LAYOUT feature. Since the uip backend doesn\u0027t\nuse the vnet header, and since tap can handle that conversion itself,\noffload it to tap.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-12-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "c492534f3ac930107a628c0fadd4c152e8972b35",
      "tree": "78c60a513d61b4727ae22ea6172efb5b64226596",
      "parents": [
        "902a8ecb3877d383cc601571611690050fed9e48"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:25 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "Add memcpy_fromiovec_safe\n\nExisting IOV functions don\u0027t take the iovec size as parameter. This is\nunfortunate because when parsing buffers split into header and body,\ncallers may want to know where the body starts in the iovec, after copying\nthe header. Add a function that does the same as memcpy_fromiovec, but\nalso allows to iterate over the iovec.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-11-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "902a8ecb3877d383cc601571611690050fed9e48",
      "tree": "ba247321240784dde1885c4521816dad523a5599",
      "parents": [
        "17ad9fd6ce3738df375f2480a91074f9ebf47380"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:24 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Remove set_guest_features() device op\n\nNow that devices have a status callback, they don\u0027t use\nset_guest_features() anymore. The negotiated feature set is available in\nstruct virtio_device. Remove the callback from all devices.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-10-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "17ad9fd6ce3738df375f2480a91074f9ebf47380",
      "tree": "02863356f2a9aac9aed849d55372cf0483309dbb",
      "parents": [
        "867b15ccd7dae9ba7a174f97d4fe76e90a79d957"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:23 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio/console: Remove unused callback\n\nRemove unused set_status() callback\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-9-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "867b15ccd7dae9ba7a174f97d4fe76e90a79d957",
      "tree": "76e46c334887ef8796bb53ed7a60c13eb27e2ba5",
      "parents": [
        "15e6c4e74d06f574a91c4de5eed5ec2882f0e366"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:22 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Fix device-specific config endianness\n\nSome legacy virtio drivers expect to read the device-specific config in\nguest endianness (2.5.3 \"Legacy Interface: A Note on Device\nConfiguration Space endian-ness\").\n\nKvmtool doesn\u0027t know the guest endianness until it can probe a VCPU. So\nthe config fields start in host endianness, and are swapped once the\nguest is running. Currently this is done in set_guest_features(), but\nthat is too late because the driver is allowed to read config fields\nbefore setting feature bits (2.5.2 \"Device Requirements: Device\nConfiguration Space\"). In addition some devices don\u0027t swap the fields,\nand those that do swap the fields do it every time the guest writes the\nfeature register, which can\u0027t work if a device gets reset more than\nonce.\n\nInitialize the config on device reset. Do it on every reset because in\ntheory multiple guests could run with different endianness during the\nlifetime of the device.\n\nNotes:\n\n* the balloon device uses little-endian (5.5.4.0.0.1 \"Legacy Interface:\n  Device configuration layout\").\n\n* the vsock device was introduced after virtio 0.9.5, hence doesn\u0027t\n  describe a legacy interface, but the Linux driver allows to use the\n  legacy transport, and always reads the 64-bit guest_cid field as\n  little-endian.\n\n* the specification does not describe the 9p device, but the Linux\n  driver uses guest-endian helpers.\n\n* the specification does not explicitly forbid a driver from reading the\n  configuration at any time, but a driver must follow the sequence from\n  3.1.1 \"Driver Requirements: Device Initialization\", where the driver\n  is allowed to read the config after setting the DRIVER status bit. It\n  should therefore be safe to keep dealing with guest endianness only on\n  device reset, and not on the first config access.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-8-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "15e6c4e74d06f574a91c4de5eed5ec2882f0e366",
      "tree": "bf05d8261b0cf24ff0aeedb94965283e7e61ed81",
      "parents": [
        "609ee9066879f2ff7138c825588a4bc5d2f83658"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:21 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Add config access helpers\n\nAt the moment device-specific config access is tailored for a Linux\nguest, that performs any access in 8 bits. But config access can have\nany size, and modern virtio drivers must use the size of the accessed\nfield. Add helpers that generalize config accesses.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-7-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "609ee9066879f2ff7138c825588a4bc5d2f83658",
      "tree": "4fbc1a8ffb7a39498621253e8cdff341d299aa5e",
      "parents": [
        "fd41cde0661755344bdfd99f2a361abd5666d7e8"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:20 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Support modern virtqueue addresses\n\nModern virtio devices can use separate buffer for descriptors, available\nand used rings. They can also use 64-bit addresses instead of 44-bit.\nRework the virtqueue initialization function to support modern virtio.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-6-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "fd41cde0661755344bdfd99f2a361abd5666d7e8",
      "tree": "ea6d2bfb2118cd63b7e69ad570deb9dbfe88c88d",
      "parents": [
        "a8e397bb9dd9ab651eaa43cb3b5293928f172d12"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:19 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Factor virtqueue initialization\n\nAll virtio devices perform the same set of operations when initializing\ntheir virtqueues. Move it to virtio core.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-5-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "a8e397bb9dd9ab651eaa43cb3b5293928f172d12",
      "tree": "e998c2cbd1948bd55f86dd36d0f0436aa23d4fa4",
      "parents": [
        "3a1e36e4bf499c5c98425f8a3f6c3df580404983"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:18 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio/vsock: Remove redundant state tracking\n\nThe core already tells us whether a device is being started or stopped.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-4-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3a1e36e4bf499c5c98425f8a3f6c3df580404983",
      "tree": "a9ab0e04bfd7448761ce58cd0d5a2bf69260381d",
      "parents": [
        "7efc2622d5eee02f2423c81109b49644f2181d71"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:17 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Remove redundant test\n\nDon\u0027t test for VIRTIO__STATUS_STOP right after setting it.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-3-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "7efc2622d5eee02f2423c81109b49644f2181d71",
      "tree": "1b766362776fca5e7e4f08f264f2ff8eae0e10d6",
      "parents": [
        "b4531b2c4d3f216bbc5d2fa70510f71826e6ec5d"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe.brucker@arm.com",
        "time": "Tue Jun 07 18:02:16 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu Jun 09 13:44:14 2022 +0100"
      },
      "message": "virtio: Add NEEDS_RESET to the status mask\n\nNot all toolchains used to know about VIRTIO_CONFIG_S_NEEDS_RESET, so we\nleft it out of the status mask. Now that we include our own version of\nvirtio_config.h and we\u0027ll need it for virtio 1.0, add it back.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe.brucker@arm.com\u003e\nLink: https://lore.kernel.org/r/20220607170239.120084-2-jean-philippe.brucker@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "b4531b2c4d3f216bbc5d2fa70510f71826e6ec5d",
      "tree": "300816267eb8de6f257561691ab96ab60dc5374c",
      "parents": [
        "6f6f384cef27372b746158951c5ba011ca914acd"
      ],
      "author": {
        "name": "Dao Lu",
        "email": "daolu@rivosinc.com",
        "time": "Tue May 24 11:00:30 2022 -0700"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:06:20 2022 +0100"
      },
      "message": "riscv: Add missing asm/kernel.h header\n\nFixes the following compilation issue:\n\ninclude/linux/kernel.h:5:10: fatal error: asm/kernel.h: No such file\nor directory\n    5 | #include \"asm/kernel.h\"\n\nTested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Dao Lu \u003cdaolu@rivosinc.com\u003e\nReviewed-by: Anup Patel \u003canup@brainfault.org\u003e\nFixes: 0febaae00bb6 (\"Add cpumask functions\")\nLink: https://lore.kernel.org/r/20220524180030.1848992-1-daolu@rivosinc.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "6f6f384cef27372b746158951c5ba011ca914acd",
      "tree": "e4abefa3c41363ec26fb165c1611845520414868",
      "parents": [
        "8ec1e8bf3bc2e99518d857a5164218d513d585ea"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Wed May 25 17:57:04 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:04:43 2022 +0100"
      },
      "message": "mips: Do not emulate a serial device\n\nCommit 45b4968e0de1 (\"hw/serial: ARM/arm64: Use MMIO at higher addresses\")\nchanged how the address for the UART is computed by using KVM_IOPORT_AREA.\nThe symbol is not defined for MIPS, which results in the following\ncompilation error:\n\nhw/serial.c:21:27: error: ‘KVM_IOPORT_AREA’ undeclared here (not in a function); did you mean ‘KVM_MIPS_IOPORT_AREA’?\n   21 | #define serial_iobase_0  (KVM_IOPORT_AREA + 0x3f8)\n      |                           ^~~~~~~~~~~~~~~\nhw/serial.c:29:27: note: in expansion of macro ‘serial_iobase_0’\n   29 | #define serial_iobase(nr) serial_iobase_##nr\n      |                           ^~~~~~~~~~~~~~\nhw/serial.c:92:15: note: in expansion of macro ‘serial_iobase’\n   92 |   .iobase   \u003d serial_iobase(0),\n      |               ^~~~~~~~~~~~~\n\nBefore the commit, the serial was placed at addresses 0x3f8, 0x2f8,\n0x3e8 and 0x2e8. However, MIPS puts the RAM at those addresses, up to\nKVM_MMIO_START, which is 0x10000000. Meaning that serial device\nemulation never worked, as those addresses were part of a valid memslot\nrepresenting memory. This has been the case since commit 7281a8db199b\n(\"kvm tools, mips: Add MIPS support\") from 2014.\n\nA quick examination of the MIPS code reveals that the architecture relies\non hypercalls from the guest and the virtio console for input and output.\nSince nobody complained about the missing serial device, assume that it is\nindeed not needed and do not compile it for MIPS.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220525165704.186754-3-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "8ec1e8bf3bc2e99518d857a5164218d513d585ea",
      "tree": "10ef8923441517aff5ccd62de2c14bcd46d8c2f2",
      "parents": [
        "1a992bbaab08994e12a7594b0c39535152093a6b"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Wed May 25 17:57:03 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:04:43 2022 +0100"
      },
      "message": "arm64: Honor --vcpu-affinity for aarch32 guests\n\nCommit 4639b72f61a3 (\"arm64: Add --vcpu-affinity command line argument\")\nintroduced the --vcpu-affinity command line argument to pin the VCPUs to a\ngiven list of physical CPUs. Unfortunately, the affinity is set only for an\narm64 guest, leading to the following error when running a 32-bit guest on\na system with two or more PMUs:\n\nKVM exit reason: 9 (\"KVM_EXIT_FAIL_ENTRY\")\n\n Registers:\n PC:    0x8000c608\n PSTATE:    0x200000d3\n SP_EL1:    0x0\n LR:    0x0\n\n*pc:\n 0x8000c608: 25 3f a0 e1  83 61 a0 e1\n 0x8000c610: 83 31 98 e7  04 10 82 e1\n 0x8000c618: 07 2c 81 e3  28 10 1b e5\n 0x8000c620: 03 20 82 e3  03 00 a0 e1\n\n*lr:\n  Warning: unable to translate guest address 0x0 to host\n 0x00000000: \u003cunknown\u003e\n 0x00000008: \u003cunknown\u003e\n 0x00000010: \u003cunknown\u003e\n 0x00000018: \u003cunknown\u003e\n\n  # KVM compatibility warning.\n\tvirtio-net device was not detected.\n\tWhile you have requested a virtio-net device, the guest kernel did not initialize it.\n\tPlease make sure that the guest kernel was compiled with CONFIG_VIRTIO_NET\u003dy enabled in .config.\n\n  # KVM session ended normally.\n\nMake the error go away by setting the affinity of the VCPUs for both 32-bit\nand 64-bit guests.\n\nFixes: 4639b72f61a3 (\"arm64: Add --vcpu-affinity command line argument\")\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220525165704.186754-2-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "1a992bbaab08994e12a7594b0c39535152093a6b",
      "tree": "8600d232e9839c38716e3f1d38b623cc5bd75d6e",
      "parents": [
        "e5390783db61ed6df9566070327e40043afd0859"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@arm.com",
        "time": "Tue May 24 16:06:11 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:02:43 2022 +0100"
      },
      "message": "include: add new virtio uapi header files\n\nCommit a08bb43a0c37 (\"kvmtool: Copy Linux\u0027 up-to-date virtio headers\")\ncopied in some of the virtio UAPI headers from the kernel tree, but\ndidn\u0027t include all of them, as we were relying on some of them being\nprovided by the distribution.\n\nNow commit bc77bf49df6e (\"stat: Add descriptions for new virtio_balloon\nstat types\") used some newer virtio balloon symbols, that some older\ndistros (e.g. Ubuntu 18.04) do not carry, which breaks compilation\nthere:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  CC       builtin-stat.o\nbuiltin-stat.c: In function \u0027do_memstat\u0027:\nbuiltin-stat.c:86:8: error: \u0027VIRTIO_BALLOON_S_HTLB_PGALLOC\u0027 undeclared (first use in this function); did you mean \u0027VIRTIO_BALLOON_S_AVAIL\u0027?\n   case VIRTIO_BALLOON_S_HTLB_PGALLOC:\n        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n        VIRTIO_BALLOON_S_AVAIL\nbuiltin-stat.c:86:8: note: each undeclared identifier is reported only once for each function it appears in\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTo fix this include the remaining virtio headers (those that we actually\nneed for kvmtool at the moment), from Linux v5.18.0.\n\nFixes: bc77bf49df6e (\"stat: Add descriptions for new virtio_balloon stat types\")\nSigned-off-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nLink: https://lore.kernel.org/r/20220524150611.523910-5-andre.przywara@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "e5390783db61ed6df9566070327e40043afd0859",
      "tree": "084e278a3824161fa3baff4c4ae35e00d3ec861b",
      "parents": [
        "393e2187cf68a14e107f9fa75b1da4f5632b379b"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@arm.com",
        "time": "Tue May 24 16:06:10 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:02:43 2022 +0100"
      },
      "message": "include: update virtio UAPI headers\n\nCommit a08bb43a0c37 (\"kvmtool: Copy Linux\u0027 up-to-date virtio headers\")\ncopied the kernel\u0027s virtio UAPI headers into the kvmtool tree, because\nat the time some distros didn\u0027t include (all of) them in their kernel\nheaders package.\nLet\u0027s update those copies, so that we can use newer features, if needed.\n\nThis syncs in the already existing copies of the headers from Linux\nv5.18.0.\n\nSigned-off-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nLink: https://lore.kernel.org/r/20220524150611.523910-4-andre.przywara@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "393e2187cf68a14e107f9fa75b1da4f5632b379b",
      "tree": "17e972b0bd46fa6b300842bbc18093590184cb8f",
      "parents": [
        "7e2209945bb59e62c116cca6c371e9c3a4b99460"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@arm.com",
        "time": "Tue May 24 16:06:09 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:02:43 2022 +0100"
      },
      "message": "util: include virtio UAPI headers in sync\n\nWe already have an update_headers.sh sync script, where we occasionally\nupdate the KVM interface UAPI kernel headers into our tree.\nSo far this covered only the generic kvm.h, plus each architecture\u0027s\nversion of that file.\nCommit  bc77bf49df6e (\"stat: Add descriptions for new virtio_balloon\nstat types\") used newer virtio symbols, which some older distros do not\ninclude in their kernel headers package. To help fixing this and to\navoid similar problems in the future, add the virtio headers to our sync\nscript, so that we can get the same, up-to-date versions of the headers\neasily.\n\nSigned-off-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nLink: https://lore.kernel.org/r/20220524150611.523910-3-andre.przywara@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "7e2209945bb59e62c116cca6c371e9c3a4b99460",
      "tree": "8ac87b2b55c34ba072445360e4c39af3f7dc377b",
      "parents": [
        "a68a52cd8ab76483b3592ddc0f7dbf40b4bd55ba"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@arm.com",
        "time": "Tue May 24 16:06:08 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Thu May 26 10:02:43 2022 +0100"
      },
      "message": "update virtio_mmio.h\n\nAt the time we pulled in virtio_mmio.h from the kernel tree (commit\na08bb43a0c37c \"kvmtool: Copy Linux\u0027 up-to-date virtio headers\"), this was\nnot an official UAPI header file, so wasn\u0027t stable and was not shipped\nwith distributions.\nThis has changed with Linux commit 51be7a9a261c (\"virtio_mmio: expose\nheader to userspace\"), so we can now use that file officially.\nHowever before that the name of some symbols have changed, so we have to\nadjust their usage in our source.\n\nThis pulls in virtio_mmio.h from Linux v5.18.0.\n\nSigned-off-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nLink: https://lore.kernel.org/r/20220524150611.523910-2-andre.przywara@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "a68a52cd8ab76483b3592ddc0f7dbf40b4bd55ba",
      "tree": "f9a712aa969ca0c40b33809b6af80e69883da50e",
      "parents": [
        "31e0eacca520f60ac02dfaaaeaeddfcc132095c0"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:40 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:36:32 2022 +0100"
      },
      "message": "kvmtool: Have stack be not executable on x86\n\nThis patch fixes an issue of having the stack be executable\nfor x86 builds by ensuring that the two objects bios-rom.o\nand entry.o have the section .note.GNU-stack.\n\nSuggested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-7-martin.b.radev@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "31e0eacca520f60ac02dfaaaeaeddfcc132095c0",
      "tree": "54e1cf049707d70f623c8c7d235c114740d25e1d",
      "parents": [
        "e47302846cc538386c6cb62e41da485876f8bed0"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:39 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:36:32 2022 +0100"
      },
      "message": "virtio: Check for overflows in QUEUE_NOTIFY and QUEUE_SEL\n\nThis patch checks for overflows in QUEUE_NOTIFY and QUEUE_SEL in\nthe PCI and MMIO operation handling paths. Further, the return\nvalue type of get_vq_count is changed from int to uint since negative\ndoesn\u0027t carry any semantic meaning.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-6-martin.b.radev@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "e47302846cc538386c6cb62e41da485876f8bed0",
      "tree": "7c57829579c81f921f8ccff24a3807caeff5b588",
      "parents": [
        "3510a7f7b45fbb9205cfb721c756b385d66e2d9d"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:38 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:36:26 2022 +0100"
      },
      "message": "virtio: Sanitize config accesses\n\nThe handling of VIRTIO_PCI_O_CONFIG is prone to buffer access overflows.\nThis patch sanitizes this operation by using the newly added virtio op\nget_config_size. Any access which goes beyond the config structure\u0027s\nsize is prevented and a failure is returned.\n\nAdditionally, PCI accesses which span more than a single byte are prevented\nand a warning is printed because the implementation does not currently\nsupport the behavior correctly.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-5-martin.b.radev@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3510a7f7b45fbb9205cfb721c756b385d66e2d9d",
      "tree": "b45bfdf5739b96cb2e9d91448d1c1e45439c40cb",
      "parents": [
        "06e1e6fe2e11a9b0d273e2d4e5b4f31e2f37a923"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Fri May 20 21:35:43 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:35:43 2022 +0100"
      },
      "message": "virtio/9p: Fix virtio_9p_config allocation size\n\nPer the Linux user API, the struct virtio_9p_config \"tag\" field contains\nthe non-NULL terminated tag name and this is how the tag name is\ncopied by kvmtool in virtio_9p__register(). However, the memory allocation\nfor the struct is off by one, as it allocates memory for the tag name and\nthe NULL byte. Fix it by reducing the allocation by exactly one byte.\n\nThis is also matches how the struct is allocated by QEMU tagged v7.0.0 in\nvirtio_9p_get_config().\n\nSuggested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/YnzhdgUwrLlqmzch@monolith.localdoman\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "06e1e6fe2e11a9b0d273e2d4e5b4f31e2f37a923",
      "tree": "6df487b0dbfb56bd96a5453bc406e200af090a6c",
      "parents": [
        "52d4ee7cb52071f6ca5cdd0c9e504c4f0fefcc35"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:37 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:30:21 2022 +0100"
      },
      "message": "virtio: Use u32 instead of int in pci_data_in/out\n\nThe PCI access size type is changed from a signed type\nto an unsigned type since the size is never expected to\nbe negative, and the type also matches the type in the\nsignature of virtio_pci__io_mmio_callback.\nThis change simplifies size checking in the next patch.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-4-martin.b.radev@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "52d4ee7cb52071f6ca5cdd0c9e504c4f0fefcc35",
      "tree": "31c6b7788bf4dabf81821ad3eafe55ee1672218b",
      "parents": [
        "143ffa2221d38b9405ce89552363b76cf3f6915c"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:36 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:30:11 2022 +0100"
      },
      "message": "mmio: Sanitize addr and len\n\nThis patch verifies that adding the addr and length arguments\nfrom an MMIO op do not overflow. This is necessary because the\narguments are controlled by the VM. The length may be set to\nan arbitrary value by using the rep prefix.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-3-martin.b.radev@gmail.com\n[will: Drop redundant o/f check in virtio_mmio_device_specific() per Alex]\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "143ffa2221d38b9405ce89552363b76cf3f6915c",
      "tree": "1385390a095c762acb99e528a3edc004cfe52154",
      "parents": [
        "bc77bf49df6e1e4ff095558cceb718293dd5b763"
      ],
      "author": {
        "name": "Martin Radev",
        "email": "martin.b.radev@gmail.com",
        "time": "Mon May 09 23:39:35 2022 +0300"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:21:09 2022 +0100"
      },
      "message": "kvmtool: Add WARN_ONCE macro\n\nAdd a macro to enable to print a warning only once. This is\nbeneficial for cases where a warning could be helpful for\ndebugging, but still log pollution is preferred not to happen.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Martin Radev \u003cmartin.b.radev@gmail.com\u003e\nLink: https://lore.kernel.org/r/20220509203940.754644-2-martin.b.radev@gmail.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "bc77bf49df6e1e4ff095558cceb718293dd5b763",
      "tree": "d6aa91e808ad4e55f082d9d74a93c68730a531c4",
      "parents": [
        "3a13530ae99acead2174b4bc3ba76a768802fd98"
      ],
      "author": {
        "name": "Keir Fraser",
        "email": "keirf@google.com",
        "time": "Fri May 20 14:37:06 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:19:56 2022 +0100"
      },
      "message": "stat: Add descriptions for new virtio_balloon stat types\n\nUnknown types would print the value with no descriptive text at all.\nAdd descriptions for all known stat types, and a default description\nwhen the type is unknown.\n\nSigned-off-by: Keir Fraser \u003ckeirf@google.com\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nLink: https://lore.kernel.org/r/20220520143706.550169-3-keirf@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "3a13530ae99acead2174b4bc3ba76a768802fd98",
      "tree": "b4b21a43a0a5f619fa054a24f5d8cb3cd2a9daca",
      "parents": [
        "324cc0969b7caefb98ceb411b5ffe2e8bd6f5198"
      ],
      "author": {
        "name": "Keir Fraser",
        "email": "keirf@google.com",
        "time": "Fri May 20 14:37:05 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:19:56 2022 +0100"
      },
      "message": "virtio/balloon: Fix a crash when collecting stats\n\nThe collect_stats hook dereferences the stats virtio queue without\nchecking that it has been initialised.\n\nSigned-off-by: Keir Fraser \u003ckeirf@google.com\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nLink: https://lore.kernel.org/r/20220520143706.550169-2-keirf@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "324cc0969b7caefb98ceb411b5ffe2e8bd6f5198",
      "tree": "5596a06a6b426a6bc096c055b6e0369c62eba34f",
      "parents": [
        "4639b72f61a3d4ca48a2af1b0510584d633b8de1"
      ],
      "author": {
        "name": "Vladimir Murzin",
        "email": "vladimir.murzin@arm.com",
        "time": "Fri May 20 13:38:44 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 20 21:18:09 2022 +0100"
      },
      "message": "aarch64: Give up with MTE for AArch32 guest\n\nKVM doesn\u0027t support combination of MTE and AArch32 guest, so do not\neven try.\n\nSigned-off-by: Vladimir Murzin \u003cvladimir.murzin@arm.com\u003e\nTested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220520123844.127733-1-vladimir.murzin@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "4639b72f61a3d4ca48a2af1b0510584d633b8de1",
      "tree": "fc39cbfcf45c5c9e3d6640c712cb94970726a345",
      "parents": [
        "1393bda01407d85a0b4c923a4b1bf2e33ce8b846"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:31 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm64: Add --vcpu-affinity command line argument\n\nAdd a new command line argument, --vcpu-affinity, to set the CPU affinity\nfor the VCPUs. The affinity is expressed as a cpulist and will apply to all\nVCPU threads.\n\nThis gives the user a second option for choosing the PMU on a heterogeneous\nsystem. The PMU setup code, when --vcpu-affinity is specified, will search\nfor the PMU associated with the CPUs specified with this command line\nargument instead of the PMU associated with the CPU on which the main\nthread is executing.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-12-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "1393bda01407d85a0b4c923a4b1bf2e33ce8b846",
      "tree": "a1ad7b7b7f96666c7bacd1d56b83b303c77517f8",
      "parents": [
        "083a976e0f08e052a577560c64bd13a0fc79aa89"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:30 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm64: Add support for KVM_ARM_VCPU_PMU_V3_SET_PMU\n\nThe KVM_ARM_VCPU_PMU_V3_CTRL(KVM_ARM_VCPU_PMU_V3_SET_PMU) VCPU ioctl is\nused to assign a physical PMU to the events that KVM creates when emulating\nthe PMU for that VCPU. This is useful on heterogeneous systems, when there\nis more than one hardware PMU present. All VCPUs must have the same PMU\nassigned.\n\nThe assumption that is made in the implementation is that the user will pin\nthe kvmtool process on a set of CPUs that share the same PMU. This allows\nkvmtool to set the same PMU for all VCPUs from the main thread, instead of\nin the individual VCPU threads. If a VCPU thread migrates to a CPU which\nhas a different a PMU than the CPU on which the main thread was executing\nwhen the PMU was set, the KVM_RUN ioctl will fail with kvm_run.exit_reason\nset to KVM_EXIT_FAIL_ENTRY, and kvm_run.fail_entry will be populated with\nthe physical CPU ID on which the VCPU tried to execute.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-11-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "083a976e0f08e052a577560c64bd13a0fc79aa89",
      "tree": "0e21ec0651da1460d1ede32021764eb89cb94e1a",
      "parents": [
        "0febaae00bb6f8c5e694f87d6354fbcbe81e6653"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:29 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "update_headers.sh: Sync ABI headers with Linux v5.18-rc2\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-10-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "0febaae00bb6f8c5e694f87d6354fbcbe81e6653",
      "tree": "52857a21ca76e578125374145030541cd7c99630",
      "parents": [
        "83713e75cd6563db10cdd9881636740eace02770"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:28 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "Add cpumask functions\n\nAdd a handful of cpumask functions, some of which will be used when\ndealing with different PMUs on heterogeneous systems.\n\nThe maximum number of CPUs in a system, NR_CPUS, which dictates the size of\nthe cpumask, has been taken from the Kconfig file for each architecture,\nfrom Linux version 5.16.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-9-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "83713e75cd6563db10cdd9881636740eace02770",
      "tree": "b79840ceb2c7bded45ac6e28ad746ca022d61aaf",
      "parents": [
        "f57ce447709232e07e996968bd2df3e5395129a3"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:27 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm64: Rework set_pmu_attr()\n\nBy the time kvmtool generates the DTB node for the PMU, the\nKVM_ARM_VCPU_PMU_V3 VCPU feature is already set by kvm_cpu__arch_init().\n\nKVM refuses to run a VCPU if the PMU hasn\u0027t been initialized. A PMU\ncannot be initialized if the interrupt ID hasn\u0027t been set by userspace.\nAs a consequence, kvmtool will get an error if the interrupt ID or if\nthe PMU has not been initialized:\n\nKVM_RUN failed: Invalid argument\n\nTo make debugging easier, exit with an error message as soon as one the\nPMU ioctls fails, instead of waiting until the VCPU is first run.\n\nTo avoid the repetition of assigning a new kvm_device_attr struct in the\nmain body of pmu__generate_fdt_nodes(), which hinders readability of the\nfunction, move the struct to set_pmu_attr().\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-8-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "f57ce447709232e07e996968bd2df3e5395129a3",
      "tree": "133ac3b6357480da15c4ec931fff207aa258915f",
      "parents": [
        "b23aed2ae11e8c0a03c53d7e8e63ad1b22e5db1f"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:26 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm: Make the PMUv3 emulation code arm64 specific\n\nKVM for aarch32 does not exist anymore, PMUv3 is a hardware feature\npresent only on aarch64 CPUs, the command line option to enable the\nfeature for a VCPU is aarch64 specific, the PMU code is called only from\nan aarch64 function and it compiles to an empty stub when ARCH\u003darm.\nThere is no reason to have the PMUv3 emulation code in the common code\narea for arm and arm64, so move it to the arm64 directory, where it can\nbe expanded in the future without fear of breaking aarch32 support.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-7-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "b23aed2ae11e8c0a03c53d7e8e63ad1b22e5db1f",
      "tree": "029236826f095f4bdff4790f28fa8bb6f11f5bdb",
      "parents": [
        "412ee1375de8fcfae2feece5db9c859eedb3cdba"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:25 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm: Get rid of the ARM_VCPU_FEATURE_FLAGS() macro\n\nThe ARM_VCPU_FEATURE_FLAGS() macro sets a feature bit in a rather\nconvoluted way: if cpu_id is 0, then bit KVM_ARM_VCPU_POWER_OFF is 0,\notherwise is set to 1. There\u0027s really no need for this indirection,\nespecially considering that the macro has been changed to return the same\nvalue for both the arm and arm64 architectures. Replace it with a simple\nconditional statement in kvm_cpu__arch_init(), which makes it clearer to\nunderstand.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-6-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "412ee1375de8fcfae2feece5db9c859eedb3cdba",
      "tree": "a70864d98c928518c44d4c232ecb95140a57ef94",
      "parents": [
        "5898515dc727c8fa595a25dac640202bec2440eb"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:24 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm: Move arch specific VCPU features to the arch specific function\n\nKVM_CAP_ARM_EL1_32BIT and KVM_CAP_ARM_PMU_V3 are arm64 specific features.\nThey are set based on arm64 specific command line options and they target\narm64 hardware features. It makes little sense for kvmtool to set the\nfeatures in the code that is shared between arm and arm64. Move the logic\nto set the feature bits to the arch specific function\nkvm_cpu__select_features(), which is already used by arm64 to set other\narm64 specific features.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-5-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "5898515dc727c8fa595a25dac640202bec2440eb",
      "tree": "a30b31c02a6b72cead5ceac589492d69a9b61128",
      "parents": [
        "d9b64eb6aa05e552d6c9abf26ae9d87d9fb9c4ed"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:23 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "arm/arm64: pmu.h: Add missing header guards\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-4-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "d9b64eb6aa05e552d6c9abf26ae9d87d9fb9c4ed",
      "tree": "b1d1943bab783fe26f2a0d21ec8923255b821ea7",
      "parents": [
        "443cd881b47126bde6f442abc1f6c76998d713b7"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:22 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "linux/bitops.h: Include wordsize.h to provide the __WORDSIZE define\n\nTrying to build a source file which included bitops.h, but didn\u0027t also\nbring in the definition for __WORDSIZE (by including limits.h, for example)\nwould result in the following error:\n\ninclude/linux/bitops.h:8:23: error: ‘__WORDSIZE’ undeclared (first use in this function)\n    8 | #define BITS_PER_LONG __WORDSIZE\n      |                       ^~~~~~~~~~\n\nThe symbol is defined in the bits/wordsize.h header file, include it.\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-3-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "443cd881b47126bde6f442abc1f6c76998d713b7",
      "tree": "8ad847c41477fa093dd5e6f2d27c69de659a8996",
      "parents": [
        "5657dd3e48b41bc6db38fa657994bc0e030fd31f"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Tue Apr 12 14:32:21 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Fri May 06 14:21:16 2022 +0100"
      },
      "message": "linux/err.h: Add missing stdbool.h include\n\nAdd missing header stdbool.h to avoid errors like this one, which can\nhappen if the including file doesn\u0027t include stdbool.h:\n\ninclude/linux/err.h:33:15: error: type defaults to ‘int’ in declaration of ‘bool’ [-Werror\u003dimplicit-int]\n   33 | static inline bool __must_check IS_ERR(__force const void *ptr)\n      |               ^~~~\ninclude/linux/err.h:33:15: error: variable ‘bool’ declared ‘inline’ [-Werror]\ninclude/linux/err.h:33:1: error: ‘warn_unused_result’ attribute only applies to function types [-Werror\u003dattributes]\n   33 | static inline bool __must_check IS_ERR(__force const void *ptr)\n      | ^~~~~~\ninclude/linux/err.h:33:33: error: expected ‘,’ or ‘;’ before ‘IS_ERR’\n   33 | static inline bool __must_check IS_ERR(__force const void *ptr)\n      |                                 ^~~~~~\ninclude/linux/err.h:38:15: error: type defaults to ‘int’ in declaration of ‘bool’ [-Werror\u003dimplicit-int]\n   38 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)\n      |               ^~~~\ninclude/linux/err.h:38:15: error: variable ‘bool’ declared ‘inline’ [-Werror]\ninclude/linux/err.h:38:1: error: ‘warn_unused_result’ attribute only applies to function types [-Werror\u003dattributes]\n   38 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)\n      | ^~~~~~\ninclude/linux/err.h:38:15: error: redundant redeclaration of ‘bool’ [-Werror\u003dredundant-decls]\n   38 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)\n      |               ^~~~\ninclude/linux/err.h:33:15: note: previous declaration of ‘bool’ was here\n   33 | static inline bool __must_check IS_ERR(__force const void *ptr)\n      |               ^~~~\ninclude/linux/err.h:38:33: error: expected ‘,’ or ‘;’ before ‘IS_ERR_OR_NULL’\n   38 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)\n      |                                 ^~~~~~~~~~~~~~\ninclude/linux/err.h: In function ‘PTR_ERR_OR_ZERO’:\ninclude/linux/err.h:58:6: error: implicit declaration of function ‘IS_ERR’ [-Werror\u003dimplicit-function-declaration]\n   58 |  if (IS_ERR(ptr))\n      |      ^~~~~~\ninclude/linux/err.h:58:6: error: nested extern declaration of ‘IS_ERR’ [-Werror\u003dnested-externs]\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220412133231.35355-2-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "5657dd3e48b41bc6db38fa657994bc0e030fd31f",
      "tree": "3aad634e4a9beeb13741706127ca1a9d4f019257",
      "parents": [
        "af1b793cb61656b0fac0fdf4fe4b5e0518a5599f"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Mon Mar 28 11:33:28 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Apr 04 11:19:16 2022 +0100"
      },
      "message": "aarch64: Add support for MTE\n\nMTE has been supported in Linux since commit 673638f434ee (\"KVM: arm64:\nExpose KVM_ARM_CAP_MTE\"), add support for it in kvmtool. MTE is enabled by\ndefault.\n\nEnabling the MTE capability incurs a cost, both in time (for each\ntranslation fault the tags need to be cleared), and in space (the tags need\nto be saved when a physical page is swapped out). This overhead is expected\nto be negligible for most users, but for those cases where it matters\n(like performance benchmarks), a --disable-mte option has been added.\n\nReviewed-by: Vladimir Murzin \u003cvladimir.murzin@arm.com\u003e\nTested-by: Vladimir Murzin \u003cvladimir.murzin@arm.com\u003e\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220328103328.18768-3-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "af1b793cb61656b0fac0fdf4fe4b5e0518a5599f",
      "tree": "2a7a65a5d1541b2098eec42998f1da87889115c7",
      "parents": [
        "ffa8654620b70053657adf472d505deae2adb2a5"
      ],
      "author": {
        "name": "Alexandru Elisei",
        "email": "alexandru.elisei@arm.com",
        "time": "Mon Mar 28 11:33:27 2022 +0100"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Apr 04 11:19:16 2022 +0100"
      },
      "message": "update_headers.sh: Sync ABI headers with Linux v5.17\n\nSigned-off-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nLink: https://lore.kernel.org/r/20220328103328.18768-2-alexandru.elisei@arm.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "ffa8654620b70053657adf472d505deae2adb2a5",
      "tree": "a4b77cf2a48f6c3f16cc6b59f703ebec9d7401a3",
      "parents": [
        "faae833a746f1c59f64fb05e9c08e62b5b0002eb"
      ],
      "author": {
        "name": "Sebastian Ene",
        "email": "sebastianene@google.com",
        "time": "Thu Mar 24 15:43:05 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Apr 04 11:18:02 2022 +0100"
      },
      "message": "Make --no-pvtime command argument arm specific\n\nThe stolen time option is available only for aarch64 and is enabled by\ndefault. Move the option that disables stolen time functionality in the\narch specific path.\n\nSigned-off-by: Sebastian Ene \u003csebastianene@google.com\u003e\nLink: https://lore.kernel.org/r/20220324154304.2572891-1-sebastianene@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "faae833a746f1c59f64fb05e9c08e62b5b0002eb",
      "tree": "01c01fd36a11e1c178f59f00d85964821c3d74ea",
      "parents": [
        "1b76b6e1f84ad3b16f846b49fc4779995dea1137"
      ],
      "author": {
        "name": "Oliver Upton",
        "email": "oupton@google.com",
        "time": "Fri Mar 18 20:49:38 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Mar 21 13:39:05 2022 +0000"
      },
      "message": "Revert \"kvm tools: Filter out CPU vendor string\"\n\nThis reverts commit bc0b99a2a74047707db73ba057743febf458fd90.\n\nThanks to some digging from Andre [1], we know that kvmtool commit\nbc0b99a2a740 (\"kvm tools: Filter out CPU vendor string\") was intended\nto work around a guest kernel bug resulting from kernel commit\n5bbc097d8904 (\"x86, amd: Disable GartTlbWlkErr when BIOS forgets it\").\nCritically, KVM does not implement the MC4 mask MSR and instead injects\na #GP into the guest. On guest kernels without commit d47cc0db8fd6\n(\"x86, amd: Use _safe() msr access for GartTlbWlk disable code\") this is\nunexpected and causes a kernel oops.\n\nSince the kernel has taken the position to fix the bug in the guest and\nnot KVM, there is no need for CPU vendor string filtering in kvmtool.\nVendor string filtering is highly problematic for feature discovery,\nboth in the kernel and userspace. As Andre noted, glibc depends on the\nvendor string to discover CPU features at runtime [2]. This has been\ngenerally innocuous, but as distributions begin to raise the minimum ISA\nguest userspace will quickly crash and burn on kvmtool. Hiding the\nvendor string also makes it impossible to test vendor-specific CPU\nfeatures in kvmtool guest kernels.\n\nGiven the fact that there are known dependencies in kernel and userspace\non the CPU vendor string, allow the guest to see the native CPU vendor\nstring. This has the potential to break certain guest kernels of 2011\nvintage when running on an AMD Fam10h processor. Onus is on the guest to\nupdate its kernel at this point.\n\nLink: https://lore.kernel.org/kvm/20220311121042.010bbb30@donnerap.cambridge.arm.com/\nLink: https://sourceware.org/git/?p\u003dglibc.git;a\u003dblob;f\u003dsysdeps/x86/cpu-features.c;h\u003d514226b37889;hb\u003dHEAD#l398\nReported-by: Dongli Si \u003csidongli1997@gmail.com\u003e\nSuggested-by: Andre Przywara \u003candre.przywara@arm.com\u003e\nSigned-off-by: Oliver Upton \u003coupton@google.com\u003e\nLink: https://lore.kernel.org/r/20220318204938.496840-1-oupton@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "1b76b6e1f84ad3b16f846b49fc4779995dea1137",
      "tree": "677d966955075436d70432b5069fc3aeb0047ee3",
      "parents": [
        "7d4671e5d372a8507c126b59540ce69069e53d7f"
      ],
      "author": {
        "name": "Sebastian Ene",
        "email": "sebastianene@google.com",
        "time": "Sun Mar 13 16:19:50 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Mar 21 13:36:29 2022 +0000"
      },
      "message": "Add --no-pvtime command line argument\n\nThe command line argument disables the stolen time functionality when is\nspecified.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Sebastian Ene \u003csebastianene@google.com\u003e\nLink: https://lore.kernel.org/r/20220313161949.3565171-4-sebastianene@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "7d4671e5d372a8507c126b59540ce69069e53d7f",
      "tree": "607f8e2e007d4886179b728042f6fe42145235b4",
      "parents": [
        "ff6958200c4b3f11ff48c7d25b8757c6316f58e5"
      ],
      "author": {
        "name": "Sebastian Ene",
        "email": "sebastianene@google.com",
        "time": "Sun Mar 13 16:19:49 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Mar 21 13:36:29 2022 +0000"
      },
      "message": "aarch64: Add stolen time support\n\nThis patch adds support for stolen time by sharing a memory region\nwith the guest which will be used by the hypervisor to store the stolen\ntime information. Reserve a 64kb MMIO memory region after the RTC peripheral\nto be used by pvtime. The exact format of the structure stored by the\nhypervisor is described in the ARM DEN0057A document.\n\nReviewed-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nTested-by: Alexandru Elisei \u003calexandru.elisei@arm.com\u003e\nSigned-off-by: Sebastian Ene \u003csebastianene@google.com\u003e\nLink: https://lore.kernel.org/r/20220313161949.3565171-3-sebastianene@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    },
    {
      "commit": "ff6958200c4b3f11ff48c7d25b8757c6316f58e5",
      "tree": "2bb688c526ab16afd4e59867e88545db8762135d",
      "parents": [
        "95f47968a1d34ea27d4f3ad767f0c2c49f2ffc5b"
      ],
      "author": {
        "name": "Sebastian Ene",
        "email": "sebastianene@google.com",
        "time": "Sun Mar 13 16:19:48 2022 +0000"
      },
      "committer": {
        "name": "Will Deacon",
        "email": "will@kernel.org",
        "time": "Mon Mar 21 13:36:29 2022 +0000"
      },
      "message": "aarch64: Populate the vCPU struct before target-\u003einit()\n\nMove the vCPU structure initialisation before the target-\u003einit() call to\n keep a reference to the kvm structure during init().\nThis is required by the pvtime peripheral to reserve a memory region\nwhile the vCPU is beeing initialised.\n\nReviewed-by: Marc Zyngier \u003cmaz@kernel.org\u003e\nSigned-off-by: Sebastian Ene \u003csebastianene@google.com\u003e\nLink: https://lore.kernel.org/r/20220313161949.3565171-2-sebastianene@google.com\nSigned-off-by: Will Deacon \u003cwill@kernel.org\u003e\n"
    }
  ],
  "next": "95f47968a1d34ea27d4f3ad767f0c2c49f2ffc5b"
}
