This was noticed when printing debugfs for MSIs on my ARM64 server.
The new dstate IRQD_MSI_NOMASK_QUIRK came out surprisingly while it
should only be the x86 stuff for the time being...
It's the overlap in irqdomain flags which leads to this confusion.
(1 << 1) might be a good choice for old IRQ_DOMAIN_NAME_ALLOCATED,
use it to avoid this overlap.
Fixes: 6f1a4891a592 ("x86/apic/msi: Plug non-maskable MSI affinity race")
Signed-off-by: Zenghui Yu <[email protected]>
---
include/linux/irqdomain.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index b2d47571ab67..8d062e86d954 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -192,7 +192,7 @@ enum {
IRQ_DOMAIN_FLAG_HIERARCHY = (1 << 0),
/* Irq domain name was allocated in __irq_domain_add() */
- IRQ_DOMAIN_NAME_ALLOCATED = (1 << 6),
+ IRQ_DOMAIN_NAME_ALLOCATED = (1 << 1),
/* Irq domain is an IPI domain with virq per cpu */
IRQ_DOMAIN_FLAG_IPI_PER_CPU = (1 << 2),
--
2.19.1
On 2020-02-21 02:07, Zenghui Yu wrote:
> This was noticed when printing debugfs for MSIs on my ARM64 server.
> The new dstate IRQD_MSI_NOMASK_QUIRK came out surprisingly while it
> should only be the x86 stuff for the time being...
>
> It's the overlap in irqdomain flags which leads to this confusion.
> (1 << 1) might be a good choice for old IRQ_DOMAIN_NAME_ALLOCATED,
> use it to avoid this overlap.
>
> Fixes: 6f1a4891a592 ("x86/apic/msi: Plug non-maskable MSI affinity
> race")
To be fair, the real source of the bug is this:
6a6544e520abe ("genirq/irqdomain: Remove auto-recursive hierarchy
support")
> Signed-off-by: Zenghui Yu <[email protected]>
> ---
> include/linux/irqdomain.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
> index b2d47571ab67..8d062e86d954 100644
> --- a/include/linux/irqdomain.h
> +++ b/include/linux/irqdomain.h
> @@ -192,7 +192,7 @@ enum {
> IRQ_DOMAIN_FLAG_HIERARCHY = (1 << 0),
>
> /* Irq domain name was allocated in __irq_domain_add() */
> - IRQ_DOMAIN_NAME_ALLOCATED = (1 << 6),
> + IRQ_DOMAIN_NAME_ALLOCATED = (1 << 1),
>
> /* Irq domain is an IPI domain with virq per cpu */
> IRQ_DOMAIN_FLAG_IPI_PER_CPU = (1 << 2),
Acked-by: Marc Zyngier <[email protected]>
Thomas, do you mind picking this one up, as I don't have anything
else for the time being?
M.
--
Jazz is not dead. It just smells funny...
The following commit has been merged into the irq/urgent branch of tip:
Commit-ID: 2546287c5fb363a0165933ae2181c92f03e701d0
Gitweb: https://git.kernel.org/tip/2546287c5fb363a0165933ae2181c92f03e701d0
Author: Zenghui Yu <[email protected]>
AuthorDate: Fri, 21 Feb 2020 10:07:25 +08:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Fri, 21 Feb 2020 11:29:15 +01:00
genirq/irqdomain: Make sure all irq domain flags are distinct
This was noticed when printing debugfs for MSIs on my ARM64 server. The
new dstate IRQD_MSI_NOMASK_QUIRK came out surprisingly while it should only
be the x86 stuff for the time being...
The new MSI quirk flag uses the same bit as IRQ_DOMAIN_NAME_ALLOCATED which
is oddly defined as bit 6 for no good reason.
Switch it to the non used bit 1.
Fixes: 6f1a4891a592 ("x86/apic/msi: Plug non-maskable MSI affinity race")
Signed-off-by: Zenghui Yu <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Cc: [email protected]
Link: https://lkml.kernel.org/r/[email protected]
---
include/linux/irqdomain.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index b2d4757..8d062e8 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -192,7 +192,7 @@ enum {
IRQ_DOMAIN_FLAG_HIERARCHY = (1 << 0),
/* Irq domain name was allocated in __irq_domain_add() */
- IRQ_DOMAIN_NAME_ALLOCATED = (1 << 6),
+ IRQ_DOMAIN_NAME_ALLOCATED = (1 << 1),
/* Irq domain is an IPI domain with virq per cpu */
IRQ_DOMAIN_FLAG_IPI_PER_CPU = (1 << 2),
Marc Zyngier <[email protected]> writes:
> On 2020-02-21 02:07, Zenghui Yu wrote:
>> Fixes: 6f1a4891a592 ("x86/apic/msi: Plug non-maskable MSI affinity
>> race")
>
> To be fair, the real source of the bug is this:
>
> 6a6544e520abe ("genirq/irqdomain: Remove auto-recursive hierarchy
> support")
Yes, but up to the MSI commit it was not a problem :)