From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798012; cv=none; d=zohomail.com; s=zohoarc; b=FrWINZ5hZUrI4/Ws6vYh3DQWklmRh2BykaFZhRriR8lxD2GuMtfnlL7FlyXQWcOUGAJAVaCf0GqsH3Yvnc4+p6OexFpeDQNF8UFYATjGFZU+9FLpVd32IDYfsbyulAs0iRmtDsCPxFuu5c5hV8zQpSTZHppeF8h9vZ7aifRZl9g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798012; h=Content-Transfer-Encoding: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=i/ARnzowR8/1MtquPdbmvNaw9Dc/8NFz48hU5VEL98c=; b=ZKushLj/0+KuJWp1faJCArcDjAuOY6ho12n+Ovde04xTDDORaUCq1R1eYO4NKNppkofZ0xO9Vf8hpjLvDWmTksLPzfcQhm59LyB+ljW2I55TmVvFYBqNULHXNq5s2Cbtwo+zaaSSBWtl693r+LC6K1BdPip3JH5vWPw+Ldp8vKk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798012009326.94510794235134; Mon, 9 Mar 2020 16:53:32 -0700 (PDT) Received: from localhost ([::1]:51532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSDB-00068T-Tz for importer@patchew.org; Mon, 09 Mar 2020 19:53:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35010) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSC9-00051e-VZ for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSC8-0006IT-LX for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:25 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:54904) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSC8-0006AI-Ep for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:24 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NgJxw103195; Mon, 9 Mar 2020 23:52:15 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 2ym3jqj5kh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:15 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqF8B102211; Mon, 9 Mar 2020 23:52:15 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 2ymun81bqt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:14 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqDLC008416; Mon, 9 Mar 2020 23:52:13 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:13 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=i/ARnzowR8/1MtquPdbmvNaw9Dc/8NFz48hU5VEL98c=; b=uMcIIEXSchY1PrjanWozt/Dky82fjwT7vNGlils6PEemAqWcFObaIobR826YpQZF0ttV OVrfL/ekOk85jmx+J4PyRkuObB/6ZEQ5Gs4mYoQXca/yUbYbHI6cY20CDOV2zVPELhHX qLJSyMJA1niSG802DqJ2lBolfQheo20f+yqE9z8Ew7ddDtxSlZ3QKbCBfiWdSVJAaPcz xnxO68FVRyMjo9kkUHWQgCblclU/hkoQVLm5KqzjIzvLVRS0wwki9iLyH8cX8hsG3EMJ MXGN5uy5H+m+tlqLq0FGAU3Nhi6T3i6A6SZ/GOs0ZMzr/sbZv4kGIFl25lWZeSGkIY3l Tw== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 01/14] hw/i386/vmport: Propagate IOPort read to vCPU EAX register Date: Tue, 10 Mar 2020 01:53:58 +0200 Message-Id: <20200309235411.76587-2-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 suspectscore=1 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1011 priorityscore=1501 mlxscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=1 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" vmport_ioport_read() returns the value that should propagate to vCPU EAX register when guest reads VMPort IOPort (i.e. By x86 IN instruction). However, because vmport_ioport_read() calls cpu_synchronize_state(), the returned value gets overridden by the value in QEMU vCPU EAX register. i.e. cpu->env.regs[R_EAX]. To fix this issue, change vmport_ioport_read() to explicitly override cpu->env.regs[R_EAX] with the value it wish to propagate to vCPU EAX register. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 1f31e27c8aa4..9319720e8204 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -72,25 +72,36 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr= addr, =20 eax =3D env->regs[R_EAX]; if (eax !=3D VMPORT_MAGIC) { - return eax; + goto out; } =20 command =3D env->regs[R_ECX]; trace_vmport_command(command); if (command >=3D VMPORT_ENTRIES || !s->func[command]) { qemu_log_mask(LOG_UNIMP, "vmport: unknown command %x\n", command); - return eax; + goto out; } =20 - return s->func[command](s->opaque[command], addr); + eax =3D s->func[command](s->opaque[command], addr); + +out: + /* + * The call above to cpu_synchronize_state() gets vCPU registers values + * to QEMU but also cause QEMU to write QEMU vCPU registers values to + * vCPU implementation (e.g. Accelerator such as KVM) just before + * resuming guest. + * + * Therefore, in order to make IOPort return value propagate to + * guest EAX, we need to explicitly update QEMU EAX register value. + */ + cpu->env.regs[R_EAX] =3D eax; + return eax; } =20 static void vmport_ioport_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - X86CPU *cpu =3D X86_CPU(current_cpu); - - cpu->env.regs[R_EAX] =3D vmport_ioport_read(opaque, addr, 4); + vmport_ioport_read(opaque, addr, 4); } =20 static uint32_t vmport_cmd_get_version(void *opaque, uint32_t addr) --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798091; cv=none; d=zohomail.com; s=zohoarc; b=BG/obYq1NGAxzUaEUbtobIAxRRTdESSIxBb8Wsa4PSwugSDzy/DQHhTnlQqnhVSvmeH2c6BVbAm0HKqOlqsppa89v4O3rxnWpAyFY0lPzHW7cFdXlmQRQ10M54mF1Ey9q1SSP6ceAyxf+ZaPGpmaSC+WEsg77SXfli45AEg4FLA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798091; h=Content-Transfer-Encoding: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=RiGzcldj+3+tktzDcpK75N8cjWY3hW0sB90AU/C1KRI=; b=UHPYZEon3VnFlQF/9ZWqXrvmPRRyp5hmtNc5XhI7QCXJSjJPqDAlVhO3EFoRcP3RgxPRVJHoVm0EW9oY2mfD6/chZrWy9XPYGIFZS4NfLEb1Z/NudU9OWXgROw+xq6BkLG+eBYIOs24qLcAbH2n+YogNuh+whM5cFRzOC8Cbtjg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798091923253.04255293508015; Mon, 9 Mar 2020 16:54:51 -0700 (PDT) Received: from localhost ([::1]:51600 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSEU-0008U6-JS for importer@patchew.org; Mon, 09 Mar 2020 19:54:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35037) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCA-00051g-FC for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSC9-0006JQ-Fa for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:26 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:55096) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSC9-0006Id-9A for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:25 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqOid028646; Mon, 9 Mar 2020 23:52:24 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 2ym3jqj5kt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:24 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Nh6MC037556; Mon, 9 Mar 2020 23:52:18 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3020.oracle.com with ESMTP id 2ymndg0bfq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:17 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqGl4010809; Mon, 9 Mar 2020 23:52:16 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:16 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=RiGzcldj+3+tktzDcpK75N8cjWY3hW0sB90AU/C1KRI=; b=A0NVaput3oU8d5xhNyfVSuzfo0XZ3KZVdIL5hIv1cnKjR0s0UfjnbCnXZ7WcGM86aaFA 8yEJ+rBFhMW9A9sRR7Gda2n7b7ZwveUNg+/M+JATjyyWBDgBKSidEBy3xA+GccZdiHLb P65+1jUi23+LZAj0VQ4yXNUCb/VPQjwRFS+AVS/P/bx2Lek/NWuXXo4CGM2tdPuKKu6v EK9sOMUtUw5hE79jyHBGYmb0MKZkARAkuld9d1EUsxL0DTXqzFU6EdMGkPytPv2T8w0z muq7k3Uw2Zk6OwELASBcsPweKqbBjW1BRgSUwrzYUBWRxQkjdHfAM2O4TqOY+NkNFD1I Uw== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 02/14] hw/i386/vmport: Set EAX to -1 on failed and unsupported commands Date: Tue, 10 Mar 2020 01:53:59 +0200 Message-Id: <20200309235411.76587-3-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 bulkscore=0 mlxscore=0 suspectscore=1 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1015 priorityscore=1501 mlxscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=1 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This is used as a signal for VMware Tools to know if a command it attempted to invoke, failed or is unsupported. As a result, VMware Tools will either report failure to user or fallback to another backdoor command in attempt to perform some operation. A few examples: * open-vm-tools TimeSyncReadHost() function fallbacks to CMD_GETTIMEFULL command when CMD_GETTIMEFULL_WITH_LAG fails/unsupported. * open-vm-tools Hostinfo_NestingSupported() function verifies EAX !=3D -1 to check for success. * open-vm-tools Hostinfo_VCPUInfoBackdoor() functions checks if reserved-bit is set to indicate command is unimplemented. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 9319720e8204..a78e20040a79 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -72,6 +72,7 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr a= ddr, =20 eax =3D env->regs[R_EAX]; if (eax !=3D VMPORT_MAGIC) { + eax =3D UINT32_MAX; goto out; } =20 @@ -79,6 +80,7 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr a= ddr, trace_vmport_command(command); if (command >=3D VMPORT_ENTRIES || !s->func[command]) { qemu_log_mask(LOG_UNIMP, "vmport: unknown command %x\n", command); + eax =3D UINT32_MAX; goto out; } =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798172; cv=none; d=zohomail.com; s=zohoarc; b=B3GzgsWIZCqb7Kf0gpbypco1d1rGs9rFrVnA+vhFysN0WW0Ps8QqtjvinuGEDNFxRAiVfLuXhFE46smiwqgWwZgGDOWkbVl8beCL7K7VKOJLGxwGiK0jHJUfXnsaO9RV+f2WsxuRboXioT9cKv5fEPOlfHgqEc9SYY0ouIZIarU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798172; h=Content-Transfer-Encoding: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=UVlAki5BrSxj+rUNTGM3HT7wk0gYhvDL4hu8kYSSeLA=; b=W9qAYM82bEADeqfTN2VrOsOr+JYHhsqEG2ULAGZdT1A/4hqyZf6h2ZyiCBNBoyCFnwWOEhg7bd3ZepJMTAOF/45Zz/XMDarZd+9y1jo443hi6Vhv9m6XwPtkKYdcK3hmZavl2cF8PHVUrbrhO6GIS83wP9/6HqJ5KsV1n8KEX/s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798172266580.3687814537026; Mon, 9 Mar 2020 16:56:12 -0700 (PDT) Received: from localhost ([::1]:51656 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSFn-0002bK-6U for importer@patchew.org; Mon, 09 Mar 2020 19:56:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35051) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCA-00051h-SH for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSC9-0006K7-S4 for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:26 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:59942) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSC9-0006FG-Jy for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:25 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NhE3S016506; Mon, 9 Mar 2020 23:52:21 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2120.oracle.com with ESMTP id 2ym48st17d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:21 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Nh46c037433; Mon, 9 Mar 2020 23:52:20 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 2ymndg0bnt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:20 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqIIq008340; Mon, 9 Mar 2020 23:52:18 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:18 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=UVlAki5BrSxj+rUNTGM3HT7wk0gYhvDL4hu8kYSSeLA=; b=y60/kXvMSawHrvtUxlMKfJItRQHuMH2N9TdukJJmwOIwEYxMQFb/GtKo+53yUjwV52MB QBlVm26oz9c3iRHUa40yniFGsDN6fa+1r+TQ0bdPXvsuLQ2PMRKw1oLEFaj6Wp9vU6Xp U+RWyJYDlwwy1h6IIuC/sELkqQZ3xLPwJr30rx/QaF6r8dXNtbOFsg5Pvl7Vk/lYZxlF BfHCR9UqT3gGH+3zX3k9zBtw0UWdQO5oKWYlE+RM5Q9Xv/ioHem6REY1NbEXk5PH1QIn 7AmdSTGCBdlqb18nj+j3FOEIoW3LWweNL/VD2gS2ZzA+331VR2godlRdMEvTDFKtFSrB Ew== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 03/14] hw/i386/vmport: Add device properties Date: Tue, 10 Mar 2020 01:54:00 +0200 Message-Id: <20200309235411.76587-4-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 bulkscore=0 mlxscore=0 suspectscore=1 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 mlxlogscore=999 suspectscore=1 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" No functional change. This is done as a preparation for the following patches that will introduce several device properties. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index a78e20040a79..7c21e56081b0 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -25,6 +25,7 @@ #include "hw/isa/isa.h" #include "hw/i386/pc.h" #include "hw/input/i8042.h" +#include "hw/qdev-properties.h" #include "sysemu/hw_accel.h" #include "qemu/log.h" #include "trace.h" @@ -167,6 +168,10 @@ static void vmport_realizefn(DeviceState *dev, Error *= *errp) vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); } =20 +static Property vmport_properties[] =3D { + DEFINE_PROP_END_OF_LIST(), +}; + static void vmport_class_initfn(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); @@ -174,6 +179,7 @@ static void vmport_class_initfn(ObjectClass *klass, voi= d *data) dc->realize =3D vmport_realizefn; /* Reason: realize sets global port_state */ dc->user_creatable =3D false; + device_class_set_props(dc, vmport_properties); } =20 static const TypeInfo vmport_info =3D { --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798012; cv=none; d=zohomail.com; s=zohoarc; b=IISZqV89wp5Ig2Nc1XIbO3hpdEZdsQ1SbzL1HgRiKLou4YgWTRImZ2VSaVPmom2US+xuruA1pZiQ2/JlnApwS86GDs5uLjLzDGNwOxIqEkk4wv95G+dhHwaaXVFYOPvhbO0rOrsciJUOJSsRBeAkHnK/7iEXhxvI0yo9VxteHBE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798012; h=Content-Transfer-Encoding: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=OFUlKCstA1w3vOK18OxhdCFfRTEmtmBiXOvstPi0cP8=; b=nTwaUVG+OF+yQuC3lN9SzFKNEXpsnA4hygFjTIHSE5zejbTGRfaQ7OLX4oUHMLzZYkHJJAj5ek2e1Vr9lM64zjmelTseBzIHqiGsm8BwyuLzG6t4agoBImDiRevdJdkKYDaXB3V4YTR+YP+quIzvrvJMOJIlh8gEcFc5GI3kg0U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798012004619.7567758327307; Mon, 9 Mar 2020 16:53:32 -0700 (PDT) Received: from localhost ([::1]:51534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSDC-00068V-D0 for importer@patchew.org; Mon, 09 Mar 2020 19:53:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35053) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCA-00051i-Sg for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSC9-0006Jn-Ov for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:26 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:55098) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSC9-0006Io-GU for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:25 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqOu7028643; Mon, 9 Mar 2020 23:52:24 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 2ym3jqj5kx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:24 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NpvHY101571; Mon, 9 Mar 2020 23:52:22 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3030.oracle.com with ESMTP id 2ymun81c5w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:22 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqLgd008343; Mon, 9 Mar 2020 23:52:21 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:20 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=OFUlKCstA1w3vOK18OxhdCFfRTEmtmBiXOvstPi0cP8=; b=MVLX2yLkCWSPQqCXNl1NhKZC8QDHC7LZuk5AVxw9hr/DW6B4L9BWlNjx35TVVIIPHP6+ ooToBIgmzhHXBg4oPoxxK9PLJQljFNBfUZj3reYAXswjUbfE9JsuipdQ0vyuUjksRAZi 6cPsiGkOzOo+VGAqRQPeLXzfdw5VybAG3r6WAEbnn/LvnYdYVqrH4SlQ9zuDu3fc6vnH +tbM1HF54SB0qd3R50ZDADTzbvr0xePfA+XOG5wB6nM2SA6NHnSydzReHiIcJ9cBDuP0 k5lT4Y3IUjweF4POHn2SWeeVyvVdQqEr3TsrhVx9pOIh9wOazcAF0QxYjHjMwFoGiGv1 Bg== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 04/14] hw/i386/vmport: Introduce vmx-version property Date: Tue, 10 Mar 2020 01:54:01 +0200 Message-Id: <20200309235411.76587-5-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 suspectscore=1 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1015 priorityscore=1501 mlxscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=1 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Instead of hard-coding the VMX version, make it a VMPORT object property. This would allow user to control it's value via "-global vmport.vmx-version= =3DX". Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 7c21e56081b0..a2c8ff4b59cf 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -44,6 +44,8 @@ typedef struct VMPortState { MemoryRegion io; VMPortReadFunc *func[VMPORT_ENTRIES]; void *opaque[VMPORT_ENTRIES]; + + uint32_t vmx_version; } VMPortState; =20 static VMPortState *port_state; @@ -112,7 +114,7 @@ static uint32_t vmport_cmd_get_version(void *opaque, ui= nt32_t addr) X86CPU *cpu =3D X86_CPU(current_cpu); =20 cpu->env.regs[R_EBX] =3D VMPORT_MAGIC; - return 6; + return port_state->vmx_version; } =20 static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr) @@ -169,6 +171,8 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) } =20 static Property vmport_properties[] =3D { + /* Default value taken from open-vm-tools code VERSION_MAGIC definitio= n */ + DEFINE_PROP_UINT32("vmx-version", VMPortState, vmx_version, 6), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798257; cv=none; d=zohomail.com; s=zohoarc; b=XufaMeE5mHqHZmrsfWB1bukB8lN6dIOVwg/2zbXHYhcyxvDqKBdJ+Vkx1Qo4s9k9VMy7pWKi1OJECWwgZ4eCEEf/pz+v9Hvy3rbr+6pXZURxrbddU95fegjCsfoS1QxE8AvX/k+CJzfaLaivV9UrR8rwJyd1MhHV7orTTHbmmyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798257; h=Content-Transfer-Encoding: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=YuoeCKeVFtn8DTMNE+e1YDELpF+RzZuG2WO4G1108RM=; b=bo8zJkzL8qpIyCTs3ESi46OHeWnVJ1yzpAFGqFYhO8HmEO6PDDTwpoEWa9VBR8iYHxOul83MSv2N6vc0QQ3Vy64n0oBwnh/nrq5voXmqG5AtWcYkbmNvuKidyVze/mpBLd6JczRXtIukfXaRiNnXHfdOZ1qHWPxs1FHBNnWJt4o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798257486268.7363736662603; Mon, 9 Mar 2020 16:57:37 -0700 (PDT) Received: from localhost ([::1]:51684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSHA-0004Rr-DW for importer@patchew.org; Mon, 09 Mar 2020 19:57:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35081) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCB-00051w-VP for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCA-0006L5-R1 for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:27 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:55152) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCA-0006KI-Hj for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:26 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqOmT028674; Mon, 9 Mar 2020 23:52:24 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 2ym3jqj5m1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:24 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Nq1GR101651; Mon, 9 Mar 2020 23:52:24 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3030.oracle.com with ESMTP id 2ymun81cca-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:24 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqNqq027293; Mon, 9 Mar 2020 23:52:23 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:23 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=YuoeCKeVFtn8DTMNE+e1YDELpF+RzZuG2WO4G1108RM=; b=fb41a+uFJ0+QePvX3ABo3UrV+YIj2DnbtDVFyEAaaMfP5B65DF2KiN+2dFdmmv5xac3l PPGk0tGaEvOsCrpMiVcRJn8S1IqxauV6kJVp5JEYxl30xmScafVmY/9O4UQ8pMVtAc0g TlSneTA9elQYjVzLqqdnGaOtvNIRnqqrdW+uzwUCHDTo3OQR2d4sKHWA8dbYy5CDSj9s q7aelaorgBBqR8FSNhUEE2FhaFESVC06XVSJnboNen2vwsOyp8xbmTvKdZC0gnTOcmBv BBc5+X3Zerv779bSQQx5Mvsgm99PrZo28SxlqrVOi9VIvQbTBKoIRZQ+tDPb/IkxBLAz eA== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 05/14] hw/i386/vmport: Report VMX type in CMD_GETVERSION Date: Tue, 10 Mar 2020 01:54:02 +0200 Message-Id: <20200309235411.76587-6-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 suspectscore=1 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1015 priorityscore=1501 mlxscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=1 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" As can be seen from VmCheck_GetVersion() in open-vm-tools code, CMD_GETVERSION should return VMX type in ECX register. Default is to fake host as VMware ESX server. But user can control this value by "-global vmport.vmx-type=3DX". Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index a2c8ff4b59cf..c03f57f2f636 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -36,6 +36,15 @@ #define VMPORT_ENTRIES 0x2c #define VMPORT_MAGIC 0x564D5868 =20 +typedef enum { + VMX_TYPE_UNSET =3D 0, + VMX_TYPE_EXPRESS, /* Deprecated type used for VMware Express */ + VMX_TYPE_SCALABLE_SERVER, /* VMware ESX server */ + VMX_TYPE_WGS, /* Deprecated type used for VMware Server */ + VMX_TYPE_WORKSTATION, + VMX_TYPE_WORKSTATION_ENTERPRISE /* Deprecated type used for ACE 1.x */ +} VMX_Type; + #define VMPORT(obj) OBJECT_CHECK(VMPortState, (obj), TYPE_VMPORT) =20 typedef struct VMPortState { @@ -46,6 +55,7 @@ typedef struct VMPortState { void *opaque[VMPORT_ENTRIES]; =20 uint32_t vmx_version; + uint8_t vmx_type; } VMPortState; =20 static VMPortState *port_state; @@ -114,6 +124,7 @@ static uint32_t vmport_cmd_get_version(void *opaque, ui= nt32_t addr) X86CPU *cpu =3D X86_CPU(current_cpu); =20 cpu->env.regs[R_EBX] =3D VMPORT_MAGIC; + cpu->env.regs[R_ECX] =3D port_state->vmx_type; return port_state->vmx_version; } =20 @@ -173,6 +184,8 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) static Property vmport_properties[] =3D { /* Default value taken from open-vm-tools code VERSION_MAGIC definitio= n */ DEFINE_PROP_UINT32("vmx-version", VMPortState, vmx_version, 6), + DEFINE_PROP_UINT8("vmx-type", VMPortState, vmx_type, + VMX_TYPE_SCALABLE_SERVER), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798520; cv=none; d=zohomail.com; s=zohoarc; b=mvNokbpol9nHOVZaZt5K+2/Bgr78QnDC7EcBUoN758w3dRGyaaEWLgR3DO2vS+NvHwE8AZ5zSBPMLlQ62+Q/12cN/SIs9UgVmiRdlgImZYeOQJRrs+r+Yhupq/8ZJ7jlY1/8PeVvGkqJicVAGu3XAIsGhtw29xMlMPTeunrZpgo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798520; h=Content-Transfer-Encoding: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=AI8fsWz4vAA3zeztXvmKiyZ4peItDxs1dxwAZoFxQw4=; b=idCsd90QJy1FH7VO/IoHh5J9aDlwvnFw5jDPv1C2aE3KR5HFhJgOBi60TOySfMpUaJPy5iygxGazA/OpD5YfPvUG/ZeBKw6H+OguVMsSYJQbY1qD4dbrozTbzPzSrESQI5l1q3/u91WI7kYO+jCR9leRGWB3+svJ0YReda7tJvc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798520307443.2859720904015; Mon, 9 Mar 2020 17:02:00 -0700 (PDT) Received: from localhost ([::1]:51774 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSLP-0000aR-9Z for importer@patchew.org; Mon, 09 Mar 2020 20:01:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36719) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSEA-0008JR-O5 for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSE9-0008HU-FT for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:30 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:33468) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSE9-0008H9-7j for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:29 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NrN7A077661; Mon, 9 Mar 2020 23:54:27 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2120.oracle.com with ESMTP id 2ym48st1b7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:54:27 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Nh7MS120687; Mon, 9 Mar 2020 23:52:27 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3030.oracle.com with ESMTP id 2ymn3hcg7t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:27 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqQWO008473; Mon, 9 Mar 2020 23:52:26 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:25 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=AI8fsWz4vAA3zeztXvmKiyZ4peItDxs1dxwAZoFxQw4=; b=GcMKgC+Znjp+BD2kFwa1N4o8eFQFNKYfCy2SkBe3vecWWeNuRJXP9cUBN+2dYp57AtvO xCgvmwexJnZ9ksXNWRNN+hDGkC7QoOZ1LYPLvVp03vaPPvlHS3q3PMofRNJ7qCNwzfCk nUcLjtrB1UhSOQUKQsDGlSDnFmJaLtoafCgrgrPm8Xn8QTPzLZaweyfYKOIHRu9Jn7Pd kiqa4DwROzxEMn8+A4BOp2OKXr0GbL0FIoAi6dUEWIlOTyLqu1+aF+yI/2+V0q2Htlar kpyuUHkZprru0jIOwwIDlJmI4MPLmyQgQMVJol8YgWPHgou3nHQjdjNYEtXhTt5ath6/ vw== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 06/14] hw/i386/vmport: Define enum for all commands Date: Tue, 10 Mar 2020 01:54:03 +0200 Message-Id: <20200309235411.76587-7-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 mlxlogscore=999 suspectscore=1 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" No functional change. Defining an enum for all VMPort commands have the following advantages: * It gets rid of the error-prone requirement to update VMPORT_ENTRIES when new VMPort commands are added to QEMU. * It makes it clear to know by looking at one place at the source, what are all the VMPort commands supported by QEMU. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmmouse.c | 18 ++++++------------ hw/i386/vmport.c | 11 ++--------- include/hw/i386/pc.h | 11 ++++++++++- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c index e8e62bd96b8c..a61042fc0c5e 100644 --- a/hw/i386/vmmouse.c +++ b/hw/i386/vmmouse.c @@ -33,12 +33,6 @@ /* debug only vmmouse */ //#define DEBUG_VMMOUSE =20 -/* VMMouse Commands */ -#define VMMOUSE_GETVERSION 10 -#define VMMOUSE_DATA 39 -#define VMMOUSE_STATUS 40 -#define VMMOUSE_COMMAND 41 - #define VMMOUSE_READ_ID 0x45414552 #define VMMOUSE_DISABLE 0x000000f5 #define VMMOUSE_REQUEST_RELATIVE 0x4c455252 @@ -196,10 +190,10 @@ static uint32_t vmmouse_ioport_read(void *opaque, uin= t32_t addr) command =3D data[2] & 0xFFFF; =20 switch (command) { - case VMMOUSE_STATUS: + case VMPORT_CMD_VMMOUSE_STATUS: data[0] =3D vmmouse_get_status(s); break; - case VMMOUSE_COMMAND: + case VMPORT_CMD_VMMOUSE_COMMAND: switch (data[1]) { case VMMOUSE_DISABLE: vmmouse_disable(s); @@ -218,7 +212,7 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint3= 2_t addr) break; } break; - case VMMOUSE_DATA: + case VMPORT_CMD_VMMOUSE_DATA: vmmouse_data(s, data, data[1]); break; default: @@ -275,9 +269,9 @@ static void vmmouse_realizefn(DeviceState *dev, Error *= *errp) return; } =20 - vmport_register(VMMOUSE_STATUS, vmmouse_ioport_read, s); - vmport_register(VMMOUSE_COMMAND, vmmouse_ioport_read, s); - vmport_register(VMMOUSE_DATA, vmmouse_ioport_read, s); + vmport_register(VMPORT_CMD_VMMOUSE_STATUS, vmmouse_ioport_read, s); + vmport_register(VMPORT_CMD_VMMOUSE_COMMAND, vmmouse_ioport_read, s); + vmport_register(VMPORT_CMD_VMMOUSE_DATA, vmmouse_ioport_read, s); } =20 static Property vmmouse_properties[] =3D { diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index c03f57f2f636..2ae5afc42b50 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -30,10 +30,6 @@ #include "qemu/log.h" #include "trace.h" =20 -#define VMPORT_CMD_GETVERSION 0x0a -#define VMPORT_CMD_GETRAMSIZE 0x14 - -#define VMPORT_ENTRIES 0x2c #define VMPORT_MAGIC 0x564D5868 =20 typedef enum { @@ -60,12 +56,9 @@ typedef struct VMPortState { =20 static VMPortState *port_state; =20 -void vmport_register(unsigned char command, VMPortReadFunc *func, void *op= aque) +void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *op= aque) { - if (command >=3D VMPORT_ENTRIES) { - return; - } - + assert(command < VMPORT_ENTRIES); trace_vmport_register(command, func, opaque); port_state->func[command] =3D func; port_state->opaque[command] =3D opaque; diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index d5ac76d54e1f..7f15a01137b1 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -138,12 +138,21 @@ GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_ena= bled); #define TYPE_VMPORT "vmport" typedef uint32_t (VMPortReadFunc)(void *opaque, uint32_t address); =20 +typedef enum { + VMPORT_CMD_GETVERSION =3D 10, + VMPORT_CMD_GETRAMSIZE =3D 20, + VMPORT_CMD_VMMOUSE_DATA =3D 39, + VMPORT_CMD_VMMOUSE_STATUS =3D 40, + VMPORT_CMD_VMMOUSE_COMMAND =3D 41, + VMPORT_ENTRIES +} VMPortCommand; + static inline void vmport_init(ISABus *bus) { isa_create_simple(bus, TYPE_VMPORT); } =20 -void vmport_register(unsigned char command, VMPortReadFunc *func, void *op= aque); +void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *op= aque); void vmmouse_get_data(uint32_t *data); void vmmouse_set_data(const uint32_t *data); =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798573; cv=none; d=zohomail.com; s=zohoarc; b=lGAGsT34g1A0yMPMiNVC3S1fg0mJ87R9/TLNK9uI536ZE+Yk7bW5PCmbi0pCHpdVvGvhgP0ClSkeWDM01wOZqIZIGGFBypgo5sgCYqg/Ntk6BOWdR+xcO7Bt4qlATz4O6cUmXLkCQ0B24qL2++AIZQNXPbBcjt4ZuISF6ulPJzY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798573; h=Content-Transfer-Encoding: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=usXpjf9SgX44iK30z296nwFn4wbvkZ91KHKXLheMRDY=; b=ndM/oPCPqlvneMF3htBixXdX8tJ1E2D4sj5vfm7PdrcFjNB4YCIiaDXLRWPIcV/mNqciwYrl5dyfl5PrrFimMiDqhkrQFkwTDEi2+wRmb8SytS6/lQxPzD84nbMZHWzO1EzSMYrRwCw/ewVAk6c8h2bpmYo9CsvMc4oLfdvZkVc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798573612609.1566025469275; Mon, 9 Mar 2020 17:02:53 -0700 (PDT) Received: from localhost ([::1]:51792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSMG-0001Rz-Il for importer@patchew.org; Mon, 09 Mar 2020 20:02:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36801) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSEG-0008TE-AS for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSEF-0008Lo-BK for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:36 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:57036) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSEF-0008LO-3K for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:35 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqOBF028656; Mon, 9 Mar 2020 23:54:33 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2120.oracle.com with ESMTP id 2ym3jqj5qq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:54:33 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NhI5U120943; Mon, 9 Mar 2020 23:52:32 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3030.oracle.com with ESMTP id 2ymn3hcggs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:32 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqV87010916; Mon, 9 Mar 2020 23:52:31 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:31 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=usXpjf9SgX44iK30z296nwFn4wbvkZ91KHKXLheMRDY=; b=QrHvxUnyjd2crOkxr99rV3gJAndjm34pQ2d7oPlUFMWQxpMuWCsqxs9xK/7GWdv5ZVgR INLUH/OkgiqIzhFX/GtdOLQByBeIx/O3nzaqEJeB8Mqb4poY0TM9YvEPmBM9uYZJdNbG XQYiRU/yqf4UqiNkEG4eR1YRNtX9qHehWwAGkwHxgu/et9F6Oh44eiLsv3g0/EtDo8AK 6IgYauS6m3IUxM20V7PDBYroOIFNBMWJQEWsWubw3fAsVCGiijbpiZJ7HBdee5Is5kKY zG8qNnyJItcQNX2Vj8f8WGUn9qmXN6grs7fNK1faY4I/lIw8hE+QOhzV17NfqSDFfT2e 9A== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID Date: Tue, 10 Mar 2020 01:54:04 +0200 Message-Id: <20200309235411.76587-8-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1015 priorityscore=1501 mlxscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 spamscore=0 suspectscore=1 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This is VMware documented functionallity that some guests rely on. Returns the BIOS UUID of the current virtual machine. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 14 ++++++++++++++ include/hw/i386/pc.h | 1 + 2 files changed, 15 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 2ae5afc42b50..7687f3368a55 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -26,6 +26,7 @@ #include "hw/i386/pc.h" #include "hw/input/i8042.h" #include "hw/qdev-properties.h" +#include "sysemu/sysemu.h" #include "sysemu/hw_accel.h" #include "qemu/log.h" #include "trace.h" @@ -121,6 +122,18 @@ static uint32_t vmport_cmd_get_version(void *opaque, u= int32_t addr) return port_state->vmx_version; } =20 +static uint32_t vmport_cmd_get_bios_uuid(void *opaque, uint32_t addr) +{ + X86CPU *cpu =3D X86_CPU(current_cpu); + uint32_t *uuid_parts =3D (uint32_t*)(qemu_uuid.data); + + cpu->env.regs[R_EAX] =3D uuid_parts[0]; + cpu->env.regs[R_EBX] =3D uuid_parts[1]; + cpu->env.regs[R_ECX] =3D uuid_parts[2]; + cpu->env.regs[R_EDX] =3D uuid_parts[3]; + return cpu->env.regs[R_EAX]; +} + static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr) { X86CPU *cpu =3D X86_CPU(current_cpu); @@ -171,6 +184,7 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) port_state =3D s; /* Register some generic port commands */ vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL); + vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, NULL= ); vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); } =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 7f15a01137b1..ea87eb93511e 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -140,6 +140,7 @@ typedef uint32_t (VMPortReadFunc)(void *opaque, uint32_= t address); =20 typedef enum { VMPORT_CMD_GETVERSION =3D 10, + VMPORT_CMD_GETBIOSUUID =3D 19, VMPORT_CMD_GETRAMSIZE =3D 20, VMPORT_CMD_VMMOUSE_DATA =3D 39, VMPORT_CMD_VMMOUSE_STATUS =3D 40, --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798139; cv=none; d=zohomail.com; s=zohoarc; b=D6StbRc7UW96QwQxWc/lpcvj+qMV3KvOfNuM+ZmQ+MLKNGtu2d4KCcwrfky6rGv3rKZ9a/2Gn/Qbw+vZKpmFgK9KpBNJnvzhPJ1Bqsatkb+XxlF8r9PQGTTjiaHsfLxLaHbruzXkSxi1BfUkG22Rp+DqJfYwxashh/xOzlP1jbc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798139; h=Content-Transfer-Encoding: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=QSP5saFzEDgsn5bThEih2l0XfjK5e/tXIVv97DZzaxU=; b=S+vcCzHVxA3PMf1xL8U0kOfDws58CfoQnXgm86gt56qo2gf2gmAG6wrfSPT/jduoQG82IubMHyFXgb3zd6JUszI29S+hrlLug2OopJP9cKafz1A8m+ypDvgRWuEgbgampRUHCtrhZNE/9ZrzWIFub2TF1XWsO/Svd6Udipc7fSs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798139969491.5942045458073; Mon, 9 Mar 2020 16:55:39 -0700 (PDT) Received: from localhost ([::1]:51632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSFG-0001O3-R7 for importer@patchew.org; Mon, 09 Mar 2020 19:55:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36833) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSEI-00004x-Ap for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSEH-0008Mw-6D for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:38 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:33596) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSEG-0008MT-V9 for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:54:37 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NrLth077552; Mon, 9 Mar 2020 23:54:35 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2120.oracle.com with ESMTP id 2ym48st1bh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:54:35 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NhI9G120936; Mon, 9 Mar 2020 23:52:35 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3030.oracle.com with ESMTP id 2ymn3hcgm9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:34 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqXCr027364; Mon, 9 Mar 2020 23:52:33 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:33 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=QSP5saFzEDgsn5bThEih2l0XfjK5e/tXIVv97DZzaxU=; b=yftAGqTPVMpsDu6QkeqwQMmblCtgYV7pSJnxs3OPFghevMu4axoaB3O3o80kJ+yYQKmf DYlJXgjOvUaYq+OYRjBC7oK8G9Ouhe6OjejO9pmMaP6fllj1oYiNC5TOc1VIBRapxt1Q AXdB+kBL8MhA2Qqa7svUebxp6rl6bbF4KuVU8Z3mshomhbP+bK46J+TUmASMlH536MRl 4qGPhih17y/vClDK/B6tOZZeM+XJ17w/+JMPRYOlAWY5xQuB9wers/5PPO9HDKhwnWc5 3q4ecaPj3bVqiDxpdvKXmMJP6f3NHkcKcHvJB4Q2/esAAX0lZp1xhA3Rzj8w0pByMb4K tw== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 08/14] hw/i386/vmport: Add support for CMD_GETTIME Date: Tue, 10 Mar 2020 01:54:05 +0200 Message-Id: <20200309235411.76587-9-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 mlxlogscore=999 suspectscore=1 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This command is used by guest to gettimeofday() from host. See usage example in open-vm-tools TimeSyncReadHost() function. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 21 +++++++++++++++++++++ include/hw/i386/pc.h | 1 + 2 files changed, 22 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 7687f3368a55..21253933215b 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -53,6 +53,7 @@ typedef struct VMPortState { =20 uint32_t vmx_version; uint8_t vmx_type; + uint32_t max_time_lag_us; } VMPortState; =20 static VMPortState *port_state; @@ -142,6 +143,20 @@ static uint32_t vmport_cmd_ram_size(void *opaque, uint= 32_t addr) return ram_size; } =20 +static uint32_t vmport_cmd_time(void *opaque, uint32_t addr) +{ + X86CPU *cpu =3D X86_CPU(current_cpu); + qemu_timeval tv; + + if (qemu_gettimeofday(&tv) < 0) { + return UINT32_MAX; + } + + cpu->env.regs[R_EBX] =3D (uint32_t)tv.tv_usec; + cpu->env.regs[R_ECX] =3D port_state->max_time_lag_us; + return (uint32_t)tv.tv_sec; +} + /* vmmouse helpers */ void vmmouse_get_data(uint32_t *data) { @@ -186,6 +201,7 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL); vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, NULL= ); vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); + vmport_register(VMPORT_CMD_GETTIME, vmport_cmd_time, NULL); } =20 static Property vmport_properties[] =3D { @@ -193,6 +209,11 @@ static Property vmport_properties[] =3D { DEFINE_PROP_UINT32("vmx-version", VMPortState, vmx_version, 6), DEFINE_PROP_UINT8("vmx-type", VMPortState, vmx_type, VMX_TYPE_SCALABLE_SERVER), + /* + * Max amount of time lag that can go uncorrected. + * Value taken from VMware Workstation 5.5. + **/ + DEFINE_PROP_UINT32("max-time-lag", VMPortState, max_time_lag_us, 10000= 00), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ea87eb93511e..3ab3541b3a90 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -142,6 +142,7 @@ typedef enum { VMPORT_CMD_GETVERSION =3D 10, VMPORT_CMD_GETBIOSUUID =3D 19, VMPORT_CMD_GETRAMSIZE =3D 20, + VMPORT_CMD_GETTIME =3D 23, VMPORT_CMD_VMMOUSE_DATA =3D 39, VMPORT_CMD_VMMOUSE_STATUS =3D 40, VMPORT_CMD_VMMOUSE_COMMAND =3D 41, --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798369; cv=none; d=zohomail.com; s=zohoarc; b=OPVkm3TiHVRU85QgZL5JYQE7NPa8ymmYfMOJRwkeImNwlTqK+jvQ7SyjtsqnzLCK9qFnh+Zkx+ooEDyCPQ4Lc8CpEMQ2DkvP9tV2X9K+J8v2n15C5oFs5FkKhzQT63quE0IaloDv3R8Sufmpqi2cqjkw13kh/eQkdVzEmNYIXBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798369; h=Content-Transfer-Encoding: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=I5npdYFmXraRVLDDtm1dc6rep91PsCndpTDMy4mO0yQ=; b=Hgu62IYZpcpjuo5fgjH+qM9+i5qcLwzpaVcWa9DdRNTEXgKNK6nQCAqntyqDgNE9gB8e4qcC+pJBFOgA7IrYOAHX+482poSSGBfgZz+iS5o8yYaVPbwpCaw+PSn3hdMZXGHNeJXK8jXyF3UDAgQeJMXEFufj68CCbR59rLw5+MM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798369493683.5722932274333; Mon, 9 Mar 2020 16:59:29 -0700 (PDT) Received: from localhost ([::1]:51716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSIy-0006ma-1Q for importer@patchew.org; Mon, 09 Mar 2020 19:59:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35308) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCP-0005K5-0G for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCO-0006cC-1j for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:40 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:47558) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCN-0006bP-Q1 for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:39 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqU9k147088; Mon, 9 Mar 2020 23:52:38 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2130.oracle.com with ESMTP id 2ym31ua65j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:37 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NhI5V120943; Mon, 9 Mar 2020 23:52:37 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userp3030.oracle.com with ESMTP id 2ymn3hcgrk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:37 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqalC008367; Mon, 9 Mar 2020 23:52:36 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:36 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=I5npdYFmXraRVLDDtm1dc6rep91PsCndpTDMy4mO0yQ=; b=LMuZLQUoDqT/352gwR5l8WyDMu7vUP5+Zc3rVXkGguHsPIHs8xoR+2v2+x98WT2qe/Yz h5zPUwTk9uc7R77oENF/Zato0Fi1cE7hZfc0W40qHPVqL4QkIoF1OTk21sbRbdMEDzbf 7iPsl+vdVzAjiUFMWbE06G2c5FSoom8UgbHu/m5XKGH/leJiJv66CW4LWcuEYhRQXoKS zjZxAL4z0LpHroCa23YhhpWym5KafT1wDdXIz6oJrOGqOKo9yRQnQEiw/8v5yfZ0xCSL R2qyMn19dUDAXINLCSzaQ4XzF8iN5yvKTn4hC2YMaT0RyJ/99ENmh2JoP1rm56Z2QxL9 SA== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 09/14] hw/i386/vmport: Add support for CMD_GETTIMEFULL Date: Tue, 10 Mar 2020 01:54:06 +0200 Message-Id: <20200309235411.76587-10-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=1 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Similar to CMD_GETTIME but lacks the 136-year overflow issue, by returning full 64-bit of host uSeconds. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 17 +++++++++++++++++ include/hw/i386/pc.h | 1 + 2 files changed, 18 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 21253933215b..26231fc9d718 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -157,6 +157,22 @@ static uint32_t vmport_cmd_time(void *opaque, uint32_t= addr) return (uint32_t)tv.tv_sec; } =20 +static uint32_t vmport_cmd_time_full(void *opaque, uint32_t addr) +{ + X86CPU *cpu =3D X86_CPU(current_cpu); + qemu_timeval tv; + + if (qemu_gettimeofday(&tv) < 0) { + return UINT32_MAX; + } + + cpu->env.regs[R_ESI] =3D (uint32_t)((uint64_t)tv.tv_sec >> 32); + cpu->env.regs[R_EDX] =3D (uint32_t)tv.tv_sec; + cpu->env.regs[R_EBX] =3D (uint32_t)tv.tv_usec; + cpu->env.regs[R_ECX] =3D port_state->max_time_lag_us; + return VMPORT_MAGIC; +} + /* vmmouse helpers */ void vmmouse_get_data(uint32_t *data) { @@ -202,6 +218,7 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, NULL= ); vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); vmport_register(VMPORT_CMD_GETTIME, vmport_cmd_time, NULL); + vmport_register(VMPORT_CMD_GETTIMEFULL, vmport_cmd_time_full, NULL); } =20 static Property vmport_properties[] =3D { diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 3ab3541b3a90..14d321e3cbbe 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -146,6 +146,7 @@ typedef enum { VMPORT_CMD_VMMOUSE_DATA =3D 39, VMPORT_CMD_VMMOUSE_STATUS =3D 40, VMPORT_CMD_VMMOUSE_COMMAND =3D 41, + VMPORT_CMD_GETTIMEFULL =3D 46, VMPORT_ENTRIES } VMPortCommand; =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798036; cv=none; d=zohomail.com; s=zohoarc; b=LcouUfGFgeSYzUsdQWjWhwfOHJfCrHMoI39Z41HZzcnxtXWuDUCJCbWh8fWnEgwxlPQqFfETOWF/d8OA3uIEWp1/7BWCmZfiVlpE72UWJGkfUr3lWLZ2NwlW2rm+sKi74Eltv4x8o7E8YD0wTfU2VmuW4beHSDC2LFHdIT+33vc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798036; h=Content-Transfer-Encoding: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=4fT4sH3CM+0bfjxe/9m0bbXFNx4zOlz71rDmJ+Z877k=; b=gz0h/Dq9r3GtR3K0zNRvxzBNlYdYIcJmuGdqobm3YKTVqRlnDLLmlVnZrHFh5yDYSToAux5GCKhNSaTkzEOY19BHJ0Oo9X3pblGeIy3OY3JEU3cRMbH1fht5/KrP5zv2z8WTrzB4LpW01cVmmEJf56UF6yMaJUO5jXx0oiRKlBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798036408372.38164304773306; Mon, 9 Mar 2020 16:53:56 -0700 (PDT) Received: from localhost ([::1]:51541 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSDa-0006hE-W7 for importer@patchew.org; Mon, 09 Mar 2020 19:53:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35357) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCR-0005OB-Gj for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCQ-0006fO-Fk for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:43 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:47606) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCQ-0006eJ-7o for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:42 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqePh147313; Mon, 9 Mar 2020 23:52:40 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 2ym31ua65q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:40 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqF8D102211; Mon, 9 Mar 2020 23:52:39 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 2ymun81d99-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:39 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqdiQ008501; Mon, 9 Mar 2020 23:52:39 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:38 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=4fT4sH3CM+0bfjxe/9m0bbXFNx4zOlz71rDmJ+Z877k=; b=GQ8Y8jr0q3pT54JGOJc4Pgk7gkfXKs84ZVCpToZb+yWFtiFUvk6dR5KWGi1QDFnMJTGd 2pW7SfLFFtpbhF2Xrzm+VmRlp5zYelZ6z2CTa9JFq7GytmJk6a3UwZ4lDp/Pf34aGe2N niITPjW20M5SCgdOYxOgtlWyKZPjcIYslVFFgrB3vQqwZN7kh0X5ij4P04XYzDOKcPkD 1+AIb9i1DvUJLhf32poV3vczOj/oLK9TLCj0m/O89fDzuImBSXZwJ4RIUv3MeTSDeMRs Ha1edmXf59OEVCkJshE+87FwGWc3lEn3lFqotVSVhojsgMFoU9lIcHPnx+kGDcuRv903 qA== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 10/14] hw/i386/vmport: Add support for CMD_GET_VCPU_INFO Date: Tue, 10 Mar 2020 01:54:07 +0200 Message-Id: <20200309235411.76587-11-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 suspectscore=1 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=1 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Command currently returns that it is unimplemented by setting the reserved-bit in it's return value. Following patches will return various useful vCPU information to guest. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 13 +++++++++++++ include/hw/i386/pc.h | 1 + 2 files changed, 14 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 26231fc9d718..b33ef9c01d65 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -42,6 +42,13 @@ typedef enum { VMX_TYPE_WORKSTATION_ENTERPRISE /* Deprecated type used for ACE 1.x */ } VMX_Type; =20 +/* vCPU features reported by CMD_GET_VCPU_INFO */ +#define VCPU_INFO_SLC64_BIT 0 +#define VCPU_INFO_SYNC_VTSCS_BIT 1 +#define VCPU_INFO_HV_REPLAY_OK_BIT 2 +#define VCPU_INFO_LEGACY_X2APIC_BIT 3 +#define VCPU_INFO_RESERVED_BIT 31 + #define VMPORT(obj) OBJECT_CHECK(VMPortState, (obj), TYPE_VMPORT) =20 typedef struct VMPortState { @@ -173,6 +180,11 @@ static uint32_t vmport_cmd_time_full(void *opaque, uin= t32_t addr) return VMPORT_MAGIC; } =20 +static uint32_t vmport_cmd_get_vcpu_info(void *opaque, uint32_t addr) +{ + return (1 << VCPU_INFO_RESERVED_BIT); +} + /* vmmouse helpers */ void vmmouse_get_data(uint32_t *data) { @@ -219,6 +231,7 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); vmport_register(VMPORT_CMD_GETTIME, vmport_cmd_time, NULL); vmport_register(VMPORT_CMD_GETTIMEFULL, vmport_cmd_time_full, NULL); + vmport_register(VMPORT_CMD_GET_VCPU_INFO, vmport_cmd_get_vcpu_info, NU= LL); } =20 static Property vmport_properties[] =3D { diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 14d321e3cbbe..e880ca39ee3b 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -147,6 +147,7 @@ typedef enum { VMPORT_CMD_VMMOUSE_STATUS =3D 40, VMPORT_CMD_VMMOUSE_COMMAND =3D 41, VMPORT_CMD_GETTIMEFULL =3D 46, + VMPORT_CMD_GET_VCPU_INFO =3D 68, VMPORT_ENTRIES } VMPortCommand; =20 --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798111; cv=none; d=zohomail.com; s=zohoarc; b=HQ7C+A35MfkOJttHhMa8EvZnc6zHq1dVRvit6MctnHIKZHIjQk9w77v/i5GUxsXaDcSOF0gLyHIhNbVFUVyT5pEDV5oEArLaW9sPFsAOu3ZP9yo4ZDl6uSG3jDTQA7fvIXV9sFJPQ9Ay+/TGSPuvmrXIYpem87St7FJF8CMfQ6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798111; h=Content-Transfer-Encoding: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=2wjVYVusXqahreDVrx8ai5a0+xGSxKRX3/lG+CE5nvI=; b=DfriBOoD3xanvCwvKOml7ScN8mqMNhK2qeswOM+VS+sKRi+dbWoYLUeb2/cMmuisnNtlamlOW0afok0SwKbKjbBGPQnRJaqumnR19P/1WK7O6tisfxSNcJdIpJiV86hG+nkWIl9lt0vBLxnSvqDXyyq34O+UoeApcJf9O+Qb7fw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798111933752.4818654170003; Mon, 9 Mar 2020 16:55:11 -0700 (PDT) Received: from localhost ([::1]:51620 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSEo-0000bS-Rg for importer@patchew.org; Mon, 09 Mar 2020 19:55:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35400) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCT-0005SH-Po for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCS-0006hw-SA for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:45 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:47632) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCS-0006hF-Kc for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:52:44 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqePi147313; Mon, 9 Mar 2020 23:52:43 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 2ym31ua65s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:42 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Npi2f101380; Mon, 9 Mar 2020 23:52:42 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3030.oracle.com with ESMTP id 2ymun81dcj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:42 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029Nqffb027463; Mon, 9 Mar 2020 23:52:41 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:41 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=2wjVYVusXqahreDVrx8ai5a0+xGSxKRX3/lG+CE5nvI=; b=fsqjprscASjLhyXo3a9TUJunT0kQXmlQCVBrlfs4loanP/OFntIdCkpQfBXkSdKDfEuG UD+0Nt/8+5R59lEgh158R5Ett/+Tw/fv6egmMI5zS9GLEJbQD+1jQJAYylBvp3CKPPi7 mALiPcBPvhaqhTgkIZ9Ol687hK/plqBxbF4GtxIqVHKfNjLLeJWleOxd6My4IWp7cOxv 17mBJHcCTkw725GiqNfhI9RYS3x1gorTOuqC0QKjTu+PrTSE99nPXdeb2fhX6xfruVuu lFL380oCALLpyre9asCVPtKZHhIYQ31FncLGb3jEf3SpLRtpitsDT4iRutocL8AWy7Sk 2A== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 11/14] hw/i386/vmport: Allow x2apic without IR Date: Tue, 10 Mar 2020 01:54:08 +0200 Message-Id: <20200309235411.76587-12-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=799 phishscore=0 adultscore=0 suspectscore=1 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=1 phishscore=0 mlxlogscore=863 mlxscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signal to guest that hypervisor supports x2apic without VT-d/IOMMU Interrupt-Remapping support. This allows guest to use x2apic in case all APIC IDs fits in 8-bit (i.e. Max APIC ID < 255). See Linux kernel commit 4cca6ea04d31 ("x86/apic: Allow x2apic without IR on VMware platform") and Linux try_to_enable_x2apic() function. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index b33ef9c01d65..2b0a623f19c1 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -182,7 +182,14 @@ static uint32_t vmport_cmd_time_full(void *opaque, uin= t32_t addr) =20 static uint32_t vmport_cmd_get_vcpu_info(void *opaque, uint32_t addr) { - return (1 << VCPU_INFO_RESERVED_BIT); + X86CPU *cpu =3D X86_CPU(current_cpu); + uint32_t ret =3D 0; + + if (cpu->env.features[FEAT_1_ECX] & CPUID_EXT_X2APIC) { + ret |=3D 1 << VCPU_INFO_LEGACY_X2APIC_BIT; + } + + return ret; } =20 /* vmmouse helpers */ --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798193; cv=none; d=zohomail.com; s=zohoarc; b=TE9Mkumh9XLaAxaEKIDONjy+tY2RlMwSXXgLIUd/DyoTsxLySsYTcXyGctSJWCue3dV4CA7Fn15e2Qga0wdvU2Eu0b74Jch0mSJ10Z+gaW1pThUCQQC+rRYRdwXcOi674uy9vSsqM/AWEyde0Pw3Mv/PuXCueec/GSLvwi4IbgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798193; h=Content-Transfer-Encoding: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=CZple/MNn1m0Ap+EilGNEJvBr/MWvXgtRAyz9gI0rvA=; b=Rmc+T1Ia8UBR2LYxJRZWj9gfQvP/bVBvzSBVrDq7ZtGEZZudrslFjStA8elgpZrnTHG8wKhQXD+ezG5G1SFxui+tuuvCbYLzPzl2pcXqrCugAAHKZrMjT3vj86nQs7UcBV1W1fW+v/ZTWdjSi8ptVkepBZgvphI4zCHLO18PgZo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798193747363.54080550069796; Mon, 9 Mar 2020 16:56:33 -0700 (PDT) Received: from localhost ([::1]:51664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSG8-00034Q-NQ for importer@patchew.org; Mon, 09 Mar 2020 19:56:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35608) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCk-0005x8-PC for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCj-0006ym-Ox for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:02 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:60382) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCj-0006xj-Gs for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:01 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NhFXD016965; Mon, 9 Mar 2020 23:53:00 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2ym48st188-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:59 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqxpT095582; Mon, 9 Mar 2020 23:52:59 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userp3020.oracle.com with ESMTP id 2ymnb1karr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:59 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 029NqiWu008509; Mon, 9 Mar 2020 23:52:44 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:43 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=CZple/MNn1m0Ap+EilGNEJvBr/MWvXgtRAyz9gI0rvA=; b=ZExoTwHrM8TsurelaychaA75yh1IWwV4i9fobTGBrwYYPUoxV+7TFG3WPMtS8RPlJkO2 aeD61tmYAMBl65hUZ1UGYYnqGkgklCsq67rl2mWZ5RWm8fGb5mfQZwSgK3SMKp8xUOAw e4ugAZl/OhktGYyJAMLs71UNlgibPLNnP52sVoNLCIrRWRK+KnVWAshADIY6eXPP7tCv ZVh9oDv7AYlGBQ0KHdBvQsNco0h5VqqGATyiQsL/SM8DLICE1lGSYaG6vdUy7lqJiql7 7ckwPTj4U6R/vCl57VatsOQmXcPcjZQFtxvffodNFW70yDupi1jJBVdWRdDVhX7ygza+ qg== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 12/14] i386/cpu: Store LAPIC bus frequency in CPU structure Date: Tue, 10 Mar 2020 01:54:09 +0200 Message-Id: <20200309235411.76587-13-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 suspectscore=1 adultscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 mlxlogscore=999 suspectscore=1 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" No functional change. This information will be used by following patches. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- linux-headers/asm-x86/kvm.h | 4 ++++ target/i386/cpu.h | 1 + target/i386/kvm.c | 6 +++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h index 503d3f42da16..99eeaaf2f0b4 100644 --- a/linux-headers/asm-x86/kvm.h +++ b/linux-headers/asm-x86/kvm.h @@ -446,4 +446,8 @@ struct kvm_pmu_event_filter { #define KVM_PMU_EVENT_ALLOW 0 #define KVM_PMU_EVENT_DENY 1 =20 +/* From arch/x86/kvm/lapic.h */ +#define KVM_APIC_BUS_CYCLE_NS 1 +#define KVM_APIC_BUS_FREQUENCY (1000000000ULL / KVM_APIC_BUS_CYCLE_NS) + #endif /* _ASM_X86_KVM_H */ diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 576f309bbfc8..9c7cd7cde107 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1580,6 +1580,7 @@ typedef struct CPUX86State { bool tsc_valid; int64_t tsc_khz; int64_t user_tsc_khz; /* for sanity check only */ + uint64_t apic_bus_freq; #if defined(CONFIG_KVM) || defined(CONFIG_HVF) void *xsave_buf; #endif diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 69eb43d796e6..00917196dffb 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1496,6 +1496,8 @@ int kvm_arch_init_vcpu(CPUState *cs) } } =20 + env->apic_bus_freq =3D KVM_APIC_BUS_FREQUENCY; + /* Paravirtualization CPUIDs */ r =3D hyperv_handle_properties(cs, cpuid_data.entries); if (r < 0) { @@ -1800,9 +1802,7 @@ int kvm_arch_init_vcpu(CPUState *cs) c =3D &cpuid_data.entries[cpuid_i++]; c->function =3D KVM_CPUID_SIGNATURE | 0x10; c->eax =3D env->tsc_khz; - /* LAPIC resolution of 1ns (freq: 1GHz) is hardcoded in KVM's - * APIC_BUS_CYCLE_NS */ - c->ebx =3D 1000000; + c->ebx =3D env->apic_bus_freq / 1000; /* Hz to KHz */ c->ecx =3D c->edx =3D 0; =20 c =3D cpuid_find_entry(&cpuid_data.cpuid, kvm_base, 0); --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798456; cv=none; d=zohomail.com; s=zohoarc; b=Hae3d2zBv8Q8yZ2mVm0P1q0ewva5h4yad+TGQlxN5YaJaMwylsyL+kySpS7R6Wa1XcneF0P198hzg6qmgN5F3XbpcBQa3eH2JlXKZ5M5PWLw75v10fU0SP5RZGkfcP2WL+GpLhzlrC9uzbNkitZuifVsluTcuT//FEy8xVLS6ck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798456; h=Content-Transfer-Encoding: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=xeXTfkCIs233YAHIBuNOs5RVrM+SnIVuZZRDkCcUbG8=; b=LI2fpGhMR5CM2FmMq7lV2K5RxAkohyTqMEMsGdwg+cNxwefhgJDhRRdwDHeGM3czqyIoyuCrNLF34jlRNGF8CF7tLoTAaAtNy1ZGqw3XoNup+18/BD0UY/oiHlq0sHzqRHrWQomQNKFxfj0d8T8TZan+64w9drYpC0pWhBbF1KQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798456006293.0605273175538; Mon, 9 Mar 2020 17:00:56 -0700 (PDT) Received: from localhost ([::1]:51748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSKL-00082N-HB for importer@patchew.org; Mon, 09 Mar 2020 20:00:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35688) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCn-00063Y-Ui for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCm-00072B-OX for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:05 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:47914) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCm-00070l-Go for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:04 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqUus147112; Mon, 9 Mar 2020 23:53:02 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2130.oracle.com with ESMTP id 2ym31ua669-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:53:02 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NqxYu095547; Mon, 9 Mar 2020 23:53:02 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3020.oracle.com with ESMTP id 2ymnb1kas9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:53:02 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqkGp027472; Mon, 9 Mar 2020 23:52:46 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:46 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=xeXTfkCIs233YAHIBuNOs5RVrM+SnIVuZZRDkCcUbG8=; b=rrrl1qWpMGGG89rzRbjnZnfdaojjnaRIBAD9jOBuCh6K38uptGNjoM1knYgmTej1Thos 9QBRfWqT6oT97O7MUi0WX7fe1N/OGgr5XRlX4Y1xuBniMnfPpsvNkp1tG81jcqjiuNV1 avH9eFIATpMPQruPTtHAMzh8O2NNqZM6tTFKMVN8mvhuS4WQCLaKgdHdqXGBHfqkSoqC KmmbaU3XP9XyxxG0DChrHGPlAvrdhBqA2ahKMDFEbS8y79e84o3a44PIA3opyxh0/X9e yAg9f8TDTgxISo6jP/RJ+qeKLNz987YKOut8C8zQ7QCwPsb/S7T8REqSU6noiLupuJe3 Ew== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 13/14] hw/i386/vmport: Add support for CMD_GETHZ Date: Tue, 10 Mar 2020 01:54:10 +0200 Message-Id: <20200309235411.76587-14-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 suspectscore=1 adultscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=1 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This command returns to guest information on LAPIC bus frequency and TSC frequency. One can see how this interface is used by Linux vmware_platform_setup() introduced in Linux commit 88b094fb8d4f ("x86: Hypervisor detection and get tsc_freq from hypervisor"). Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 19 +++++++++++++++++++ include/hw/i386/pc.h | 1 + 2 files changed, 20 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 2b0a623f19c1..95d4a23ce9ba 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -150,6 +150,24 @@ static uint32_t vmport_cmd_ram_size(void *opaque, uint= 32_t addr) return ram_size; } =20 +static uint32_t vmport_cmd_get_hz(void *opaque, uint32_t addr) +{ + X86CPU *cpu =3D X86_CPU(current_cpu); + + if (cpu->env.tsc_khz && cpu->env.apic_bus_freq) { + uint64_t tsc_freq =3D (uint64_t)cpu->env.tsc_khz * 1000; + + cpu->env.regs[R_ECX] =3D cpu->env.apic_bus_freq; + cpu->env.regs[R_EBX] =3D (uint32_t)(tsc_freq >> 32); + cpu->env.regs[R_EAX] =3D (uint32_t)tsc_freq; + } else { + /* Signal cmd as not supported */ + cpu->env.regs[R_EBX] =3D UINT32_MAX; + } + + return cpu->env.regs[R_EAX]; +} + static uint32_t vmport_cmd_time(void *opaque, uint32_t addr) { X86CPU *cpu =3D X86_CPU(current_cpu); @@ -237,6 +255,7 @@ static void vmport_realizefn(DeviceState *dev, Error **= errp) vmport_register(VMPORT_CMD_GETBIOSUUID, vmport_cmd_get_bios_uuid, NULL= ); vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL); vmport_register(VMPORT_CMD_GETTIME, vmport_cmd_time, NULL); + vmport_register(VMPORT_CMD_GETHZ, vmport_cmd_get_hz, NULL); vmport_register(VMPORT_CMD_GETTIMEFULL, vmport_cmd_time_full, NULL); vmport_register(VMPORT_CMD_GET_VCPU_INFO, vmport_cmd_get_vcpu_info, NU= LL); } diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index e880ca39ee3b..679bf429c6a5 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -146,6 +146,7 @@ typedef enum { VMPORT_CMD_VMMOUSE_DATA =3D 39, VMPORT_CMD_VMMOUSE_STATUS =3D 40, VMPORT_CMD_VMMOUSE_COMMAND =3D 41, + VMPORT_CMD_GETHZ =3D 45, VMPORT_CMD_GETTIMEFULL =3D 46, VMPORT_CMD_GET_VCPU_INFO =3D 68, VMPORT_ENTRIES --=20 2.20.1 From nobody Sat May 11 23:35:50 2024 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1583798280; cv=none; d=zohomail.com; s=zohoarc; b=N2t/B2gE5q+N0vYr8OctP5Wc/eWafaeKkJZEj7bKUEFB4/fY9TwtSsoEL0pY55gOfk2JxdNj9z//+vJztYrUbB+iejrqmgAll7QNNtdPRL5kmuhzakVYTnqLFWGsPhY8MJC7nGu6Cz2SaErHSq+jb27zD95ItJiSCdxafI9O0do= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583798280; h=Content-Transfer-Encoding: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=xNTTI5x1kaKVAyyBglmkCirKohEDRlK9NBufy8H3NOk=; b=A6QcWIL3DRUaaWmkZsXnmza9VR49M5Rc1jnS98TO+2pR510n8hIAahi2MiMv71tvYLb/lCXA8foJo7kUDp0ZZP4uz7X6IbE/7VzSO9UXAGvbATEMqyE1Lwx3J58rmopZyLsQi7PXspSKTuEreqUuHrWMs2GAT6+AfeIBnPl+veg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1583798280251337.5902276361717; Mon, 9 Mar 2020 16:58:00 -0700 (PDT) Received: from localhost ([::1]:51688 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSHX-0004tW-71 for importer@patchew.org; Mon, 09 Mar 2020 19:57:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35646) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBSCm-00060W-GO for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBSCl-00070N-HH for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:04 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:60410) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jBSCl-0006zX-7U for qemu-devel@nongnu.org; Mon, 09 Mar 2020 19:53:03 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029NjlrM072340; Mon, 9 Mar 2020 23:53:01 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2ym48st18f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:53:01 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 029Nr1Ns095807; Mon, 9 Mar 2020 23:53:01 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3020.oracle.com with ESMTP id 2ymnb1kat3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Mar 2020 23:52:59 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 029NqnNP010995; Mon, 9 Mar 2020 23:52:49 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 09 Mar 2020 16:52:49 -0700 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 : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=xNTTI5x1kaKVAyyBglmkCirKohEDRlK9NBufy8H3NOk=; b=pHxkTscAUIHQ+UCPsQTHZ0G7XnmeKK+g6ftQuDA45OHIkzzN3rSMObOPKET4KmzVM3pC oKrOPygMimDV3/YkyPwWszG9wL1rO+dg4zUJWCarbVpBtX+uYzTtrBBp6Xpg1SihJBKB v/LPMqdaQp8c5baiBTzB9wlfXDAHNPa0hqqzpdIelE5mV9mzCrxrCTTvoWtVBxRB9eEI 5BGojiULc2iehANkuHdeplPL/YFXwCNgcEZgtsO1oG1uYoq/x89L59P+FR4zDymZSsGG L53tuXsLJ+4SG4qEgKvx7jv7j0DmXheyOVVxsGGb7LvscW0hwv8lvPGxv20AhR1iHJj2 fw== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH 14/14] hw/i386/vmport: Assert vmport initialized before registering commands Date: Tue, 10 Mar 2020 01:54:11 +0200 Message-Id: <20200309235411.76587-15-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200309235411.76587-1-liran.alon@oracle.com> References: <20200309235411.76587-1-liran.alon@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 suspectscore=1 adultscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090144 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9555 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 impostorscore=0 mlxlogscore=999 suspectscore=1 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 mlxscore=0 clxscore=1015 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003090143 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ehabkost@redhat.com, mst@redhat.com, Liran Alon , Nikita Leshenko , pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" vmport_register() is also called from other modules such as vmmouse. Therefore, these modules rely that vmport is realized before those call sites. If this is violated, vmport_register() will NULL-deref. To make such issues easier to debug, assert in vmport_register() that vmport is already realized. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon --- hw/i386/vmport.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 95d4a23ce9ba..659a323e8448 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -68,6 +68,8 @@ static VMPortState *port_state; void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *op= aque) { assert(command < VMPORT_ENTRIES); + assert(port_state); + trace_vmport_register(command, func, opaque); port_state->func[command] =3D func; port_state->opaque[command] =3D opaque; --=20 2.20.1