mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 04:46:01 +01:00
cmd: mvebu/bubt: Correctly propagate failure during tftp transport
net_loop() returns signed int type and negative value represents error. tftp_read_file() returns unsigned size_t type and zero value represents error. Casting signed negative value to unsigned size_t type cause losing information about error and bubt thinks that no error happened, and continue erasing SPI-NOR which cause malfunction device. Fix this issue by correctly propagating failure during tftp transport. With this change when there is no eth link, bubt does not erase SPI-NOR anymore. => bubt Burning U-Boot image "flash-image.bin" from "tftp" to "spi" ethernet@30000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! ethernet@30000: No link. Error: Failed to read file flash-image.bin from tftp Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
5d2f7d306c
commit
4b9521f242
@ -455,11 +455,14 @@ static int is_usb_active(void)
|
|||||||
#ifdef CONFIG_CMD_NET
|
#ifdef CONFIG_CMD_NET
|
||||||
static size_t tftp_read_file(const char *file_name)
|
static size_t tftp_read_file(const char *file_name)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* update global variable image_load_addr before tftp file from network
|
* update global variable image_load_addr before tftp file from network
|
||||||
*/
|
*/
|
||||||
image_load_addr = get_load_addr();
|
image_load_addr = get_load_addr();
|
||||||
return net_loop(TFTPGET);
|
ret = net_loop(TFTPGET);
|
||||||
|
return ret > 0 ? ret : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int is_tftp_active(void)
|
static int is_tftp_active(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user