Re: [PATCH 12/21] metag: delay: remove inline marking of EXPORT_SYMBOLfunctions

From: James Hogan
Date: Thu May 09 2013 - 07:04:24 EST


On 09/05/13 11:36, Denis Efremov wrote:
> EXPORT_SYMBOL and inline directives are contradictory to each other.
> The patch fixes this inconsistency.
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Denis Efremov <yefremov.denis@xxxxxxxxx>
> ---
> arch/metag/lib/delay.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/metag/lib/delay.c b/arch/metag/lib/delay.c
> index 0b308f4..7ff0ca7 100644
> --- a/arch/metag/lib/delay.c
> +++ b/arch/metag/lib/delay.c
> @@ -36,7 +36,7 @@ void __delay(unsigned long loops)
> }
> EXPORT_SYMBOL(__delay);
>
> -inline void __const_udelay(unsigned long xloops)
> +void __const_udelay(unsigned long xloops)
> {
> u64 loops = (u64)xloops * (u64)loops_per_jiffy * HZ;
> __delay(loops >> 32);
>

The inline still has an effect on code generation if other functions in
the same compilation unit use it, so this isn't really a trivial change.

I.e. before this patch __udelay and __ndelay inlined __const_udelay, but
after it they are changed to just multiply & branch.

Therefore I'd like to hear some more justification for these changes.

Cheers
James

Attachment: signature.asc
Description: OpenPGP digital signature