Commit 36116245 authored by Miche Baker-Harvey's avatar Miche Baker-Harvey Committed by Greg Kroah-Hartman

hvc_console: display printk messages on console.

printk only works for "registered consoles."  Currently, the hvc_console
code calls register_console() from hvc_instantiate(), but that's only
used in the early console case.  In hvc_alloc(), register_console() was
not called.

Add a call to register_console() in hvc_alloc(), set up the index in
the hvc_console, and set up the necessary vtermnos[] and cons_op[]
entries so that printk functions work.
Signed-off-by: default avatarMiche Baker-Harvey <miche@google.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 53d785cc
...@@ -852,7 +852,7 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data, ...@@ -852,7 +852,7 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
* find index to use: * find index to use:
* see if this vterm id matches one registered for console. * see if this vterm id matches one registered for console.
*/ */
for (i=0; i < MAX_NR_HVC_CONSOLES; i++) for (i = 0; i < MAX_NR_HVC_CONSOLES; i++)
if (vtermnos[i] == hp->vtermno && if (vtermnos[i] == hp->vtermno &&
cons_ops[i] == hp->ops) cons_ops[i] == hp->ops)
break; break;
...@@ -862,9 +862,13 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data, ...@@ -862,9 +862,13 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
i = ++last_hvc; i = ++last_hvc;
hp->index = i; hp->index = i;
hvc_console.index = i;
vtermnos[i] = vtermno;
cons_ops[i] = ops;
list_add_tail(&(hp->next), &hvc_structs); list_add_tail(&(hp->next), &hvc_structs);
spin_unlock(&hvc_structs_lock); spin_unlock(&hvc_structs_lock);
register_console(&hvc_console);
return hp; return hp;
} }
...@@ -875,6 +879,7 @@ int hvc_remove(struct hvc_struct *hp) ...@@ -875,6 +879,7 @@ int hvc_remove(struct hvc_struct *hp)
unsigned long flags; unsigned long flags;
struct tty_struct *tty; struct tty_struct *tty;
unregister_console(&hvc_console);
spin_lock_irqsave(&hp->lock, flags); spin_lock_irqsave(&hp->lock, flags);
tty = tty_kref_get(hp->tty); tty = tty_kref_get(hp->tty);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment