From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8132C3A5A0 for ; Tue, 20 Aug 2019 00:01:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9978B22CF7 for ; Tue, 20 Aug 2019 00:01:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566259298; bh=Dygb+76S30NlTIz0E98ZuWWzV7OGS2DSaQKUzrhuObs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=ANKSawLo6hTULSTo5Bv/bnvzPx0kVXY9z6g/2gofo3KgR8siQCHcqaSWfJo1IBkyV cuhZ7zPVt7V4+U3q27a052/fQypcDNQPxLIuNt8z0z7MFw9CA30Y09SpolOu57/cW6 cYQJ69OF48s1MjomAJl8JEEFP3PUb8kUYpuuPakI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728719AbfHTABh (ORCPT ); Mon, 19 Aug 2019 20:01:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:34434 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728578AbfHTABh (ORCPT ); Mon, 19 Aug 2019 20:01:37 -0400 Received: from devnote2 (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 472E82082F; Tue, 20 Aug 2019 00:01:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566259296; bh=Dygb+76S30NlTIz0E98ZuWWzV7OGS2DSaQKUzrhuObs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=FRsrIwP79+XwJmcnEAvDLzIWZSmxMclwruPxmhgmjRCdJSaHwtKzRLl0WWC7CRXRK 95gazBM+n2Es4NcakK9McZLYoxqKpcDYTUyQQMkQxKvFGo1IKgusw0QFJndCBU9jVE xJ1GsnFxBziE8PutDAeUpVaZDFWqfVrSYgkPKuHE= Date: Tue, 20 Aug 2019 09:01:30 +0900 From: Masami Hiramatsu To: Jisheng Zhang Cc: Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "David S. Miller" , Anil S Keshavamurthy , "Naveen N. Rao" , Steven Rostedt , "x86@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 1/4] kprobes: adjust kprobe addr for KPROBES_ON_FTRACE Message-Id: <20190820090130.844fc064030db67efb05ceb1@kernel.org> In-Reply-To: <20190819192505.483c0bf0@xhacker.debian> References: <20190819192422.5ed79702@xhacker.debian> <20190819192505.483c0bf0@xhacker.debian> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jisheng, On Mon, 19 Aug 2019 11:36:09 +0000 Jisheng Zhang wrote: > For KPROBES_ON_FTRACE case, we need to adjust the kprobe's addr > correspondingly. No, I think you have misunderstood what the ftrace_call_adjust() does. Ftrace's rec->ip is already adjusted when initializing it. Kprobes checks the list after initialized (adjusted). So you don't need to adjust it again. BTW, this type of hidden adjustment should be avoided by design. If you find user specifies wrong address, return error instead of adjust it silently. Thank you, > > Signed-off-by: Jisheng Zhang > --- > kernel/kprobes.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/kernel/kprobes.c b/kernel/kprobes.c > index 9873fc627d61..f8400753a8a9 100644 > --- a/kernel/kprobes.c > +++ b/kernel/kprobes.c > @@ -1560,6 +1560,9 @@ int register_kprobe(struct kprobe *p) > addr = kprobe_addr(p); > if (IS_ERR(addr)) > return PTR_ERR(addr); > +#ifdef CONFIG_KPROBES_ON_FTRACE > + addr = (kprobe_opcode_t *)ftrace_call_adjust((unsigned long)addr); > +#endif > p->addr = addr; > > ret = check_kprobe_rereg(p); > -- > 2.23.0.rc1 > -- Masami Hiramatsu From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA3D4C3A5A0 for ; Tue, 20 Aug 2019 00:01:43 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BB92622CE8 for ; Tue, 20 Aug 2019 00:01:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cmJY9tCb"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="FRsrIwP7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BB92622CE8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Mime-Version:References:In-Reply-To: Message-Id:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ClBBUSNZ92iQ9RH1m87uOeWAbczENRXFs3yKKF+rGgA=; b=cmJY9tCb4d470O s7ZrT8bauamM0e2B5B5hcolxiNWveUIZx1fZ/7ju0QnQ+ZXn8jXi0YvRuzPDjXuTMmyHfUDxJeEl+ vHFHeViWUHA/hf3n2j6U6SRJzhTDpLzaQQHR77ZKYHzPGAaV24ftdd/YlUMR32SvX/2sIGktjE0La atgyLa7emubE6ZtXLbE3qjU5X/Ye3Ksbm6BYCcEntmz8DAOdPfc+ZbkcYe5OP/hCPQuSXbmEbckzO TRYXVYE6XlqIFcrmHkdxqwSgFu+arVgJQWqf0Z9TjWxQUlzz+/HkB1+rjF9S+z14pHOdF4ssMP/bY 8KTxcwUhXh1hUXLt6psg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hzrao-000100-Ty; Tue, 20 Aug 2019 00:01:42 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hzraj-0000yv-Dj for linux-arm-kernel@lists.infradead.org; Tue, 20 Aug 2019 00:01:40 +0000 Received: from devnote2 (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 472E82082F; Tue, 20 Aug 2019 00:01:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566259296; bh=Dygb+76S30NlTIz0E98ZuWWzV7OGS2DSaQKUzrhuObs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=FRsrIwP79+XwJmcnEAvDLzIWZSmxMclwruPxmhgmjRCdJSaHwtKzRLl0WWC7CRXRK 95gazBM+n2Es4NcakK9McZLYoxqKpcDYTUyQQMkQxKvFGo1IKgusw0QFJndCBU9jVE xJ1GsnFxBziE8PutDAeUpVaZDFWqfVrSYgkPKuHE= Date: Tue, 20 Aug 2019 09:01:30 +0900 From: Masami Hiramatsu To: Jisheng Zhang Subject: Re: [PATCH 1/4] kprobes: adjust kprobe addr for KPROBES_ON_FTRACE Message-Id: <20190820090130.844fc064030db67efb05ceb1@kernel.org> In-Reply-To: <20190819192505.483c0bf0@xhacker.debian> References: <20190819192422.5ed79702@xhacker.debian> <20190819192505.483c0bf0@xhacker.debian> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190819_170137_564840_5004B4AB X-CRM114-Status: GOOD ( 15.13 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Catalin Marinas , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , Anil S Keshavamurthy , Ingo Molnar , Borislav Petkov , Steven Rostedt , "H. Peter Anvin" , "Naveen N. Rao" , Thomas Gleixner , Will Deacon , "David S. Miller" , "linux-arm-kernel@lists.infradead.org" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jisheng, On Mon, 19 Aug 2019 11:36:09 +0000 Jisheng Zhang wrote: > For KPROBES_ON_FTRACE case, we need to adjust the kprobe's addr > correspondingly. No, I think you have misunderstood what the ftrace_call_adjust() does. Ftrace's rec->ip is already adjusted when initializing it. Kprobes checks the list after initialized (adjusted). So you don't need to adjust it again. BTW, this type of hidden adjustment should be avoided by design. If you find user specifies wrong address, return error instead of adjust it silently. Thank you, > > Signed-off-by: Jisheng Zhang > --- > kernel/kprobes.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/kernel/kprobes.c b/kernel/kprobes.c > index 9873fc627d61..f8400753a8a9 100644 > --- a/kernel/kprobes.c > +++ b/kernel/kprobes.c > @@ -1560,6 +1560,9 @@ int register_kprobe(struct kprobe *p) > addr = kprobe_addr(p); > if (IS_ERR(addr)) > return PTR_ERR(addr); > +#ifdef CONFIG_KPROBES_ON_FTRACE > + addr = (kprobe_opcode_t *)ftrace_call_adjust((unsigned long)addr); > +#endif > p->addr = addr; > > ret = check_kprobe_rereg(p); > -- > 2.23.0.rc1 > -- Masami Hiramatsu _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel