mirror of https://github.com/thesofproject/sof.git
82857a78ba
A race currently exists in IPC completion code. When processing the pipeline TRIG_START command on timer-domain pipelines, processing is postponed to the pipeline task. Usually the IPC task continues and completes before the pipeline task. The IPC task notes, that the command is processed in the pipeline context and doesn't send a reply to the host. Then the pipeline task executes the command and notifies the host. However, occasionally the timer interrupt occurs while the IPC task is still active. It will start processing the IPC command in the pipeline context and reply to the host. The host then can send the next IPC command before the IPC task in the firmware has completed. This then produces an error trace: ERROR schedule_edf_task(), task already queued or running 3 and the IPC is dropped. This commit fixes the race by making sure in asynchronous cases the last of the two contexts notifies the host. BugLink: https://github.com/thesofproject/sof/issues/4706 Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> |
||
---|---|---|
.github | ||
doc | ||
installer | ||
keys | ||
rimage@9a26e45580 | ||
scripts | ||
smex | ||
src | ||
test | ||
tools | ||
zephyr | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CMakeLists.txt | ||
CODEOWNERS | ||
Kconfig | ||
Kconfig.sof | ||
Kconfig.xtos-build | ||
Kconfig.xtos-dbg | ||
LICENCE | ||
README.md |
README.md
Sound Open Firmware
Status
Documentation
See docs
Running the tests
See unit testing documentation
Deployment
TODO: Add additional notes about how to deploy this on a live system
Contributing
See Contributing to the Project
License
This project is licensed under the BSD Clause 3 - see the LICENCE file for details