Re: [PATCH] ALSA: ctxfi: Neaten get_daio_rsc

Takashi Iwai
2014-12-03T19:31:11Z

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);
>
>