diff --git a/hosts/framenix/0001-drm-buddy-Improve-alloc_range-error-handling-routine.patch b/hosts/framenix/0001-drm-buddy-Improve-alloc_range-error-handling-routine.patch deleted file mode 100644 index cc0d4a0..0000000 --- a/hosts/framenix/0001-drm-buddy-Improve-alloc_range-error-handling-routine.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6e77e6de7582f35138fa1c7523268602ecb2e0a0 Mon Sep 17 00:00:00 2001 -From: Arunpravin Paneer Selvam -Date: Tue, 6 Feb 2024 10:39:24 -0800 -Subject: [PATCH] drm/buddy: Improve alloc_range error handling routine - -If alloc_range() couldn't allocate the requuired size, -return -ENOSPC. - -Signed-off-by: Arunpravin Paneer Selvam ---- - drivers/gpu/drm/drm_buddy.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c -index f57e6d74fb0e..d5aba6392da0 100644 ---- a/drivers/gpu/drm/drm_buddy.c -+++ b/drivers/gpu/drm/drm_buddy.c -@@ -483,9 +483,9 @@ static int __alloc_range(struct drm_buddy *mm, - struct list_head *blocks, - u64 *total_allocated_on_err) - { -+ u64 total_allocated = 0, allocated_size = 0; - struct drm_buddy_block *block; - struct drm_buddy_block *buddy; -- u64 total_allocated = 0; - LIST_HEAD(allocated); - u64 end; - int err; -@@ -539,6 +539,15 @@ static int __alloc_range(struct drm_buddy *mm, - } while (1); - - list_splice_tail(&allocated, blocks); -+ -+ list_for_each_entry(block, blocks, link) -+ allocated_size += drm_buddy_block_size(mm, block); -+ -+ if (allocated_size < size) { -+ err = -ENOSPC; -+ goto err_free; -+ } -+ - return 0; - - err_undo: --- -2.25.1 - diff --git a/hosts/framenix/default.nix b/hosts/framenix/default.nix index aac198a..81295a2 100644 --- a/hosts/framenix/default.nix +++ b/hosts/framenix/default.nix @@ -33,8 +33,11 @@ in # revert some commits that introduced the clourful graphics artefacts flickering, # at least that's the current working hypothesis in https://gitlab.freedesktop.org/drm/amd/-/issues/3097 boot.kernelPatches = [ - {name = "patch attempt from https://gitlab.freedesktop.org/drm/amd/-/issues/3097#note_2271482"; - patch = ./0001-drm-buddy-Improve-alloc_range-error-handling-routine.patch; + {name = "drm/buddy: Fix alloc_range() error handling code"; + patch = pkgs.fetchpatch { + url = "https://cgit.freedesktop.org/drm/drm-misc/patch/?id=8746c6c9dfa31d269c65dd52ab42fde0720b7d91"; + hash = "sha256-Ir7TDLspbYilTJr6aVVb8urIYI2N2vZwI5ayp7laaGw="; + }; } ]; # fix freezes after s2idle suspend-resume