zephyr/subsys/ipc/ipc_service
Aleksandar Radovanovic 69690e3505 ipc_service: static_vrings: Fix TX virtqueue alignment
This patch fixes an issues where the TX virtqueue is misaligned by
2 bytes due to the way the virtqueue start address is calculated.
It is currently set to immediatelly follow the RX virtqueue:

    vr->tx_addr = vr->rx_addr + vring_size(num_desc, VRING_ALIGNMENT);

but the RX virtqueue does not end on an aligned boundary (last field,
avail_event is uint16_t). The resulting misaligned virtqueue causes
alignment faults on architectures that do not support unaligned
accesses (and is suboptimal otherwise)

The fix is to realign tx_addr to requested VRING_ALIGNMENT.

Signed-off-by: Aleksandar Radovanovic <aleksandar.radovanovic@amd.com>
2022-07-06 11:03:04 +02:00
..
backends ipc_service: static_vrings: Fix TX virtqueue alignment 2022-07-06 11:03:04 +02:00
lib lib: os: Rename icmsg_buf to spsc_pbuf 2022-06-07 19:04:35 +02:00
CMakeLists.txt ipc_service: Move libraries in a stalone directory 2021-11-12 14:51:29 +01:00
ipc_service.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
Kconfig kconfig: Remove unneeded ${ZEPHYR_BASE} from template import 2022-03-24 18:07:28 -04:00