Re: [PATCH v1 1/1] irqdomain: Refactor error path in __irq_domain_alloc_fwnode()

From: Marc Zyngier
Date: Fri Aug 04 2023 - 13:33:17 EST


On 2023-08-04 17:49, Andy Shevchenko wrote:
First of all, there is no need to call kasprintf() if the previous
allocation failed. Second, there is no need to call for kfree()
when we know that its parameter is NULL. Refactor the code accordingly.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
kernel/irq/irqdomain.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 0bdef4fe925b..d2bbba46c808 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -81,6 +81,8 @@ struct fwnode_handle
*__irq_domain_alloc_fwnode(unsigned int type, int id,
char *n;

fwid = kzalloc(sizeof(*fwid), GFP_KERNEL);
+ if (!fwid)
+ return NULL;

switch (type) {
case IRQCHIP_FWNODE_NAMED:
@@ -93,10 +95,8 @@ struct fwnode_handle
*__irq_domain_alloc_fwnode(unsigned int type, int id,
n = kasprintf(GFP_KERNEL, "irqchip@%pa", pa);
break;
}
-
- if (!fwid || !n) {
+ if (!n) {
kfree(fwid);
- kfree(n);
return NULL;
}

What are you trying to fix?

We have a common error handling path, which makes it easy to
track the memory management. I don't think this sort of bike
shedding adds much to the maintainability of this code.

Now if you have spotted an actual bug, I'm all ears.

  M.
--
Jazz is not dead. It just smells funny...