#include <linux/sort.h>
 #include <linux/fs.h>
 #include <linux/seq_file.h>
-#include <linux/vmalloc.h>
 #include <linux/vmpressure.h>
 #include <linux/mm_inline.h>
 #include <linux/page_cgroup.h>
        /* WARNING: nodeinfo must be the last member here */
 };
 
-static size_t memcg_size(void)
-{
-       return sizeof(struct mem_cgroup) +
-               nr_node_ids * sizeof(struct mem_cgroup_per_node *);
-}
-
 /* internal only representation about the status of kmem accounting. */
 enum {
        KMEM_ACCOUNTED_ACTIVE = 0, /* accounted by this cgroup itself */
 static struct mem_cgroup *mem_cgroup_alloc(void)
 {
        struct mem_cgroup *memcg;
-       size_t size = memcg_size();
+       size_t size;
 
-       /* Can be very big if nr_node_ids is very big */
-       if (size < PAGE_SIZE)
-               memcg = kzalloc(size, GFP_KERNEL);
-       else
-               memcg = vzalloc(size);
+       size = sizeof(struct mem_cgroup);
+       size += nr_node_ids * sizeof(struct mem_cgroup_per_node *);
 
+       memcg = kzalloc(size, GFP_KERNEL);
        if (!memcg)
                return NULL;
 
        return memcg;
 
 out_free:
-       if (size < PAGE_SIZE)
-               kfree(memcg);
-       else
-               vfree(memcg);
+       kfree(memcg);
        return NULL;
 }
 
 static void __mem_cgroup_free(struct mem_cgroup *memcg)
 {
        int node;
-       size_t size = memcg_size();
 
        mem_cgroup_remove_from_trees(memcg);
 
         * the cgroup_lock.
         */
        disarm_static_keys(memcg);
-       if (size < PAGE_SIZE)
-               kfree(memcg);
-       else
-               vfree(memcg);
+       kfree(memcg);
 }
 
 /*