]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86/intel/pmt: use guard(mutex)
authorMichael J. Ruhl <michael.j.ruhl@intel.com>
Sun, 13 Jul 2025 17:29:36 +0000 (13:29 -0400)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 22 Jul 2025 14:38:56 +0000 (17:38 +0300)
Update the mutex paths to use the new guard() mechanism.

With the removal of goto, do some minor cleanup of the current logic
path.

Reviewed-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Link: https://lore.kernel.org/r/20250713172943.7335-7-michael.j.ruhl@intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/pmt/crashlog.c

index 6e32fc1f8f1d82c7a348f40fbff6b3779b788969..c3ca95854aba975ce14215d79c5c69df5d72397a 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <linux/auxiliary_bus.h>
+#include <linux/cleanup.h>
 #include <linux/intel_vsec.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -156,9 +157,9 @@ enable_store(struct device *dev, struct device_attribute *attr,
        if (result)
                return result;
 
-       mutex_lock(&entry->control_mutex);
+       guard(mutex)(&entry->control_mutex);
+
        pmt_crashlog_set_disable(&entry->entry, !enabled);
-       mutex_unlock(&entry->control_mutex);
 
        return count;
 }
@@ -190,26 +191,24 @@ trigger_store(struct device *dev, struct device_attribute *attr,
        if (result)
                return result;
 
-       mutex_lock(&entry->control_mutex);
+       guard(mutex)(&entry->control_mutex);
 
        if (!trigger) {
                pmt_crashlog_set_clear(&entry->entry);
-       } else if (pmt_crashlog_complete(&entry->entry)) {
-               /* we cannot trigger a new crash if one is still pending */
-               result = -EEXIST;
-               goto err;
-       } else if (pmt_crashlog_disabled(&entry->entry)) {
-               /* if device is currently disabled, return busy */
-               result = -EBUSY;
-               goto err;
-       } else {
-               pmt_crashlog_set_execute(&entry->entry);
+               return count;
        }
 
-       result = count;
-err:
-       mutex_unlock(&entry->control_mutex);
-       return result;
+       /* we cannot trigger a new crash if one is still pending */
+       if (pmt_crashlog_complete(&entry->entry))
+               return -EEXIST;
+
+       /* if device is currently disabled, return busy */
+       if (pmt_crashlog_disabled(&entry->entry))
+               return -EBUSY;
+
+       pmt_crashlog_set_execute(&entry->entry);
+
+       return count;
 }
 static DEVICE_ATTR_RW(trigger);