public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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


  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox