diff options
| author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2019-02-13 19:14:42 +0300 | 
|---|---|---|
| committer | Russell King <rmk+kernel@armlinux.org.uk> | 2019-02-26 14:24:51 +0300 | 
| commit | 74ffe79ae538283bbf7c155e62339f1e5c87b55a (patch) | |
| tree | 20a212474598f9a7b83583416a17ff42024f4f4d /net/lapb/lapb_iface.c | |
| parent | 143c2a89e0e5fda6c6fd08d7bc1126438c19ae90 (diff) | |
| download | linux-74ffe79ae538283bbf7c155e62339f1e5c87b55a.tar.xz | |
ARM: 8840/1: use a raw_spinlock_t in unwind
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>
Diffstat (limited to 'net/lapb/lapb_iface.c')
0 files changed, 0 insertions, 0 deletions
