From: Adrian Hunter <adrian.hunter@intel.com>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Kan Liang <kan.liang@linux.intel.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v1] perf cap: Add __NR_capget to arch/x86 unistd
Date: Mon, 28 Oct 2024 09:25:36 +0200 [thread overview]
Message-ID: <c19ca53b-b0e6-4763-8691-09ee4a095492@intel.com> (raw)
In-Reply-To: <CAP-5=fXLL1dB4MEfe7Z+fhp_RzC9DV91gBLBHjjywW-_RXmM-Q@mail.gmail.com>
On 26/10/24 09:00, Ian Rogers wrote:
> On Fri, Oct 25, 2024 at 10:54 PM Ian Rogers <irogers@google.com> wrote:
>>
>> As there are duplicated kernel headers in tools/include libc can pick
>> up the wrong definitions. This was causing the wrong system call for
>> capget in perf.
>>
>> Closes: https://lore.kernel.org/lkml/cc7d6bdf-1aeb-4179-9029-4baf50b59342@intel.com/
>> Signed-off-by: Ian Rogers <irogers@google.com>
>
> Forgot:
> Fixes: e25ebda78e23 ("perf cap: Tidy up and improve capability testing")
Works for me, thank you!
Tested-by: Adrian Hunter <adrian.hunter@intel.com>
>
> Thanks,
> Ian
>
>> ---
>> tools/arch/x86/include/uapi/asm/unistd_32.h | 3 +++
>> tools/arch/x86/include/uapi/asm/unistd_64.h | 3 +++
>> tools/perf/util/cap.c | 10 +++-------
>> 3 files changed, 9 insertions(+), 7 deletions(-)
>>
>> diff --git a/tools/arch/x86/include/uapi/asm/unistd_32.h b/tools/arch/x86/include/uapi/asm/unistd_32.h
>> index 9de35df1afc3..63182a023e9d 100644
>> --- a/tools/arch/x86/include/uapi/asm/unistd_32.h
>> +++ b/tools/arch/x86/include/uapi/asm/unistd_32.h
>> @@ -11,6 +11,9 @@
>> #ifndef __NR_getpgid
>> #define __NR_getpgid 132
>> #endif
>> +#ifndef __NR_capget
>> +#define __NR_capget 184
>> +#endif
>> #ifndef __NR_gettid
>> #define __NR_gettid 224
>> #endif
>> diff --git a/tools/arch/x86/include/uapi/asm/unistd_64.h b/tools/arch/x86/include/uapi/asm/unistd_64.h
>> index d0f2043d7132..77311e8d1b5d 100644
>> --- a/tools/arch/x86/include/uapi/asm/unistd_64.h
>> +++ b/tools/arch/x86/include/uapi/asm/unistd_64.h
>> @@ -11,6 +11,9 @@
>> #ifndef __NR_getpgid
>> #define __NR_getpgid 121
>> #endif
>> +#ifndef __NR_capget
>> +#define __NR_capget 125
>> +#endif
>> #ifndef __NR_gettid
>> #define __NR_gettid 186
>> #endif
>> diff --git a/tools/perf/util/cap.c b/tools/perf/util/cap.c
>> index 7574a67651bc..69d9a2bcd40b 100644
>> --- a/tools/perf/util/cap.c
>> +++ b/tools/perf/util/cap.c
>> @@ -7,13 +7,9 @@
>> #include "debug.h"
>> #include <errno.h>
>> #include <string.h>
>> -#include <unistd.h>
>> #include <linux/capability.h>
>> #include <sys/syscall.h>
>> -
>> -#ifndef SYS_capget
>> -#define SYS_capget 90
>> -#endif
>> +#include <unistd.h>
>>
>> #define MAX_LINUX_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3
>>
>> @@ -21,9 +17,9 @@ bool perf_cap__capable(int cap, bool *used_root)
>> {
>> struct __user_cap_header_struct header = {
>> .version = _LINUX_CAPABILITY_VERSION_3,
>> - .pid = getpid(),
>> + .pid = 0,
>> };
>> - struct __user_cap_data_struct data[MAX_LINUX_CAPABILITY_U32S];
>> + struct __user_cap_data_struct data[MAX_LINUX_CAPABILITY_U32S] = {};
>> __u32 cap_val;
>>
>> *used_root = false;
>> --
>> 2.47.0.163.g1226f6d8fa-goog
>>
next prev parent reply other threads:[~2024-10-28 7:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-26 5:54 [PATCH v1] perf cap: Add __NR_capget to arch/x86 unistd Ian Rogers
2024-10-26 6:00 ` Ian Rogers
2024-10-28 7:25 ` Adrian Hunter [this message]
2024-10-28 16:08 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c19ca53b-b0e6-4763-8691-09ee4a095492@intel.com \
--to=adrian.hunter@intel.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.