From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933021AbdHYN5v (ORCPT ); Fri, 25 Aug 2017 09:57:51 -0400 Received: from mail-by2nam03on0087.outbound.protection.outlook.com ([104.47.42.87]:43246 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932988AbdHYN5p (ORCPT ); Fri, 25 Aug 2017 09:57:45 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: linux-next: manual merge of the kvm tree with the tip tree To: Paolo Bonzini , Stephen Rothwell , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , KVM , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Peter Zijlstra Cc: Linux-Next Mailing List , Linux Kernel Mailing List , Yu Zhang , Brijesh Singh References: <20170825143930.494744fe@canb.auug.org.au> <2984689e-ab4e-0c22-7151-adfeeffce4ed@redhat.com> From: Tom Lendacky Message-ID: Date: Fri, 25 Aug 2017 08:57:38 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <2984689e-ab4e-0c22-7151-adfeeffce4ed@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR13CA0068.namprd13.prod.outlook.com (10.175.103.158) To BN6PR12MB1137.namprd12.prod.outlook.com (10.168.226.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b5d0e1a9-c1d9-4c07-08fc-08d4ebc141cb X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BN6PR12MB1137; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;3:oVkAqOWDhQBgE2TDHv9CauFc9rDIqIkIfDyDhClK1sEYEU7+mIs4D2bG41w/iTVgeIzGEtoFy9/cPiofkHR5pydqOVRjDBprXf1cbnPmVUSW6CqCiXLl/08IGSp+G/f34/x6/3SJL7RFUpbtIT+YmbPS70TZYz6Utgi4qP7PSXLzrIerKZUNLh0Q+TmNZ0R5KCXOJfrI1ctN7YwFn5XWE/CFnWwQRGVi9OE795zW7fdrS5bzJ76IPEpEIYeqJbz0;25:8Gt43lGq77V3SYQoEHzcQqoxO7pz55uX/9BoiUPZdtf0fnchfKtgA53UM/hSUUp9K0i26dJDi1Dl0Cq2+cThKgbFgGyXhu/I9et0toy+klBUvcLCY0pwFMULILg3oMIy17vA+3obt57NBPKZqVNQRa+PRay/mpoLCNTcg/rbXt8VtrwAPqFC9m1kYBnM8/pj4lh2o2B2MY9dfguT+yYJkK4RjDGmTPw6rIug112L5cKoxsYCrCPerKrEcd4LbZNBKbBCy+r4L5NjkSoCG/ejnfVtHePAMFqHZ2LXP7/7NpcMRbWfW5ueuJnyLWYNh3893greFVeiL1XhY1s77YjDzw==;31:gBztc8pyp1TkRl5Fzch7cMDC49EQX12wlP0UCEus6EOXWhJv2++XuR/cJiEA3wPvI35lx+MTn+v7kXX6CXOiJXTcFD3F5cJI+TGLgZ3Y/ukHtFdioJMs8y4IUhD+CS9UxixWAWPMVlAC/1A+VHOD2XRXs4+0Ar+XJ+n73gHThuzZ4Hcu+QSLRL/E977lCP+yEJvWWunL3DxHduneoglUbtqygSo06DiVR8/lqQ+Zv6A= X-MS-TrafficTypeDiagnostic: BN6PR12MB1137: X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;20:JLHuEPUmhLG6iYb0yWiWU3pe4jky3oZgx6Tt3ZvjLleiBVzYNpp20CD+Gq7tod6nv7LosgXzRneNRUdiodIuJyf8kakzEATwDfK/yJP+7MDIQcqqKykewvrox7XX2mtARgvhZDc9o8q7/Mjl8kEh9I3smyVM6X9fVyVQXVjqe/HrVSgFUZzwuNIgbwUHkTw4qwrMeZ8n+DfPY3sC95EP6Cx8zRTJIjBPAeLd8T0JjlL+VbXUmSsPs8l2MfLlClrfzd4GVhhGDfn6yqaWBufFKScS50h8ZpQLpNpD2gLA77XbFbF4dm+qzCZu2hLdOZtEdb9AvUPneclxXqSuo5bQ9Wy9tKRxBwjE96VevCamBrudKsFxO4MdlpnaMJhqqWy0s5cEx9lTlfLnStNe4y+mr59ICXdXkc5VrtN8pc9CQMMuKoxMoTKuMP4/TlqQ0IcXq8cz01dUn/vD1sPEb33/9FLYYOFOOdRVkMLyVgeA/rGHv1+vXFUZNTFzwsCvcDNk;4:8eA1HTgNooTypb8bk0ASnEm8+PqDsH+rKGNJ5rl0SH/Fmi+IcptY6V51xvw32thuQ626DyvlGKAJlRzYrWsjju0gOycj3i4rw5ID2/tv8bGTdLT5aUWTzXkxyROSMdQPoWvHT+egx/84vLvYcplkO4P6NT0+sXPQ/u/3leExq5OnqXuFYrbEHsKGuUjvgHl/PG1PKW/O/+AS/v7k3GvYXyskLlfzDLYcJZkRbFFe2Q+DySJmqfHFCUhOOIdKgSkG X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR12MB1137;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR12MB1137; X-Forefront-PRVS: 041032FF37 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6009001)(6049001)(39860400002)(189002)(377454003)(53754006)(24454002)(199003)(6246003)(189998001)(4326008)(42186005)(6666003)(53936002)(47776003)(101416001)(54356999)(36756003)(305945005)(50986999)(7350300001)(3260700006)(25786009)(64126003)(7736002)(72206003)(50466002)(76176999)(106356001)(8676002)(65806001)(65956001)(66066001)(105586002)(81156014)(53546010)(2906002)(33646002)(575784001)(81166006)(86362001)(478600001)(77096006)(5660300001)(31696002)(54906002)(2950100002)(83506001)(65826007)(6116002)(229853002)(3846002)(90366009)(4001350100001)(97736004)(68736007)(31686004)(6486002)(7416002)(230700001)(23676002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1137;H:[10.236.64.148];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzIzOjFNTmRBLzVPVDhENW1zMlRlaEFWV2JlYUFX?= =?utf-8?B?dXdQaVQ3VzJ1bElQeFQ0dG1BUDNLTXZEVy9uYzVDTzBxY1ZOZ0ZnQU1JQjd4?= =?utf-8?B?cHVKdkZqeUV5OFZtR3NlSXk0RnFSNS93T1Vsck1HcmZZbVV6dVdCdFFZZE1k?= =?utf-8?B?ZUF2cUpvKzEzYWdpVyswa054d3dkVG9icGxURFlKNUtEb1U4YURiNWFrbHpi?= =?utf-8?B?c2o2dWZBWHBvcDRZVGtWeDVZbERlclN5T2tyMWt6U3BoTTdOajFacDZONXRM?= =?utf-8?B?U0JzNmFIYVFPUjlBNzVucjI1Q1d0a0oyWHZxQ0l5Q0I5MjZKNEJLT1QxUW1I?= =?utf-8?B?KzBVWlJrM1BUcGttT0VjVGlEeUJLZE1mdktUTHVxZmN2SWwvZVZUTC8ydVhT?= =?utf-8?B?SFBiU3piVG9ISWFncHFyb0Q2cG1XZ09NK3RqS3VleVEyK2Q0NU9aNXBpakwz?= =?utf-8?B?dXdqenRhRGtmb3pWM0swY01iQlU5ZnlVNWpjQXg2K0VnRk8ycVhkNUZFbzdu?= =?utf-8?B?MFdtdHRmWjRCa1hTa3BtSm85T0VqR2dHQnk0WWFtYndsTzkyb1hwck9aZ1Jz?= =?utf-8?B?cmtxOGY4QmRETHZCOGdDUHNHVzQzTFUwTTlWclV5R2hJc1JDYktNeGZtMmV5?= =?utf-8?B?QUVDSTc4RDlzRjY0VVMyRjNISC9ob2s1bzgzTkU0ZDJOdG56WnJVYkd3WTVv?= =?utf-8?B?MTVzV3k0OXAxQ3hRUm5HQTZlOXlIREk5ZnRlQXo3R1hzWGJoanZCMzZZcjlC?= =?utf-8?B?b3BaT1p1TDVVOUNhR1BvZm5RUE0wS0FoZmlHM2s5TkVyYlRCWEZHNjFQUnB0?= =?utf-8?B?aUtYakZlSUpSVmpxSVJzUHBSc1pJWnZyM0ZoS3d6L0pDaVZGUXdyaSt3MFVw?= =?utf-8?B?MWlJeDBsL0k3d25mK1haM0k3N0RoZ2NZZEpFWmJIVkRWQ2JHZEpSMGlMcnRo?= =?utf-8?B?K0JQaUFJSUo3SFdtaXNUN3NPME80bmdjQ0hJRnBwS3h6djF4QzFVZmRRbTdO?= =?utf-8?B?Q1J4dHA1dG44dWErUmdab21ucEZjRnhZTmJYTzJpQzlkLzlSV3FGTzN1ZlJx?= =?utf-8?B?NzFXS2NyanZyeXRiWCtNZGgrR1FWTmk3ejF3L253OVJ0djUyRXZycDU5L2Nq?= =?utf-8?B?OGE4WWdrQ2dZcVFValJxSXdrWHFGaVpNVTdsTG9kcC80RFZwTGJNRmpHVjJu?= =?utf-8?B?YUJRUnJhK0R1S2tOajFHUUFLb2dsU1ErN2p2WG13c3ZyL1hWUUVkSmFySTN5?= =?utf-8?B?R3NaN09wTXprSkFpTzNGMnhkUGwxV1pDWElML3RVZ3FBZXlUN2N5RGM3MTA1?= =?utf-8?B?VXhteUxvQVU4QVBIVE42UVFuVWhKYmlSSkF0QTlZdnl4ODRJSU50VjdKZi9s?= =?utf-8?B?aEl0Y3ZkenNDZEQ5YnUvT1MrZy9HQlQrVWJyZFFhTTk1Q0UrR3BxcHFHS2x1?= =?utf-8?B?bHpoS3p0T3pYL09FS1JyYlhXTEFVSnJnVFUwVFJqQ3VFVVBHUUg2bFNQN3Jl?= =?utf-8?B?UHhZV1EyTGhjbmkrdTJlbFRyUEJXVEpvTjlpeFUxYmkwem85bGpSSmtTWGlv?= =?utf-8?B?amxVaG12RGJpRFJQcGNGK0pGK3JxYzJBbTRoVGZScVVCOTM3YjJwSGdZei9U?= =?utf-8?B?c2xLYTZzVGE2ckhvVWRIVjdPMyt2ZnoyM2NKS2krcHN0UndwK2ZVZ29ud1lt?= =?utf-8?B?ZWpmTW9pakZxTTl1N0E1TjgrSURncUFKK2dpNGJPUW95MjRGYUtiMTJiTU9j?= =?utf-8?B?cG1HTEl2aU1yL0wxaVlYbFNLRmtKT295NEZ2OTZHcXBTRWo3QWl0L0xaRmJo?= =?utf-8?B?MzRoNk1odE5uT1lVN1BTNWFOMHppQ0RjQUt5aW8rRllESDRpdHdjSWY2VzNo?= =?utf-8?B?MUgyZkdhZURSRkovQlJHc2xTaFhSWXREYktMM25oQlJFK2x3L01XeWlBcnBI?= =?utf-8?B?WkhwT0FDaEtVQzRpZlpuS0JlZjhoZytJRU5FeFhENHY0VHhzTnBlKzR6RE1C?= =?utf-8?B?UCtGQkJvTGhhSXBhU0xLWE1pRjNTQVI4VU5UamsrZ21qWmhscllBczlZUXh6?= =?utf-8?Q?Xp04=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;6:E1DzNDgYXAzUIrA6hPbmruwp0M2FrR0w9EJBctzyduV+RQS8/sh2AQJ5U/2JYsPxwvhXP3E0EF6Xz7dQVpj3k+X4UR0q/O2ikIagcE08ekADJ7HQa3DNixFQ5anJuGv5cHj3DmqESnPQn6U72slm7QBqoiPDst1/XpXEH/woP5uecVhDFhoh+0pusjl+OFrAin/6GAquT+7x49t9wKAfqGYFxheO8Tqw3WD48MeBVFTL43NbhGvYk56w8qpXdrW8RvhJzYD2Q91vSrCqmSJMvyqe+IDjfRh3oXSqE4ioBRFQkVvV/EMbHUbdmRnev0tZWyF2ni5yE8zKkZKDKBIYPQ==;5:j/fObvWNI02O0qiLkLnzzvLypR4XORVmWMTNwbKtZXYyEJCrBQT80GXkzy7aF0RdPU3cckdsNzsKc8MybiGikD0KeShH/sbcZkrmw59oRNVOV7vyWnfylmtFbYsdkEWLxY0RArxEm/EW8YO1taAwqA==;24:LAdBHiZPVK1lQFcjbO49YOZ4lPVv+GDJrqmgVF0JAt1qhuPqX7dO2qb7UdIq4lkeM8McX1OHkQImqASWerxUCLh8YKXETMGPhbEvnBzSNpk=;7:EvrraOSD49y+1uG8qPZxT8DVX8O5PZz9Zdngy24lbtaWPzjvsNVif+l52uwpn1EFU80457X6JPdleeydBg3IZtt/l+5WN/71KK07oknBDJBw5MEkgDgK6AFm08TEszLyfRRBN9ZZ2gy1dE8ZsXOu7Hrn5ek/Kz0oAwMslOEB2n9UJ+CugKrdahYGxCYQzkDPpfnLjFA2UT9HmWMNtASxpbHQrdydR5w3G929LUedYtY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;20:/jhnZr8pLGKPbpbu4b10J/UW8/DZhRUVdKCHXRdhyrayBk++7ArdVJOQhJqG+FMiDMHdFswwTocumN62w43Ik/yXr2hcJb9QTdMWBMvh7g/LyXKK7Ir+4vnpTO8PN1hwg/TAAvnin+9+JM59SY6LczUgxSwdZvw6STOLRFB1uoHnrw0Z+ZEptqaDdhn1pNWSIpE7ModDyU2rk+Q4/7/pJC5QJcT7YB6imvF06CBLc31NetMniT6rLi9HHvkKduYD X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2017 13:57:42.0498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1137 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/25/2017 1:39 AM, Paolo Bonzini wrote: > On 25/08/2017 06:39, Stephen Rothwell wrote: >> Hi all, >> >> Today's linux-next merge of the kvm tree got a conflict in: >> >> arch/x86/kvm/mmu.h >> >> between commit: >> >> d0ec49d4de90 ("kvm/x86/svm: Support Secure Memory Encryption within KVM") >> >> from the tip tree and commit: >> >> d1cd3ce90044 ("KVM: MMU: check guest CR3 reserved bits based on its physical address width.") >> >> from the kvm tree. >> >> I fixed it up (see below) and can carry the fix as necessary. This >> is now fixed as far as linux-next is concerned, but any non trivial >> conflicts should be mentioned to your upstream maintainer when your tree >> is submitted for merging. You may also want to consider cooperating >> with the maintainer of the conflicting tree to minimise any particularly >> complex conflicts. >> > > Thomas L., Ingo, > > this is completely wrong: > >> >> static inline u64 rsvd_bits(int s, int e) >> { >> - return ((1ULL << (e - s + 1)) - 1) << s; >> + return __sme_clr(((1ULL << (e - s + 1)) - 1) << s); >> } >> > > First, rsvd_bits is just a simple function to return some 1 bits. Applying > a mask based on properties of the host MMU is incorrect. > > Second, the masks computed by __reset_rsvds_bits_mask also apply to > guest page tables, where the C bit is reserved since we don't emulate > SME. > > Something like this: Thanks Paolo, Brijesh and I will test this and make sure everything works properly with this patch. Thanks, Tom > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > index 2dafd36368cc..e0597d703d72 100644 > --- a/arch/x86/kvm/mmu.c > +++ b/arch/x86/kvm/mmu.c > @@ -4142,16 +4142,24 @@ void > reset_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, struct kvm_mmu *context) > { > bool uses_nx = context->nx || context->base_role.smep_andnot_wp; > + struct rsvd_bits_validate *shadow_zero_check; > + int i; > > /* > * Passing "true" to the last argument is okay; it adds a check > * on bit 8 of the SPTEs which KVM doesn't use anyway. > */ > - __reset_rsvds_bits_mask(vcpu, &context->shadow_zero_check, > + shadow_zero_check = &context->shadow_zero_check; > + __reset_rsvds_bits_mask(vcpu, shadow_zero_check, > boot_cpu_data.x86_phys_bits, > context->shadow_root_level, uses_nx, > guest_cpuid_has(vcpu, X86_FEATURE_GBPAGES), > is_pse(vcpu), true); > + > + for (i = context->shadow_root_level; --i >= 0; ) { > + shadow_zero_check->rsvd_bits_mask[i][0] &= ~shadow_me_mask; > + shadow_zero_check->rsvd_bits_mask[i][1] &= ~shadow_me_mask; > + } > } > EXPORT_SYMBOL_GPL(reset_shadow_zero_bits_mask); > > > Can you please fix it up? Please Cc me at paolo.bonzini@gmail.com too > because I'll be on vacation next week. > > (And thanks Stephen for the heads-up!) > > Paolo >