Skip to content

KFunc bpf_res_spin_lock_irqsave

v6.15

Takes a Resilient Queued Spin Lock (rqspinlock). And disabled IRQs.

Definition

A variant of bpf_res_spin_lock which disables IRQs. See bpf_local_irq_save for IRQ save semantics. bpf_res_spin_unlock_irqrestore is to be used to release the lock.

Returns

A conditional result, depending on whether the lock was acquired (NULL is returned when lock acquisition succeeds, non-NULL upon failure). The memory pointed to by the returned pointer upon failure can be dereferenced after the NULL check to obtain the error code.

Preemption and IRQs are disabled upon successful lock acquisition.

Signature

int bpf_res_spin_lock_irqsave(struct bpf_res_spin_lock *lock, long unsigned int *flags__irq_flag)

Note

The pointer returned by the kfunc may be NULL. Hence, it forces the user to do a NULL check on the pointer returned from the kfunc before making use of it (dereferencing or passing to another helper).

Usage

See bpf_res_spin_lock for details.

Program types

The following program types can make use of this kfunc:

Example

Docs could be improved

This part of the docs is incomplete, contributions are very welcome