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 09:58:29 +0200
commitdd812a93fcb8fd6cb65df65d4b21fd5c63435160 (patch)
tree4858ff75da42a961f0a336dde43188b364be39e3
parent19dc58fb6a5634c1293f226563d5f3626fac49e2 (diff)
downloadkernel_samsung_tuna-dd812a93fcb8fd6cb65df65d4b21fd5c63435160.tar.gz
kernel_samsung_tuna-dd812a93fcb8fd6cb65df65d4b21fd5c63435160.tar.bz2
kernel_samsung_tuna-dd812a93fcb8fd6cb65df65d4b21fd5c63435160.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