aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-09 18:35:23 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-07-24 12:28:04 +0200
commitd883c28eac2fc77a4df91678f558ef32d1e4bc0e (patch)
tree3a1960043a489587d9d21273dc4c0eb8b74eb673
parent2e0f16e5748aa1232dfcc9d55d7d21bb9de67470 (diff)
downloadkernel_samsung_smdk4412-d883c28eac2fc77a4df91678f558ef32d1e4bc0e.zip
kernel_samsung_smdk4412-d883c28eac2fc77a4df91678f558ef32d1e4bc0e.tar.gz
kernel_samsung_smdk4412-d883c28eac2fc77a4df91678f558ef32d1e4bc0e.tar.bz2
mm: Disable optimization for function shrink_page_list()
GCC version 5.4.1+svn241155-1 in Debian Stretch has a bug that breaks the build. The error is attached. TODO: Gigure out the actual bug or revert patch if a newer GCC is available in Stretch. /home/wolfi/6.0-romsrc/kernel/samsung/smdk4412/mm/vmscan.c: In function 'shrink_page_list': /home/wolfi/6.0-romsrc/kernel/samsung/smdk4412/mm/vmscan.c:1019:1: error: insn does not satisfy its constraints: } ^ (insn 1111 1814 1112 116 (parallel [ (set (reg/v:SI 3 r3 [orig:111 nr_dirty ] [111]) (and:SI (ne:SI (reg/v:SI 3 r3 [orig:111 nr_dirty ] [111]) (const_int 0 [0])) (eq:SI (reg/v:SI 3 r3 [orig:111 nr_dirty ] [111]) (reg/v:SI 2 r2 [orig:112 nr_congested ] [112])))) (clobber (reg:CC 100 cc)) ]) /home/wolfi/6.0-romsrc/kernel/samsung/smdk4412/mm/vmscan.c:1011 256 {*and_scc_scc_nodom} (nil)) /home/wolfi/6.0-romsrc/kernel/samsung/smdk4412/mm/vmscan.c:1019:1: internal compiler error: in extract_constrain_insn, at recog.c:2246 /home/wolfi/6.0-romsrc/kernel/samsung/smdk4412/mm/vmscan.c:1019:1: internal compiler error: Segmentation fault arm-none-eabi-gcc: internal compiler error: Segmentation fault (program cc1) Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
-rw-r--r--mm/vmscan.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 0d1eb7e..ce6e2e5 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -771,6 +771,7 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages)
pagevec_free(&freed_pvec);
}
+#pragma GCC optimize ("O0")
/*
* shrink_page_list() returns the number of reclaimed pages
*/
@@ -1018,6 +1019,7 @@ keep_lumpy:
count_vm_events(PGACTIVATE, pgactivate);
return nr_reclaimed;
}
+#pragma GCC reset_options
/*
* Attempt to remove the specified page from its LRU. Only take this page