From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D32E227FD59 for ; Fri, 21 Nov 2025 16:06:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763741175; cv=none; b=Kc5qRzV5KTFgd+ljFEhb0RKrMRYWE+MZJE7wM8YkrTPH/NYUE+ZXbCwMm1KXO0VfhaxSd/W32EZWnu5XlRcSzE+yrVMNHRWdEziOYUSaLmqG/HS1Qa1/dhifxpu+clG/d2q6wa8J+7mARo49CeVg2CrjhVDfHr8NlwhxWg0KfhA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763741175; c=relaxed/simple; bh=aswMdYs/Vr0iM3hCQ82AElwkwQIlk4Q3Md8Sb8eSuVk=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=auOEgKS2vLF49s6Ausxq7ad9X23p5X28z8ZC7VHIoog7uj372RM5v4KFwCnMdcO8ScVtKZa+DicbfBjLjQE+31YUKxBuTmkw/hGZkz2qWXNAYY7vyELfoO11aYY8Y/npLgF9wCtlV8HBa3i7pRCSu0XmylAA8M145ai0xcxs4ds= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=G3c2vFWe; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=r8w/kSCQ; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="G3c2vFWe"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="r8w/kSCQ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1763741172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rHT7U7qQncnr+CMjMZqEW+bDwFOFz+ggr1axUXIahIA=; b=G3c2vFWeDuwhsZ+aCWLJJQJOwGe9ARbYOymVfkUrRwehm2BdVSdKQTjfthHw85JHNBg3+z Ek/Bs6vUooSSTiO7d9eh/os+qNKqVwY8mY7C0UTupGjL/7vatjLvw0FwPjgEdwmyWAldMV ZKyD8l/RiRZW85X92tOL+itCNIn3SWk= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-548-9OrAgxFNO66YIpTRbdWv2Q-1; Fri, 21 Nov 2025 11:06:11 -0500 X-MC-Unique: 9OrAgxFNO66YIpTRbdWv2Q-1 X-Mimecast-MFC-AGG-ID: 9OrAgxFNO66YIpTRbdWv2Q_1763741170 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-42b3b5ed793so1464115f8f.2 for ; Fri, 21 Nov 2025 08:06:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1763741170; x=1764345970; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=rHT7U7qQncnr+CMjMZqEW+bDwFOFz+ggr1axUXIahIA=; b=r8w/kSCQbuD6WfHR5+TwoX/walxDfNWncjsHf7d4HYS7LNWMpRlHx1XR67LfRngw/R PS5MuEKji6YOz6dlhGoRWXZzKos7yPrdtjcd50++8z2OJ/okMPbdbiIgC2u+Qid3J96f bXAwuey14EtQ9EAstbjgjwf8ZIeTfy/ToLm1vx5BZp0vXAnF1qmGgU6PpkpzOzUJhhgt 5mkWJMAhjlJunKdo/7BzRXzl9BxB1WXL3AP7jBi5pgTfUjMTuPDuc8SME1HH4VUr5eAH NoUgcgUAAAeHLytsfdddZ+QAumgnOJgoAL3fMeNOu16JhywoOMvOy/xDZDBTd+vrNsz6 ne5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763741170; x=1764345970; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rHT7U7qQncnr+CMjMZqEW+bDwFOFz+ggr1axUXIahIA=; b=HoERerlc2cmrtgAg1oJ67yGqIQ8D/9ulO7lg/lxEpIQxYib5DmguolnTt5u5s8kVjS npabpDXaXhIiMmmaSjbNAapISzk0KyjamCSgjthv9JQ01FVkp5qJ8Ec4MaF01ASiC/1d f+XudVfU5DPzgKnvFuWKD2hR+FQvRGu5Rvo3r3jK9p4puQ3CnVldVXThvqNgYkyuKBKb 7Vs8Y9Oed+IomH1zGDim4eC4H2+6UQtZnb/nSj9x3hbD9khRSevLrBsFPB6fKHvQQH94 E/tzSPp0ig43E8UDl9ZHbnToPmz5fNzBxtrOdSQVHGlWIIu1hiiwgB/HS3bmtIfmJjpO g9Hg== X-Forwarded-Encrypted: i=1; AJvYcCV53OysiTnudxVrIzSH0DzGlStfcLHEjjJAO8gpdCBn4H/gjoE76togw7mTW5ZN3KJrw8GvZ9Xaq1rIn6A=@vger.kernel.org X-Gm-Message-State: AOJu0YzhY1dw08kddGt/DjwUgl+DaiwI/ly4AlXvrWOMk6WeDP5l4Ip7 fIAvRhrSNziKh8wvp+nZgD2ylVSf7Ap74e1yf7e6LbJsLKtd+0Sj8njTaVzKrJMyZHE3E7Q2FfW HBmnnYMou5g2t1cnzhyjJXMBIzC2vqnkipX1T0Xzl22cBUg6GPgMy0klP1MJOO0Fb X-Gm-Gg: ASbGncv+kstb5rxt1lSmroDBrUS4PPbA6PCdyUYPZrDBp20W9DcV2V0qrgVk0B6JDTT qxGrQN39E/6VYuZ5regUc+M0SxY24LveBHBSBZXX9GDSiN+WLjZvWlbzM4nCGMCS3fCkZnYqx/j 1CLhgXb/zdo7kn6tiLYL3DnnNXPbGf5X+VgBm0VUq+bkbwqq0HCYKS/1J/9K2Yh0MwLMbD3aLAS PddojBA3S66vlgmGlQXqlC3NXM2iZVZ+nBgwY5Z58OA/UsOg1+gdPJAsh/cPGGq6L6L/ot/am9+ oLT1MmonfgcnaFu+3J5bV9ZOoLQRB2TYq2UXUPjpO52ANnIDYINJBNm9lSFc9yJxbDO1hIHo5zE vHVzfPclQ8e3HunFEwzQEvV+UmoL1OOOpuAHQ/jvT7YI= X-Received: by 2002:a5d:5f95:0:b0:42b:52c4:663a with SMTP id ffacd0b85a97d-42cc1ac9d17mr3082502f8f.11.1763741169611; Fri, 21 Nov 2025 08:06:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IGON2FEwIGaqia60wBxqJtsr7vpj0fOoPfIuTO43FfevLFZybM2n6jgwKP1+iMvYkckySgn5Q== X-Received: by 2002:a5d:5f95:0:b0:42b:52c4:663a with SMTP id ffacd0b85a97d-42cc1ac9d17mr3082447f8f.11.1763741169083; Fri, 21 Nov 2025 08:06:09 -0800 (PST) Received: from [192.168.0.102] (185-219-167-205-static.vivo.cz. [185.219.167.205]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42cb7fa35b7sm12037358f8f.20.2025.11.21.08.06.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Nov 2025 08:06:07 -0800 (PST) Message-ID: <2bcc2005-e124-455e-b4db-b15093463782@redhat.com> Date: Fri, 21 Nov 2025 17:06:05 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH bpf-next v3 1/4] bpf: crypto: Use the correct destructor kfunc type To: Sami Tolvanen , bpf@vger.kernel.org Cc: Vadim Fedorenko , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Jamal Hadi Salim , Cong Wang , Jiri Pirko , netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20250728202656.559071-6-samitolvanen@google.com> <20250728202656.559071-7-samitolvanen@google.com> From: Viktor Malik Content-Language: en-US In-Reply-To: <20250728202656.559071-7-samitolvanen@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 7/28/25 22:26, Sami Tolvanen wrote: > With CONFIG_CFI_CLANG enabled, the kernel strictly enforces that > indirect function calls use a function pointer type that matches the > target function. I ran into the following type mismatch when running > BPF self-tests: > > CFI failure at bpf_obj_free_fields+0x190/0x238 (target: > bpf_crypto_ctx_release+0x0/0x94; expected type: 0xa488ebfc) > Internal error: Oops - CFI: 00000000f2008228 [#1] SMP > ... > > As bpf_crypto_ctx_release() is also used in BPF programs and using > a void pointer as the argument would make the verifier unhappy, add > a simple stub function with the correct type and register it as the > destructor kfunc instead. Hi, this patchset got somehow forgotten and I'd like to revive it. We're hitting kernel oops when running the crypto cases from test_progs (`./test_progs -t crypto`) on CPUs with IBT (Indirect Branch Tracking) support. I managed to reproduce this on the latest bpf-next, see the relevant part of dmesg at the end of this email. After applying this patch, the oops no longer happens. It looks like the series is stuck on a sparse warning reported by kernel test robot, which seems like a false positive. Could we somehow resolve it and proceed with reviewing and merging this? Since this resolves our issue, adding my tested-by: Tested-by: Viktor Malik Thanks! Viktor The relevant part of dmesg: [ 1505.054762] Missing ENDBR: bpf_crypto_ctx_release+0x0/0x50 [ 1505.060306] ------------[ cut here ]------------ [ 1505.064971] kernel BUG at arch/x86/kernel/cet.c:133! [ 1505.069984] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1505.075085] CPU: 129 UID: 0 PID: 42861 Comm: kworker/u688:24 Tainted: G OE 6.18.0-rc5+ #3 PREEMPT(voluntary) [ 1505.086437] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE [ 1505.091794] Hardware name: Intel Corporation GNR-WS/GNR-WS, BIOS GWS_REL1.IPC.3663.P19.2506271437 06/27/2025 [ 1505.101674] Workqueue: events_unbound bpf_map_free_deferred [ 1505.107291] RIP: 0010:exc_control_protection+0x19a/0x1a0 [ 1505.112648] Code: d8 b9 09 00 00 00 48 8b 93 80 00 00 00 be 81 00 00 00 48 c7 c7 53 09 b2 a0 e8 c2 74 1c ff 80 a3 8a 00 00 00 fb e9 fb fe ff ff <0f> 0b 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 [ 1505.131474] RSP: 0018:ff714c596fe17ce8 EFLAGS: 00010002 [ 1505.136742] RAX: 000000000000002e RBX: ff714c596fe17d08 RCX: 0000000000000000 [ 1505.143924] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ff2a470fbe458240 [ 1505.151111] RBP: 0000000000000003 R08: 0000000000000000 R09: ff714c596fe17b70 [ 1505.158293] R10: ff2a470fbc07ffa8 R11: 0000000000000003 R12: 0000000000000000 [ 1505.165478] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 1505.172661] FS: 0000000000000000(0000) GS:ff2a47101c091000(0000) knlGS:0000000000000000 [ 1505.180805] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1505.186600] CR2: 00005564968dd250 CR3: 0000001e45a22005 CR4: 0000000000f73ef0 [ 1505.193782] PKRU: 55555554 [ 1505.196533] Call Trace: [ 1505.199026] [ 1505.201171] asm_exc_control_protection+0x26/0x60 [ 1505.205923] RIP: 0010:bpf_crypto_ctx_release+0x0/0x50 [ 1505.211023] Code: 00 eb ee 89 c2 eb d7 31 c0 5b c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 <0f> 1f 40 d6 0f 1f 44 00 00 48 8d 57 28 b8 ff ff ff ff f0 0f c1 47 [ 1505.229849] RSP: 0018:ff714c596fe17db8 EFLAGS: 00010202 [ 1505.235118] RAX: ffffffff9f7917d0 RBX: ff2a46f0ce98cc20 RCX: 000000008200019e [ 1505.242301] RDX: 0000000000000001 RSI: ff2a46f0dd55ff30 RDI: ff2a46f0e8662280 [ 1505.249483] RBP: ff2a46f0ce98cc20 R08: 0000000000000000 R09: 0000000000000001 [ 1505.256666] R10: 000000008200019e R11: ff2a46f0c5573bc8 R12: 0000000000000000 [ 1505.263849] R13: ff2a46f0ce98cc00 R14: ff2a46f0dd55ff30 R15: ff2a46f0e8662280 [ 1505.271035] ? __pfx_bpf_crypto_ctx_release+0x10/0x10 [ 1505.276135] bpf_obj_free_fields+0x10c/0x230 [ 1505.280451] array_map_free+0x56/0x140 [ 1505.284243] bpf_map_free_deferred+0x95/0x180 [ 1505.288646] process_one_work+0x18b/0x340 [ 1505.292705] worker_thread+0x256/0x3a0 [ 1505.296497] ? __pfx_worker_thread+0x10/0x10 [ 1505.300813] kthread+0xfc/0x240 [ 1505.304000] ? __pfx_kthread+0x10/0x10 [ 1505.307792] ? __pfx_kthread+0x10/0x10 [ 1505.311584] ret_from_fork+0xf0/0x110 [ 1505.315297] ? __pfx_kthread+0x10/0x10 [ 1505.319089] ret_from_fork_asm+0x1a/0x30 [ 1505.323059] > > Signed-off-by: Sami Tolvanen > --- > kernel/bpf/crypto.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/kernel/bpf/crypto.c b/kernel/bpf/crypto.c > index 94854cd9c4cc..a267d9087d40 100644 > --- a/kernel/bpf/crypto.c > +++ b/kernel/bpf/crypto.c > @@ -261,6 +261,12 @@ __bpf_kfunc void bpf_crypto_ctx_release(struct bpf_crypto_ctx *ctx) > call_rcu(&ctx->rcu, crypto_free_cb); > } > > +__bpf_kfunc void bpf_crypto_ctx_release_dtor(void *ctx) > +{ > + bpf_crypto_ctx_release(ctx); > +} > +CFI_NOSEAL(bpf_crypto_ctx_release_dtor); > + > static int bpf_crypto_crypt(const struct bpf_crypto_ctx *ctx, > const struct bpf_dynptr_kern *src, > const struct bpf_dynptr_kern *dst, > @@ -368,7 +374,7 @@ static const struct btf_kfunc_id_set crypt_kfunc_set = { > > BTF_ID_LIST(bpf_crypto_dtor_ids) > BTF_ID(struct, bpf_crypto_ctx) > -BTF_ID(func, bpf_crypto_ctx_release) > +BTF_ID(func, bpf_crypto_ctx_release_dtor) > > static int __init crypto_kfunc_init(void) > {