All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20130327004314.GH30540@8bytes.org>

diff --git a/a/1.txt b/N1/1.txt
index e8273d7..7afcc82 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -9,3 +9,55 @@ Changes since v1:
   built-in instead
 
 Here is the patch:
+
+>From 2b70502720b36909f9f39bdf27be21321a219c31 Mon Sep 17 00:00:00 2001
+From: Joerg Roedel <joro@8bytes.org>
+Date: Tue, 26 Mar 2013 23:24:22 +0100
+Subject: [PATCH v2] staging: zsmalloc: Fix link error on ARM
+
+Testing the arm chromebook config against the upstream
+kernel produces a linker error for the zsmalloc module from
+staging. The symbol flush_tlb_kernel_range is not available
+there. Fix this by removing the reimplementation of
+unmap_kernel_range in the zsmalloc module and using the
+function directly. The unmap_kernel_range function is not
+usable by modules, so also disallow building the driver as a
+module for now.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Joerg Roedel <joro@8bytes.org>
+---
+ drivers/staging/zsmalloc/Kconfig         |    2 +-
+ drivers/staging/zsmalloc/zsmalloc-main.c |    5 +----
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/staging/zsmalloc/Kconfig b/drivers/staging/zsmalloc/Kconfig
+index 9084565..7fab032 100644
+--- a/drivers/staging/zsmalloc/Kconfig
++++ b/drivers/staging/zsmalloc/Kconfig
+@@ -1,5 +1,5 @@
+ config ZSMALLOC
+-	tristate "Memory allocator for compressed pages"
++	bool "Memory allocator for compressed pages"
+ 	default n
+ 	help
+ 	  zsmalloc is a slab-based memory allocator designed to store
+diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c
+index e78d262..324e123 100644
+--- a/drivers/staging/zsmalloc/zsmalloc-main.c
++++ b/drivers/staging/zsmalloc/zsmalloc-main.c
+@@ -656,11 +656,8 @@ static inline void __zs_unmap_object(struct mapping_area *area,
+ 				struct page *pages[2], int off, int size)
+ {
+ 	unsigned long addr = (unsigned long)area->vm_addr;
+-	unsigned long end = addr + (PAGE_SIZE * 2);
+ 
+-	flush_cache_vunmap(addr, end);
+-	unmap_kernel_range_noflush(addr, PAGE_SIZE * 2);
+-	flush_tlb_kernel_range(addr, end);
++	unmap_kernel_range(addr, PAGE_SIZE * 2);
+ }
+ 
+ #else /* USE_PGTABLE_MAPPING */
+-- 
+1.7.9.5
diff --git a/a/content_digest b/N1/content_digest
index 3ea5f9f..ecb3b0f 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -20,6 +20,58 @@
  "* Remove the module-export for unmap_kernel_range and make zsmalloc\n"
  "  built-in instead\n"
  "\n"
- Here is the patch:
+ "Here is the patch:\n"
+ "\n"
+ ">From 2b70502720b36909f9f39bdf27be21321a219c31 Mon Sep 17 00:00:00 2001\n"
+ "From: Joerg Roedel <joro@8bytes.org>\n"
+ "Date: Tue, 26 Mar 2013 23:24:22 +0100\n"
+ "Subject: [PATCH v2] staging: zsmalloc: Fix link error on ARM\n"
+ "\n"
+ "Testing the arm chromebook config against the upstream\n"
+ "kernel produces a linker error for the zsmalloc module from\n"
+ "staging. The symbol flush_tlb_kernel_range is not available\n"
+ "there. Fix this by removing the reimplementation of\n"
+ "unmap_kernel_range in the zsmalloc module and using the\n"
+ "function directly. The unmap_kernel_range function is not\n"
+ "usable by modules, so also disallow building the driver as a\n"
+ "module for now.\n"
+ "\n"
+ "Cc: stable@vger.kernel.org\n"
+ "Signed-off-by: Joerg Roedel <joro@8bytes.org>\n"
+ "---\n"
+ " drivers/staging/zsmalloc/Kconfig         |    2 +-\n"
+ " drivers/staging/zsmalloc/zsmalloc-main.c |    5 +----\n"
+ " 2 files changed, 2 insertions(+), 5 deletions(-)\n"
+ "\n"
+ "diff --git a/drivers/staging/zsmalloc/Kconfig b/drivers/staging/zsmalloc/Kconfig\n"
+ "index 9084565..7fab032 100644\n"
+ "--- a/drivers/staging/zsmalloc/Kconfig\n"
+ "+++ b/drivers/staging/zsmalloc/Kconfig\n"
+ "@@ -1,5 +1,5 @@\n"
+ " config ZSMALLOC\n"
+ "-\ttristate \"Memory allocator for compressed pages\"\n"
+ "+\tbool \"Memory allocator for compressed pages\"\n"
+ " \tdefault n\n"
+ " \thelp\n"
+ " \t  zsmalloc is a slab-based memory allocator designed to store\n"
+ "diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c\n"
+ "index e78d262..324e123 100644\n"
+ "--- a/drivers/staging/zsmalloc/zsmalloc-main.c\n"
+ "+++ b/drivers/staging/zsmalloc/zsmalloc-main.c\n"
+ "@@ -656,11 +656,8 @@ static inline void __zs_unmap_object(struct mapping_area *area,\n"
+ " \t\t\t\tstruct page *pages[2], int off, int size)\n"
+ " {\n"
+ " \tunsigned long addr = (unsigned long)area->vm_addr;\n"
+ "-\tunsigned long end = addr + (PAGE_SIZE * 2);\n"
+ " \n"
+ "-\tflush_cache_vunmap(addr, end);\n"
+ "-\tunmap_kernel_range_noflush(addr, PAGE_SIZE * 2);\n"
+ "-\tflush_tlb_kernel_range(addr, end);\n"
+ "+\tunmap_kernel_range(addr, PAGE_SIZE * 2);\n"
+ " }\n"
+ " \n"
+ " #else /* USE_PGTABLE_MAPPING */\n"
+ "-- \n"
+ 1.7.9.5
 
-66a7f1e5d7c9078c3caf68861f6d336ad985364f50bba5408d3d8ef5d72e1b52
+0d63ed2cc1960ccc2d0fd8c5464bb8717964a59e7be0768b58f210951e13d083

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.