From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933541AbbENPKM (ORCPT ); Thu, 14 May 2015 11:10:12 -0400 Received: from e28smtp03.in.ibm.com ([122.248.162.3]:35755 "EHLO e28smtp03.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933074AbbENPKC (ORCPT ); Thu, 14 May 2015 11:10:02 -0400 From: "Aneesh Kumar K.V" To: Stephen Rothwell , Andrew Morton Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org, David Miller , "Kirill A. Shutemov" Subject: Re: linux-next: build failure after merge of the akpm-current tree In-Reply-To: <20150514182114.73d2ae1c@canb.auug.org.au> References: <20150514182114.73d2ae1c@canb.auug.org.au> User-Agent: Notmuch/0.19+103~g294bb6d (http://notmuchmail.org) Emacs/24.4.1 (x86_64-pc-linux-gnu) Date: Thu, 14 May 2015 20:39:54 +0530 Message-ID: <878ucr42m5.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15051415-0009-0000-0000-0000056F5B95 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Stephen Rothwell writes: > Hi Andrew, > > After merging the akpm-current tree, today's linux-next build (sparc > defconfig) failed like this: > > In file included from arch/sparc/include/asm/pgtable_32.h:437:0, > from arch/sparc/include/asm/pgtable.h:6, > from include/linux/mm.h:53, > from include/linux/ring_buffer.h:5, > from include/linux/ftrace_event.h:5, > from include/trace/syscall.h:6, > from include/linux/syscalls.h:81, > from init/initramfs.c:19: > include/asm-generic/pgtable.h: In function 'pmdp_collapse_flush': > include/asm-generic/pgtable.h:211:2: error: implicit declaration of function '__pmd' [-Werror=implicit-function-declaration] > return __pmd(0); > ^ > include/asm-generic/pgtable.h:211:2: error: incompatible types when returning type 'int' but 'pmd_t' was expected > > Caused by commit b0593c13d7f6 ("mm/thp: split out pmd collapse/flush > into separate functions"). > > sparc 32 has no __pmd(). I applied this temporary fix for today just > to get it building: The change in question is diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 39f1d6a2b04d..9e200e55a52b 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h @@ -189,6 +189,26 @@ extern void pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp); #endif +#ifndef pmdp_collapse_flush +#define pmdp_collapse_flush pmdp_collapse_flush +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, + unsigned long address, + pmd_t *pmdp) +{ + return pmdp_clear_flush(vma, address, pmdp); +} +#else +static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, + unsigned long address, + pmd_t *pmdp) +{ + BUILD_BUG(); + return __pmd(0); +} +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ +#endif + #ifndef __HAVE_ARCH_PGTABLE_DEPOSIT extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable); This also introduced warnings for frv and m68k. May be we should drop the #else part and let the build fail during linking ? ie, do +#ifndef pmdp_collapse_flush +#define pmdp_collapse_flush pmdp_collapse_flush +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, + unsigned long address, + pmd_t *pmdp) +{ + return pmdp_clear_flush(vma, address, pmdp); +} +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ +#endif -aneesh