]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bpf: crypto: replace -EEXIST with -EBUSY
authorDaniel Gomez <da.gomez@samsung.com>
Sat, 20 Dec 2025 03:48:09 +0000 (04:48 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Dec 2025 06:25:09 +0000 (22:25 -0800)
The -EEXIST error code is reserved by the module loading infrastructure
to indicate that a module is already loaded. When a module's init
function returns -EEXIST, userspace tools like kmod interpret this as
"module already loaded" and treat the operation as successful, returning
0 to the user even though the module initialization actually failed.

This follows the precedent set by commit 54416fd76770 ("netfilter:
conntrack: helper: Replace -EEXIST by -EBUSY") which fixed the same
issue in nf_conntrack_helper_register().

This affects bpf_crypto_skcipher module. While the configuration
required to build it as a module is unlikely in practice, it is
technically possible, so fix it for correctness.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
Acked-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://lore.kernel.org/r/20251220-dev-module-init-eexists-bpf-v1-1-7f186663dbe7@samsung.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/crypto.c

index 83c4d9943084b93a656a82e1c056f821a77c9eb1..1ab79a6dec8405330dc81056768312afe609b2e9 100644 (file)
@@ -60,7 +60,7 @@ struct bpf_crypto_ctx {
 int bpf_crypto_register_type(const struct bpf_crypto_type *type)
 {
        struct bpf_crypto_type_list *node;
-       int err = -EEXIST;
+       int err = -EBUSY;
 
        down_write(&bpf_crypto_types_sem);
        list_for_each_entry(node, &bpf_crypto_types, list) {