Thread (55 messages) 55 messages, 16 authors, 2017-01-30

Re: [PATCH 5/6] treewide: use kv[mz]alloc* rather than opencoded variants

From: Michal Hocko <mhocko@kernel.org>
Date: 2017-01-25 13:09:12
Also in: lkml, netdev

On Wed 25-01-17 12:15:59, Vlastimil Babka wrote:
On 01/24/2017 04:00 PM, Michal Hocko wrote:
quoted
quoted
quoted
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.
quoted
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,
quoted
To be honest I do not
really like how kcalloc...
how kcalloc what?
how kcalloc hides the GFP_ZERO and the name doesn't reflect that.
 
[...]
quoted
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.
fixed, thanks!

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help