From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dndVb-0004lu-17 for qemu-devel@nongnu.org; Fri, 01 Sep 2017 00:24:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dndVX-0002DU-3X for qemu-devel@nongnu.org; Fri, 01 Sep 2017 00:24:43 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:50798) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dndVW-0002Co-Qv for qemu-devel@nongnu.org; Fri, 01 Sep 2017 00:24:39 -0400 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v814OFEK088529 for ; Fri, 1 Sep 2017 00:24:37 -0400 Received: from e23smtp06.au.ibm.com (e23smtp06.au.ibm.com [202.81.31.148]) by mx0a-001b2d01.pphosted.com with ESMTP id 2cpram94wq-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 01 Sep 2017 00:24:37 -0400 Received: from localhost by e23smtp06.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 1 Sep 2017 14:24:35 +1000 Received: from d23av06.au.ibm.com (d23av06.au.ibm.com [9.190.235.151]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v814NH7P33161254 for ; Fri, 1 Sep 2017 14:23:17 +1000 Received: from d23av06.au.ibm.com (localhost [127.0.0.1]) by d23av06.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v814NGew001382 for ; Fri, 1 Sep 2017 14:23:17 +1000 From: Yi Min Zhao Date: Fri, 1 Sep 2017 06:22:58 +0200 In-Reply-To: <1504239778-29893-1-git-send-email-zyimin@linux.vnet.ibm.com> References: <1504239778-29893-1-git-send-email-zyimin@linux.vnet.ibm.com> Message-Id: <1504239778-29893-4-git-send-email-zyimin@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v2 3/3] s390x/pci: add iommu replay callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: borntraeger@de.ibm.com, pasic@linux.vnet.ibm.com, pmorel@linux.vnet.ibm.com, cohuck@redhat.com, agraf@suse.de, richard.henderson@linaro.org, zyimin@linux.vnet.ibm.com 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 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index bd8a3e1e1c..69f45e3715 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -397,6 +397,16 @@ static IOMMUTLBEntry s390_translate_iommu(IOMMUMemoryRegion *mr, hwaddr addr, return ret; } +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 per + * zpci device" construct. So we don't need iommu replay currently. + */ + return; +} + static S390PCIIOMMU *s390_pci_get_iommu(S390pciState *s, PCIBus *bus, int devfn) { @@ -1045,6 +1055,7 @@ static void s390_iommu_memory_region_class_init(ObjectClass *klass, void *data) IOMMUMemoryRegionClass *imrc = IOMMU_MEMORY_REGION_CLASS(klass); imrc->translate = s390_translate_iommu; + imrc->replay = s390_pci_iommu_replay; } static const TypeInfo s390_iommu_memory_region_info = { -- 2.11.0 (Apple Git-81)