2023-07-25 12:28:05

by Jinjie Ruan

[permalink] [raw]
Subject: [PATCH -next] sched/fair: Use struct_size()

Use struct_size() instead of hand-writing it, when allocating a structure
with a flex array.

This is less verbose.

Signed-off-by: Ruan Jinjie <[email protected]>
---
kernel/sched/fair.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index f8b71ea5948b..cc041a48100f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -2889,9 +2889,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags,
int i;

if (unlikely(!deref_curr_numa_group(p))) {
- unsigned int size = sizeof(struct numa_group) +
- NR_NUMA_HINT_FAULT_STATS *
- nr_node_ids * sizeof(unsigned long);
+ unsigned int size = struct_size(grp, faults,
+ NR_NUMA_HINT_FAULT_STATS * nr_node_ids);

grp = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);
if (!grp)
--
2.34.1



2023-07-25 13:51:38

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH -next] sched/fair: Use struct_size()

On Tue, Jul 25, 2023 at 07:50:20PM +0000, Ruan Jinjie wrote:
> Use struct_size() instead of hand-writing it, when allocating a structure
> with a flex array.
>
> This is less verbose.

As per all the other times, no. It is also less clear. I never can
remember what that thing does and the code it replaces is utterly
trivial.

> Signed-off-by: Ruan Jinjie <[email protected]>
> ---
> kernel/sched/fair.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index f8b71ea5948b..cc041a48100f 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2889,9 +2889,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags,
> int i;
>
> if (unlikely(!deref_curr_numa_group(p))) {
> - unsigned int size = sizeof(struct numa_group) +
> - NR_NUMA_HINT_FAULT_STATS *
> - nr_node_ids * sizeof(unsigned long);
> + unsigned int size = struct_size(grp, faults,
> + NR_NUMA_HINT_FAULT_STATS * nr_node_ids);
>
> grp = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);
> if (!grp)
> --
> 2.34.1
>