mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 18:14:24 +00:00
fix(ti): release lock in all TI-SCI xfer return paths
Failing to send a message is often not fatal and we will end up trying to send again. This would fail as some exit paths do not release the secure proxy xfer lock. Release this lock on all return paths. Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: I3939015774f819572dbd26720b2c105fba7574cb
This commit is contained in:
parent
9bb15ab53a
commit
e92375e07c
1 changed files with 5 additions and 4 deletions
|
@ -155,14 +155,14 @@ static int ti_sci_do_xfer(struct ti_sci_xfer *xfer)
|
|||
ret = k3_sec_proxy_clear_rx_thread(SP_RESPONSE);
|
||||
if (ret) {
|
||||
ERROR("Could not clear response queue (%d)\n", ret);
|
||||
return ret;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
/* Send the message */
|
||||
ret = k3_sec_proxy_send(SP_HIGH_PRIORITY, tx_msg);
|
||||
if (ret) {
|
||||
ERROR("Message sending failed (%d)\n", ret);
|
||||
return ret;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
/* Get the response if requested */
|
||||
|
@ -170,13 +170,14 @@ static int ti_sci_do_xfer(struct ti_sci_xfer *xfer)
|
|||
ret = ti_sci_get_response(rx_msg, SP_RESPONSE);
|
||||
if (ret != 0U) {
|
||||
ERROR("Failed to get response (%d)\n", ret);
|
||||
return ret;
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
|
||||
unlock:
|
||||
bakery_lock_release(&ti_sci_xfer_lock);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue