• Michal Simek's avatar
    microblaze: Lockdep support · bf2d8096
    Michal Simek authored
    Microblaze needs to do lock_init very soon because MMU init calls lock functions.
    
    Here is the explanation from Peter Zijlstra why we have to enable
    __ARCH_WANTS_INTERRUPTS_ON_CTSW.
    
    "So we schedule while holding rq->lock (for obvious reasons), but since
    lockdep tracks held locks per tasks, we need to transfer the held state
    from the prev to the next task. We do this by explicity calling
    spin_release(&rq->lock) in context_switch() right before switch_to(),
    and calling spin_acquire(&rq->lock) in
    finish_task_switch()->finish_lock_switch().
    
    Now, for some reason lockdep thinks that interrupts got enabled over the
    context switch (git grep __ARCH_WANTS_INTERRUPTS_ON_CTSW arch/microblaze
    doesn't seem to turn up anything).
    
    Clearly trying to acquire the rq->lock with interrupts enabled is a bad
    idea and lockdep warns you about this."
    Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
    bf2d8096
system.h 2.23 KB