brcm2708: update to v3.18
[15.05/openwrt.git] / target / linux / brcm2708 / patches-3.18 / 0044-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
1 From de30840b98e508ea9d650570686e35b1a64c900c Mon Sep 17 00:00:00 2001
2 From: popcornmix <popcornmix@gmail.com>
3 Date: Wed, 18 Jun 2014 13:42:01 +0100
4 Subject: [PATCH 044/114] vmstat: Workaround for issue where dirty page count
5  goes negative
6
7 See:
8 https://github.com/raspberrypi/linux/issues/617
9 http://www.spinics.net/lists/linux-mm/msg72236.html
10 ---
11  include/linux/vmstat.h | 4 ++++
12  1 file changed, 4 insertions(+)
13
14 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
15 index 82e7db7..f87d16d 100644
16 --- a/include/linux/vmstat.h
17 +++ b/include/linux/vmstat.h
18 @@ -241,7 +241,11 @@ static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
19  static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
20  {
21         atomic_long_dec(&zone->vm_stat[item]);
22 +       if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&zone->vm_stat[item]) < 0))
23 +               atomic_long_set(&zone->vm_stat[item], 0);
24         atomic_long_dec(&vm_stat[item]);
25 +       if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&vm_stat[item]) < 0))
26 +               atomic_long_set(&vm_stat[item], 0);
27  }
28  
29  static inline void __inc_zone_page_state(struct page *page,
30 -- 
31 1.8.3.2
32