DF-5054 / manifest.json
{ "finding_id": "DF-5054", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "root_cause": "irq_source_info_dce80[DAL_IRQ_SOURCES_NUMBER=90] has designators covering exactly 0..83 (last: vblank_int_entry(5)==DC_IRQ_SOURCE_VBLANK6, irq_service_dce80.c:273); 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-2168/DF-4932 (dce110) / DF-4995 (dcn10) family instance on the DCE80 (Sea Islands) table", "kernel_refs": [ "sys/dev/drm/amd/display/dc/irq/dce80/irq_service_dce80.c:188", "sys/dev/drm/amd/display/dc/irq/dce80/irq_service_dce80.c:273", "sys/dev/drm/amd/display/dc/irq/dce80/irq_service_dce80.c:277", "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/core/dc.c:1687", "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c:353", "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c:3014" ], "reproduce": { "build": "sh build.sh # cc -O2 -Wall -std=gnu11 [-DFIX_DF5054] 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->1; HPD1 dce80 hpd_ack polarity 0xffffffff->0xfffffffb; 256x13 to_dal sweep: 0 VLINE0 returns -> latent), then dal_irq_service_set(DC_IRQ_SOURCE_DC1_VLINE0) SIGSEGVs, EXIT=139 (deterministic x2, run.log + run.2.log). fixed: 0 NULL-funcs, dummy handlers log-and-return, EXIT=0; plus full -Werror amdgpu.ko rebuild with fix.diff RC=0 (amdgpu_module_build.log)." }, "artifacts": [ "README.md", "VERDICT.md", "dce80_vline0gap.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "env.txt", "fix.diff", "amd_fix_apply.log", "amdgpu_module_build.log", "manifest.json", "verdict.json" ] } |