Fixed bug of simultaneous do_page_fault and user space probes collection
authorNikita Kalyazin <n.kalyazin@samsung.com>
Thu, 25 Nov 2010 11:25:22 +0000 (14:25 +0300)
committerNikita Kalyazin <n.kalyazin@samsung.com>
Fri, 26 Nov 2010 10:43:52 +0000 (13:43 +0300)
driver/storage.c
driver/us_proc_inst.c

index f7a4843..710504a 100644 (file)
@@ -1684,10 +1684,13 @@ int add_probe_to_list (unsigned long addr, kernel_probe_t ** pprobe)
        unsigned long (*find_pre_handler)(unsigned long) =
                        (unsigned long (*)(unsigned long))lookup_name("find_pre_handler");
 
+       kernel_probe_t *probe;
+
        if (pprobe)
                *pprobe = NULL;
        //check if such probe does already exist
-       if (find_probe (addr)) {
+       probe = find_probe(addr);
+       if (probe) {
                /* It is not a problem if we have already registered
                   this probe before */
                return 0;
index 358e0b4..a1bab20 100644 (file)
@@ -664,7 +664,7 @@ static int install_kernel_probe (unsigned long addr, int uflag, int kflag, kerne
                us_proc_probes |= uflag;
        }
 
-       if (pprobe)
+       if (probe)
                *pprobe = probe;
 
        return 0;