Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp1004490pxb; Thu, 9 Sep 2021 17:44:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZ3xV7WYn7eU+L6iJ++y9IOLhNreE5TAg1d69D9MioGWBIEEw23sAVfaYQ4yXp+FfWlkV/ X-Received: by 2002:a17:906:2bd0:: with SMTP id n16mr6446057ejg.132.1631234686031; Thu, 09 Sep 2021 17:44:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631234686; cv=none; d=google.com; s=arc-20160816; b=hEF4/Omqmv/Q/QuIiP1z67xJy8VL+71t+8/aTpjLY2xMmrP/EgvxXC0TG6SFrBwWbG IQqVMBmLUhcDt6dT2twz/JXQCUJMUtJW4l0BN8BiabIaq5JcKtooPq4KPfFHsC82MK0w BsZey3XfgDGnhI36CG2BNSHjPXMZnIWbG5ZXV1pbKoEJcBtdVIcy7qTNyu2Rd9Dke8YO EDOtjSq6lMAeOK6l4q8BMR2+GLbi2ewq+lieYkoiLvgIiN4DsmFhYTdqv/gMO4rrzxqG y7uNz38TCB5H/X+KLv/AyoK9dbykgtm4vOGMw+6MQg5xfxmX8UkQn3rBgQf+1qiOYbwC c6Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3NKsfnFREpeZSZKEpVjYaXKcsudOES4I+XdxpsIAoy4=; b=pTObVAFtLnJEwMCSplAqIid6zLUrjSvTkaXlzikWelQjsOn3dr9TMbgGel+PdYLU1J RxlO4Dw0AacUKXDgrbKioaPRQqIJnB9ZLSybpPAHWrvVkLIjYtq0bCTUSv+0bMnrQytk AARXxGfE+KFPCGhsUHlUwZiIpmX3IAhDmzVTiC6OBQMjS6HRgyE5Lj2IRP+LlxFczGlX dOB9yhQav82A5oTCdXUjQxGaHzMDHIvXtecM7fVemF5nVXiGjTiVCF1eWK3HdUSyZnSA YvnjWPKDn4m+kXZM4+y+AI8AOBwXVsnG4Hgx13QyCxwIEwB9/UYXujYe06X+oR1aYwy1 Lb6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oFfPqXH9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m25si3373386ejb.570.2021.09.09.17.44.22; Thu, 09 Sep 2021 17:44:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oFfPqXH9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232243AbhIJAnI (ORCPT + 99 others); Thu, 9 Sep 2021 20:43:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:43538 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231691AbhIJAST (ORCPT ); Thu, 9 Sep 2021 20:18:19 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3217961207; Fri, 10 Sep 2021 00:16:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631233012; bh=5QHMzjuKFZj8EELoxq77L9sxWasggjwmQgGgG+hbvEg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oFfPqXH96IeJlDskuSn3iIA7g0CQoMgaqUizcCCZZGDOnW5REBqxCBvJC8PjGub6K 7KA2MPAq4izMlhw4BL0Fy61hIcIqb7bStSZNZGenTQdyWHCAJxoXCjC+uBTzhjciOs B9tZmYD+HRV/haiotUr/+PHQojFYM2CV6CaotcKSGo82FM/S2PAMXcG5GKHdhWM+xS Bbm/LpJawPr/iivNBW03+tWSsm2OUNb3EPanSiKmdEJZPyv7JFezGaNrR7JgtWHqrX mHHBfgMA55eQmPxgkuZHjz62ubQsSM/LBJCD5qBMThcESw+DM1zgRIrLA3OMDZrNni qetwFMUuu9SuA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Michael Ellerman , Sasha Levin , kvm-ppc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH AUTOSEL 5.14 38/99] KVM: PPC: Book3S HV: XICS: Fix mapping of passthrough interrupts Date: Thu, 9 Sep 2021 20:14:57 -0400 Message-Id: <20210910001558.173296-38-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210910001558.173296-1-sashal@kernel.org> References: <20210910001558.173296-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Cédric Le Goater [ Upstream commit 1753081f2d445f9157550692fcc4221cd3ff0958 ] PCI MSIs now live in an MSI domain but the underlying calls, which will EOI the interrupt in real mode, need an HW IRQ number mapped in the XICS IRQ domain. Grab it there. Signed-off-by: Cédric Le Goater Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20210701132750.1475580-31-clg@kaod.org Signed-off-by: Sasha Levin --- arch/powerpc/kvm/book3s_hv.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 085fb8ecbf68..1ca0a4f760bc 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -5328,6 +5328,7 @@ static int kvmppc_set_passthru_irq(struct kvm *kvm, int host_irq, int guest_gsi) struct kvmppc_passthru_irqmap *pimap; struct irq_chip *chip; int i, rc = 0; + struct irq_data *host_data; if (!kvm_irq_bypass) return 1; @@ -5392,7 +5393,14 @@ static int kvmppc_set_passthru_irq(struct kvm *kvm, int host_irq, int guest_gsi) * the KVM real mode handler. */ smp_wmb(); - irq_map->r_hwirq = desc->irq_data.hwirq; + + /* + * The 'host_irq' number is mapped in the PCI-MSI domain but + * the underlying calls, which will EOI the interrupt in real + * mode, need an HW IRQ number mapped in the XICS IRQ domain. + */ + host_data = irq_domain_get_irq_data(irq_get_default_host(), host_irq); + irq_map->r_hwirq = (unsigned int)irqd_to_hwirq(host_data); if (i == pimap->n_mapped) pimap->n_mapped++; @@ -5400,7 +5408,7 @@ static int kvmppc_set_passthru_irq(struct kvm *kvm, int host_irq, int guest_gsi) if (xics_on_xive()) rc = kvmppc_xive_set_mapped(kvm, guest_gsi, desc); else - kvmppc_xics_set_mapped(kvm, guest_gsi, desc->irq_data.hwirq); + kvmppc_xics_set_mapped(kvm, guest_gsi, irq_map->r_hwirq); if (rc) irq_map->r_hwirq = 0; -- 2.30.2