[PATCH 1/7] Add various hugetlb arm high level hooks
From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2012-02-29 11:36:59
From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2012-02-29 11:36:59
On Wed, Feb 29, 2012 at 11:28:30AM +0000, bill4carson wrote:
On 2012?02?29? 18:32, Catalin Marinas wrote:quoted
On Mon, Feb 13, 2012 at 09:44:22AM +0000, Bill Carson wrote:quoted
+static int __init add_huge_page_size(unsigned long long size) +{ + int shift = __ffs(size); + u32 mmfr3 = 0; + + /* Check that it is a page size supported by the hardware and + * that it fits within pagetable and slice limits. */ + if (!is_power_of_2(size) || (shift != HPAGE_SHIFT)) + return -EINVAL;You could use get_order() instead of __ffs(), the latter just finds the first bit set.With all due respect, I'm afraid I can't agree with you on this. here, we should use __ffs to return this "shift" not the order. For "hugepagesz=2M", hpage_shift/HPAGE_SHIFT should be set to 21, *not* the order 9(21-12), that's what HUGETLB_PAGE_ORDER for.
I agree (I got confused by get_order() and log2()). -- Catalin