Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751173AbeAOWr3 (ORCPT + 1 other); Mon, 15 Jan 2018 17:47:29 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:38616 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750842AbeAOWr2 (ORCPT ); Mon, 15 Jan 2018 17:47:28 -0500 X-Google-Smtp-Source: ACJfBotpAZgVHWd1joqgO0jGncDDl6m/6lQffigoSmBZ2JwdEBpEZaCIun6+9w4dhqddRPgoD6HE9w== Subject: Re: [PATCH v3 0/5] x86: SME: BSP/SME microcode update fix To: Borislav Petkov , Tom Lendacky Cc: x86@kernel.org, Brijesh Singh , linux-kernel@vger.kernel.org, Ingo Molnar , "H. Peter Anvin" , Thomas Gleixner References: <20180110192544.6026.17285.stgit@tlendack-t1.amdoffice.net> <20180111183313.7ub2t3xkeko5yb3z@pd.tnic> From: Gabriel C Message-ID: <68544677-2cbc-b41e-2db0-5799ef84d592@gmail.com> Date: Mon, 15 Jan 2018 23:47:24 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180111183313.7ub2t3xkeko5yb3z@pd.tnic> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 11.01.2018 19:33, Borislav Petkov wrote: > On Wed, Jan 10, 2018 at 01:25:45PM -0600, Tom Lendacky wrote: >> This patch series addresses an issue when SME is active and the BSP >> is attempting to check for and load microcode during load_ucode_bsp(). >> Since the initrd has not been decrypted (yet) and the virtual address >> of the initrd treats the memory as encrypted, the CPIO archive parsing >> fails to locate the microcode. >> >> This series moves the encryption of the initrd into the early boot code >> and encrypts it at the same time that the kernel is encrypted. Since >> the initrd is now encrypted, the CPIO archive parsing succeeds in >> properly locating the microcode. >> >> The following patches are included in this fix: >> - Cleanup register saving in arch/x86/mm/mem_encrypt_boot.S >> - Reduce parameters and complexity for creating the SME PGD mappings >> - Centralize the use of the PMD flags used in sme_encrypt_kernel() in >> preparation for using PTE flags also. >> - Prepare sme_encrypt_kernel() to handle PAGE aligned encryption, not >> just 2MB large page aligned encryption. >> - Encrypt the initrd in sme_encrypt_kernel() when the kernel is being >> encrypted. >> >> This patch series is based on tip/master. >> >> --- >> >> Changes from v2: >> - General code cleanup based on feedback. >> >> Changes from v1: >> - Additional patch to cleanup the register saving performed in >> arch/x86/mm/mem_encrypt_boot.S in prep for changes made in the >> remainder of the patchset. >> - Additional patch to reduce parameters and complexity for creating the >> SME PGD mappings by introducing and using a structure for referencing >> the PGD to populate, the pagetable allocation area, the virtual/physical >> addresses being mapped and the pagetable flags to be used. >> - Consolidate PMD/PTE mapping code to reduce duplication. >> >> Tom Lendacky (5): >> x86/mm: Cleanup register saving in mem_encrypt_boot.S >> x86/mm: Use a struct to reduce parameters for SME PGD mapping >> x86/mm: Centralize PMD flags in sme_encrypt_kernel() >> x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption >> x86/mm: Encrypt the initrd earlier for BSP microcode update >> >> >> arch/x86/include/asm/mem_encrypt.h | 4 >> arch/x86/kernel/head64.c | 4 >> arch/x86/kernel/setup.c | 10 - >> arch/x86/mm/mem_encrypt.c | 356 ++++++++++++++++++++++++++---------- >> arch/x86/mm/mem_encrypt_boot.S | 80 ++++---- >> 5 files changed, 308 insertions(+), 146 deletions(-) > > All 5: > > Reviewed-by: Borislav Petkov > Guys , are these patches going to be part of 4.15 ? With mem_encrypt=on without these patches microcode loading doesn't work right. Also @stable 4.14 would need the fixes too. Regards, Gabriel C