zephyr/subsys/ipc
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
..
ipc_service ipc_service: static_vrings: Fix TX virtqueue alignment 2022-07-06 11:03:04 +02:00
rpmsg_service all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
CMakeLists.txt ipc: ipc_service: Rework multi-instance backend. 2021-10-11 20:58:09 -04:00
Kconfig ipc: ipc_service: Rework multi-instance backend. 2021-10-11 20:58:09 -04:00