Some drivers can't easily work with buffers that are not cache aligned
and have an arbitrary length. Therefore use an aligned malloc instead.
---
 freebsd/sys/dev/mmc/mmcsd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/freebsd/sys/dev/mmc/mmcsd.c b/freebsd/sys/dev/mmc/mmcsd.c
index 21f54046..bd45b419 100644
--- a/freebsd/sys/dev/mmc/mmcsd.c
+++ b/freebsd/sys/dev/mmc/mmcsd.c
@@ -1196,7 +1196,11 @@ mmcsd_ioctl_cmd(struct mmcsd_part *part, struct 
mmc_ioc_cmd *mic, int fflag)
                goto out;
        }
        if (len != 0) {
+#ifndef __rtems__
                dp = malloc(len, M_TEMP, M_WAITOK);
+#else /* __rtems__ */
+               dp = rtems_cache_aligned_malloc(len);
+#endif /* __rtems__ */
                err = copyin((void *)(uintptr_t)mic->data_ptr, dp, len);
                if (err != 0)
                        goto out;
-- 
2.26.2

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to