Page MenuHomeFreeBSD

D54255.id168261.diff
No OneTemporary

D54255.id168261.diff

diff --git a/sys/dev/sdhci/sdhci.c b/sys/dev/sdhci/sdhci.c
--- a/sys/dev/sdhci/sdhci.c
+++ b/sys/dev/sdhci/sdhci.c
@@ -2183,6 +2183,18 @@
int err = 0;
SDHCI_LOCK(slot);
+ /*
+ * If the bus is busy at dump time, it may have stopped in the middle of
+ * a transaction. Try to complete that transaction before continuing.
+ */
+ if (slot->bus_busy && dumping) {
+ SDHCI_UNLOCK(slot);
+ while (slot->req != NULL) {
+ sdhci_generic_intr(slot);
+ DELAY(10);
+ }
+ return (0);
+ }
while (slot->bus_busy)
msleep(slot, &slot->mtx, 0, "sdhciah", 0);
slot->bus_busy++;

File Metadata

Mime Type
text/plain
Expires
Sat, May 16, 8:03 PM (7 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33149923
Default Alt Text
D54255.id168261.diff (584 B)

Event Timeline