diff for duplicates of <20130326234703.GF30540@8bytes.org> diff --git a/a/1.txt b/N1/1.txt index 9613961..477287b 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1 +1,51 @@ (Sending again with the zsmalloc driver writers on the list) + +>From c8530ea21e65c21d27882fa334145c347b9a024b Mon Sep 17 00:00:00 2001 +From: Joerg Roedel <joro@8bytes.org> +Date: Tue, 26 Mar 2013 23:24:22 +0100 +Subject: [PATCH] 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. + +Signed-off-by: Joerg Roedel <joro@8bytes.org> +--- + drivers/staging/zsmalloc/zsmalloc-main.c | 5 +---- + mm/vmalloc.c | 1 + + 2 files changed, 2 insertions(+), 4 deletions(-) + +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 */ +diff --git a/mm/vmalloc.c b/mm/vmalloc.c +index 0f751f2..f7cba11 100644 +--- a/mm/vmalloc.c ++++ b/mm/vmalloc.c +@@ -1266,6 +1266,7 @@ void unmap_kernel_range(unsigned long addr, unsigned long size) + vunmap_page_range(addr, end); + flush_tlb_kernel_range(addr, end); + } ++EXPORT_SYMBOL_GPL(unmap_kernel_range); + + int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages) + { +-- +1.7.9.5 diff --git a/a/content_digest b/N1/content_digest index bfa00bc..116ff00 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -12,6 +12,56 @@ " linux-mm@kvack.org\0" "\00:1\0" "b\0" - (Sending again with the zsmalloc driver writers on the list) + "(Sending again with the zsmalloc driver writers on the list)\n" + "\n" + ">From c8530ea21e65c21d27882fa334145c347b9a024b 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] 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.\n" + "\n" + "Signed-off-by: Joerg Roedel <joro@8bytes.org>\n" + "---\n" + " drivers/staging/zsmalloc/zsmalloc-main.c | 5 +----\n" + " mm/vmalloc.c | 1 +\n" + " 2 files changed, 2 insertions(+), 4 deletions(-)\n" + "\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" + "diff --git a/mm/vmalloc.c b/mm/vmalloc.c\n" + "index 0f751f2..f7cba11 100644\n" + "--- a/mm/vmalloc.c\n" + "+++ b/mm/vmalloc.c\n" + "@@ -1266,6 +1266,7 @@ void unmap_kernel_range(unsigned long addr, unsigned long size)\n" + " \tvunmap_page_range(addr, end);\n" + " \tflush_tlb_kernel_range(addr, end);\n" + " }\n" + "+EXPORT_SYMBOL_GPL(unmap_kernel_range);\n" + " \n" + " int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages)\n" + " {\n" + "-- \n" + 1.7.9.5 -24e08732b3a8282ba9c91c02ac85eae0608c037bc0ddd3f223d97115c1242119 +cdbb4b738bd26c7778c5b999ad0cf1e6f950ff24a628bfa6e88d08010add7993
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.