From: Panagiotis Issaris <takis@gna.org>
To: Rolf Eike Beer <eike-kernel@sf-tec.de>
Cc: Panagiotis Issaris <takis@lumumba.uhasselt.be>,
linux-kernel@vger.kernel.org, len.brown@intel.com,
chas@cmf.nrl.navy.mil, miquel@df.uba.ar, kkeil@suse.de,
benh@kernel.crashing.org, video4linux-list@redhat.com,
rmk+mmc@arm.linux.org.uk, Neela.Kolli@engenio.com,
jgarzik@pobox.com, vandrove@vc.cvut.cz, adaplas@pol.net,
thomas@winischhofer.net, weissg@vienna.at, philb@gnu.org,
linux-pcmcia@lists.infradead.org, jkmaline@cc.hut.fi,
paulus@samba.org
Subject: Re: [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc.
Date: Fri, 21 Jul 2006 12:30:39 +0200 [thread overview]
Message-ID: <1153477839.9489.25.camel@hemera> (raw)
In-Reply-To: <200607210850.17878.eike-kernel@sf-tec.de>
Hi,
On vr, 2006-07-21 at 08:50 +0200, Rolf Eike Beer wrote:
>[...]
> Space after comma.
>[...]
> sizeof(*ltp)?
>
> [more of this snipped]
>
> > @@ -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.
Hmm. I do not really see the functional change here: If the memory
allocation failed, then in both cases, q will be zero and the function
will return. If the memory allocation succeeds, then in both cases a
memset will occur. Is it more subtle than that?
Before change:
if (!p || --p->refcount) {
q = kmalloc(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;
}
After change:
if (!p || --p->refcount) {
q = kzalloc(sizeof(*p), GFP_KERNEL);
if (!q) {
if (p)
p->refcount++;
return -ENOMEM;
}
q->refcount=1;
*vc->vc_uni_pagedir_loc = (unsigned long)q;
}
If !p then in both cases, q will be assigned some memory,
and if that succeeds, the block of memory will be cleared,
if it fails, it will not be cleared and the function will
exit.
If p then if --p->refcount<>0, a new block will be allocated
and if the allocation succeeds, it will be cleared in both cases.
If --p->refcount==0, nothing will be allocated nor cleared, in both
cases.
With friendly regards,
Takis
next prev parent reply other threads:[~2006-07-21 10:31 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-20 19:05 [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc Panagiotis Issaris
2006-07-21 6:50 ` Rolf Eike Beer
2006-07-21 6:58 ` Pekka Enberg
2006-07-21 7:05 ` Jeff Garzik
2006-07-21 9:09 ` Stefan Richter
2006-07-21 10:20 ` Jesper Juhl
2006-07-21 10:35 ` Panagiotis Issaris
2006-07-21 10:38 ` Pekka J Enberg
2006-07-21 10:55 ` Stefan Richter
2006-07-22 17:58 ` Tomasz Kłoczko
2006-07-22 18:25 ` Stefan Richter
2006-07-22 18:35 ` Tomasz Kłoczko
2006-07-22 20:02 ` Jeff Garzik
2006-07-22 20:55 ` Tomasz Kłoczko
2006-07-23 11:20 ` Alexey Dobriyan
2006-07-23 17:55 ` Tomasz Kłoczko
2006-07-23 18:24 ` Michael Buesch
2006-07-24 0:10 ` Tomasz Kłoczko
2006-07-24 0:49 ` Tomasz Kłoczko
2006-07-24 8:03 ` Lindent cleanup (was Re: [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc.) Stefan Richter
2006-07-24 8:52 ` Tomasz Kłoczko
2006-07-23 15:16 ` [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc Stefan Richter
2006-07-23 18:09 ` Tomasz Kłoczko
2006-07-21 10:53 ` Stefan Richter
2006-07-21 11:09 ` Stefan Richter
2006-07-21 21:16 ` Jeff Garzik
2006-07-21 21:15 ` Jeff Garzik
2006-07-22 6:20 ` Stefan Richter
2006-07-21 9:32 ` [PATCH] drivers: Conversions from kmalloc+memset tok(z|c)alloc Panagiotis Issaris
2006-07-21 10:14 ` Pekka J Enberg
2006-07-21 10:42 ` Panagiotis Issaris
2006-07-21 11:02 ` Stefan Richter
2006-07-21 11:20 ` Pekka J Enberg
2006-07-21 14:08 ` Stefan Richter
2006-07-21 21:17 ` Jeff Garzik
2006-07-21 10:21 ` [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc Daniel K.
2006-07-21 10:30 ` Panagiotis Issaris [this message]
2006-07-21 11:12 ` Rolf Eike Beer
2006-07-21 12:35 ` Dmitry Torokhov
2006-07-21 12:39 ` Panagiotis Issaris
-- strict thread matches above, loose matches on Subject: below --
2006-07-22 2:22 Brown, Len
2006-07-19 0:46 Panagiotis Issaris
2006-07-19 0:59 ` Alexey Dobriyan
2006-07-19 1:38 ` Panagiotis Issaris
2006-07-19 2:40 ` Daniel K.
2006-07-19 8:38 ` Pekka Enberg
2006-07-20 17:25 ` Panagiotis Issaris
2006-07-19 12:17 ` Antonino A. Daplas
2006-07-19 12:52 ` Paul Mackerras
2006-07-19 13:53 ` Pekka Enberg
2006-07-19 13:53 ` Paulo Marques
2006-07-20 18:03 ` Panagiotis Issaris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1153477839.9489.25.camel@hemera \
--to=takis@gna.org \
--cc=Neela.Kolli@engenio.com \
--cc=adaplas@pol.net \
--cc=benh@kernel.crashing.org \
--cc=chas@cmf.nrl.navy.mil \
--cc=eike-kernel@sf-tec.de \
--cc=jgarzik@pobox.com \
--cc=jkmaline@cc.hut.fi \
--cc=kkeil@suse.de \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pcmcia@lists.infradead.org \
--cc=miquel@df.uba.ar \
--cc=paulus@samba.org \
--cc=philb@gnu.org \
--cc=rmk+mmc@arm.linux.org.uk \
--cc=takis@lumumba.uhasselt.be \
--cc=thomas@winischhofer.net \
--cc=vandrove@vc.cvut.cz \
--cc=video4linux-list@redhat.com \
--cc=weissg@vienna.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.