On Fri, Feb 16, 2018 at 06:11:10AM -0800, Matthew Wilcox wrote: > On Fri, Feb 16, 2018 at 02:49:46PM +0300, Kirill A. Shutemov wrote: > > @@ -38,12 +38,12 @@ > > * > > */ > > > > +#define l4_index(x) (((x) >> 39) & 511) > > #define pud_index(x) (((x) >> PUD_SHIFT) & (PTRS_PER_PUD-1)) > > Shouldn't that be > +#define p4d_index(x) (((x) >> P4D_SHIFT) & (PTRS_PER_P4D-1)) With CONFIG_X86_5LEVEL=y, PTRS_PER_P4D is a varaible, so it won't compile. With CONFIG_X86_5LEVEL=n, PTRS_PER_P4D is 1, so it's broken. And I didn't want to mixin p4d here: it's actually top-level page table in 4-level paging mode. I guess we can do something like: #define l4_index(x) (((x) >> P4D_SIFT) & (PTRS_PER_PGD-1)) But to me it's more confusing than couple numbers. -- Kirill A. Shutemov -- 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>