nixpkgs/pkgs/os-specific/linux/spl/kernel-3.16.patch

35 lines
1.3 KiB
Diff
Raw Normal View History

From e3020723dc43af2bc22af0d68571a61daf9b44d0 Mon Sep 17 00:00:00 2001
From: Turbo Fredriksson <turbo@bayour.com>
Date: Sun, 14 Sep 2014 15:47:22 +0000
Subject: [PATCH] Linux 3.16 compat: smp_mb__after_clear_bit()
The smp_mb__{before,after}_clear_bit functions have been renamed
smp_mb__{before,after}_atomic. Rather than adding a compatibility
function to handle this the code has been updated to use smp_wmb().
This has the advantage of being a stable functionally equivalent
interface. On many architectures smp_mb__after_clear_bit() expands
to smp_wmb(). Others might be able to do something slightly more
efficient but this will be safe and correct on all of them.
Signed-off-by: Turbo Fredriksson <turbo@bayour.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #386
---
module/spl/spl-kmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c
index 6de513e..79954eb 100644
--- a/module/spl/spl-kmem.c
+++ b/module/spl/spl-kmem.c
@@ -2365,7 +2365,7 @@ spl_kmem_cache_reap_now(spl_kmem_cache_t *skc, int count)
spl_slab_reclaim(skc, count, 1);
clear_bit(KMC_BIT_REAPING, &skc->skc_flags);
- smp_mb__after_clear_bit();
+ smp_wmb();
wake_up_bit(&skc->skc_flags, KMC_BIT_REAPING);
out:
atomic_dec(&skc->skc_ref);