• Christian Borntraeger's avatar
    fix spinlock recursion in hvc_console · b1b135c8
    Christian Borntraeger authored
    commit 611e097d
    Author: Christian Borntraeger <borntraeger@de.ibm.com>
    hvc_console: rework setup to replace irq functions with callbacks
    introduced a spinlock recursion problem.
    
    request_irq tries to call the handler if the IRQ is shared.
    The irq handler of hvc_console calls hvc_poll and hvc_kill
    which might take the hvc_struct spinlock. Therefore, we have
    to call request_irq outside the spinlock.
    
    We can move the notifier_add safely outside the spinlock as ->data must
    not be changed by the backend. Otherwise, tty_hangup would fail anyway.
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    b1b135c8
hvc_console.c 20.2 KB