From nobody Thu Mar 13 08:35:06 2025 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 25D86186E40; Fri, 14 Feb 2025 11:10:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739531438; cv=none; b=L9Fe/XPBw1w2WWdJIwGMvxPvpD60rCaNHMA3msmxKnX909eQWCt5GHcH5nhvxxIoECdYf8IBVbdYfOGfJ3aKw8V2SyyLLaHgC6kfNuMIqkLeXIlgq7ZGJVMAdFDzdeLYZOtUYBZ57LAVsVPBNIwJRFfJVG8hlIv0dB01oLth9G4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739531438; c=relaxed/simple; bh=LLJu4XpDn8EUNeYfwR1U/MwHFUENgL7xVLX/DUBDG0s=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=swjBUYT89Ar/aML7JH7t7bTgy18TuRTI/CryYHR6nACkza0UHZf3bs96mY6EKm1r9Bff7x47fFHubGGV6KIVbhjjyeRQYI7eYH0FFi4TDk5w4fIxV2rLLMMj6G2MvoAqXTCjJvlfHxVlSzJuLI6pbOq/EkXwSNvmCRdSL0Fuxxo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 70FFF113E; Fri, 14 Feb 2025 03:10:54 -0800 (PST) Received: from e132581.cambridge.arm.com (e132581.arm.com [10.2.76.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 1865B3F6A8; Fri, 14 Feb 2025 03:10:31 -0800 (PST) From: Leo Yan To: Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers , John Garry , Will Deacon , James Clark , Mike Leach , Jiri Olsa , Adrian Hunter , "Liang, Kan" , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Leo Yan Subject: [PATCH] perf: arm64: Fix compilation error Date: Fri, 14 Feb 2025 11:10:25 +0000 Message-Id: <20250214111025.14478-1-leo.yan@arm.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Since the commit dc6d2bc2d893 ("perf sample: Make user_regs and intr_regs optional"), the building for Arm64 reports error: arch/arm64/util/unwind-libdw.c: In function =E2=80=98libdw__arch_set_initia= l_registers=E2=80=99: arch/arm64/util/unwind-libdw.c:11:32: error: initialization of =E2=80=98str= uct regs_dump *=E2=80=99 from incompatible pointer type =E2=80=98struct reg= s_dump **=E2=80=99 [-Werror=3Dincompatible-pointer-types] 11 | struct regs_dump *user_regs =3D &ui->sample->user_regs; | ^ cc1: all warnings being treated as errors make[6]: *** [/home/niayan01/linux/tools/build/Makefile.build:85: arch/arm6= 4/util/unwind-libdw.o] Error 1 make[5]: *** [/home/niayan01/linux/tools/build/Makefile.build:138: util] Er= ror 2 arch/arm64/tests/dwarf-unwind.c: In function =E2=80=98test__arch_unwind_sam= ple=E2=80=99: arch/arm64/tests/dwarf-unwind.c:48:27: error: initialization of =E2=80=98st= ruct regs_dump *=E2=80=99 from incompatible pointer type =E2=80=98struct re= gs_dump **=E2=80=99 [-Werror=3Dincompatible-pointer-types] 48 | struct regs_dump *regs =3D &sample->user_regs; | ^ To fix the issue, use the helper perf_sample__user_regs() to retrieve the user_regs. Fixes: dc6d2bc2d893 ("perf sample: Make user_regs and intr_regs optional") Signed-off-by: Leo Yan Reviewed-by: James Clark --- tools/perf/arch/arm64/tests/dwarf-unwind.c | 2 +- tools/perf/arch/arm64/util/unwind-libdw.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/arch/arm64/tests/dwarf-unwind.c b/tools/perf/arch/a= rm64/tests/dwarf-unwind.c index b2603d0d3737..440d00f0de14 100644 --- a/tools/perf/arch/arm64/tests/dwarf-unwind.c +++ b/tools/perf/arch/arm64/tests/dwarf-unwind.c @@ -45,7 +45,7 @@ static int sample_ustack(struct perf_sample *sample, int test__arch_unwind_sample(struct perf_sample *sample, struct thread *thread) { - struct regs_dump *regs =3D &sample->user_regs; + struct regs_dump *regs =3D perf_sample__user_regs(sample); u64 *buf; =20 buf =3D calloc(1, sizeof(u64) * PERF_REGS_MAX); diff --git a/tools/perf/arch/arm64/util/unwind-libdw.c b/tools/perf/arch/ar= m64/util/unwind-libdw.c index e056d50ab42e..b89b0a7e5ad9 100644 --- a/tools/perf/arch/arm64/util/unwind-libdw.c +++ b/tools/perf/arch/arm64/util/unwind-libdw.c @@ -8,7 +8,7 @@ bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg) { struct unwind_info *ui =3D arg; - struct regs_dump *user_regs =3D &ui->sample->user_regs; + struct regs_dump *user_regs =3D perf_sample__user_regs(ui->sample); Dwarf_Word dwarf_regs[PERF_REG_ARM64_MAX], dwarf_pc; =20 #define REG(r) ({ \ --=20 2.34.1