Why
The reason is that in some places in the DRM drivers (in particular, the framebuffer management code), kmalloc() is called from a non-sleepable context, such as after a call to mtx_lock(8) with an MTX_DEF mutex.
If GFP_KERNEL is defined as M_WAITOK, we hit an assertion from witness(4).
How
The definition of GFP_KERNEL is changed to M_NOWAIT. This means that callers should verify the return value of kmalloc(). Fortunately, this is always the case in Linux.
This is required by the proposed new DRM/vt(4) integration (https://github.com/freebsd/drm-kmod/pull/243).