--- bptest/bptest.c.~1~ 2007-06-25 04:08:06.000000000 -0700 +++ bptest/bptest.c 2007-06-26 01:14:20.000000000 -0700 @@ -147,17 +147,17 @@ static DRIVER_ATTR(call, 0200, NULL, cal /* Breakpoint callbacks */ static void bptest_triggered(struct hw_breakpoint *bp, struct pt_regs *regs) { - printk(KERN_INFO "Breakpoint %d triggered\n", bp - bps); + printk(KERN_INFO "Breakpoint %d triggered\n", (int) (bp - bps)); } static void bptest_installed(struct hw_breakpoint *bp) { - printk(KERN_INFO "Breakpoint %d installed\n", bp - bps); + printk(KERN_INFO "Breakpoint %d installed\n", (int) (bp - bps)); } static void bptest_uninstalled(struct hw_breakpoint *bp) { - printk(KERN_INFO "Breakpoint %d uninstalled\n", bp - bps); + printk(KERN_INFO "Breakpoint %d uninstalled\n", (int) (bp - bps)); } @@ -204,7 +204,7 @@ static ssize_t bp_show(int n, char *buf) a = -1; if (type == 'e') { - const void *addr = hw_breakpoint_get_kaddr(bp); + const void *addr = hw_breakpoint_get_kaddress(bp); if (addr == r0) a = 0; @@ -215,7 +215,7 @@ static ssize_t bp_show(int n, char *buf) else if (addr == r3) a = 3; } else { - const unsigned char *p = hw_breakpoint_get_kaddr(bp); + const unsigned char *p = hw_breakpoint_get_kaddress(bp); if (p >= bytes && p < bytes + NUM_BYTES) a = p - bytes; @@ -233,6 +233,7 @@ static ssize_t bp_store(int n, const cha char atype; unsigned len, type; int i; + void *addr; if (count <= 1) { printk(KERN_INFO "bptest: bp%d: format: priority type " @@ -290,7 +291,7 @@ static ssize_t bp_store(int n, const cha return -EINVAL; } if (atype == 'e') - hw_breakpoint_kinit(bp, rtns[a], len, type); + addr = rtns[a]; else { switch (alen) { #ifdef HW_BREAKPOINT_LEN_1 @@ -311,14 +312,14 @@ static ssize_t bp_store(int n, const cha return -EINVAL; break; } - hw_breakpoint_kinit(bp, &bytes[a], len, type); + addr = &bytes[a]; } bp->triggered = bptest_triggered; bp->installed = bptest_installed; bp->uninstalled = bptest_uninstalled; - i = register_kernel_hw_breakpoint(bp); + i = register_kernel_hw_breakpoint(bp, addr, len, type); if (i < 0) { printk(KERN_WARNING "bptest: bp%d: failed to register %d\n", n, i);