{
  "finding_id": "DF-5183",
  "manifest_version": 1,
  "verdict": "reproduced",
  "impact": "dos",
  "title": "wait_on_bit_timeout() passes Linux TASK_* mode as tsleep flags (TASK_INTERRUPTIBLE never maps to PCATCH -> unkillable 'interruptible' waits) and truncates the unsigned long timeout to int at the tsleep boundary (MAX_SCHEDULE_TIMEOUT -> -1 -> 1-tick callout -> 'infinite' waits are 1 Hz polls)",
  "reproduce": {
    "build": "cd /root/lwqdemo && make SYSDIR=/usr/src/sys   # same module as DF-5182",
    "run": "kldload ./lwqdemo.ko && sleep 8 && dmesg | grep LWQ-F3",
    "expected": "LWQ-F3: tsleep(timo=(int)MAX_SCHEDULE_TIMEOUT=-1) returned rv=35 after 2 ticks with NO waker  |  LWQ-F3: wait_on_bit_timeout(MAX_SCHEDULE_TIMEOUT) on a set bit returned rv=0 after 396 ticks (exits only via the bit clear)"
  },
  "kernel_refs": [
    "sys/dev/drm/linux_wait.c:105",
    "sys/dev/drm/linux_wait.c:114",
    "sys/dev/drm/linux_wait.c:118",
    "sys/dev/drm/linux_wait.c:141",
    "sys/dev/drm/linux_wait.c:143",
    "sys/dev/drm/include/linux/sched.h:72",
    "sys/dev/drm/include/linux/sched.h:78",
    "sys/sys/param.h:324",
    "sys/kern/kern_timeout.c:971"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "lwqdemo.c", "Makefile", "build.log",
    "run.log", "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}
