Please sign in to comment.
kernel: pipes: fix k_pipe_block_put() when not enough space
If k_pipe_block_put() is called and the pipe does not have enough space to accomodate all the data in the memory pool, the subsequent get operation will cause a CPU fault. The CPU fault is caused by the timeout struct in the dummy thread not being initialized and thus the scheduler will read bad memory. After fixing this, another issue came up where the get operation would stall with k_pipe_block_put() in same situation. This is due to the async descriptor not being setup correctly. So fix this too. This was discovered when debugging #9273. Signed-off-by: Daniel Leung <firstname.lastname@example.org>
- Loading branch information...