aboutsummaryrefslogtreecommitdiff
path: root/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/files/drivers/platform/mikrotik/routerboot.c')
-rw-r--r--target/linux/generic/files/drivers/platform/mikrotik/routerboot.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
index 96a100a933..f496dd7e0c 100644
--- a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
+++ b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c
@@ -166,11 +166,20 @@ static int __init routerboot_init(void)
if (!rb_kobj)
return -ENOMEM;
- return rb_hardconfig_init(rb_kobj);
+ /*
+ * We ignore the following return values and always register.
+ * These init() routines are designed so that their failed state is
+ * always manageable by the corresponding exit() calls.
+ */
+ rb_hardconfig_init(rb_kobj);
+ rb_softconfig_init(rb_kobj);
+
+ return 0;
}
static void __exit routerboot_exit(void)
{
+ rb_softconfig_exit();
rb_hardconfig_exit();
kobject_put(rb_kobj); // recursive afaict
}