⬢ DragonFlyBSD Kernel Audit
DF-4933 / run.log
← back to finding ↓ download raw
===== BASELINE (dce110_vblank_set verbatim) =====
== DF-4933 replica: dce110_vblank_set pipe_offset underflow ==
mode: BASELINE (kernel code verbatim)

enum: INVALID=0 VUPDATE1=72 VBLANK1=78 IRQ_TYPE_VBLANK=78
table: vupdate src_id=0 ext_id=0 | vblank1 src_id=19

control VBLANK1 set: armed pipe 0 (expected 0)
control VBLANK2 set: armed pipe 1 (expected 1)
control VBLANK3 set: armed pipe 2 (expected 2)
control VBLANK4 set: armed pipe 3 (expected 3)
control VBLANK5 set: armed pipe 4 (expected 4)
control VBLANK6 set: armed pipe 5 (expected 5)

trigger: dal_irq_service_set(DC_IRQ_SOURCE_VUPDATE1)
   pipe_offset = (uint8_t)(DC_IRQ_SOURCE_INVALID - IRQ_TYPE_VBLANK) = (uint8_t)(-78) = 178
   -> pipe_ctx[178] on a 6-entry array; tg = 0x5a5a5a5a5a5a5a5a (poison) -> tg->funcs->arm_vert_intr ...
Bus error (core dumped)
EXIT=138

===== FIXED =====
== DF-4933 replica: dce110_vblank_set pipe_offset underflow ==
mode: FIXED (pipe derived from table index)

enum: INVALID=0 VUPDATE1=72 VBLANK1=78 IRQ_TYPE_VBLANK=78
table: vupdate src_id=0 ext_id=0 | vblank1 src_id=19

control VBLANK1 set:    [fixed] source=78 -> pipe_offset=0
armed pipe 0 (expected 0)
control VBLANK2 set:    [fixed] source=79 -> pipe_offset=1
armed pipe 1 (expected 1)
control VBLANK3 set:    [fixed] source=80 -> pipe_offset=2
armed pipe 2 (expected 2)
control VBLANK4 set:    [fixed] source=81 -> pipe_offset=3
armed pipe 3 (expected 3)
control VBLANK5 set:    [fixed] source=82 -> pipe_offset=4
armed pipe 4 (expected 4)
control VBLANK6 set:    [fixed] source=83 -> pipe_offset=5
armed pipe 5 (expected 5)

trigger: dal_irq_service_set(DC_IRQ_SOURCE_VUPDATE1)
   pipe_offset = (uint8_t)(DC_IRQ_SOURCE_INVALID - IRQ_TYPE_VBLANK) = (uint8_t)(-78) = 178
   -> pipe_ctx[178] on a 6-entry array; tg = 0x5a5a5a5a5a5a5a5a (poison) -> tg->funcs->arm_vert_intr ...
   [fixed] source=72 -> pipe_offset=0

survived VUPDATE1 set
fixed VUPDATE2 set:    [fixed] source=73 -> pipe_offset=1
armed pipe 1 (expected 1)
fixed VUPDATE3 set:    [fixed] source=74 -> pipe_offset=2
armed pipe 2 (expected 2)
fixed VUPDATE4 set:    [fixed] source=75 -> pipe_offset=3
armed pipe 3 (expected 3)
fixed VUPDATE5 set:    [fixed] source=76 -> pipe_offset=4
armed pipe 4 (expected 4)
fixed VUPDATE6 set:    [fixed] source=77 -> pipe_offset=5
armed pipe 5 (expected 5)

RESULT: all VUPDATE/VBLANK sources arm the correct pipe
EXIT=0