diff options
| -rw-r--r-- | drivers/xen/manage.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c index 8943b8ccee1a..07e857b0de13 100644 --- a/drivers/xen/manage.c +++ b/drivers/xen/manage.c | |||
| @@ -185,6 +185,7 @@ static void shutdown_handler(struct xenbus_watch *watch, | |||
| 185 | kfree(str); | 185 | kfree(str); |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | #ifdef CONFIG_MAGIC_SYSRQ | ||
| 188 | static void sysrq_handler(struct xenbus_watch *watch, const char **vec, | 189 | static void sysrq_handler(struct xenbus_watch *watch, const char **vec, |
| 189 | unsigned int len) | 190 | unsigned int len) |
| 190 | { | 191 | { |
| @@ -214,15 +215,16 @@ static void sysrq_handler(struct xenbus_watch *watch, const char **vec, | |||
| 214 | handle_sysrq(sysrq_key, NULL); | 215 | handle_sysrq(sysrq_key, NULL); |
| 215 | } | 216 | } |
| 216 | 217 | ||
| 217 | static struct xenbus_watch shutdown_watch = { | ||
| 218 | .node = "control/shutdown", | ||
| 219 | .callback = shutdown_handler | ||
| 220 | }; | ||
| 221 | |||
| 222 | static struct xenbus_watch sysrq_watch = { | 218 | static struct xenbus_watch sysrq_watch = { |
| 223 | .node = "control/sysrq", | 219 | .node = "control/sysrq", |
| 224 | .callback = sysrq_handler | 220 | .callback = sysrq_handler |
| 225 | }; | 221 | }; |
| 222 | #endif | ||
| 223 | |||
| 224 | static struct xenbus_watch shutdown_watch = { | ||
| 225 | .node = "control/shutdown", | ||
| 226 | .callback = shutdown_handler | ||
| 227 | }; | ||
| 226 | 228 | ||
| 227 | static int setup_shutdown_watcher(void) | 229 | static int setup_shutdown_watcher(void) |
| 228 | { | 230 | { |
| @@ -234,11 +236,13 @@ static int setup_shutdown_watcher(void) | |||
| 234 | return err; | 236 | return err; |
| 235 | } | 237 | } |
| 236 | 238 | ||
| 239 | #ifdef CONFIG_MAGIC_SYSRQ | ||
| 237 | err = register_xenbus_watch(&sysrq_watch); | 240 | err = register_xenbus_watch(&sysrq_watch); |
| 238 | if (err) { | 241 | if (err) { |
| 239 | printk(KERN_ERR "Failed to set sysrq watcher\n"); | 242 | printk(KERN_ERR "Failed to set sysrq watcher\n"); |
| 240 | return err; | 243 | return err; |
| 241 | } | 244 | } |
| 245 | #endif | ||
| 242 | 246 | ||
| 243 | return 0; | 247 | return 0; |
| 244 | } | 248 | } |
