Re: [PATCH] arch/avr32/mm/cache.c: export symbol flush_icache_range() for module using

From: Chen Gang
Date: Sun Mar 09 2014 - 11:19:25 EST


On 03/09/2014 06:17 AM, Hans-Christian Egtvedt wrote:
> Around Sun 09 Mar 2014 05:47:04 +0800 or thereabout, Chen Gang wrote:
>>
>> After this patch, our linux kernel can pass "avr32-linux-" allmodconfig
>> (it contents quite a few of warnings, but after check, I guess they are
>> not kernel's issue).
>
> That sounds great, I am a bit surprised however that the lkdtm module need
> flush_icache_range. Would have been interesting to look into what causes this
> dependency.
>

"driver/misc/lkdtm.c" will use this flush_icache_range().

And some architectures export it to modules.

[root@gchen arch]# grep -rn flush_icache_range * | grep EXPORT
arm64/mm/flush.c:105:EXPORT_SYMBOL(flush_icache_range);
avr32/mm/cache.c:114:EXPORT_SYMBOL(flush_icache_range);
m68k/mm/cache.c:106:EXPORT_SYMBOL(flush_icache_range);
mn10300/mm/cache-inv-icache.c:129:EXPORT_SYMBOL(flush_icache_range);
mn10300/mm/cache-flush-icache.c:155:EXPORT_SYMBOL(flush_icache_range);
sparc/mm/init_64.c:435:EXPORT_SYMBOL(flush_icache_range);


Welcome any more details information by any other members, thanks.


> I will pull this into my for-linus branch, and push during the next merge
> window.
>

OK, thanks

>> On 03/09/2014 05:35 AM, Chen Gang wrote:
>>> Need export symbol flush_icache_range() to modules, just like another
>>> platforms have done, or can not pass compiling.
>>>
>>> The related error (with allmodconfig under avr32):
>>>
>>> ERROR: "flush_icache_range" [drivers/misc/lkdtm.ko] undefined!
>>> make[1]: *** [__modpost] Error 1
>>> make: *** [modules] Error 2
>>>
>>>
>>> Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
>
> Acked-by: Hans-Christian Egtvedt <egtvedt@xxxxxxxxxxxx>
>

OK, thanks.

>>> ---
>>> arch/avr32/mm/cache.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/arch/avr32/mm/cache.c b/arch/avr32/mm/cache.c
>>> index 6a46ecd..85d635c 100644
>>> --- a/arch/avr32/mm/cache.c
>>> +++ b/arch/avr32/mm/cache.c
>>> @@ -111,6 +111,7 @@ void flush_icache_range(unsigned long start, unsigned long end)
>>> __flush_icache_range(start & ~(linesz - 1),
>>> (end + linesz - 1) & ~(linesz - 1));
>>> }
>>> +EXPORT_SYMBOL(flush_icache_range);
>>>
>>> /*
>>> * This one is called from __do_fault() and do_swap_page().


--
Chen Gang

Open, share and attitude like air, water and life which God blessed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/