about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2023-05-15 20:29:07 +0200
committerRobert Hensing <robert@roberthensing.nl>2023-05-15 20:32:57 +0200
commit81bc5f3db8f9ba812836036d5d3e54e933ca2cd6 (patch)
tree1cc7d4020a09caea806990e908076eb13239cce3
parent4633d9cf38f770a58e67c764c1ed656a2aa2b006 (diff)
pkgs/linux: Vendor maple tree patch
Fetching from a maintainer tree can be unreliable as commits or
even repos may be removed.
-rw-r--r--pkgs/os-specific/linux/kernel/make-maple-state-reusable-after-mas_empty_area.patch21
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix9
2 files changed, 24 insertions, 6 deletions
diff --git a/pkgs/os-specific/linux/kernel/make-maple-state-reusable-after-mas_empty_area.patch b/pkgs/os-specific/linux/kernel/make-maple-state-reusable-after-mas_empty_area.patch
new file mode 100644
index 0000000000000..47e1bbbd5a68d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/make-maple-state-reusable-after-mas_empty_area.patch
@@ -0,0 +1,21 @@
+--- a/lib/maple_tree.c
++++ b/lib/maple_tree.c
+@@ -5317,15 +5317,9 @@
+ 
+ 	mt = mte_node_type(mas->node);
+ 	pivots = ma_pivots(mas_mn(mas), mt);
+-	if (offset)
+-		mas->min = pivots[offset - 1] + 1;
+-
+-	if (offset < mt_pivots[mt])
+-		mas->max = pivots[offset];
+-
+-	if (mas->index < mas->min)
+-		mas->index = mas->min;
+-
++	min = mas_safe_min(mas, pivots, offset);
++	if (mas->index < min)
++		mas->index = min;
+ 	mas->last = mas->index + size - 1;
+ 	return 0;
+ }
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 3a76ed2d08823..2330db4e68c39 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -58,13 +58,10 @@
     patch = ./export-rt-sched-migrate.patch;
   };
 
-  make-maple-state-reusable-after-mas_empty_area = rec {
+  # https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/patch/?id=39bf07d812b888b23983a9443ad967ca9b61551d
+  make-maple-state-reusable-after-mas_empty_area = {
     name = "make-maple-state-reusable-after-mas_empty_area";
-    patch = fetchpatch {
-      name = name + ".patch";
-      url = "https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/patch/?id=39bf07d812b888b23983a9443ad967ca9b61551d";
-      hash = "sha256-JHEFq+Gw8Dtl0M8pXcKXpwkaHhbbl5NwTSzvV5qP4hk=";
-    };
+    patch = ./make-maple-state-reusable-after-mas_empty_area.patch;
   };
 
   fix-em-ice-bonding = {