aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel/printk
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2020-02-03 15:31:29 +0200
committerPetr Mladek <pmladek@suse.com>2020-02-11 10:44:17 +0100
commite78bedbd42b7caa65551f3d56cbff451ccbd0aee (patch)
tree4d4c53cf8b02afe554c90da41d32290af97c40ed /kernel/printk
parentconsole: Avoid positive return code from unregister_console() (diff)
downloadwireguard-linux-e78bedbd42b7caa65551f3d56cbff451ccbd0aee.tar.xz
wireguard-linux-e78bedbd42b7caa65551f3d56cbff451ccbd0aee.zip
console: Don't notify user space when unregister non-listed console
If console is not on the list then there is nothing for us to do and sysfs notify is pointless. Note, that nr_ext_console_drivers is being changed only for listed consoles. Suggested-by: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> Link: http://lkml.kernel.org/r/20200203133130.11591-6-andriy.shevchenko@linux.intel.com To: linux-kernel@vger.kernel.org To: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com>
Diffstat (limited to 'kernel/printk')
-rw-r--r--kernel/printk/printk.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 61d188f4c672..f435a17ef988 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2836,7 +2836,10 @@ int unregister_console(struct console *console)
}
}
- if (!res && (console->flags & CON_EXTENDED))
+ if (res)
+ goto out_disable_unlock;
+
+ if (console->flags & CON_EXTENDED)
nr_ext_console_drivers--;
/*
@@ -2849,6 +2852,13 @@ int unregister_console(struct console *console)
console->flags &= ~CON_ENABLED;
console_unlock();
console_sysfs_notify();
+
+ return res;
+
+out_disable_unlock:
+ console->flags &= ~CON_ENABLED;
+ console_unlock();
+
return res;
}
EXPORT_SYMBOL(unregister_console);