2019-02-10 05:28:55

by Zenghui Yu

[permalink] [raw]
Subject: [PATCH] irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table

In current logic, its_parse_indirect_baser() will be invoked twice
when allocating Device tables. Add a *break* to omit the unnecessary
and annoying (might be ...) invoking.

Signed-off-by: Zenghui Yu <[email protected]>
---
drivers/irqchip/irq-gic-v3-its.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index db20e99..9f529a6 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -1946,6 +1946,8 @@ static int its_alloc_tables(struct its_node *its)
indirect = its_parse_indirect_baser(its, baser,
psz, &order,
its->device_ids);
+ break;
+
case GITS_BASER_TYPE_VCPU:
indirect = its_parse_indirect_baser(its, baser,
psz, &order,
--
1.8.3.1




2019-02-12 13:18:44

by Zenghui Yu

[permalink] [raw]
Subject: Re: [PATCH] irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table

Hi Marc,

On 2019/2/10 13:24, Zenghui Yu wrote:
> In current logic, its_parse_indirect_baser() will be invoked twice
> when allocating Device tables. Add a *break* to omit the unnecessary
> and annoying (might be ...) invoking.
>

Forgot to add:

Fixes: 32bd44dc19de ("irqchip/gic-v3-its: Fix the incorrect parsing of
VCPU table size")

> Signed-off-by: Zenghui Yu <[email protected]>
> ---
> drivers/irqchip/irq-gic-v3-its.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> index db20e99..9f529a6 100644
> --- a/drivers/irqchip/irq-gic-v3-its.c
> +++ b/drivers/irqchip/irq-gic-v3-its.c
> @@ -1946,6 +1946,8 @@ static int its_alloc_tables(struct its_node *its)
> indirect = its_parse_indirect_baser(its, baser,
> psz, &order,
> its->device_ids);
> + break;
> +
> case GITS_BASER_TYPE_VCPU:
> indirect = its_parse_indirect_baser(its, baser,
> psz, &order,
>

Thanks,
Zenghui


2019-02-14 18:23:58

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH] irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table

On Sun, 10 Feb 2019 05:24:10 +0000,
Zenghui Yu <[email protected]> wrote:
>
> In current logic, its_parse_indirect_baser() will be invoked twice
> when allocating Device tables. Add a *break* to omit the unnecessary
> and annoying (might be ...) invoking.
>
> Signed-off-by: Zenghui Yu <[email protected]>
> ---
> drivers/irqchip/irq-gic-v3-its.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> index db20e99..9f529a6 100644
> --- a/drivers/irqchip/irq-gic-v3-its.c
> +++ b/drivers/irqchip/irq-gic-v3-its.c
> @@ -1946,6 +1946,8 @@ static int its_alloc_tables(struct its_node *its)
> indirect = its_parse_indirect_baser(its, baser,
> psz, &order,
> its->device_ids);
> + break;
> +
> case GITS_BASER_TYPE_VCPU:
> indirect = its_parse_indirect_baser(its, baser,
> psz, &order,

Nice catch. I've applied this to irqchip-next with the Fixes tag and a
Cc stable.

Thanks,

M.

--
Jazz is not dead, it just smell funny.

2019-02-14 23:05:55

by Zenghui Yu

[permalink] [raw]
Subject: Re: [PATCH] irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table

Hi Marc,

On 2019/2/14 18:46, Marc Zyngier wrote:
> On Sun, 10 Feb 2019 05:24:10 +0000,
> Zenghui Yu <[email protected]> wrote:
>>
>> In current logic, its_parse_indirect_baser() will be invoked twice
>> when allocating Device tables. Add a *break* to omit the unnecessary
>> and annoying (might be ...) invoking.
>>
>> Signed-off-by: Zenghui Yu <[email protected]>
>> ---
>> drivers/irqchip/irq-gic-v3-its.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
>> index db20e99..9f529a6 100644
>> --- a/drivers/irqchip/irq-gic-v3-its.c
>> +++ b/drivers/irqchip/irq-gic-v3-its.c
>> @@ -1946,6 +1946,8 @@ static int its_alloc_tables(struct its_node *its)
>> indirect = its_parse_indirect_baser(its, baser,
>> psz, &order,
>> its->device_ids);
>> + break;
>> +
>> case GITS_BASER_TYPE_VCPU:
>> indirect = its_parse_indirect_baser(its, baser,
>> psz, &order,
>
> Nice catch. I've applied this to irqchip-next with the Fixes tag and a
> Cc stable.
>

Thanks for picking it up!

Zenghui