Message ID | CAJUS3Xk6jVHWvWugLGD0LNWgw0+XZeP6z+=U4Xa6_GTGNvObBQ@mail.gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Wed, 2013-10-16 at 17:16 -0400, Martin Hicks wrote: > That does fix the problem. v3.11 with the following: > > diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c > index eeae308..e91cf67 100644 > --- a/arch/powerpc/perf/core-book3s.c > +++ b/arch/powerpc/perf/core-book3s.c > @@ -124,7 +124,7 @@ static inline void power_pmu_bhrb_read(struct > cpu_hw_events *cpuhw) {} > > static bool regs_use_siar(struct pt_regs *regs) > { > - return !!regs->result; > + return 0; //!!regs->result; > } Ok, we probably need that function to do that on machines with no backend :-) Either that or properly clear regs->result always. I've had a quick look through perf and I admit I'm not sure of all the ways perf ends up populating "regs" here and how many holes there is in that scheme :-) Anton? How do you know for sure regs is always be cooked by your stuff (for regs->result) ? Ben.
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c index eeae308..e91cf67 100644 --- a/arch/powerpc/perf/core-book3s.c +++ b/arch/powerpc/perf/core-book3s.c @@ -124,7 +124,7 @@ static inline void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw) {} static bool regs_use_siar(struct pt_regs *regs) { - return !!regs->result; + return 0; //!!regs->result; }