On 04/11/2016 11:34 AM, Anshuman Khandual wrote:
On 04/07/2016 03:04 PM, kbuild test robot wrote:
quoted
quoted
All errors (new ones prefixed by >>):
mm/hugetlb.c: In function 'follow_huge_pud':
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
mm/hugetlb.c:4360:3: error: implicit declaration of function 'pud_page' [-Werror=implicit-function-declaration]
page = pud_page(*pud) + ((address & ~PUD_MASK) >> PAGE_SHIFT);
^
mm/hugetlb.c:4360:8: warning: assignment makes pointer from integer without a cast
page = pud_page(*pud) + ((address & ~PUD_MASK) >> PAGE_SHIFT);
^
mm/hugetlb.c: In function 'follow_huge_pgd':
mm/hugetlb.c:4395:3: error: implicit declaration of function 'pgd_page' [-Werror=implicit-function-declaration]
page = pgd_page(*pgd) + ((address & ~PGDIR_MASK) >> PAGE_SHIFT);
Both the build errors here are because of the fact that pgd_page() is
not available for some platforms and config options. It got missed as
I ran only powerpc config options for build test purpose. My bad, will
fix it.
The following change seems to fix the build problem on S390 but will
require some inputs from S390 maintainers regarding the functional
correctness of the patch.
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 2f66645..834a8a6 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -963,6 +963,8 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
#define pte_page(x) pfn_to_page(pte_pfn(x))
#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
+#define pud_page(pud) pud_val(pud)
+#define pgd_page(pgd) pgd_val(pgd)