[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/2] arch/arm: irq: Add platform_get_irq_byname() implementation
Hi Julien, On 21/03/2023 18:56, Julien Grall wrote: > Hi Andrei, > > I realized this has already been merged. But I would like to point out a > few things for future series. > > On 13/03/2023 13:08, Andrei Cherechesu (OSS) wrote: >> From: Andrei Cherechesu <andrei.cherechesu@xxxxxxx> >> >> Moved implementation for the function which parses the IRQs of a DT >> node by the "interrupt-names" property from the SMMU-v3 driver >> to the IRQ core code and made it non-static to be used as helper. >> >> Also changed it to receive a "struct dt_device_node*" as parameter, >> like its counterpart, platform_get_irq(). Updated its usage inside >> the SMMU-v3 driver accordingly. >> >> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@xxxxxxx> >> Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx> >> --- >> xen/arch/arm/include/asm/irq.h | 2 ++ >> xen/arch/arm/irq.c | 14 +++++++++++ >> xen/drivers/passthrough/arm/smmu-v3.c | 35 +++++---------------------- >> 3 files changed, 22 insertions(+), 29 deletions(-) >> >> diff --git a/xen/arch/arm/include/asm/irq.h >> b/xen/arch/arm/include/asm/irq.h >> index 245f49dcba..af94f41994 100644 >> --- a/xen/arch/arm/include/asm/irq.h >> +++ b/xen/arch/arm/include/asm/irq.h >> @@ -89,6 +89,8 @@ int irq_set_type(unsigned int irq, unsigned int type); >> int platform_get_irq(const struct dt_device_node *device, int index); >> +int platform_get_irq_byname(struct dt_device_node *np, const char >> *name); >> + >> void irq_set_affinity(struct irq_desc *desc, const cpumask_t >> *cpu_mask); >> /* >> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c >> index 79718f68e7..ded495792b 100644 >> --- a/xen/arch/arm/irq.c >> +++ b/xen/arch/arm/irq.c >> @@ -718,6 +718,20 @@ int platform_get_irq(const struct dt_device_node >> *device, int index) >> return irq; >> } >> +int platform_get_irq_byname(struct dt_device_node *np, const char >> *name) > > You are changing the name but don't really explain why. "np" also ought > to be const as this is not meant to be modified. > I did not necessarily see it as a name change, but rather as adding a more generic helper to be used across the codebase, and the "_optional" suffix did not seem a good fit since it is an alternative to "platform_get_irq" functionally, and I tried to keep the naming convention. I will have it in mind for future series. I agree with "np" being const, I saw you have already submitted a patch to change it. >> +{ >> + int index; >> + >> + if ( unlikely(!name) ) >> + return -EINVAL; >> + >> + index = dt_property_match_string(np, "interrupt-names", name); >> + if ( index < 0 ) >> + return index; >> + >> + return platform_get_irq(np, index); > > The existing helper was returning -ENODEV when there is an error. But > here, you went differently. This is the sort of thing that ought to be > explained in the commit message because it is not obvious why you > changed it *and* that you actually checked the callers are OK with that. > > Thankfully they are all. The existing helper was only visible and used within the scope of smmu-v3.c, so changing it was not a big impact. I agree that it is not obvious, though, and I will mention something like that in future series. Thank you for reviewing it. Andrei > > Cheers, >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |