diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2019-02-13 17:14:42 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-04-05 22:31:30 +0200 |
commit | 8b847ace66d6c4d540855050c21aafc92a953213 (patch) | |
tree | d70431d692c625fc5ac56c7dbc199c3623ff508c /arch/sh/lib/memchr.S | |
parent | d208133d6ae2c13618e9a215107223a7b7e4fe12 (diff) | |
download | linux-stable-8b847ace66d6c4d540855050c21aafc92a953213.tar.gz linux-stable-8b847ace66d6c4d540855050c21aafc92a953213.tar.bz2 linux-stable-8b847ace66d6c4d540855050c21aafc92a953213.zip |
ARM: 8840/1: use a raw_spinlock_t in unwind
[ Upstream commit 74ffe79ae538283bbf7c155e62339f1e5c87b55a ]
Mostly unwind is done with irqs enabled however SLUB may call it with
irqs disabled while creating a new SLUB cache.
I had system freeze while loading a module which called
kmem_cache_create() on init. That means SLUB's __slab_alloc() disabled
interrupts and then
->new_slab_objects()
->new_slab()
->setup_object()
->setup_object_debug()
->init_tracking()
->set_track()
->save_stack_trace()
->save_stack_trace_tsk()
->walk_stackframe()
->unwind_frame()
->unwind_find_idx()
=>spin_lock_irqsave(&unwind_lock);
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/sh/lib/memchr.S')
0 files changed, 0 insertions, 0 deletions