Re: [PATCH v2 7/8] mm/zsmalloc: add __init,__exit attribute

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2016-07-06 10:48 GMT+08:00 Minchan Kim <minchan@xxxxxxxxxx>:
> On Tue, Jul 05, 2016 at 10:00:28AM +0900, Sergey Senozhatsky wrote:
>> Hello Ganesh,
>>
>> On (07/04/16 17:21), Ganesh Mahendran wrote:
>> > > On (07/04/16 14:49), Ganesh Mahendran wrote:
>> > > [..]
>> > >> -static void zs_unregister_cpu_notifier(void)
>> > >> +static void __exit zs_unregister_cpu_notifier(void)
>> > >>  {
>> > >
>> > > this __exit symbol is called from `__init zs_init()' and thus is
>> > > free to crash.
>> >
>> > I change code to force the code goto notifier_fail where the
>> > zs_unregister_cpu_notifier will be called.
>> > I tested with zsmalloc module buildin and built as a module.
>>
>> sorry, not sure I understand what do you mean by this.
>
> It seems he tested it both builtin and module with simulating to fail
> zs_register_cpu_notifier so that finally called zs_unergister_cpu_notifier.
> With that, he cannot find any problem.

Yes, This is what I mean.

>>
>
>>
>> > Please correct me, if I miss something.
>>
>> you have an __exit section function being called from
>> __init section:
>>
>> static void __exit zs_unregister_cpu_notifier(void)
>> {
>> }
>>
>> static int __init zs_init(void)
>> {
>>       zs_unregister_cpu_notifier();
>> }
>>
>> it's no good.
>
> Agree.
>
> I didn't look at linker script how to handle it. Although it works well,
> it would be not desirable to mark __exit to the function we already
> know it would be called from non-exit functions.

I will revert change in this patch.
Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]