diff options
| author | Tom Rini <[email protected]> | 2024-11-22 14:43:17 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-11-22 15:04:54 -0600 |
| commit | 52c0e5f8a39ef022ee5ab2dfd67661d1d34941c7 (patch) | |
| tree | ecb418b0233d67abb0e946128fc5f383c3caac5f /net | |
| parent | 35d5ad6cf25f8c0ac39f90a8a51eb77e6e002d0d (diff) | |
| parent | 0e3cd1313f031acd7e2e29b5742e625f842b52fa (diff) | |
Merge branch '2024-11-22-assorted-fixes'
- Assorted additional lwIP fixes
- Assorted test fixes
- Assorted other localized fixes
Diffstat (limited to 'net')
| -rw-r--r-- | net/lwip/dhcp.c | 20 | ||||
| -rw-r--r-- | net/lwip/net-lwip.c | 6 | ||||
| -rw-r--r-- | net/lwip/wget.c | 6 |
3 files changed, 21 insertions, 11 deletions
diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c index 23b56226921..9b882cf5b87 100644 --- a/net/lwip/dhcp.c +++ b/net/lwip/dhcp.c @@ -27,9 +27,9 @@ static void call_lwip_dhcp_fine_tmr(void *ctx) static int dhcp_loop(struct udevice *udev) { - char *ipstr = "ipaddr\0\0"; - char *maskstr = "netmask\0\0"; - char *gwstr = "gatewayip\0\0"; + char ipstr[] = "ipaddr\0\0"; + char maskstr[] = "netmask\0\0"; + char gwstr[] = "gatewayip\0\0"; unsigned long start; struct netif *netif; struct dhcp *dhcp; @@ -111,9 +111,21 @@ static int dhcp_loop(struct udevice *udev) int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { + int ret; + eth_set_current(); - return dhcp_loop(eth_get_dev()); + ret = dhcp_loop(eth_get_dev()); + if (ret) + return ret; + + if (argc > 1) { + struct cmd_tbl cmdtp = {}; + + return do_tftpb(&cmdtp, 0, argc, argv); + } + + return CMD_RET_SUCCESS; } int dhcp_run(ulong addr, const char *fname, bool autoload) diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c index 470217781a4..b863047f598 100644 --- a/net/lwip/net-lwip.c +++ b/net/lwip/net-lwip.c @@ -91,9 +91,9 @@ struct netif *net_lwip_get_netif(void) static int get_udev_ipv4_info(struct udevice *dev, ip4_addr_t *ip, ip4_addr_t *mask, ip4_addr_t *gw) { - char *ipstr = "ipaddr\0\0"; - char *maskstr = "netmask\0\0"; - char *gwstr = "gatewayip\0\0"; + char ipstr[] = "ipaddr\0\0"; + char maskstr[] = "netmask\0\0"; + char gwstr[] = "gatewayip\0\0"; int idx = dev_seq(dev); char *env; diff --git a/net/lwip/wget.c b/net/lwip/wget.c index e85d57bc1dd..062aa7c44f0 100644 --- a/net/lwip/wget.c +++ b/net/lwip/wget.c @@ -42,7 +42,6 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len, size_t *olen) { struct udevice *dev; - u64 rng = 0; int ret; *olen = 0; @@ -52,12 +51,11 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len, log_err("Failed to get an rng: %d\n", ret); return ret; } - ret = dm_rng_read(dev, &rng, sizeof(rng)); + ret = dm_rng_read(dev, output, len); if (ret) return ret; - memcpy(output, &rng, len); - *olen = sizeof(rng); + *olen = len; return 0; } |
