Re: [PATCH] irqdomain: Add documentation for irq_create_of_mapping()

From: Marion & Christophe JAILLET
Date: Sat Dec 19 2020 - 16:37:06 EST



Le 18/12/2020 à 19:59, Marc Zyngier a écrit :
Hi Christophe,

On Tue, 15 Dec 2020 20:07:47 +0000,
Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> wrote:
Add a description for 'irq_create_of_mapping()' and make explicit the fact
that the resources allocated by this function can be freed by calling
'irq_dispose_mapping()' when needed (i.e. error handling path, remove
function, ...)

Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
The wording can certainly be improved.

My goal is only to make clear if patches such as:
https://lore.kernel.org/lkml/20201214202117.146293-1-christophe.jaillet@xxxxxxxxxx/
are needed or not.
---
kernel/irq/irqdomain.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 6aacd342cd14..d761ece8d43e 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -858,6 +858,15 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
}
EXPORT_SYMBOL_GPL(irq_create_fwspec_mapping);
+/**
+ * irq_create_of_mapping() - Map an interrupt
I think this deserves a bit more work. My immediate questions when
reading this are "map where? and to what?".

I won't be of great help here.
I don't know this code enough to be able to provide an accurate description.

+ * @irq_data: structure of_phandle_args returned by a previous
+ * of_irq_parse_xxx() call
That's not strictly true. A of_phandle_args structure can be created
from scratch (and numerous drivers do that).

+ *
+ * The resources allocated by this function should be freed by
+ * calling irq_dispose_mapping() when the mapping if not useful
+ * anymore.
This really is a bit of documentation for irq_dispose_mapping(), isn't it?

Well, I don't agree.

I think it is easier to see that some resources need to be freed with a dedicated function if it is explained in the description of the function which allocates the resource.

CJ


+ */
unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data)
{
struct irq_fwspec fwspec;
Thanks,

M.