diff --git a/cmd/sata.c b/cmd/sata.c index 7817442532..1df9674b5d 100644 --- a/cmd/sata.c +++ b/cmd/sata.c @@ -91,8 +91,10 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc == 3) devnum = (int)simple_strtoul(argv[2], NULL, 10); - if (!strcmp(argv[1], "stop")) + if (!strcmp(argv[1], "stop")) { + sata_curr_device = -1; return sata_remove(devnum); + } if (!strcmp(argv[1], "init")) { if (sata_curr_device != -1) { @@ -101,7 +103,11 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return rc; } - return sata_probe(devnum); + rc = sata_probe(devnum); + if (rc < 0) + return CMD_RET_FAILURE; + sata_curr_device = rc; + return CMD_RET_SUCCESS; } }