Messages in this thread | | | Subject | Re: [PATCH 5/6] treewide: use kv[mz]alloc* rather than opencoded variants | From | Vlastimil Babka <> | Date | Wed, 25 Jan 2017 12:15:59 +0100 |
| |
On 01/24/2017 04:00 PM, Michal Hocko wrote: >> > Well, I am not opposed to kvmalloc_array but I would argue that this >> > conversion cannot introduce new overflow issues. The code would have >> > to be broken already because even though kmalloc_array checks for the >> > overflow but vmalloc fallback doesn't... >> >> Yeah I agree, but if some of the places were really wrong, after the >> conversion we won't see them anymore. >> >> > If there is a general interest for this API I can add it. >> >> I think it would be better, yes. > > OK, fair enough. I will fold the following into the original patch. I > was little bit reluctant to create kvcalloc so I've made the original > callers more talkative and added | __GFP_ZERO.
Fair enough,
> To be honest I do not > really like how kcalloc...
how kcalloc what?
[...] > diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c > index cdc55d5ee4ad..eca16612b1ae 100644 > --- a/net/netfilter/x_tables.c > +++ b/net/netfilter/x_tables.c > @@ -712,10 +712,7 @@ EXPORT_SYMBOL(xt_check_entry_offsets); > */ > unsigned int *xt_alloc_entry_offsets(unsigned int size) > { > - if (size < (SIZE_MAX / sizeof(unsigned int))) > - return kvzalloc(size * sizeof(unsigned int), GFP_KERNEL); > - > - return NULL; > + return kvmalloc_array(size * sizeof(unsigned int), GFP_KERNEL | __GFP_ZERO);
This one wouldn't compile.
| |