summaryrefslogtreecommitdiff
path: root/arch/ia64/mm/extable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/mm/extable.c')
-rw-r--r--arch/ia64/mm/extable.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/ia64/mm/extable.c b/arch/ia64/mm/extable.c
index 8e72e01b424d..6d259e34f359 100644
--- a/arch/ia64/mm/extable.c
+++ b/arch/ia64/mm/extable.c
@@ -17,10 +17,15 @@ static int cmp_ex(const void *a, const void *b)
u64 lip = (u64) &l->addr + l->addr;
u64 rip = (u64) &r->addr + r->addr;
- return lip - rip;
+ /* avoid overflow */
+ if (lip > rip)
+ return 1;
+ if (lip < rip)
+ return -1;
+ return 0;
}
-static void swap_ex(void *a, void *b)
+static void swap_ex(void *a, void *b, int size)
{
struct exception_table_entry *l = a, *r = b, tmp;
u64 delta = (u64) r - (u64) l;