{
  "finding_id": "DF-5619",
  "title": "_CST C-state descriptors with no operational entry method accepted by acpi_cst_md_cx_setup: unattended boot panics",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "python3 mkdsdt.py {control,nullenter,zerostate} dsdt_cst_*.dsl; iasl on guest; python3 gen_cst.py dsdt_cst_*.aml /tmp/opencode/cst_*.bin (see build.sh)",
    "run": "QEMU_EXTRA='-machine accel=tcg -cpu SandyBridge -device loader,file=/tmp/opencode/cst_nullenter.bin,addr=0x40000000,force-raw=on' vm.sh up 240  (see run.sh)",
    "expected": "control: boots, cx_supported C1/1 | nullenter: panic 'C2 enter is not set' at cpu_cst0 attach | zerostate: panic 'C1 startup setup failed: 22' in acpi_cst_postattach (unconditional, fires on non-INVARIANTS kernels too)"
  },
  "kernel_refs": [
    "sys/platform/pc64/acpica/acpi_cstate_machdep.c:67",
    "sys/platform/pc64/acpica/acpi_cstate_machdep.c:81",
    "sys/platform/pc64/acpica/acpi_cstate_machdep.c:87",
    "sys/platform/pc64/acpica/acpi_cstate_machdep.c:90",
    "sys/platform/pc64/acpica/acpi_cstate_machdep.c:93",
    "sys/dev/acpica/acpi_cpu_cstate.c:564",
    "sys/dev/acpica/acpi_cpu_cstate.c:593",
    "sys/dev/acpica/acpi_cpu_cstate.c:609",
    "sys/dev/acpica/acpi_cpu_cstate.c:616",
    "sys/dev/acpica/acpi_cpu_cstate.c:746",
    "sys/dev/acpica/acpi_cpu_cstate.c:750",
    "sys/dev/acpica/acpi_cpu_cstate.c:842",
    "sys/dev/acpica/acpi_cpu_cstate.c:844",
    "sys/dev/acpica/acpi_cpu_cstate.c:970",
    "sys/dev/acpica/acpi.c:1280"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "mkdsdt.py", "gen_cst.py",
    "dsdt_cst_control.dsl", "dsdt_cst_nullenter.dsl", "dsdt_cst_zerostate.dsl",
    "dsdt_cst_control.aml", "dsdt_cst_nullenter.aml", "dsdt_cst_zerostate.aml",
    "run.control_sysctl.txt", "run.attack_panic.log", "panic.txt",
    "run.attack_zerostate_panic.log", "run.noinv_nullenter_survives.txt",
    "run.noinv_zerostate_panic.log", "panic.noinv.txt",
    "run.fixedkernel_nullenter.txt", "run.fixedkernel_control.txt",
    "build.log", "build.sh", "run.sh", "env.txt", "fix.diff",
    "manifest.json", "verdict.json"
  ]
}
