Message ID | 1417629571.2902.16.camel@perches.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
At Wed, 03 Dec 2014 09:59:31 -0800, Joe Perches wrote: > > Move the pointer declarations into the blocks that use them. > Neaten the kfree calls when the _init functions fail. > > Trivially reduces object size (defconfig x86-64) > > $ size sound/pci/ctxfi/ctdaio.o.* > text data bss dec hex filename > 5287 224 0 5511 1587 sound/pci/ctxfi/ctdaio.o.new > 5319 224 0 5543 15a7 sound/pci/ctxfi/ctdaio.o.old > > Signed-off-by: Joe Perches <joe@perches.com> > Noticed-by: Markus Elfring <elfring@users.sourceforge.net> > --- > On Wed, 2014-12-03 at 18:30 +0100, Takashi Iwai wrote: > > At Wed, 03 Dec 2014 09:14:48 -0800, Joe Perches wrote: > > > On Wed, 2014-12-03 at 13:41 +0100, Takashi Iwai wrote: > > > Takashi, what did you think of this? > > > https://lkml.org/lkml/2014/12/2/771 > > > > > > Just unnecessary? > > > > Well, this one looks more consistent. But honestly speaking, it's > > rather a matter of taste. So I'm not so much inclined to merge the > > stuff, too, sorry. If it's proven to reduce the compiled size, etc, > > I'll happily apply it, though. Thanks, applied now. Takashi > > sound/pci/ctxfi/ctdaio.c | 30 +++++++++++++----------------- > 1 file changed, 13 insertions(+), 17 deletions(-) > > diff --git a/sound/pci/ctxfi/ctdaio.c b/sound/pci/ctxfi/ctdaio.c > index c1c3f88..9b87dd2 100644 > --- a/sound/pci/ctxfi/ctdaio.c > +++ b/sound/pci/ctxfi/ctdaio.c > @@ -528,8 +528,6 @@ static int get_daio_rsc(struct daio_mgr *mgr, > struct daio **rdaio) > { > int err; > - struct dai *dai = NULL; > - struct dao *dao = NULL; > unsigned long flags; > > *rdaio = NULL; > @@ -544,27 +542,30 @@ static int get_daio_rsc(struct daio_mgr *mgr, > return err; > } > > + err = -ENOMEM; > /* Allocate mem for daio resource */ > if (desc->type <= DAIO_OUT_MAX) { > - dao = kzalloc(sizeof(*dao), GFP_KERNEL); > - if (!dao) { > - err = -ENOMEM; > + struct dao *dao = kzalloc(sizeof(*dao), GFP_KERNEL); > + if (!dao) > goto error; > - } > + > err = dao_rsc_init(dao, desc, mgr); > - if (err) > + if (err) { > + kfree(dao); > goto error; > + } > > *rdaio = &dao->daio; > } else { > - dai = kzalloc(sizeof(*dai), GFP_KERNEL); > - if (!dai) { > - err = -ENOMEM; > + struct dai *dai = kzalloc(sizeof(*dai), GFP_KERNEL); > + if (!dai) > goto error; > - } > + > err = dai_rsc_init(dai, desc, mgr); > - if (err) > + if (err) { > + kfree(dai); > goto error; > + } > > *rdaio = &dai->daio; > } > @@ -575,11 +576,6 @@ static int get_daio_rsc(struct daio_mgr *mgr, > return 0; > > error: > - if (dao) > - kfree(dao); > - else if (dai) > - kfree(dai); > - > spin_lock_irqsave(&mgr->mgr_lock, flags); > daio_mgr_put_rsc(&mgr->mgr, desc->type); > spin_unlock_irqrestore(&mgr->mgr_lock, flags); > >
diff --git a/sound/pci/ctxfi/ctdaio.c b/sound/pci/ctxfi/ctdaio.c index c1c3f88..9b87dd2 100644 --- a/sound/pci/ctxfi/ctdaio.c +++ b/sound/pci/ctxfi/ctdaio.c @@ -528,8 +528,6 @@ static int get_daio_rsc(struct daio_mgr *mgr, struct daio **rdaio) { int err; - struct dai *dai = NULL; - struct dao *dao = NULL; unsigned long flags; *rdaio = NULL; @@ -544,27 +542,30 @@ static int get_daio_rsc(struct daio_mgr *mgr, return err; } + err = -ENOMEM; /* Allocate mem for daio resource */ if (desc->type <= DAIO_OUT_MAX) { - dao = kzalloc(sizeof(*dao), GFP_KERNEL); - if (!dao) { - err = -ENOMEM; + struct dao *dao = kzalloc(sizeof(*dao), GFP_KERNEL); + if (!dao) goto error; - } + err = dao_rsc_init(dao, desc, mgr); - if (err) + if (err) { + kfree(dao); goto error; + } *rdaio = &dao->daio; } else { - dai = kzalloc(sizeof(*dai), GFP_KERNEL); - if (!dai) { - err = -ENOMEM; + struct dai *dai = kzalloc(sizeof(*dai), GFP_KERNEL); + if (!dai) goto error; - } + err = dai_rsc_init(dai, desc, mgr); - if (err) + if (err) { + kfree(dai); goto error; + } *rdaio = &dai->daio; } @@ -575,11 +576,6 @@ static int get_daio_rsc(struct daio_mgr *mgr, return 0; error: - if (dao) - kfree(dao); - else if (dai) - kfree(dai); - spin_lock_irqsave(&mgr->mgr_lock, flags); daio_mgr_put_rsc(&mgr->mgr, desc->type); spin_unlock_irqrestore(&mgr->mgr_lock, flags);