Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31555213 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Revert "hvc_console: display printk messages on console."



This reverts commit 36116245.

It causes an infinite loop when booting Linux under Xen, as so:

  [    2.382984] console [hvc0] enabled
  [    2.382984] console [hvc0] enabled
  [    2.382984] console [hvc0] enabled
  ...

as reported by Konrad Rzeszutek Wilk.  And Rusty reports the same for
lguest.  He goes on to say:

   "This is not a concurrency problem: the issue seems to be that
    calling register_console() twice on the same struct console is a bad
    idea."

and Greg says he'll fix it up properly at some point later. Revert for now.

Reported-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reported-by: default avatarRusty Russell <rusty@ozlabs.org>
Requested-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Cc: Miche Baker-Harvey <miche@google.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0084e475
Loading
Loading
Loading
Loading
+1 −6
Original line number Original line Diff line number Diff line
@@ -862,13 +862,9 @@ 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;
}
}
@@ -879,7 +875,6 @@ 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);