On 12/02, Oleg Nesterov wrote: > > On 11/27, Namhyung Kim wrote: > > > > Use separate fetch_type_table for kprobes and uprobes. It currently > > shares all fetch methods but some of them will be implemented > > differently later. > > Hmm. This looks wrong, afaics... > > > static int parse_probe_arg(char *arg, const struct fetch_type *t, > > struct fetch_param *f, bool is_return, bool is_kprobe) > > { > > + const struct fetch_type *ftbl; > > unsigned long param; > > long offset; > > char *tmp; > > - int ret; > > + int ret = 0; > > > > - ret = 0; > > + ftbl = is_kprobe ? kprobes_fetch_type_table : uprobes_fetch_type_table; > > OK, but what if, say, CONFIG_KPROBE_EVENT && !CONFIG_UPROBE_EVENT ? > The kernel won't compile in this case?
Ah, wait, probably I was wrong. I didn't noticee that this patch does extern __weak const struct fetch_type kprobes_fetch_type_table[]; extern __weak const struct fetch_type uprobes_fetch_type_table[]; Is it the reason for "weak" ? If yes, perhaps this deserves a comment or at least a note in the changelog. Or is there another reason? I am wondering if this should always work, with any toolchain. I simply do not know what is the documented behaviour if a "weak" symbol is never defined. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/