team: avoid using variable-length array

Apparently using variable-length array is not correct
(https://lkml.org/lkml/2011/10/23/25). So remove it.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jiri Pirko 2011-11-17 04:16:05 +00:00 committed by David S. Miller
parent 234a8fd49d
commit 2bba19fff8
1 changed files with 7 additions and 2 deletions

View File

@ -96,10 +96,13 @@ int team_options_register(struct team *team,
size_t option_count) size_t option_count)
{ {
int i; int i;
struct team_option *dst_opts[option_count]; struct team_option **dst_opts;
int err; int err;
memset(dst_opts, 0, sizeof(dst_opts)); dst_opts = kzalloc(sizeof(struct team_option *) * option_count,
GFP_KERNEL);
if (!dst_opts)
return -ENOMEM;
for (i = 0; i < option_count; i++, option++) { for (i = 0; i < option_count; i++, option++) {
struct team_option *dst_opt; struct team_option *dst_opt;
@ -119,12 +122,14 @@ int team_options_register(struct team *team,
for (i = 0; i < option_count; i++) for (i = 0; i < option_count; i++)
list_add_tail(&dst_opts[i]->list, &team->option_list); list_add_tail(&dst_opts[i]->list, &team->option_list);
kfree(dst_opts);
return 0; return 0;
rollback: rollback:
for (i = 0; i < option_count; i++) for (i = 0; i < option_count; i++)
kfree(dst_opts[i]); kfree(dst_opts[i]);
kfree(dst_opts);
return err; return err;
} }