Skip to content

Commit

Permalink
[PATCH] drivers/char/esp.c spinlock fix
Browse files Browse the repository at this point in the history
There's incorrect spinlock usage in espserial_init(): autoconfig() uses
info->lock before it's initialized.  The fix is to initialize the spinlock
earlier.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Ingo Molnar authored and Linus Torvalds committed Jan 17, 2006
1 parent fd27919 commit 8f56a31
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/char/esp.c
Original file line number Diff line number Diff line change
Expand Up @@ -2492,6 +2492,7 @@ static int __init espserial_init(void)
}

memset((void *)info, 0, sizeof(struct esp_struct));
spin_lock_init(&info->lock);
/* rx_trigger, tx_trigger are needed by autoconfig */
info->config.rx_trigger = rx_trigger;
info->config.tx_trigger = tx_trigger;
Expand Down Expand Up @@ -2528,7 +2529,6 @@ static int __init espserial_init(void)
init_waitqueue_head(&info->close_wait);
init_waitqueue_head(&info->delta_msr_wait);
init_waitqueue_head(&info->break_wait);
spin_lock_init(&info->lock);
ports = info;
printk(KERN_INFO "ttyP%d at 0x%04x (irq = %d) is an ESP ",
info->line, info->port, info->irq);
Expand Down

0 comments on commit 8f56a31

Please sign in to comment.