2013-04-30 10:04:24

by Jan-Simon Möller

[permalink] [raw]
Subject: [PATCH] [TRIVIAL] FIX: unintended variable name reuse

From: Jan-Simon Möller <[email protected]>

The variable name events_group is already in used and led to a compilation error
when using clang to build the Linux Kernel . The fix is just to rename the var.
No functional change. Please apply.

Fix suggested in discussion by PaX Team <[email protected]>
Signed-off-by: Jan-Simon Möller <[email protected]>

CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
---
arch/x86/kernel/cpu/perf_event_intel_uncore.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
index d0f9e5a..c01d159 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
@@ -3093,7 +3093,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
static int __init uncore_type_init(struct intel_uncore_type *type)
{
struct intel_uncore_pmu *pmus;
- struct attribute_group *events_group;
+ struct attribute_group *attr_group;
struct attribute **attrs;
int i, j;

@@ -3120,19 +3120,19 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
while (type->event_descs[i].attr.attr.name)
i++;

- events_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
- sizeof(*events_group), GFP_KERNEL);
- if (!events_group)
+ attr_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
+ sizeof(*attr_group), GFP_KERNEL);
+ if (!attr_group)
goto fail;

- attrs = (struct attribute **)(events_group + 1);
- events_group->name = "events";
- events_group->attrs = attrs;
+ attrs = (struct attribute **)(attr_group + 1);
+ attr_group->name = "events";
+ attr_group->attrs = attrs;

for (j = 0; j < i; j++)
attrs[j] = &type->event_descs[j].attr.attr;

- type->events_group = events_group;
+ type->events_group = attr_group;
}

type->pmu_group = &uncore_pmu_attr_group;
--
1.8.1.4


2013-04-30 13:04:44

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] [TRIVIAL] FIX: unintended variable name reuse

On Tue, 2013-04-30 at 12:02 +0200, [email protected] wrote:
> From: Jan-Simon Möller <[email protected]>
>
> The variable name events_group is already in used and led to a compilation error
> when using clang to build the Linux Kernel . The fix is just to rename the var.
> No functional change. Please apply.

Need to be a little more specific on the problem in the change log. I'm
guessing that the issue is with the events_group define in
perf_event_intel_uncore.h:

#define events_group attr_groups[2]

I can see that causing issues with something like:

struct attribute_group *events_group;

I don't think we really want that to end up being:

struct attribute_group *attr_groups[2];

I'm surprised gcc allowed that :-/

Acked-by: Steven Rostedt <[email protected]>

-- Steve

>
> Fix suggested in discussion by PaX Team <[email protected]>
> Signed-off-by: Jan-Simon Möller <[email protected]>
>
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> ---
> arch/x86/kernel/cpu/perf_event_intel_uncore.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> index d0f9e5a..c01d159 100644
> --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
> @@ -3093,7 +3093,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
> static int __init uncore_type_init(struct intel_uncore_type *type)
> {
> struct intel_uncore_pmu *pmus;
> - struct attribute_group *events_group;
> + struct attribute_group *attr_group;
> struct attribute **attrs;
> int i, j;
>
> @@ -3120,19 +3120,19 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
> while (type->event_descs[i].attr.attr.name)
> i++;
>
> - events_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
> - sizeof(*events_group), GFP_KERNEL);
> - if (!events_group)
> + attr_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
> + sizeof(*attr_group), GFP_KERNEL);
> + if (!attr_group)
> goto fail;
>
> - attrs = (struct attribute **)(events_group + 1);
> - events_group->name = "events";
> - events_group->attrs = attrs;
> + attrs = (struct attribute **)(attr_group + 1);
> + attr_group->name = "events";
> + attr_group->attrs = attrs;
>
> for (j = 0; j < i; j++)
> attrs[j] = &type->event_descs[j].attr.attr;
>
> - type->events_group = events_group;
> + type->events_group = attr_group;
> }
>
> type->pmu_group = &uncore_pmu_attr_group;

Subject: [tip:perf/urgent] perf/x86/intel: Fix unintended variable name reuse

Commit-ID: 1b0dac2ac6debdbf1541e15f2cede03613cf4465
Gitweb: http://git.kernel.org/tip/1b0dac2ac6debdbf1541e15f2cede03613cf4465
Author: Jan-Simon Möller <[email protected]>
AuthorDate: Tue, 30 Apr 2013 12:02:33 +0200
Committer: Ingo Molnar <[email protected]>
CommitDate: Tue, 30 Apr 2013 13:12:47 +0200

perf/x86/intel: Fix unintended variable name reuse

The variable name events_group is already in used and led to a
compilation error when using clang to build the Linux Kernel .
The fix is just to rename the var. No functional change. Please
apply.

Fix suggested in discussion by PaX Team <[email protected]>

Signed-off-by: Jan-Simon Möller <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Cc: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/kernel/cpu/perf_event_intel_uncore.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
index 22ebaa8..45f6d13 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
@@ -2428,7 +2428,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
static int __init uncore_type_init(struct intel_uncore_type *type)
{
struct intel_uncore_pmu *pmus;
- struct attribute_group *events_group;
+ struct attribute_group *attr_group;
struct attribute **attrs;
int i, j;

@@ -2455,19 +2455,19 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
while (type->event_descs[i].attr.attr.name)
i++;

- events_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
- sizeof(*events_group), GFP_KERNEL);
- if (!events_group)
+ attr_group = kzalloc(sizeof(struct attribute *) * (i + 1) +
+ sizeof(*attr_group), GFP_KERNEL);
+ if (!attr_group)
goto fail;

- attrs = (struct attribute **)(events_group + 1);
- events_group->name = "events";
- events_group->attrs = attrs;
+ attrs = (struct attribute **)(attr_group + 1);
+ attr_group->name = "events";
+ attr_group->attrs = attrs;

for (j = 0; j < i; j++)
attrs[j] = &type->event_descs[j].attr.attr;

- type->events_group = events_group;
+ type->events_group = attr_group;
}

type->pmu_group = &uncore_pmu_attr_group;