lkml.org 
[lkml]   [2012]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 19/68] XTENSA: iss/console, fix potential deadlock
    Date
    If the timer ticks while we are holding the spinlock, the system
    deadlocks. It is due to synchronous del_timer.

    So to fix that, use spinlocks that properly disable bottom halves.

    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Cc: Chris Zankel <chris@zankel.net>
    ---
    arch/xtensa/platforms/iss/console.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
    index 01842e4..94ab8ec 100644
    --- a/arch/xtensa/platforms/iss/console.c
    +++ b/arch/xtensa/platforms/iss/console.c
    @@ -91,11 +91,10 @@ static int rs_open(struct tty_struct *tty, struct file * filp)
    */
    static void rs_close(struct tty_struct *tty, struct file * filp)
    {
    - spin_lock(&timer_lock);
    + spin_lock_bh(&timer_lock);
    if (tty->count == 1)
    - /* this will cause a deadlock if the timer ticks right now */
    del_timer_sync(&serial_timer);
    - spin_unlock(&timer_lock);
    + spin_unlock_bh(&timer_lock);
    }


    --
    1.7.9.2



    \
     
     \ /
      Last update: 2012-03-05 14:59    [W:0.029 / U:90.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site