]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: fix signed division and modulo operations in DIF
authorKris Van Hees <kris.van.hees@oracle.com>
Tue, 17 Jan 2012 20:03:17 +0000 (15:03 -0500)
committerNick Alcock <nick.alcock@oracle.com>
Mon, 29 Jun 2015 21:40:23 +0000 (22:40 +0100)
Ensure that SDT probe points are patched with a NOP sequence at boot time.

Remove debugging output during SDT registration.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
init/main.c
kernel/dtrace/sdt_register.c

index cc9bb01104b0124daa2cf04d84233535d6cd056b..bdb67ba13600497d4ad65bf5a449244eb01cd0ae 100644 (file)
@@ -674,6 +674,10 @@ asmlinkage __visible void __init start_kernel(void)
 
        ftrace_init();
 
+#ifdef CONFIG_DTRACE
+       dtrace_register_builtins();                                             
+#endif                                                                        
+
        /* Do the rest non-__init'ed, we're now alive */
        rest_init();
 }
index 152d5a5db3aafb1990fb22f9044ab667e8748dfa..dd457de7917f606177c9afef5a60b7a23612b60f 100644 (file)
@@ -63,15 +63,9 @@ static int sdt_probe_resolve(struct module *mp, char *name, char *func,
        sdp->sdpd_next = mp->sdt_probes;
        mp->sdt_probes = sdp;
 
-       DPRINTK("sdt_probes -> 0x%p\n", mp->sdt_probes);
-       DPRINTK("this: instr offset=0x%lx, next ptr=0x%p, name=%s, func=%s\n",
-               sdp->sdpd_offset, sdp->sdpd_next, sdp->sdpd_name,
-               sdp->sdpd_func);
-
        mutex_lock(&text_mutex);
        text_poke(instr, nops, SDT_NOP_SIZE);
        mutex_unlock(&text_mutex);
-       DPRINTK(" %02x %02x %02x %02x %02x\n", instr[0], instr[1], instr[2], instr[3], instr[4]);
 
        return 0;
 }
@@ -97,38 +91,28 @@ void dtrace_register_builtins(void)
 
        dtrace_kmod = kzalloc(sizeof(struct module), GFP_KERNEL);
        if (!dtrace_kmod) {
-               printk(KERN_WARNING
-                       "%s: cannot allocate kernel pseudo-module\n",
-                       __func__);
+               pr_warning("%s: cannot allocate kernel pseudo-module\n",
+                          __func__);
                return;
        }
        dtrace_kmod->state = MODULE_STATE_LIVE;
        strlcpy(dtrace_kmod->name, "vmlinux", MODULE_NAME_LEN);
 
-       DPRINTK("%lu SDT relocation entries beg. @0x%p\n",
-               dtrace_sdt_nprobes, &dtrace_sdt_probes);
-
        if (dtrace_sdt_nprobes == 0)
                return;
 
        for (cnt = 0; cnt < dtrace_sdt_nprobes; cnt++) {
                char    *func = pi->name + pi->name_len + 1;
 
-               DPRINTK("SDT probe point [%lu]: "
-                       "offset=0x%lx, base=0x%lx, name_len=0x%lx, "
-                       "func_len=0x%lx, name=%s, func=%s\n",
-                       cnt, pi->offset, pi->base, pi->name_len,
-                            pi->func_len, pi->name, func);
                if (sdt_probe_resolve(dtrace_kmod, pi->name, func,
                                      pi->offset, pi->base, nops))
-                       printk(KERN_WARNING "%s: cannot resolve %s\n",
-                               __func__, pi->name);
+                       pr_warning("%s: cannot resolve %s\n",
+                                  __func__, pi->name);
 
                nextpi = (void *)pi + sizeof(dtrace_sdt_probeinfo_t)
                        + roundup(pi->name_len + 1 +
                                  pi->func_len + 1, BITS_PER_LONG / 8);
                pi = nextpi;
-               DPRINTK("SDT relocs: next entry at 0x%p\n", pi);
        }
 }
 EXPORT_SYMBOL(dtrace_register_builtins);