aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-09 18:35:23 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-06-09 01:39:06 +0200
commitd9d71007dd19ab2a16a4c95921daa3c9340a562b (patch)
treef50b9c89fc96be420b86972b6789962b30867fdb
parent825b3f0d3e7b75d58be08afc7aebefc6231bcff4 (diff)
downloadkernel_samsung_espresso10-d9d71007dd19ab2a16a4c95921daa3c9340a562b.tar.gz
kernel_samsung_espresso10-d9d71007dd19ab2a16a4c95921daa3c9340a562b.tar.bz2
kernel_samsung_espresso10-d9d71007dd19ab2a16a4c95921daa3c9340a562b.zip
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 4a0d77f0f33..d3d1954e138 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -770,6 +770,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
*/
@@ -1017,6 +1018,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