projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3c3116b
)
perf/x86: Fix undefined shift on 32-bit kernels
author
Andrey Ryabinin
<
[email protected]
>
Wed, 11 May 2016 13:51:51 +0000
(16:51 +0300)
committer
Ingo Molnar
<
[email protected]
>
Thu, 12 May 2016 08:14:31 +0000
(10:14 +0200)
Jim reported:
UBSAN: Undefined behaviour in arch/x86/events/intel/core.c:3708:12
shift exponent 35 is too large for 32-bit type 'long unsigned int'
The use of 'unsigned long' type obviously is not correct here, make it
'unsigned long long' instead.
Reported-by: Jim Cromie <
[email protected]
>
Signed-off-by: Andrey Ryabinin <
[email protected]
>
Signed-off-by: Peter Zijlstra (Intel) <
[email protected]
>
Cc: <
[email protected]
>
Cc: Alexander Shishkin <
[email protected]
>
Cc: Arnaldo Carvalho de Melo <
[email protected]
>
Cc: H. Peter Anvin <
[email protected]
>
Cc: Imre Palik <
[email protected]
>
Cc: Jiri Olsa <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Stephane Eranian <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc: Vince Weaver <
[email protected]
>
Fixes: 2c33645d366d ("perf/x86: Honor the architectural performance monitoring version")
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Ingo Molnar <
[email protected]
>
arch/x86/events/intel/core.c
patch
|
blob
|
history
diff --git
a/arch/x86/events/intel/core.c
b/arch/x86/events/intel/core.c
index a6fd4dbcf820abf727b6118c0084a6877ec0340d..5210eaa4aa629daa19424456d759b760d7d0a43a 100644
(file)
--- a/
arch/x86/events/intel/core.c
+++ b/
arch/x86/events/intel/core.c
@@
-3708,7
+3708,7
@@
__init int intel_pmu_init(void)
c->idxmsk64 |= (1ULL << x86_pmu.num_counters) - 1;
}
c->idxmsk64 &=
- ~(~0UL << (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed));
+ ~(~0UL
L
<< (INTEL_PMC_IDX_FIXED + x86_pmu.num_counters_fixed));
c->weight = hweight64(c->idxmsk64);
}
}