mmc: core: Fix UHS-I SD 1.8V workaround branch
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 15 Aug 2022 07:33:20 +0000 (10:33 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Sep 2022 10:28:04 +0000 (12:28 +0200)
commit 15c56208c79c340686869c31595c209d1431c5e8 upstream.

When introduced, upon success, the 1.8V fixup workaround in
mmc_sd_init_card() would branch to practically the end of the function, to
a label named "done". Unfortunately, perhaps due to the label name, over
time new code has been added that really should have come after "done" not
before it. Let's fix the problem by moving the label to the correct place
and rename it "cont".

Fixes: 045d705dc1fb ("mmc: core: Enable the MMC host software queue for the SD card")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Seunghui Lee <sh043.lee@samsung.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220815073321.63382-2-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/core/sd.c

index 44e134f..6eeafde 100644 (file)
@@ -1491,7 +1491,7 @@ retry:
                                        mmc_remove_card(card);
                                goto retry;
                        }
-                       goto done;
+                       goto cont;
                }
        }
 
@@ -1527,7 +1527,7 @@ retry:
                        mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
                }
        }
-
+cont:
        if (!oldcard) {
                /* Read/parse the extension registers. */
                err = sd_read_ext_regs(card);
@@ -1559,7 +1559,7 @@ retry:
                err = -EINVAL;
                goto free_card;
        }
-done:
+
        host->card = card;
        return 0;