zephyr/subsys/ipc
Carlo Caione 2bf678af1b ipc: static_vrings: Fix timeout management
The ipc_service_get_tx_buffer() has a timeout parameter that can be used
to wait a certain amount of time for a TX buffer to be available.

Unfortunately, for the static vrings backend, an asymmetry
between remote and host exists that makes the usage of this parameter
confusing when the user requests a buffer when no buffers are available
at that time.

When the remote endpoints requests a TX buffer specifying a certain
size and there are no TX buffers available, the function ignores the
parameter and ipc_service_get_tx_buffer() immediately returns -ENOMEM.

The same case on the host endpoint works correctly only when the
specified timeout is <= 15 seconds. All timeouts > 15 seconds simply
returns -EIO after 15 seconds.

This patch is reworking the timeout management trying to behave
correctly in all the cases.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-06-05 14:49:26 +02:00
..
ipc_service ipc: static_vrings: Fix timeout management 2022-06-05 14:49:26 +02:00
rpmsg_service subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +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