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.de...@gmail.com> > --- > 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
signature.asc
Description: OpenPGP digital signature