summaryrefslogtreecommitdiff
path: root/arch/um/drivers/chan_kern.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-09-09 19:14:02 -0400
committerRichard Weinberger <richard@nod.at>2012-03-25 00:29:53 +0100
commit31efcebb7d7196adcee73027f513d7c0bf572b47 (patch)
treec3064342091568bd66f1f5cd85b3c1972ed697da /arch/um/drivers/chan_kern.c
parentd8c215adbf3901aa7d00a0f17f08d77be689f838 (diff)
um: fix races between line_open() and line_config()
Pull parse_chan_pair() call into setup_one_line(), under the mutex. We really don't want open() to succeed before parse_chan_pair() had been done (or after it has failed, BTW). We also want "remove con<n>" to free irqs, etc., same as "config con<n>=none". Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/drivers/chan_kern.c')
-rw-r--r--arch/um/drivers/chan_kern.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c
index 420e2c800799..3a95498155a1 100644
--- a/arch/um/drivers/chan_kern.c
+++ b/arch/um/drivers/chan_kern.c
@@ -551,6 +551,9 @@ int parse_chan_pair(char *str, struct line *line, int device,
INIT_LIST_HEAD(chans);
}
+ if (!str)
+ return 0;
+
out = strchr(str, ',');
if (out != NULL) {
in = str;