3.16.37-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: "Naveen N. Rao" <[email protected]>

commit f47822078dece7189cad0a5f472f148e5e916736 upstream.

On some architectures (powerpc in particular), the number of registers
exceeds what can be represented in an integer bitmask. Ensure we
generate the proper bitmask on such platforms.

Fixes: 71ad0f5e4 ("perf tools: Support for DWARF CFI unwinding on post 
processing")
Signed-off-by: Naveen N. Rao <[email protected]>
Acked-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
---
 tools/perf/util/perf_regs.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/tools/perf/util/perf_regs.c
+++ b/tools/perf/util/perf_regs.c
@@ -7,18 +7,18 @@ int perf_reg_value(u64 *valp, struct reg
        int i, idx = 0;
        u64 mask = regs->mask;
 
-       if (regs->cache_mask & (1 << id))
+       if (regs->cache_mask & (1ULL << id))
                goto out;
 
-       if (!(mask & (1 << id)))
+       if (!(mask & (1ULL << id)))
                return -EINVAL;
 
        for (i = 0; i < id; i++) {
-               if (mask & (1 << i))
+               if (mask & (1ULL << i))
                        idx++;
        }
 
-       regs->cache_mask |= (1 << id);
+       regs->cache_mask |= (1ULL << id);
        regs->cache_regs[id] = regs->regs[idx];
 
 out:

Reply via email to