From: punit.agrawal@arm.com (Punit Agrawal)
To: linux-arm-kernel@lists.infradead.org
Subject: [Patch v3 3/3] drivers: CCI: add ARM CCI PMU support
Date: Fri, 30 Aug 2013 15:34:03 +0100 [thread overview]
Message-ID: <5220AD5B.2090300@arm.com> (raw)
In-Reply-To: <20130830112448.GC12160@mudshark.cambridge.arm.com>
On 30/08/13 12:24, Will Deacon wrote:
> Hi Punit,
>
> On Thu, Aug 22, 2013 at 04:02:28PM +0100, Punit Agrawal wrote:
>> Extend the existing CCI driver to support the PMU by registering a perf
>> backend for it.
>>
>> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>> Cc: Nicolas Pitre <nico@linaro.org>
>> Cc: Dave Martin <dave.martin@linaro.org>
>> Cc: Will Deacon <will.deacon@arm.com>
>> Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
>> Reviewed-by: Will Deacon <will.deacon@arm.com>
>> ---
>> drivers/bus/arm-cci.c | 628 +++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 628 insertions(+)
>
> [...]
>
>> +static int cci_platform_probe(struct platform_device *pdev)
>> +{
>> + if (!cci_probed())
>> + return -ENODEV;
>> +
>> + return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
>> +}
>
> cci_probed is marked as __init, so you have a section mismatch here:
>
> arch/arm/kernel/return_address.c:63:2: warning: #warning "TODO: return_address should use unwind tables" [-Wcpp]
> WARNING: drivers/bus/built-in.o(.text+0xb48): Section mismatch in reference from the function cci_platform_probe() to the function .init.text:cci_probed()
> The function cci_platform_probe() references
> the function __init cci_probed().
> This is often because cci_platform_probe lacks a __init
> annotation or the annotation of cci_probed is wrong.
>
Good catch. Missed this one.
> Unfortunately, resolving this requires removing a bunch of annotations (see
> patch below), so you might want to reconsider how the probe checking is
> handled (by moving the cci_init_status check out of cci_init).
>
In cci_platform_probe, cci_probed is called to check whether the CCI has
been initialised, and also to initialise it if required.
Even if the check for cci_init_status is moved out, I'll still need to
call cci_init which will again cause a section mis-match.
I think removing the annotations is the way to go. Is it OK to fold your
patch into the CCI PMU patch, or you prefer to keep it separate?
Cheers,
Punit
> Will
>
> --->8
>
> diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
> index ddc36f6..4816759 100644
> --- a/drivers/bus/arm-cci.c
> +++ b/drivers/bus/arm-cci.c
> @@ -711,7 +711,7 @@ int cci_ace_get_port(struct device_node *dn)
> }
> EXPORT_SYMBOL_GPL(cci_ace_get_port);
>
> -static void __init cci_ace_init_ports(void)
> +static void cci_ace_init_ports(void)
> {
> int port, ac, cpu;
> u64 hwid;
> @@ -991,7 +991,7 @@ static const struct of_device_id arm_cci_ctrl_if_matches[] = {
> {},
> };
>
> -static int __init cci_probe(void)
> +static int cci_probe(void)
> {
> struct cci_nb_ports const *cci_config;
> int ret, i, nb_ace = 0, nb_ace_lite = 0;
> @@ -1095,7 +1095,7 @@ memalloc_err:
> static int cci_init_status = -EAGAIN;
> static DEFINE_MUTEX(cci_probing);
>
> -static int __init cci_init(void)
> +static int cci_init(void)
> {
> if (cci_init_status != -EAGAIN)
> return cci_init_status;
> @@ -1149,7 +1149,7 @@ static int __init cci_platform_init(void)
> * has been initialized, if not it calls the init function that probes
> * the driver and updates the return value.
> */
> -bool __init cci_probed(void)
> +bool cci_probed(void)
> {
> return cci_init() == 0;
> }
>
>
>
next prev parent reply other threads:[~2013-08-30 14:34 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-22 15:02 [Patch v3 0/3] Add CCI PMU support Punit Agrawal
2013-08-22 15:02 ` [Patch v3 1/3] ARM: dts: Improve CCI bindings documentation Punit Agrawal
2013-08-22 22:15 ` Stephen Warren
2013-08-22 15:02 ` [Patch v3 2/3] ARM: dts: Document the CCI PMU DT bindings Punit Agrawal
2013-08-22 22:17 ` Stephen Warren
2013-08-23 9:56 ` Punit Agrawal
2013-08-30 13:59 ` Jon Medhurst (Tixy)
2013-08-30 14:36 ` Punit Agrawal
2013-08-30 16:17 ` Kumar Gala
2013-09-04 12:26 ` Punit Agrawal
2013-09-05 12:51 ` Will Deacon
2013-08-22 15:02 ` [Patch v3 3/3] drivers: CCI: add ARM CCI PMU support Punit Agrawal
2013-08-30 11:24 ` Will Deacon
2013-08-30 14:34 ` Punit Agrawal [this message]
2013-08-30 14:37 ` Will Deacon
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=5220AD5B.2090300@arm.com \
--to=punit.agrawal@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).