Re: [PATCH 0/2] btrfs: Prevent open-coded arithmetic on kmalloc
From: Miquel Sabaté Solà
Date: Mon Sep 22 2025 - 08:51:21 EST
Hello,
David Sterba @ 2025-09-22 12:34 +02:
> On Fri, Sep 19, 2025 at 04:58:14PM +0200, Miquel Sabaté Solà wrote:
>> The second patch is a small cleanup after fixing up my first patch, in
>> which I realized that the __free(kfree) attribute would come in handy in a
>> couple of particularly large functions with multiple exit points. This
>> second patch is probably more of a cosmetic thing, and it's not an
>> exhaustive exercise by any means. All of this to say that even if I feel
>> like it should be included, I don't mind if it has to be dropped.
>
> Yes there are many candidates for the __free() cleanup annotation and
> we'll want to fix them all systematically. We already have the automatic
> cleaning for struct btrfs_path (BTRFS_PATH_AUTO_FREE). For the
> kfree/kvfree I'd like to something similar:
>
> #define AUTO_KFREE(name) *name __free(kfree) = NULL
> #define AUTO_KVFREE(name) *name __free(kvfree) = NULL
>
> This wraps the name and initializes it to NULL so it's not accidentally
> forgotten.
Makes sense! I can take a look at this if nobody else is working on it,
even if I think it should go into a new patch series.
Hence, if it sounds good to you, we can merge this patch as it is right
now, and in parallel I work on this proposed AUTO_KFREE and AUTO_KVFREE
macros in a new patch series (which will take more time to prepare).
Thanks,
Miquel
Attachment:
signature.asc
Description: PGP signature