From patchwork Sun Dec 22 23:20:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 11307705 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 5337D139A for ; Sun, 22 Dec 2019 23:22:09 +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 231E820684 for ; Sun, 22 Dec 2019 23:22:09 +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="QI96+amy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 231E820684 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 1ijAWw-0004PY-9V; Sun, 22 Dec 2019 23:20:58 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ijAWu-0004P9-Ef for xen-devel@lists.xenproject.org; Sun, 22 Dec 2019 23:20:56 +0000 X-Inumbo-ID: accb77ca-2511-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 accb77ca-2511-11ea-88e7-bc764e2007e4; Sun, 22 Dec 2019 23:20:43 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id j42so14836332wrj.12 for ; Sun, 22 Dec 2019 15:20:43 -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=0FuqPg6OicHWxmxledg/CsU4XQQ9Kjf4XPECo9VYLsw=; b=QI96+amyNQT37ZoWUJTXu9SxcZmtEO8C0BB5cz9YVSJRjocF/surQ899Kh47GRlqWo ffEbzmQmhjikSTnIhkxJGh897MYBI8pPf0tk8+6/Y5OrWt5tcRIIKP//Xy35R1wNWgjp dh+dmelE8ltFdu6sBg4Yb1wdNM6EpP5TdpSufYFUfeUcBtbxc28UT7Zsy4S2Q5PsNQ7f eBoLxbyOJTxhfHSfLTLcyRMamXmlxKVVYGCmEPGCOhBPmcNNsWMeF/Twq9k2YFpWspIL cSLl0EORMx8mz5DiARhXLxCYrC5ELhV43+bbii4jBeDJCAtqc79qmt5Zr0egw/gH0Zq2 QTfw== 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=0FuqPg6OicHWxmxledg/CsU4XQQ9Kjf4XPECo9VYLsw=; b=IKcqjQUbk+JLE1g+Ua0CO7GLQe5I6b4vb5s5FdGRjGiprlN2JQ08ZL1JkJuAARvJcx FWjXezGb77IghpD/YdpvTkdmweW4blbMSZwJp++p5eHDnGAQXqDAC3PIwrtran43TNOJ J/8HFbftn1a9VuakMsxmjU6THMNXLirKhBYiEdBzPca5ZN//iY+yXo7DAjuNVuJN3EvX YOh2trMX5tou5YY9p3VnrTPzqqTeqEkIsmGxvIcbpEWHayw7sabAiz1Gb9OyE0chpXw1 jEsqcHJn4Z0IluHFtpMc4Zqb4485EOZILsnp5kv+3TYJXJ+RaPb8drahb01o4ZuXdUIm tf0A== X-Gm-Message-State: APjAAAXldcHzmmh+Whdx5vTJCS/H1imG37vyBOCUGp0MaAKC4c5hvqTE vfcElViw3X0dweAE6BAL0zEJ0HWB X-Google-Smtp-Source: APXvYqyCS04af0H2GZWbuDL2vxFE/0q7xGQuYSaWZU8+iPR3UvXNMq9pKtBhjvR93EyXQ+Dm4s92NQ== X-Received: by 2002:adf:f103:: with SMTP id r3mr26168085wro.295.1577056842635; Sun, 22 Dec 2019 15:20:42 -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 h2sm19925613wrt.45.2019.12.22.15.20.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Dec 2019 15:20:42 -0800 (PST) From: Wei Liu X-Google-Original-From: Wei Liu To: Xen Development List Date: Sun, 22 Dec 2019 23:20:35 +0000 Message-Id: <20191222232035.31613-4-liuwe@microsoft.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191222232035.31613-1-liuwe@microsoft.com> References: <20191222232035.31613-1-liuwe@microsoft.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 3/3] x86/viridian: drop viridian_stimer_config_msr 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" Use hv_stimer_config instead. No functional change. Signed-off-by: Wei Liu Reviewed-by: Paul Durrant --- xen/arch/x86/hvm/viridian/time.c | 28 ++++++++++++++-------------- xen/include/asm-x86/hvm/viridian.h | 19 +------------------ 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/time.c index 0f1cd9e208..3de5665c02 100644 --- a/xen/arch/x86/hvm/viridian/time.c +++ b/xen/arch/x86/hvm/viridian/time.c @@ -220,7 +220,7 @@ static void poll_stimer(struct vcpu *v, unsigned int stimerx) * is disabled make sure the pending bit is cleared to avoid re- * polling. */ - if ( !vs->config.enabled ) + if ( !vs->config.enable ) { clear_bit(stimerx, &vv->stimer_pending); return; @@ -239,7 +239,7 @@ static void poll_stimer(struct vcpu *v, unsigned int stimerx) if ( vs->config.periodic ) start_stimer(vs); else - vs->config.enabled = 0; + vs->config.enable = 0; } void viridian_time_poll_timers(struct vcpu *v) @@ -285,7 +285,7 @@ static void time_vcpu_thaw(struct vcpu *v) { struct viridian_stimer *vs = &vv->stimer[i]; - if ( vs->config.enabled ) + if ( vs->config.enable ) start_stimer(vs); } } @@ -355,12 +355,12 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val) stop_stimer(vs); - vs->config.raw = val; + vs->config.as_uint64 = val; if ( !vs->config.sintx ) - vs->config.enabled = 0; + vs->config.enable = 0; - if ( vs->config.enabled ) + if ( vs->config.enable ) start_stimer(vs); break; @@ -383,11 +383,11 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val) vs->count = val; if ( !vs->count ) - vs->config.enabled = 0; + vs->config.enable = 0; else if ( vs->config.auto_enable ) - vs->config.enabled = 1; + vs->config.enable = 1; - if ( vs->config.enabled ) + if ( vs->config.enable ) start_stimer(vs); break; @@ -454,7 +454,7 @@ int viridian_time_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t *val) unsigned int stimerx = (idx - HV_X64_MSR_STIMER0_CONFIG) / 2; const struct viridian_stimer *vs = &array_access_nospec(vv->stimer, stimerx); - union viridian_stimer_config_msr config = vs->config; + union hv_stimer_config config = vs->config; if ( !(viridian_feature_mask(d) & HVMPV_stimer) ) return X86EMUL_EXCEPTION; @@ -464,9 +464,9 @@ int viridian_time_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t *val) * the enabled flag is clear. */ if ( !config.periodic && test_bit(stimerx, &vv->stimer_pending) ) - config.enabled = 0; + config.enable = 0; - *val = config.raw; + *val = config.as_uint64; break; } @@ -549,7 +549,7 @@ void viridian_time_save_vcpu_ctxt( { const struct viridian_stimer *vs = &vv->stimer[i]; - ctxt->stimer_config_msr[i] = vs->config.raw; + ctxt->stimer_config_msr[i] = vs->config.as_uint64; ctxt->stimer_count_msr[i] = vs->count; } } @@ -564,7 +564,7 @@ void viridian_time_load_vcpu_ctxt( { struct viridian_stimer *vs = &vv->stimer[i]; - vs->config.raw = ctxt->stimer_config_msr[i]; + vs->config.as_uint64 = ctxt->stimer_config_msr[i]; vs->count = ctxt->stimer_count_msr[i]; } } diff --git a/xen/include/asm-x86/hvm/viridian.h b/xen/include/asm-x86/hvm/viridian.h index d694d83521..d9138562e6 100644 --- a/xen/include/asm-x86/hvm/viridian.h +++ b/xen/include/asm-x86/hvm/viridian.h @@ -28,27 +28,10 @@ struct viridian_page void *ptr; }; -union viridian_stimer_config_msr -{ - uint64_t raw; - struct - { - uint64_t enabled:1; - uint64_t periodic:1; - uint64_t lazy:1; - uint64_t auto_enable:1; - uint64_t vector:8; - uint64_t direct_mode:1; - uint64_t reserved_zero1:3; - uint64_t sintx:4; - uint64_t reserved_zero2:44; - }; -}; - struct viridian_stimer { struct vcpu *v; struct timer timer; - union viridian_stimer_config_msr config; + union hv_stimer_config config; uint64_t count; uint64_t expiration; bool started;