[PATCH] serial: goldfish: return error when device address is invalid

Kuan-Wei Chiu visitorckw at gmail.com
Mon Jun 8 17:26:44 CEST 2026


On Sun, Jun 07, 2026 at 09:15:42PM +0530, Naveen Kumar Chaudhary wrote:
> goldfish_serial_of_to_plat() returns success even when dev_read_addr()
> fails to find a valid address. This leaves plat->reg unset and defers
> the failure to probe().
> 
> Return -EINVAL immediately when the address is FDT_ADDR_T_NONE so the
> failure is reported at the of_to_plat stage where it belongs.
> 
> Signed-off-by: Naveen Kumar Chaudhary <naveen.osdev at gmail.com>

Acked-by: Kuan-Wei Chiu <visitorckw at gmail.com>

Thanks for the patch.

When I originally wrote this code, I assumed of_to_plat() would always
be called by the driver core regardless of the instantiation method.
After double-checking how the m68k virt instantiates the driver, I
realize it actually bypasses this function. Furthermore, there are
currently no in-tree users passing a device tree to this driver anyway.

Regards,
Kuan-Wei

> ---
>  drivers/serial/serial_goldfish.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/serial/serial_goldfish.c b/drivers/serial/serial_goldfish.c
> index 91dc040fcf2..732f167caae 100644
> --- a/drivers/serial/serial_goldfish.c
> +++ b/drivers/serial/serial_goldfish.c
> @@ -74,8 +74,10 @@ static int goldfish_serial_of_to_plat(struct udevice *dev)
>  	fdt_addr_t addr;
>  
>  	addr = dev_read_addr(dev);
> -	if (addr != FDT_ADDR_T_NONE)
> -		plat->reg = addr;
> +	if (addr == FDT_ADDR_T_NONE)
> +		return -EINVAL;
> +
> +	plat->reg = addr;
>  
>  	return 0;
>  }
> -- 
> 2.43.0
> 


More information about the U-Boot mailing list