Message ID | 20200221032720.33893-5-alastair@au1.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for OpenCAPI Persistent Memory devices | expand |
On 21/2/20 2:26 pm, Alastair D'Silva wrote: > From: Alastair D'Silva <alastair@d-silva.org> > > Function declarations don't need externs, remove the existing ones > so they are consistent with newer code > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> Acked-by: Andrew Donnellan <ajd@linux.ibm.com>
Le 21/02/2020 à 04:26, Alastair D'Silva a écrit : > From: Alastair D'Silva <alastair@d-silva.org> > > Function declarations don't need externs, remove the existing ones > so they are consistent with newer code > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > --- Thanks for the cleanup! Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > include/misc/ocxl.h | 6 +++--- > 2 files changed, 18 insertions(+), 20 deletions(-) > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h b/arch/powerpc/include/asm/pnv-ocxl.h > index 0b2a6707e555..b23c99bc0c84 100644 > --- a/arch/powerpc/include/asm/pnv-ocxl.h > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > @@ -9,29 +9,27 @@ > #define PNV_OCXL_TL_BITS_PER_RATE 4 > #define PNV_OCXL_TL_RATE_BUF_SIZE ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 *enabled, > - u16 *supported); > -extern int pnv_ocxl_get_pasid_count(struct pci_dev *dev, int *count); > +int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 *enabled, u16 *supported); > +int pnv_ocxl_get_pasid_count(struct pci_dev *dev, int *count); > > -extern int pnv_ocxl_get_tl_cap(struct pci_dev *dev, long *cap, > +int pnv_ocxl_get_tl_cap(struct pci_dev *dev, long *cap, > char *rate_buf, int rate_buf_size); > -extern int pnv_ocxl_set_tl_conf(struct pci_dev *dev, long cap, > +int pnv_ocxl_set_tl_conf(struct pci_dev *dev, long cap, > uint64_t rate_buf_phys, int rate_buf_size); > > -extern int pnv_ocxl_get_xsl_irq(struct pci_dev *dev, int *hwirq); > -extern void pnv_ocxl_unmap_xsl_regs(void __iomem *dsisr, void __iomem *dar, > - void __iomem *tfc, void __iomem *pe_handle); > -extern int pnv_ocxl_map_xsl_regs(struct pci_dev *dev, void __iomem **dsisr, > - void __iomem **dar, void __iomem **tfc, > - void __iomem **pe_handle); > +int pnv_ocxl_get_xsl_irq(struct pci_dev *dev, int *hwirq); > +void pnv_ocxl_unmap_xsl_regs(void __iomem *dsisr, void __iomem *dar, > + void __iomem *tfc, void __iomem *pe_handle); > +int pnv_ocxl_map_xsl_regs(struct pci_dev *dev, void __iomem **dsisr, > + void __iomem **dar, void __iomem **tfc, > + void __iomem **pe_handle); > > -extern int pnv_ocxl_spa_setup(struct pci_dev *dev, void *spa_mem, int PE_mask, > - void **platform_data); > -extern void pnv_ocxl_spa_release(void *platform_data); > -extern int pnv_ocxl_spa_remove_pe_from_cache(void *platform_data, int pe_handle); > +int pnv_ocxl_spa_setup(struct pci_dev *dev, void *spa_mem, int PE_mask, void **platform_data); > +void pnv_ocxl_spa_release(void *platform_data); > +int pnv_ocxl_spa_remove_pe_from_cache(void *platform_data, int pe_handle); > > -extern int pnv_ocxl_alloc_xive_irq(u32 *irq, u64 *trigger_addr); > -extern void pnv_ocxl_free_xive_irq(u32 irq); > +int pnv_ocxl_alloc_xive_irq(u32 *irq, u64 *trigger_addr); > +void pnv_ocxl_free_xive_irq(u32 irq); > #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE > u64 pnv_ocxl_platform_lpc_setup(struct pci_dev *pdev, u64 size); > void pnv_ocxl_platform_lpc_release(struct pci_dev *pdev); > diff --git a/include/misc/ocxl.h b/include/misc/ocxl.h > index 06dd5839e438..0a762e387418 100644 > --- a/include/misc/ocxl.h > +++ b/include/misc/ocxl.h > @@ -173,7 +173,7 @@ int ocxl_context_detach(struct ocxl_context *ctx); > * > * Returns 0 on success, negative on failure > */ > -extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > +int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > > /** > * Frees an IRQ associated with an AFU context > @@ -182,7 +182,7 @@ extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > * > * Returns 0 on success, negative on failure > */ > -extern int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); > +int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); > > /** > * Gets the address of the trigger page for an IRQ > @@ -193,7 +193,7 @@ extern int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); > * > * returns the trigger page address, or 0 if the IRQ is not valid > */ > -extern u64 ocxl_afu_irq_get_addr(struct ocxl_context *ctx, int irq_id); > +u64 ocxl_afu_irq_get_addr(struct ocxl_context *ctx, int irq_id); > > /** > * Provide a callback to be called when an IRQ is triggered >
On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > From: Alastair D'Silva <alastair@d-silva.org> > > Function declarations don't need externs, remove the existing ones > so they are consistent with newer code > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > --- > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > include/misc/ocxl.h | 6 +++--- > 2 files changed, 18 insertions(+), 20 deletions(-) > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h b/arch/powerpc/include/asm/pnv-ocxl.h > index 0b2a6707e555..b23c99bc0c84 100644 > --- a/arch/powerpc/include/asm/pnv-ocxl.h > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > @@ -9,29 +9,27 @@ > #define PNV_OCXL_TL_BITS_PER_RATE 4 > #define PNV_OCXL_TL_RATE_BUF_SIZE ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 *enabled, > - u16 *supported); It works w or w/o extern when declare functions. Searching 'extern' under include can find so many functions with 'extern' adding. Do we have a explicit standard if we should add or remove 'exter' in function declaration? I have no objection to this patch, just want to make clear so that I can handle it w/o confusion. Thanks Baoquan
> -----Original Message----- > From: Baoquan He <bhe@redhat.com> > Sent: Wednesday, 26 February 2020 7:15 PM > To: Alastair D'Silva <alastair@au1.ibm.com> > Cc: alastair@d-silva.org; Aneesh Kumar K . V > <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran <oohall@gmail.com>; > Benjamin Herrenschmidt <benh@kernel.crashing.org>; Paul Mackerras > <paulus@samba.org>; Michael Ellerman <mpe@ellerman.id.au>; Frederic > Barrat <fbarrat@linux.ibm.com>; Andrew Donnellan <ajd@linux.ibm.com>; > Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman > <gregkh@linuxfoundation.org>; Dan Williams <dan.j.williams@intel.com>; > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > <aik@ozlabs.ru>; linux-kernel@vger.kernel.org; linuxppc- > dev@lists.ozlabs.org; linux-nvdimm@lists.01.org; linux-mm@kvack.org > Subject: Re: [PATCH v3 04/27] ocxl: Remove unnecessary externs > > On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > > From: Alastair D'Silva <alastair@d-silva.org> > > > > Function declarations don't need externs, remove the existing ones so > > they are consistent with newer code > > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > --- > > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > > include/misc/ocxl.h | 6 +++--- > > 2 files changed, 18 insertions(+), 20 deletions(-) > > > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h > > b/arch/powerpc/include/asm/pnv-ocxl.h > > index 0b2a6707e555..b23c99bc0c84 100644 > > --- a/arch/powerpc/include/asm/pnv-ocxl.h > > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > > @@ -9,29 +9,27 @@ > > #define PNV_OCXL_TL_BITS_PER_RATE 4 > > #define PNV_OCXL_TL_RATE_BUF_SIZE > ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 > *enabled, > > - u16 *supported); > > It works w or w/o extern when declare functions. Searching 'extern' > under include can find so many functions with 'extern' adding. Do we have a > explicit standard if we should add or remove 'exter' in function declaration? > > I have no objection to this patch, just want to make clear so that I can handle > it w/o confusion. > > Thanks > Baoquan > For the OpenCAPI driver, we have settled on not having 'extern' on functions. I don't think I've seen a standard that supports or refutes this, but it does not value add.
On Wed, 26 Feb 2020 19:26:34 +1100 "Alastair D'Silva" <alastair@d-silva.org> wrote: > > -----Original Message----- > > From: Baoquan He <bhe@redhat.com> > > Sent: Wednesday, 26 February 2020 7:15 PM > > To: Alastair D'Silva <alastair@au1.ibm.com> > > Cc: alastair@d-silva.org; Aneesh Kumar K . V > > <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran <oohall@gmail.com>; > > Benjamin Herrenschmidt <benh@kernel.crashing.org>; Paul Mackerras > > <paulus@samba.org>; Michael Ellerman <mpe@ellerman.id.au>; Frederic > > Barrat <fbarrat@linux.ibm.com>; Andrew Donnellan <ajd@linux.ibm.com>; > > Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman > > <gregkh@linuxfoundation.org>; Dan Williams <dan.j.williams@intel.com>; > > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > > <aik@ozlabs.ru>; linux-kernel@vger.kernel.org; linuxppc- > > dev@lists.ozlabs.org; linux-nvdimm@lists.01.org; linux-mm@kvack.org > > Subject: Re: [PATCH v3 04/27] ocxl: Remove unnecessary externs > > > > On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > > > From: Alastair D'Silva <alastair@d-silva.org> > > > > > > Function declarations don't need externs, remove the existing ones so > > > they are consistent with newer code > > > > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > > --- > > > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > > > include/misc/ocxl.h | 6 +++--- > > > 2 files changed, 18 insertions(+), 20 deletions(-) > > > > > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h > > > b/arch/powerpc/include/asm/pnv-ocxl.h > > > index 0b2a6707e555..b23c99bc0c84 100644 > > > --- a/arch/powerpc/include/asm/pnv-ocxl.h > > > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > > > @@ -9,29 +9,27 @@ > > > #define PNV_OCXL_TL_BITS_PER_RATE 4 > > > #define PNV_OCXL_TL_RATE_BUF_SIZE > > ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > > > > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 > > *enabled, > > > - u16 *supported); > > > > It works w or w/o extern when declare functions. Searching 'extern' > > under include can find so many functions with 'extern' adding. Do we have > a > > explicit standard if we should add or remove 'exter' in function > declaration? > > > > I have no objection to this patch, just want to make clear so that I can > handle > > it w/o confusion. > > > > Thanks > > Baoquan > > > > For the OpenCAPI driver, we have settled on not having 'extern' on > functions. > > I don't think I've seen a standard that supports or refutes this, but it > does not value add. > FWIW this is a warning condition for checkpatch: $ ./scripts/checkpatch.pl --strict -f include/misc/ocxl.h [...] CHECK: extern prototypes should be avoided in .h files #176: FILE: include/misc/ocxl.h:176: +extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); [...]
On 02/26/20 at 10:01am, Greg Kurz wrote: > On Wed, 26 Feb 2020 19:26:34 +1100 > "Alastair D'Silva" <alastair@d-silva.org> wrote: > > > > -----Original Message----- > > > From: Baoquan He <bhe@redhat.com> > > > Sent: Wednesday, 26 February 2020 7:15 PM > > > To: Alastair D'Silva <alastair@au1.ibm.com> > > > Cc: alastair@d-silva.org; Aneesh Kumar K . V > > > <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran <oohall@gmail.com>; > > > Benjamin Herrenschmidt <benh@kernel.crashing.org>; Paul Mackerras > > > <paulus@samba.org>; Michael Ellerman <mpe@ellerman.id.au>; Frederic > > > Barrat <fbarrat@linux.ibm.com>; Andrew Donnellan <ajd@linux.ibm.com>; > > > Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman > > > <gregkh@linuxfoundation.org>; Dan Williams <dan.j.williams@intel.com>; > > > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > > > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > > > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > > > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > > > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > > > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > > > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > > > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > > > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > > > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > > > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > > > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > > > <aik@ozlabs.ru>; linux-kernel@vger.kernel.org; linuxppc- > > > dev@lists.ozlabs.org; linux-nvdimm@lists.01.org; linux-mm@kvack.org > > > Subject: Re: [PATCH v3 04/27] ocxl: Remove unnecessary externs > > > > > > On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > > > > From: Alastair D'Silva <alastair@d-silva.org> > > > > > > > > Function declarations don't need externs, remove the existing ones so > > > > they are consistent with newer code > > > > > > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > > > --- > > > > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > > > > include/misc/ocxl.h | 6 +++--- > > > > 2 files changed, 18 insertions(+), 20 deletions(-) > > > > > > > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h > > > > b/arch/powerpc/include/asm/pnv-ocxl.h > > > > index 0b2a6707e555..b23c99bc0c84 100644 > > > > --- a/arch/powerpc/include/asm/pnv-ocxl.h > > > > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > > > > @@ -9,29 +9,27 @@ > > > > #define PNV_OCXL_TL_BITS_PER_RATE 4 > > > > #define PNV_OCXL_TL_RATE_BUF_SIZE > > > ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > > > > > > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 > > > *enabled, > > > > - u16 *supported); > > > > > > It works w or w/o extern when declare functions. Searching 'extern' > > > under include can find so many functions with 'extern' adding. Do we have > > a > > > explicit standard if we should add or remove 'exter' in function > > declaration? > > > > > > I have no objection to this patch, just want to make clear so that I can > > handle > > > it w/o confusion. > > > > > > Thanks > > > Baoquan > > > > > > > For the OpenCAPI driver, we have settled on not having 'extern' on > > functions. > > > > I don't think I've seen a standard that supports or refutes this, but it > > does not value add. > > > > FWIW this is a warning condition for checkpatch: > > $ ./scripts/checkpatch.pl --strict -f include/misc/ocxl.h Good to know, thanks. I didn't know checkpatch.pl can run on header file directly. Tried to check patch with '--strict -f', the below info doesn't appear. But it does give out below information when run on header file. > > [...] > > CHECK: extern prototypes should be avoided in .h files > #176: FILE: include/misc/ocxl.h:176: > +extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > > [...] >
On Wed, 26 Feb 2020 22:15:23 +0800 'Baoquan He' <bhe@redhat.com> wrote: > On 02/26/20 at 10:01am, Greg Kurz wrote: > > On Wed, 26 Feb 2020 19:26:34 +1100 > > "Alastair D'Silva" <alastair@d-silva.org> wrote: > > > > > > -----Original Message----- > > > > From: Baoquan He <bhe@redhat.com> > > > > Sent: Wednesday, 26 February 2020 7:15 PM > > > > To: Alastair D'Silva <alastair@au1.ibm.com> > > > > Cc: alastair@d-silva.org; Aneesh Kumar K . V > > > > <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran <oohall@gmail.com>; > > > > Benjamin Herrenschmidt <benh@kernel.crashing.org>; Paul Mackerras > > > > <paulus@samba.org>; Michael Ellerman <mpe@ellerman.id.au>; Frederic > > > > Barrat <fbarrat@linux.ibm.com>; Andrew Donnellan <ajd@linux.ibm.com>; > > > > Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman > > > > <gregkh@linuxfoundation.org>; Dan Williams <dan.j.williams@intel.com>; > > > > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > > > > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > > > > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > > > > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > > > > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > > > > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > > > > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > > > > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > > > > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > > > > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > > > > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > > > > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > > > > <aik@ozlabs.ru>; linux-kernel@vger.kernel.org; linuxppc- > > > > dev@lists.ozlabs.org; linux-nvdimm@lists.01.org; linux-mm@kvack.org > > > > Subject: Re: [PATCH v3 04/27] ocxl: Remove unnecessary externs > > > > > > > > On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > > > > > From: Alastair D'Silva <alastair@d-silva.org> > > > > > > > > > > Function declarations don't need externs, remove the existing ones so > > > > > they are consistent with newer code > > > > > > > > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > > > > --- > > > > > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > > > > > include/misc/ocxl.h | 6 +++--- > > > > > 2 files changed, 18 insertions(+), 20 deletions(-) > > > > > > > > > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h > > > > > b/arch/powerpc/include/asm/pnv-ocxl.h > > > > > index 0b2a6707e555..b23c99bc0c84 100644 > > > > > --- a/arch/powerpc/include/asm/pnv-ocxl.h > > > > > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > > > > > @@ -9,29 +9,27 @@ > > > > > #define PNV_OCXL_TL_BITS_PER_RATE 4 > > > > > #define PNV_OCXL_TL_RATE_BUF_SIZE > > > > ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > > > > > > > > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 > > > > *enabled, > > > > > - u16 *supported); > > > > > > > > It works w or w/o extern when declare functions. Searching 'extern' > > > > under include can find so many functions with 'extern' adding. Do we have > > > a > > > > explicit standard if we should add or remove 'exter' in function > > > declaration? > > > > > > > > I have no objection to this patch, just want to make clear so that I can > > > handle > > > > it w/o confusion. > > > > > > > > Thanks > > > > Baoquan > > > > > > > > > > For the OpenCAPI driver, we have settled on not having 'extern' on > > > functions. > > > > > > I don't think I've seen a standard that supports or refutes this, but it > > > does not value add. > > > > > > > FWIW this is a warning condition for checkpatch: > > > > $ ./scripts/checkpatch.pl --strict -f include/misc/ocxl.h > > Good to know, thanks. > > I didn't know checkpatch.pl can run on header file directly. Tried to > check patch with '--strict -f', the below info doesn't appear. But it Hmm... -f is to check a source file, not a patch... What did you try exactly ? > does give out below information when run on header file. > > > > > [...] > > > > CHECK: extern prototypes should be avoided in .h files > > #176: FILE: include/misc/ocxl.h:176: > > +extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > > > > [...] > > >
On 02/26/20 at 03:20pm, Greg Kurz wrote: > On Wed, 26 Feb 2020 22:15:23 +0800 > 'Baoquan He' <bhe@redhat.com> wrote: > > > On 02/26/20 at 10:01am, Greg Kurz wrote: > > > On Wed, 26 Feb 2020 19:26:34 +1100 > > > "Alastair D'Silva" <alastair@d-silva.org> wrote: > > > > > > > > -----Original Message----- > > > > > From: Baoquan He <bhe@redhat.com> > > > > > Sent: Wednesday, 26 February 2020 7:15 PM > > > > > To: Alastair D'Silva <alastair@au1.ibm.com> > > > > > Cc: alastair@d-silva.org; Aneesh Kumar K . V > > > > > <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran <oohall@gmail.com>; > > > > > Benjamin Herrenschmidt <benh@kernel.crashing.org>; Paul Mackerras > > > > > <paulus@samba.org>; Michael Ellerman <mpe@ellerman.id.au>; Frederic > > > > > Barrat <fbarrat@linux.ibm.com>; Andrew Donnellan <ajd@linux.ibm.com>; > > > > > Arnd Bergmann <arnd@arndb.de>; Greg Kroah-Hartman > > > > > <gregkh@linuxfoundation.org>; Dan Williams <dan.j.williams@intel.com>; > > > > > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > > > > > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > > > > > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > > > > > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > > > > > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > > > > > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > > > > > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > > > > > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > > > > > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > > > > > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > > > > > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > > > > > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > > > > > <aik@ozlabs.ru>; linux-kernel@vger.kernel.org; linuxppc- > > > > > dev@lists.ozlabs.org; linux-nvdimm@lists.01.org; linux-mm@kvack.org > > > > > Subject: Re: [PATCH v3 04/27] ocxl: Remove unnecessary externs > > > > > > > > > > On 02/21/20 at 02:26pm, Alastair D'Silva wrote: > > > > > > From: Alastair D'Silva <alastair@d-silva.org> > > > > > > > > > > > > Function declarations don't need externs, remove the existing ones so > > > > > > they are consistent with newer code > > > > > > > > > > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > > > > > --- > > > > > > arch/powerpc/include/asm/pnv-ocxl.h | 32 ++++++++++++++--------------- > > > > > > include/misc/ocxl.h | 6 +++--- > > > > > > 2 files changed, 18 insertions(+), 20 deletions(-) > > > > > > > > > > > > diff --git a/arch/powerpc/include/asm/pnv-ocxl.h > > > > > > b/arch/powerpc/include/asm/pnv-ocxl.h > > > > > > index 0b2a6707e555..b23c99bc0c84 100644 > > > > > > --- a/arch/powerpc/include/asm/pnv-ocxl.h > > > > > > +++ b/arch/powerpc/include/asm/pnv-ocxl.h > > > > > > @@ -9,29 +9,27 @@ > > > > > > #define PNV_OCXL_TL_BITS_PER_RATE 4 > > > > > > #define PNV_OCXL_TL_RATE_BUF_SIZE > > > > > ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) > > > > > > > > > > > > -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 > > > > > *enabled, > > > > > > - u16 *supported); > > > > > > > > > > It works w or w/o extern when declare functions. Searching 'extern' > > > > > under include can find so many functions with 'extern' adding. Do we have > > > > a > > > > > explicit standard if we should add or remove 'exter' in function > > > > declaration? > > > > > > > > > > I have no objection to this patch, just want to make clear so that I can > > > > handle > > > > > it w/o confusion. > > > > > > > > > > Thanks > > > > > Baoquan > > > > > > > > > > > > > For the OpenCAPI driver, we have settled on not having 'extern' on > > > > functions. > > > > > > > > I don't think I've seen a standard that supports or refutes this, but it > > > > does not value add. > > > > > > > > > > FWIW this is a warning condition for checkpatch: > > > > > > $ ./scripts/checkpatch.pl --strict -f include/misc/ocxl.h > > > > Good to know, thanks. > > > > I didn't know checkpatch.pl can run on header file directly. Tried to > > check patch with '--strict -f', the below info doesn't appear. But it > > Hmm... -f is to check a source file, not a patch... What did you try > exactly ? OK, that's it. I can see the 'CHECK' line when run checkpatch.pl on patch with '--strict' only. I think this can be a good reason that we should not add extern when add function declaration into header file. Thanks. > > > does give out below information when run on header file. > > > > > > > > [...] > > > > > > CHECK: extern prototypes should be avoided in .h files > > > #176: FILE: include/misc/ocxl.h:176: > > > +extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); > > > > > > [...] > > > > > > >
diff --git a/arch/powerpc/include/asm/pnv-ocxl.h b/arch/powerpc/include/asm/pnv-ocxl.h index 0b2a6707e555..b23c99bc0c84 100644 --- a/arch/powerpc/include/asm/pnv-ocxl.h +++ b/arch/powerpc/include/asm/pnv-ocxl.h @@ -9,29 +9,27 @@ #define PNV_OCXL_TL_BITS_PER_RATE 4 #define PNV_OCXL_TL_RATE_BUF_SIZE ((PNV_OCXL_TL_MAX_TEMPLATE+1) * PNV_OCXL_TL_BITS_PER_RATE / 8) -extern int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 *enabled, - u16 *supported); -extern int pnv_ocxl_get_pasid_count(struct pci_dev *dev, int *count); +int pnv_ocxl_get_actag(struct pci_dev *dev, u16 *base, u16 *enabled, u16 *supported); +int pnv_ocxl_get_pasid_count(struct pci_dev *dev, int *count); -extern int pnv_ocxl_get_tl_cap(struct pci_dev *dev, long *cap, +int pnv_ocxl_get_tl_cap(struct pci_dev *dev, long *cap, char *rate_buf, int rate_buf_size); -extern int pnv_ocxl_set_tl_conf(struct pci_dev *dev, long cap, +int pnv_ocxl_set_tl_conf(struct pci_dev *dev, long cap, uint64_t rate_buf_phys, int rate_buf_size); -extern int pnv_ocxl_get_xsl_irq(struct pci_dev *dev, int *hwirq); -extern void pnv_ocxl_unmap_xsl_regs(void __iomem *dsisr, void __iomem *dar, - void __iomem *tfc, void __iomem *pe_handle); -extern int pnv_ocxl_map_xsl_regs(struct pci_dev *dev, void __iomem **dsisr, - void __iomem **dar, void __iomem **tfc, - void __iomem **pe_handle); +int pnv_ocxl_get_xsl_irq(struct pci_dev *dev, int *hwirq); +void pnv_ocxl_unmap_xsl_regs(void __iomem *dsisr, void __iomem *dar, + void __iomem *tfc, void __iomem *pe_handle); +int pnv_ocxl_map_xsl_regs(struct pci_dev *dev, void __iomem **dsisr, + void __iomem **dar, void __iomem **tfc, + void __iomem **pe_handle); -extern int pnv_ocxl_spa_setup(struct pci_dev *dev, void *spa_mem, int PE_mask, - void **platform_data); -extern void pnv_ocxl_spa_release(void *platform_data); -extern int pnv_ocxl_spa_remove_pe_from_cache(void *platform_data, int pe_handle); +int pnv_ocxl_spa_setup(struct pci_dev *dev, void *spa_mem, int PE_mask, void **platform_data); +void pnv_ocxl_spa_release(void *platform_data); +int pnv_ocxl_spa_remove_pe_from_cache(void *platform_data, int pe_handle); -extern int pnv_ocxl_alloc_xive_irq(u32 *irq, u64 *trigger_addr); -extern void pnv_ocxl_free_xive_irq(u32 irq); +int pnv_ocxl_alloc_xive_irq(u32 *irq, u64 *trigger_addr); +void pnv_ocxl_free_xive_irq(u32 irq); #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE u64 pnv_ocxl_platform_lpc_setup(struct pci_dev *pdev, u64 size); void pnv_ocxl_platform_lpc_release(struct pci_dev *pdev); diff --git a/include/misc/ocxl.h b/include/misc/ocxl.h index 06dd5839e438..0a762e387418 100644 --- a/include/misc/ocxl.h +++ b/include/misc/ocxl.h @@ -173,7 +173,7 @@ int ocxl_context_detach(struct ocxl_context *ctx); * * Returns 0 on success, negative on failure */ -extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); +int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); /** * Frees an IRQ associated with an AFU context @@ -182,7 +182,7 @@ extern int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id); * * Returns 0 on success, negative on failure */ -extern int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); +int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); /** * Gets the address of the trigger page for an IRQ @@ -193,7 +193,7 @@ extern int ocxl_afu_irq_free(struct ocxl_context *ctx, int irq_id); * * returns the trigger page address, or 0 if the IRQ is not valid */ -extern u64 ocxl_afu_irq_get_addr(struct ocxl_context *ctx, int irq_id); +u64 ocxl_afu_irq_get_addr(struct ocxl_context *ctx, int irq_id); /** * Provide a callback to be called when an IRQ is triggered