diff options
| author | Timur Tabi <timur@freescale.com> | 2012-05-04 12:21:28 +0000 | 
|---|---|---|
| committer | Andy Fleming <afleming@freescale.com> | 2012-07-06 17:30:32 -0500 | 
| commit | 1fc0d59486571bad2a2c4e4a3e5c8b764c46b583 (patch) | |
| tree | 7cec44e27d5669b2c83d438db83099c1899c3b5e | |
| parent | fb365a8a9664bbaef75df93fd115d6d06f389b89 (diff) | |
| download | olio-uboot-2014.01-1fc0d59486571bad2a2c4e4a3e5c8b764c46b583.tar.xz olio-uboot-2014.01-1fc0d59486571bad2a2c4e4a3e5c8b764c46b583.zip | |
powerpc/85xx: fdt_set_phy_handle() should return an error code
fdt_set_phy_handle() makes several FDT calls that could fail, so it should
not be hiding these errors.
Signed-off-by: Timur Tabi <timur@freescale.com>
| -rw-r--r-- | board/freescale/common/fman.c | 36 | ||||
| -rw-r--r-- | board/freescale/common/fman.h | 2 | 
2 files changed, 20 insertions, 18 deletions
| diff --git a/board/freescale/common/fman.c b/board/freescale/common/fman.c index 8a55fde6f..6ddf81620 100644 --- a/board/freescale/common/fman.c +++ b/board/freescale/common/fman.c @@ -37,31 +37,33 @@   * ... update that Ethernet node's phy-handle property to point to the   * ethernet-phy node.  This is how we link an Ethernet node to its PHY, so each   * PHY in a virtual MDIO node must have an alias. + * + * Returns 0 on success, or a negative FDT error code on error.   */ -void fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr, +int fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr,  			const char *alias)  { -	int offset, ph; +	int offset; +	unsigned int ph;  	const char *path;  	/* Get a path to the node that 'alias' points to */  	path = fdt_get_alias(fdt, alias); -	if (path) { -		/* Get the offset of that node */ -		int off = fdt_path_offset(fdt, path); -		if (off > 0) -			ph = fdt_create_phandle(fdt, off); -		else -			return; -	} else { -		return ; -	} +	if (!path) +		return -FDT_ERR_BADPATH; + +	/* Get the offset of that node */ +	offset = fdt_path_offset(fdt, path); +	if (offset < 0) +		return offset; -	/* failed to create a phandle */ -	if (ph <= 0) -		return ; +	ph = fdt_create_phandle(fdt, offset); +	if (!ph) +		return -FDT_ERR_BADPHANDLE;  	offset = fdt_node_offset_by_compat_reg(fdt, compat, addr); -	if (offset > 0) -		fdt_setprop(fdt, offset, "phy-handle", &ph, sizeof(ph)); +	if (offset < 0) +		return offset; + +	return fdt_setprop(fdt, offset, "phy-handle", &ph, sizeof(ph));  } diff --git a/board/freescale/common/fman.h b/board/freescale/common/fman.h index 19ef7c4fb..d39ef080c 100644 --- a/board/freescale/common/fman.h +++ b/board/freescale/common/fman.h @@ -20,7 +20,7 @@  #ifndef __FMAN_BOARD_HELPER__  #define __FMAN_BOARD_HELPER__ -void fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr, +int fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr,  			const char *alias);  #endif |