summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-04 22:27:01 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-04 22:27:01 -0400
commitd0de6e4cb45053d5b4aa4ad75b37e440ca1b9510 (patch)
tree2628b71edb85ec064ac694d30254745c09cc49a6
parent1d0972e8241850caa2cdb2341855e10d678ccc56 (diff)
download4.8-rt-patches-d0de6e4cb45053d5b4aa4ad75b37e440ca1b9510.tar.gz
mm: zsmalloc refresh
-rw-r--r--patches/mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch19
1 files changed, 11 insertions, 8 deletions
diff --git a/patches/mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch b/patches/mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch
index d3b55e4c8a67a6..aa37ce66e7a828 100644
--- a/patches/mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch
+++ b/patches/mm-zsmalloc-Use-get-put_cpu_light-in-zs_map_object-z.patch
@@ -1,3 +1,4 @@
+From be4ae7542332259c9551a10c7bf88c48a3f47432 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Tue, 22 Mar 2016 11:16:09 +0100
Subject: [PATCH] mm/zsmalloc: Use get/put_cpu_light in
@@ -7,27 +8,29 @@ Otherwise, we get a ___might_sleep() splat.
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- mm/zsmalloc.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
+index 04176de6df70..fd40d6a68508 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
-@@ -1292,7 +1292,7 @@ void *zs_map_object(struct zs_pool *pool
+@@ -1434,7 +1434,7 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle,
class = pool->size_class[class_idx];
- off = obj_idx_to_offset(page, obj_idx, class->size);
+ off = (class->size * obj_idx) & ~PAGE_MASK;
- area = &get_cpu_var(zs_map_area);
+ area = per_cpu_ptr(&zs_map_area, get_cpu_light());
area->vm_mm = mm;
if (off + class->size <= PAGE_SIZE) {
/* this object is contained entirely within a page */
-@@ -1345,7 +1345,7 @@ void zs_unmap_object(struct zs_pool *poo
+@@ -1488,7 +1488,7 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle)
__zs_unmap_object(area, pages, off, class->size);
}
- put_cpu_var(zs_map_area);
+ put_cpu_light();
+
+ migrate_read_unlock(zspage);
unpin_tag(handle);
- }
- EXPORT_SYMBOL_GPL(zs_unmap_object);
+--
+2.5.0
+