)]}'
{
  "commit": "88ddcb2c16ccbefd0c0e75d0e94cf5fdd5ce37cf",
  "tree": "b54897e7d30b99ce65707f70c9a38bc0a2558f40",
  "parents": [
    "53cc9747ed7c9b95ba084d614976dd48c9a57a97"
  ],
  "author": {
    "name": "Zishun Yi",
    "email": "vulab@iscas.ac.cn",
    "time": "Tue May 12 14:23:10 2026 +0800"
  },
  "committer": {
    "name": "Alistair Francis",
    "email": "alistair.francis@wdc.com",
    "time": "Fri May 22 09:45:47 2026 +1000"
  },
  "message": "hw/riscv/virt-acpi-build: Fix off-by-one error in RIMT ID mapping\n\nIn build_rimt(), the calculation of `num_ids` for the ID mapping array\nincorrectly uses the same formula (`0xffff - s-\u003epci_iommu_bdf`) for both\nSystem IOMMU and PCI IOMMU topologies.\n\nFor a System IOMMU, `s-\u003epci_iommu_bdf` is 0. This results in a `num_ids`\nvalue of 0xffff. Since the source ID base starts at 0, the mapping only\ncovers Requester IDs from 0 to 0xfffe. The final valid PCI Requester ID\n(0xffff) is erroneously omitted from the RIMT table.\n\nFix this by decoupling the `num_ids` calculation. For System IOMMUs,\nexplicitly set `num_ids` to 0x10000 to cover the entire PCI Requester ID\nspace.\n\nThis issue was discovered and reported by SpecHunter, an AI-driven\narchitecture specification analysis tool.\n\nLink: https://github.com/yizishun/rv-isa-sec/blob/c78dacf66c8acd677b3538c837fde310bb71a97b/output/riscv-server-platform/pr-102/qemu.txt#L32\nSigned-off-by: Zishun Yi \u003cvulab@iscas.ac.cn\u003e\nAcked-by: Alistair Francis \u003calistair.francis@wdc.com\u003e\nMessage-ID: \u003c20260512062310.348208-1-vulab@iscas.ac.cn\u003e\nSigned-off-by: Alistair Francis \u003calistair.francis@wdc.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fd6ca5dbc4ffd4aba25077ad5558403a975cc7b4",
      "old_mode": 33188,
      "old_path": "hw/riscv/virt-acpi-build.c",
      "new_id": "413d47d70ef11f05caf091364cdebc22ed35e941",
      "new_mode": 33188,
      "new_path": "hw/riscv/virt-acpi-build.c"
    }
  ]
}
