Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp4754756ybl; Tue, 4 Feb 2020 01:13:29 -0800 (PST) X-Google-Smtp-Source: APXvYqzFsCzdgK4VjGoNtg6PWKOsQ4GLsLpDfBt6HY+W5IaLpTrA9itaGSwb7k/frfKpr5cayaiM X-Received: by 2002:a9d:74c5:: with SMTP id a5mr22584750otl.229.1580807608968; Tue, 04 Feb 2020 01:13:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580807608; cv=none; d=google.com; s=arc-20160816; b=lsXnt/zISJd7jwYdhl47Nnh6/IgAWApWQYbGMEmPGxnPgiQbGWZMYeFIpCoEbtAOIe y6+GRQBHS9QE+vZ4E+1xCzP25dPrvHeJbiHDvPQ4C6pWOe2qCFH+5tX/3gGwYwbDitUC 4ZzJbBUx+iZ7onqRCYQnDAoWnCBYVVdH1+YKiqRkx/DHH1MfKqoTMBNhXWgWTaFWIXLo MPXE7Z+Dk8eXlSFRy2JCjhoJL3plUf6t8fUWo9hJApdTzNsmKWm+0MdIeKwa9Tm+p9Hc xv7IKU+NxJ1vb2V2wwJtfK6hc7zSaW5sR+3kFGbsjtATAAOfPgvJyj1B5r7suBYY1rAK MNkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=k6AgtdNqSyO3yTe2kWD7WbC1Z4AS2kZC6foUcjqBkNY=; b=cvp7ExpiDn5LWY/Kc+fpfbzDDq8YXPEwZswA4qU/yMBF0uh6MmfYDvyeSTWHtUhvwT 4GJq4Oir/44qc9KOAlexOU4KpZlcPGhOVx8gfmf8HLvz08Gmi+fQXzMvR99DyP6z92qd QLUE3bIFlmKGilcQ4/sn8qYWPQwjGZSdoFIssG/Yu83XCL4MqwP+DVZ/J6iBbbJadZZ1 rxPdfGgJhWjcAKNKA0Zzn7Wi+U9nqxkMiFBw4Fj71TRWOukMgP/KfsecldyTYPxizCW4 l6u3UZmlF2umQ52SlCyorHyctTg4QjU1gNibz8kYE1VniCNvf6KboUniDqEWaZrMeVfw VpqA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q28si9954091oij.149.2020.02.04.01.13.17; Tue, 04 Feb 2020 01:13:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727124AbgBDJLx (ORCPT + 99 others); Tue, 4 Feb 2020 04:11:53 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:9691 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726329AbgBDJLq (ORCPT ); Tue, 4 Feb 2020 04:11:46 -0500 Received: from DGGEMS403-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id CF96726141455001C1CD; Tue, 4 Feb 2020 17:11:43 +0800 (CST) Received: from DESKTOP-8RFUVS3.china.huawei.com (10.173.222.27) by DGGEMS403-HUB.china.huawei.com (10.3.19.203) with Microsoft SMTP Server id 14.3.439.0; Tue, 4 Feb 2020 17:11:35 +0800 From: Zenghui Yu To: , CC: , , , , , Zenghui Yu Subject: [PATCH 2/5] irqchip/gic-v4.1: Set vpe_l1_base for all redistributors Date: Tue, 4 Feb 2020 17:09:37 +0800 Message-ID: <20200204090940.1225-3-yuzenghui@huawei.com> X-Mailer: git-send-email 2.23.0.windows.1 In-Reply-To: <20200204090940.1225-1-yuzenghui@huawei.com> References: <20200204090940.1225-1-yuzenghui@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.173.222.27] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, we will not set vpe_l1_page for the current RD if we can inherit the vPE configuration table from another RD (or ITS), which results in an inconsistency between RDs within the same CommonLPIAff group. Let's rename it to vpe_l1_base to indicate the base address of the vPE configuration table of this RD, and set it properly for *all* v4.1 redistributors. Signed-off-by: Zenghui Yu --- drivers/irqchip/irq-gic-v3-its.c | 5 ++++- include/linux/irqchip/arm-gic-v3.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 992bc72cab6f..0f1fe56ce0af 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -2376,6 +2376,8 @@ static u64 inherit_vpe_l1_table_from_its(void) continue; /* We have a winner! */ + gic_data_rdist()->vpe_l1_base = its->tables[2].base; + val = GICR_VPROPBASER_4_1_VALID; if (baser & GITS_BASER_INDIRECT) val |= GICR_VPROPBASER_4_1_INDIRECT; @@ -2432,6 +2434,7 @@ static u64 inherit_vpe_l1_table_from_rd(cpumask_t **mask) val = gits_read_vpropbaser(base + SZ_128K + GICR_VPROPBASER); val &= ~GICR_VPROPBASER_4_1_Z; + gic_data_rdist()->vpe_l1_base = gic_data_rdist_cpu(cpu)->vpe_l1_base; *mask = gic_data_rdist_cpu(cpu)->vpe_table_mask; return val; @@ -2542,7 +2545,7 @@ static int allocate_vpe_l1_table(void) if (!page) return -ENOMEM; - gic_data_rdist()->vpe_l1_page = page; + gic_data_rdist()->vpe_l1_base = page_address(page); pa = virt_to_phys(page_address(page)); WARN_ON(!IS_ALIGNED(pa, psz)); diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h index f0b8ca766e7d..83439bfb6c5b 100644 --- a/include/linux/irqchip/arm-gic-v3.h +++ b/include/linux/irqchip/arm-gic-v3.h @@ -652,10 +652,10 @@ struct rdists { struct { void __iomem *rd_base; struct page *pend_page; - struct page *vpe_l1_page; phys_addr_t phys_base; bool lpi_enabled; cpumask_t *vpe_table_mask; + void *vpe_l1_base; } __percpu *rdist; phys_addr_t prop_table_pa; void *prop_table_va; -- 2.19.1