Re: [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rolf Eike Beer wrote:
Am Donnerstag, 20. Juli 2006 21:05 schrieb Panagiotis Issaris:
@@ -443,12 +442,11 @@ int con_clear_unimap(struct vc_data *vc,
 	p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
 	if (p && p->readonly) return -EIO;
 	if (!p || --p->refcount) {
-		q = (struct uni_pagedir *)kmalloc(sizeof(*p), GFP_KERNEL);
+		q = kzalloc(sizeof(*p), GFP_KERNEL);
 		if (!q) {
 			if (p) p->refcount++;
 			return -ENOMEM;
 		}
-		memset(q, 0, sizeof(*q));
 		q->refcount=1;
 		*vc->vc_uni_pagedir_loc = (unsigned long)q;
 	} else {

This one still changes the way the code works. Before your patch *p will be always zeroed out. Now if p is there before it will keep it's contents.

No, it doesn't, the data at *p is/was not zeroed inside the if { .. } block.
Read carefully, the multiple statements on one line obfuscations might
have thrown you off.
However, it is slightly confusing that the value assigned to `q' is
kzalloced using sizeof(*p). It is an improvement though, as the old version
kmalloced using sizeof(*p), and memset using sizeof(*q).
That was really strange.


Daniel K.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux