From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id D84302C0096 for ; Sat, 18 Jan 2014 07:59:27 +1100 (EST) Message-ID: <1389992354.7406.34.camel@pasglop> Subject: Re: [RFC PATCH powerpc] Fix compile error of pgtable-ppc64.h From: Benjamin Herrenschmidt To: Li Zhong Date: Sat, 18 Jan 2014 07:59:14 +1100 In-Reply-To: <1389965453.5628.3.camel@ThinkPad-T5421> References: <1389939036.3000.7.camel@ThinkPad-T5421.cn.ibm.com> <87vbxj6qp1.fsf@linux.vnet.ibm.com> <1389965453.5628.3.camel@ThinkPad-T5421> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Cc: Paul Mackerras , PowerPC email list , "Aneesh Kumar K.V" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Fri, 2014-01-17 at 21:30 +0800, Li Zhong wrote: > On Fri, 2014-01-17 at 12:27 +0530, Aneesh Kumar K.V wrote: > > Li Zhong writes: > > > > > It seems that forward declaration couldn't work well with typedef, use > > > struct spinlock directly to avoiding following build errors: > > > > > > In file included from include/linux/spinlock.h:81, > > > from include/linux/seqlock.h:35, > > > from include/linux/time.h:5, > > > from include/uapi/linux/timex.h:56, > > > from include/linux/timex.h:56, > > > from include/linux/sched.h:17, > > > from arch/powerpc/kernel/asm-offsets.c:17: > > > include/linux/spinlock_types.h:76: error: redefinition of typedef 'spinlock_t' > > > /root/linux-next/arch/powerpc/include/asm/pgtable-ppc64.h:563: note: previous declaration of 'spinlock_t' was here > > > > > > > what compiler version ? I have seen that error in gcc 4.3 and it was > > concluded that it is too old a compiler version to worry about. That > > specific compiler version also gave error for forward declaring struct; > > gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC), and it doesn't > report error after use struct directly. Ok, I think that's justification enough then. I'll add that. It's all too late for 3.13 anyway so I'll send these patches during the window with an appropriate CC to stable. Cheers, Ben. > > > > > Signed-off-by: Li Zhong > > > --- > > > arch/powerpc/include/asm/pgtable-ppc64.h | 6 +++--- > > > 1 files changed, 3 insertions(+), 3 deletions(-) > > > > > > diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h > > > index d27960c..bc141c9 100644 > > > --- a/arch/powerpc/include/asm/pgtable-ppc64.h > > > +++ b/arch/powerpc/include/asm/pgtable-ppc64.h > > > @@ -560,9 +560,9 @@ extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, > > > pmd_t *pmdp); > > > > > > #define pmd_move_must_withdraw pmd_move_must_withdraw > > > -typedef struct spinlock spinlock_t; > > > -static inline int pmd_move_must_withdraw(spinlock_t *new_pmd_ptl, > > > - spinlock_t *old_pmd_ptl) > > > +struct spinlock; > > > +static inline int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, > > > + struct spinlock *old_pmd_ptl) > > > { > > > /* > > > * Archs like ppc64 use pgtable to store per pmd >