[tip: irq/urgent] irqchip/gic-v4.1: Fix programming of GICR_VPROPBASER_4_1_SIZE

From: tip-bot2 for Zenghui Yu
Date: Sat Feb 08 2020 - 09:58:30 EST


The following commit has been merged into the irq/urgent branch of tip:

Commit-ID: e88bd316e5971fe78884ad1f466b9fc576575e5f
Gitweb: https://git.kernel.org/tip/e88bd316e5971fe78884ad1f466b9fc576575e5f
Author: Zenghui Yu <yuzenghui@xxxxxxxxxx>
AuthorDate: Thu, 06 Feb 2020 15:57:06 +08:00
Committer: Marc Zyngier <maz@xxxxxxxxxx>
CommitterDate: Sat, 08 Feb 2020 10:01:33

irqchip/gic-v4.1: Fix programming of GICR_VPROPBASER_4_1_SIZE

The Size field of GICv4.1 VPROPBASER register indicates number of
pages minus one and together Page_Size and Size control the vPEID
width. Let's respect this requirement of the architecture.

Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20200206075711.1275-2-yuzenghui@xxxxxxxxxx
---
drivers/irqchip/irq-gic-v3-its.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index e5a25d9..992bc72 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -2531,7 +2531,7 @@ static int allocate_vpe_l1_table(void)
npg = 1;
}

- val |= FIELD_PREP(GICR_VPROPBASER_4_1_SIZE, npg);
+ val |= FIELD_PREP(GICR_VPROPBASER_4_1_SIZE, npg - 1);

/* Right, that's the number of CPU pages we need for L1 */
np = DIV_ROUND_UP(npg * psz, PAGE_SIZE);