Skip to content

Commit c1b3fed

Browse files
Alexei Starovoitovborkmann
Alexei Starovoitov
authored andcommitted
bpf: Factor out bpf_spin_lock into helpers.
Move ____bpf_spin_lock/unlock into helpers to make it more clear that quadruple underscore bpf_spin_lock/unlock are irqsave/restore variants. Signed-off-by: Alexei Starovoitov <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Acked-by: Martin KaFai Lau <[email protected]> Acked-by: Andrii Nakryiko <[email protected]> Acked-by: Toke Høiland-Jørgensen <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent d809e13 commit c1b3fed

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

kernel/bpf/helpers.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,13 +289,18 @@ static inline void __bpf_spin_unlock(struct bpf_spin_lock *lock)
289289

290290
static DEFINE_PER_CPU(unsigned long, irqsave_flags);
291291

292-
notrace BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock)
292+
static inline void __bpf_spin_lock_irqsave(struct bpf_spin_lock *lock)
293293
{
294294
unsigned long flags;
295295

296296
local_irq_save(flags);
297297
__bpf_spin_lock(lock);
298298
__this_cpu_write(irqsave_flags, flags);
299+
}
300+
301+
notrace BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock)
302+
{
303+
__bpf_spin_lock_irqsave(lock);
299304
return 0;
300305
}
301306

@@ -306,13 +311,18 @@ const struct bpf_func_proto bpf_spin_lock_proto = {
306311
.arg1_type = ARG_PTR_TO_SPIN_LOCK,
307312
};
308313

309-
notrace BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock)
314+
static inline void __bpf_spin_unlock_irqrestore(struct bpf_spin_lock *lock)
310315
{
311316
unsigned long flags;
312317

313318
flags = __this_cpu_read(irqsave_flags);
314319
__bpf_spin_unlock(lock);
315320
local_irq_restore(flags);
321+
}
322+
323+
notrace BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock)
324+
{
325+
__bpf_spin_unlock_irqrestore(lock);
316326
return 0;
317327
}
318328

@@ -333,9 +343,9 @@ void copy_map_value_locked(struct bpf_map *map, void *dst, void *src,
333343
else
334344
lock = dst + map->spin_lock_off;
335345
preempt_disable();
336-
____bpf_spin_lock(lock);
346+
__bpf_spin_lock_irqsave(lock);
337347
copy_map_value(map, dst, src);
338-
____bpf_spin_unlock(lock);
348+
__bpf_spin_unlock_irqrestore(lock);
339349
preempt_enable();
340350
}
341351

0 commit comments

Comments
 (0)