From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A35CFC531CC for ; Fri, 24 Jul 2026 03:11:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6IJ-0008KZ-Bn; Thu, 23 Jul 2026 23:09:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6IE-00089P-Tr; Thu, 23 Jul 2026 23:09:46 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6IC-0008UP-6w; Thu, 23 Jul 2026 23:09:46 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66NLfvVJ4080515; Fri, 24 Jul 2026 03:09:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=2hK24WnXB6VxFKT3Q Fo9AHd3o5qFYlYhxda9U5RnhVI=; b=Ccij1uosQPB2VxKAchcTyE7PJaTlasrVs 1w1DiuS6qNXCQtoT8KOEUfCJTim7Ce9++TzEfLoT5EuKjXImSesKU/g1FBRxR+hH BXGqpp0WlRyzM4vatUvMftkS/LW7J5HpgrVLGjMnc6LNdo6QxQdr67AQ9jln/G2o YRmJcTJboZLF+IfNNukubCwt6UkbK5If50OIVOhS58gqjiL9Y62oJ7C/nBRMPw14 k4hLgX4RCY5IQ+6TFJiKsz8Sh1JZcxeAfpHgN4kxVU8uDZdcQtVwUfBIU5c9SKQk PpiuBpGpF/NR26HGOSotuXOi1lmzIxxwEUwuge61gE2kSjwNQewKQ== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fg78gj2hs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 03:09:41 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66O34c9m029493; Fri, 24 Jul 2026 03:09:40 GMT Received: from smtprelay02.wdc07v.mail.ibm.com ([172.16.1.69]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fgp1gpybh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 03:09:40 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay02.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66O39cxj28246654 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 24 Jul 2026 03:09:38 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 970E858043; Fri, 24 Jul 2026 03:09:38 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0A7A258059; Fri, 24 Jul 2026 03:09:38 +0000 (GMT) Received: from WIN-DU0DFC9G5VV.ibm.com (unknown [9.61.251.161]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Fri, 24 Jul 2026 03:09:37 +0000 (GMT) From: Konstantin Shkolnyy To: mjrosato@linux.ibm.com Cc: alifm@linux.ibm.com, richard.henderson@linaro.org, iii@linux.ibm.com, david@kernel.org, cohuck@redhat.com, pasic@linux.ibm.com, borntraeger@linux.ibm.com, qemu-s390x@nongnu.org, qemu-devel@nongnu.org, Konstantin Shkolnyy Subject: [PATCH v4 10/15] s390x/pci: Move pba from S390PCIIOMMU to S390PCIBusDevice Date: Thu, 23 Jul 2026 22:09:14 -0500 Message-Id: <20260724030919.123733-11-kshk@linux.ibm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260724030919.123733-1-kshk@linux.ibm.com> References: <20260724030919.123733-1-kshk@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDAyMiBTYWx0ZWRfX7LQ0/QCWKBeQ dx6YVep92hewucgrYHv3KlHuA62OHSOUUWCl2VwcMrL8oNUARTraMpKLdz0cWmJiOrgs4hza0L1 yLfkbzSbiVpIy97q0BVii98GONAc1a/avwtTlvkdHZVijcBGjtb+jXc+EK5UfGw5pF2iTQKgY8J MyWNXIUGorIzXfpQ+9PR4nORwDgw/wvJ+HbaCwBOStw2DlvVdNeG8MArZ67HeM5OnbZNrkxN8Tx vFsUIamiqZzdEzCY+oSP8nu8VrRQdVIvl6k2QdugtFpD41y48/HnS7VNoN5Xq5muVUlZiLaXOou NDK28h2KsDVOOJkZ/jLjgzO6BRVX/OoX7TEVCfbNDYiTc/TUusjuZ4hNxPlqjg360Ow/R+YOpFs jfsTEntJW/+OJfsVC9TvB/eZ2L2tq2Qcu5EdLdhEUUlFK7LGi8OmNTyKTFh3uzvRqPQa+X6st7c 69FrLlv9PvhRK6GeogA== X-Proofpoint-GUID: e40VU92Qf9mlHS77rEet10Do8FL_Fp6V X-Authority-Analysis: v=2.4 cv=MelcfZ/f c=1 sm=1 tr=0 ts=6a62d775 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=THYS1zffzJpO_GefUMYA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDAyMiBTYWx0ZWRfX7upiH82u0KYD t8Pn+NI4FUH9V0Eh2MgXtq43bMEHdsT/GIjya9/opfJ92PS2ZODCDR7kMAbgev02wkse0ss6Irq DA87Q7oqR502LNWxb2QMQ5hfZBYMzKE= X-Proofpoint-ORIG-GUID: e40VU92Qf9mlHS77rEet10Do8FL_Fp6V X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-23_07,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 clxscore=1015 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240022 Received-SPF: pass client-ip=148.163.158.5; envelope-from=kshk@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org This field is only used when S390PCIBusDevice exists, so it can be moved there to simplify S390PCIIOMMU which purpose is just to store the "root" AddressSpace. This also allows to save/restore this field during migration. Signed-off-by: Konstantin Shkolnyy --- hw/s390x/s390-pci-bus.c | 4 ++-- hw/s390x/s390-pci-inst.c | 10 +++++----- include/hw/s390x/s390-pci-bus.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index 5180849518..2309afcfa6 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -565,7 +565,7 @@ static IOMMUTLBEntry s390_translate_iommu(IOMMUMemoryRegion *mr, hwaddr addr, trace_s390_pci_iommu_xlate(addr); - if (addr < iommu->pba || addr > iommu->pal) { + if (addr < pbdev->pba || addr > iommu->pal) { error = ERR_EVENT_OORANGE; goto err; } @@ -602,7 +602,7 @@ static void s390_pci_ioat_replay(S390PCIBusDevice *pbdev) hwaddr curr, end; S390PCIIOMMU *iommu = pbdev->iommu; - curr = iommu->pba; + curr = pbdev->pba; end = iommu->pal; if (pbdev->dm_mr) { diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index 22b477ab38..aa2bc98254 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -770,7 +770,7 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint8_t r2, uintptr_t ra) goto err; } - if (end < start || end < iommu->pba || start > iommu->pal) { + if (end < start || end < pbdev->pba || start > iommu->pal) { error = ERR_EVENT_OORANGE; goto err; } @@ -778,7 +778,7 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint8_t r2, uintptr_t ra) * If the specified range at least partially overlaps the registered * aperture, clamp the request to the aperture and ignore the rest. */ - sstart = MAX(start, iommu->pba); + sstart = MAX(start, pbdev->pba); end = MIN(end, iommu->pal + 1); retry: @@ -1054,7 +1054,7 @@ static int reg_ioat(CPUS390XState *env, S390PCIBusDevice *pbdev, ZpciFib fib, return -EINVAL; } - iommu->pba = pba; + pbdev->pba = pba; iommu->pal = pal; pbdev->g_iota = g_iota; @@ -1071,7 +1071,7 @@ void pci_dereg_ioat(S390PCIBusDevice *pbdev) { S390PCIIOMMU *iommu = pbdev->iommu; s390_pci_iommu_disable(pbdev); - iommu->pba = 0; + pbdev->pba = 0; iommu->pal = 0; pbdev->g_iota = 0; } @@ -1444,7 +1444,7 @@ int stpcifc_service_call(S390CPU *cpu, uint8_t r1, uint64_t fiba, uint8_t ar, return 0; } - stq_be_p(&fib.pba, pbdev->iommu->pba); + stq_be_p(&fib.pba, pbdev->pba); stq_be_p(&fib.pal, pbdev->iommu->pal); stq_be_p(&fib.iota, pbdev->g_iota); stq_be_p(&fib.aibv, pbdev->routes.adapter.ind_addr); diff --git a/include/hw/s390x/s390-pci-bus.h b/include/hw/s390x/s390-pci-bus.h index a7d1f1ade2..42f39a5cf0 100644 --- a/include/hw/s390x/s390-pci-bus.h +++ b/include/hw/s390x/s390-pci-bus.h @@ -275,7 +275,6 @@ struct S390PCIIOMMU { Object parent_obj; AddressSpace as; MemoryRegion mr; - uint64_t pba; uint64_t pal; uint64_t max_dma_limit; }; @@ -352,6 +351,7 @@ struct S390PCIBusDevice { MemoryRegion *dm_mr; GHashTable *iotlb; uint64_t g_iota; + uint64_t pba; S390PCIDMACount *dma_limit; MemoryRegion msix_notify_mr; IndAddr *summary_ind; -- 2.34.1