On Mon, Sep 28, 2020 at 01:54:01PM -0400, Zi Yan wrote: > struct { /* Page table pages */ > - unsigned long _pt_pad_1; /* compound_head */ > - pgtable_t pmd_huge_pte; /* protected by page->ptl */ > + struct llist_head deposit_head; /* pgtable deposit list head */ > + struct llist_node deposit_node; /* pgtable deposit list node */ If you're going to use two pointers anyway, you might as well use a list_head. But I don't think you need to; you could either use a union of these or you could use the page_address() of the page to store as much information as you like!