From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086502; cv=none; d=zohomail.com; s=zohoarc; b=lbu1zOUTQitj3YCpa8gFCknkIdn2yyG5N2ov4JQXkhZWdrc2HL8ZLbFIRxoIY5eYHAOiQLI8QjfhRu9JHclX20RlSrU5sF2OK5da9w+woKXiAxWjfkCOmdiW6uYrUnpn9k/7SEtZy+v7snsd5Pg+Faho0VwBQukga2iVSsWQoxo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086502; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zZHSjUDRbQy3R/lg4K2vLvZyRzVCidnMH7FsNDwiG8g=; b=BA6PgN6XR3Vx5XZb/MlYVrX4GlErlFwHFLp3EeqFiBdCmyo6xjlaZOkOacS4rdjKULfpo1U3SoDFdjjCjAhq+jeEZ0cbOMmfJXNztGGIEk3rduPzxfwqg2bDHw/HCeIwJbYhth9x6jIHgtSIMkxYEsih/FISnD4EC/wNl2nNvqs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086502212606.0418585369082; Tue, 18 Aug 2026 13:55:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQoi-0007x1-2C; Tue, 18 Aug 2026 16:53:52 -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 1wwQoV-0007u0-5Q; Tue, 18 Aug 2026 16:53:39 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wwQoS-0000hU-OB; Tue, 18 Aug 2026 16:53:38 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67IJW3rA1260785; Tue, 18 Aug 2026 20:53:34 GMT 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 4g2fu4twcf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:34 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfKbp012459; Tue, 18 Aug 2026 20:53:33 GMT Received: from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4g33xh5d6k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:33 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKrWDc3605300 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:32 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E273E58050; Tue, 18 Aug 2026 20:53:31 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6B15C58054; Tue, 18 Aug 2026 20:53:30 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:30 +0000 (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=zZHSjUDRbQy3R/lg4 K2vLvZyRzVCidnMH7FsNDwiG8g=; b=CA0sozAST32FmRBKr2tyYetxA12Hhn2hm e41jZOHQRD+1IhKxlwKW6Pbi1fkF+AOfYm4AUWsBQcvrW/sWZz1LOog6UdmMc/zO +YpTCFH3B+ss9v/unLB2/u1t4mFZUZaROzI0hj1QaZbNQed9fjZh0zxkAp+DFyLF 5vp4MuPLiGHZn9nTcChAVpisGtCq5j8MAIdEmrxCzaHF99wRSwoiZpslLv+o8HYy ljWlKfYXykt4OFy2MEtcJifeNMtu4l5ZkTwi6TS4eWmHfu2DNfEVsXE58hXELK55 9+xN6c97vaWH+v7l9BSOz5wDreIYekMz8Gv7aVe9m64q27zgTpXCQ== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 1/7] pc-bios/s390-ccw: Split virtio-ccw and generic virtio net Date: Tue, 18 Aug 2026 16:53:18 -0400 Message-ID: <20260818205324.580199-2-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: Z19lcsKBEMpRNGd4d-dSfD2rpe6oxb3l X-Authority-Analysis: v=2.4 cv=NLLlPU6g c=1 sm=1 tr=0 ts=6a84c64e cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=qfLpGqGhN9AccM6J-j0A:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX/F80vHqSYUuh v/6ESQw9ijBIHPs0xZ8diKytsuLUai6RUJEQJxxnL/jLme0gOVRZxKtXIaDOEpZf8+6a3YN74kC dqVOT4GV402hXQ3MDBGYivzU/u5J9CY= X-Proofpoint-ORIG-GUID: Z19lcsKBEMpRNGd4d-dSfD2rpe6oxb3l X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX+WhcMKNWlGaw yZhETbmim9jGtxdqSydA51S+Dfz38IlV1MUZJq3T2rDzhj15ZmRdBvsVslHYr44hGolFXB+JoB3 VEYQqA6kyq/Gfz+gt6gPIM+sqIjKV95oRNo9CF8AeeedGfFsdaDVLsNuZ7fqqr4OHrJGfJvtbII BVDp1WHUQpDLNU+XalUlqU4gzuETXXqjDj7q5wDnOIvjCsjPBc6ma71mjIe56e3BBZnSuST66sV V4IkZQxxutS9mJVbRerK4UvZkCsEtN8t0t6UNcpXR9EcLkPEESf1252S6CRPcWFD5srrgWm704E 0toSpJOs8b/BZbgnhigqx450MJOkPUlx9HvQ2qttDvBB4Ui7IoxCEjxPKmJBP46xE10XYFTG8Bu aYWaq4kmDU4xo3Jj+Zte4+1nVOUdV0+Fshm2brPYval56TeROyD19I2HHthSJQWaphmG7fL2dtT 1/9MJj7DP0jaOcVU9KA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 malwarescore=0 suspectscore=0 clxscore=1011 adultscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=zycai@linux.ibm.com; helo=mx0a-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_H4=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086502766158500 Content-Type: text/plain; charset="utf-8" Refactor network device setup to separate virtio-ccw from generic virtio-net logic for easier reuse of existing virtio functions with non-CCW devices. Signed-off-by: Zhuoying Cai Reviewed-by: Jason J. Herne --- pc-bios/s390-ccw/netmain.c | 64 +---------------------------------- pc-bios/s390-ccw/virtio-ccw.c | 62 +++++++++++++++++++++++++++++++++ pc-bios/s390-ccw/virtio-ccw.h | 1 + pc-bios/s390-ccw/virtio-net.c | 10 ++++++ pc-bios/s390-ccw/virtio.h | 1 + 5 files changed, 75 insertions(+), 63 deletions(-) diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c index 791854fce0..e2f2278b8d 100644 --- a/pc-bios/s390-ccw/netmain.c +++ b/pc-bios/s390-ccw/netmain.c @@ -489,68 +489,6 @@ static int net_try_direct_tftp_load(filename_ip_t *fn_= ip) return rc; } =20 -static bool find_net_dev(Schib *schib, int dev_no) -{ - int i, r; - - for (i =3D 0; i < 0x10000; i++) { - net_schid.sch_no =3D i; - r =3D stsch_err(net_schid, schib); - if (r =3D=3D 3 || r =3D=3D -EIO) { - break; - } - if (!schib->pmcw.dnv) { - continue; - } - enable_subchannel(net_schid); - if (!virtio_is_supported(virtio_get_device())) { - continue; - } - if (virtio_get_device_type() !=3D VIRTIO_ID_NET) { - continue; - } - if (dev_no < 0 || schib->pmcw.dev =3D=3D dev_no) { - return true; - } - } - - return false; -} - -static bool virtio_setup(void) -{ - Schib schib; - int ssid; - bool found =3D false; - uint16_t dev_no; - - /* - * We unconditionally enable mss support. In every sane configuration, - * this will succeed; and even if it doesn't, stsch_err() can deal - * with the consequences. - */ - enable_mss_facility(); - - if (have_iplb || store_iplb(&iplb)) { - IPL_assert(iplb.pbt =3D=3D S390_IPL_TYPE_CCW, "IPL_TYPE_CCW expect= ed"); - dev_no =3D iplb.ccw.devno; - debug_print_int("device no. ", dev_no); - net_schid.ssid =3D iplb.ccw.ssid & 0x3; - debug_print_int("ssid ", net_schid.ssid); - found =3D find_net_dev(&schib, dev_no); - } else { - for (ssid =3D 0; ssid < 0x3; ssid++) { - net_schid.ssid =3D ssid; - found =3D find_net_dev(&schib, -1); - if (found) { - break; - } - } - } - - return found; -} - int netmain(void) { filename_ip_t fn_ip; @@ -559,7 +497,7 @@ int netmain(void) sclp_setup(); puts("Network boot starting..."); =20 - if (!virtio_setup()) { + if (!virtio_net_setup()) { puts("No virtio net device found."); return -1; } diff --git a/pc-bios/s390-ccw/virtio-ccw.c b/pc-bios/s390-ccw/virtio-ccw.c index 5cb2158ed2..403bd8a785 100644 --- a/pc-bios/s390-ccw/virtio-ccw.c +++ b/pc-bios/s390-ccw/virtio-ccw.c @@ -237,3 +237,65 @@ int virtio_ccw_setup(VDev *vdev) =20 return 0; } + +static bool find_ccw_net_dev(Schib *schib, int dev_no) +{ + int i, r; + + for (i =3D 0; i < 0x10000; i++) { + net_schid.sch_no =3D i; + r =3D stsch_err(net_schid, schib); + if (r =3D=3D 3 || r =3D=3D -EIO) { + break; + } + if (!schib->pmcw.dnv) { + continue; + } + enable_subchannel(net_schid); + if (!virtio_is_supported(virtio_get_device())) { + continue; + } + if (virtio_get_device_type() !=3D VIRTIO_ID_NET) { + continue; + } + if (dev_no < 0 || schib->pmcw.dev =3D=3D dev_no) { + return true; + } + } + + return false; +} + +bool virtio_ccw_net_setup(void) +{ + Schib schib; + int ssid; + bool found =3D false; + uint16_t dev_no; + + /* + * We unconditionally enable mss support. In every sane configuration, + * this will succeed; and even if it doesn't, stsch_err() can deal + * with the consequences. + */ + enable_mss_facility(); + + if (have_iplb || store_iplb(&iplb)) { + IPL_assert(iplb.pbt =3D=3D S390_IPL_TYPE_CCW, "IPL_TYPE_CCW expect= ed"); + dev_no =3D iplb.ccw.devno; + debug_print_int("device no. ", dev_no); + net_schid.ssid =3D iplb.ccw.ssid & 0x3; + debug_print_int("ssid ", net_schid.ssid); + found =3D find_ccw_net_dev(&schib, dev_no); + } else { + for (ssid =3D 0; ssid < 0x3; ssid++) { + net_schid.ssid =3D ssid; + found =3D find_ccw_net_dev(&schib, -1); + if (found) { + break; + } + } + } + + return found; +} diff --git a/pc-bios/s390-ccw/virtio-ccw.h b/pc-bios/s390-ccw/virtio-ccw.h index a506767eaa..c330e02f99 100644 --- a/pc-bios/s390-ccw/virtio-ccw.h +++ b/pc-bios/s390-ccw/virtio-ccw.h @@ -20,5 +20,6 @@ int virtio_ccw_run(VDev *vdev, int vqid, VirtioCmd *cmd); long virtio_ccw_notify(SubChannelId schid, int vq_idx, long cookie); int virtio_ccw_setup(VDev *vdev); int virtio_ccw_reset(VDev *vdev); +bool virtio_ccw_net_setup(void); =20 #endif diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c index f58f7ffc55..0ee51653ab 100644 --- a/pc-bios/s390-ccw/virtio-net.c +++ b/pc-bios/s390-ccw/virtio-net.c @@ -146,3 +146,13 @@ void virtio_net_deinit(void) { virtio_reset(virtio_get_device()); } + +bool virtio_net_setup(void) +{ + switch (virtio_get_device()->ipl_type) { + case S390_IPL_TYPE_CCW: + return virtio_ccw_net_setup(); + default: + return false; + } +} diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index aa307025e0..04dbc65dbd 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -290,6 +290,7 @@ int virtio_setup_ccw(VDev *vdev); /* virtio-net.c */ int virtio_net_init(void *mac_addr); void virtio_net_deinit(void); +bool virtio_net_setup(void); =20 /* virtio-blkdev.c */ int virtio_blk_setup_device(VDev *vdev); --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086498; cv=none; d=zohomail.com; s=zohoarc; b=YRrA3IgadvGgVEOfAt2aUO2Nxjw6K/EVCk8a3pumnRMRJlgSBRCfLb5KcHJx5wuKJNqOnc4RluI6RmBaENLwQzwUUgP5VnM6PiGM63FWfBVGQDuO9vLt67qu1PfO5w2nEC+YZdGnvSSrNrTGwInX1q7O5/kIM+jrr57IWtoB4zM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086498; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0NKFsng+ch+oW3TFOU/Z9KKhg92SnP9r8ao6MANvPh4=; b=gkOY3TxMbM91VIlYs+M6MW5yTTgvvpA1jb5GSsbdW0woQAX5ZEDj3g250BMDLO712LzeV/WINNWtiRzY/pd6ftK80Es3ggjuoa/KM0OiewKL1C748niVBnXzUqNjW9CQcsgJ8gIqvDSv4gFkMiaRvfAh21hoJazSY6GVEyRltOU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086498696476.4140079156474; Tue, 18 Aug 2026 13:54:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQog-0007wM-PN; Tue, 18 Aug 2026 16:53:50 -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 1wwQoV-0007u2-Je; Tue, 18 Aug 2026 16:53:39 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wwQoT-0000hh-T1; Tue, 18 Aug 2026 16:53:39 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67IJW5eo1211079; Tue, 18 Aug 2026 20:53:36 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4g2fm3tv9h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:35 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfSut022733; Tue, 18 Aug 2026 20:53:35 GMT Received: from smtprelay03.wdc07v.mail.ibm.com ([172.16.1.70]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4g32eq5k01-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:35 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay03.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKqs2I28967520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:52:54 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8783558045; Tue, 18 Aug 2026 20:53:33 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1B7D558050; Tue, 18 Aug 2026 20:53:32 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:31 +0000 (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=0NKFsng+ch+oW3TFO U/Z9KKhg92SnP9r8ao6MANvPh4=; b=W2AcWBbwH4F14A5286HAwBtuRnv2fk8PD 5dcb8GKpDKXBiLv774dIFwhh4rhIq8Lq10vmTqwI/ffWJimJFi+C55vdrlE0Mkr/ fjSbYXDunHelnKOA6yTLqKm36tQLrqKNE66nOKrOsiva9z0nmcOqrLALgJ9Upa0c TzaH+TpQK5kfuUyyeo9TVUCFaK1WfXBfJBfVlKtysGFDruw+0+wX8bYsfS2hbYHX lP0FJYTMyikiNvy2jwxJUbbaHlrybNC7d2JWqWMp/ZCXfahFvIRnCSQONqno/rmf S8OB35z/9wjy6TJnpI7bqKFQsej6ut9PueJ+lCX5mzxjU9sbQc5DA== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 2/7] pc-bios/s390-ccw: Add dynamic net header size handling Date: Tue, 18 Aug 2026 16:53:19 -0400 Message-ID: <20260818205324.580199-3-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: 1ztNGwop2dRG6RWz10Q2JQ_-ko_-Zw3q X-Proofpoint-ORIG-GUID: 1ztNGwop2dRG6RWz10Q2JQ_-ko_-Zw3q X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX86oUOV+cZd3x Qx9px6CaoaKysKxHu35UMgpTyHdBIUBS12gsobHvSTEn7zzdLLTiU2t8CVAwRB3mi3VrE+U5r9+ 6K7EI2S4EP8wUooZBLCVlRgR+Chjgb0= X-Authority-Analysis: v=2.4 cv=WtQb99fv c=1 sm=1 tr=0 ts=6a84c64f cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=8MLiPoPOxDt9SxNeCIoA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX9He3tQM2bqCq s9dv1gAOFawbEVlMnK/3cSlvIddhbNPWVOyWE0NEpBbTkFrZ/uupFkEIohxqxAvX6PneELWzpd9 4NWU4yaewaCsvKDCa+2Da6iGyRJ4rRTIXutPhD7SDLLHzea/jQjfmgo62hK6RMi5jOtrdgafpjy iopaLiD05b9wtRQ3oLNb8HVbMELZ5h/5toCbbMj2Fc1kkksG8gQ/JyXAw6AgGt0TQsw2hXCXul5 /+FCseLFmmM9cX8lZ6AWtKebQyWGPp9cDxqamgcm25rNDPH44ODJ7iNECaKRm/gZPv3y5xI4BDg z/7RTLIyw7A51iA4Mp9Vp1XFJw0/QePzqR13OUizXu4aWnh0WpxClxd5JZ31RTok0yIMtUCHT/e KzTYl++NXgDYyYt2qh/uzftqg7v0SkVCycbUZ3nON1+2Kb7rAq5Tj+cZo7NbFTO+Hnm8UuWnkOa RUeTBxDcJQnJsqgQnYg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=zycai@linux.ibm.com; helo=mx0a-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_H4=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086500865158500 Content-Type: text/plain; charset="utf-8" The virtio-net device used a fixed header size that did not account for the num_buffers field used in VirtIO 1.0 or for the mergeable receive buffers feature. Use dynamic header sizing: 10 bytes for legacy mode and 12 bytes for VirtIO 1.0 or when VIRTIO_NET_F_MRG_RXBUF is enabled. This ensures correct packet handling across different VirtIO configurations. Signed-off-by: Zhuoying Cai Reviewed-by: Jason J. Herne --- pc-bios/s390-ccw/virtio-net.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c index 0ee51653ab..3a9ae789cf 100644 --- a/pc-bios/s390-ccw/virtio-net.c +++ b/pc-bios/s390-ccw/virtio-net.c @@ -20,6 +20,7 @@ #include "s390-ccw.h" #include "virtio.h" #include "virtio-ccw.h" +#include "virtio-pci.h" #include "s390-time.h" #include "helper.h" =20 @@ -28,10 +29,15 @@ #endif =20 #define VIRTIO_NET_F_MAC_BIT (1 << 5) +#define VIRTIO_NET_F_MRG_RXBUF_BIT (1 << 15) =20 #define VQ_RX 0 /* Receive queue */ #define VQ_TX 1 /* Transmit queue */ =20 +/* Header sizes for different modes */ +#define VIRTIO_NET_HDR_SIZE_LEGACY 10 /* Without num_buffers */ +#define VIRTIO_NET_HDR_SIZE_V1 12 /* With num_buffers */ + struct VirtioNetHdr { uint8_t flags; uint8_t gso_type; @@ -39,11 +45,12 @@ struct VirtioNetHdr { uint16_t gso_size; uint16_t csum_start; uint16_t csum_offset; - /*uint16_t num_buffers;*/ /* Only with VIRTIO_NET_F_MRG_RXBUF or VIRTI= O1 */ + uint16_t num_buffers; /* Only with VIRTIO_NET_F_MRG_RXBUF or VIRTIO1 */ }; typedef struct VirtioNetHdr VirtioNetHdr; =20 static uint16_t rx_last_idx; /* Last index in receive queue "used" ring */ +static int virtio_net_hdr_size; =20 int virtio_net_init(void *mac_addr) { @@ -62,12 +69,17 @@ int virtio_net_init(void *mac_addr) return -1; } =20 + virtio_net_hdr_size =3D ((vdev->guest_features[1] & VIRTIO_F_VERSION_1= ) || + (vdev->guest_features[0] & VIRTIO_NET_F_MRG_RXB= UF_BIT)) + ? VIRTIO_NET_HDR_SIZE_V1 + : VIRTIO_NET_HDR_SIZE_LEGACY; + memcpy(mac_addr, vdev->config.net.mac, ETH_ALEN); =20 for (i =3D 0; i < 64; i++) { - buf =3D malloc(ETH_MTU_SIZE + sizeof(VirtioNetHdr)); + buf =3D malloc(ETH_MTU_SIZE + virtio_net_hdr_size); IPL_assert(buf !=3D NULL, "Can not allocate memory for receive buf= fers"); - vring_send_buf(rxvq, buf, ETH_MTU_SIZE + sizeof(VirtioNetHdr), + vring_send_buf(rxvq, buf, ETH_MTU_SIZE + virtio_net_hdr_size, VRING_DESC_F_WRITE); } vring_notify(rxvq); @@ -82,9 +94,9 @@ int send(int fd, const void *buf, int len, int flags) VRing *txvq =3D &vdev->vrings[VQ_TX]; =20 /* Set up header - we do not use anything special, so simply clear it = */ - memset(&tx_hdr, 0, sizeof(tx_hdr)); + memset(&tx_hdr, 0, virtio_net_hdr_size); =20 - vring_send_buf(txvq, &tx_hdr, sizeof(tx_hdr), VRING_DESC_F_NEXT); + vring_send_buf(txvq, &tx_hdr, virtio_net_hdr_size, VRING_DESC_F_NEXT); vring_send_buf(txvq, (void *)buf, len, VRING_HIDDEN_IS_CHAIN); while (!vr_poll(txvq)) { yield(); @@ -108,13 +120,13 @@ int recv(int fd, void *buf, int maxlen, int flags) return 0; } =20 - len =3D rxvq->used->ring[rx_last_idx % rxvq->num].len - sizeof(VirtioN= etHdr); + len =3D rxvq->used->ring[rx_last_idx % rxvq->num].len - virtio_net_hdr= _size; if (len > maxlen) { puts("virtio-net: Receive buffer too small"); len =3D maxlen; } id =3D rxvq->used->ring[rx_last_idx % rxvq->num].id % rxvq->num; - pkt =3D (uint8_t *)(rxvq->desc[id].addr + sizeof(VirtioNetHdr)); + pkt =3D (uint8_t *)(rxvq->desc[id].addr + virtio_net_hdr_size); =20 #if DEBUG_VIRTIO_NET /* Dump packet */ int i; --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086490; cv=none; d=zohomail.com; s=zohoarc; b=jHtxLg0zJkUc5zImy/r8LgK1QkcZ2dRSALFh4yGH7+5mL4cizpwqS5g3m3QWs7rG7d/NxqPtR43tqVVTLW3kEkyn3E9wmCR77yaTNes3ps6Bky9LHXi8QAvV0mhjv0DhR88FaRL75TGabnywuB4ppWe/WmBpbTkyvHNfupm/rLA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086490; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DzcKdScEVVW6+ZAl9rSticEq9HCccksw6wjyy64we9Q=; b=IcOAGcV8tyC262O3gypOdjfc7OXT5TvnifciKqsj7XbDQVwZx7R+niwQ4IWpzHCgPDYG/5foqvZRFOWhKZEOwsQlPUArmJMH6OwMjY+xL69RnKv9L+8873rioMRj75D0+ON6D9HTdNf3PF/asGprzovE5zIeBVkHI6FQUPOGIQA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086490189987.7763654302926; Tue, 18 Aug 2026 13:54:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQol-0007yy-6M; Tue, 18 Aug 2026 16:53:55 -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 1wwQoY-0007ud-2v; Tue, 18 Aug 2026 16:53:43 -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 1wwQoU-0000hx-IJ; Tue, 18 Aug 2026 16:53:40 -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 67IJWQma1294471; Tue, 18 Aug 2026 20:53:37 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4g2frta88e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:37 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfNQN014347; Tue, 18 Aug 2026 20:53:36 GMT Received: from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4g32tw5hth-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:36 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKrZnw51446092 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:35 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3407058050; Tue, 18 Aug 2026 20:53:35 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B18F358045; Tue, 18 Aug 2026 20:53:33 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:33 +0000 (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=DzcKdScEVVW6+ZAl9 rSticEq9HCccksw6wjyy64we9Q=; b=QJ2ZME47PTlrctZ5cAOLJfuKz7sOvreeD YsuZ2ju4dlaQ2+rY46CBy5aoWoT/e4p5QNwgZdmgxZlDEz2+680q9j+vQRfYDlUb R1R1YP6fFa+2utRxhk1ncX3zEZxHg/XYsHnDpxnKTRnLQnTAi+0dCaQFZT2oLktA jWjMUF0/JEyIt+qyGjeDZvxZ4ao9uROTpbxTzie/QYDL8RwX2mO43WteOcM8c+tD AZvFtsR7RCEPlHkFuuqcBwU9bR/BQ2+AyBsxbQbg/A1fnrYWsl+Th/vFRlLnPjF2 m8TO6P8CxQtZpf0VFNyuZzkwahg1ZsSvy47jPa3tpW+kUc9tss5wQ== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 3/7] pc-bios/s390-ccw: Introduce virtio_tswap helpers Date: Tue, 18 Aug 2026 16:53:20 -0400 Message-ID: <20260818205324.580199-4-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=OfaoyBTY c=1 sm=1 tr=0 ts=6a84c651 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=nmTm2IjeaI_QYA0BkewA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX1ne8rR1AyBMC Gs3Vi/db3sTXuvVUi8i+aP4pIv4LLGyEhDEsUDozRQG14YabIpC8qPcj3ZGwkJO+syj1XR6AEmt mDotUKaeM0EyuKLFWSb0wr8dnDo8EV0= X-Proofpoint-GUID: ZjVXvhSXebwpJaOPvCq2rxr_IfvO8Jww X-Proofpoint-ORIG-GUID: ZjVXvhSXebwpJaOPvCq2rxr_IfvO8Jww X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX9Gl+RjUkufO2 6tcyHIYOnDmOkQZ2pCmX+y7+13FzCTD6o7zSw5/lbQJ2oTfaMbXRcxMfeBICI/QpL0JpTbH1KW4 Velqt7ViR8CHi2nldlo56Qa1GXHPA0u1auqSL6KDr9sFRCkOCSmNgUiZf3X4/5GOMt/bwEmn7N/ dWKic8ORQdjxbPaby0c9zGoQcvUBPBmUZvQD7eKRZJDsxfO17tI7Sl8cQ310sjnx0RdgBqd+JzI jv9eQulVfSCt601Rrx4F8Rc/R4DrrmOauAdmyIOtLdr8IBln6zYGJYt2IDuTqAcgYomFZx9entd AwElCD2QFS8rsGsflwstBDAtV5XkMWt59Bvlo4fjab0AJw7aGG4SYWwauaWX1TH0/SUwZpoYXBH 1yPsJV9pkvKg6ZuNQXcsGi0xHVQBgStBtkTGX/oFvbSW+ud1AV0hzg8PIQCLtamwDDvDzXSe7vu IldLaXOMJUY5hj/8Wcg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 phishscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=zycai@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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086490722158500 Content-Type: text/plain; charset="utf-8" Replace the repeated pattern: be_ipl() ? x : bswapN(x) with helpers that conditionally byte-swap based on the virtio transport endianness. Signed-off-by: Zhuoying Cai Reviewed-by: Jason J. Herne Reviewed-by: Matthew Rosato --- pc-bios/s390-ccw/virtio.c | 27 +++++++++++++++++++++------ pc-bios/s390-ccw/virtio.h | 4 ++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index a0d249db24..037c00a3e1 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -97,7 +97,7 @@ void vring_init(VRing *vr, VqInfo *info) vr->avail->idx =3D 0; =20 /* We're running with interrupts off anyways, so don't bother */ - vr->used->flags =3D be_ipl() ? VRING_USED_F_NO_NOTIFY : bswap16(VRING_= USED_F_NO_NOTIFY); + vr->used->flags =3D virtio_tswap16(VRING_USED_F_NO_NOTIFY); vr->used->idx =3D 0; vr->used_idx =3D 0; vr->next_idx =3D 0; @@ -140,6 +140,22 @@ bool be_ipl(void) } } =20 +/* Conditionally byte-swap between virtio-endian and s390x native big-endi= an. */ +uint16_t virtio_tswap16(uint16_t x) +{ + return be_ipl() ? x : bswap16(x); +} + +uint32_t virtio_tswap32(uint32_t x) +{ + return be_ipl() ? x : bswap32(x); +} + +uint64_t virtio_tswap64(uint64_t x) +{ + return be_ipl() ? x : bswap64(x); +} + /* * Format the virtio ring descriptor endianness * Return the available index increment in the appropriate endianness @@ -156,12 +172,11 @@ void vring_send_buf(VRing *vr, void *p, int len, int = flags) { uint16_t avail_idx; =20 - avail_idx =3D be_ipl() ? vr->avail->idx : bswap16(vr->avail->idx); + avail_idx =3D virtio_tswap16(vr->avail->idx); =20 /* For follow-up chains we need to keep the first entry point */ if (!(flags & VRING_HIDDEN_IS_CHAIN)) { - vr->avail->ring[avail_idx % vr->num] =3D be_ipl() ? vr->next_idx : - bswap16(vr->next= _idx); + vr->avail->ring[avail_idx % vr->num] =3D virtio_tswap16(vr->next_i= dx); } =20 vr->desc[vr->next_idx].addr =3D (unsigned long)p; @@ -179,7 +194,7 @@ void vring_send_buf(VRing *vr, void *p, int len, int fl= ags) /* Chains only have a single ID */ if (!(flags & VRING_DESC_F_NEXT)) { avail_idx++; - vr->avail->idx =3D be_ipl() ? avail_idx : bswap16(avail_idx); + vr->avail->idx =3D virtio_tswap16(avail_idx); } } =20 @@ -187,7 +202,7 @@ int vr_poll(VRing *vr) { uint16_t used_idx; =20 - used_idx =3D be_ipl() ? vr->used->idx : bswap16(vr->used->idx); + used_idx =3D virtio_tswap16(vr->used->idx); if (used_idx =3D=3D vr->used_idx) { vring_notify(vr); yield(); diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index 04dbc65dbd..3c84a480d9 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -287,6 +287,10 @@ int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd); int virtio_reset(VDev *vdev); int virtio_setup_ccw(VDev *vdev); =20 +uint16_t virtio_tswap16(uint16_t x); +uint32_t virtio_tswap32(uint32_t x); +uint64_t virtio_tswap64(uint64_t x); + /* virtio-net.c */ int virtio_net_init(void *mac_addr); void virtio_net_deinit(void); --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086466; cv=none; d=zohomail.com; s=zohoarc; b=IpWtNnhJ80uxRGWe/bu6XN2OIm9OVdohKkYfAO1qzDXlwZZo6cjSyxPJFLf6DKzKE7Mr+z7SFrpsyOFsPg+lYKdE/S66lV2NWPt/rQ4EaE1fMOo9aXqQCKbg9wnBaa4kz2jFD0JaVD7MJoZThusa0dwdjpqyau2ZWUs4PWpDEIs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086466; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ceRnNxcq7t124Yzzu80ZDnrF7nMivIqDjsutHQ3GGvc=; b=IjIB4qFcDh4gq5JDecGKY6LR6zNe+MSNKbIE4GKuM79ssGwjydal+OCcJoSJ6Az/5zqwiRX6uV1mr/MSk/VX4+LNavO28S5Mix/QIpnSDFRVJiMbhSlVIUL5Ul2lhjW+d6vTLvuttVSw76w1+taf7sZ5wx/YMXRG+3glNkbVhPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086466188579.5119346882454; Tue, 18 Aug 2026 13:54:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQok-0007yJ-4F; Tue, 18 Aug 2026 16:53:54 -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 1wwQoa-0007v4-Ai; Tue, 18 Aug 2026 16:53:45 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wwQoY-0000je-5O; Tue, 18 Aug 2026 16:53:43 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67IJVsOp3584832; Tue, 18 Aug 2026 20:53:39 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4g2fsqtu56-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:39 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfRv5014379; Tue, 18 Aug 2026 20:53:38 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4g32tw5htm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:38 +0000 (GMT) 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 67IKra2l22610626 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:37 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DB22F58052; Tue, 18 Aug 2026 20:53:36 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5E2B558045; Tue, 18 Aug 2026 20:53:35 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:35 +0000 (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=ceRnNxcq7t124Yzzu 80ZDnrF7nMivIqDjsutHQ3GGvc=; b=K/HZiH86Ekg2z/SWiEnjOZ0qSHPK/CHv8 JMdxO7wKHZ8sQItDGWJDnniry25kp48vXSh+IN95EmpRcIFloXFdVyH89HtrdtL2 NFH7qAQl6DE1TDVbxVjjq1/c3Qse8twiSfgS3us8aoKvDg+h4W/S4P/3LlhQ0xDz 5zUUPnJh1SW8EpuDKUBHOPmStMx+T2Nx6YRdlrD7uiIPEhy7OD3Wt7fKjPjAt/Fc 7Bp0zxj2ThlEpK5veBoOAUsaMquqt4tvRD4MsN70SW5nKw3CKGb+d6gyd4E60Lgs gQM9f78UXiBWf7YwHJrHVXmJnmHQ7zf7qVuTxi3Bi/8Fbb3QKnWlg== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 4/7] pc-bios/s390-ccw: Add support for virtio-net-pci IPL Date: Tue, 18 Aug 2026 16:53:21 -0400 Message-ID: <20260818205324.580199-5-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX2mqIyKD/l2R1 QR6X4R2L03fP9z9IfjWXjwjdaQWvGxUZ+dGuUVAB6HMb2Xd3msKfH94vkqFM0BeqFJzt1vEHnWE Lu0peSzGm61R3yCrxjybUwnTl5IG9q6avCwLvYNAY/jraf9XURMDtsgr+k6KXhcVecLZSo56WnQ mq5fvKlJ42qJSTJrotJzn9/DQyJl9sh1/IXuigjmesRgpkoAteEXdy/FSN3yk9ZVRFnCY5B0ctq brggICwwivCN8dK88LC28PM/LLRZjLuO64wqc1tIj2iF6aJTNQHVbrgW0LH3a7gWxmsz/l3HzOZ Hlef9q/rSK7vNaTLJ++xXNsxLYerMeaNMKXdej5vrY3Yz8VtBeb8lOE59sjTSRaYezaEcMux2P/ maCaOVD4PZDHWmk6ocimdCQey794yngwSSMXK1UO6YU231cCjF6ptsEhLMd3d1owHXAyR7W5Vlh yta/NRI45jCWcsPJzrw== X-Proofpoint-ORIG-GUID: PmDhFsBvG4nOjCeUSoxbGp9SCwcLhzlW X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX/EPOxHbIVP3+ P9Q4XvHWZdgDNHg4NAxKHt1/CvSUpNFe5mVbuQ9HSudOLDE0amoGMP1zaFMpFMkrq8Qowl815Wm e08RdElpt6awrni91H2yO50ep/dSzps= X-Authority-Analysis: v=2.4 cv=DJe/JSNb c=1 sm=1 tr=0 ts=6a84c653 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=ctsVLiZ_AAAA:8 a=Im3OWcnwkaNWJq0cCQkA:9 a=3VCIHQLkQthbvTRuo98s:22 X-Proofpoint-GUID: PmDhFsBvG4nOjCeUSoxbGp9SCwcLhzlW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 spamscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=zycai@linux.ibm.com; helo=mx0a-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_H4=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086468708158500 Content-Type: text/plain; charset="utf-8" Enable network booting via virtio-net-pci by implementing PCI transport support for virtio-net. This patch also adds endianness handling for virtio PCI ring operations in little-endian to ensure correct behavior on s390x. Signed-off-by: Zhuoying Cai Reviewed-by: Jason J. Herne --- pc-bios/s390-ccw/main.c | 1 + pc-bios/s390-ccw/virtio-net.c | 37 +++++++++++++++++++++++------- pc-bios/s390-ccw/virtio-pci.c | 43 +++++++++++++++++++++++++++++++++++ pc-bios/s390-ccw/virtio-pci.h | 2 ++ 4 files changed, 75 insertions(+), 8 deletions(-) diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c index 8bc6e8eaa3..0eeb53a2bf 100644 --- a/pc-bios/s390-ccw/main.c +++ b/pc-bios/s390-ccw/main.c @@ -328,6 +328,7 @@ static void ipl_pci_device(void) } =20 switch (vdev->dev_type) { + case VIRTIO_ID_NET: case VIRTIO_ID_BLOCK: if (virtio_setup() =3D=3D 0) { zipl_load(); /* only return on error */ diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c index 3a9ae789cf..209f98a0e3 100644 --- a/pc-bios/s390-ccw/virtio-net.c +++ b/pc-bios/s390-ccw/virtio-net.c @@ -62,7 +62,16 @@ int virtio_net_init(void *mac_addr) rx_last_idx =3D 0; =20 vdev->guest_features[0] =3D VIRTIO_NET_F_MAC_BIT; - virtio_ccw_setup(vdev); + switch (virtio_get_device()->ipl_type) { + case S390_IPL_TYPE_CCW: + virtio_ccw_setup(vdev); + break; + case S390_IPL_TYPE_PCI: + virtio_pci_setup(vdev); + break; + default: + return -1; + } =20 if (!(vdev->guest_features[0] & VIRTIO_NET_F_MAC_BIT)) { puts("virtio-net device does not support the MAC address feature"); @@ -115,22 +124,30 @@ int recv(int fd, void *buf, int maxlen, int flags) VRing *rxvq =3D &vdev->vrings[VQ_RX]; int len, id; uint8_t *pkt; + uint16_t rx_used_idx, rx_avail_idx; + uint32_t rx_used_len, rx_used_id; + uint64_t rx_desc_addr; =20 - if (rx_last_idx =3D=3D rxvq->used->idx) { + rx_used_idx =3D virtio_tswap16(rxvq->used->idx); + if (rx_last_idx =3D=3D rx_used_idx) { return 0; } =20 - len =3D rxvq->used->ring[rx_last_idx % rxvq->num].len - virtio_net_hdr= _size; + rx_used_len =3D virtio_tswap32(rxvq->used->ring[rx_last_idx % rxvq->nu= m].len); + rx_used_id =3D virtio_tswap32(rxvq->used->ring[rx_last_idx % rxvq->num= ].id); + + len =3D rx_used_len - virtio_net_hdr_size; if (len > maxlen) { puts("virtio-net: Receive buffer too small"); len =3D maxlen; } - id =3D rxvq->used->ring[rx_last_idx % rxvq->num].id % rxvq->num; - pkt =3D (uint8_t *)(rxvq->desc[id].addr + virtio_net_hdr_size); + id =3D rx_used_id % rxvq->num; + rx_desc_addr =3D virtio_tswap64(rxvq->desc[id].addr); + pkt =3D (uint8_t *)(rx_desc_addr + virtio_net_hdr_size); =20 #if DEBUG_VIRTIO_NET /* Dump packet */ int i; - printf("\nbuf %p: len=3D%i\n", (void *)rxvq->desc[id].addr, len); + printf("\nbuf %p: len=3D%i\n", (void *)rx_desc_addr, len); for (i =3D 0; i < 64; i++) { printf(" %02x", pkt[i]); if ((i % 16) =3D=3D 15) { @@ -144,8 +161,10 @@ int recv(int fd, void *buf, int maxlen, int flags) memcpy(buf, pkt, len); =20 /* Mark buffer as available to the host again */ - rxvq->avail->ring[rxvq->avail->idx % rxvq->num] =3D id; - rxvq->avail->idx =3D rxvq->avail->idx + 1; + rx_avail_idx =3D virtio_tswap16(rxvq->avail->idx); + rxvq->avail->ring[rx_avail_idx % rxvq->num] =3D virtio_tswap16(id); + rx_avail_idx++; + rxvq->avail->idx =3D virtio_tswap16(rx_avail_idx); vring_notify(rxvq); =20 /* Move index to next entry */ @@ -164,6 +183,8 @@ bool virtio_net_setup(void) switch (virtio_get_device()->ipl_type) { case S390_IPL_TYPE_CCW: return virtio_ccw_net_setup(); + case S390_IPL_TYPE_PCI: + return virtio_pci_net_setup(); default: return false; } diff --git a/pc-bios/s390-ccw/virtio-pci.c b/pc-bios/s390-ccw/virtio-pci.c index f501252c81..c7d62766b8 100644 --- a/pc-bios/s390-ccw/virtio-pci.c +++ b/pc-bios/s390-ccw/virtio-pci.c @@ -52,6 +52,10 @@ void virtio_pci_id2type(VDev *vdev, uint16_t device_id) case 0x1001: vdev->dev_type =3D VIRTIO_ID_BLOCK; break; + case 0x1041: + case 0x1000: + vdev->dev_type =3D VIRTIO_ID_NET; + break; default: vdev->dev_type =3D 0; } @@ -199,6 +203,14 @@ static int virtio_pci_get_blk_config(void) return rc; } =20 +static int virtio_pci_get_net_config(void) +{ + VirtioNetConfig *cfg =3D &virtio_get_device()->config.net; + int rc =3D vpci_read_flex(d_cap.off, d_cap.bar, cfg, sizeof(VirtioNetC= onfig)); + + return rc; +} + static int virtio_pci_negotiate(void) { int i, rc; @@ -330,6 +342,7 @@ bool virtio_pci_is_supported(VDev *vdev) if (vdev->vendor_id =3D=3D PCI_VENDOR_VIRTIO) { switch (vdev->dev_type) { case VIRTIO_ID_BLOCK: + case VIRTIO_ID_NET: return true; default: return false; @@ -384,6 +397,11 @@ int virtio_pci_setup(VDev *vdev) vdev->cmd_vr_idx =3D 0; virtio_pci_get_blk_config(); break; + case VIRTIO_ID_NET: + vdev->nr_vqs =3D 2; + vdev->cmd_vr_idx =3D 0; + virtio_pci_get_net_config(); + break; default: puts("Unsupported virtio device"); return -ENODEV; @@ -458,3 +476,28 @@ int virtio_pci_setup_device(void) =20 return 0; } + +static bool find_pci_net_dev(void) +{ + if (!virtio_is_supported(virtio_get_device())) { + return false; + } + + if (virtio_get_device_type() !=3D VIRTIO_ID_NET) { + return false; + } + + return true; +} + +bool virtio_pci_net_setup(void) +{ + bool found =3D false; + + if (have_iplb || store_iplb(&iplb)) { + IPL_assert(iplb.pbt =3D=3D S390_IPL_TYPE_PCI, "IPL_TYPE_PCI expect= ed"); + found =3D find_pci_net_dev(); + } + + return found; +} diff --git a/pc-bios/s390-ccw/virtio-pci.h b/pc-bios/s390-ccw/virtio-pci.h index 33b683bd92..2c3136fd05 100644 --- a/pc-bios/s390-ccw/virtio-pci.h +++ b/pc-bios/s390-ccw/virtio-pci.h @@ -70,6 +70,8 @@ long virtio_pci_notify(VRing *vr); bool virtio_pci_is_supported(VDev *vdev); int virtio_pci_setup(VDev *vdev); int virtio_pci_setup_device(void); +bool virtio_pci_is_supported(VDev *vdev); +bool virtio_pci_net_setup(void); =20 int vpci_read_flex(uint64_t offset, uint8_t pcias, void *buf, int len); int vpci_read_bswap64(uint64_t offset, uint8_t pcias, uint64_t *buf); --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086502; cv=none; d=zohomail.com; s=zohoarc; b=EJqKnsOKOPrGcDap3EdTn0r0IixoH5k/DahRkdEGnXNJ3IjzUT69Q7xEzbZH+soSbQQifblBZOT1Ff8T3MgeF6iP6rzqrmA0pIJ4KecpKzqtS+vfdlwx85C9cMzwzCIljtLrOKb/Q1WYpUVpEUT8lKcbsVvhaJlWY6rDHo/9M9M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086502; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=aP9wmXRqnnY2CBEjuP0jtjd9JNEhdCbSSu2tAGzEIk4=; b=Wce1+etWqDQcXOnCkMCYuvcQ/fI5E6rD12ZrtIMEVl4YAqYUpNWcOz1NCWKOPYBL1AGZwQbmWPeMvtrLOV8I0h11PhKvZNDSq00HTt9hH18dq/BkbzG3EWOPPv4H0M/h2lZqOrA4z1MS7h1LEHqTQ0eSC4aJlwAZoDyFmwmt40Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086502170638.8487566200894; Tue, 18 Aug 2026 13:55:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQoj-0007xt-0z; Tue, 18 Aug 2026 16:53:53 -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 1wwQoZ-0007ui-KT; Tue, 18 Aug 2026 16:53:43 -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 1wwQoY-0000jq-3w; Tue, 18 Aug 2026 16:53:43 -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 67IJW7Mp1293771; Tue, 18 Aug 2026 20:53:41 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4g2frta88q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:40 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfKxV022628; Tue, 18 Aug 2026 20:53:40 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4g32eq5k0f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:39 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKrc9X26280558 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:39 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BA0CE58052; Tue, 18 Aug 2026 20:53:38 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 11A3258045; Tue, 18 Aug 2026 20:53:37 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:36 +0000 (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=aP9wmXRqnnY2CBEju P0jtjd9JNEhdCbSSu2tAGzEIk4=; b=Y4rWK8vZTfFE52NvgjHWKOox4bxk3MzqY JbjH5AKGF5q6ofFdouDDRXA0AhNEhTj+zYK6dPkArWjPXrYci8RYziPstKBLhp6c ynnsVS+nJmU1RG0/z9fsf2aJlfvSiC9OoeULE5MvqcVsmIGaRxBdt+6jnaOG1PGQ vVnpcNshHSr+8a5JjwuEC0oeO+rlpByxbcDV1GBcLfY8ImH79S3mkQJ+DIO34uK2 qKB5ELYOi6yhFJJ4q9FynYaljE/T3LoHrxOkML+tEXaoGvZy2FQXr8TLr4m57KVr VmSXJH7rG5moNDSFb/Q68fU8pp1ys0OMBF0qQMkz+qtm5C4MyJU/A== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 5/7] hw/virtio: Add "loadparm" property to virtio net PCI devices booting on s390x Date: Tue, 18 Aug 2026 16:53:22 -0400 Message-ID: <20260818205324.580199-6-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=OfaoyBTY c=1 sm=1 tr=0 ts=6a84c654 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=kEjPX4MDc84h39DGsG4A:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX6vzuVmNvazo+ +cH8j3IVqYy6zXP727QL+hqnn+z4rzPZjNL0xmZakLL3i6NGiDXBTETv7QwRArIwW5eCgPdxYf2 LaNr7/FV5+HXsmHUuQhGn/uwFtbFzTI= X-Proofpoint-GUID: xJ7rFLxf_xUSNQ0JAzgDqug4yipbyyx6 X-Proofpoint-ORIG-GUID: xJ7rFLxf_xUSNQ0JAzgDqug4yipbyyx6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX6Htt4csmTVp8 fqj9XhWrRD9r1D1lfegFXKX1alR0M4BDd5vcvw2j7NEn4YROFCvnrSZVSvcoW4kzkHkQx5pc5XU fJsJhKJrJzEU+rsuwg4DR2C2w9zfzW8ympwq8ZZ1cUx1r8sJCLnVPMH8rt5cK1amwQr3vnu5FG3 BQMApAiQGHR2SroGxDgNvL4FJ9yf6hDtWQlf9NppKa+hAT8YXDE6XCR51Qh5VUezxIYJNrX0pjc 0pVsP/jnMPb3n4/UVpsx5wwEfD2qDUzyvyouRRXiCA0zXyldM39LJS8rCsArwpuLmuVZCVt+KYp xmlapITzwfTgAPnDkxEbCZUWtfv7mhGnNVqhjEbaCiq0/MmCzRT/VnS5ZRiiQrFCFR2gac3gy/S 3ZACdaWQiHf2rvOqFe41eMIO4iA47CfXXN3oLBrxKpoQZ/C9/mLjYRALAcJCkpNJaUgh2atNKiv 5SIKyCfcumWoAfN+9jg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 phishscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=zycai@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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086505215158500 Content-Type: text/plain; charset="utf-8" s390x PCI IPL devices require a "loadparm" property. Add it to virtio-net-p= ci to support booting from it on s390x. Signed-off-by: Zhuoying Cai --- hw/virtio/virtio-net-pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c index fd3e0303f5..893d1905a9 100644 --- a/hw/virtio/virtio-net-pci.c +++ b/hw/virtio/virtio-net-pci.c @@ -77,6 +77,7 @@ static void virtio_net_pci_class_init(ObjectClass *klass,= const void *data) k->sriov_vf_user_creatable =3D true; set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); device_class_set_props(dc, virtio_net_properties); + pci_qdev_property_add_specifics(dc); vpciklass->realize =3D virtio_net_pci_realize; } =20 --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086512; cv=none; d=zohomail.com; s=zohoarc; b=mODVGAxMEPnx6Fwn2n+L86AuQ3/655Cb7wjxhbmdo1j/2mV0Wg72l+sO8Z0NvJtPZtVsGMUVQ0VdxVNq0W4eGcJah1wtGZwr7VTOTMLrTbBmUdmhYhasDjIV7Bvr2ePrvL65v2a6vXJOWjJKpmqNbOLipP+q0K3hLbBAvboU0ns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086512; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WbZUt51KHA9NwgZXv5rbrlcZZonj3r1OvqGvYCOYKm0=; b=FDBmFFgB35edHT9Q3aMKbPHwSVIj2lnEQZby5xBiRrMdxTuojmimFRWhtRQkzaU/rO9GCyXvwdZHKMtG1azxhPT9kYQm3/bnMffGCHcFd0B0NrUFoH1WvYTrsneg10/APhaSqAxzSUCHaSqqDy3iy0Fa7m1IeJ3YrxDopxIp86M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086512281479.963793248661; Tue, 18 Aug 2026 13:55:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQom-0007zY-6o; Tue, 18 Aug 2026 16:53:56 -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 1wwQob-0007vI-LQ; Tue, 18 Aug 2026 16:53:45 -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 1wwQoa-0000kG-3v; Tue, 18 Aug 2026 16:53:45 -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 67IJXPbp1296031; Tue, 18 Aug 2026 20:53:42 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4g2frta88t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:42 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 67IKfKcH001335; Tue, 18 Aug 2026 20:53:41 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4g33ek5e2j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:41 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKreDR31523392 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:40 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5C17B58054; Tue, 18 Aug 2026 20:53:40 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E196758045; Tue, 18 Aug 2026 20:53:38 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:38 +0000 (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=WbZUt51KHA9NwgZXv 5rbrlcZZonj3r1OvqGvYCOYKm0=; b=rf9H/G+stpG7TA00NeTCocsd1oPzDPWBs exNQQJT2eOn37Kkzr0clzPF3ItnvmSN0YhEFM6RMH9SIkAOjOrTt3ZRLjPlHzMo+ 4VSh8qg/2ehyvkWcTyg0hxudVdTOCggYszDM8SSvCqh4T8SdkKECM+FmqR+KLIh7 K9XmePREhdp92yPVKvhICPEtKblm0TQFevIALAGhTG2OcFXzCaBC6nH2wUdKqcdQ cWPugucQH0FJOrxUdO7/1UjQFR7+9gDA0ujhJH0XfHpxB1rnz2mE/oeSeKHDtbqg /4IOpwQKbRTmzkFJq2cZj0stQqHto300pO8TYYOqy/8/fDdl2fSeQ== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 6/7] tests/qtest: Add s390x virtio net PCI test to pxe-test.c Date: Tue, 18 Aug 2026 16:53:23 -0400 Message-ID: <20260818205324.580199-7-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=OfaoyBTY c=1 sm=1 tr=0 ts=6a84c656 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=PkLLOfym-WlFbigP99UA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX+UVNLWsY9dRY wDsQ/mBhk2CFWdpSRM8NuP0I5EDMOlRz2RQ/RPJai+xCsDxLuGEqDr67o/o+nEyTOWkXrAYZYIG ONutd3g7abGAwzbwDX/eLnahXpvOoJc= X-Proofpoint-GUID: eKzb7gmd1HMXj8BhxHe3B3lI65NqMB1D X-Proofpoint-ORIG-GUID: eKzb7gmd1HMXj8BhxHe3B3lI65NqMB1D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX9XrZl3W5fv6Y IimrHhSoueOMjIi49O9oGsm/CMmWBPwVbX4Pz5KCQPZqea9zIVoNHoIGnLWYcNIh9vZ3kOVIQlN OfW3bgw5ZWJVxXG534Vxq2CVMa01CarmMMVmeJBeIjkK3vekhDn8uj676On+Jan0IFPT7QGa/id O+PNsVpsGS65Y97skEtvHoWpYZ9I8DPYb5SCDWZyl/gUoS2TFQdz2p8DKk0vt0u1NNKtGdOjgMz nH5wU2E3of1rBtYGHwa788+HtH8kSbNOqOu/7b9FecdTwKZ77IVNGUioLjFD3dY3a++ewUtg7lk LKPy0jA47xO+PVmNAAKB1mlDqtwqjBmf25nN5ELq16cjpX8L1WrVEMCMhxe1bFzoaX8xammeRnS jeg+UEBYpsFx6aHKsVA0TSMYy4A2bXF6XpVmcvr9LCMCq5VvSZ923mBW+PNPB+P0GqhvJi82KJ8 dSCORvfH0nYMhU8uYUA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 phishscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=zycai@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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086512833158500 Content-Type: text/plain; charset="utf-8" Add test coverage for virtio-net-pci network booting on s390x by including it in the PXE test suite. The test verifies that PXE network booting works correctly with virtio-net-pci devices. Signed-off-by: Zhuoying Cai Tested-by: Joshua Daley --- tests/qtest/meson.build | 1 + tests/qtest/pxe-test.c | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index f7c7d06620..94e2555935 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -281,6 +281,7 @@ qtests_aarch64 =3D \ 'migration-test'] =20 qtests_s390x =3D \ + (slirp.found() ? ['pxe-test'] : []) + \ qtests_filter + \ ['boot-serial-test', 'drive_del-test', diff --git a/tests/qtest/pxe-test.c b/tests/qtest/pxe-test.c index a3f900fbea..d4b74e28cd 100644 --- a/tests/qtest/pxe-test.c +++ b/tests/qtest/pxe-test.c @@ -60,6 +60,7 @@ static testdef_t ppc64_tests_slow[] =3D { =20 static testdef_t s390x_tests[] =3D { { "s390-ccw-virtio", "virtio-net-ccw" }, + { "s390-ccw-virtio", "virtio-net-pci" }, { NULL }, }; =20 --=20 2.55.0 From nobody Mon Sep 28 00:09:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1787086510; cv=none; d=zohomail.com; s=zohoarc; b=iZBfoFACsVBoPzzEF2J3oY12j61Q8VxAmQpkATIj0sLbyQwmPpefb9f0eWNfI4YNdKEGmBBhifEcrm0DZvp5gm+jtBUjhr1ca5LmWr1Six4s0HtjfohVtPmceL/ZifdYZDKlvAs75GpmuLSL/SyOIAOVoUypzz+boJqQIOjfqW0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787086510; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=55UqOsX+jyCdvavlleLPW2TCH4Ig6ILq9h41NDbVAAk=; b=WU8g3mknz7hGDxO3aCe9991qMnWr1MSmBzFtYHijOrML1tYU6YrwEniYTVqdTSO17SQkSFgzvNk82PTDa+08exhWLFfcnRrGaMRBPkdUsk2VtJ/JTbM5PKtVvL/iHtM2HPZkTIxZe9d6Gw/fCFiaN8yoqXLUCCTk6Fn1vGpXJxk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787086510169716.1989381283636; Tue, 18 Aug 2026 13:55:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wwQom-00080F-Np; Tue, 18 Aug 2026 16:53:56 -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 1wwQod-0007va-Qc; Tue, 18 Aug 2026 16:53:47 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wwQob-0000kt-UJ; Tue, 18 Aug 2026 16:53:47 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67IJW2bo3584976; Tue, 18 Aug 2026 20:53:44 GMT 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 4g2fsqtu5e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:44 +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 67IKfKuN014393; Tue, 18 Aug 2026 20:53:43 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4g34ngd7bf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Aug 2026 20:53:43 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 67IKrgmm26411606 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Aug 2026 20:53:42 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F20E258045; Tue, 18 Aug 2026 20:53:41 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8448958050; Tue, 18 Aug 2026 20:53:40 +0000 (GMT) Received: from fedora-workstation.ibmuc.com (unknown [9.61.136.182]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 18 Aug 2026 20:53:40 +0000 (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=55UqOsX+jyCdvavll eLPW2TCH4Ig6ILq9h41NDbVAAk=; b=N0GATt6W/xyahZZAtGpNpSOM7hannSh5W j7Z0OJpV3ESlAGeMnlEiyTQVADRo+Yr456Rr0TYlLPQ1qGjhNpne1yxHE+QFZIqv ctG08x+Wmo0eVnzgrTjVoIWPtwXLZWfIT6cBo8ba7jnpoTMf9rCgTrXqBW+3yeXd dmi7S+SpDyByvEaprUWTrw4H8ekgR1coEZrOrNQ5rjfJrCo6bDs6nLee4Rueh00k 9BXOzM4N9SEPJlHAePk+C994MkVYkcy93jTmTtB0fdBOSvfPPOkVbNwtz47J/m/r JGq7IBLTQF61exwfAXv1b+8vLaWxK2zE76dvEu1L5ldznBy4BvZwg== From: Zhuoying Cai To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org Cc: mst@redhat.com, jrossi@linux.ibm.com, zycai@linux.ibm.com, borntraeger@linux.ibm.com, jjherne@linux.ibm.com, cohuck@redhat.com, farman@linux.ibm.com, mjrosato@linux.ibm.com, pasic@linux.ibm.com, farosas@suse.de, lvivier@redhat.com, pbonzini@redhat.com Subject: [PATCH v1 7/7] tests/functional/s390x: Add tests for virtio net PCI in test_pxelinux.py Date: Tue, 18 Aug 2026 16:53:24 -0400 Message-ID: <20260818205324.580199-8-zycai@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260818205324.580199-1-zycai@linux.ibm.com> References: <20260818205324.580199-1-zycai@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX2Fj9NNVKnNZ+ kX9ya2dbWwgcB+oZRQnGcRx4NJvnd78l16cEHfkQ6tY6eup6EtW5EAsfUL9bimR0amOMVz/l2U6 fxehdL/6WFgFU5CR+DHvbMfMTin260sBKx1gY5sF+w6gPKb9S9GkXv86qolFJvBMLkTxXW0j6Je SdlI8piQ9fRiJr4leWcQ3jHhCASiLlhTqTOnTwMQjM5R1IxDbT75zFEGlVCmVQ3Yp8gGWJif16e aU4ftGOyny0ybDM34VPIfgIDjwpswCTkKRr4Og2/wCtS/5ZCw7Vj5MEbgYnrZkwVcV1PiL+1uRP v9r4Yc2lO7F0EoA2fW3+kXmN+Gem18nVUqNlFb8nXy9pdcAW0dnDmwUX3rSvWxx6dq8sR9bBHMw S3pkTUJM9JwKkjXdXA4czx1RE6ARG0zA/F+hZX1OQjXpespDLG37lkRnNDF3hviX+GMVJ033Cn3 Q6+n5aTyySYxLguHS+g== X-Proofpoint-ORIG-GUID: P0gU-kdsyfszAN3OhWoWYNyR5LuTta3B X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDE1MCBTYWx0ZWRfX7En33FUFSHYw OpfbRwAOwynZd4hwfiXED6Z3kCPs/lfoly2q83wtPMm28FtXcOK0Hgs7Z93cjQ/DmawBy4u5Bb0 XdvF2zCMb/T5XzoEDecna09DKthlzlE= X-Authority-Analysis: v=2.4 cv=DJe/JSNb c=1 sm=1 tr=0 ts=6a84c658 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=Sv0fKeRqtYgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=Z6bpV0tWmYslb40Kif8A:9 X-Proofpoint-GUID: P0gU-kdsyfszAN3OhWoWYNyR5LuTta3B X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-18_04,2026-08-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 spamscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180150 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=zycai@linux.ibm.com; helo=mx0a-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_H4=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1787086510752158500 Content-Type: text/plain; charset="utf-8" Add test coverage for virtio-net-pci network booting on s390x by extending the pxelinux functional tests. This patch adds PCI variants of all existing pxelinux tests to verify that virtio-net-pci devices work correctly for network booting. Signed-off-by: Zhuoying Cai Tested-by: Joshua Daley --- tests/functional/s390x/test_pxelinux.py | 71 ++++++++++++++++++++----- 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/tests/functional/s390x/test_pxelinux.py b/tests/functional/s39= 0x/test_pxelinux.py index c00cce6a5a..7223364852 100755 --- a/tests/functional/s390x/test_pxelinux.py +++ b/tests/functional/s390x/test_pxelinux.py @@ -50,7 +50,8 @@ class S390PxeLinux(QemuSystemTest): '/images/kernel.img'), '480859574f3f44caa6cd35c62d70e1ac0609134e22ce2a954bbed9b110c06e0b') =20 - def pxelinux_launch(self, pl_name=3D'default', extra_opts=3DNone): + def pxelinux_launch(self, pl_name=3D'default', extra_opts=3DNone, + dev=3D'virtio-net-ccw'): '''Create a pxelinux.cfg file in the right location and launch QEM= U''' self.require_netdev('user') self.set_machine('s390-ccw-virtio') @@ -74,7 +75,7 @@ def pxelinux_launch(self, pl_name=3D'default', extra_opts= =3DNone): with open(cfg_fname, 'w', encoding=3D'utf-8') as f: f.write(PXELINUX_CFG_CONTENTS) =20 - virtio_net_dev =3D 'virtio-net-ccw,netdev=3Dn1,bootindex=3D1' + virtio_net_dev =3D f'{dev},netdev=3Dn1,bootindex=3D1' if extra_opts: virtio_net_dev +=3D ',' + extra_opts =20 @@ -85,9 +86,9 @@ def pxelinux_launch(self, pl_name=3D'default', extra_opts= =3DNone): self.vm.launch() =20 =20 - def test_default(self): + def do_test_default(self, dev): '''Check whether the guest uses the "default" file name''' - self.pxelinux_launch() + self.pxelinux_launch(dev=3Ddev) # The kernel prints its arguments to the console, so we can use # this to check whether the kernel parameters are correctly handle= d: wait_for_console_pattern(self, 'testoption=3Dteststring') @@ -95,36 +96,82 @@ def test_default(self): wait_for_console_pattern(self, 'Unpacking initramfs...') wait_for_console_pattern(self, 'Run /init as init process') =20 - def test_mac(self): + def do_test_mac(self, dev): '''Check whether the guest uses file name based on its MAC address= ''' self.pxelinux_launch(pl_name=3D'01-02-ca-fe-ba-be-42', - extra_opts=3D'mac=3D02:ca:fe:ba:be:42,loadpar= m=3D3') + extra_opts=3D'mac=3D02:ca:fe:ba:be:42,loadpar= m=3D3', + dev=3Ddev) wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x= ') =20 - def test_uuid(self): + def do_test_uuid(self, dev): '''Check whether the guest uses file name based on its UUID''' # Also add a non-bootable disk to check the fallback to network bo= ot: self.vm.add_args('-blockdev', 'null-co,size=3D65536,node-name=3Dd1= ', '-device', 'virtio-blk,drive=3Dd1,bootindex=3D0,l= oadparm=3D1', '-uuid', '550e8400-e29b-11d4-a716-446655441234') - self.pxelinux_launch(pl_name=3D'550e8400-e29b-11d4-a716-4466554412= 34') + self.pxelinux_launch(pl_name=3D'550e8400-e29b-11d4-a716-4466554412= 34', + dev=3Ddev) wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)') =20 - def test_ip(self): + def do_test_ip(self, dev): '''Check whether the guest uses file name based on its IP address'= '' self.vm.add_args('-M', 'loadparm=3D3') - self.pxelinux_launch(pl_name=3D'0A00020F') + self.pxelinux_launch(pl_name=3D'0A00020F', dev=3Ddev) wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x= ') =20 - def test_menu(self): + def do_test_menu(self, dev): '''Check whether the boot menu works for pxelinux.cfg booting''' self.vm.add_args('-boot', 'menu=3Don,splash-time=3D10') - self.pxelinux_launch(pl_name=3D'0A00') + self.pxelinux_launch(pl_name=3D'0A00', dev=3Ddev) wait_for_console_pattern(self, '[1] Nonexisting') wait_for_console_pattern(self, '[2] Debian') wait_for_console_pattern(self, '[3] Fedora') wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)') =20 + def test_default(self): + '''pxelinux.cfg "default" lookup via virtio-net-ccw''' + self.do_test_default('virtio-net-ccw') + + def test_default_pci(self): + '''pxelinux.cfg "default" lookup via virtio-net-pci''' + self.require_device('virtio-net-pci') + self.do_test_default('virtio-net-pci') + + def test_mac(self): + '''pxelinux.cfg MAC-address-based file lookup via virtio-net-ccw''' + self.do_test_mac('virtio-net-ccw') + + def test_mac_pci(self): + '''pxelinux.cfg MAC-address-based file lookup via virtio-net-pci''' + self.require_device('virtio-net-pci') + self.do_test_mac('virtio-net-pci') + + def test_uuid(self): + '''pxelinux.cfg UUID-based file lookup via virtio-net-ccw''' + self.do_test_uuid('virtio-net-ccw') + + def test_uuid_pci(self): + '''pxelinux.cfg UUID-based file lookup via virtio-net-pci''' + self.require_device('virtio-net-pci') + self.do_test_uuid('virtio-net-pci') + + def test_ip(self): + '''pxelinux.cfg IP-address-based file lookup via virtio-net-ccw''' + self.do_test_ip('virtio-net-ccw') + + def test_ip_pci(self): + '''pxelinux.cfg IP-address-based file lookup via virtio-net-pci''' + self.require_device('virtio-net-pci') + self.do_test_ip('virtio-net-pci') + + def test_menu(self): + '''pxelinux.cfg interactive boot menu via virtio-net-ccw''' + self.do_test_menu('virtio-net-ccw') + + def test_menu_pci(self): + '''pxelinux.cfg interactive boot menu via virtio-net-pci''' + self.require_device('virtio-net-pci') + self.do_test_menu('virtio-net-pci') =20 if __name__ =3D=3D '__main__': QemuSystemTest.main() --=20 2.55.0