Subject: [PATCH 2/2] [BUGFIX] kprobes: Fix selftest to clear flags field for reusing probes

Fix selftest to clear flags field for reusing probes
because the flags field can be modified by Kprobes.
This also set NULL to kprobe.addr instead of 0.

Signed-off-by: Masami Hiramatsu <[email protected]>
Cc: Ananth N Mavinakayanahalli <[email protected]>
Cc: [email protected]
---

kernel/test_kprobes.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/kernel/test_kprobes.c b/kernel/test_kprobes.c
index 4f10451..f8b11a2 100644
--- a/kernel/test_kprobes.c
+++ b/kernel/test_kprobes.c
@@ -115,7 +115,9 @@ static int test_kprobes(void)
int ret;
struct kprobe *kps[2] = {&kp, &kp2};

- kp.addr = 0; /* addr should be cleard for reusing kprobe. */
+ /* addr and flags should be cleard for reusing kprobe. */
+ kp.addr = NULL;
+ kp.flags = 0;
ret = register_kprobes(kps, 2);
if (ret < 0) {
printk(KERN_ERR "Kprobe smoke test failed: "
@@ -210,7 +212,9 @@ static int test_jprobes(void)
int ret;
struct jprobe *jps[2] = {&jp, &jp2};

- jp.kp.addr = 0; /* addr should be cleard for reusing kprobe. */
+ /* addr and flags should be cleard for reusing kprobe. */
+ jp.kp.addr = NULL;
+ jp.kp.flags = 0;
ret = register_jprobes(jps, 2);
if (ret < 0) {
printk(KERN_ERR "Kprobe smoke test failed: "
@@ -323,7 +327,9 @@ static int test_kretprobes(void)
int ret;
struct kretprobe *rps[2] = {&rp, &rp2};

- rp.kp.addr = 0; /* addr should be cleard for reusing kprobe. */
+ /* addr and flags should be cleard for reusing kprobe. */
+ rp.kp.addr = NULL;
+ rp.kp.flags = 0;
ret = register_kretprobes(rps, 2);
if (ret < 0) {
printk(KERN_ERR "Kprobe smoke test failed: "


Subject: Re: [PATCH 2/2] [BUGFIX] kprobes: Fix selftest to clear flags field for reusing probes

On Thu, Aug 05, 2010 at 09:35:11PM +0900, Masami Hiramatsu wrote:
> Fix selftest to clear flags field for reusing probes
> because the flags field can be modified by Kprobes.
> This also set NULL to kprobe.addr instead of 0.
>
> Signed-off-by: Masami Hiramatsu <[email protected]>
> Cc: Ananth N Mavinakayanahalli <[email protected]>

Acked-by: Ananth N Mavinakayanahalli <[email protected]>

> Cc: [email protected]
> ---
>
> kernel/test_kprobes.c | 12 +++++++++---
> 1 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/test_kprobes.c b/kernel/test_kprobes.c
> index 4f10451..f8b11a2 100644
> --- a/kernel/test_kprobes.c
> +++ b/kernel/test_kprobes.c
> @@ -115,7 +115,9 @@ static int test_kprobes(void)
> int ret;
> struct kprobe *kps[2] = {&kp, &kp2};
>
> - kp.addr = 0; /* addr should be cleard for reusing kprobe. */
> + /* addr and flags should be cleard for reusing kprobe. */
> + kp.addr = NULL;
> + kp.flags = 0;
> ret = register_kprobes(kps, 2);
> if (ret < 0) {
> printk(KERN_ERR "Kprobe smoke test failed: "
> @@ -210,7 +212,9 @@ static int test_jprobes(void)
> int ret;
> struct jprobe *jps[2] = {&jp, &jp2};
>
> - jp.kp.addr = 0; /* addr should be cleard for reusing kprobe. */
> + /* addr and flags should be cleard for reusing kprobe. */
> + jp.kp.addr = NULL;
> + jp.kp.flags = 0;
> ret = register_jprobes(jps, 2);
> if (ret < 0) {
> printk(KERN_ERR "Kprobe smoke test failed: "
> @@ -323,7 +327,9 @@ static int test_kretprobes(void)
> int ret;
> struct kretprobe *rps[2] = {&rp, &rp2};
>
> - rp.kp.addr = 0; /* addr should be cleard for reusing kprobe. */
> + /* addr and flags should be cleard for reusing kprobe. */
> + rp.kp.addr = NULL;
> + rp.kp.flags = 0;
> ret = register_kretprobes(rps, 2);
> if (ret < 0) {
> printk(KERN_ERR "Kprobe smoke test failed: "
>