Message ID | e5122b4ff878cbf3ed72653a395ad5c4da04dc1e.1697264974.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | Accepted |
Commit | df3bf90fef281c630ef06a3d03efb9fe56c8a0fb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2,1/2] net: openvswitch: Use struct_size() | expand |
On Sat, Oct 14, 2023 at 08:34:52AM +0200, Christophe JAILLET wrote: > Use struct_size() instead of hand writing it. > This is less verbose and more robust. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > v2: No change > > v1: https://lore.kernel.org/all/8be59c9e06fca8eff2f264abb4c2f74db0b19a9e.1696156198.git.christophe.jaillet@wanadoo.fr/ > > > This is IMHO more readable, even if not perfect. > > However (untested): > + new = kzalloc(size_add(struct_size(new, masks, size), > size_mul(sizeof(u64), size)), GFP_KERNEL); > looks completely unreadable to me. Thanks, this looks correct (and more readable) to me. Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This series was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Sat, 14 Oct 2023 08:34:52 +0200 you wrote: > Use struct_size() instead of hand writing it. > This is less verbose and more robust. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > v2: No change > > [...] Here is the summary with links: - [v2,1/2] net: openvswitch: Use struct_size() https://git.kernel.org/netdev/net-next/c/df3bf90fef28 - [v2,2/2] net: openvswitch: Annotate struct mask_array with __counted_by https://git.kernel.org/netdev/net-next/c/7713ec844756 You are awesome, thank you!
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 4f3b1798e0b2..d108ae0bd0ee 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -220,16 +220,13 @@ static struct mask_array *tbl_mask_array_alloc(int size) struct mask_array *new; size = max(MASK_ARRAY_SIZE_MIN, size); - new = kzalloc(sizeof(struct mask_array) + - sizeof(struct sw_flow_mask *) * size + + new = kzalloc(struct_size(new, masks, size) + sizeof(u64) * size, GFP_KERNEL); if (!new) return NULL; new->masks_usage_zero_cntr = (u64 *)((u8 *)new + - sizeof(struct mask_array) + - sizeof(struct sw_flow_mask *) * - size); + struct_size(new, masks, size)); new->masks_usage_stats = __alloc_percpu(sizeof(struct mask_array_stats) + sizeof(u64) * size,
Use struct_size() instead of hand writing it. This is less verbose and more robust. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- v2: No change v1: https://lore.kernel.org/all/8be59c9e06fca8eff2f264abb4c2f74db0b19a9e.1696156198.git.christophe.jaillet@wanadoo.fr/ This is IMHO more readable, even if not perfect. However (untested): + new = kzalloc(size_add(struct_size(new, masks, size), size_mul(sizeof(u64), size)), GFP_KERNEL); looks completely unreadable to me. --- net/openvswitch/flow_table.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)