[PATCH v9 01/10] btf: Add a new kfunc flag which allows to mark a function to be sleepable
Daniel Borkmann
daniel at iogearbox.net
Wed Aug 10 14:38:54 UTC 2022
On 8/10/22 4:25 PM, Benjamin Tissoires wrote:
> On Wed, Aug 10, 2022 at 3:44 PM Roberto Sassu <roberto.sassu at huawei.com> wrote:
>>> From: Jarkko Sakkinen [mailto:jarkko at kernel.org]
>>> Sent: Tuesday, August 9, 2022 6:55 PM
>>> On Tue, Aug 09, 2022 at 03:45:54PM +0200, Roberto Sassu wrote:
>>>> From: Benjamin Tissoires <benjamin.tissoires at redhat.com>
>>>>
>>>> From: Benjamin Tissoires <benjamin.tissoires at redhat.com>
>>>>
>>>> This allows to declare a kfunc as sleepable and prevents its use in
>>>> a non sleepable program.
>>>
>>> Nit: "Declare a kfunc as sleepable and prevent its use in a
>>> non-sleepable program."
>>>
>>> It's missing the part *how* the patch accomplishes its goals.
>>
>> I will add:
>>
>> If an eBPF program is going to call a kfunc declared as sleepable,
>> eBPF will look at the eBPF program flags. If BPF_F_SLEEPABLE is
>> not set, execution of that program is denied.
>
> All those changes are looking good to me.
>
> Thanks a lot for keeping pushing on this patch :)
This single one from the series got already applied here:
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=fa96b24204af42274ec13dfb2f2e6990d7510e55
>>>> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at redhat.com>
>>>> Co-developed-by: Yosry Ahmed <yosryahmed at google.com>
>>>> Signed-off-by: Yosry Ahmed <yosryahmed at google.com>
>>>> Signed-off-by: Hao Luo <haoluo at google.com>
>>>> ---
>>>> Documentation/bpf/kfuncs.rst | 6 ++++++
>>>> include/linux/btf.h | 1 +
>>>> kernel/bpf/btf.c | 9 +++++++++
>>>> 3 files changed, 16 insertions(+)
>>>>
>>>> diff --git a/Documentation/bpf/kfuncs.rst b/Documentation/bpf/kfuncs.rst
>>>> index c0b7dae6dbf5..c8b21de1c772 100644
>>>> --- a/Documentation/bpf/kfuncs.rst
>>>> +++ b/Documentation/bpf/kfuncs.rst
>>>> @@ -146,6 +146,12 @@ that operate (change some property, perform some
>>> operation) on an object that
>>>> was obtained using an acquire kfunc. Such kfuncs need an unchanged pointer
>>> to
>>>> ensure the integrity of the operation being performed on the expected object.
More information about the Linux-security-module-archive
mailing list