summaryrefslogtreecommitdiffstats
path: root/kernel-arm64.patch
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2014-07-04 11:16:04 -0400
committerJosh Boyer <jwboyer@fedoraproject.org>2014-07-04 11:16:04 -0400
commitbce53631efc093dab050449d765185898a0c4d2b (patch)
tree326ade99a489664a8c1c98527e4b9ba3eef733b1 /kernel-arm64.patch
parentccf8f201f84dd9579b81837f3dd8b949c9ddf3e0 (diff)
downloadkernel-bce53631efc093dab050449d765185898a0c4d2b.tar.gz
kernel-bce53631efc093dab050449d765185898a0c4d2b.tar.xz
kernel-bce53631efc093dab050449d765185898a0c4d2b.zip
Linux v3.16-rc3-149-g034a0f6b7db7
Diffstat (limited to 'kernel-arm64.patch')
-rw-r--r--kernel-arm64.patch87
1 files changed, 0 insertions, 87 deletions
diff --git a/kernel-arm64.patch b/kernel-arm64.patch
index 54c3c88a..05249a97 100644
--- a/kernel-arm64.patch
+++ b/kernel-arm64.patch
@@ -623,65 +623,6 @@ Date: Mon Jun 2 05:18:35 2014 -0700
Signed-off-by: Saurabh Tangri <saurabh.tangri@intel.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-commit 83a31f42054546344d10493a6edbd8ce1914c36b
-Author: Michal Nazarewicz <mina86@mina86.com>
-Date: Thu Jun 26 10:42:17 2014 +1000
-
- mm: page_alloc: fix CMA area initialisation when pageblock > MAX_ORDER
-
- With a kernel configured with ARM64_64K_PAGES && !TRANSPARENT_HUGEPAGE,
- the following is triggered at early boot:
-
- SMP: Total of 8 processors activated.
- devtmpfs: initialized
- Unable to handle kernel NULL pointer dereference at virtual address 00000008
- pgd = fffffe0000050000
- [00000008] *pgd=00000043fba00003, *pmd=00000043fba00003, *pte=00e0000078010407
- Internal error: Oops: 96000006 [#1] SMP
- Modules linked in:
- CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.15.0-rc864k+ #44
- task: fffffe03bc040000 ti: fffffe03bc080000 task.ti: fffffe03bc080000
- PC is at __list_add+0x10/0xd4
- LR is at free_one_page+0x270/0x638
- ...
- Call trace:
- [<fffffe00003ee970>] __list_add+0x10/0xd4
- [<fffffe000019c478>] free_one_page+0x26c/0x638
- [<fffffe000019c8c8>] __free_pages_ok.part.52+0x84/0xbc
- [<fffffe000019d5e8>] __free_pages+0x74/0xbc
- [<fffffe0000c01350>] init_cma_reserved_pageblock+0xe8/0x104
- [<fffffe0000c24de0>] cma_init_reserved_areas+0x190/0x1e4
- [<fffffe0000090418>] do_one_initcall+0xc4/0x154
- [<fffffe0000bf0a50>] kernel_init_freeable+0x204/0x2a8
- [<fffffe00007520a0>] kernel_init+0xc/0xd4
-
- This happens because init_cma_reserved_pageblock() calls __free_one_page()
- with pageblock_order as page order but it is bigger than MAX_ORDER. This
- in turn causes accesses past zone->free_list[].
-
- Fix the problem by changing init_cma_reserved_pageblock() such that it
- splits pageblock into individual MAX_ORDER pages if pageblock is bigger
- than a MAX_ORDER page.
-
- In cases where !CONFIG_HUGETLB_PAGE_SIZE_VARIABLE, which is all
- architectures expect for ia64, powerpc and tile at the moment, the
- “pageblock_order > MAX_ORDER” condition will be optimised out since
- both sides of the operator are constants. In cases where pageblock size
- is variable, the performance degradation should not be significant anyway
- since init_cma_reserved_pageblock() is called only at boot time at most
- MAX_CMA_AREAS times which by default is eight.
-
- Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
- Reported-by: Mark Salter <msalter@redhat.com>
- Tested-by: Mark Salter <msalter@redhat.com>
- Tested-by: Christopher Covington <cov@codeaurora.org>
- Cc: Mel Gorman <mgorman@suse.de>
- Cc: David Rientjes <rientjes@google.com>
- Cc: Marek Szyprowski <m.szyprowski@samsung.com>
- Cc: Catalin Marinas <catalin.marinas@arm.com>
- Cc: <stable@vger.kernel.org> [3.5+]
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-
commit 026545c8ed8737f6686036326a80498ae14d7fe5
Author: Suman Tripathi <stripathi@apm.com>
Date: Thu Jun 19 06:51:32 2014 -0400
@@ -7163,34 +7104,6 @@ index 0000000..9eac712
+#endif
+
+#endif
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 20d17f8..0ea758b 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -816,9 +816,21 @@ void __init init_cma_reserved_pageblock(struct page *page)
- set_page_count(p, 0);
- } while (++p, --i);
-
-- set_page_refcounted(page);
- set_pageblock_migratetype(page, MIGRATE_CMA);
-- __free_pages(page, pageblock_order);
-+
-+ if (pageblock_order >= MAX_ORDER) {
-+ i = pageblock_nr_pages;
-+ p = page;
-+ do {
-+ set_page_refcounted(p);
-+ __free_pages(p, MAX_ORDER - 1);
-+ p += MAX_ORDER_NR_PAGES;
-+ } while (i -= MAX_ORDER_NR_PAGES);
-+ } else {
-+ set_page_refcounted(page);
-+ __free_pages(page, pageblock_order);
-+ }
-+
- adjust_managed_page_count(page, pageblock_nr_pages);
- }
- #endif
diff --git a/tools/perf/arch/arm64/include/perf_regs.h b/tools/perf/arch/arm64/include/perf_regs.h
index e9441b9..1d3f39c 100644
--- a/tools/perf/arch/arm64/include/perf_regs.h