From nobody Mon Oct 6 01:23:40 2025 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49673253B71 for ; Fri, 25 Jul 2025 21:44:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479860; cv=none; b=SJ+1QYEzTSyKK8+2YkTBhGES23iAFKAprBO9NOVcgwZGAv2g713qE1VZeYUWT+KiAHRjK7LmkqRvPxKJtHKDT0BSS4f7DRRfLaELWbpiWQE1KFSBqUBa+NvVBXm20Wl5ImSOczHFefFCRTLS+ZJ4o773QeDEVeFlDzDkPaxmTxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479860; c=relaxed/simple; bh=/A9wG5u0kN1kFNpHvLIRowYQicJ4cQnWyWf+Gqas87Y=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Q8GEsbvAioodtjDUI5Y9ctazb7+639JLdzWg/JA7H2B+8z4NsexbYc2sRhZZQh3hVVl8aAaoxfm8d8oraWEtRpgKPByQxXkqX1oBui/1LnA9t+kb8jdi84yN0FSg4aHkDObYFw72WGR2B+UGP9tQWr6PAPkkOzxgebGJAt1401Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=KFRZ3ln3; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="KFRZ3ln3" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-315af08594fso2346772a91.2 for ; Fri, 25 Jul 2025 14:44:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753479858; x=1754084658; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=XXmhNHF/XxQXrapxuBtt3P4+K0RyfYESVL4h3doBb8s=; b=KFRZ3ln3GhH9qxGTT6I9zZyYhdjuG6adKRvks9gbi7jcJ4fxAy67yBGSStJ+eUYQ83 fu5zArQEu4+nytAXdJX4G981yJTkmc5JcsEkUmVENoMwKyulIMZsZnPZKS0RfQbeLtV1 /8VeCJkmQWPkczQLjFw1pX/p6a5H687VapCmMwlXiTkufE177HxuJLqpN00wMDkM+HLJ l9CaJ8Je+3LFN0KNAGTjh+2YkrNARlDbmubaG0wGGk/JmxS2/cH5zssuwrL5gTkWTBAS uKJ+31iE88/z2cuB4WJ2y8lHx+YlRDYUynbfNQkHLwdvT11Vl6uc6q8UYvhEktDE4Cti OftA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753479858; x=1754084658; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XXmhNHF/XxQXrapxuBtt3P4+K0RyfYESVL4h3doBb8s=; b=ugQV5eGOzw1a7Iocngd/quFvvgJNiS1eAUYLgtlO0dQ6aSjRUmwFNFeolX9hlEQBCs BtwjhfYIe/nYZGc4YSkA8FoSEm4bN21pfOLwLTItQ8nd6hck//r+cKl63oUIMa2blYUB mAlypotCf5FX/rG6zImPstUOZ1bQW7zpMQNpOiT3bnToaLwA3HhdyV0uK9aZaaeCK8Sq Ywgn9uo5jhUBV+qIpABhkbQ0Qqu5sPTjYK2Cvbvqt+pVX8QEx4/AE614BL4B/jnpIsUW l9PfcJc+uRKyz0D9M5zJBpudF9y/lxIdL7uY7nKXUt1DL0q/UwM05ay5o/+8zx2VncTj d7lw== X-Forwarded-Encrypted: i=1; AJvYcCW9zTAwwX+1ag7GiwXXgFKTWnXGs4pwvEVimmVDpqwTN3Wt9xPVAbYMqkNPYZ7HIEAHUratMZ+KbSFq+00=@vger.kernel.org X-Gm-Message-State: AOJu0YzgmzysUHh0DJAmDGuI72Gn/OwzriC9EV+QCfBzMqZZuh9BovYN Bd2juV+h9HoxQfP1QwjhRj8KS8Ere9rdZHvGIBDRzgxjOvD1QKTFZOgAqHVxpRp83N1r5TgzJDm UiDl52FBZIvc47yOGmqM4oTZL3I/sBw== X-Google-Smtp-Source: AGHT+IGJSKHfvsMhUvwjPqGK+Eik+DHwhsGpiGIzc8eEiZwbL/O67mZPRslNsIVgWsFhnS6aB8xtiuFZttwOvoa/sdk= X-Received: from pjbsu16.prod.google.com ([2002:a17:90b:5350:b0:301:1bf5:2f07]) (user=samitolvanen job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:57c5:b0:312:ffdc:42b2 with SMTP id 98e67ed59e1d1-31e77a20229mr4261408a91.23.1753479858629; Fri, 25 Jul 2025 14:44:18 -0700 (PDT) Date: Fri, 25 Jul 2025 21:44:03 +0000 In-Reply-To: <20250725214401.1475224-6-samitolvanen@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250725214401.1475224-6-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=1699; i=samitolvanen@google.com; h=from:subject; bh=/A9wG5u0kN1kFNpHvLIRowYQicJ4cQnWyWf+Gqas87Y=; b=owGbwMvMwCUWxa662nLh8irG02pJDBnNvxZuVG7oqeZ+yGIupruXYYeB7uLwh/+fZn/u5/zVt /r0rn/XOkpZGMS4GGTFFFlavq7euvu7U+qrz0USMHNYmUCGMHBxCsBE7hxj+CvpvH+tzcfjSXdN 6j97Ha/kbexLfRVxnUPjUY5C4L03P2sY/ilZPsh1PCcaMftW0wKmy2kvZ3d/nf3mb0bmWZ1z9T+ /arIBAA== X-Mailer: git-send-email 2.50.1.470.g6ba607880d-goog Message-ID: <20250725214401.1475224-7-samitolvanen@google.com> Subject: [PATCH bpf-next v2 1/4] bpf: crypto: Use the correct destructor kfunc type From: Sami Tolvanen To: 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, Sami Tolvanen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Sami Tolvanen --- kernel/bpf/crypto.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/bpf/crypto.c b/kernel/bpf/crypto.c index 94854cd9c4cc..f44aa454826b 100644 --- a/kernel/bpf/crypto.c +++ b/kernel/bpf/crypto.c @@ -261,6 +261,13 @@ __bpf_kfunc void bpf_crypto_ctx_release(struct bpf_cry= pto_ctx *ctx) call_rcu(&ctx->rcu, crypto_free_cb); } =20 +__used __retain void __bpf_crypto_ctx_release(void *ctx) +{ + bpf_crypto_ctx_release(ctx); +} + +CFI_NOSEAL(__bpf_crypto_ctx_release); + 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 +375,7 @@ static const struct btf_kfunc_id_set crypt_kfunc_set = =3D { =20 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) =20 static int __init crypto_kfunc_init(void) { --=20 2.50.1.470.g6ba607880d-goog From nobody Mon Oct 6 01:23:40 2025 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E64572571AD for ; Fri, 25 Jul 2025 21:44:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479862; cv=none; b=cuB3lQt83n6TD7u1Kz/LSNWbYp/HF1dWn4th4ccuOiXuBHMx169B+qpa6cNbwXVYOUppEcY3mX7ifj40GQXqoQPpJER7tw9fWbjhn65fiDjGY9ef2HTVKDsgvCBxUc40TlpGZwVb6hPUyubAMLyiCOYyCVOX9DnZeZ38rW/n/as= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479862; c=relaxed/simple; bh=GO7ImXEAOuMIOar1IsdVoRKFJVlSFfW0FE673eTteVo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=OZKZU4UJJu3vuaNITJSBbPhDrKFLXcK+cOkkCPeVbNTBTfPuTJM7vZKZOfmgAeaXIJ2bAwm38SNTZLPlfL+DzTit0PLiF28QHenvISFbSA9ipKHCkLtN0FjvtpTCApUMVos5eNrdSiuZZEcFGnhd+yx5abpn3LxNXltrMzAC5NA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=1jZ41/pu; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="1jZ41/pu" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-3132c1942a1so3810042a91.2 for ; Fri, 25 Jul 2025 14:44:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753479860; x=1754084660; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=nh1FjbfwBquX1aOlAjtnfCEBWUtfAe9dDsJi1MAAp54=; b=1jZ41/puEnQyncoRjo+wVUnALmMTTw2u2FMwXTrdEs1AaZHu2E2Fe30pJBLmAQD82C /dklmGfUJMsnVOGEYuZUSXZK0imys2heXE9UXOwmpFgdf/54DoSZ2Fj9VK0xRZqnKsAg MFfBYhOT8ClpC7Hlb9GuUjFr6IUK+yFOH5LwhnAsH4hUG/4InyCH6LhtpOi7+pQqHM+e BHZPjC++loUi8EOUTPNxhCokt8jF1ifRMVa3IRiiElQIQGClWIKWvLk2prqvW8FMsuUs 2/ww0SbPXMeL5W1nwzncVz8XeCjMlpmECr3Gf027NIBScU6Lw7NjqjBdq7IP7D/j/P5H ysQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753479860; x=1754084660; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nh1FjbfwBquX1aOlAjtnfCEBWUtfAe9dDsJi1MAAp54=; b=VEKYOi64PMcK4+T3iPRNIeDqunebkYfgVj26YhtCiKwCmr1Kim4wOHQ+uKe4KJzxSg Vfhton1Ak5h++NWwtwYaHT6+nPb+N8W3SRMplvRAakFDH5vJ9iWBATBHOJYkCCyD0jAA KxUIW0TrHtJV9prKKGTTVHdGzLImU6AwBbhN6GvRlnhUrmVE35Ebmu7GGg7oSGbNYBUn 3YblE6+B0O15E8TMlwI8ZeY1PpzJGOS/qxTq3xh0zQafsYqLZc1/9DmDDEbPG8xGaFqJ Rw7mLNP0plHYUWzA09aHGWl7/akB6qPgNAQeneYm1J++oyqwJBbuJ2IarVdRDSNz2e8V P8Jw== X-Forwarded-Encrypted: i=1; AJvYcCXe8GALVcu4rDCBVghkioJSD531+ROn5zHqjDwwlOo8pthPVnu9kbLUuBiWyfOhn2qra2REMqpR2x4s1QE=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1QIDs5iXX3QTWJDxkAAlSF6riCZ1XHgWc0dgRlDYFTt0tIUnP nU1BNSojjAv4dzdhR0Fbj+H+PU35jVPK78+ZznM7evAAqddGy2lry2pgakp8QhcmyhvGwiSe+bg 4v9sFsfi8+3+LeenCXo8KeRMDXDWZmw== X-Google-Smtp-Source: AGHT+IFWY6iwqFym08uHjYBP6xmNfO0fYcS3owVwCfauSHVtUhoNQHns8E0XueGZKuuJciKWYVtKZeSTTNiiVsdsE7Y= X-Received: from pjboe10.prod.google.com ([2002:a17:90b:394a:b0:311:ef56:7694]) (user=samitolvanen job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:134e:b0:31c:23f2:d2ae with SMTP id 98e67ed59e1d1-31e77a59e53mr4606952a91.15.1753479860240; Fri, 25 Jul 2025 14:44:20 -0700 (PDT) Date: Fri, 25 Jul 2025 21:44:04 +0000 In-Reply-To: <20250725214401.1475224-6-samitolvanen@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250725214401.1475224-6-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=1396; i=samitolvanen@google.com; h=from:subject; bh=GO7ImXEAOuMIOar1IsdVoRKFJVlSFfW0FE673eTteVo=; b=owGbwMvMwCUWxa662nLh8irG02pJDBnNvxat8TpTKKnffUPxza2IUNVVXzTefJ4ifLQ8Mqfgn 8SmeZtaO0pZGMS4GGTFFFlavq7euvu7U+qrz0USMHNYmUCGMHBxCsBEcrUY/qmlqW+v+bIzq8wz ozFnE/euaI5naVU/L90MiHQ9E7rR9Rsjw5/Zxtcm9mqYVmjLfl9U+OlQo/aElZMiBPUvCiX8srn FwA8A X-Mailer: git-send-email 2.50.1.470.g6ba607880d-goog Message-ID: <20250725214401.1475224-8-samitolvanen@google.com> Subject: [PATCH bpf-next v2 2/4] bpf: net_sched: Use the correct destructor kfunc type From: Sami Tolvanen To: 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, Sami Tolvanen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With CONFIG_CFI_CLANG enabled, the kernel strictly enforces that indirect function calls use a function pointer type that matches the target function. As bpf_kfree_skb() signature differs from the btf_dtor_kfunc_t pointer type used for the destructor calls in bpf_obj_free_fields(), add a stub function with the correct type to fix the type mismatch. Signed-off-by: Sami Tolvanen --- net/sched/bpf_qdisc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/net/sched/bpf_qdisc.c b/net/sched/bpf_qdisc.c index adcb618a2bfc..890edd7ab64b 100644 --- a/net/sched/bpf_qdisc.c +++ b/net/sched/bpf_qdisc.c @@ -202,6 +202,13 @@ __bpf_kfunc void bpf_kfree_skb(struct sk_buff *skb) kfree_skb(skb); } =20 +__used __retain void __bpf_kfree_skb(void *skb) +{ + bpf_kfree_skb(skb); +} + +CFI_NOSEAL(__bpf_kfree_skb); + /* bpf_qdisc_skb_drop - Drop an skb by adding it to a deferred free list. * @skb: The skb whose reference to be released and dropped. * @to_free_list: The list of skbs to be dropped. @@ -449,7 +456,7 @@ static struct bpf_struct_ops bpf_Qdisc_ops =3D { .owner =3D THIS_MODULE, }; =20 -BTF_ID_LIST_SINGLE(bpf_sk_buff_dtor_ids, func, bpf_kfree_skb) +BTF_ID_LIST_SINGLE(bpf_sk_buff_dtor_ids, func, __bpf_kfree_skb) =20 static int __init bpf_qdisc_kfunc_init(void) { --=20 2.50.1.470.g6ba607880d-goog From nobody Mon Oct 6 01:23:40 2025 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6FEC225E816 for ; Fri, 25 Jul 2025 21:44:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479863; cv=none; b=I3hDQvZhf1/iyT+JdvubtFSznmeHXaXSvYq192dpNIuWOZwNsAxpmADLe01TV9tmfLul+03PAgyA9EnLeSP516/AdEDIk88Xv0xN50z7GzfPmQWvPdwu+9f6CqweDoAsi5lG5QuIgUsVHvRkdS62QM+maKsYDZ8OfQQgznOwxoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479863; c=relaxed/simple; bh=Iq1cnbTmEgni4YxG9ywBHoblhfyo+0pPO0BkBz61KdU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Ga+e5twP13dh+mwYk/5CdsN2KvtWW7IzQJ+t1/BRL2Zv6g7TJA2LhuifOXgOEsuCLmWUL2OT6Be4yldz2CsGjXN/VEj+f3G8Qkn75fmJyArkl5R4YGozeLQS9NUQ3uKPECncNEW1Ufra41CjQ3pYWij930w9kXyhl5kbOAGddZQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=XP0CYcbd; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="XP0CYcbd" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-234906c5e29so31159575ad.0 for ; Fri, 25 Jul 2025 14:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753479862; x=1754084662; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=JB3KE76w5fALvodnJVMWZoQmA6fWA680+neCuoDNhMQ=; b=XP0CYcbdivf+2cL8ff+GlnRSfkxB5uTSZkJ+/EF+iduBs9DvFMmqK0j/+FqmVKHSR9 lUewCSjVZ8yFErvSxFr3UKOeW1fEl2wKiTofKv4PTXknW/3q8gKWfPpkQI+L0PA3fOjE xD/9w3TZ90eLlSNgM+ggJgaTCRJGlWFEFVvpxNZLgUYXl2ff93zPclvRQaBiL7HJC4+M V8d+PSKTbjWXYY5KggiJ+SNfKFjUUB7DMXidcEwID01U80ZTBDtSCG8Iamazi/mAP/+Y Go3fzGjwxNwuoRpsmr13khj7kpuVGG+QSbvMT5QU7dxQ2X6zIVSDZB9eYyIQDJqUzauC VQ4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753479862; x=1754084662; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JB3KE76w5fALvodnJVMWZoQmA6fWA680+neCuoDNhMQ=; b=Dm5VidAI9jXqIfV8fTOz5hhIEphOCA2VCVwnVOaucT29jrEpfHDYpjkxDMqrg8+8dQ 9iaWya5iTfkOdP+qZhN1n0gAT30NFAn9RgN07bgft3j9QYFNxP6DlnfpM4/TllHIVVG/ NDGFFJw18LDaL7j/Hs92mT+3K5diKouD5q/1ReaVQvcypd7Q6pIXcL9GmNlx2TY9HMA4 0WRvvCOoQWhE157RirlDn5uAE+Ql+I0PFVhpMSvPaio6LycBj0JmcXWIuHbXxBklOgbj hH6Y+w86IGizz0KOnFK8Z8i6KsENohkzaJT+Q6xw8Ka0UYmtdVseENWTkBbPV8yUGhkJ uVYw== X-Forwarded-Encrypted: i=1; AJvYcCXwNrMhvLm0rLxfc1HvvERnEnsy2xUNd0xXXx49ESxuQYS67RylNnHIYubHpqtAWyIFYF9qLWDigvhMLNo=@vger.kernel.org X-Gm-Message-State: AOJu0YwxoKJvR801zIpUDPE/1H4XzzWIhna9us2Kt3WGes8zgidFvhN2 E2Z6UvSnGz4Ve2zXlH8XgFJl90O2YeSbndWWZ9wJh9ni2WfmWFJMps3pJqJ/PYDENqEY7W5RTjn 5hkULtEqHqsRGQuRULSxr/gt4hZV1uQ== X-Google-Smtp-Source: AGHT+IH1ZJHPyFWJEdvWuwgbW1dYgGrOlGx8FCPu/AvhGsRm/WBEUq4PZp8pRuQZXST0DqCbfK7QypThYkUVSL1Bzmk= X-Received: from plbkk3.prod.google.com ([2002:a17:903:703:b0:23f:bf61:8e96]) (user=samitolvanen job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:fa4:b0:234:df51:d16c with SMTP id d9443c01a7336-23fb30e8d49mr68338175ad.45.1753479861796; Fri, 25 Jul 2025 14:44:21 -0700 (PDT) Date: Fri, 25 Jul 2025 21:44:05 +0000 In-Reply-To: <20250725214401.1475224-6-samitolvanen@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250725214401.1475224-6-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=1561; i=samitolvanen@google.com; h=from:subject; bh=Iq1cnbTmEgni4YxG9ywBHoblhfyo+0pPO0BkBz61KdU=; b=owGbwMvMwCUWxa662nLh8irG02pJDBnNvxZfydzy1CX3xZLb0m2B61RMppTsa7uoWnvwlrFc8 IQyS87UjlIWBjEuBlkxRZaWr6u37v7ulPrqc5EEzBxWJpAhDFycAjARZ22G/x7cWg/DfK5eCLlm Mm966O9tv/WWy3ac/CRy5Wi58pyyQ70Mf6XXVCt66S3kT14eb+q9obL6xlWlkGVuXqcb0u9F7BK 7xgYA X-Mailer: git-send-email 2.50.1.470.g6ba607880d-goog Message-ID: <20250725214401.1475224-9-samitolvanen@google.com> Subject: [PATCH bpf-next v2 3/4] selftests/bpf: Use the correct destructor kfunc type From: Sami Tolvanen To: 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, Sami Tolvanen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With CONFIG_CFI_CLANG enabled, the kernel strictly enforces that indirect function calls use a function pointer type that matches the target function. As bpf_testmod_ctx_release() signature differs from the btf_dtor_kfunc_t pointer type used for the destructor calls in bpf_obj_free_fields(), add a stub function with the correct type to fix the type mismatch. Signed-off-by: Sami Tolvanen --- tools/testing/selftests/bpf/test_kmods/bpf_testmod.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c b/tools/t= esting/selftests/bpf/test_kmods/bpf_testmod.c index e9e918cdf31f..b086244f259a 100644 --- a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c +++ b/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c @@ -249,6 +249,13 @@ __bpf_kfunc void bpf_testmod_ctx_release(struct bpf_te= stmod_ctx *ctx) call_rcu(&ctx->rcu, testmod_free_cb); } =20 +__used __retain void __bpf_testmod_ctx_release(void *ctx) +{ + bpf_testmod_ctx_release(ctx); +} + +CFI_NOSEAL(__bpf_testmod_ctx_release); + static struct bpf_testmod_ops3 *st_ops3; =20 static int bpf_testmod_test_3(void) @@ -631,7 +638,7 @@ BTF_KFUNCS_END(bpf_testmod_common_kfunc_ids) =20 BTF_ID_LIST(bpf_testmod_dtor_ids) BTF_ID(struct, bpf_testmod_ctx) -BTF_ID(func, bpf_testmod_ctx_release) +BTF_ID(func, __bpf_testmod_ctx_release) =20 static const struct btf_kfunc_id_set bpf_testmod_common_kfunc_set =3D { .owner =3D THIS_MODULE, --=20 2.50.1.470.g6ba607880d-goog From nobody Mon Oct 6 01:23:40 2025 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18A74253B71 for ; Fri, 25 Jul 2025 21:44:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479865; cv=none; b=U9NyCwyQqLAsTR5Pn0CQX5qzLDSdBybc2AkgndkT7xNxNIbctk8/+WyA6rq0vSPpndrUrSFMarVnDr0RNcVibTaTjsWeJZgiTu43cjfFKfgfnTXJFd+0hX9vv3KNccyj+SUzhU6WeZnpD1WslPuZdS02V+E2JTjeNKIfQ9gGu9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753479865; c=relaxed/simple; bh=4N95PHaH5sTwnPpy+bRhfgpn+/S4W3TV/v5oApqGZh8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=uWh7G3m9NHI0dtvZjKk4hIRVq9PhI4eq1pbVlFRlaBbH6XgHZ5DgiFo6SW90SffvzkaGwWKFOXpdO1ZeM8oQh8CF2503j3DU4E13xM5YJdVJl+jKfgMr4iAavSgwDVzDF9NLIum8Ho1w2HRq1t4OFwZ5OPcJaJmciqTYDgIs1H8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=E4vgcAjh; arc=none smtp.client-ip=209.85.215.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--samitolvanen.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="E4vgcAjh" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b3928ad6176so2366629a12.3 for ; Fri, 25 Jul 2025 14:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753479863; x=1754084663; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=l30q4xjgSSq02GIRwkV5JkxzVEDFHasp0ZpBbR5DA+c=; b=E4vgcAjh3/d6QIa1QrCAD5Z14jDOiLFTxWVtj23ENMutfs/4T6ogUA74HyBeCf6QRB O357dV1oz5L3/s/Ecg5N4EB9mJOo12XULyX6NFEwktlpIM59UmIvZ60S0aENFlRXP894 p46biJXreOoLLoH6Ie42tBjjOaHng5BQ6ReF867OxqYKvu/ozo4dd2g8lilDghlUFdlb BrvrQZJF/Y0PMQK2VPft5U4M9GhyFUta1dyPbGOISw3BYIsRHiOxaXPU96H+GVwddWqy 57otjQa+vMx22nhx2ARdXH+yy6TlDnF/+zC5eoT7JjbX+gDqsZrIB4yw7sTvoZaXtpoR KHQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753479863; x=1754084663; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l30q4xjgSSq02GIRwkV5JkxzVEDFHasp0ZpBbR5DA+c=; b=E5vkzxYfrjUnTyIHl7pGdgI0uQF2n3xMwBesPfVSa94nxHvg4a8pwK7Na5Dzqriedj Ftvpz4hl9naOco56FbGSCl8e4iDB86gqFdr5sdCMdlSbjAYDkEbB9upr20GER7mIaS20 DUwSoK/KB1Ww1qvnB6HmzNVHrMixszYBYQFa+HIpXmojBo3Zo4ia5Uiens+vltXLtAoq pxP6K2jqhT+xfM3UowpdMqkPYjwB4F9Bq3swz98BsqfHR6hBalAaKWFFTUw02KtfYKFO uRDsDMZ7fbF+ZVmysjDdMhTaOMMjeRqLAxp/ridpBULHh9dTo7Xy4GIfmzTTkfhCYD2B rALw== X-Forwarded-Encrypted: i=1; AJvYcCX94E3+ytMxcvHk0Awg1nswQn/L8bnBeZd7xx2oB6pVtyQIXHzrnNYHayENxL9YmHjm7f6AKB4LeER60ik=@vger.kernel.org X-Gm-Message-State: AOJu0Yxl06HsauFH31TiI/WPgC5rlDf///FeJqFvquxPBbhMvSeL0jsz N93tWHq/4OMA5l6558WEBzGEbrvvmt1FnmhyQbxEGrvlEfodG7tqYTC9xCPfwAi45fvAVVhvX7r 0gDfmeOOMGU2JJG/W+euG5f3eINrM+Q== X-Google-Smtp-Source: AGHT+IH2RmYkNP5u1YAotNL4rM7ZeCOu/AMOj9VOuB47c3yjiujrMv9Bt7p2q0nrdOaoANv0rCoAFl9OMd22HLgNjxw= X-Received: from plbld13.prod.google.com ([2002:a17:902:facd:b0:23c:8603:9e00]) (user=samitolvanen job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:41c1:b0:235:e8da:8d6 with SMTP id d9443c01a7336-23fb3050a7cmr55292785ad.2.1753479863418; Fri, 25 Jul 2025 14:44:23 -0700 (PDT) Date: Fri, 25 Jul 2025 21:44:06 +0000 In-Reply-To: <20250725214401.1475224-6-samitolvanen@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250725214401.1475224-6-samitolvanen@google.com> X-Developer-Key: i=samitolvanen@google.com; a=openpgp; fpr=35CCFB63B283D6D3AEB783944CB5F6848BBC56EE X-Developer-Signature: v=1; a=openpgp-sha256; l=853; i=samitolvanen@google.com; h=from:subject; bh=4N95PHaH5sTwnPpy+bRhfgpn+/S4W3TV/v5oApqGZh8=; b=owGbwMvMwCUWxa662nLh8irG02pJDBnNvxYfqK6uYuzr3vB+Q7EW85RJVqe0m9aG/WMJmGv7W u7Ql76JHaUsDGJcDLJiiiwtX1dv3f3dKfXV5yIJmDmsTCBDGLg4BWAiTt6MDOs3y1o8sDI/HfW0 5vwd6c83RMwbXjlsZXTZuYv3bleiSy0jw8VaAaa9Ro8KVbdL3hJfqnTB4kaC9QLufzN890hXWZy czggA X-Mailer: git-send-email 2.50.1.470.g6ba607880d-goog Message-ID: <20250725214401.1475224-10-samitolvanen@google.com> Subject: [PATCH bpf-next v2 4/4] bpf, btf: Enforce destructor kfunc type with CFI From: Sami Tolvanen To: 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, Sami Tolvanen Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Ensure that registered destructor kfuncs have the same type as btf_dtor_kfunc_t to avoid a kernel panic on systems with CONFIG_CFI_CLANG enabled. Signed-off-by: Sami Tolvanen Acked-by: Yonghong Song --- kernel/bpf/btf.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index 0aff814cb53a..2b0ebd46db4a 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -8856,6 +8856,13 @@ static int btf_check_dtor_kfuncs(struct btf *btf, co= nst struct btf_id_dtor_kfunc */ if (!t || !btf_type_is_ptr(t)) return -EINVAL; + + if (IS_ENABLED(CONFIG_CFI_CLANG)) { + /* Ensure the destructor kfunc type matches btf_dtor_kfunc_t */ + t =3D btf_type_by_id(btf, t->type); + if (!btf_type_is_void(t)) + return -EINVAL; + } } return 0; } --=20 2.50.1.470.g6ba607880d-goog