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>