Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp188603imj; Thu, 14 Feb 2019 18:16:51 -0800 (PST) X-Google-Smtp-Source: AHgI3IbuXeOCCu5yRLBilVlpveLKlk1WfsYU26oUATCF25qtRrbBHC5Kd1QM+qIDh1l9hEyXA1Or X-Received: by 2002:a62:55c4:: with SMTP id j187mr7291420pfb.129.1550197011914; Thu, 14 Feb 2019 18:16:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550197011; cv=none; d=google.com; s=arc-20160816; b=K5DgUL7PTs+Z+MDfpL2nx7F6lL+NdnsZjrzSFpeLGYquJEWpKZVxLU/6fCj/mizlS6 2jJB++lfBUbi3HfHDOfB5h2Rn7PXWL7tjkkISAPnwfTBzSFp3LHrTbz/WmsBu7DT4ACQ PzA2I50FzG8dLVLgeXLspeDjKkknMtOZF/CByHP1Uif8suOUx/g8u5fNoYOCd6iBCJoA MIchtWFDljEaWym7Ku0gsfaRjQt7Gu968bNaUO3U90AHR5gcWQU9gjfqCCCOD97WPtUH s6ZwJTSJe844wL+iey7nxmSi78f+U6r+Z/0J6xUza+FBBIbxIr1cereVFH4X3D5BhpV4 VH/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=YXNKJdmi4HHHDDVl1VYgX2tpqwvynd/y3JOmjP22/pg=; b=OIJBGIspoQz35pmQ3gcAiwOKY2zVfNgbxQuDr3UKhE+/Vq6q/2Xprrhbaypt1v3io9 POjqf10Qbhrh3olTC9TZ/mAT/za11RQcNPFTZ0D5fB4poTprXoFKOLY3da3wO7Ae1iXw MPjodolj0jrxIcOakTkhRnbDZ5T/erAZBXl9huPSMAWNCPg2r3gIEDZlnbVVJLkkpFss Iip0qUHcXwN/ZxmoQpKmnt+CFIBFqGBLjz92/gPe2qs6dCIKlqtT4mflJeBvS0uuIhqU AV3KTVISFwu8/Tsmv557U5xeLcDlLUiE0pIHSGLjiEu6XUo8i6uGHl9ZaZX88kvzVOlL VcUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f6si3856792pgc.509.2019.02.14.18.16.36; Thu, 14 Feb 2019 18:16:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2395241AbfBNVWI (ORCPT + 99 others); Thu, 14 Feb 2019 16:22:08 -0500 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]:52386 "EHLO mx0a-002e3701.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387702AbfBNVWI (ORCPT ); Thu, 14 Feb 2019 16:22:08 -0500 Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x1ELAxYb006630; Thu, 14 Feb 2019 21:21:52 GMT Received: from g2t2353.austin.hpe.com (g2t2353.austin.hpe.com [15.233.44.26]) by mx0b-002e3701.pphosted.com with ESMTP id 2qnda0hg5f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 Feb 2019 21:21:52 +0000 Received: from g2t2360.austin.hpecorp.net (g2t2360.austin.hpecorp.net [16.196.225.135]) by g2t2353.austin.hpe.com (Postfix) with ESMTP id 3D8749B; Thu, 14 Feb 2019 21:21:51 +0000 (UTC) Received: from hpe.com (teo-eag.americas.hpqcorp.net [10.33.152.10]) by g2t2360.austin.hpecorp.net (Postfix) with ESMTP id 248BE44; Thu, 14 Feb 2019 21:21:50 +0000 (UTC) Date: Thu, 14 Feb 2019 15:21:49 -0600 From: Dimitri Sivanich To: Hedi Berriche Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , Thomas Gleixner , Bhupesh Sharma , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , linux-efi@vger.kernel.org, x86@kernel.org, Russ Anderson , Mike Travis , Steve Wahl , stable@vger.kernel.org Subject: Re: [Patch v3 0/4] Protect against concurrent calls into UV BIOS Message-ID: <20190214212149.GB5073@hpe.com> References: <20190213193413.25560-1-hedi.berriche@hpe.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190213193413.25560-1-hedi.berriche@hpe.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-02-14_10:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902140140 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For the series: Reviewed-by: Dimitri Sivanich On Wed, Feb 13, 2019 at 07:34:09PM +0000, Hedi Berriche wrote: > - Changes since v2 > Addressed comments from Ard Biesheuvel: > * expose efi_runtime_lock to UV platform only instead of globally > * remove unnecessary #ifdef CONFIG_EFI from bios_uv.c > > - Changes since v1: > Addressed comments from Bhupesh Sharma, Thomas Gleixner, and Ard Biesheuvel: > * made __uv_bios_call() static > * moved the efi_enabled() cleanup to its own patchlet > * explained the reason for renaming the efi_runtime_lock semaphore > * dropped the reviewed-bys as they should be given on the mailing list > * Cc'ng stable@vger.kernel.org given the nature of the problem addressed by the patches > > --- > > Calls into UV BIOS were not being serialised which is wrong as it violates EFI > runtime rules, and bad as it does result in all sorts of potentially hard to > track down hangs and panics when efi_scratch.prev_mm gets clobbered whenever > efi_switch_mm() gets called concurrently from two different CPUs. > > Patch #1 removes an unnecessary #ifdef CONFIG_EFI guard from bios_uv.c. > > Patch #2 removes uv_bios_call_reentrant() because it's dead code. > > Patch #3 is a cleanup that drops test_bit() in favour of the ad hoc efi_enabled(). > > Patch #4 makes uv_bios_call() variants use the efi_runtime_lock semaphore to > protect against concurrency. > > Cc: Russ Anderson > Cc: Mike Travis > Cc: Dimitri Sivanich > Cc: Steve Wahl > Cc: stable@vger.kernel.org # v4.9+ > > Hedi Berriche (4): > x86/platform/UV: remove unnecessary #ifdef CONFIG_EFI > x86/platform/UV: kill uv_bios_call_reentrant() as it has no callers > x86/platform/UV: use efi_enabled() instead of test_bit() > x86/platform/UV: use efi_runtime_lock to serialise BIOS calls > > arch/x86/include/asm/uv/bios.h | 13 ++++----- > arch/x86/platform/uv/bios_uv.c | 35 ++++++++++++++----------- > drivers/firmware/efi/runtime-wrappers.c | 7 +++++ > 3 files changed, 34 insertions(+), 21 deletions(-) > > -- > 2.20.1 >