Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3693384ybb; Tue, 31 Mar 2020 10:06:20 -0700 (PDT) X-Google-Smtp-Source: ADFU+vt3EqzpccX/oSvNshKLa2TvZ4uSn1RJNLkzKwZzsGyOaTryhbwPIdpjsWBG4ipiBd4OOVsD X-Received: by 2002:a4a:3306:: with SMTP id q6mr11387902ooq.81.1585674379766; Tue, 31 Mar 2020 10:06:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585674379; cv=none; d=google.com; s=arc-20160816; b=bBmNSoDFceo8YHnGCJDWK6XUlM/RNp0SJburz5AN7+PpLrZ+YdY5Xf1QjhZ8Yb9fSh MghtlqxrtbyP2Xkmd17+5gGkT+UEg00icPx8IXE7dkOZJg3oWmlfpJK5G7j+waDXZ15O IELZQGj9tQG6ISNk0dv3o4Y5hS7o3PnkD5fW//FQKCLSTg2O9OVryGrXFJ5PxqHVoFC7 Ll4fKHGDjs+US864QceUA6MGcdGaEiBsijw4WtbPKWZblwi9gVQrqDra37YRr/DiLce7 aZwCyZFfqC/i9gTfsOUriuMOuddc44iBqTOm0KsuwKlwGVPY9tMgmUc56ss7exQfC683 9+OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-transfer-encoding :user-agent:mime-version:in-reply-to:references:cc:to:subject:from :date; bh=zwmLVDXixWIsrHrXq7ln1Y5j3HbO1po4Hzlrhtv92i8=; b=F55zRVgNNNrtTOgIU5Lx8eUsKayyeRR7fi0fNRoRsg3fOjhPINnugv70b/iTMN9hYt syC+gvQdXIa5gYg8srNu+0B+Ac7weocgQmHUMrgho3DwyBSgGTEaD45aoyViJIxE4C5D x9oJl9kFVR2HKm+qNGM6nHUtyurmoF7zTBIB9rcfqsjai99NEMqkg+l6TP3SIUsiSqB/ 8VAb2IQGyrVok1uwY3qSwRUF3nY/DKdo84jQK9kUPWt+KfmIC0fPl0CCKywwDRP3r8+i GJXwzzeeWyQxC2Dqog2+pnoZxBysRTV0jgzrmrgIPCDBNSUJQZpm0jJIO46Wp2MI/TaY NRmg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u137si6783238oie.160.2020.03.31.10.05.59; Tue, 31 Mar 2020 10:06:19 -0700 (PDT) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731145AbgCaRFd convert rfc822-to-8bit (ORCPT + 99 others); Tue, 31 Mar 2020 13:05:33 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:11726 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726194AbgCaRFd (ORCPT ); Tue, 31 Mar 2020 13:05:33 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02VGYMaP009789 for ; Tue, 31 Mar 2020 13:05:32 -0400 Received: from e06smtp03.uk.ibm.com (e06smtp03.uk.ibm.com [195.75.94.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 303vfhfucm-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 31 Mar 2020 13:05:31 -0400 Received: from localhost by e06smtp03.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 31 Mar 2020 18:05:23 +0100 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp03.uk.ibm.com (192.168.101.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 31 Mar 2020 18:05:19 +0100 Received: from b06wcsmtp001.portsmouth.uk.ibm.com (b06wcsmtp001.portsmouth.uk.ibm.com [9.149.105.160]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 02VH5P0960096676 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 31 Mar 2020 17:05:25 GMT Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 23F0AA405B; Tue, 31 Mar 2020 17:05:25 +0000 (GMT) Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B2D99A4054; Tue, 31 Mar 2020 17:05:24 +0000 (GMT) Received: from localhost (unknown [9.85.74.140]) by b06wcsmtp001.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 31 Mar 2020 17:05:24 +0000 (GMT) Date: Tue, 31 Mar 2020 22:35:22 +0530 From: "Naveen N. Rao" Subject: Re: [PATCH v2 10/12] powerpc/entry32: Blacklist exception entry points for kprobe. To: Benjamin Herrenschmidt , Christophe Leroy , Michael Ellerman , Paul Mackerras Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org References: <1ae02b6637b87fc5aaa1d5012c3e2cb30e62b4a3.1585670437.git.christophe.leroy@c-s.fr> In-Reply-To: MIME-Version: 1.0 User-Agent: astroid/v0.15-13-gb675b421 (https://github.com/astroidmail/astroid) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8BIT X-TM-AS-GCONF: 00 x-cbid: 20033117-0012-0000-0000-0000039BBCE3 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 20033117-0013-0000-0000-000021D8C9C2 Message-Id: <1585673757.0rkxmweypy.naveen@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-03-31_05:2020-03-31,2020-03-31 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003310144 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Christophe Leroy wrote: > kprobe does not handle events happening in real mode. > > As exception entry points are running with MMU disabled, > blacklist them. > > The handling of TLF_NAPPING and TLF_SLEEPING is moved before the > CONFIG_TRACE_IRQFLAGS which contains 'reenable_mmu' because from there > kprobe will be possible as the kernel will run with MMU enabled. > > Signed-off-by: Christophe Leroy > Acked-by: Naveen N. Rao > --- > v2: Moved TLF_NAPPING and TLF_SLEEPING handling > --- > arch/powerpc/kernel/entry_32.S | 37 ++++++++++++++++++++-------------- > 1 file changed, 22 insertions(+), 15 deletions(-) > > diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S > index 94f78c03cb79..215aa3a6d4f7 100644 > --- a/arch/powerpc/kernel/entry_32.S > +++ b/arch/powerpc/kernel/entry_32.S > @@ -51,6 +51,7 @@ mcheck_transfer_to_handler: > mfspr r0,SPRN_DSRR1 > stw r0,_DSRR1(r11) > /* fall through */ > +_ASM_NOKPROBE_SYMBOL(mcheck_transfer_to_handler) > > .globl debug_transfer_to_handler > debug_transfer_to_handler: > @@ -59,6 +60,7 @@ debug_transfer_to_handler: > mfspr r0,SPRN_CSRR1 > stw r0,_CSRR1(r11) > /* fall through */ > +_ASM_NOKPROBE_SYMBOL(debug_transfer_to_handler) > > .globl crit_transfer_to_handler > crit_transfer_to_handler: > @@ -94,6 +96,7 @@ crit_transfer_to_handler: > rlwinm r0,r1,0,0,(31 - THREAD_SHIFT) > stw r0,KSP_LIMIT(r8) > /* fall through */ > +_ASM_NOKPROBE_SYMBOL(crit_transfer_to_handler) > #endif > > #ifdef CONFIG_40x > @@ -115,6 +118,7 @@ crit_transfer_to_handler: > rlwinm r0,r1,0,0,(31 - THREAD_SHIFT) > stw r0,KSP_LIMIT(r8) > /* fall through */ > +_ASM_NOKPROBE_SYMBOL(crit_transfer_to_handler) > #endif > > /* > @@ -127,6 +131,7 @@ crit_transfer_to_handler: > .globl transfer_to_handler_full > transfer_to_handler_full: > SAVE_NVGPRS(r11) > +_ASM_NOKPROBE_SYMBOL(transfer_to_handler_full) > /* fall through */ > > .globl transfer_to_handler > @@ -227,6 +232,23 @@ transfer_to_handler_cont: > SYNC > RFI /* jump to handler, enable MMU */ > > +#if defined (CONFIG_PPC_BOOK3S_32) || defined(CONFIG_E500) > +4: rlwinm r12,r12,0,~_TLF_NAPPING > + stw r12,TI_LOCAL_FLAGS(r2) > + b power_save_ppc32_restore > + > +7: rlwinm r12,r12,0,~_TLF_SLEEPING > + stw r12,TI_LOCAL_FLAGS(r2) > + lwz r9,_MSR(r11) /* if sleeping, clear MSR.EE */ > + rlwinm r9,r9,0,~MSR_EE > + lwz r12,_LINK(r11) /* and return to address in LR */ > + kuap_restore r11, r2, r3, r4, r5 > + lwz r2, GPR2(r11) > + b fast_exception_return > +#endif > +_ASM_NOKPROBE_SYMBOL(transfer_to_handler) > +_ASM_NOKPROBE_SYMBOL(transfer_to_handler_cont) > + A very minor nit is that the above NOKPROBE annotation actually covers the block of code below between the label '1:' till 'reenable_mmu', but isn't obvious from the code. Splitting off 'reenable_mmu' would have made that clear. You don't have to fix that though -- a kprobe still won't be allowed there and anyone interested should be able to look up this mail chain. - Naveen