From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] arm64: cpuidle: add __init section marker to arm_cpuidle_init
Date: Thu, 02 Jul 2015 14:23:48 +0900 [thread overview]
Message-ID: <5594CAE4.1070607@samsung.com> (raw)
In-Reply-To: <20150702125849.67160aa9@xhacker>
On 02.07.2015 13:58, Jisheng Zhang wrote:
> Dear Krzysztof,
>
> On Thu, 2 Jul 2015 12:59:44 +0900
> Krzysztof Kozlowski <k.kozlowski@samsung.com> wrote:
>
>> 2015-07-02 11:14 GMT+09:00 Jisheng Zhang <jszhang@marvell.com>:
>>> It is not needed after booting, this patch moves the arm_cpuidle_init()
>>> function to the __init section.
>>>
>>> Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
>>> ---
>>> arch/arm64/include/asm/cpuidle.h | 2 +-
>>> arch/arm64/kernel/cpuidle.c | 2 +-
>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm64/include/asm/cpuidle.h b/arch/arm64/include/asm/cpuidle.h
>>> index 0f74f05..5748d3b 100644
>>> --- a/arch/arm64/include/asm/cpuidle.h
>>> +++ b/arch/arm64/include/asm/cpuidle.h
>>> @@ -4,7 +4,7 @@
>>> #include <asm/proc-fns.h>
>>>
>>> #ifdef CONFIG_CPU_IDLE
>>> -extern int arm_cpuidle_init(unsigned int cpu);
>>> +extern int __init arm_cpuidle_init(unsigned int cpu);
>>
>> No, not here but...
>>
>>> extern int arm_cpuidle_suspend(int index);
>>> #else
>>> static inline int arm_cpuidle_init(unsigned int cpu)
>>
>> ... here so the stub for !CONFIG_CPU_IDLE would be marked as well.
>
> when !CONFIG_CPU_IDLE, arm_cpuidle_init() is inlined, and just return -EOPNOTSUPP;
> Per my understanding, it will be optimized out by compiler. I'm not sure whether
> there is any benefit to mark inlined function as __init. But Per my check, all
> other inlined functions in linux kernel have no __init. What do you think?
Yes, you're right, the inline is sufficient so this means that actually
the first patch was correct. The __init is not needed in extern
declaration. For both versions then:
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Best regards,
Krzysztof
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Jisheng Zhang <jszhang@marvell.com>,
catalin.marinas@arm.com, will.deacon@arm.com,
lorenzo.pieralisi@arm.com
Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2] arm64: cpuidle: add __init section marker to arm_cpuidle_init
Date: Thu, 02 Jul 2015 14:23:48 +0900 [thread overview]
Message-ID: <5594CAE4.1070607@samsung.com> (raw)
In-Reply-To: <20150702125849.67160aa9@xhacker>
On 02.07.2015 13:58, Jisheng Zhang wrote:
> Dear Krzysztof,
>
> On Thu, 2 Jul 2015 12:59:44 +0900
> Krzysztof Kozlowski <k.kozlowski@samsung.com> wrote:
>
>> 2015-07-02 11:14 GMT+09:00 Jisheng Zhang <jszhang@marvell.com>:
>>> It is not needed after booting, this patch moves the arm_cpuidle_init()
>>> function to the __init section.
>>>
>>> Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
>>> ---
>>> arch/arm64/include/asm/cpuidle.h | 2 +-
>>> arch/arm64/kernel/cpuidle.c | 2 +-
>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm64/include/asm/cpuidle.h b/arch/arm64/include/asm/cpuidle.h
>>> index 0f74f05..5748d3b 100644
>>> --- a/arch/arm64/include/asm/cpuidle.h
>>> +++ b/arch/arm64/include/asm/cpuidle.h
>>> @@ -4,7 +4,7 @@
>>> #include <asm/proc-fns.h>
>>>
>>> #ifdef CONFIG_CPU_IDLE
>>> -extern int arm_cpuidle_init(unsigned int cpu);
>>> +extern int __init arm_cpuidle_init(unsigned int cpu);
>>
>> No, not here but...
>>
>>> extern int arm_cpuidle_suspend(int index);
>>> #else
>>> static inline int arm_cpuidle_init(unsigned int cpu)
>>
>> ... here so the stub for !CONFIG_CPU_IDLE would be marked as well.
>
> when !CONFIG_CPU_IDLE, arm_cpuidle_init() is inlined, and just return -EOPNOTSUPP;
> Per my understanding, it will be optimized out by compiler. I'm not sure whether
> there is any benefit to mark inlined function as __init. But Per my check, all
> other inlined functions in linux kernel have no __init. What do you think?
Yes, you're right, the inline is sufficient so this means that actually
the first patch was correct. The __init is not needed in extern
declaration. For both versions then:
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Best regards,
Krzysztof
next prev parent reply other threads:[~2015-07-02 5:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-02 2:14 [PATCH v2] arm64: cpuidle: add __init section marker to arm_cpuidle_init Jisheng Zhang
2015-07-02 2:14 ` Jisheng Zhang
2015-07-02 3:59 ` Krzysztof Kozlowski
2015-07-02 3:59 ` Krzysztof Kozlowski
2015-07-02 4:58 ` Jisheng Zhang
2015-07-02 4:58 ` Jisheng Zhang
2015-07-02 5:23 ` Krzysztof Kozlowski [this message]
2015-07-02 5:23 ` Krzysztof Kozlowski
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=5594CAE4.1070607@samsung.com \
--to=k.kozlowski@samsung.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 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.