On 21/02/23 21:35, Pierre-Louis Bossart wrote:
+static void amd_sdw_read_and_process_ping_status(struct amd_sdw_manager *amd_manager) +{
- u64 response;
- mutex_lock(&amd_manager->bus.msg_lock);
- response = amd_sdw_send_cmd_get_resp(amd_manager, 0, 0);
- mutex_unlock(&amd_manager->bus.msg_lock);
- amd_sdw_process_ping_status(response, amd_manager);
do you have a case where a new command could be sent after the mutex_unlock(), which could change the response fields?
No. There won't be a new command which will change response fields. We are using lock to prevent peripheral registers read/writes during sending ping command.
This implementation is used to send ping command and read and process peripheral status when PREQ is asserted and this function is also invoked after peripheral enumeration sequence is completed to collect updated peripheral status.
In other words, should the last amd_sdw_process_ping_status() function be protected as well?
IMO, it's not needed.
+}