summaryrefslogtreecommitdiff
path: root/drivers/hwtracing/coresight/coresight-config.h
diff options
context:
space:
mode:
authorYeoreum Yun <yeoreum.yun@arm.com>2025-03-06 12:11:03 +0000
committerSuzuki K Poulose <suzuki.poulose@arm.com>2025-03-10 10:40:25 +0000
commit743c5a97c64d9a2fd7feb3cf9fe3651fba0359db (patch)
treee8d37fc1d71c8dfc936e488f6b892f80f6e04835 /drivers/hwtracing/coresight/coresight-config.h
parent26f060c106f630e34876c096c1c8997a9e68c371 (diff)
coresight-etm4x: change etmv4_drvdata spinlock type to raw_spinlock_t
In coresight-etm4x drivers, etmv4_drvdata->spinlock can be held during __schedule() by perf_event_task_sched_out()/in(). Since etmv4_drvdata->spinlock type is spinlock_t and perf_event_task_sched_out()/in() is called after acquiring rq_lock, which is raw_spinlock_t (an unsleepable lock), this poses an issue in PREEMPT_RT kernel where spinlock_t is sleepable. To address this, change type etmv4_drvdata->spinlock in coresight-etm4x drivers, which can be called by perf_event_task_sched_out()/in(), from spinlock_t to raw_spinlock_t. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com> Reviewed-by: James Clark <james.clark@linaro.org> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20250306121110.1647948-3-yeoreum.yun@arm.com
Diffstat (limited to 'drivers/hwtracing/coresight/coresight-config.h')
-rw-r--r--drivers/hwtracing/coresight/coresight-config.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/hwtracing/coresight/coresight-config.h b/drivers/hwtracing/coresight/coresight-config.h
index 6ba013975741..b9ebc9fcfb7f 100644
--- a/drivers/hwtracing/coresight/coresight-config.h
+++ b/drivers/hwtracing/coresight/coresight-config.h
@@ -206,7 +206,7 @@ struct cscfg_feature_csdev {
const struct cscfg_feature_desc *feat_desc;
struct coresight_device *csdev;
struct list_head node;
- spinlock_t *drv_spinlock;
+ raw_spinlock_t *drv_spinlock;
int nr_params;
struct cscfg_parameter_csdev *params_csdev;
int nr_regs;