static int register_balloon(struct sys_device *sysdev);
 
-static struct xenbus_watch target_watch =
-{
-       .node = "memory/target"
-};
-
 /* React to a change in the target key */
 static void watch_target(struct xenbus_watch *watch,
                         const char **vec, unsigned int len)
         */
        balloon_set_new_target(new_target >> (PAGE_SHIFT - 10));
 }
+static struct xenbus_watch target_watch = {
+       .node = "memory/target",
+       .callback = watch_target,
+};
+
 
 static int balloon_init_watcher(struct notifier_block *notifier,
                                unsigned long event,
        return NOTIFY_DONE;
 }
 
-static struct notifier_block xenstore_notifier;
+static struct notifier_block xenstore_notifier = {
+       .notifier_call = balloon_init_watcher,
+};
 
 static int __init balloon_init(void)
 {
 
        register_xen_selfballooning(&balloon_sysdev);
 
-       target_watch.callback = watch_target;
-       xenstore_notifier.notifier_call = balloon_init_watcher;
-
        register_xenstore_notifier(&xenstore_notifier);
 
        return 0;