Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.12.patch Credit to Larry Finger Index: NVIDIA-Linux-x86_64-390.141-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c =================================================================== --- NVIDIA-Linux-x86_64-390.141-no-compat32.orig/kernel/nvidia-drm/nvidia-drm-drv.c +++ NVIDIA-Linux-x86_64-390.141-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c @@ -741,6 +741,17 @@ static struct drm_driver nv_drm_driver = #endif }; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0) +/* Starting with kernel 5.12, drm_gem_dumb_destroy() is no longer exported. + * For that reason, we need to supply a replacement version. + */ +int replace_dumb_destroy(struct drm_file *file, + struct drm_device *dev, + u32 handle) +{ + return drm_gem_handle_delete(file, handle); +} +#endif /* * Update the global nv_drm_driver for the intended features. @@ -764,7 +775,11 @@ static void nv_drm_update_drm_driver_fea nv_drm_driver.dumb_create = nv_drm_dumb_create; nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset; +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 12, 0) nv_drm_driver.dumb_destroy = drm_gem_dumb_destroy; +#else + nv_drm_driver.dumb_destroy = replace_dumb_destroy; +#endif #endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ }