diff options
author | Yeoreum Yun <yeoreum.yun@arm.com> | 2025-03-06 15:11:03 +0300 |
---|---|---|
committer | Suzuki K Poulose <suzuki.poulose@arm.com> | 2025-03-10 13:40:25 +0300 |
commit | 743c5a97c64d9a2fd7feb3cf9fe3651fba0359db (patch) | |
tree | e8d37fc1d71c8dfc936e488f6b892f80f6e04835 /lib/timerqueue.c | |
parent | 26f060c106f630e34876c096c1c8997a9e68c371 (diff) | |
download | linux-743c5a97c64d9a2fd7feb3cf9fe3651fba0359db.tar.xz |
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 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions