When picking up boot/reboot after we've sent our result packet, use the previously parsed command rather than redoing the strcmp.
Signed-off-by: Alex Kiernan <alex.kier...@gmail.com> --- Changes in v2: None net/fastboot.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/net/fastboot.c b/net/fastboot.c index edf78df..ad8c101 100644 --- a/net/fastboot.c +++ b/net/fastboot.c @@ -141,6 +141,7 @@ static void fastboot_send(struct fastboot_header fb_header, char *fastboot_data, uchar *packet; uchar *packet_base; int len = 0; + int cmd = -1; const char *error_msg = "An error occurred."; short tmp; struct fastboot_header fb_response_header = fb_header; @@ -192,15 +193,13 @@ static void fastboot_send(struct fastboot_header fb_header, char *fastboot_data, if (cmd_parameter) cmd_parameter = strdup(cmd_parameter); } else { - int i; - - i = fastboot_lookup_command(cmd_string); - if (i >= 0) { + cmd = fastboot_lookup_command(cmd_string); + if (cmd >= 0) { void (*fb_call)(char *cmd_parameter, char *fastboot_data, unsigned int fastboot_data_len, char *response); - fb_call = fb_net_dispatch[i]; + fb_call = fb_net_dispatch[cmd]; if (fb_call) { fb_call(cmd_parameter, fastboot_data, fastboot_data_len, response); @@ -244,10 +243,10 @@ static void fastboot_send(struct fastboot_header fb_header, char *fastboot_data, /* Continue boot process after sending response */ if (!strncmp("OKAY", response, 4)) { - if (!strcmp("boot", cmd_string)) { + if (cmd == FB_CMD_BOOT) { boot_downloaded_image(); - } else if (!strncmp("reboot", cmd_string, 6)) { - /* Matches reboot or reboot-bootloader */ + } else if (cmd == FB_CMD_REBOOT || + cmd == FB_CMD_REBOOT_BOOTLOADER) { do_reset(NULL, 0, 0, NULL); } } -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot