From nobody Mon Feb 9 14:50:37 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1651890786; cv=pass; d=zohomail.com; s=zohoarc; b=j8tnenRR+HjV3LK95zVIakL6bANbB8+l1RwWR9RrFTeEVLsOMmYic/YBjxlhNl0K4zIpmvIN/cRS5JzvEiyqDfXm44lDAigpvNYOKuZ0Fur+qgzpql31SEbPXV42exsVbzrsBBmoBzZkufvvFJuQYs9VaV2BF2HerGVETwjELQw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651890786; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PT0kcUKTqXifSrWVO280f2P93PTUtAgbpG6/XXG1RCw=; b=J6veS/4XkaT6GQSpDHJL6/QoDovwnTLBQmwHaa5JuTYpLYD+PR+GrD/rP2umLkkUWXl5qn5yY/Kml79muYtJ4f53xGoFtls/ABaIZdKt0m4KXUUrkhdurfG0JcN1ovBZiHRMUqaLz46gzdzhPS/pnapddxAmcjWrnw8lIC9ykjk= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651890786357616.4113172361529; Fri, 6 May 2022 19:33:06 -0700 (PDT) Received: from localhost ([::1]:48086 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nnAFl-0003qw-B2 for importer@patchew.org; Fri, 06 May 2022 22:33:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46608) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nnABU-0004tD-TY for qemu-devel@nongnu.org; Fri, 06 May 2022 22:28:40 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:35158) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nnABR-0002T4-8o for qemu-devel@nongnu.org; Fri, 06 May 2022 22:28:40 -0400 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2471uQRj027467; Sat, 7 May 2022 02:28:33 GMT Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fwfj280pt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 07 May 2022 02:28:33 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2472BQES024288; Sat, 7 May 2022 02:28:32 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fwf700tpe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 07 May 2022 02:28:32 +0000 Received: from BYAPR10MB3287.namprd10.prod.outlook.com (2603:10b6:a03:15c::11) by DM5PR10MB1370.namprd10.prod.outlook.com (2603:10b6:3:f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Sat, 7 May 2022 02:28:30 +0000 Received: from BYAPR10MB3287.namprd10.prod.outlook.com ([fe80::c89:e3f5:ea4a:8d30]) by BYAPR10MB3287.namprd10.prod.outlook.com ([fe80::c89:e3f5:ea4a:8d30%2]) with mapi id 15.20.5227.021; Sat, 7 May 2022 02:28:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=PT0kcUKTqXifSrWVO280f2P93PTUtAgbpG6/XXG1RCw=; b=cQXHrMYJcIkCL57pB4TpNU1hneWzEQaClhx7+5mdB1l1dYO6emdkycBCFLS0CyQLHjkO 4lcU+NPhCrEIkqTcQMv0n/J0MMrs8RAj/1jieGKibMCa7mEToQ1kSCYP60MUCm2I/apE D2koi/8yRuINYgdDRl7N/gRwuuI9Z5vzR7Qsvbuf/lUQy87jC3qAuNzCAMlFzzgtsEXH 2krX19qhMHy4PuvtadvMJar/kdcC6btmqW+g+6OkoMvjOMy0jaeuMs0QaaVW5GPrzJTa cGc57QzookiGzgMYHs8hL4EIcwvh/NewxnQlompVI99Y1ThcdigVmOLfY3dMpIEa7VXg Rg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KJA8cJJbklT/+G3oy85Bz89LJWt4+lp9Cyyfu0f5WifN1V0w/IR8/PqvlanzdCzIQ534JpZCbgmcSB14yJqmAiCMZfSbnhm4IhGH+vbuw7I34YIXVDbpuSC8Bc6Blg0r31EpOd1PWLrxdDvZRiLtGATON+Nr5Mw6G2+xnpUtv9KGHJIPOSqDFPqFTr+kjMWFzOWCdVo/66XqrbVMlgofJZ6heRpMdp3oUIGzjd547ItqSkTHM/GqcIpJEnbayMYjd3iZT4+274r2iHCYvuYROpglLf1lIMU99qI0ToKoheEPTwLZ2HfPHBIV0ENO7ViW+ILJnnG1FiVUaoXJrEuzeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PT0kcUKTqXifSrWVO280f2P93PTUtAgbpG6/XXG1RCw=; b=ACtCnT32ymNyHFWtJ35WLDQlYm6vz5smv151RtVV1wfy7Ew+1tcpmgGPemdw7v1V9qaoVWcePoe7jeKpcuQU0aicdU8qz9TmNeYPhn4buShXLjJuZANUYx+kZv6yaB98wpPZWtbYPcDdNGkOikQoFIoc5Uja6ewroUHxYzlZozf5WUS85y/LAzMl2EW4wCkQiFWnJnA2OSaCLxFsYobbdOc4GXbCKdklbpCDOPorcsoyFt059xIKnvy6mbDydOv6+CY4tR8ljPymJgNsC4GzRxJLRbVcc4FrlrVITHRqmn2nGQJej6elZfoA4KmiWGgzLTksd7YmH1+0S56PDhVbmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PT0kcUKTqXifSrWVO280f2P93PTUtAgbpG6/XXG1RCw=; b=Tfe0EpvKbXsCXhlFmX4DsIrqfsGCNYw/F73c3Pbo6M3inJYfc2CMkLtQW5GLKi7yWODUTM0zv2K3oRSL+tRPZv3WZ6HDWerMaGc+UUbmivTfybWvex2MWngVzrxbvvxL0X4vQNzOCUdG228dy39TRjdEeRC+0Wvu9Hg7r05vmYI= From: Si-Wei Liu To: qemu-devel@nongnu.org Cc: jasowang@redhat.com, mst@redhat.com, eperezma@redhat.com, sgarzare@redhat.com, eli@mellanox.com, si-wei.liu@oracle.com Subject: [PATCH v4 2/7] virtio-net: align ctrl_vq index for non-mq guest for vhost_vdpa Date: Fri, 6 May 2022 19:28:13 -0700 Message-Id: <1651890498-24478-3-git-send-email-si-wei.liu@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1651890498-24478-1-git-send-email-si-wei.liu@oracle.com> References: <1651890498-24478-1-git-send-email-si-wei.liu@oracle.com> X-ClientProxiedBy: DM6PR03CA0041.namprd03.prod.outlook.com (2603:10b6:5:100::18) To BYAPR10MB3287.namprd10.prod.outlook.com (2603:10b6:a03:15c::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8e1b554e-787c-44ef-de09-08da2fd14668 X-MS-TrafficTypeDiagnostic: DM5PR10MB1370:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 462cilQ0Jk90mvccIdw4M9u+WrAVB5JEd0QRG1rus/yvU5UNWO9IxteVjzpe71ZrNnbC8UjhnIk3YI8XpF1qFOZEStygBkOTc7wlXJMF5wq/ByBX2Yw0NEBBRJ+N8dhpHAJ1qRMh2hvVoap+3ZdKWR1RhglYzE31BkSoVj5+3lu7Zac285hEvu/z6qBJl23jaw0Lq1jvY+8RbNgqZSZmINQRtDtB0YQU2/hrU+0UDcNnqOJhEaXqTVPXxQ6HifEQYpr+v1dnSfdqtsSfPLWgqni5mKrDa1ziD0bcLl8yqfgQOYNJqH7Olm4AnYnl/LmgOdzzrGOzLuz0AazTCW0cLsfE5efDiQQnSC+RgbgnaBblhN6EXNxMHJtol9/g5r7UxvaKjVa4ZqrFzY1K1PGSlD8OC2PHi5WAcd1L4gn0nYTKNqAk52/GOPjZRTmN81yIh4f5uCI+YwC7zbLNr3ADMgr79yxtK7l11PFpsNAQluLV2PwUUqMr8ZrKf6JFNR5bmzs0it2dCFNDmtLhhS9OIax1mCXHcMIw2DwEwmq4O7fISLk36qZTdmdeMvxBWaahd1z4URgECVhLEmUKnswxRFkhJtSkkapAqYYCTzwns7g9gf7iHqM1hVVBbCPPWkTON69qG7p4Fj4/cmL7tVqd8cHB243kd7wv0+GQ8X3tZ95XrbbMXkVjpveDtL+Xcf+Y+eCFMW2kForuv9yk8SWqCw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB3287.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(83380400001)(52116002)(6666004)(508600001)(5660300002)(6506007)(6486002)(8936002)(186003)(86362001)(38100700002)(38350700002)(2616005)(316002)(8676002)(6916009)(66476007)(4326008)(66556008)(2906002)(66946007)(26005)(6512007)(107886003)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nZz4F6ac9gPwy2G3gudlYziXE6DgIzebJ1MiokSGnaY8dtQ+/JCm7KNRf94u?= =?us-ascii?Q?I7KyGMZCj0q/Scwb829s2X4kYDRWecnDrAWKQLU7SwhJoPFdzqh2NT98WqEw?= =?us-ascii?Q?8hKdmJYwUgj7jwcBtnX6dxqJ4i0cYnc3M9N6McXXkLpGKXzNlo2tc3p9g+t8?= =?us-ascii?Q?4NAhGt2mjIjWnvG2Ak19ahAUo8pF03fNlYHrtzisXZCKY/nVeIdiG0gaOmfc?= =?us-ascii?Q?55Q3AT9XlwPmuX1W24djotssEiLZuUqRRUscXhFxm6lvhcXtbyR2MjNsAQn3?= =?us-ascii?Q?C03UUCkBWgZ8p0YDlB3QrvC1c3UjYrtuWm1Y8DE6EpEEgmR5enoopSK/dMIu?= =?us-ascii?Q?0QqCn9Jo6eHc/ynDRNP8JDNaawVI1EBQ9vGxLZadYjj313vKkPzFQc7tLgMi?= =?us-ascii?Q?wsaJQdbhNnxZP8GqKc5QATVP1HgHYKUaLKe4hBZ8Jxwh0Sru3rB8StFFGWrp?= =?us-ascii?Q?WiadJCsIPU7x7kObXXz137AFtNmHym/5xMdmIhi0FWYekLioo890EiGnHLWi?= =?us-ascii?Q?F4tgL8HOea9BFQMEioAJurpvmAzooHfKEL7WSPlV/o59gnXthM8GPO8+f652?= =?us-ascii?Q?KI4a9VSCoPC7EioNi4M+Rw2iksrMEx4o+J/IAsvKyolcJEr0PQOnZLEE3Jxo?= =?us-ascii?Q?sxuJUMM9ugBOP/niBbmMeFKl1Fz3b0NqeEsBrBjPqRrnjd1B7Lwsjyc4xibm?= =?us-ascii?Q?CaIpa40D3ohaBEaE2imWIko9hag9IuG2w3sFe08eq1XUOEpAGAr5boq7NTcX?= =?us-ascii?Q?1Us7WQ2Tu/9uqziq23HWgED/4d1skKl7P71J8tnFSmMvckEB3m9qIYro38jj?= =?us-ascii?Q?Y6o+O5n7+6wG2KP1qwnlWXu1NZPMxw8ANAEhw2hHs3AUEotc7f6hQyZSfqDV?= =?us-ascii?Q?a4gnrGsrriHpEDXZeNfl8X24HFOtBIW1VRrRp50dkWnMo1HVURA42lvOj5Qp?= =?us-ascii?Q?4RVWVJoJrJEBUalh9aSavCXis9+qUPxlOViFtAnFASPppV3X5auJVKQDad/Z?= =?us-ascii?Q?pJ0aG6nYSxe6huq3UEPqNdeS6+h+TqIza3V82irF7IBogxRdwSR0hq0b8hf1?= =?us-ascii?Q?4XkzgfgHCBtFX/hYWKajBLx4GyRonrWUFHjr7pDmYIP881JCqyIqSfiACrME?= =?us-ascii?Q?6K4WhWGRbAF6TGGuFUvu8M2UMbutMdkg8oLpJ+62UmFhZr1Eu4aOYfCHDigO?= =?us-ascii?Q?dyQuqVHxDfO66pwoNcx7sErXOriqzOhQVlvtp4djJtK7X73QAFDTgJAMPsfn?= =?us-ascii?Q?zC3mX1PqGS+BEu8X1yB6W/yAlQu9VNRnmasAqhozoxFvePJ6PZ7LBSBkHn3P?= =?us-ascii?Q?9yOg+yQRw4go+6Na+BNqBnsXhItb0ABnZx0ZHJBHA84xUYdKilbI5+ke76PL?= =?us-ascii?Q?IAYIu/8T7i+3d9YGfaDiUNOHfkFQtJHJ+Eve7V2ChsF55nn2Y7NcpmiOzeVD?= =?us-ascii?Q?DejrSqaPck6LKvvI8XzPD3EiXBHgGyIYDgjyAmzwerFQj6odSc2F+886s845?= =?us-ascii?Q?p3/jAo59SLfd4GRrsNS6V6+1U7K0t4/sTSVMT4KzdjeKyvwzjGkMVzYHdkkJ?= =?us-ascii?Q?H10iYsU3eqUAgV2oUd9K1s6I6Z4uBMX/CgItJ1IRkt7jqhZQ97xiaW8quuBR?= =?us-ascii?Q?rWl32g433P+XAdTt3JYZONX1Up4RDdTWnEx8xPyyOTKdtdzl11k8SzSIt3nx?= =?us-ascii?Q?cjKRETVybxEGl19J/ca/xcBbDoPF6EL1y/ov8MrjWY8bZpSFcp1RZLbw4Xj1?= =?us-ascii?Q?UqipTgGl0TzMhse+vRbGLY1Ct15lbW8=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e1b554e-787c-44ef-de09-08da2fd14668 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3287.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2022 02:28:30.3075 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YX2itu6I67ZBct4N+n6eSY8frxgntE0p31ZaYJGJK26TWOxUXGU1yHs9Y6rL8AKp7Xopj3Ed5wBCcBNj7ruyrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR10MB1370 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-05-06_07:2022-05-05, 2022-05-06 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205070012 X-Proofpoint-ORIG-GUID: GlCFG5-b0ekb536C6pfQKfh1JMEFmmM8 X-Proofpoint-GUID: GlCFG5-b0ekb536C6pfQKfh1JMEFmmM8 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=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=si-wei.liu@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1651890788194100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With MQ enabled vdpa device and non-MQ supporting guest e.g. booting vdpa with mq=3Don over OVMF of single vqp, below assert failure is seen: ../hw/virtio/vhost-vdpa.c:560: vhost_vdpa_get_vq_index: Assertion `idx >=3D= dev->vq_index && idx < dev->vq_index + dev->nvqs' failed. 0 0x00007f8ce3ff3387 in raise () at /lib64/libc.so.6 1 0x00007f8ce3ff4a78 in abort () at /lib64/libc.so.6 2 0x00007f8ce3fec1a6 in __assert_fail_base () at /lib64/libc.so.6 3 0x00007f8ce3fec252 in () at /lib64/libc.so.6 4 0x0000558f52d79421 in vhost_vdpa_get_vq_index (dev=3D, id= x=3D) at ../hw/virtio/vhost-vdpa.c:563 5 0x0000558f52d79421 in vhost_vdpa_get_vq_index (dev=3D, id= x=3D) at ../hw/virtio/vhost-vdpa.c:558 6 0x0000558f52d7329a in vhost_virtqueue_mask (hdev=3D0x558f55c01800, vdev= =3D0x558f568f91f0, n=3D2, mask=3D) at ../hw/virtio/vhost.c:1= 557 7 0x0000558f52c6b89a in virtio_pci_set_guest_notifier (d=3Dd@entry=3D0x558= f568f0f60, n=3Dn@entry=3D2, assign=3Dassign@entry=3Dtrue, with_irqfd=3Dwith= _irqfd@entry=3Dfalse) at ../hw/virtio/virtio-pci.c:974 8 0x0000558f52c6c0d8 in virtio_pci_set_guest_notifiers (d=3D0x558f568f0f60= , nvqs=3D3, assign=3Dtrue) at ../hw/virtio/virtio-pci.c:1019 9 0x0000558f52bf091d in vhost_net_start (dev=3Ddev@entry=3D0x558f568f91f0,= ncs=3D0x558f56937cd0, data_queue_pairs=3Ddata_queue_pairs@entry=3D1, cvq= =3Dcvq@entry=3D1) at ../hw/net/vhost_net.c:361 10 0x0000558f52d4e5e7 in virtio_net_set_status (status=3D, n= =3D0x558f568f91f0) at ../hw/net/virtio-net.c:289 11 0x0000558f52d4e5e7 in virtio_net_set_status (vdev=3D0x558f568f91f0, stat= us=3D15 '\017') at ../hw/net/virtio-net.c:370 12 0x0000558f52d6c4b2 in virtio_set_status (vdev=3Dvdev@entry=3D0x558f568f9= 1f0, val=3Dval@entry=3D15 '\017') at ../hw/virtio/virtio.c:1945 13 0x0000558f52c69eff in virtio_pci_common_write (opaque=3D0x558f568f0f60, = addr=3D, val=3D, size=3D) at .= ./hw/virtio/virtio-pci.c:1292 14 0x0000558f52d15d6e in memory_region_write_accessor (mr=3D0x558f568f19d0,= addr=3D20, value=3D, size=3D1, shift=3D, mas= k=3D, attrs=3D...) at ../softmmu/memory.c:492 15 0x0000558f52d127de in access_with_adjusted_size (addr=3Daddr@entry=3D20,= value=3Dvalue@entry=3D0x7f8cdbffe748, size=3Dsize@entry=3D1, access_size_m= in=3D, access_size_max=3D, access_fn=3D0x558f= 52d15cf0 , mr=3D0x558f568f19d0, attrs=3D...) = at ../softmmu/memory.c:554 16 0x0000558f52d157ef in memory_region_dispatch_write (mr=3Dmr@entry=3D0x55= 8f568f19d0, addr=3D20, data=3D, op=3D, attrs= =3Dattrs@entry=3D...) at ../softmmu/memory.c:1504 17 0x0000558f52d078e7 in flatview_write_continue (fv=3Dfv@entry=3D0x7f8accb= c3b90, addr=3Daddr@entry=3D103079215124, attrs=3D..., ptr=3Dptr@entry=3D0x7= f8ce6300028, len=3Dlen@entry=3D1, addr1=3D, l=3D, mr=3D0x558f568f19d0) at /home/opc/qemu-upstream/include/qemu/host-util= s.h:165 18 0x0000558f52d07b06 in flatview_write (fv=3D0x7f8accbc3b90, addr=3D103079= 215124, attrs=3D..., buf=3D0x7f8ce6300028, len=3D1) at ../softmmu/physmem.c= :2822 19 0x0000558f52d0b36b in address_space_write (as=3D, addr=3D= , attrs=3D..., buf=3Dbuf@entry=3D0x7f8ce6300028, len=3D) at ../softmmu/physmem.c:2914 20 0x0000558f52d0b3da in address_space_rw (as=3D, addr=3D, attrs=3D..., attrs@entry=3D..., buf=3Dbuf@entry=3D0x7f8ce6300028, len=3D, is_write=3D) at ../softmmu/physmem.c:2924 21 0x0000558f52dced09 in kvm_cpu_exec (cpu=3Dcpu@entry=3D0x558f55c2da60) at= ../accel/kvm/kvm-all.c:2903 22 0x0000558f52dcfabd in kvm_vcpu_thread_fn (arg=3Darg@entry=3D0x558f55c2da= 60) at ../accel/kvm/kvm-accel-ops.c:49 23 0x0000558f52f9f04a in qemu_thread_start (args=3D) at ../u= til/qemu-thread-posix.c:556 24 0x00007f8ce4392ea5 in start_thread () at /lib64/libpthread.so.0 25 0x00007f8ce40bb9fd in clone () at /lib64/libc.so.6 The cause for the assert failure is due to that the vhost_dev index for the ctrl vq was not aligned with actual one in use by the guest. Upon multiqueue feature negotiation in virtio_net_set_multiqueue(), if guest doesn't support multiqueue, the guest vq layout would shrink to a single queue pair, consisting of 3 vqs in total (rx, tx and ctrl). This results in ctrl_vq taking a different vhost_dev group index than the default. We can map vq to the correct vhost_dev group by checking if MQ is supported by guest and successfully negotiated. Since the MQ feature is only present along with CTRL_VQ, we ensure the index 2 is only meant for the control vq while MQ is not supported by guest. Fixes: 22288fe ("virtio-net: vhost control virtqueue support") Suggested-by: Jason Wang Signed-off-by: Si-Wei Liu Acked-by: Jason Wang --- hw/net/virtio-net.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index ffb3475..f0bb29c 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -14,6 +14,7 @@ #include "qemu/osdep.h" #include "qemu/atomic.h" #include "qemu/iov.h" +#include "qemu/log.h" #include "qemu/main-loop.h" #include "qemu/module.h" #include "hw/virtio/virtio.h" @@ -3171,8 +3172,22 @@ static NetClientInfo net_virtio_info =3D { static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx) { VirtIONet *n =3D VIRTIO_NET(vdev); - NetClientState *nc =3D qemu_get_subqueue(n->nic, vq2q(idx)); + NetClientState *nc; assert(n->vhost_started); + if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx =3D=3D 2) { + /* Must guard against invalid features and bogus queue index + * from being set by malicious guest, or penetrated through + * buggy migration stream. + */ + if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ)) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: bogus vq index ignored\n", __func__); + return false; + } + nc =3D qemu_get_subqueue(n->nic, n->max_queue_pairs); + } else { + nc =3D qemu_get_subqueue(n->nic, vq2q(idx)); + } return vhost_net_virtqueue_pending(get_vhost_net(nc->peer), idx); } =20 @@ -3180,8 +3195,22 @@ static void virtio_net_guest_notifier_mask(VirtIODev= ice *vdev, int idx, bool mask) { VirtIONet *n =3D VIRTIO_NET(vdev); - NetClientState *nc =3D qemu_get_subqueue(n->nic, vq2q(idx)); + NetClientState *nc; assert(n->vhost_started); + if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_MQ) && idx =3D=3D 2) { + /* Must guard against invalid features and bogus queue index + * from being set by malicious guest, or penetrated through + * buggy migration stream. + */ + if (!virtio_vdev_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ)) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: bogus vq index ignored\n", __func__); + return; + } + nc =3D qemu_get_subqueue(n->nic, n->max_queue_pairs); + } else { + nc =3D qemu_get_subqueue(n->nic, vq2q(idx)); + } vhost_net_virtqueue_mask(get_vhost_net(nc->peer), vdev, idx, mask); } --=20 1.8.3.1