about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-12-01 08:23:30 +0100
committeraszlig <aszlig@redmoonstudios.org>2015-12-01 08:23:30 +0100
commite8db99f5ebb299a362dab704e0d3cfcd89c86575 (patch)
treef7ccbac9da25378628724c7433a4010e8e402e27 /pkgs
parentbfa44bf19c6128cc92c0692c5e88de9a7c0bd9f1 (diff)
pkgs/bfqsched: Add patch for kernel 4.4.
The __GFP_WAIT macro has been renamed in torvalds/linux@71baba4 and
torvalds/linux@d0164ad introduced the gfpflags_allow_blocking() helper,
which we're going to use to avoid false positives.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/kpatches/bfqsched/default.nix1
-rw-r--r--pkgs/kpatches/bfqsched/kernel-4.4.patch22
2 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/kpatches/bfqsched/default.nix b/pkgs/kpatches/bfqsched/default.nix
index 8989f4b9..f71b7135 100644
--- a/pkgs/kpatches/bfqsched/default.nix
+++ b/pkgs/kpatches/bfqsched/default.nix
@@ -28,6 +28,7 @@ let
            + "${bfqVersion}-for-${kernelVersion}.0";
       sha256 = "178spkcwaz79rz8fb7h209grbgr2ca4lbgfmns4d43b7aiqhqhvp";
     })
+    ./kernel-4.4.patch
   ];
 
   patch = stdenv.mkDerivation {
diff --git a/pkgs/kpatches/bfqsched/kernel-4.4.patch b/pkgs/kpatches/bfqsched/kernel-4.4.patch
new file mode 100644
index 00000000..0001ec21
--- /dev/null
+++ b/pkgs/kpatches/bfqsched/kernel-4.4.patch
@@ -0,0 +1,22 @@
+diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
+index 71b51c1..1233eeb 100644
+--- a/block/bfq-iosched.c
++++ b/block/bfq-iosched.c
+@@ -3075,7 +3075,7 @@ retry:
+ 		if (new_bfqq != NULL) {
+ 			bfqq = new_bfqq;
+ 			new_bfqq = NULL;
+-		} else if (gfp_mask & __GFP_WAIT) {
++		} else if (gfpflags_allow_blocking(gfp_mask)) {
+ 			spin_unlock_irq(bfqd->queue->queue_lock);
+ 			new_bfqq = kmem_cache_alloc_node(bfq_pool,
+ 					gfp_mask | __GFP_ZERO,
+@@ -3574,7 +3574,7 @@ static int bfq_set_request(struct request_queue *q, struct request *rq,
+ 	unsigned long flags;
+ 	bool split = false;
+ 
+-	might_sleep_if(gfp_mask & __GFP_WAIT);
++	might_sleep_if(gfpflags_allow_blocking(gfp_mask));
+ 
+ 	bfq_check_ioprio_change(bic);
+