summaryrefslogtreecommitdiffstats
path: root/freebsd
diff options
context:
space:
mode:
authorChristian Mauderer <christian.mauderer@embedded-brains.de>2021-04-13 13:55:11 +0200
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2021-04-19 09:03:37 +0200
commit8aa3ddfbd7d64694bc6968aeac90e11056ce8a7d (patch)
tree896d4cf281c3d2929f7195ed1b4ad94f9795a30e /freebsd
parentRevert "Import telnetd from RTEMS repository" (diff)
downloadrtems-libbsd-8aa3ddfbd7d64694bc6968aeac90e11056ce8a7d.tar.bz2
MMCSD: Use cache aligned alloc for ioctl
Some drivers can't easily work with buffers that are not cache aligned and have an arbitrary length. Therefore use an aligned malloc instead.
Diffstat (limited to 'freebsd')
-rw-r--r--freebsd/sys/dev/mmc/mmcsd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/freebsd/sys/dev/mmc/mmcsd.c b/freebsd/sys/dev/mmc/mmcsd.c
index 3960845c..11cf945f 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;