Received: by 2002:a17:90a:1609:0:0:0:0 with SMTP id n9csp835136pja; Wed, 1 Apr 2020 09:33:37 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvxL86nU18be+cURwaGyzI3E/Cr3eOhRhTF++mJFXkguZM9ayKNo/mhK2QpKpdapKNVS43v X-Received: by 2002:a05:6830:1c7:: with SMTP id r7mr7829798ota.58.1585758817387; Wed, 01 Apr 2020 09:33:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585758817; cv=none; d=google.com; s=arc-20160816; b=JkwaTVgPZKljJUa47P0McCWx7k+S10a9i/XooeoyqaC79dnWSJ1Vow4neG18P/dilW mDHDSZCyBOIu8gxx9LDCF+sbBkcCan1hCrzOFdP5CexfLItd6BfjD/vdTuOx167V5tf6 CKVLZpKLkFm8HDdzLcKUtF13gXBcw66seeZprxl84l7FhfTlESB1hBA21HqYaOpADs8H UxwP1cqF5Kz2HUYUUHYu0d4cM8pJLWuP4JbVF7CzA4kmElnCmVxWTgNZ23qq1NUt102U kZeMx+MneDMCNY4Zh0sM/34OaXuuChwdg7a1a0p5y+3WWVbN0vzKoPBsL2iMAHhFalMq cfFA== 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:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YnBapfj3yA9uiSVDf2QcVJYCDw0+xkgd2/xRm9b8Zb4=; b=jvNLOz7p0lUdbCmFA2pGW4x7FtUqdsSvFlLQbaht7q3gG9RXet36UKYVa5nYKwXIPP GbHZxYXjQ/0YPKy5+W4A2OiXoWAb1KzInPNmyMrgjz/1RsiBG3f4tPQex6ndzUdWay0t 5Ho4Ru67Zs4g7CnzPzx4tSNQ4+wV0CNwJ6xA/re3wDyjFknn2PwCg/lrDSGr5JiApdos PSX5Mt+pini65LKqzs0AvnO1AEeVhg2SnhzZV6eJUfvI46N9j2g69FBrhpqj2pnGkSqS CK6HDd2gC85zTJOKQUydEv2SeUk6vB44Weg3YRdtZtEbvnVByqQI6UD5Udq4FtooamI0 drLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jOMgxWa1; 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 h6si953794oom.43.2020.04.01.09.33.24; Wed, 01 Apr 2020 09:33:37 -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; dkim=pass header.i=@kernel.org header.s=default header.b=jOMgxWa1; 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 S2388391AbgDAQcK (ORCPT + 99 others); Wed, 1 Apr 2020 12:32:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:58478 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388222AbgDAQcH (ORCPT ); Wed, 1 Apr 2020 12:32:07 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 C959220658; Wed, 1 Apr 2020 16:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1585758727; bh=fuZdubD077dq0B7HOwQ6mfwjuba+ZeVl7JU27HhDW0c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jOMgxWa1StBgNapMiGuf45C5TWFQ9SV3ZfC1vfqcAYZKXnq4skx5kaeBWqAQhpvlt miyLhkU5c2U2UOrGP9Hem6cs5QMV1TSHMrrmRpsRx38pjas59saMMng3+7zx/Bj4Qi crjdiq15v9tgoRH5jp5GeFtwYe5MJhPsMIU0NXDY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alexandre Ghiti , Masami Hiramatsu , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Peter Zijlstra , Sasha Levin , Arnaldo Carvalho de Melo Subject: [PATCH 4.4 56/91] perf probe: Do not depend on dwfl_module_addrsym() Date: Wed, 1 Apr 2020 18:17:52 +0200 Message-Id: <20200401161532.691187361@linuxfoundation.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200401161512.917494101@linuxfoundation.org> References: <20200401161512.917494101@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Masami Hiramatsu commit 1efde2754275dbd9d11c6e0132a4f09facf297ab upstream. Do not depend on dwfl_module_addrsym() because it can fail on user-space shared libraries. Actually, same bug was fixed by commit 664fee3dc379 ("perf probe: Do not use dwfl_module_addrsym if dwarf_diename finds symbol name"), but commit 07d369857808 ("perf probe: Fix wrong address verification) reverted to get actual symbol address from symtab. This fixes it again by getting symbol address from DIE, and only if the DIE has only address range, it uses dwfl_module_addrsym(). Fixes: 07d369857808 ("perf probe: Fix wrong address verification) Reported-by: Alexandre Ghiti Signed-off-by: Masami Hiramatsu Tested-by: Alexandre Ghiti Cc: Alexander Shishkin Cc: Greg Kroah-Hartman Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Sasha Levin Link: http://lore.kernel.org/lkml/158281812176.476.14164573830975116234.stgit@devnote2 Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Greg Kroah-Hartman --- tools/perf/util/probe-finder.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/tools/perf/util/probe-finder.c +++ b/tools/perf/util/probe-finder.c @@ -608,14 +608,19 @@ static int convert_to_trace_point(Dwarf_ return -EINVAL; } - /* Try to get actual symbol name from symtab */ - symbol = dwfl_module_addrsym(mod, paddr, &sym, NULL); + if (dwarf_entrypc(sp_die, &eaddr) == 0) { + /* If the DIE has entrypc, use it. */ + symbol = dwarf_diename(sp_die); + } else { + /* Try to get actual symbol name and address from symtab */ + symbol = dwfl_module_addrsym(mod, paddr, &sym, NULL); + eaddr = sym.st_value; + } if (!symbol) { pr_warning("Failed to find symbol at 0x%lx\n", (unsigned long)paddr); return -ENOENT; } - eaddr = sym.st_value; tp->offset = (unsigned long)(paddr - eaddr); tp->address = (unsigned long)paddr;