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 lists.gnu.org (lists.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 1F9BDEA854A for ; Mon, 9 Mar 2026 00:36:54 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vzObZ-0006IF-9k; Sun, 08 Mar 2026 20:36:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vzObW-0006Gd-6l; Sun, 08 Mar 2026 20:36:14 -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 1vzObT-0001de-Rl; Sun, 08 Mar 2026 20:36:13 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 628LdMvT1478497; Mon, 9 Mar 2026 00:36:10 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=Z/WZ4Ued9sMaAzGDa Mk8e5bEKDML/ZEaTDWfLPabYF4=; b=XiugEWeKl1DB0vsWi/7+Sx01fZ6yLSy/P i6KpZ1rbVZ+go+ywOOeLWMsgA6sn21fSb9yD4wgHNdIebwlGeRmCWiZeicIU+QOn w36Ul4aAAGEWKzxdD9Md2G/7zYde0MXUbvjoM6yiwylJ9ootr2f10pWGwQAFit3D NqCL0R44NsSkvmqv3Cy8Cdbf5wtz0mrKcEtcOJUakBjjnwMfLDNCy1eayr2UZbWA T9118yyhOh+Bvct2ZYga5U3dJP46Fe5TUxwOJv5M5nMF8mVWr3t8jXk6rpzlSvV0 iDUfGHl8AqnbNNO12GULs/GimatgFlCAqhMBeLxexxlvJYlgTBjGw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4crcvr4em6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Mar 2026 00:36:10 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 628MAAJD023349; Mon, 9 Mar 2026 00:36:10 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4cryukaweu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Mar 2026 00:36:10 +0000 Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 6290a8rw28312284 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 9 Mar 2026 00:36:08 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BDF5D58052; Mon, 9 Mar 2026 00:36:08 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A19E058050; Mon, 9 Mar 2026 00:36:07 +0000 (GMT) Received: from t15.ibmuc.com (unknown [9.61.180.105]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Mon, 9 Mar 2026 00:36:07 +0000 (GMT) From: jrossi@linux.ibm.com To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, thuth@redhat.com, mst@redhat.com Cc: jjherne@linux.ibm.com, alifm@linux.ibm.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, jrossi@linux.ibm.com, zycai@linux.ibm.com Subject: [PATCH v5 02/15] pc-bios/s390-ccw: Remove redundant vring schid attribute Date: Sun, 8 Mar 2026 20:35:48 -0400 Message-ID: <20260309003601.242634-3-jrossi@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260309003601.242634-1-jrossi@linux.ibm.com> References: <20260309003601.242634-1-jrossi@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDAwMyBTYWx0ZWRfX6R4pDImVsxUv uCA5TbcUSgxBT7k0WuzIMHKXO8BZns02TgqKlKotRD+U8Z104xTQVAUVl1SoaiWElCXf/5056rs mEmHRgJ6TyGUgDUWYS8PBN8txyGDWdJPeF29y5/cjs0O2Ckvih+Miw8ASFHFjxRzJ0lASjiacZd hu69JxFDFFcDsb4Ag5oo62M3tXqmksP3cFuqUNzWJ3PiTgVdBDWbKbSbO6N/EM+Zc4zO1sFEOEC gWVuk+xGfwaofwOhMoJ4oYcs5ecAP2ckh0mLXiP+FOaf6e7Sz5fZSVH1dzXzR4d4VttPsPrzYCz ub7IL5DZq1w5A2vrpkI2Op8ZoCBkJw4nvwTshIO+JSU1j3FgJVz5FY1LL7atjTqD/LWiC2TwjT+ 3m12fqkNS1JbxiMYCJXwR/+UXYw2lzcpXOWt4zadvnvPHiV7vMh9mjkR3CC2THhXfQVHA6ak6Rb 7thIw45xy6/AnGow9tQ== X-Proofpoint-GUID: s4u3GrDxVFtgEsVLwiTob9NJ8IxQ1gMc X-Proofpoint-ORIG-GUID: s4u3GrDxVFtgEsVLwiTob9NJ8IxQ1gMc X-Authority-Analysis: v=2.4 cv=QoFTHFyd c=1 sm=1 tr=0 ts=69ae15fa cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8 a=IrE9pShrE_OzcS6fqDcA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-08_07,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 malwarescore=0 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090003 Received-SPF: pass client-ip=148.163.158.5; envelope-from=jrossi@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -9 X-Spam_score: -1.0 X-Spam_bar: - X-Spam_report: (-1.0 / 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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 From: Jared Rossi The schid is already stored as an attribute of the VDev itself and any other instances are copies of this same value. To avoid CCW specific attributes in the VRing let's just access the existing VDev schid attribute as needed. Reviewed-by: Thomas Huth Reviewed-by: Eric Farman Reviewed-by: Farhan Ali Signed-off-by: Jared Rossi --- pc-bios/s390-ccw/virtio-blkdev.c | 2 +- pc-bios/s390-ccw/virtio-net.c | 2 +- pc-bios/s390-ccw/virtio.c | 9 ++++----- pc-bios/s390-ccw/virtio.h | 3 +-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c index 4b819dd80f..019c2718b1 100644 --- a/pc-bios/s390-ccw/virtio-blkdev.c +++ b/pc-bios/s390-ccw/virtio-blkdev.c @@ -42,7 +42,7 @@ static int virtio_blk_read_many(VDev *vdev, unsigned long sector, void *load_add /* Now we can tell the host to read */ vring_wait_reply(); - if (drain_irqs(vr->schid)) { + if (drain_irqs()) { /* Well, whatever status is supposed to contain... */ status = 1; } diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c index 301445bf97..7eb0850069 100644 --- a/pc-bios/s390-ccw/virtio-net.c +++ b/pc-bios/s390-ccw/virtio-net.c @@ -88,7 +88,7 @@ int send(int fd, const void *buf, int len, int flags) while (!vr_poll(txvq)) { yield(); } - if (drain_irqs(txvq->schid)) { + if (drain_irqs()) { puts("send: drain irqs failed"); return -1; } diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index cd6c99c7e3..f384a990dc 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -72,14 +72,14 @@ static long virtio_notify(SubChannelId schid, int vq_idx, long cookie) * Virtio functions * ***********************************************/ -int drain_irqs(SubChannelId schid) +int drain_irqs(void) { Irb irb = {}; int r = 0; while (1) { /* FIXME: make use of TPI, for that enable subchannel and isc */ - if (tsch(schid, &irb)) { + if (tsch(vdev.schid, &irb)) { /* Might want to differentiate error codes later on. */ if (irb.scsw.cstat) { r = -EIO; @@ -134,7 +134,7 @@ static void vring_init(VRing *vr, VqInfo *info) bool vring_notify(VRing *vr) { - vr->cookie = virtio_notify(vr->schid, vr->id, vr->cookie); + vr->cookie = virtio_notify(vdev.schid, vr->id, vr->cookie); return vr->cookie >= 0; } @@ -211,7 +211,7 @@ int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd) } while (cmd[i++].flags & VRING_DESC_F_NEXT); vring_wait_reply(); - if (drain_irqs(vr->schid)) { + if (drain_irqs()) { return -1; } return 0; @@ -316,7 +316,6 @@ int virtio_setup_ccw(VDev *vdev) } info.num = config.num; vring_init(&vdev->vrings[i], &info); - vdev->vrings[i].schid = vdev->schid; if (run_ccw(vdev, CCW_CMD_SET_VQ, &info, sizeof(info), false)) { puts("Cannot set VQ info"); return -EIO; diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index 597bd42358..06ba4e45ac 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -103,7 +103,6 @@ struct VRing { VRingDesc *desc; VRingAvail *avail; VRingUsed *used; - SubChannelId schid; long cookie; int id; }; @@ -269,7 +268,7 @@ struct VirtioCmd { typedef struct VirtioCmd VirtioCmd; bool vring_notify(VRing *vr); -int drain_irqs(SubChannelId schid); +int drain_irqs(void); void vring_send_buf(VRing *vr, void *p, int len, int flags); int vr_poll(VRing *vr); int vring_wait_reply(void); -- 2.52.0