
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

The find_udbg_vterm() used to initialize the early boot console on LPAR
machines will not work properly on some recent pSeries because the firmware
is playing tricks with the "phandle" values used to identify firmware
nodes.  This patch fixes that by using the full path instead.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/ppc64/kernel/pSeries_lpar.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN arch/ppc64/kernel/pSeries_lpar.c~ppc64-fix-find_udbg_vterm arch/ppc64/kernel/pSeries_lpar.c
--- 25/arch/ppc64/kernel/pSeries_lpar.c~ppc64-fix-find_udbg_vterm	2004-10-06 19:19:48.966605696 -0700
+++ 25-akpm/arch/ppc64/kernel/pSeries_lpar.c	2004-10-06 19:19:48.970605088 -0700
@@ -135,7 +135,6 @@ void udbg_init_debug_lpar(void)
 int find_udbg_vterm(void)
 {
 	struct device_node *stdout_node;
-	phandle *stdout_ph;
 	u32 *termno;
 	char *name;
 	int found = 0;
@@ -143,10 +142,10 @@ int find_udbg_vterm(void)
 	/* find the boot console from /chosen/stdout */
 	if (!of_chosen)
 		return 0;
-	stdout_ph = (phandle *)get_property(of_chosen, "linux,stdout-package", NULL);
-	if (stdout_ph == NULL)
+	name = (char *)get_property(of_chosen, "linux,stdout-path", NULL);
+	if (name == NULL)
 		return 0;
-	stdout_node = of_find_node_by_phandle(*stdout_ph);
+	stdout_node = of_find_node_by_path(name);
 	if (!stdout_node)
 		return 0;
 
_
