-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
helper: add a condition before updating the component direction #8197
helper: add a condition before updating the component direction #8197
Conversation
At the pipeline reset stage, the direction of the components is not always known, resulting in a call to a field that is null and consequently a crash/timeout. Signed-off-by: Kwasowiec, Fabiola <[email protected]>
Is this addressing a crash, that's caught by CI? Or only in your testing? Should this go to any stable branches too? |
@@ -274,7 +274,7 @@ int ipc4_pipeline_prepare(struct ipc_comp_dev *ppl_icd, uint32_t cmd) | |||
switch (status) { | |||
case COMP_STATE_INIT: | |||
tr_dbg(&ipc_tr, "pipeline %d: reset from init", ppl_icd->id); | |||
ret = ipc4_pipeline_complete(ipc, ppl_icd->id); | |||
ret = ipc4_pipeline_complete(ipc, ppl_icd->id, cmd); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fkwasowi may I ask why we even need to invoke ipc4_pipeline_complete() during pipeline reset?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is still unanswered, but I assume this is a more complex. git blame shows this code has been here for a long, long time...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the answer to the question: 8541d68
Due to this problem, the 09_oed_dmic_mute_unmute test is blocked. The issue is reported in the following HSD: https://hsdes.intel.com/appstore/article/#/18031254461 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some unanswered questions, but given this fixes a DSP crash, seems we can proceed with merge.
@@ -274,7 +274,7 @@ int ipc4_pipeline_prepare(struct ipc_comp_dev *ppl_icd, uint32_t cmd) | |||
switch (status) { | |||
case COMP_STATE_INIT: | |||
tr_dbg(&ipc_tr, "pipeline %d: reset from init", ppl_icd->id); | |||
ret = ipc4_pipeline_complete(ipc, ppl_icd->id); | |||
ret = ipc4_pipeline_complete(ipc, ppl_icd->id, cmd); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is still unanswered, but I assume this is a more complex. git blame shows this code has been here for a long, long time...
SOFCI TEST |
Uh, sorry @fkwasowi I didn't notice you had pinged the CI already. But let's see that if this now completes... |
SOFCI TEST |
The one error in https://sof-ci.01.org/sofpr/PR8197/build13064/devicetest is a DUT issue. error in log:
Proceeding with merge. |
At the pipeline reset stage, the direction of the components is not always known (example for the pipeline below), resulting in a call to a field that is null (src_buf->source->direction_set/src_buf->source->direction) and consequently a crash/timeout.