[patch 18/18] PS3: Device registration routines.

Geert Uytterhoeven Geert.Uytterhoeven at sonycom.com
Wed Jun 6 22:21:10 EST 2007


On Tue, 5 Jun 2007, Geoff Levand wrote:
> +static int __init ps3_register_vuart_devices(void)
> +{
> +	int result;
> +	unsigned int port_number;
> +
> +	pr_debug(" -> %s:%d\n", __func__, __LINE__);
> +
> +	result = ps3_repository_read_vuart_av_port(&port_number);
> +
> +	if (result)
> +		port_number = 0; /* av default */
> +
> +	result = ps3_setup_vuart_device(PS3_MATCH_ID_AV_SETTINGS, port_number);
> +	WARN_ON(result);
> +
> +	ps3_repository_read_vuart_sysmgr_port(&port_number);
    ^^^^
> +
> +	if (result)
> +		port_number = 2; /* sysmgr default */

You forgot to assign the return value of
ps3_repository_read_vuart_sysmgr_port(). As the system manager vuart port
number is not in the repository on the firmware I'm using, port_number contains
garbage, and ps3_vuart_probe() will BUG().

As this problem is present in your current git tree, here's a patch:

Subject: [PATCH] Check return value of ps3_repository_read_vuart_sysmgr_port()

Add a missing assignment of the return value of
ps3_repository_read_vuart_sysmgr_port(). As the system manager vuart port
number is not in the repository on the firmware I'm using, port_number contains
garbage, and ps3_vuart_probe() will BUG().

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven at sonycom.com>

--- a/arch/powerpc/platforms/ps3/device-init.c	2007-06-06 13:58:43.000000000 +0200
+++ b/arch/powerpc/platforms/ps3/device-init.c	2007-06-06 14:12:35.000000000 +0200
@@ -505,15 +505,13 @@ static int __init ps3_register_vuart_dev
 	pr_debug(" -> %s:%d\n", __func__, __LINE__);
 
 	result = ps3_repository_read_vuart_av_port(&port_number);
-
 	if (result)
 		port_number = 0; /* av default */
 
 	result = ps3_setup_vuart_device(PS3_MATCH_ID_AV_SETTINGS, port_number);
 	WARN_ON(result);
 
-	ps3_repository_read_vuart_sysmgr_port(&port_number);
-
+	result = ps3_repository_read_vuart_sysmgr_port(&port_number);
 	if (result)
 		port_number = 2; /* sysmgr default */
 
Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven at sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium



More information about the Linuxppc-dev mailing list