From nobody Mon Apr 29 05:13:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1504606506606436.03183788379704; Tue, 5 Sep 2017 03:15:06 -0700 (PDT) Received: from localhost ([::1]:57921 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpAsr-0007eU-Fi for importer@patchew.org; Tue, 05 Sep 2017 06:15:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpArB-0006ZD-Ec for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dpAr6-0003a1-EF for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:21 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:53636 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dpAr6-0003Zc-7i for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:16 -0400 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v85A8evr194414 for ; Tue, 5 Sep 2017 06:13:15 -0400 Received: from e23smtp08.au.ibm.com (e23smtp08.au.ibm.com [202.81.31.141]) by mx0b-001b2d01.pphosted.com with ESMTP id 2csndspuv5-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 05 Sep 2017 06:13:14 -0400 Received: from localhost by e23smtp08.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 5 Sep 2017 20:13:11 +1000 Received: from d23relay10.au.ibm.com (202.81.31.229) by e23smtp08.au.ibm.com (202.81.31.205) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 5 Sep 2017 20:13:10 +1000 Received: from d23av05.au.ibm.com (d23av05.au.ibm.com [9.190.234.119]) by d23relay10.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v85ADA9F42270742 for ; Tue, 5 Sep 2017 20:13:10 +1000 Received: from d23av05.au.ibm.com (localhost [127.0.0.1]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v85AD9ho011887 for ; Tue, 5 Sep 2017 20:13:10 +1000 Received: from r35lp25.boeblingen.de.ibm.com (r35lp25.boeblingen.de.ibm.com [9.152.111.25]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v85AD28Y011694; Tue, 5 Sep 2017 20:13:06 +1000 From: Yi Min Zhao To: qemu-devel@nongnu.org Date: Tue, 5 Sep 2017 12:12:58 +0200 X-Mailer: git-send-email 2.3.0 In-Reply-To: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> References: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> X-TM-AS-MML: disable x-cbid: 17090510-0048-0000-0000-0000025AD726 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17090510-0049-0000-0000-0000480F334A Message-Id: <1504606380-49341-2-git-send-email-zyimin@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-05_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709050158 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: [Qemu-devel] [PATCH v3 1/3] s390x/pci: remove idx from msix msg data X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pasic@linux.vnet.ibm.com, zyimin@linux.vnet.ibm.com, richard.henderson@linaro.org, cohuck@redhat.com, pmorel@linux.vnet.ibm.com, agraf@suse.de, borntraeger@de.ibm.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" PCIDevice pointer has been a parameter of kvm_arch_fixup_msi_route(). So we don't need to store zpci idx in msix message data to find out the specific zpci device. Instead, we could use pci device id to find its corresponding zpci device. Signed-off-by: Yi Min Zhao --- hw/s390x/s390-pci-bus.c | 16 +++++----------- hw/s390x/s390-pci-bus.h | 2 ++ hw/s390x/s390-pci-inst.c | 24 ------------------------ hw/s390x/s390-pci-stub.c | 3 ++- target/s390x/kvm.c | 10 +++++++--- 5 files changed, 16 insertions(+), 39 deletions(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index 0a31a4ae88..bd8a3e1e1c 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -199,8 +199,8 @@ static S390PCIBusDevice *s390_pci_find_dev_by_uid(S390p= ciState *s, uint16_t uid) return NULL; } =20 -static S390PCIBusDevice *s390_pci_find_dev_by_target(S390pciState *s, - const char *target) +S390PCIBusDevice *s390_pci_find_dev_by_target(S390pciState *s, + const char *target) { S390PCIBusDevice *pbdev; =20 @@ -465,19 +465,13 @@ static void s390_msi_ctrl_write(void *opaque, hwaddr = addr, uint64_t data, unsigned int size) { S390PCIBusDevice *pbdev =3D opaque; - uint32_t idx =3D data >> ZPCI_MSI_VEC_BITS; uint32_t vec =3D data & ZPCI_MSI_VEC_MASK; uint64_t ind_bit; uint32_t sum_bit; - uint32_t e =3D 0; =20 - DPRINTF("write_msix data 0x%" PRIx64 " idx %d vec 0x%x\n", data, idx, = vec); - - if (!pbdev) { - e |=3D (vec << ERR_EVENT_MVN_OFFSET); - s390_pci_generate_error_event(ERR_EVENT_NOMSI, idx, 0, addr, e); - return; - } + assert(pbdev); + DPRINTF("write_msix data 0x%" PRIx64 " idx %d vec 0x%x\n", data, + pbdev->idx, vec); =20 if (pbdev->state !=3D ZPCI_FS_ENABLED) { return; diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h index bd636abc28..560bd82a0f 100644 --- a/hw/s390x/s390-pci-bus.h +++ b/hw/s390x/s390-pci-bus.h @@ -322,6 +322,8 @@ void s390_pci_generate_error_event(uint16_t pec, uint32= _t fh, uint32_t fid, S390PCIBusDevice *s390_pci_find_dev_by_idx(S390pciState *s, uint32_t idx); S390PCIBusDevice *s390_pci_find_dev_by_fh(S390pciState *s, uint32_t fh); S390PCIBusDevice *s390_pci_find_dev_by_fid(S390pciState *s, uint32_t fid); +S390PCIBusDevice *s390_pci_find_dev_by_target(S390pciState *s, + const char *target); S390PCIBusDevice *s390_pci_find_next_avail_dev(S390pciState *s, S390PCIBusDevice *pbdev); =20 diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index eba9ffb5f2..8e088f3dc9 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -413,29 +413,6 @@ int pcilg_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r2) return 0; } =20 -static void update_msix_table_msg_data(S390PCIBusDevice *pbdev, uint64_t o= ffset, - uint64_t *data, uint8_t len) -{ - uint32_t val; - uint8_t *msg_data; - - if (offset % PCI_MSIX_ENTRY_SIZE !=3D 8) { - return; - } - - if (len !=3D 4) { - DPRINTF("access msix table msg data but len is %d\n", len); - return; - } - - msg_data =3D (uint8_t *)data - offset % PCI_MSIX_ENTRY_SIZE + - PCI_MSIX_ENTRY_VECTOR_CTRL; - val =3D pci_get_long(msg_data) | - ((pbdev->fh & FH_MASK_INDEX) << ZPCI_MSI_VEC_BITS); - pci_set_long(msg_data, val); - DPRINTF("update msix msg_data to 0x%" PRIx64 "\n", *data); -} - static int trap_msix(S390PCIBusDevice *pbdev, uint64_t offset, uint8_t pci= as) { if (pbdev->msix.available && pbdev->msix.table_bar =3D=3D pcias && @@ -508,7 +485,6 @@ int pcistg_service_call(S390CPU *cpu, uint8_t r1, uint8= _t r2) if (trap_msix(pbdev, offset, pcias)) { offset =3D offset - pbdev->msix.table_offset; mr =3D &pbdev->pdev->msix_table_mmio; - update_msix_table_msg_data(pbdev, offset, &data, len); } else { mr =3D pbdev->pdev->io_regions[pcias].memory; } diff --git a/hw/s390x/s390-pci-stub.c b/hw/s390x/s390-pci-stub.c index 7a642d376c..ad4c5a7719 100644 --- a/hw/s390x/s390-pci-stub.c +++ b/hw/s390x/s390-pci-stub.c @@ -70,7 +70,8 @@ S390pciState *s390_get_phb(void) return NULL; } =20 -S390PCIBusDevice *s390_pci_find_dev_by_idx(S390pciState *s, uint32_t idx) +S390PCIBusDevice *s390_pci_find_dev_by_target(S390pciState *s, + const char *target) { return NULL; } diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index 1338c29528..ebbeb4d6b3 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -2533,12 +2533,16 @@ int kvm_arch_fixup_msi_route(struct kvm_irq_routing= _entry *route, uint64_t address, uint32_t data, PCIDevice *d= ev) { S390PCIBusDevice *pbdev; - uint32_t idx =3D data >> ZPCI_MSI_VEC_BITS; uint32_t vec =3D data & ZPCI_MSI_VEC_MASK; =20 - pbdev =3D s390_pci_find_dev_by_idx(s390_get_phb(), idx); + if (!dev) { + DPRINTF("add_msi_route no pci device\n"); + return -ENODEV; + } + + pbdev =3D s390_pci_find_dev_by_target(s390_get_phb(), DEVICE(dev)->id); if (!pbdev) { - DPRINTF("add_msi_route no dev\n"); + DPRINTF("add_msi_route no zpci device\n"); return -ENODEV; } =20 --=20 2.11.0 (Apple Git-81) From nobody Mon Apr 29 05:13:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1504606596700407.1132908152605; Tue, 5 Sep 2017 03:16:36 -0700 (PDT) Received: from localhost ([::1]:57942 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpAuI-0000hY-RF for importer@patchew.org; Tue, 05 Sep 2017 06:16:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44220) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpArE-0006ac-20 for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dpAr9-0003bb-BA for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:24 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:51114) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dpAr9-0003b1-3N for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:19 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v85AAFBE022547 for ; Tue, 5 Sep 2017 06:13:18 -0400 Received: from e23smtp08.au.ibm.com (e23smtp08.au.ibm.com [202.81.31.141]) by mx0a-001b2d01.pphosted.com with ESMTP id 2csq84htfe-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 05 Sep 2017 06:13:17 -0400 Received: from localhost by e23smtp08.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 5 Sep 2017 20:13:15 +1000 Received: from d23relay07.au.ibm.com (202.81.31.226) by e23smtp08.au.ibm.com (202.81.31.205) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 5 Sep 2017 20:13:14 +1000 Received: from d23av05.au.ibm.com (d23av05.au.ibm.com [9.190.234.119]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v85ADDt042270922 for ; Tue, 5 Sep 2017 20:13:13 +1000 Received: from d23av05.au.ibm.com (localhost [127.0.0.1]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v85ADD95011966 for ; Tue, 5 Sep 2017 20:13:13 +1000 Received: from r35lp25.boeblingen.de.ibm.com (r35lp25.boeblingen.de.ibm.com [9.152.111.25]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v85AD28Z011694; Tue, 5 Sep 2017 20:13:10 +1000 From: Yi Min Zhao To: qemu-devel@nongnu.org Date: Tue, 5 Sep 2017 12:12:59 +0200 X-Mailer: git-send-email 2.3.0 In-Reply-To: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> References: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> X-TM-AS-MML: disable x-cbid: 17090510-0048-0000-0000-0000025AD729 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17090510-0049-0000-0000-0000480F334C Message-Id: <1504606380-49341-3-git-send-email-zyimin@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-05_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709050158 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.156.1 Subject: [Qemu-devel] [PATCH v3 2/3] s390x/pci: fixup ind_offset of msix routing entry X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pasic@linux.vnet.ibm.com, zyimin@linux.vnet.ibm.com, richard.henderson@linaro.org, cohuck@redhat.com, pmorel@linux.vnet.ibm.com, agraf@suse.de, borntraeger@de.ibm.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The guest uses the mpcifc instruction to register the aibvo of a zpci device, which is the starting offset of indicators in the indicator area and thus remains constant. Each msix vector is an offset from the aibvo. When we map a msix route to an adapter route, we should not modify the starting offset, but instead add the vector to the starting offset to get the absolute offset in the specific route. Signed-off-by: Yi Min Zhao --- target/s390x/kvm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index ebbeb4d6b3..931b85fe3d 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -2546,14 +2546,12 @@ int kvm_arch_fixup_msi_route(struct kvm_irq_routing= _entry *route, return -ENODEV; } =20 - pbdev->routes.adapter.ind_offset =3D vec; - route->type =3D KVM_IRQ_ROUTING_S390_ADAPTER; route->flags =3D 0; route->u.adapter.summary_addr =3D pbdev->routes.adapter.summary_addr; route->u.adapter.ind_addr =3D pbdev->routes.adapter.ind_addr; route->u.adapter.summary_offset =3D pbdev->routes.adapter.summary_offs= et; - route->u.adapter.ind_offset =3D pbdev->routes.adapter.ind_offset; + route->u.adapter.ind_offset =3D pbdev->routes.adapter.ind_offset + vec; route->u.adapter.adapter_id =3D pbdev->routes.adapter.adapter_id; return 0; } --=20 2.11.0 (Apple Git-81) From nobody Mon Apr 29 05:13:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1504606514176815.9761322576097; Tue, 5 Sep 2017 03:15:14 -0700 (PDT) Received: from localhost ([::1]:57922 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpAsz-0007m7-5Q for importer@patchew.org; Tue, 05 Sep 2017 06:15:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dpArM-0006gl-9U for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dpArE-0003dw-EJ for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:32 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:46393 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dpArE-0003dZ-8q for qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:13:24 -0400 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v85A8eZd007921 for ; Tue, 5 Sep 2017 06:13:23 -0400 Received: from e23smtp06.au.ibm.com (e23smtp06.au.ibm.com [202.81.31.148]) by mx0a-001b2d01.pphosted.com with ESMTP id 2cspu33a4b-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 05 Sep 2017 06:13:23 -0400 Received: from localhost by e23smtp06.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 5 Sep 2017 20:13:20 +1000 Received: from d23relay06.au.ibm.com (202.81.31.225) by e23smtp06.au.ibm.com (202.81.31.212) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 5 Sep 2017 20:13:17 +1000 Received: from d23av05.au.ibm.com (d23av05.au.ibm.com [9.190.234.119]) by d23relay06.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v85ADHVq40960142 for ; Tue, 5 Sep 2017 20:13:17 +1000 Received: from d23av05.au.ibm.com (localhost [127.0.0.1]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v85ADGus012104 for ; Tue, 5 Sep 2017 20:13:17 +1000 Received: from r35lp25.boeblingen.de.ibm.com (r35lp25.boeblingen.de.ibm.com [9.152.111.25]) by d23av05.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v85AD28a011694; Tue, 5 Sep 2017 20:13:13 +1000 From: Yi Min Zhao To: qemu-devel@nongnu.org Date: Tue, 5 Sep 2017 12:13:00 +0200 X-Mailer: git-send-email 2.3.0 In-Reply-To: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> References: <1504606380-49341-1-git-send-email-zyimin@linux.vnet.ibm.com> X-TM-AS-MML: disable x-cbid: 17090510-0040-0000-0000-000003532077 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17090510-0041-0000-0000-00000CD13370 Message-Id: <1504606380-49341-4-git-send-email-zyimin@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-05_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709050158 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: [Qemu-devel] [PATCH v3 3/3] s390x/pci: add iommu replay callback X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pasic@linux.vnet.ibm.com, zyimin@linux.vnet.ibm.com, richard.henderson@linaro.org, cohuck@redhat.com, pmorel@linux.vnet.ibm.com, agraf@suse.de, borntraeger@de.ibm.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Let's introduce iommu replay callback for s390 pci iommu memory region. Currently we don't need any dma mapping replay. So let it return directly. This implementation will avoid meaningless loops calling translation callback. Reviewed-by: Pierre Morel Reviewed-by: Halil Pasic Signed-off-by: Yi Min Zhao --- hw/s390x/s390-pci-bus.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index bd8a3e1e1c..3b9965fde0 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -397,6 +397,17 @@ static IOMMUTLBEntry s390_translate_iommu(IOMMUMemoryR= egion *mr, hwaddr addr, return ret; } =20 +static void s390_pci_iommu_replay(IOMMUMemoryRegion *iommu, + IOMMUNotifier *notifier) +{ + /* It's impossible to plug a pci device on s390x that already has iommu + * mappings which need to be replayed, that is due to the "one iommu p= er + * zpci device" construct. But when we support migration of vfio-pci + * devices in future, we need to revisit this. + */ + return; +} + static S390PCIIOMMU *s390_pci_get_iommu(S390pciState *s, PCIBus *bus, int devfn) { @@ -1045,6 +1056,7 @@ static void s390_iommu_memory_region_class_init(Objec= tClass *klass, void *data) IOMMUMemoryRegionClass *imrc =3D IOMMU_MEMORY_REGION_CLASS(klass); =20 imrc->translate =3D s390_translate_iommu; + imrc->replay =3D s390_pci_iommu_replay; } =20 static const TypeInfo s390_iommu_memory_region_info =3D { --=20 2.11.0 (Apple Git-81)