sparc64: Fix gup_huge_pmd
[sfrench/cifs-2.6.git] / arch / sparc / mm / gup.c
index cd0e32bbcb1de0f6b16bce4ccd3f8b89acaa18b9..f80cfc64c55ba2b975cf5c3c0fe4fb72da316de9 100644 (file)
@@ -78,8 +78,8 @@ static int gup_huge_pmd(pmd_t *pmdp, pmd_t pmd, unsigned long addr,
                return 0;
 
        refs = 0;
-       head = pmd_page(pmd);
-       page = head + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
+       page = pmd_page(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
+       head = compound_head(page);
        do {
                VM_BUG_ON(compound_head(page) != head);
                pages[*nr] = page;