On Sat, Jan 30, 2010 at 10:25:18AM +0530, Mahesh Salgaonkar wrote:Yup, I even thought so, but then I figured out the function 'hw_breakpoint_addr()' also has same return type for returning 'attr.bp_addr' and kept the same type to be consistent. We may have to fix that also. What do you think?
Change 'bp_len' type to __u64 to make it work across the arch.
The s390 architecture watch point length can be upto 2^64.
reference:
http://lkml.org/lkml/2010/1/25/212
Based on commit 6aa41f8b01301199af6c9febb24f3c1f5a0bc9d5
Signed-off-by: Mahesh Salgaonkar<mahesh@xxxxxxxxxxxxxxxxxx>
---
include/linux/hw_breakpoint.h | 2 +-
include/linux/perf_event.h | 6 ++----
kernel/hw_breakpoint.c | 2 +-
kernel/perf_event.c | 2 +-
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h
index 41235c9..76e7427 100644
--- a/include/linux/hw_breakpoint.h
+++ b/include/linux/hw_breakpoint.h
@@ -44,7 +44,7 @@ static inline int hw_breakpoint_type(struct perf_event *bp)
return bp->attr.bp_type;
}
-static inline int hw_breakpoint_len(struct perf_event *bp)
+static inline unsigned long hw_breakpoint_len(struct perf_event *bp)
{
return bp->attr.bp_len;
}
This should return a u64, or gcc will warn us about loosing
informations in 32 bits arch?
Acked-by: Frederic Weisbecker<fweisbec@xxxxxxxxx>