DF-4995 / manifest.json
{ "finding_id": "DF-4995", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "root_cause": "irq_source_info_dcn10[DAL_IRQ_SOURCES_NUMBER=90] has no designators past index 83 (vblank_int_entry(5)==DC_IRQ_SOURCE_VBLANK6, irq_service_dcn10.c:325-331); DC_IRQ_SOURCE_DC{1..6}_VLINE0 (enum 84..89, irq_types.h:140-147) stay zero-initialized with .funcs==NULL, and dal_irq_service_ack (:152, called first by dal_irq_service_set at :116) / dal_irq_service_set (:118) dereference info->funcs without a NULL check — DF-4713/DF-4932 family tail on the DCN10 table", "kernel_refs": [ "sys/dev/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c:245", "sys/dev/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c:331", "sys/dev/drm/amd/display/dc/irq/irq_service.c:82", "sys/dev/drm/amd/display/dc/irq/irq_service.c:116", "sys/dev/drm/amd/display/dc/irq/irq_service.c:118", "sys/dev/drm/amd/display/dc/irq/irq_service.c:152", "sys/dev/drm/amd/display/dc/irq_types.h:140", "sys/dev/drm/amd/display/dc/irq_types.h:158", "sys/dev/drm/amd/display/dc/core/dc.c:1682", "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c:477" ], "reproduce": { "build": "sh build.sh # cc -O2 -Wall -std=gnu11 [-DFIX_DF4995] on the audit guest", "run": "sh run.sh # baseline then fixed", "expected": "baseline: 6 NULL-funcs entries table[84..89], controls pass (OOB index 90 rejected; PFLIP1 generic set programs 0x2200->0x5; HPD1 hpd_ack polarity 0xffffffff->0xfffffffb; to_dal walk 168 covered / 0 VLINE0), then dal_irq_service_set(DC_IRQ_SOURCE_DC1_VLINE0) SIGSEGVs, EXIT=139 (deterministic, run.log + run.2.log). fixed: 0 NULL-funcs, dummy handlers log-and-return, EXIT=0." }, "artifacts": [ "README.md", "VERDICT.md", "dcn10_vline0gap.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "panic.txt", "env.txt", "fix.diff", "amd_fix_apply.log", "amdgpu_module_build.log", "fix_build.log", "fix_run.log", "manifest.json", "verdict.json" ] } |