Re: [RFC PATCH] mm/damon/sysfs: add __counted_by() annotation

From: Kees Cook
Date: Fri Aug 25 2023 - 17:35:43 EST


On Fri, Aug 25, 2023 at 02:04:41AM +0000, SeongJae Park wrote:
> Commit dd06e72e68bc ("Compiler Attributes: Add __counted_by macro")
> added __counted_by() annotation. The underlying attribute for the
> feature is still under development, but adopting it can improve the
> readability of the code. Apply it to four dynamic arrays in DAMON sysfs
> code.
>
> Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
> ---
> mm/damon/sysfs.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
> index 808a8efe0523..36a176f38726 100644
> --- a/mm/damon/sysfs.c
> +++ b/mm/damon/sysfs.c
> @@ -93,7 +93,7 @@ static const struct kobj_type damon_sysfs_region_ktype = {
>
> struct damon_sysfs_regions {
> struct kobject kobj;
> - struct damon_sysfs_region **regions_arr;
> + struct damon_sysfs_region **regions_arr __counted_by(nr);
> int nr;
> };

Unfortunately this isn't supported yet for non-flexible-array-members:

mm/damon/sysfs.c:96:14: error: 'counted_by' attribute may not be specified for a non-array field
96 | struct damon_sysfs_region **regions_arr __counted_by(nr);
| ^~~~~

We'll have to wait a bit before we can add this patch. Thank you for
getting it ready, though! This support is next in line. :)

The FAM support is likely ready to land, though[1]. I just tested it
today.

-Kees

[1] https://gcc.gnu.org/pipermail/gcc-patches/2023-August/628459.html

--
Kees Cook