print_parse_debug("MSG_START. size=%d\n", size);
ret = msg_start(&mb);
break;
- case MSG_STOP: {
- struct cpumask mask;
-
+ case MSG_STOP:
print_parse_debug("MSG_STOP. size=%d\n", size);
-
- swap_disable_nonboot_cpus_lock(&mask);
ret = msg_stop(&mb);
- swap_enable_nonboot_cpus_unlock(&mask);
-
break;
- }
case MSG_CONFIG:
print_parse_debug("MSG_CONFIG. size=%d\n", size);
ret = msg_config(&mb);
return ret;
}
-static int reg_msg_handler(void)
+
+static struct cpumask cpumask;
+
+static int parset_init(void)
{
+ swap_disable_nonboot_cpus_lock(&cpumask);
+
set_msg_handler(msg_handler);
return 0;
}
-static void unreg_msg_handler(void)
+static void parser_exit(void)
{
set_msg_handler(NULL);
pfg_put_all();
+ swap_enable_nonboot_cpus_unlock(&cpumask);
}
static int once(void)
return ret;
}
-SWAP_LIGHT_INIT_MODULE(once, reg_msg_handler, unreg_msg_handler, NULL, NULL);
+SWAP_LIGHT_INIT_MODULE(once, parset_init, parser_exit, NULL, NULL);
MODULE_LICENSE("GPL");