lib: sbi_sse: inline enable event locking

In preparation to add TSA annotations, inline sse_enabled_event_lock()
and sse_enabled_event_unlock(). This will help the compiler reason about
locking of the hart state by explicitly acquiring the spinlock in the
callers.

Signed-off-by: Carlos López <carlos.lopezr4096@gmail.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/r/20260909162322.29778-12-carlos.lopezr4096@gmail.com
Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Carlos López
2026-09-16 09:48:30 +05:30
committed by Anup Patel
parent 8740e0a38c
commit fc1ae7a641
+8 -26
View File
@@ -265,28 +265,6 @@ static struct sse_global_event *sse_get_global_event(struct sbi_sse_event *e)
return container_of(e, struct sse_global_event, event); return container_of(e, struct sse_global_event, event);
} }
/**
* If event is global, must be called under enabled event lock
*/
static void sse_enabled_event_lock(struct sbi_sse_event *e)
{
struct sse_hart_state *shs;
shs = sse_get_hart_state(e);
spin_lock(&shs->enabled_event_lock);
}
/**
* If event is global, must be called under enabled event lock
*/
static void sse_enabled_event_unlock(struct sbi_sse_event *e)
{
struct sse_hart_state *shs;
shs = sse_get_hart_state(e);
spin_unlock(&shs->enabled_event_lock);
}
static void sse_event_set_state(struct sbi_sse_event *e, static void sse_event_set_state(struct sbi_sse_event *e,
unsigned long new_state) unsigned long new_state)
{ {
@@ -865,14 +843,16 @@ int sbi_sse_enable(uint32_t event_id)
{ {
int ret; int ret;
struct sbi_sse_event *e; struct sbi_sse_event *e;
struct sse_hart_state *shs;
ret = sse_event_get(event_id, &e); ret = sse_event_get(event_id, &e);
if (ret) if (ret)
return ret; return ret;
sse_enabled_event_lock(e); shs = sse_get_hart_state(e);
spin_lock(&shs->enabled_event_lock);
ret = sse_event_enable(e); ret = sse_event_enable(e);
sse_enabled_event_unlock(e); spin_unlock(&shs->enabled_event_lock);
sse_event_put(e); sse_event_put(e);
return ret; return ret;
@@ -882,14 +862,16 @@ int sbi_sse_disable(uint32_t event_id)
{ {
int ret; int ret;
struct sbi_sse_event *e; struct sbi_sse_event *e;
struct sse_hart_state *shs;
ret = sse_event_get(event_id, &e); ret = sse_event_get(event_id, &e);
if (ret) if (ret)
return ret; return ret;
sse_enabled_event_lock(e); shs = sse_get_hart_state(e);
spin_lock(&shs->enabled_event_lock);
ret = sse_event_disable(e); ret = sse_event_disable(e);
sse_enabled_event_unlock(e); spin_unlock(&shs->enabled_event_lock);
sse_event_put(e); sse_event_put(e);