Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp634938ybt; Fri, 19 Jun 2020 09:50:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzSdEMx7WQESCfLVXnkzL8LCQkEebgyCmCyoQjB7VkaF9KCCCvKNLIpfYMIrxC5Hzsq/R+f X-Received: by 2002:a17:906:19d3:: with SMTP id h19mr4417088ejd.106.1592585427879; Fri, 19 Jun 2020 09:50:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592585427; cv=none; d=google.com; s=arc-20160816; b=uVNozL8Cz4hU6YmfEmpNgFG5Gz7zX07da9QghTEbEEEtJAtnzHETqKp8W2QyZ3ueUX Y5fCpRfYlN385TeUVAqtNN3z7t+56fms+gSKwi8WUGJSXYDmyYGaVMQqrgJsL3C+g8uw u2rqx/Du0mvSxutUh3fcWrsjRP9p6srDGIpQuHWQWDclWxi5btu0WEkbZCvFeSFhMnHv pxxPTYeIWX/TV1NM5FcKpfk08pvsxzMc5Bc3krqhMTm7hFC5kQVgaKYXboAD+fuUdnW5 nI7pvYyIHzrVBly/W0u+buwSzaAsiaguLmbrsHB+TZdH+IvQ/7faZQ8cd5LiZSFB0zHH XJ1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vU4WbDCJoSKKQ73xcSOJcRWpn/viPVqTmPDb4RSeJhQ=; b=tCav6o7tkD5cPpqOZjAhZb9OtFRPJbRzvhn7ZFavsYR8dTZ3iAdudhT+gyAy/8g73y 69eeuxhLosvEt3isMNaEcqrSyyXffpsJbq0ZqoPEAH1thqI2JFJXqVSju/e1fCmJgKG8 EEI8yftZnyMmYK6ki2dTgM5QqgMgbC3+6OWMz48LEcMFnEzYt1jypHnd554BRcq0BR27 lfPV/o9BE1NGBRSel5S4tSSQIDjiCEOnmTinyRe93xhsMXFVgPS7uKTyTwJYiJL544GG Vmu0FGVzYOAlLIhCLZwz+0kUnSrPwrFPM8vVy9ips5LeDTEA/oHrdjzh9WjFiNtnAc9G Lt/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=pwCkymbb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w8si4098051eju.480.2020.06.19.09.50.05; Fri, 19 Jun 2020 09:50:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=pwCkymbb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404860AbgFSQpe (ORCPT + 99 others); Fri, 19 Jun 2020 12:45:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:60930 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387988AbgFSOmG (ORCPT ); Fri, 19 Jun 2020 10:42:06 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 971B220CC7; Fri, 19 Jun 2020 14:42:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592577726; bh=lbF6sIeU9WMTXx2rz1p0SggkawNhrB2OOVw0p1MoR6A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pwCkymbbME3nb5i0MQagV16H0UlTDe8IpM3S7qnYK6FqqxhoWqShjC9NX8kJUJCIK 5cLzCdN9NKuTQzSAAPjVe0mlgpgCcFDQxlsLesA5u1FMiDJmgYBNRT+ig3rir2yfS3 VcQ71/XqhtDilJTl7CWUzUk7Or2M4h9Bqx4aD8DQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vitaly Kuznetsov , Jon Doron , Roman Kagan , Paolo Bonzini , Sasha Levin Subject: [PATCH 4.9 065/128] x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit Date: Fri, 19 Jun 2020 16:32:39 +0200 Message-Id: <20200619141623.648443544@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141620.148019466@linuxfoundation.org> References: <20200619141620.148019466@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jon Doron [ Upstream commit f7d31e65368aeef973fab788aa22c4f1d5a6af66 ] The problem the patch is trying to address is the fact that 'struct kvm_hyperv_exit' has different layout on when compiling in 32 and 64 bit modes. In 64-bit mode the default alignment boundary is 64 bits thus forcing extra gaps after 'type' and 'msr' but in 32-bit mode the boundary is at 32 bits thus no extra gaps. This is an issue as even when the kernel is 64 bit, the userspace using the interface can be both 32 and 64 bit but the same 32 bit userspace has to work with 32 bit kernel. The issue is fixed by forcing the 64 bit layout, this leads to ABI change for 32 bit builds and while we are obviously breaking '32 bit userspace with 32 bit kernel' case, we're fixing the '32 bit userspace with 64 bit kernel' one. As the interface has no (known) users and 32 bit KVM is rather baroque nowadays, this seems like a reasonable decision. Reviewed-by: Vitaly Kuznetsov Signed-off-by: Jon Doron Message-Id: <20200424113746.3473563-2-arilou@gmail.com> Reviewed-by: Roman Kagan Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- Documentation/virtual/kvm/api.txt | 2 ++ include/uapi/linux/kvm.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index d1908e50b506..b8f5bf2a890a 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt @@ -3534,9 +3534,11 @@ EOI was received. #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index a0a365cbf3c9..0c02441d2cc9 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -159,9 +159,11 @@ struct kvm_hyperv_exit { #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; -- 2.25.1