aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJiri Slaby (SUSE) <jirislaby@kernel.org>2025-03-19 10:29:43 +0100
committerThomas Gleixner <tglx@linutronix.de>2025-05-16 21:06:12 +0200
commit18e743e911020eb74cc4eaf549c18ed12a5acb9a (patch)
tree3d85868d5279ed7f9133e39443088cb01c4d6278
parentirqdomain: Drop irq_linear_revmap() (diff)
downloadwireguard-linux-18e743e911020eb74cc4eaf549c18ed12a5acb9a.tar.xz
wireguard-linux-18e743e911020eb74cc4eaf549c18ed12a5acb9a.zip
irqdomain: Use irq_domain_instantiate()'s return value as initializers
This makes the code more compact. Note that irq_domain_create_hierarchy()'s handling of size is now part of info's initializer (using the ternary operator). That makes more sense while reading it. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-51-jirislaby@kernel.org
-rw-r--r--include/linux/irqdomain.h17
1 files changed, 5 insertions, 12 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index c8e55cd1e352..1e3858438e69 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -403,9 +403,8 @@ static inline struct irq_domain *irq_domain_create_nomap(struct fwnode_handle *f
.ops = ops,
.host_data = host_data,
};
- struct irq_domain *d;
+ struct irq_domain *d = irq_domain_instantiate(&info);
- d = irq_domain_instantiate(&info);
return IS_ERR(d) ? NULL : d;
}
@@ -424,9 +423,8 @@ static inline struct irq_domain *irq_domain_create_linear(struct fwnode_handle *
.ops = ops,
.host_data = host_data,
};
- struct irq_domain *d;
+ struct irq_domain *d = irq_domain_instantiate(&info);
- d = irq_domain_instantiate(&info);
return IS_ERR(d) ? NULL : d;
}
@@ -440,9 +438,8 @@ static inline struct irq_domain *irq_domain_create_tree(struct fwnode_handle *fw
.ops = ops,
.host_data = host_data,
};
- struct irq_domain *d;
+ struct irq_domain *d = irq_domain_instantiate(&info);
- d = irq_domain_instantiate(&info);
return IS_ERR(d) ? NULL : d;
}
@@ -554,18 +551,14 @@ static inline struct irq_domain *irq_domain_create_hierarchy(struct irq_domain *
struct irq_domain_info info = {
.fwnode = fwnode,
.size = size,
- .hwirq_max = size,
+ .hwirq_max = size ? : ~0U,
.ops = ops,
.host_data = host_data,
.domain_flags = flags,
.parent = parent,
};
- struct irq_domain *d;
+ struct irq_domain *d = irq_domain_instantiate(&info);
- if (!info.size)
- info.hwirq_max = ~0U;
-
- d = irq_domain_instantiate(&info);
return IS_ERR(d) ? NULL : d;
}