)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2c8abd0020a494e139426769dc835314314bcc67","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     5387af03 (pci-sim: add NVMe VFIO guest probe and host handoff)"},{"line_number":2,"context_line":"Author:     Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-08-27 15:32:34 +0530"},{"line_number":4,"context_line":"Commit:     chandan kumar \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5ba3365c_91f56c34","line":1,"updated":"2026-09-03 19:15:36.000000000","message":"The commit message bullet states this change adds to test_pci_sim_nvme_host.sh a \u0027Phase 2 test section covering stock nvme driver binding, MSI-X vector allocation (msi_irqs/ populated), nvme list, id-ctrl via stock driver, filesystem operations (parted, mkfs.ext4, mount, write+read, blkid), and VFIO rebind cycle\u0027. In the actual commit the script diff is only the 12-line replacement of the char-device false-positive check; the Phase 2 fio/mkfs/rebind section already existed in base 5387af0, and no msi_irqs/ sysfs check exists anywhere in the script at either base or head.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: The permanent change history claims MSI-X vector allocation is regression-tested when it is not; a future reader or CI designer relying on the message would wrongly assume an msi_irqs/ population check guards this feature, and the misattribution makes the patchset harder to review accurately.\n\n**Suggestion**:\nReword the test_pci_sim_nvme_host.sh bullet to describe only the false-positive fix, e.g. \u0027test_pci_sim_nvme_host.sh: replace the /dev/nvmeN char-device Phase 2 check (which false-positived on stock nvme controller devices) with a check that pci_sim_nvme_host is not bound to any VF\u0027. If msi_irqs/ verification is intended, add the actual check (ls /sys/bus/pci/devices/$VF/msi_irqs/ must be non-empty) to the script in this change.","commit_id":"a9b3407034586fc86afcd769f444a403189f486d"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"00e7395cc96c444530837161b244ea672be85e4f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     4c950d32 (pci-sim: add NVMe VFIO guest probe and host handoff)"},{"line_number":2,"context_line":"Author:     Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-08-27 15:32:34 +0530"},{"line_number":4,"context_line":"Commit:     chandan kumar \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ca37d81b_0a7766ff","line":1,"updated":"2026-09-05 06:23:18.000000000","message":"The commit message states the test_pci_sim_nvme_host.sh change adds a Phase 2 section covering \u0027MSI-X vector allocation (msi_irqs/ populated)\u0027 along with nvme list, id-ctrl, filesystem operations and VFIO rebind. In reality this patch changes only the Phase-1-char-device false-positive check (~12 lines), and the msi_irqs verification it names appears nowhere in the script (0 occurrences of \u0027msi_irqs\u0027 at both base 4c950d3 and head). The other listed coverage (nvme list, id-ctrl, fio, parted/mkfs, rebind) already existed in prior commits.\n\n**Severity**: WARNING | **Confidence**: 0.95\n\n**Impact**: The permanent change history claims MSI-X vector-allocation verification that no test performs, misleading future maintainers and reviewers auditing test coverage for the new MSI-X domain.\n\n**Suggestion**:\nAmend the message to describe only what this patchset changes in the script (the driver-bind false-positive fix), and either drop the msi_irqs claim or add the actual \u0027ls /sys/bus/pci/devices/$vf/msi_irqs/\u0027 check from testing.rst Req 1 to the script.","commit_id":"08361d6adcc68b0f0f09c2d283ae35183d563ec7"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b9ee2622c1425394178b93ecfc77b38561cc722e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     37e98285 (pci-sim: add NVMe VFIO guest probe and host handoff)"},{"line_number":2,"context_line":"Author:     Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-08-27 15:32:34 +0530"},{"line_number":4,"context_line":"Commit:     Chandan \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"e6ef3629_d9b3ee90","line":1,"updated":"2026-09-08 11:14:02.000000000","message":"The commit message states \u0027test_pci_sim_nvme_host.sh: add Phase 2 test section covering stock nvme driver binding, MSI-X vector allocation (msi_irqs/ populated), nvme list, id-ctrl via stock driver, filesystem operations ... and VFIO rebind cycle\u0027. In the reviewed diff the script change is only the replacement of the Phase 1 char-device check with a driver-bind check; the Phase 2 section (fio, parted/mkfs, id-ctrl, rebind) already existed at the base commit, and no msi_irqs check exists anywhere in the script.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: The permanent change history misattributes pre-existing test coverage to this commit and asserts an MSI-X vector verification that does not exist, misleading later maintenance and review of the MSI domain work.\n\n**Suggestion**:\nReword the test_pci_sim_nvme_host.sh bullet to describe what actually changed: replacing the Phase 1 char-device false-positive check with a pci_sim_nvme_host driver-bind check. Drop the msi_irqs claim or add the corresponding check to the script.","commit_id":"c62ee5c849f91d65208f60de3b67fffb6b785238"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"210732181e00656602f97ec947751052e641b90d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     38d27c8b (pci-sim: add NVMe VFIO guest probe and host handoff)"},{"line_number":2,"context_line":"Author:     Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-08-06 10:46:37 +0530"},{"line_number":4,"context_line":"Commit:     Chandan \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"483c7543_9b608514","line":1,"updated":"2026-09-09 07:31:32.000000000","message":"The header bullet in the commit message states that fake_pci_sriov.h \u0027add msi_fwnode, msi_parent, msi_domain fields to struct fake_pci_host; add pci_sim_msi_domain_init/fini declarations; remove unused sw_irq field\u0027. Neither the reviewed diff nor the base commit c623d13 contains any sw_irq identifier, so the claimed removal is not implemented by this change. The permanent change history therefore describes a modification that did not happen.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: Future readers and bisect tooling will look for a sw_irq removal (e.g., when auditing module state fields) that never occurred, and the message loses precision about what the header change actually contains.\n\n**Suggestion**:\nDrop the \u0027remove unused sw_irq field\u0027 clause (or rephrase to describe the actual header change: replacing the blank line with the three MSI domain fields plus the init/fini declarations) when amending the patchset.","commit_id":"18bafddcd9b3c6709c8d7da065f63ccc1867d868"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"d476cbc859d56e6254b625a7dba6fde1acc1771d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     e4eb4ec4 (pci-sim: add NVMe VFIO guest probe and host handoff)"},{"line_number":2,"context_line":"Author:     Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-08-06 10:46:37 +0530"},{"line_number":4,"context_line":"Commit:     Chandan \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"d418f0ea_14d34566","line":1,"updated":"2026-09-09 15:56:19.000000000","message":"The commit message bullet for fake_pci_sriov.h says \u0027remove unused sw_irq field\u0027, but the patch\u0027s diff to the header only removes a blank line and adds the msi_fwnode/msi_parent/msi_domain fields; sw_irq does not exist anywhere in the tree or its git history.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: Readers auditing the permanent history will look for a field removal that is not in this commit, wasting review time and making the message an inaccurate record of the patch contents.\n\n**Recommendation**:\nDrop the \u0027remove unused sw_irq field\u0027 clause from the fake_pci_sriov.h bullet; it appears to describe an earlier patchset iteration.","commit_id":"de3e87000df23f090ee90684d57fbad54ca3caba"}],"doc/source/contributor/pci-sim/testing.rst":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"39a49458f80b1dc29253442da9fa12c0c4d9d30b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   $ basename $(readlink /sys/bus/pci/devices/$VF/driver)  # nvme"},{"line_number":207,"context_line":"   $ sudo nvme id-ctrl /dev/nvme0 | grep \u0027^vid\u0027            # 0x1d55"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"All six requirements are automated in the Phase 2 section of"},{"line_number":210,"context_line":"``test_pci_sim_nvme_host.sh``, which runs automatically when ``memmap\u003d``"},{"line_number":211,"context_line":"is present in ``/proc/cmdline``."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e4817c83_2e61a2d3","line":209,"updated":"2026-09-01 12:48:53.000000000","message":"The new Phase 2 verification section in testing.rst ends with \u0027All six requirements are automated in the Phase 2 section of test_pci_sim_nvme_host.sh, which runs automatically when memmap\u003d is present in /proc/cmdline.\u0027 The script\u0027s Phase 2 section contains none of the following steps the doc attributes to it: the msi_irqs/ population check, the dmesg -524 probe-failure grep (Req 1), the four-controller /dev/nvme{0..3} enumeration (Req 2), id-ns/nsze on all controllers (Req 3), and the write-zeroes / sanitize / sanitize-log sstat checks (Req 5 - the script\u0027s write-zeroes and sanitize calls at lines 136-144 run in Phase 1 against the pci_sim_nvme_host char device, not the stock driver). The commit message repeats the claim (\u0027add Phase 2 test section covering ... MSI-X vector allocation (msi_irqs/ populated) ... filesystem operations\u0027), yet the script diff in this change is only the 12-line driver-bound false-positive fix and \u0027msi_irqs\u0027 appears nowhere in the file. Only Req 6 (VFIO rebind) and partial Req 1/3 (single-VF binding + id-ctrl) plus fio/mkfs coverage actually exist, and that coverage predates this commit.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Contributors running the script as a CI proxy for the \u0027six requirements\u0027 will get a PASS even if MSI-X vector allocation silently regressed (no msi_irqs or -524 checks) or sanitize/sstat broke (no Phase 2 sanitize test), giving false confidence in the exact behavior this patch exists to enable.\n\n**Suggestion**:\nEither add the missing checks to the Phase 2 section of test_pci_sim_nvme_host.sh (msi_irqs populated, dmesg -ENOTSUPP grep, per-VF controller/namespace enumeration, Phase 2 write-zeroes/sanitize with sstat assert) or reword the closing paragraph (and the commit message in a follow-up) to state exactly which requirements the script covers, e.g. \u0027Requirements 1 (binding only), 3 (id-ctrl only), 4 and 6 are automated; manual steps above cover the rest.\u0027","commit_id":"ec82833dfea3e70b7a55dfb93e8a196e39c36078"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2c8abd0020a494e139426769dc835314314bcc67","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   $ basename $(readlink /sys/bus/pci/devices/$VF/driver)  # nvme"},{"line_number":207,"context_line":"   $ sudo nvme id-ctrl /dev/nvme0 | grep \u0027^vid\u0027            # 0x1d55"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"All six requirements are automated in the Phase 2 section of"},{"line_number":210,"context_line":"``test_pci_sim_nvme_host.sh``, which runs automatically when ``memmap\u003d``"},{"line_number":211,"context_line":"is present in ``/proc/cmdline``."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a2cb83ee_e31ba129","line":209,"updated":"2026-09-03 19:15:36.000000000","message":"The new Phase 2 MSI-X domain verification section ends with \u0027All six requirements are automated in the Phase 2 section of test_pci_sim_nvme_host.sh\u0027. The script automates neither the Req 1 msi_irqs/ populated check, nor the Req 5 sanitize-log sstat\u003d\u003d0x2 assertion (it only runs \u0027nvme sanitize\u0027 and checks the exit code, with no sanitize-log/sstat parsing), and its fio verify test (Req 4) runs on a single device ($NVME_BLK \u003d first detected controller\u0027s namespace) rather than all four namespaces. The script also defaults to NUM_VFS\u003d2 while the documented topology uses four VFs.\n\n**Severity**: WARNING | **Confidence**: 0.88\n\n**Impact**: A contributor following the guide will believe Req 1 (MSI-X vectors actually allocated), Req 4 (per-namespace data integrity), and Req 5 (sanitize completion state) are regression-covered by CI automation when they are not; silent MSI-X allocation regressions (-524 probe failures) could pass the automated test suite.\n\n**Suggestion**:\nEither narrow the sentence to what is actually automated (\u0027driver binding, nvme list, id-ctrl on the first controller, fio on the first namespace, and the VFIO rebind cycle are automated\u0027) or add the missing checks to the script: an msi_irqs/ population assert per VF, the sanitize-log sstat python check, and iteration of fio verify over all created namespaces (and align NUM_VFS with the documented four-VF topology or note the difference).","commit_id":"a9b3407034586fc86afcd769f444a403189f486d"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"d4a58eeb5655951ac2f4850363b18af19256dcb3","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   $ basename $(readlink /sys/bus/pci/devices/$VF/driver)  # nvme"},{"line_number":207,"context_line":"   $ sudo nvme id-ctrl /dev/nvme0 | grep \u0027^vid\u0027            # 0x1d55"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"All six requirements are automated in the Phase 2 section of"},{"line_number":210,"context_line":"``test_pci_sim_nvme_host.sh``, which runs automatically when ``memmap\u003d``"},{"line_number":211,"context_line":"is present in ``/proc/cmdline``."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1d56badc_5c7ef42b","line":209,"updated":"2026-09-04 09:00:42.000000000","message":"The new section ends with \u0027All six requirements are automated in the Phase 2 section of test_pci_sim_nvme_host.sh\u0027. Checking the script: Req 1\u0027s msi_irqs/ population check and the dmesg \u0027probe.*-524\u0027 absence check are absent, and Req 5\u0027s sanitize-log sstat (bits[2:0]\u003d\u003d0x2) assertion is absent - the script runs \u0027nvme sanitize\u0027 but never parses sanitize-log. Req 3\u0027s id-ns is also executed only for /dev/nvme0, not all four controllers as the doc\u0027s per-controller loop implies. A contributor relying on the script to gate the six review requirements will get a false sense of coverage for exactly the checks that validate this commit\u0027s MSI-X work.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Impact**: Misleading verification documentation: reviewers or CI users may believe the MSI-X vector population and sanitize-status assertions are enforced when they are manual-only, so regressions in those areas would not be caught automatically.\n\n**Recommendation**:\nEither add the missing checks to the Phase 2 section of test_pci_sim_nvme_host.sh (msi_irqs/ listing per VF, dmesg -524 grep, sanitize-log sstat parse) or reword the closing sentence to \u0027Most of these requirements are automated; the msi_irqs, -524, and sanitize-log sstat checks are manual\u0027 so the doc matches the script.","commit_id":"684102df85ca181ff66d9274cae0ce03c0a8d9b0"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"00e7395cc96c444530837161b244ea672be85e4f","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   $ basename $(readlink /sys/bus/pci/devices/$VF/driver)  # nvme"},{"line_number":207,"context_line":"   $ sudo nvme id-ctrl /dev/nvme0 | grep \u0027^vid\u0027            # 0x1d55"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"All six requirements are automated in the Phase 2 section of"},{"line_number":210,"context_line":"``test_pci_sim_nvme_host.sh``, which runs automatically when ``memmap\u003d``"},{"line_number":211,"context_line":"is present in ``/proc/cmdline``."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1d2768df_e5fb2663","line":209,"updated":"2026-09-05 06:23:18.000000000","message":"The new section ends with \u0027All six requirements are automated in the Phase 2 section of test_pci_sim_nvme_host.sh\u0027, but Req 1\u0027s assertions are not automated: the script contains no msi_irqs check and no \u0027probe.*-524\u0027 dmesg check (zero occurrences of either at head). Only driver binding and the downstream functional checks (id-ctrl, fio, filesystem ops, rebind) are automated.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Contributors relying on the automated script for CI verification will believe MSI-X vector allocation is regression-tested when it is not; a future regression that leaves msi_irqs empty (e.g. domain attach failure) could pass the automated run.\n\n**Suggestion**:\nEither add the Req 1 msi_irqs and -524 assertions to the Phase 2 section of test_pci_sim_nvme_host.sh, or weaken the sentence to state that only the functional subset is automated and the MSI-X checks are manual verification steps.","commit_id":"08361d6adcc68b0f0f09c2d283ae35183d563ec7"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b9ee2622c1425394178b93ecfc77b38561cc722e","unresolved":false,"context_lines":[{"line_number":206,"context_line":"   $ basename $(readlink /sys/bus/pci/devices/$VF/driver)  # nvme"},{"line_number":207,"context_line":"   $ sudo nvme id-ctrl /dev/nvme0 | grep \u0027^vid\u0027            # 0x1d55"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"All six requirements are automated in the Phase 2 section of"},{"line_number":210,"context_line":"``test_pci_sim_nvme_host.sh``, which runs automatically when ``memmap\u003d``"},{"line_number":211,"context_line":"is present in ``/proc/cmdline``."},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"de25e52b_92e2951b","line":209,"updated":"2026-09-08 11:14:02.000000000","message":"The new \u0027Phase 2 MSI-X domain verification (six requirements)\u0027 section ends with \u0027All six requirements are automated in the Phase 2 section of test_pci_sim_nvme_host.sh\u0027. The script contains no msi_irqs/ population check and no dmesg probe-failure (-524) check (Req 1, the core feature of this change), no sanitize-log/sstat assertion (Req 5 runs \u0027nvme sanitize\u0027 but never verifies sstat bits), and exercises only VF0\u0027s controller with NUM_VFS\u003d2 instead of the four controllers the section prescribes (Reqs 2-4).\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Contributors and CI readers will believe MSI-X vector allocation and sanitize-completion requirements are regression-covered by the automated script when they are not; a regression that reintroduces the -524 probe failure this change fixes would not be caught automatically.\n\n**Suggestion**:\nEither add the missing assertions to test_pci_sim_nvme_host.sh (per-VF msi_irqs/ non-empty, absence of probe -524 in dmesg, sanitize-log sstat check, per-VF id-ctrl/fio over all VFs) or reword testing.rst to state that only a subset is automated and Reqs 1/5 are manual steps.","commit_id":"c62ee5c849f91d65208f60de3b67fffb6b785238"}],"pci-sim/fake_pci_sriov.h":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"00e7395cc96c444530837161b244ea672be85e4f","unresolved":false,"context_lines":[{"line_number":160,"context_line":"\t * Software MSI/MSI-X domain (fake_pci_sriov_msi.c)."},{"line_number":161,"context_line":"\t * One two-level domain per host bridge: a linear parent that allocates"},{"line_number":162,"context_line":"\t * virtual IRQ descriptors, and a PCI MSI domain providing MSI-X"},{"line_number":163,"context_line":"\t * semantics.  Attached to bridge-\u003ebus-\u003edev so all VFs on this bridge"},{"line_number":164,"context_line":"\t * inherit it through pci_msi_get_device_domain()."},{"line_number":165,"context_line":"\t * All three fields are NULL until pci_sim_msi_domain_init() runs."},{"line_number":166,"context_line":"\t */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"dff64f88_830e6eb5","line":163,"updated":"2026-09-05 06:23:18.000000000","message":"The new comment in fake_pci_sriov.h says the domain is \u0027Attached to bridge-\u003ebus-\u003edev so all VFs on this bridge inherit it through pci_msi_get_device_domain()\u0027. The implementation attaches it to the bridge device (\u0026host-\u003ebridge-\u003edev) in pci_sim_msi_domain_init(), and fake_pci_sriov_msi.c\u0027s own comment explicitly notes the bus attach is impossible at init time (\u0027bridge-\u003ebus is NULL until pci_host_probe() runs\u0027) and that pci_set_bus_msi_domain() propagates it to the bus later.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: A maintainer reading the header would expect the domain on the bus device at init time and could \u0027fix\u0027 or extend the code against the wrong lifetime assumption, since the bridge-\u003ebus-\u003edev pointer only becomes valid during pci_host_probe().\n\n**Recommendation**:\nReword the header comment to \u0027Attached to bridge-\u003edev before pci_host_probe(); propagated to the root bus device by pci_set_bus_msi_domain()\u0027 to match pci_sim_msi_domain_init().","commit_id":"08361d6adcc68b0f0f09c2d283ae35183d563ec7"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"1a56b51dbe4952b28ed58c39a09263f74d3af051","unresolved":false,"context_lines":[{"line_number":160,"context_line":"\t * Software MSI/MSI-X domain (fake_pci_sriov_msi.c)."},{"line_number":161,"context_line":"\t * One two-level domain per host bridge: a linear parent that allocates"},{"line_number":162,"context_line":"\t * virtual IRQ descriptors, and a PCI MSI domain providing MSI-X"},{"line_number":163,"context_line":"\t * semantics.  Attached to bridge-\u003ebus-\u003edev so all VFs on this bridge"},{"line_number":164,"context_line":"\t * inherit it through pci_msi_get_device_domain()."},{"line_number":165,"context_line":"\t * All three fields are NULL until pci_sim_msi_domain_init() runs."},{"line_number":166,"context_line":"\t */"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"804dc7ea_4ced6571","line":163,"updated":"2026-09-07 17:21:52.000000000","message":"The header comment for the new struct fields states the domain is \u0027Attached to bridge-\u003ebus-\u003edev\u0027, and the pci_sim_msi_domain_init() docstring says \u0027The domain is attached to the bus device\u0027, but the implementation attaches it to the bridge device (dev_set_msi_domain(\u0026host-\u003ebridge-\u003edev, msi)) and the in-function comment explicitly says \u0027not the bus device -- bridge-\u003ebus is NULL until pci_host_probe() runs\u0027. The bus only receives the domain later, propagated by pci_set_bus_msi_domain(). A maintainer reading the header or docstring would look for ownership on the wrong device, and fini\u0027s cleanup (which clears bridge-\u003edev only) would then look incomplete.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: Misleading ownership/lifetime documentation for the three new struct fields increases the chance a future edit detaches or clears the wrong device\u0027s msi.domain, producing the dangling-pointer class of bug flagged in CF-001.\n\n**Recommendation**:\nFix the two comments: in fake_pci_sriov.h say the domain is \u0027attached to bridge-\u003edev before pci_host_probe(); pci_set_bus_msi_domain() propagates it to bus-\u003edev\u0027, and align the pci_sim_msi_domain_init() docstring paragraph (fake_pci_sriov_msi.c:181) with the code.","commit_id":"2c4129611afb26f5e668f883835eac93af45dbbc"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f0ffc477124432ad4db5ed897d78c3e061b46aa1","unresolved":false,"context_lines":[{"line_number":156,"context_line":"\tstruct pci_sim_nvme nvme_state[MAX_VFS];"},{"line_number":157,"context_line":"\tstruct task_struct *poll_kthread;"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"\t/*"},{"line_number":160,"context_line":"\t * Software MSI/MSI-X domain (fake_pci_sriov_msi.c)."},{"line_number":161,"context_line":"\t * One two-level domain per host bridge: a linear parent that allocates"},{"line_number":162,"context_line":"\t * virtual IRQ descriptors, and a PCI MSI domain providing MSI-X"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"19402430_84744ba6","line":159,"updated":"2026-09-09 06:12:05.000000000","message":"The new comment above the msi_fwnode/msi_parent/msi_domain fields says the domain is \u0027Attached to bridge-\u003ebus-\u003edev so all VFs on this bridge inherit it through pci_msi_get_device_domain()\u0027. The implementation in fake_pci_sriov_msi.c attaches the domain to bridge-\u003edev, and its own inline comment explains why: \u0027not the bus device -- bridge-\u003ebus is NULL until pci_host_probe() runs\u0027; pci_set_bus_msi_domain() inside pci_host_probe() then copies it to the root bus device.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: A maintainer reading struct fake_pci_host will look for the domain on the bus device. A future teardown or debug change written from the header (e.g. detaching via bus-\u003edev, or assuming bus-\u003edev is the owner) will target the wrong device, leaving the actual bridge-\u003edev association untouched and breaking init/fini symmetry that the code currently maintains.\n\n**Suggestion**:\nReword the header comment to match the implementation, e.g. \u0027Attached to bridge-\u003edev before pci_host_probe(); pci_set_bus_msi_domain() inside pci_host_probe() propagates it to the root bus so all VFs inherit it via pci_msi_get_device_domain()\u0027.","commit_id":"adbfa021c2a161eb97d910a4058f3ce93b463b3b"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"d476cbc859d56e6254b625a7dba6fde1acc1771d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"\t * Software MSI/MSI-X domain (fake_pci_sriov_msi.c)."},{"line_number":161,"context_line":"\t * One two-level domain per host bridge: a linear parent that allocates"},{"line_number":162,"context_line":"\t * virtual IRQ descriptors, and a PCI MSI domain providing MSI-X"},{"line_number":163,"context_line":"\t * semantics.  Attached to bridge-\u003ebus-\u003edev so all VFs on this bridge"},{"line_number":164,"context_line":"\t * inherit it through pci_msi_get_device_domain()."},{"line_number":165,"context_line":"\t * All three fields are NULL until pci_sim_msi_domain_init() runs."},{"line_number":166,"context_line":"\t */"}],"source_content_type":"text/x-csrc","patch_set":11,"id":"669ba58b_ca3b567d","line":163,"updated":"2026-09-09 15:56:19.000000000","message":"The new header comment states the domain is \u0027Attached to bridge-\u003ebus-\u003edev\u0027 and the pci_sim_msi_domain_init() docstring states \u0027The domain is attached to the bus device\u0027, but the implementation attaches the domain to bridge-\u003edev before pci_host_probe(); the in-code comment at the attach site explicitly notes bridge-\u003ebus is NULL until probe runs.\n\n**Severity**: SUGGESTION | **Confidence**: 0.92\n\n**Impact**: A future maintainer following the header or docstring could attach the domain to bus-\u003edev (NULL pointer before probe) or move pci_sim_msi_domain_init() after pci_host_probe(), silently breaking pci_set_bus_msi_domain() propagation and reintroducing the -524 nvme probe failure this change fixes.\n\n**Recommendation**:\nUpdate the fake_pci_sriov.h comment and the stale docstring paragraph in pci_sim_msi_domain_init() to state that the domain is attached to the bridge device (bridge-\u003edev) before pci_host_probe() and propagated to the bus by pci_set_bus_msi_domain().","commit_id":"de3e87000df23f090ee90684d57fbad54ca3caba"}],"pci-sim/fake_pci_sriov_msi.c":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"210732181e00656602f97ec947751052e641b90d","unresolved":false,"context_lines":[{"line_number":178,"context_line":" * pci_msi_get_device_domain(vf) -\u003e dev_get_msi_domain(vf-\u003edev.parent)"},{"line_number":179,"context_line":" * (\u003d bus device) returns the domain automatically."},{"line_number":180,"context_line":" *"},{"line_number":181,"context_line":" * The domain is attached to the bus device so pci_msi_get_device_domain()"},{"line_number":182,"context_line":" * finds it when a VF calls pci_alloc_irq_vectors() during probe."},{"line_number":183,"context_line":" * pci_msi_get_device_domain() checks pdev-\u003edev.msi.domain first, then"},{"line_number":184,"context_line":" * pdev-\u003edev.parent-\u003emsi.domain (\u003d bus device).  All VFs share the PF bus"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"10f2e068_89ae0351","line":181,"updated":"2026-09-09 07:31:32.000000000","message":"pci_sim_msi_domain_init()\u0027s kerneldoc says \u0027The domain is attached to the bus device so pci_msi_get_device_domain() finds it\u0027, but the implementation attaches the domain to the bridge device (dev_set_msi_domain(\u0026host-\u003ebridge-\u003edev, msi)) and its own inline comment explicitly says \u0027Attach to the bridge device (not the bus device -- bridge-\u003ebus is NULL until pci_host_probe() runs)\u0027. The struct comment in fake_pci_sriov.h repeats the wrong claim (\u0027Attached to bridge-\u003ebus-\u003edev\u0027). The correct lifecycle reasoning (bridge-\u003edev set before probe, propagated to bus-\u003edev by pci_set_bus_msi_domain() during pci_host_probe()) is spelled out earlier in the same kerneldoc, so the function\u0027s documentation contradicts both itself and the code.\n\n**Severity**: WARNING | **Confidence**: 0.95\n\n**Impact**: A future maintainer reading the kerneldoc or struct comment will believe the domain lives on bus-\u003edev and may call pci_sim_msi_domain_init() after pci_host_probe() or reason incorrectly about teardown ordering, since the whole design hinges on attaching before probe precisely because bridge-\u003ebus is NULL at that point.\n\n**Suggestion**:\nRewrite the stale paragraph in pci_sim_msi_domain_init() (lines 181-185) to say the domain is attached to the bridge device before pci_host_probe() and is propagated to the bus device by pci_set_bus_msi_domain(); fix the matching sentence in the struct comment in fake_pci_sriov.h (bridge-\u003edev, not bridge-\u003ebus-\u003edev).","commit_id":"18bafddcd9b3c6709c8d7da065f63ccc1867d868"}]}
