Re: [PATCH v2 04/13] uprobes: allow arch-specific initialization

From: David Long
Date: Tue Oct 22 2013 - 21:21:16 EST


On 10/19/13 12:42, Oleg Nesterov wrote:
On 10/15, David Long wrote:

Add a weak function for any architecture-specific initialization. ARM
will use this to register the handlers for the undefined instructions it
uses to implement uprobes.

Could you explain why ARM can't simply do the necessary initialization in
arch/arm/kernel/uprobes-arm.c ?


+int __weak __init arch_uprobes_init(void)
+{
+ return 0;
+}
+
static int __init init_uprobes(void)
{
+ int ret;
int i;

for (i = 0; i < UPROBES_HASH_SZ; i++)
@@ -1870,6 +1876,10 @@ static int __init init_uprobes(void)
if (percpu_init_rwsem(&dup_mmap_sem))
return -ENOMEM;

+ ret = arch_uprobes_init();
+ if (ret)
+ return ret;
+
return register_die_notifier(&uprobe_exception_nb);
}
module_init(init_uprobes);

IOW, why do we need to call arch_uprobes_init() from init_uprobes().

Oleg


I don't know how you would do the initialization without invoking it through the module_init function, which I think you can only have one of. Could you explain in more detail what you had in mind?

-dl

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/