nuttx/drivers/rpmsg
Yongrong Wang aa567d43f6 drivers/rpmsg: fix struct alignment issue by removing zero array member
This commit fixes a memory alignment issue in the rpmsg subsystem.
The previous implementation used a flexible array member (rdev[0])
in struct rpmsg_s, but due to automatic 8-byte padding, rpmsg->rdev
could differ from the transport layer's rdev address (e.g.,
rpmsg_virtio->rvdev.rdev), causing potential memory corruption.

Changes:
- Remove rdev[0] flexible array member from struct rpmsg_s
- Add rpmsg_get_rdev_by_rpmsg() inline helper to calculate rdev
  address as (rpmsg + 1), ensuring correct pointer arithmetic
- Update all rpmsg->rdev references to use the new helper function
- Fix rpmsg_virtio_notify_wait() to use correct container_of macro

Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
2026-01-26 21:12:34 +08:00
..
CMakeLists.txt drivers/rpmsg: remove unnecessary header files, revise make.def and cmake 2026-01-19 23:14:53 +08:00
Kconfig rpmsg/rpmsg_virtio: add rpmsg virtio common pm support 2026-01-22 03:45:55 +08:00
Make.defs drivers/rpmsg: remove unnecessary header files, revise make.def and cmake 2026-01-19 23:14:53 +08:00
rpmsg.c drivers/rpmsg: fix struct alignment issue by removing zero array member 2026-01-26 21:12:34 +08:00
rpmsg_ping.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
rpmsg_ping.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
rpmsg_port.c drivers/rpmsg: fix struct alignment issue by removing zero array member 2026-01-26 21:12:34 +08:00
rpmsg_port.h drivers/rpmsg: unify cpuname/local_cpuname to struct rpmsg_s 2026-01-24 17:10:18 +08:00
rpmsg_port_spi.c drivers/rpmsg: unify cpuname/local_cpuname to struct rpmsg_s 2026-01-24 17:10:18 +08:00
rpmsg_port_spi_slave.c drivers/rpmsg: unify cpuname/local_cpuname to struct rpmsg_s 2026-01-24 17:10:18 +08:00
rpmsg_port_uart.c drivers/rpmsg: unitfy the rpmsg signals from transport to struct rpmsg_s 2026-01-15 16:13:24 -03:00
rpmsg_router.h drivers/rpmsg: add signals router for rpmsg router 2026-01-15 16:13:24 -03:00
rpmsg_router_edge.c drivers/rpmsg: unify cpuname/local_cpuname to struct rpmsg_s 2026-01-24 17:10:18 +08:00
rpmsg_router_hub.c drivers/rpmsg: use explicit NULL comparisons for pointer checks 2026-01-22 22:08:32 +08:00
rpmsg_test.c drivers/rpmsg: add rpmsg_test to test rpmsg hold/release rx buffer 2026-01-08 22:44:35 +08:00
rpmsg_test.h drivers/rpmsg: add rpmsg_test to test rpmsg hold/release rx buffer 2026-01-08 22:44:35 +08:00
rpmsg_virtio.c drivers/rpmsg: fix struct alignment issue by removing zero array member 2026-01-26 21:12:34 +08:00
rpmsg_virtio_ivshmem.c drivers/rptun and rpmsg_virtio: remove cmd initialize 2026-01-19 14:18:27 +08:00
rpmsg_virtio_lite.c drivers/rpmsg: fix struct alignment issue by removing zero array member 2026-01-26 21:12:34 +08:00