DF-4840 / build_patched.sh
#!/bin/sh # DF-4840 fix validation (guest, root, inside /root/df4840) # 1. apply fix.diff to guest /usr/src/sys/dev/drm/drm_mode_object.c # 2. build patched drm.ko (module-only) # 3. load PATCHED drm.ko, then modeuaf.ko # 4. A/B: mode 5 (old, unlocked sequence) -> forced-interleave hits # mode 9 (fixed sequence: mode_config.mutex across find..read) -> 0 hits # mode 1 (real PATCHED ioctl) -> functional regression check set -e cd /root/df4840 echo "=== applying fix to /usr/src ===" cd /usr/src && patch -s -p1 --dry-run < /root/df4840/fix.diff && patch -s -p1 < /root/df4840/fix.diff && echo "patch applied" grep -n "mutex_lock(&dev->mode_config.mutex);" /usr/src/sys/dev/drm/drm_mode_object.c echo "=== building patched drm.ko ===" cd /usr/src/sys/dev/drm/drm && make clean >/dev/null 2>&1 || true make 2>&1 | tee /root/df4840/drm-build-patched.log | tail -3 ls -la drm.ko cp drm.ko /root/df4840/drm-patched.ko echo BUILD_ALL_OK |