X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fdump%2Fdump_setup.c;h=668b2d0526e5666743df4b603b0ddf7400059b56;hb=9e1bf581d67d87a1d7fc0ea500729e3a03643a26;hp=338f7235d3da4b52c5b01144b5b88d57a201184b;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/dump/dump_setup.c b/drivers/dump/dump_setup.c index 338f7235d..668b2d052 100644 --- a/drivers/dump/dump_setup.c +++ b/drivers/dump/dump_setup.c @@ -740,7 +740,9 @@ static inline void dump_sysrq_register(void) { #ifdef CONFIG_MAGIC_SYSRQ - register_sysrq_key(DUMP_SYSRQ_KEY, &sysrq_crashdump_op); + __sysrq_lock_table(); + __sysrq_put_key_op(DUMP_SYSRQ_KEY, &sysrq_crashdump_op); + __sysrq_unlock_table(); #endif } @@ -748,7 +750,10 @@ static inline void dump_sysrq_unregister(void) { #ifdef CONFIG_MAGIC_SYSRQ - unregister_sysrq_key(DUMP_SYSRQ_KEY, &sysrq_crashdump_op); + __sysrq_lock_table(); + if (__sysrq_get_key_op(DUMP_SYSRQ_KEY) == &sysrq_crashdump_op) + __sysrq_put_key_op(DUMP_SYSRQ_KEY, NULL); + __sysrq_unlock_table(); #endif }