On Fri, 27 Jul 2018 10:13:42 +0200 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > On 27.07.2018 09:46, Christian Borntraeger wrote: > > This is with > > > > # CONFIG_TRANSPARENT_HUGEPAGE is not set > > # CONFIG_HUGETLBFS is not set > > > > so we need to fence this. > > With hugetlbfs enabled this compiles (and also works fine). > > We can either ifdef this three times or create a pmd_alloc_map in pgtable.h. > > I think that's Martin's call to make. Hmm, we have a similar sequence in pgtable.c:test_and_clear_guest_dirty pgd = pgd_offset(mm, addr); p4d = p4d_alloc(mm, pgd, addr); if (!p4d) return false; pud = pud_alloc(mm, p4d, addr); if (!pud) return false; pmd = pmd_alloc(mm, pud, addr); if (!pmd) return false; Why not refactor this sequence into a separate function local to pgtable.c? That way we can avoid using huge_pte_alloc in set_guest_storage_key. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin. -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html