perf: Fix off by one test in perf_reg_value()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 5 Sep 2012 12:31:26 +0000 (15:31 +0300)
committerIngo Molnar <mingo@kernel.org>
Wed, 19 Sep 2012 15:08:40 +0000 (17:08 +0200)
The test should be >= ARRAY_SIZE() instead of > ARRAY_SIZE().

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Link: http://lkml.kernel.org/r/20120905123126.GC6128@elgon.mountain
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/perf_regs.c

index c5a3e5cfe07f3cc61997bcd44337f63fd8a43952..e309cc5c276eaf7b2a9fa01020f14007b166875f 100644 (file)
@@ -57,7 +57,7 @@ static unsigned int pt_regs_offset[PERF_REG_X86_MAX] = {
 
 u64 perf_reg_value(struct pt_regs *regs, int idx)
 {
-       if (WARN_ON_ONCE(idx > ARRAY_SIZE(pt_regs_offset)))
+       if (WARN_ON_ONCE(idx >= ARRAY_SIZE(pt_regs_offset)))
                return 0;
 
        return regs_get_register(regs, pt_regs_offset[idx]);