summaryrefslogtreecommitdiffstats
path: root/freebsd
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2024-02-16 12:42:47 -0600
committerJoel Sherrill <joel@rtems.org>2024-03-05 08:50:46 -0600
commitbeb423ba5b96026af25d42672b817c6cebc7f619 (patch)
treeb5cfb54356caa51cfcffedf90d4b9a18042cee9b /freebsd
parentrtemsbsd/rtems: Don't leak memory on error (diff)
downloadrtems-libbsd-beb423ba5b96026af25d42672b817c6cebc7f619.tar.bz2
freebsd/mmcsd: Disable on-device cache usage
This disables any usage of the on-device R/W cache since all device cache maintenance functions are compiled out under RTEMS leaving no way to flush the cache before system reset and making data loss possible.
Diffstat (limited to 'freebsd')
-rw-r--r--freebsd/sys/dev/mmc/mmcsd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/freebsd/sys/dev/mmc/mmcsd.c b/freebsd/sys/dev/mmc/mmcsd.c
index 11cf945f..ff517abc 100644
--- a/freebsd/sys/dev/mmc/mmcsd.c
+++ b/freebsd/sys/dev/mmc/mmcsd.c
@@ -546,6 +546,11 @@ mmcsd_attach(device_t dev)
*/
rev = ext_csd[EXT_CSD_REV];
+/*
+ * Cache flush functions are currently not available. Use of on-device cache can
+ * cause data loss.
+ */
+#ifndef __rtems__
/*
* With revision 1.5 (MMC v4.5, EXT_CSD_REV == 6) and later, take
* advantage of the device R/W cache if present and useage is not
@@ -567,6 +572,7 @@ mmcsd_attach(device_t dev)
sc->flags |= MMCSD_FLUSH_CACHE;
}
}
+#endif
/*
* Ignore user-creatable enhanced user data area and general purpose