Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3869384pxv; Mon, 5 Jul 2021 07:41:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzriblRpoxb/WWdJg/H65FEaDqo+WrhY79GE9HivWyg3iq9UKedb3dfdj41ktH9vkv+DOAt X-Received: by 2002:aa7:ce08:: with SMTP id d8mr16699740edv.341.1625496094861; Mon, 05 Jul 2021 07:41:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625496094; cv=none; d=google.com; s=arc-20160816; b=zquzDnjlIsVOPtpMFKmYx+N3Glmy0s8i8yfcOBFXL36cjUrEPxwY8Q3J4EgUrhXevl 6ReaYuiBl3Mj1+vwhdzoYWsF9v3mFUWT0OFVelJmZ63TigO77QKsATXXBYsVQ6ty6jPg K19bPs8B8CJ7XPTW+r8eUGNBq7hPueYlT7L8acq+CBVZwsQphR1RjOu0xP3zo4j0KaZO DwPmQaCLCAbP/PTIevrCuuagUZq0MJd3SQcIzAi5lyk5KT9pzx3CpBBYKmak4fO67INH 05ET2eracw8UioNgbYgN9VvnGUstm/9Go23foGDQKUm9GIzwmqU7rBscAG6Jtm6iIrIs UW9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=mWNQvpP1L52wGoe4X7StDPikY2OVcwlrX//GVyxUwO8=; b=Xg/og+CuJckNBkbV/bz3hTs7Y5PE3Tt1DL+JB3b0/IsQIntWfsWvQzdrhqx6YPXpEC qbHCvc2tTrrKgyVhfOvISvMiH33K4lUohbnIrIJXGLvh7gA6X4u6HfKTjKdvGv7we/MW WbtX2VT7XfZ8/a57I0T2NwTkxA+3wsG+zeQb8wiVf9R9cKyDChOTT1nblt9JvGQQAs0y XNuOVUP3ErzKwHkdyfHYcjlH9/kiqo44wVKasO3NMXx9+rDNEm4KJqLuAIR62PkBCPOy H60t7knY4IrU5hHOGKoWU/vq/L4OY2zt7NDZFpkVhqLqx5O91IuPXwoPHwE20jzxBzUS sKWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hk4e4xRP; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n13si7701452edv.600.2021.07.05.07.41.11; Mon, 05 Jul 2021 07:41:34 -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=@kernel.org header.s=k20201202 header.b=hk4e4xRP; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231467AbhGEOmz (ORCPT + 99 others); Mon, 5 Jul 2021 10:42:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:44982 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230504AbhGEOmz (ORCPT ); Mon, 5 Jul 2021 10:42:55 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id BBDA16195E; Mon, 5 Jul 2021 14:40:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1625496018; bh=ZdnvFTKPNqMYGq5RT15Z4gJxdJYehJ1cRy+yS+OH5bM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=hk4e4xRPtsJahAiWKdJey/x8nyohKetkvaYP3y14vHjX1VnoEO1TxKZq8jOr1EdE5 FMgmZ90/EzBuusZbCjtR7HColKmiHHNOugA9np1+eradUX0TPgdg5iHYkOdPOYN7LA ITb06PDjGIX7DJ6NHFnt8GJveCYzYbalAZMMaubNeOilTKhTai8XjynyLUTMwa1MOV k2Bz4C3YxglmEZG/QWQ9kd3sCI7kq8eh73ctPKZuGKxYJkPiWvY0L0pfR4b9OnLTOM NwwIKS+pkDJI+tUbbOFebT6I4hGRrmFnr1g+TsxZKJtbZ4B7JHpUJ+hywEXUYrb0d9 RwloBPYVGbsYQ== Date: Mon, 5 Jul 2021 23:40:14 +0900 From: Masami Hiramatsu To: Ingo Molnar Cc: Steven Rostedt , Josh Poimboeuf , X86 ML , Daniel Xu , linux-kernel@vger.kernel.org, bpf@vger.kernel.org, kuba@kernel.org, mingo@redhat.com, ast@kernel.org, Thomas Gleixner , Borislav Petkov , Peter Zijlstra , kernel-team@fb.com, yhs@fb.com, linux-ia64@vger.kernel.org, Abhishek Sagar , Andrii Nakryiko Subject: Re: [PATCH -tip v8 08/13] arm: kprobes: Make a space for regs->ARM_pc at kretprobe_trampoline Message-Id: <20210705234014.4e0a9ec6a60ef2db5ff93819@kernel.org> In-Reply-To: References: <162399992186.506599.8457763707951687195.stgit@devnote2> <162399999702.506599.16339931387573094059.stgit@devnote2> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 5 Jul 2021 10:04:41 +0200 Ingo Molnar wrote: > > * Masami Hiramatsu wrote: > > > Change kretprobe_trampoline to make a space for regs->ARM_pc so that > > kretprobe_trampoline_handler can call instruction_pointer_set() > > safely. > > The idiom is "make space", but in any case, what does this mean? Since arm's kretprobe_trampoline() saves partial pt_regs, regs->ARM_pc is not accessible (it points the caller function's stack frame). Therefore, this extends the stack frame for storing regs->ARM_pc. > > Was the stack frame set up in kretprobe_trampoline() and calling > trampoline_handler() buggy? > > If yes, then explain the bad effects of the bug, and make all of this clear > in the title & changelog. This is actually buggy from the specification viewpoint. And if the kretprobe handler sets the instruction pointer, it must be ignored, but in reallty, it breaks the stack frame (this does not happen in the ftrace/perf dynamic events, but a custom kretprobe kernel module can do this.) Thank you, > > Thanks, > > Ingo -- Masami Hiramatsu