diff options
| author | Mario Limonciello <[email protected]> | 2024-12-17 19:39:51 +0000 |
|---|---|---|
| committer | Ilpo Järvinen <[email protected]> | 2024-12-19 14:15:32 +0000 |
| commit | f947ea8dd657ed70c0c02b35ac485a24366201d3 (patch) | |
| tree | 237339bf12d421e3228d2d6a283a4a2e74a67abe /drivers/platform/x86/amd/pmc | |
| parent | platform/x86/amd/pmf: Enable Custom BIOS Inputs for PMF-TA (diff) | |
| download | kernel-f947ea8dd657ed70c0c02b35ac485a24366201d3.tar.gz kernel-f947ea8dd657ed70c0c02b35ac485a24366201d3.zip | |
platform/x86/amd: pmc: Use guard(mutex)
Instead of using the `goto label; mutex_unlock()` pattern use
`guard(mutex)` which will release the mutex when it goes out of scope.
Signed-off-by: Mario Limonciello <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Ilpo Järvinen <[email protected]>
Signed-off-by: Ilpo Järvinen <[email protected]>
Diffstat (limited to 'drivers/platform/x86/amd/pmc')
| -rw-r--r-- | drivers/platform/x86/amd/pmc/pmc.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/platform/x86/amd/pmc/pmc.c b/drivers/platform/x86/amd/pmc/pmc.c index bfdf63ecfc80..60a22fb65eee 100644 --- a/drivers/platform/x86/amd/pmc/pmc.c +++ b/drivers/platform/x86/amd/pmc/pmc.c @@ -521,7 +521,7 @@ int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool r int rc; u32 val, message, argument, response; - mutex_lock(&dev->lock); + guard(mutex)(&dev->lock); if (dev->msg_port == MSG_PORT_S2D) { message = dev->stb_arg.msg; @@ -539,7 +539,7 @@ int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool r PMC_MSG_DELAY_MIN_US * RESPONSE_REGISTER_LOOP_MAX); if (rc) { dev_err(dev->dev, "failed to talk to SMU\n"); - goto out_unlock; + return rc; } /* Write zero to response register */ @@ -557,7 +557,7 @@ int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool r PMC_MSG_DELAY_MIN_US * RESPONSE_REGISTER_LOOP_MAX); if (rc) { dev_err(dev->dev, "SMU response timed out\n"); - goto out_unlock; + return rc; } switch (val) { @@ -571,21 +571,19 @@ int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool r case AMD_PMC_RESULT_CMD_REJECT_BUSY: dev_err(dev->dev, "SMU not ready. err: 0x%x\n", val); rc = -EBUSY; - goto out_unlock; + break; case AMD_PMC_RESULT_CMD_UNKNOWN: dev_err(dev->dev, "SMU cmd unknown. err: 0x%x\n", val); rc = -EINVAL; - goto out_unlock; + break; case AMD_PMC_RESULT_CMD_REJECT_PREREQ: case AMD_PMC_RESULT_FAILED: default: dev_err(dev->dev, "SMU cmd failed. err: 0x%x\n", val); rc = -EIO; - goto out_unlock; + break; } -out_unlock: - mutex_unlock(&dev->lock); amd_pmc_dump_registers(dev); return rc; } |
