From patchwork Fri Dec 20 19:51:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 11306257 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 01A5E14E3 for ; Fri, 20 Dec 2019 19:53:06 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C6AF62072B for ; Fri, 20 Dec 2019 19:53:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oG25theh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6AF62072B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iiOJO-0005Cc-Gu; Fri, 20 Dec 2019 19:51:46 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iiOJN-0005CL-CC for xen-devel@lists.xenproject.org; Fri, 20 Dec 2019 19:51:45 +0000 X-Inumbo-ID: 23e34a10-2362-11ea-88e7-bc764e2007e4 Received: from mail-wr1-x444.google.com (unknown [2a00:1450:4864:20::444]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 23e34a10-2362-11ea-88e7-bc764e2007e4; Fri, 20 Dec 2019 19:51:40 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id t2so10555764wrr.1 for ; Fri, 20 Dec 2019 11:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kliZfpMRblOg+5N9KtFg91zHiX9yUIzN4cQEjEjRgcI=; b=oG25thehJRS0ABATMGFFDCGBLyvLB3DMo3gmC14agWj3hX/ja+ox8pjbkvGfHebqc4 RCml4oweJXInO1BoPFnNkSGhtbQhS+ctrWyPv1xjurSwGYL1QOQM4B6eAZDNRb2vemsC S62l82kUKNEce6mNaGbCQhwhmxV3t0iC5Q0kbwtbNJn3LzE0G3ca39ORo51WDeYftCoS 24xnUhdWp0sQ/fLMT79je4o5UuinhKE9M2EW+JvMfsVD3PFlLi6fxHn+zUTGttWgvU4d 4atDe+B/vfaJThVdoW1sbpvi7PEvHaXATikUyVf+4Hb4yYWNDnBcFFrWPgRJBvk7xKgu BcRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=kliZfpMRblOg+5N9KtFg91zHiX9yUIzN4cQEjEjRgcI=; b=g+vkpdjcuUN9ESppRyzcE3NPkSU60WZT1sHyD9MK/rRLJRxPBj/V+p5X7zd3KDyWIW uAHRHbUGWDLaCvvetU+u7W1dWorPFUv11PuPM4N+rwwSJMbYYTMDS1QOzzJ76L8GkldR sTjWFF0XrGZr5Xl2bKMw8sc+zJoK5Q+fQImnV9yrd1jph3StmH57GlctwqivQvuf0391 HBAVitLctMcCUJWFnk2zr/U0CT85IMXu53Ys+0YmJUD+ODh/k+LbATlXb2O9SA6x5m2a TF+7Odn5zd11bO932Rsm097Mdywnx6PIeNdyM6oyxe+rCx+ys3zW+QLv9BVQCV52DD+W unQg== X-Gm-Message-State: APjAAAXlJrDkX9wKuiHqlRFEAPM916knZWxaLXBp/y6ihjYciA0Cx++2 IWYvhL7sIElr3VL8bo0syoqvcHXx X-Google-Smtp-Source: APXvYqyjELWoDS+ni9bx/6mkUeSOM8/9hse/1Uh2/b/08obU3AjXXm5Y3hpuZhe5FU4AeVmHPK5pig== X-Received: by 2002:a5d:49c7:: with SMTP id t7mr16488068wrs.369.1576871499839; Fri, 20 Dec 2019 11:51:39 -0800 (PST) Received: from debian.mshome.net (38.163.200.146.dyn.plus.net. [146.200.163.38]) by smtp.gmail.com with ESMTPSA id a184sm11006287wmf.29.2019.12.20.11.51.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Dec 2019 11:51:39 -0800 (PST) From: Wei Liu X-Google-Original-From: Wei Liu To: Xen Development List Date: Fri, 20 Dec 2019 19:51:32 +0000 Message-Id: <20191220195135.20130-2-liuwe@microsoft.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191220195135.20130-1-liuwe@microsoft.com> References: <20191220195135.20130-1-liuwe@microsoft.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 1/4] x86/viridian: drop duplicate defines from private.h and viridian.c X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Wei Liu , Wei Liu , Paul Durrant , Andrew Cooper , Paul Durrant , Michael Kelley , Jan Beulich , =?utf-8?q?Roger_Pau_Monn=C3=A9?= Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Also add HVCALL_EXT_CALL_QUERY_CAPABILITIES to hyperv-tlfs.h. HvGetPartitionID was never used in code so just dropped it. No functional change intended. Signed-off-by: Wei Liu Reviewed-by: Paul Durrant --- xen/arch/x86/hvm/viridian/private.h | 66 ------------------------- xen/arch/x86/hvm/viridian/viridian.c | 29 +++-------- xen/include/asm-x86/guest/hyperv-tlfs.h | 1 + 3 files changed, 8 insertions(+), 88 deletions(-) diff --git a/xen/arch/x86/hvm/viridian/private.h b/xen/arch/x86/hvm/viridian/private.h index c272c34cda..958a2814c2 100644 --- a/xen/arch/x86/hvm/viridian/private.h +++ b/xen/arch/x86/hvm/viridian/private.h @@ -5,72 +5,6 @@ #include -/* Viridian MSR numbers. */ -#define HV_X64_MSR_GUEST_OS_ID 0x40000000 -#define HV_X64_MSR_HYPERCALL 0x40000001 -#define HV_X64_MSR_VP_INDEX 0x40000002 -#define HV_X64_MSR_RESET 0x40000003 -#define HV_X64_MSR_VP_RUNTIME 0x40000010 -#define HV_X64_MSR_TIME_REF_COUNT 0x40000020 -#define HV_X64_MSR_REFERENCE_TSC 0x40000021 -#define HV_X64_MSR_TSC_FREQUENCY 0x40000022 -#define HV_X64_MSR_APIC_FREQUENCY 0x40000023 -#define HV_X64_MSR_EOI 0x40000070 -#define HV_X64_MSR_ICR 0x40000071 -#define HV_X64_MSR_TPR 0x40000072 -#define HV_X64_MSR_VP_ASSIST_PAGE 0x40000073 -#define HV_X64_MSR_SCONTROL 0x40000080 -#define HV_X64_MSR_SVERSION 0x40000081 -#define HV_X64_MSR_SIEFP 0x40000082 -#define HV_X64_MSR_SIMP 0x40000083 -#define HV_X64_MSR_EOM 0x40000084 -#define HV_X64_MSR_SINT0 0x40000090 -#define HV_X64_MSR_SINT1 0x40000091 -#define HV_X64_MSR_SINT2 0x40000092 -#define HV_X64_MSR_SINT3 0x40000093 -#define HV_X64_MSR_SINT4 0x40000094 -#define HV_X64_MSR_SINT5 0x40000095 -#define HV_X64_MSR_SINT6 0x40000096 -#define HV_X64_MSR_SINT7 0x40000097 -#define HV_X64_MSR_SINT8 0x40000098 -#define HV_X64_MSR_SINT9 0x40000099 -#define HV_X64_MSR_SINT10 0x4000009A -#define HV_X64_MSR_SINT11 0x4000009B -#define HV_X64_MSR_SINT12 0x4000009C -#define HV_X64_MSR_SINT13 0x4000009D -#define HV_X64_MSR_SINT14 0x4000009E -#define HV_X64_MSR_SINT15 0x4000009F -#define HV_X64_MSR_STIMER0_CONFIG 0x400000B0 -#define HV_X64_MSR_STIMER0_COUNT 0x400000B1 -#define HV_X64_MSR_STIMER1_CONFIG 0x400000B2 -#define HV_X64_MSR_STIMER1_COUNT 0x400000B3 -#define HV_X64_MSR_STIMER2_CONFIG 0x400000B4 -#define HV_X64_MSR_STIMER2_COUNT 0x400000B5 -#define HV_X64_MSR_STIMER3_CONFIG 0x400000B6 -#define HV_X64_MSR_STIMER3_COUNT 0x400000B7 -#define HV_X64_MSR_POWER_STATE_TRIGGER_C1 0x400000C1 -#define HV_X64_MSR_POWER_STATE_TRIGGER_C2 0x400000C2 -#define HV_X64_MSR_POWER_STATE_TRIGGER_C3 0x400000C3 -#define HV_X64_MSR_POWER_STATE_CONFIG_C1 0x400000D1 -#define HV_X64_MSR_POWER_STATE_CONFIG_C2 0x400000D2 -#define HV_X64_MSR_POWER_STATE_CONFIG_C3 0x400000D3 -#define HV_X64_MSR_STATS_PARTITION_RETAIL_PAGE 0x400000E0 -#define HV_X64_MSR_STATS_PARTITION_INTERNAL_PAGE 0x400000E1 -#define HV_X64_MSR_STATS_VP_RETAIL_PAGE 0x400000E2 -#define HV_X64_MSR_STATS_VP_INTERNAL_PAGE 0x400000E3 -#define HV_X64_MSR_GUEST_IDLE 0x400000F0 -#define HV_X64_MSR_SYNTH_DEBUG_CONTROL 0x400000F1 -#define HV_X64_MSR_SYNTH_DEBUG_STATUS 0x400000F2 -#define HV_X64_MSR_SYNTH_DEBUG_SEND_BUFFER 0x400000F3 -#define HV_X64_MSR_SYNTH_DEBUG_RECEIVE_BUFFER 0x400000F4 -#define HV_X64_MSR_SYNTH_DEBUG_PENDING_BUFFER 0x400000F5 -#define HV_X64_MSR_CRASH_P0 0x40000100 -#define HV_X64_MSR_CRASH_P1 0x40000101 -#define HV_X64_MSR_CRASH_P2 0x40000102 -#define HV_X64_MSR_CRASH_P3 0x40000103 -#define HV_X64_MSR_CRASH_P4 0x40000104 -#define HV_X64_MSR_CRASH_CTL 0x40000105 - int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val); int viridian_synic_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t *val); diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c index 4b06b78a27..341592f054 100644 --- a/xen/arch/x86/hvm/viridian/viridian.c +++ b/xen/arch/x86/hvm/viridian/viridian.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -19,22 +20,6 @@ #include "private.h" -/* Viridian Hypercall Status Codes. */ -#define HV_STATUS_SUCCESS 0x0000 -#define HV_STATUS_INVALID_HYPERCALL_CODE 0x0002 -#define HV_STATUS_INVALID_PARAMETER 0x0005 - -/* Viridian Hypercall Codes. */ -#define HvFlushVirtualAddressSpace 0x0002 -#define HvFlushVirtualAddressList 0x0003 -#define HvNotifyLongSpinWait 0x0008 -#define HvSendSyntheticClusterIpi 0x000b -#define HvGetPartitionId 0x0046 -#define HvExtCallQueryCapabilities 0x8001 - -/* Viridian Hypercall Flags. */ -#define HV_FLUSH_ALL_PROCESSORS 1 - /* Viridian Partition Privilege Flags */ typedef struct { /* Access to virtual MSRs */ @@ -214,7 +199,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf, /* * This value is the recommended number of attempts to try to * acquire a spinlock before notifying the hypervisor via the - * HvNotifyLongSpinWait hypercall. + * HVCALL_NOTIFY_LONG_SPIN_WAIT hypercall. */ res->b = viridian_spinlock_retry_count; break; @@ -583,7 +568,7 @@ int viridian_hypercall(struct cpu_user_regs *regs) switch ( input.call_code ) { - case HvNotifyLongSpinWait: + case HVCALL_NOTIFY_LONG_SPIN_WAIT: /* * See section 14.5.1 of the specification. */ @@ -591,8 +576,8 @@ int viridian_hypercall(struct cpu_user_regs *regs) status = HV_STATUS_SUCCESS; break; - case HvFlushVirtualAddressSpace: - case HvFlushVirtualAddressList: + case HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE: + case HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST: { struct { uint64_t address_space; @@ -632,7 +617,7 @@ int viridian_hypercall(struct cpu_user_regs *regs) break; } - case HvSendSyntheticClusterIpi: + case HVCALL_SEND_IPI: { struct vcpu *v; uint32_t vector; @@ -695,7 +680,7 @@ int viridian_hypercall(struct cpu_user_regs *regs) gprintk(XENLOG_WARNING, "unimplemented hypercall %04x\n", input.call_code); /* Fallthrough. */ - case HvExtCallQueryCapabilities: + case HVCALL_EXT_CALL_QUERY_CAPABILITIES: /* * This hypercall seems to be erroneously issued by Windows * despite EnableExtendedHypercalls not being set in CPUID leaf 2. diff --git a/xen/include/asm-x86/guest/hyperv-tlfs.h b/xen/include/asm-x86/guest/hyperv-tlfs.h index ccd9850b27..b128807b2c 100644 --- a/xen/include/asm-x86/guest/hyperv-tlfs.h +++ b/xen/include/asm-x86/guest/hyperv-tlfs.h @@ -374,6 +374,7 @@ struct hv_tsc_emulation_status { #define HVCALL_SIGNAL_EVENT 0x005d #define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_SPACE 0x00af #define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_LIST 0x00b0 +#define HVCALL_EXT_CALL_QUERY_CAPABILITIES 0x8001 #define HV_X64_MSR_VP_ASSIST_PAGE_ENABLE 0x00000001 #define HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT 12