framenix kernel: update and pull graphics fix patch from git

This commit is contained in:
Trolli Schmittlauch 2024-02-17 03:11:59 +01:00
parent d46efe181f
commit 5cedb5444a
2 changed files with 5 additions and 49 deletions

View file

@ -1,47 +0,0 @@
From 6e77e6de7582f35138fa1c7523268602ecb2e0a0 Mon Sep 17 00:00:00 2001
From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
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 <Arunpravin.PaneerSelvam@amd.com>
---
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

View file

@ -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