diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2020-09-28 13:17:36 +0300 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2020-09-28 13:17:36 +0300 |
commit | 21685f9a7d7cdb3f68d83352377571fb24d03134 (patch) | |
tree | 73effe4466ee700fa85be940a00bd03785faf6fb | |
parent | 94d4c3cffefc702da2f906bfc68b774659f1c8fc (diff) | |
parent | afd7f30886b0b445a4240a99020458a9772f2b89 (diff) | |
download | linux-21685f9a7d7cdb3f68d83352377571fb24d03134.tar.xz |
Merge branch 'fixes' into next
-rw-r--r-- | drivers/memstick/core/memstick.c | 4 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci-pci-core.c | 3 | ||||
-rw-r--r-- | include/linux/memstick.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index 693ee73eb291..ef03d6fafc5c 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c @@ -441,6 +441,9 @@ static void memstick_check(struct work_struct *work) } else if (host->card->stop) host->card->stop(host->card); + if (host->removing) + goto out_power_off; + card = memstick_alloc_card(host); if (!card) { @@ -545,6 +548,7 @@ EXPORT_SYMBOL(memstick_add_host); */ void memstick_remove_host(struct memstick_host *host) { + host->removing = 1; flush_workqueue(workqueue); mutex_lock(&host->lock); if (host->card) diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c index d0c8d39d5dbd..23da7f7fe093 100644 --- a/drivers/mmc/host/sdhci-pci-core.c +++ b/drivers/mmc/host/sdhci-pci-core.c @@ -937,7 +937,8 @@ static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot) static bool glk_broken_cqhci(struct sdhci_pci_slot *slot) { return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC && - dmi_match(DMI_BIOS_VENDOR, "LENOVO"); + (dmi_match(DMI_BIOS_VENDOR, "LENOVO") || + dmi_match(DMI_SYS_VENDOR, "IRBIS")); } static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot) diff --git a/include/linux/memstick.h b/include/linux/memstick.h index da4c65f9435f..ebf73d4ee969 100644 --- a/include/linux/memstick.h +++ b/include/linux/memstick.h @@ -281,6 +281,7 @@ struct memstick_host { struct memstick_dev *card; unsigned int retries; + bool removing; /* Notify the host that some requests are pending. */ void (*request)(struct memstick_host *host); |