x86,mm: fix pte_special versus pte_numa
[cascardo/linux.git] / mm / hugetlb_cgroup.c
index 9aae6f4..a67c26e 100644 (file)
@@ -217,7 +217,7 @@ void hugetlb_cgroup_uncharge_page(int idx, unsigned long nr_pages,
 
        if (hugetlb_cgroup_disabled())
                return;
-       VM_BUG_ON(!spin_is_locked(&hugetlb_lock));
+       lockdep_assert_held(&hugetlb_lock);
        h_cg = hugetlb_cgroup_from_page(page);
        if (unlikely(!h_cg))
                return;
@@ -275,6 +275,7 @@ static ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of,
                ret = res_counter_memparse_write_strategy(buf, &val);
                if (ret)
                        break;
+               val = ALIGN(val, 1ULL << huge_page_shift(&hstates[idx]));
                ret = res_counter_set_limit(&h_cg->hugepage[idx], val);
                break;
        default: