On Sat, Nov 18, 2023 at 2:55 PM Vadim Fedorenko <vadfed@xxxxxxxx> wrote: > > +/** > + * struct bpf_crypto_lskcipher_ctx - refcounted BPF sync skcipher context structure > + * @tfm: The pointer to crypto_sync_skcipher struct. > + * @rcu: The RCU head used to free the crypto context with RCU safety. > + * @usage: Object reference counter. When the refcount goes to 0, the > + * memory is released back to the BPF allocator, which provides > + * RCU safety. > + */ > +struct bpf_crypto_lskcipher_ctx { > + struct crypto_lskcipher *tfm; > + struct rcu_head rcu; > + refcount_t usage; > +}; > + > +__bpf_kfunc_start_defs(); > + > +/** > + * bpf_crypto_lskcipher_ctx_create() - Create a mutable BPF crypto context. Let's drop 'lskcipher' from the kfunc names and ctx struct. bpf users don't need to know the internal implementation details. bpf_crypto_encrypt/decrypt() is clear enough.