From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 72D3B3CB2DB for ; Wed, 1 Jul 2026 08:08:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782893293; cv=none; b=mBXqFZi1EB4t2omxPhgzlVLYW0cz6bzbSR84dkouUfV4Czord1qluMJtFN8mo8OWr1v2PG1AusHjREwSr+881wog9MCdTtPZUEjQkVKPwrmypaXQ6dKC9zE8si+WCFrtuxtt8eqMoZCk+qv5FwJffA9k/iSE8TOqRRF7rZvcMC8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782893293; c=relaxed/simple; bh=nvNjJxN8d7S7fwFmCmCVHAK94UdVcm9NUdeYMSQFoRE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=AuC0m38uNL3mPHr31IVd6shy0FB276uPwkbcD0xXulNvl8BFVG3X3ivGW9O+h+IcW4xVpVNpgAi7tkJotgLT1x2HJqgLM81P+d9wXz5dhFVFFSZpeySL/OWxnYyM57Fj5o3CQ6h5lKAFTPpvjYfRa+pHTHa2j5IOMD7PbCe3uHU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=P2pwR7zN; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P2pwR7zN" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-8423f236418so197815b3a.1 for ; Wed, 01 Jul 2026 01:08:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782893290; x=1783498090; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Dr3ca9Gbche1v8ZCkSbyudGXgkkz76Bf2v/z4hZeM2M=; b=P2pwR7zN5bKIi4llG30rY2wHwnCoVcyb5DsnD32qDG7SHl5NvgrhxS4oEkpIGUG/gq Ba9zKX3rciKz4IoOKMuOU/l3WVg3OAdiVmkqo0emvr/VedT1csK09U492Wa9yZqArBeg GsomI9ToGZhdF4BbS1CnsOMErHxp5tPxJ2DtNH8oZb8BJ+t8rfI4SHCyHajIfzTS3TiD qFnpf7tLrLBiWB3cw+3whYYQoeK58SZ3F2+WCE8l5gJ7hZ4XXuSvKglQnCKVxzjpX5By YRZStcin7olFCYEk6dFbqTahcDqGdMvzF+OPv+2oOc2rMn2ydUjymC9bZ48RqBSJgOVv +Qzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782893290; x=1783498090; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Dr3ca9Gbche1v8ZCkSbyudGXgkkz76Bf2v/z4hZeM2M=; b=tEHYLyrCGWmSSrYL+x+5EkybB+sQTfSoLpW0ey4hSQ3DFTF7DZ56W27xcSuoAIjXL3 5GoVaO8pJZPTB3kmpGp+KFgpQ23taXou2NPcOsSPUZ1P01bbQcJrELAfEdP7np67c2LW 3cjL07JeFRU5iHAAIvqwFiKw2EFEJepSIfbLfNDm8WdnhMaKNQdctyVj6YiHFM4egooA xGurbLz3k76UEJxwAcPeQxoTUjk/hl5vmYm8nidsA3qNtw3/1IXMavKQjPYiE4R0KyuG OSLTC60bE+7sziGJ4njoOEJoel3S411d5J/6S42Bu5oPC606ai483IHihxSsL9lYJo9I 1hzQ== X-Forwarded-Encrypted: i=1; AHgh+RpfGZ5/9HoFxYkI5jC5jqRECS43UVpY4vPpntll0mfA0mDjnXEnHLGCYMVx/lZd6LF+zvmQKMYLKaWMvOk=@vger.kernel.org X-Gm-Message-State: AOJu0YyaFIrW+8hKpQnHRiwWmZKWP8/BcRzo5iZxrXk59j86I2BdY1RC bru1Rs0aM3zPL3ltIzNd6kO253al+qc73Eil+kPHUN3DRoIb6ZmON6hZ X-Gm-Gg: AfdE7cl2hKyfr5ZF0Cn4g0NbUsxoPVqI9+30QqorT0Z3Iu4Z+zmXHBPWodovN3EDgZK 4SwL9WLMKt86YkHt3WaK5d/NdVDCqPyFpqKOpRD+5WDnNpOyM4BPfoJ7T0e8rcBmLMPhdMXpv5f 2x4RE05UIHiX4xr5A/ihqj6r/JS7WmjwOR/dSY4a/jjnIfzojrZjgUrxDW0dVOuRMcU+TVhbhMh 1TL2Kfek+ZycjwMxj26+6z96clFaOLmyDg9ye9EjktMSWXw3RK9glZATGvLpWi+eChS5BxxVOv4 0tAqJxWRar8Nm9o0H2X5xcSD9U7EAMk5ENyDKTxVsDMSWh3fTO3nOV80fKAK+YVwPFMGZNGKQQ8 uFumaV17C0BUv9qK47+YixePJpv2sKthtrydzE9dxsh7BPQZiSVy5wp2RwMZVll2Goyo3+KhWGK +CyfsK5JaDPXqBTEeSuTR7mFjcZVZwuIECq1IYAsDgbwl3YqwF33k= X-Received: by 2002:a05:6a00:2d05:b0:842:5a8d:302c with SMTP id d2e1a72fcca58-847c093f017mr478860b3a.38.1782893290425; Wed, 01 Jul 2026 01:08:10 -0700 (PDT) Received: from cps-manycore-1.. ([147.46.174.222]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8479fffa4f0sm3567781b3a.19.2026.07.01.01.08.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 01:08:09 -0700 (PDT) From: Sechang Lim To: KP Singh , Matt Bobrowski , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi Cc: Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Paul Moore , bpf@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf v2] bpf,lsm: drop bpf_prog_free from sleepable_lsm_hooks Date: Wed, 1 Jul 2026 08:07:51 +0000 Message-ID: <20260701080757.1394144-1-rhkrqnwk98@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit __bpf_prog_put_rcu() is the call_rcu() callback for non-sleepable programs. security_bpf_prog_free() called from there fires bpf_prog_free in softirq; if a sleepable LSM prog is attached to that hook, might_fault() BUGs: BUG: sleeping function called from invalid context in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5038 preempt_count: 101, expected: 0 Call Trace: __bpf_prog_enter_sleepable+0x1cd/0x320 kernel/bpf/trampoline.c:1255 bpf_trampoline_6442549705+0x53/0xd7 security_bpf_prog_free+0xde/0x130 security/security.c:5465 __bpf_prog_put_rcu+0xab/0xd0 kernel/bpf/syscall.c:2365 rcu_do_batch kernel/rcu/tree.c:2617 [inline] handle_softirqs+0x236/0x800 kernel/softirq.c:622 The call_rcu/call_rcu_tasks_trace split reflects the freed program's sleepability, not that of any attached observer. security_bpf_prog_free() also frees prog->aux->security, which has to stay after the grace period, so drop bpf_prog_free from sleepable_lsm_hooks rather than move the call. Non-sleepable observers still run there. Fixes: 1b67772e4e3f ("bpf,lsm: Refactor bpf_prog_alloc/bpf_prog_free LSM hooks") Signed-off-by: Sechang Lim --- v2: - remove security_bpf_prog_free from sleepable (Alexei Starovoitov) v1: - https://lore.kernel.org/all/20260626093711.2969648-1-rhkrqnwk98@gmail.com/ kernel/bpf/bpf_lsm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/bpf/bpf_lsm.c b/kernel/bpf/bpf_lsm.c index c5c925f00202..d2dd5a1b557d 100644 --- a/kernel/bpf/bpf_lsm.c +++ b/kernel/bpf/bpf_lsm.c @@ -292,7 +292,6 @@ BTF_ID(func, bpf_lsm_bpf_map_create) BTF_ID(func, bpf_lsm_bpf_map_free) BTF_ID(func, bpf_lsm_bpf_prog) BTF_ID(func, bpf_lsm_bpf_prog_load) -BTF_ID(func, bpf_lsm_bpf_prog_free) BTF_ID(func, bpf_lsm_bpf_token_create) BTF_ID(func, bpf_lsm_bpf_token_free) BTF_ID(func, bpf_lsm_bpf_token_cmd) -- 2.43.0