All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] irqchip/gic-v4: Fix non-stick page size error for setup GITS_BASER
@ 2020-03-13  8:46 Shaokun Zhang
  2020-03-13 12:00 ` Marc Zyngier
  2020-03-29 20:26 ` [tip: irq/core] irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers tip-bot2 for Marc Zyngier
  0 siblings, 2 replies; 5+ messages in thread
From: Shaokun Zhang @ 2020-03-13  8:46 UTC (permalink / raw)
  To: linux-kernel; +Cc: Nianyao Tang, Thomas Gleixner, Marc Zyngier, Shaokun Zhang

From: Nianyao Tang <tangnianyao@huawei.com>

There is an error when ITS is probed if hw GITS_BASER<2>
only supports psz=SZ_16K while GITS_BASER<1> only supports psz=SZ_4K.
In its_alloc_tables, it has updated GITS_BASER<1>.psz and uses
psz=SZ_4K for setup GITS_BASER<2>, and would fail in writing
GITS_BASER<2>.psz=SZ_4K. 4K PAGE is the smallest and shall stop retry
for other page sizes.

That latter GITS_BASER<n>.psz is larger than former, will lead
to similar error.

[    0.000000] ITS@0x0000000660000000: Virtual CPUs doesn't stick: ba1f0824404004ff ba1f0824404005ff
[    0.000000] ITS@0x0000000660000000: failed probing (-6)
[    0.000000] ITS: No ITS available, not enabling LPIs

From GIC SPEC document, it's allowed for this implematation, the latter
GITS_BASER<n>.psz is larger than the former. 
Let's fix this error with following patch.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Nianyao Tang <tangnianyao@huawei.com>
Signed-off-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
---
 drivers/irqchip/irq-gic-v3-its.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 83b1186..59bf8d6 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -2341,7 +2341,6 @@ static int its_alloc_tables(struct its_node *its)
 		}
 
 		/* Update settings which will be used for next BASERn */
-		psz = baser->psz;
 		cache = baser->val & GITS_BASER_CACHEABILITY_MASK;
 		shr = baser->val & GITS_BASER_SHAREABILITY_MASK;
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-29 20:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-13  8:46 [PATCH] irqchip/gic-v4: Fix non-stick page size error for setup GITS_BASER Shaokun Zhang
2020-03-13 12:00 ` Marc Zyngier
2020-03-13 12:35   ` Marc Zyngier
     [not found]   ` <fd58dac2-ec20-14b7-53c5-96d798f4ffed@hisilicon.com>
2020-03-16  8:47     ` Marc Zyngier
2020-03-29 20:26 ` [tip: irq/core] irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers tip-bot2 for Marc Zyngier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.