On Thu, Jun 01, 2017 at 02:25:26PM -0400, Joe Lawrence wrote: > #include <linux/seq_file.h> > +#include <linux/slab.h> > static int livepatch_cmdline_proc_show(struct seq_file *m, void *v) > { > + struct task_ctr *nd; > + > + nd = klp_shadow_get(current, "task_ctr"); > + if (!nd) { > + nd = kzalloc(sizeof(*nd), GFP_KERNEL); > + if (nd) { > + list_add(&nd->list, &shadow_list); > + klp_shadow_attach(current, "task_ctr", GFP_KERNEL, nd); > + } > + } > + > seq_printf(m, "%s\n", "this has been live patched"); > + > + if (nd) { > + nd->count++; > + seq_printf(m, "current=%p count=%d\n", current, nd->count); > + } > + > return 0; > } > > @@ -99,6 +130,12 @@ static int livepatch_init(void) > > static void livepatch_exit(void) > { > + struct task_ctr *nd, *tmp; > + > + list_for_each_entry_safe(nd, tmp, &shadow_list, list) { > + list_del(&nd->list); > + kfree(nd); > + } > WARN_ON(klp_unregister_patch(&patch)); > } What does 'nd' stand for? I think a name like 'ctr' would be clearer. -- Josh -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html