On 1 March 2016 at 16:39, Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > On Mon, Feb 29, 2016 at 03:44:40PM +0100, Ard Biesheuvel wrote: >> @@ -404,6 +404,12 @@ void __init mem_init(void) >> BUILD_BUG_ON(TASK_SIZE_32 > TASK_SIZE_64); >> #endif >> >> + /* >> + * Make sure we chose the upper bound of sizeof(struct page) >> + * correctly. >> + */ >> + BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT)); > > Since with the vmemmap fix you already assume that PAGE_OFFSET is half > of the VA space, we should add another check on PAGE_OFFSET != > UL(0xffffffffffffffff) << (VA_BITS - 1), just in case someone thinks > they could map a bit of extra RAM without going for a larger VA. > Indeed. The __pa() check only checks a single bit, so it must be split exactly in half, unless we want to revisit that in the future (if __pa() is no longer on a hot path after changes like these). -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>