MALI: rockchip: upgrade DDK to r8p0-02rel0.
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / arm / midgard / mali_kbase_mem_pool.c
index a049205d0e90d3b6b531e412948fc8876d319b95..153cd4efac49f2b6f70c8960eeb202913647cd5e 100644 (file)
 #include <linux/atomic.h>
 #include <linux/version.h>
 
-/* Backwards compatibility with kernels using the old carveout allocator */
+/* This function is only provided for backwards compatibility with kernels
+ * which use the old carveout allocator.
+ *
+ * The forward declaration is to keep sparse happy.
+ */
+int __init kbase_carveout_mem_reserve(
+               phys_addr_t size);
 int __init kbase_carveout_mem_reserve(phys_addr_t size)
 {
        return 0;
@@ -73,6 +79,8 @@ static void kbase_mem_pool_add_locked(struct kbase_mem_pool *pool,
        list_add(&p->lru, &pool->page_list);
        pool->cur_size++;
 
+       zone_page_state_add(1, page_zone(p), NR_SLAB_RECLAIMABLE);
+
        pool_dbg(pool, "added page\n");
 }
 
@@ -86,8 +94,14 @@ static void kbase_mem_pool_add(struct kbase_mem_pool *pool, struct page *p)
 static void kbase_mem_pool_add_list_locked(struct kbase_mem_pool *pool,
                struct list_head *page_list, size_t nr_pages)
 {
+       struct page *p;
+
        lockdep_assert_held(&pool->pool_lock);
 
+       list_for_each_entry(p, page_list, lru) {
+               zone_page_state_add(1, page_zone(p), NR_SLAB_RECLAIMABLE);
+       }
+
        list_splice(page_list, &pool->page_list);
        pool->cur_size += nr_pages;
 
@@ -115,6 +129,8 @@ static struct page *kbase_mem_pool_remove_locked(struct kbase_mem_pool *pool)
        list_del_init(&p->lru);
        pool->cur_size--;
 
+       zone_page_state_add(-1, page_zone(p), NR_SLAB_RECLAIMABLE);
+
        pool_dbg(pool, "removed page\n");
 
        return p;