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 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/

Reply via email to