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.