Skip to contentSkip to conversation

mm/zsmalloc: Use get/put_cpu_light in zs_map_object()/zs_unmap_object()

PATCH Applied Mike Galbraith 2 participants 3 messages Mar 22, 2016 – Mar 29, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mm/zsmalloc: Use get/put_cpu_light in zs_map_object()/zs_unmap_object()

Otherwise, we get a ___might_sleep() splat.

---
 mm/zsmalloc.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
mm/zsmalloc.c +2 -2
@@ -1292,7 +1292,7 @@ void *zs_map_object(struct zs_pool *pool
 	class = pool->size_class[class_idx];
 	off = obj_idx_to_offset(page, obj_idx, class->size);
 
-	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
 
 		__zs_unmap_object(area, pages, off, class->size);
 	}
-	put_cpu_var(zs_map_area);
+	put_cpu_light();
 	unpin_tag(handle);
 }
 EXPORT_SYMBOL_GPL(zs_unmap_object);
#2 lore raw
Quoted 5 lines · Sebastian Andrzej Siewior
Quoted 1 line · * Mike Galbraith | 2016-03-22 11:16:09 [+0100]:

Otherwise, we get a ___might_sleep() splat.

Applied. A backtrace would be nice …

Ugh, I elided it because I thought it didn't add any meat. The cleaning lady (/me) binned it, but can re-create if really needed.

-Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html