[PATCH 2/2] drm/amdgpu/smu: Add message sending lock
Alex Deucher
alexdeucher at gmail.com
Tue Feb 25 19:31:56 UTC 2020
On Wed, Feb 19, 2020 at 2:19 PM Matt Coffin <mcoffin13 at gmail.com> wrote:
>
> This adds a message lock to the smu_send_smc_msg* implementations to
> protect against concurrent access to the mmu registers used to
> communicate with the SMU
Missing your signed-off-by. Also you need to move the mutex init and
declaration into this patch.
Thanks,
Alex
> ---
> drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> index 220bf0b10971..19bebba3e0a4 100644
> --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> @@ -102,11 +102,12 @@ smu_v11_0_send_msg_with_param(struct smu_context *smu,
> if (index < 0)
> return index;
>
> + mutex_lock(&smu->message_lock);
> ret = smu_v11_0_wait_for_response(smu);
> if (ret) {
> pr_err("Msg issuing pre-check failed and "
> "SMU may be not in the right state!\n");
> - return ret;
> + goto out;
> }
>
> WREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90, 0);
> @@ -119,18 +120,19 @@ smu_v11_0_send_msg_with_param(struct smu_context *smu,
> if (ret) {
> pr_err("failed send message: %10s (%d) \tparam: 0x%08x response %#x\n",
> smu_get_message_name(smu, msg), index, param, ret);
> - return ret;
> + goto out;
> }
> if (read_arg) {
> ret = smu_v11_0_read_arg(smu, read_arg);
> if (ret) {
> pr_err("failed to read message arg: %10s (%d) \tparam: 0x%08x response %#x\n",
> smu_get_message_name(smu, msg), index, param, ret);
> - return ret;
> + goto out;
> }
> }
> -
> - return 0;
> +out:
> + mutex_unlock(&smu->message_lock);
> + return ret;
> }
>
> int smu_v11_0_init_microcode(struct smu_context *smu)
> --
> 2.25.0
>
More information about the amd-gfx
mailing list