diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/livepatch/core.c | 6 | ||||
-rw-r--r-- | kernel/panic.c | 5 | ||||
-rw-r--r-- | kernel/signal.c | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c index 6e5344112419..db545cbcdb89 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c | |||
@@ -294,6 +294,12 @@ static int klp_write_object_relocations(struct module *pmod, | |||
294 | 294 | ||
295 | for (reloc = obj->relocs; reloc->name; reloc++) { | 295 | for (reloc = obj->relocs; reloc->name; reloc++) { |
296 | if (!klp_is_module(obj)) { | 296 | if (!klp_is_module(obj)) { |
297 | |||
298 | #if defined(CONFIG_RANDOMIZE_BASE) | ||
299 | /* If KASLR has been enabled, adjust old value accordingly */ | ||
300 | if (kaslr_enabled()) | ||
301 | reloc->val += kaslr_offset(); | ||
302 | #endif | ||
297 | ret = klp_verify_vmlinux_symbol(reloc->name, | 303 | ret = klp_verify_vmlinux_symbol(reloc->name, |
298 | reloc->val); | 304 | reloc->val); |
299 | if (ret) | 305 | if (ret) |
diff --git a/kernel/panic.c b/kernel/panic.c index 4579dbb7ed87..4b150bc0c6c1 100644 --- a/kernel/panic.c +++ b/kernel/panic.c | |||
@@ -152,8 +152,11 @@ void panic(const char *fmt, ...) | |||
152 | * We may have ended up stopping the CPU holding the lock (in | 152 | * We may have ended up stopping the CPU holding the lock (in |
153 | * smp_send_stop()) while still having some valuable data in the console | 153 | * smp_send_stop()) while still having some valuable data in the console |
154 | * buffer. Try to acquire the lock then release it regardless of the | 154 | * buffer. Try to acquire the lock then release it regardless of the |
155 | * result. The release will also print the buffers out. | 155 | * result. The release will also print the buffers out. Locks debug |
156 | * should be disabled to avoid reporting bad unlock balance when | ||
157 | * panic() is not being callled from OOPS. | ||
156 | */ | 158 | */ |
159 | debug_locks_off(); | ||
157 | console_trylock(); | 160 | console_trylock(); |
158 | console_unlock(); | 161 | console_unlock(); |
159 | 162 | ||
diff --git a/kernel/signal.c b/kernel/signal.c index c0b01fe24bbd..f3f1f7a972fd 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -3503,7 +3503,7 @@ SYSCALL_DEFINE0(pause) | |||
3503 | 3503 | ||
3504 | #endif | 3504 | #endif |
3505 | 3505 | ||
3506 | int sigsuspend(sigset_t *set) | 3506 | static int sigsuspend(sigset_t *set) |
3507 | { | 3507 | { |
3508 | current->saved_sigmask = current->blocked; | 3508 | current->saved_sigmask = current->blocked; |
3509 | set_current_blocked(set); | 3509 | set_current_blocked(set); |