diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-04-13 13:55:11 +0200 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-04-19 09:03:37 +0200 |
commit | 8aa3ddfbd7d64694bc6968aeac90e11056ce8a7d (patch) | |
tree | 896d4cf281c3d2929f7195ed1b4ad94f9795a30e | |
parent | Revert "Import telnetd from RTEMS repository" (diff) | |
download | rtems-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.
-rw-r--r-- | freebsd/sys/dev/mmc/mmcsd.c | 4 |
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; |