diff options
Diffstat (limited to 'target/linux/generic/files/drivers/platform/mikrotik/routerboot.c')
-rw-r--r-- | target/linux/generic/files/drivers/platform/mikrotik/routerboot.c | 11 |
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 } |