[PATCH 2/2] ALSA: ctxfi: One function call less in get_daio_rsc() after error detection

From: SF Markus Elfring
Date: Tue Dec 02 2014 - 16:00:32 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 2 Dec 2014 20:33:51 +0100

The kfree() function was called in two cases by the get_daio_rsc() function
during error handling even if the passed variable contained still
a null pointer. This implementation detail could be improved
by adjustments for jump labels.

Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
sound/pci/ctxfi/ctdaio.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/sound/pci/ctxfi/ctdaio.c b/sound/pci/ctxfi/ctdaio.c
index 1712332..a12489e 100644
--- a/sound/pci/ctxfi/ctdaio.c
+++ b/sound/pci/ctxfi/ctdaio.c
@@ -549,22 +549,22 @@ static int get_daio_rsc(struct daio_mgr *mgr,
dao = kzalloc(sizeof(*dao), GFP_KERNEL);
if (!dao) {
err = -ENOMEM;
- goto error;
+ goto alloc_error;
}
err = dao_rsc_init(dao, desc, mgr);
if (err)
- goto error;
+ goto dao_init_error;

*rdaio = &dao->daio;
} else {
dai = kzalloc(sizeof(*dai), GFP_KERNEL);
if (!dai) {
err = -ENOMEM;
- goto error;
+ goto alloc_error;
}
err = dai_rsc_init(dai, desc, mgr);
if (err)
- goto error;
+ goto dai_init_error;

*rdaio = &dai->daio;
}
@@ -574,12 +574,12 @@ static int get_daio_rsc(struct daio_mgr *mgr,

return 0;

-error:
- if (dao)
- kfree(dao);
- else
- kfree(dai);
-
+dao_init_error:
+ kfree(dao);
+ goto alloc_error;
+dai_init_error:
+ kfree(dai);
+alloc_error:
spin_lock_irqsave(&mgr->mgr_lock, flags);
daio_mgr_put_rsc(&mgr->mgr, desc->type);
spin_unlock_irqrestore(&mgr->mgr_lock, flags);
--
2.1.3

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