platform/x86/intel/pmt: use guard(mutex)

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>
This commit is contained in:
Michael J. Ruhl 2025-07-13 13:29:36 -04:00 committed by Ilpo Järvinen
parent 75a496aa05
commit 4f8fa22d10
No known key found for this signature in database
GPG Key ID: 59AC4F6153E5CE31

View 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);