DF-4693 / manifest.json
{ "finding_id": "DF-4693", "title": "sili_pm: pm_read/pm_write recycle the ata_xfer on a deferred timeout (sili_ata_cmd returns ATA_S_ONCHIP) - CCB freed and re-issuable while the chip owns the slot", "verdict": "inconclusive", "impact": "none (expected: sili_poll KKASSERT panic on slot reuse, cross-command CCB completion/dmamap corruption via sili_port_reinit, or permanent sili_exclusive_access wedge; guest has no sili HBA / PM emulation)", "confidence": "likely", "reproduce": { "build": "sh build.sh (cc -O2 -Wall -o trigger_sili_pm trigger_sili_pm.c)", "run": "sh run.sh (reset/rescan storm + dd saturation, 15s)", "expected": "on PM hardware with a hung target + other-target NCQ in flight: 'Deferred timeout until its safe' then panic at sili.c:1321 KKASSERT (slot reuse) or stale completion of the recycled ccb; on this guest: loop completes benignly" }, "kernel_refs": [ "sys/dev/disk/sili/sili_pm.c:657-668", "sys/dev/disk/sili/sili_pm.c:698-703", "sys/dev/disk/sili/sili_pm.c:563-568", "sys/dev/disk/sili/sili.c:2350-2382", "sys/dev/disk/sili/sili.c:1311-1360", "sys/dev/disk/sili/sili.c:2488-2519", "sys/dev/disk/sili/sili.c:403-411", "sys/dev/disk/sili/sili.c:1437-1443", "sys/dev/disk/sili/sili.c:529-534" ], "artifacts": [ "README.md", "VERDICT.md", "trigger_sili_pm.c", "build.sh", "run.sh", "build.log", "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |