Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp230766ybj; Wed, 6 May 2020 16:05:11 -0700 (PDT) X-Google-Smtp-Source: APiQypKe/2yNp/Po45UQHxwP6n3h2gGtI3atgs4qgeUKKeq9Xe1+3nxZ8xg5F+9ImwYj/HHoPh6C X-Received: by 2002:a17:906:8257:: with SMTP id f23mr9580710ejx.196.1588806311181; Wed, 06 May 2020 16:05:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588806311; cv=none; d=google.com; s=arc-20160816; b=pcKlB97X6YuwsHAtiqiOA+hloCYGu3byPNxwzPDBoGV+o0goo7yPlI9s1hW4rAVtJ2 vBx5lG+CU4NmtyAXWAyVQssN/UxzTMZOAWGmAFIS9GMuyFoBcjUilyMR2cUh+j56dp9O MWYqGWxR30IW4c1MmZpcrkV1gYEimc14+/jtxDiaXqfBE34RFLowuDCLmz6vsb1+MvBx PIuxGxZoCDqXEHQcmjuK11szgJbT22+1Y1rC1q90VJamvr8iHO0PlcI067ounjOj/0pf 0s4dbpCjFoC/GnNIMex/drT3uclEtPK4INGgRIl+TPn362vVx4I+cqDd+nuiSvzvtD/7 YQcA== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=t4sRhb0X/251G1cVV1RmskSKn3e8sjNJMHaIFlbBwg8=; b=xnOV+em87QamLS/KiErR+kLpzEE6J+pvu3q52O8YfXHuecbr/4rCxZr3KiQS7Al1oI PJCBp1m4uCxmbs3/32ruOckf1nZo431ieXV+egXRl9rIJRpA9N8av/jUIRYz23xC9tcv 9kCes20gYvICRQzsGtPjEZwOkmouvEMO6G20G5oodoxf5UVtIIxqSdqklug8MOHUtBwz 1IDepri4aJSyAELgRr07byTg/0JOCLGSYUJa9M4PYn4CMqyHGM+y0VR1mH62QoyAA4sN Q/9sQNoWFyshXYDu5ivDp+FjU3Wgv0ZCW1AdxeQZudHlKLFZteBXrmSHIrVOvutMkMcs qU9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=nL3uvcfq; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q26si2126802ejz.353.2020.05.06.16.04.48; Wed, 06 May 2020 16:05:11 -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=@oracle.com header.s=corp-2020-01-29 header.b=nL3uvcfq; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728692AbgEFNtV (ORCPT + 99 others); Wed, 6 May 2020 09:49:21 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:60760 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725801AbgEFNtU (ORCPT ); Wed, 6 May 2020 09:49:20 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 046DhHOf041920; Wed, 6 May 2020 13:48:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=t4sRhb0X/251G1cVV1RmskSKn3e8sjNJMHaIFlbBwg8=; b=nL3uvcfqB9tTREIiS+hkYXksefzL22cn8i2tq4oVKoVTknO5SKGjESkw71rAhzFK4DI+ mhZRaqofj+R1cY1NEvYlRf+DlXA5DJcGDswprmHVeJ6mF/2nLnGe9YB/IGpDJo1THIaH vAxMaB/ezdedMSxMDu6MXjSPA4yP4ui+PzMGvjXr8z1WgBVKvGo+N6uJyG/27wVaVIAU gpOZ311QYDWYEfALp+MF0xmwAUBUNSm3cXT0HWVm1qY2N/bzXa4eTsvxB7NYW3e8O+fe zubFqttMLaCKe9qX5OBWxcW+I4GL6leQTEPZXxZaNcxcktqHS8R/1HzCZQueUO39OdrP gA== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2120.oracle.com with ESMTP id 30usgq1h85-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 06 May 2020 13:48:23 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 046DlnCM039789; Wed, 6 May 2020 13:48:22 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userp3030.oracle.com with ESMTP id 30t1r7v63h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 06 May 2020 13:48:22 +0000 Received: from abhmp0020.oracle.com (abhmp0020.oracle.com [141.146.116.26]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 046DmGjZ006383; Wed, 6 May 2020 13:48:16 GMT Received: from linux-1.home (/10.175.10.30) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 06 May 2020 06:48:16 -0700 Subject: Re: [patch V4 part 1 08/36] x86/doublefault: Remove memmove() call To: Thomas Gleixner , LKML Cc: x86@kernel.org, "Paul E. McKenney" , Andy Lutomirski , Frederic Weisbecker , Paolo Bonzini , Sean Christopherson , Masami Hiramatsu , Petr Mladek , Steven Rostedt , Joel Fernandes , Boris Ostrovsky , Juergen Gross , Brian Gerst , Mathieu Desnoyers , Josh Poimboeuf , Will Deacon , Borislav Petkov , "Peter Zijlstra (Intel)" References: <20200505131602.633487962@linutronix.de> <20200505134058.863038566@linutronix.de> From: Alexandre Chartre Message-ID: <426fb037-9573-f616-6015-b732f66493c0@oracle.com> Date: Wed, 6 May 2020 15:47:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <20200505134058.863038566@linutronix.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9612 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005060110 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9612 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 mlxscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 clxscore=1015 mlxlogscore=999 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005060109 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/5/20 3:16 PM, Thomas Gleixner wrote: > Use of memmove() in #DF is problematic considered tracing and other > instrumentation. > > Remove the memmove() call and simply write out what needs doing; this > even clarifies the code, win-win! The code copies from the espfix64 > stack to the normal task stack, there is no possible way for that to > overlap. > > Survives selftests/x86, specifically sigreturn_64. > > Suggested-by: Borislav Petkov > Signed-off-by: Peter Zijlstra (Intel) > Signed-off-by: Thomas Gleixner > Acked-by: Andy Lutomirski > Link: https://lkml.kernel.org/r/20200220121727.GB507@zn.tnic > --- > arch/x86/kernel/traps.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Reviewed-by: Alexandre Chartre alex. > --- a/arch/x86/kernel/traps.c > +++ b/arch/x86/kernel/traps.c > @@ -278,6 +278,7 @@ dotraplinkage void do_double_fault(struc > regs->ip == (unsigned long)native_irq_return_iret) > { > struct pt_regs *gpregs = (struct pt_regs *)this_cpu_read(cpu_tss_rw.x86_tss.sp0) - 1; > + unsigned long *p = (unsigned long *)regs->sp; > > /* > * regs->sp points to the failing IRET frame on the > @@ -285,7 +286,11 @@ dotraplinkage void do_double_fault(struc > * in gpregs->ss through gpregs->ip. > * > */ > - memmove(&gpregs->ip, (void *)regs->sp, 5*8); > + gpregs->ip = p[0]; > + gpregs->cs = p[1]; > + gpregs->flags = p[2]; > + gpregs->sp = p[3]; > + gpregs->ss = p[4]; > gpregs->orig_ax = 0; /* Missing (lost) #GP error code */ > > /* >