⬢ DragonFlyBSD Kernel Audit
DF-3901 / skl_dram_probe.c
← back to finding ↓ download raw
/*
 * DF-3901 probe (hardware-only). On a single-channel-memory SKYLAKE/KABYLAKE
 * machine, intel_get_dram_info() consumes uninitialized ch0/ch1 stack when
 * one MAD_DIMM channel register reads blank. Userspace can only observe the
 * *symptoms* (wm-level underrun counter via debugfs
 * i915_drpc_info/i915_interrupt_info region underflows). This probe merely
 * proves reachability of the driver on the running box and dumps what the
 * kernel chose (via I915_GETPARAM-compatible surface where available).
 */
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main(void) {
    int fd = open("/dev/dri/renderD128", O_RDONLY);
    if (fd < 0) { printf("no render node (expected on non-i915 guest)\n"); return 1; }
    printf("render node present; dram_info consumption happens at driver "
           "load: check dmesg for 'Number of memory channels' vs physical "
           "single-channel config and observe display underruns\n");
    close(fd);
    return 0;
}