From: Roger Quadros <rogerq@ti.com>
To: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, tony@atomide.com, robh+dt@kernel.org,
bcousson@baylibre.com, ssantosh@kernel.org, ohad@wizery.com,
bjorn.andersson@linaro.org, s-anna@ti.com, nsekhar@ti.com,
t-kristo@ti.com, nsaulnier@ti.com, jreeder@ti.com,
m-karicheri2@ti.com, woods.technical@gmail.com,
linux-omap@vger.kernel.org, linux-remoteproc@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 11/17] soc: ti: pruss: add pruss_get()/put() API
Date: Fri, 23 Nov 2018 11:41:58 +0200 [thread overview]
Message-ID: <5BF7CB66.5010506@ti.com> (raw)
In-Reply-To: <201811231005.TMHd9O2k%fengguang.wu@intel.com>
On 23/11/18 04:47, kbuild test robot wrote:
> Hi Tero,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on keystone/next]
> [also build test ERROR on v4.20-rc3 next-20181122]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Roger-Quadros/Add-support-for-TI-PRU-ICSS/20181123-083903
> base: https://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git next
> config: arm-allmodconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=arm
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from drivers/soc/ti/pruss_intc.c:16:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
This was my bad due to re-ordering of patches. Fixed now.
cheers,
-roger
> --
> In file included from drivers/soc/ti/pruss.c:15:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
>>> drivers/soc/ti/pruss.c:34:15: error: conflicting types for 'pruss_get'
> struct pruss *pruss_get(struct rproc *rproc)
> ^~~~~~~~~
> In file included from drivers/soc/ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> In file included from include/linux/linkage.h:7:0,
> from include/linux/kernel.h:7,
> from include/linux/list.h:9,
> from include/linux/kobject.h:19,
> from include/linux/device.h:16,
> from include/linux/dma-mapping.h:7,
> from drivers/soc/ti/pruss.c:10:
> drivers/soc/ti/pruss.c:58:19: error: conflicting types for 'pruss_get'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^
> include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
> extern typeof(sym) sym; \
> ^~~
>>> drivers/soc/ti/pruss.c:58:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^~~~~~~~~~~~~~~~~
> In file included from drivers/soc/ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> --
> In file included from drivers/soc//ti/pruss.c:15:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
> drivers/soc//ti/pruss.c:34:15: error: conflicting types for 'pruss_get'
> struct pruss *pruss_get(struct rproc *rproc)
> ^~~~~~~~~
> In file included from drivers/soc//ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> In file included from include/linux/linkage.h:7:0,
> from include/linux/kernel.h:7,
> from include/linux/list.h:9,
> from include/linux/kobject.h:19,
> from include/linux/device.h:16,
> from include/linux/dma-mapping.h:7,
> from drivers/soc//ti/pruss.c:10:
> drivers/soc//ti/pruss.c:58:19: error: conflicting types for 'pruss_get'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^
> include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
> extern typeof(sym) sym; \
> ^~~
> drivers/soc//ti/pruss.c:58:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^~~~~~~~~~~~~~~~~
> In file included from drivers/soc//ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
>
> vim +/pruss_get +34 drivers/soc/ti/pruss.c
>
> > 10 #include <linux/dma-mapping.h>
> 11 #include <linux/module.h>
> 12 #include <linux/io.h>
> 13 #include <linux/of_address.h>
> 14 #include <linux/of_device.h>
> > 15 #include <linux/pruss.h>
> 16 #include <linux/remoteproc.h>
> 17
> 18 #include "pruss.h"
> 19
> 20 /**
> 21 * pruss_get() - get the pruss for a given PRU remoteproc
> 22 * @rproc: remoteproc handle of a PRU instance
> 23 *
> 24 * Finds the parent pruss device for a PRU given the @rproc handle of the
> 25 * PRU remote processor. This function increments the pruss device's refcount,
> 26 * so always use pruss_put() to decrement it back once pruss isn't needed
> 27 * anymore.
> 28 *
> 29 * Returns the pruss handle on success, and an ERR_PTR on failure using one
> 30 * of the following error values
> 31 * -EINVAL if invalid parameter
> 32 * -ENODEV if PRU device or PRUSS device is not found
> 33 */
> > 34 struct pruss *pruss_get(struct rproc *rproc)
> 35 {
> 36 struct pruss *pruss;
> 37 struct device *dev;
> 38 struct platform_device *ppdev;
> 39
> 40 if (IS_ERR_OR_NULL(rproc))
> 41 return ERR_PTR(-EINVAL);
> 42
> 43 dev = &rproc->dev;
> 44 if (!dev->parent)
> 45 return ERR_PTR(-ENODEV);
> 46
> 47 /* rudimentary check to make sure rproc handle is for a PRU */
> 48 if (!strstr(dev_name(dev->parent), "pru"))
> 49 return ERR_PTR(-ENODEV);
> 50
> 51 ppdev = to_platform_device(dev->parent->parent);
> 52 pruss = platform_get_drvdata(ppdev);
> 53 if (pruss)
> 54 get_device(pruss->dev);
> 55
> 56 return pruss ? pruss : ERR_PTR(-ENODEV);
> 57 }
> > 58 EXPORT_SYMBOL_GPL(pruss_get);
> 59
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com>
To: kbuild test robot <lkp@intel.com>
Cc: <kbuild-all@01.org>, <tony@atomide.com>, <robh+dt@kernel.org>,
<bcousson@baylibre.com>, <ssantosh@kernel.org>, <ohad@wizery.com>,
<bjorn.andersson@linaro.org>, <s-anna@ti.com>, <nsekhar@ti.com>,
<t-kristo@ti.com>, <nsaulnier@ti.com>, <jreeder@ti.com>,
<m-karicheri2@ti.com>, <woods.technical@gmail.com>,
<linux-omap@vger.kernel.org>, <linux-remoteproc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH 11/17] soc: ti: pruss: add pruss_get()/put() API
Date: Fri, 23 Nov 2018 11:41:58 +0200 [thread overview]
Message-ID: <5BF7CB66.5010506@ti.com> (raw)
In-Reply-To: <201811231005.TMHd9O2k%fengguang.wu@intel.com>
On 23/11/18 04:47, kbuild test robot wrote:
> Hi Tero,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on keystone/next]
> [also build test ERROR on v4.20-rc3 next-20181122]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Roger-Quadros/Add-support-for-TI-PRU-ICSS/20181123-083903
> base: https://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git next
> config: arm-allmodconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=arm
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from drivers/soc/ti/pruss_intc.c:16:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
This was my bad due to re-ordering of patches. Fixed now.
cheers,
-roger
> --
> In file included from drivers/soc/ti/pruss.c:15:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
>>> drivers/soc/ti/pruss.c:34:15: error: conflicting types for 'pruss_get'
> struct pruss *pruss_get(struct rproc *rproc)
> ^~~~~~~~~
> In file included from drivers/soc/ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> In file included from include/linux/linkage.h:7:0,
> from include/linux/kernel.h:7,
> from include/linux/list.h:9,
> from include/linux/kobject.h:19,
> from include/linux/device.h:16,
> from include/linux/dma-mapping.h:7,
> from drivers/soc/ti/pruss.c:10:
> drivers/soc/ti/pruss.c:58:19: error: conflicting types for 'pruss_get'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^
> include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
> extern typeof(sym) sym; \
> ^~~
>>> drivers/soc/ti/pruss.c:58:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^~~~~~~~~~~~~~~~~
> In file included from drivers/soc/ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> --
> In file included from drivers/soc//ti/pruss.c:15:0:
>>> include/linux/pruss.h:39:32: warning: 'struct rproc' declared inside parameter list will not be visible outside of this definition or declaration
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~
> drivers/soc//ti/pruss.c:34:15: error: conflicting types for 'pruss_get'
> struct pruss *pruss_get(struct rproc *rproc)
> ^~~~~~~~~
> In file included from drivers/soc//ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
> In file included from include/linux/linkage.h:7:0,
> from include/linux/kernel.h:7,
> from include/linux/list.h:9,
> from include/linux/kobject.h:19,
> from include/linux/device.h:16,
> from include/linux/dma-mapping.h:7,
> from drivers/soc//ti/pruss.c:10:
> drivers/soc//ti/pruss.c:58:19: error: conflicting types for 'pruss_get'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^
> include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
> extern typeof(sym) sym; \
> ^~~
> drivers/soc//ti/pruss.c:58:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
> EXPORT_SYMBOL_GPL(pruss_get);
> ^~~~~~~~~~~~~~~~~
> In file included from drivers/soc//ti/pruss.c:15:0:
> include/linux/pruss.h:39:15: note: previous declaration of 'pruss_get' was here
> struct pruss *pruss_get(struct rproc *rproc);
> ^~~~~~~~~
>
> vim +/pruss_get +34 drivers/soc/ti/pruss.c
>
> > 10 #include <linux/dma-mapping.h>
> 11 #include <linux/module.h>
> 12 #include <linux/io.h>
> 13 #include <linux/of_address.h>
> 14 #include <linux/of_device.h>
> > 15 #include <linux/pruss.h>
> 16 #include <linux/remoteproc.h>
> 17
> 18 #include "pruss.h"
> 19
> 20 /**
> 21 * pruss_get() - get the pruss for a given PRU remoteproc
> 22 * @rproc: remoteproc handle of a PRU instance
> 23 *
> 24 * Finds the parent pruss device for a PRU given the @rproc handle of the
> 25 * PRU remote processor. This function increments the pruss device's refcount,
> 26 * so always use pruss_put() to decrement it back once pruss isn't needed
> 27 * anymore.
> 28 *
> 29 * Returns the pruss handle on success, and an ERR_PTR on failure using one
> 30 * of the following error values
> 31 * -EINVAL if invalid parameter
> 32 * -ENODEV if PRU device or PRUSS device is not found
> 33 */
> > 34 struct pruss *pruss_get(struct rproc *rproc)
> 35 {
> 36 struct pruss *pruss;
> 37 struct device *dev;
> 38 struct platform_device *ppdev;
> 39
> 40 if (IS_ERR_OR_NULL(rproc))
> 41 return ERR_PTR(-EINVAL);
> 42
> 43 dev = &rproc->dev;
> 44 if (!dev->parent)
> 45 return ERR_PTR(-ENODEV);
> 46
> 47 /* rudimentary check to make sure rproc handle is for a PRU */
> 48 if (!strstr(dev_name(dev->parent), "pru"))
> 49 return ERR_PTR(-ENODEV);
> 50
> 51 ppdev = to_platform_device(dev->parent->parent);
> 52 pruss = platform_get_drvdata(ppdev);
> 53 if (pruss)
> 54 get_device(pruss->dev);
> 55
> 56 return pruss ? pruss : ERR_PTR(-ENODEV);
> 57 }
> > 58 EXPORT_SYMBOL_GPL(pruss_get);
> 59
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
next prev parent reply other threads:[~2018-11-23 9:41 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-22 11:38 [PATCH 00/17] Add support for TI PRU ICSS Roger Quadros
2018-11-22 11:38 ` Roger Quadros
2018-11-22 11:38 ` [PATCH 01/17] dt-bindings: remoteproc: Add TI PRUSS bindings Roger Quadros
2018-11-22 11:38 ` Roger Quadros
2018-11-23 16:24 ` Tony Lindgren
2018-11-26 7:47 ` Roger Quadros
2018-11-26 7:47 ` Roger Quadros
2018-11-26 19:35 ` Tony Lindgren
2018-11-26 21:14 ` David Lechner
2018-11-26 23:41 ` Tony Lindgren
2018-11-27 15:15 ` Roger Quadros
2018-11-27 15:15 ` Roger Quadros
2018-11-28 15:42 ` David Lechner
2018-11-29 8:49 ` Roger Quadros
2018-11-29 8:49 ` Roger Quadros
2018-11-29 16:18 ` David Lechner
2018-11-22 11:38 ` [PATCH 02/17] soc: ti: pruss: Define platform data for PRUSS bus driver Roger Quadros
2018-11-22 11:38 ` Roger Quadros
2018-11-22 11:38 ` [PATCH 03/17] soc: ti: pruss: Add pruss_soc_bus platform driver Roger Quadros
2018-11-22 11:38 ` Roger Quadros
2018-11-22 11:39 ` [PATCH 04/17] soc: ti: pruss: Fix system suspend/MStandby config issues Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-22 11:39 ` [PATCH 05/17] soc: ti: pruss: Configure SYSCFG properly during probe/remove Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-23 16:26 ` Tony Lindgren
2018-11-22 11:39 ` [PATCH 06/17] soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 21:15 ` David Lechner
2018-11-27 15:17 ` Roger Quadros
2018-11-27 15:17 ` Roger Quadros
2018-11-22 11:39 ` [PATCH 07/17] soc: ti: pruss: enable OCP master ports in SYSCFG always Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-23 16:35 ` Tony Lindgren
2018-11-22 11:39 ` [PATCH 08/17] soc: ti: pruss: Add a PRUSS irqchip driver for PRUSS interrupts Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-23 16:37 ` Tony Lindgren
2018-11-26 8:09 ` Roger Quadros
2018-11-26 8:09 ` Roger Quadros
2018-11-26 19:33 ` Tony Lindgren
2018-12-12 15:48 ` Roger Quadros
2018-12-12 15:48 ` Roger Quadros
2018-12-12 17:25 ` Tony Lindgren
2018-11-26 8:09 ` Roger Quadros
2018-11-26 8:09 ` Roger Quadros
2018-11-26 21:17 ` David Lechner
2018-11-27 15:39 ` Roger Quadros
2018-11-27 15:39 ` Roger Quadros
2018-11-28 15:46 ` David Lechner
2018-11-22 11:39 ` [PATCH 09/17] soc: ti: pruss: add pruss_{request,release}_mem_region() API Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 21:18 ` David Lechner
2018-11-22 11:39 ` [PATCH 10/17] soc: ti: pruss_intc: Add API to trigger a PRU sysevent Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 21:18 ` David Lechner
2018-11-22 11:39 ` [PATCH 11/17] soc: ti: pruss: add pruss_get()/put() API Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-23 2:47 ` kbuild test robot
2018-11-23 2:47 ` kbuild test robot
2018-11-23 2:47 ` kbuild test robot
2018-11-23 9:41 ` Roger Quadros [this message]
2018-11-23 9:41 ` Roger Quadros
2018-11-23 8:20 ` Arnd Bergmann
2018-11-23 8:58 ` Tero Kristo
2018-11-23 8:58 ` Tero Kristo
2018-11-23 9:40 ` Roger Quadros
2018-11-23 9:40 ` Roger Quadros
2018-11-26 21:18 ` David Lechner
2018-11-22 11:39 ` [PATCH 12/17] soc: ti: pruss: add pruss_cfg_read()/update() API Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-22 11:39 ` [PATCH 13/17] soc: ti: pruss: export pruss_intc_configure/unconfigure APIs Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 21:19 ` David Lechner
2018-11-22 11:39 ` [PATCH 14/17] ARM: OMAP2+: use pdata quirks for PRUSS reset lines on AM335x Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-23 16:40 ` Tony Lindgren
2018-11-22 11:39 ` [PATCH 15/17] ARM: dts: AM33xx: Add the PRU-ICSS DT nodes Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 16:37 ` David Lechner
2018-11-22 11:39 ` [PATCH 16/17] ARM: dts: AM33xx: Add PRU system events for virtio Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-22 11:39 ` [PATCH 17/17] ARM: dts: am335x-*: Enable PRU-ICSS nodes Roger Quadros
2018-11-22 11:39 ` Roger Quadros
2018-11-26 16:45 ` David Lechner
2018-12-03 2:04 ` [PATCH 00/17] Add support for TI PRU ICSS Derald D. Woods
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5BF7CB66.5010506@ti.com \
--to=rogerq@ti.com \
--cc=bcousson@baylibre.com \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=jreeder@ti.com \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=lkp@intel.com \
--cc=m-karicheri2@ti.com \
--cc=nsaulnier@ti.com \
--cc=nsekhar@ti.com \
--cc=ohad@wizery.com \
--cc=robh+dt@kernel.org \
--cc=s-anna@ti.com \
--cc=ssantosh@kernel.org \
--cc=t-kristo@ti.com \
--cc=tony@atomide.com \
--cc=woods.technical@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.