From 4045d108ca8b190811dd2e8f8e3596fd0ee4153e Mon Sep 17 00:00:00 2001 From: Ye Li Date: Wed, 24 May 2017 02:12:04 -0500 Subject: [PATCH] MLK-14930-1 cmd: sata: Fix sata init and stop issue When sata stop is executed, the sata_curr_device is not reset to -1, so any following sata commands will not initialize the sata again and cause problem. Additional, in sata init implementation, the sata_curr_device should be updated, otherwise sata will be initialized again when doing other sata commands like read/write/info/part/device. Signed-off-by: Ye Li --- cmd/sata.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/cmd/sata.c b/cmd/sata.c index 4c53022ff6..667228124d 100644 --- a/cmd/sata.c +++ b/cmd/sata.c @@ -21,15 +21,21 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { int rc = 0; - if (argc == 2 && strcmp(argv[1], "stop") == 0) + if (argc == 2 && strcmp(argv[1], "stop") == 0) { + sata_curr_device = -1; return sata_stop(); + } if (argc == 2 && strcmp(argv[1], "init") == 0) { if (sata_curr_device != -1) sata_stop(); - return (sata_initialize() < 0) ? - CMD_RET_FAILURE : CMD_RET_SUCCESS; + rc = sata_initialize(); + if (rc == -1) + return CMD_RET_FAILURE; + + sata_curr_device = rc; + return CMD_RET_SUCCESS; } /* If the user has not yet run `sata init`, do it now */ -- 2.17.1