lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 03 Jul 2008 11:27:23 -0400 From: Masami Hiramatsu <mhiramat@...hat.com> To: Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca> CC: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>, Takashi Nishiie <t-nishiie@...css.fujitsu.com>, "'Alexey Dobriyan'" <adobriyan@...il.com>, "'Peter Zijlstra'" <peterz@...radead.org>, "'Steven Rostedt'" <rostedt@...dmis.org>, "'Frank Ch. Eigler'" <fche@...hat.com>, "'Ingo Molnar'" <mingo@...e.hu>, "'LKML'" <linux-kernel@...r.kernel.org>, "'systemtap-ml'" <systemtap@...rces.redhat.com>, "'Hideo AOKI'" <haoki@...hat.com> Subject: Re: [RFC PATCH] Kernel Tracepoints (update) Hi Mathieu, I found a bug. Mathieu Desnoyers wrote: [...] > +/* > + * Remove the tracepoint from the tracepoint hash table. Must be called with > + * mutex_lock held. > + */ > +static int remove_tracepoint(const char *name) > +{ > + struct hlist_head *head; > + struct hlist_node *node; > + struct tracepoint_entry *e; > + int found = 0; > + size_t len = strlen(name) + 1; > + u32 hash = jhash(name, len-1, 0); > + > + head = &tracepoint_table[hash & ((1 << TRACEPOINT_HASH_BITS)-1)]; > + hlist_for_each_entry(e, node, head, hlist) { > + if (!strcmp(name, e->name)) { > + found = 1; > + break; > + } > + } > + if (!found) > + return -ENOENT; before removing, you have to ensure refcount == 0. So, if (e->refcount != 0) return -EBUSY; > + hlist_del(&e->hlist); > + /* Make sure the call_rcu has been executed */ > + if (e->rcu_pending) > + rcu_barrier(); > + kfree(e); > + return 0; > +} Thank you, -- Masami Hiramatsu Software Engineer Hitachi Computer Products (America) Inc. Software Solutions Division e-mail: mhiramat@...hat.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists