summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-02-11 10:17:55 +0000
committerJohn Crispin <john@openwrt.org>2015-02-11 10:17:55 +0000
commit408c9696264f8e25e4e4f6410e93d2edd06e59dd (patch)
tree1c9e8fbacb1508e8561c43f87389edf02cfb0955 /target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
parentf90d9d486a8842077e68e90bba2b276ac1336bab (diff)
downloadmtk-20170518-408c9696264f8e25e4e4f6410e93d2edd06e59dd.zip
mtk-20170518-408c9696264f8e25e4e4f6410e93d2edd06e59dd.tar.gz
mtk-20170518-408c9696264f8e25e4e4f6410e93d2edd06e59dd.tar.bz2
brcm2708: update to v3.18
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> SVN-Revision: 44392
Diffstat (limited to 'target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch')
-rwxr-xr-xtarget/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch b/target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
new file mode 100755
index 0000000..4826a87
--- /dev/null
+++ b/target/linux/brcm2708/patches-3.18/0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
@@ -0,0 +1,32 @@
+From de30840b98e508ea9d650570686e35b1a64c900c Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Wed, 18 Jun 2014 13:42:01 +0100
+Subject: [PATCH 044/114] vmstat: Workaround for issue where dirty page count
+ goes negative
+
+See:
+https://github.com/raspberrypi/linux/issues/617
+http://www.spinics.net/lists/linux-mm/msg72236.html
+---
+ include/linux/vmstat.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
+index 82e7db7..f87d16d 100644
+--- a/include/linux/vmstat.h
++++ b/include/linux/vmstat.h
+@@ -241,7 +241,11 @@ static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
+ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
+ {
+ atomic_long_dec(&zone->vm_stat[item]);
++ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&zone->vm_stat[item]) < 0))
++ atomic_long_set(&zone->vm_stat[item], 0);
+ atomic_long_dec(&vm_stat[item]);
++ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&vm_stat[item]) < 0))
++ atomic_long_set(&vm_stat[item], 0);
+ }
+
+ static inline void __inc_zone_page_state(struct page *page,
+--
+1.8.3.2
+