Skip to content

Commit

Permalink
[MTD] mtdoops: fix a bit of spin lock usage
Browse files Browse the repository at this point in the history
- do not leave spin lock locked
- initialise spin lock

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Adrian Hunter authored and David Woodhouse committed Mar 20, 2009
1 parent e2a0f25 commit 48ec00a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/mtd/mtdoops.c
Original file line number Diff line number Diff line change
Expand Up @@ -361,8 +361,10 @@ mtdoops_console_write(struct console *co, const char *s, unsigned int count)
spin_lock_irqsave(&cxt->writecount_lock, flags);

/* Check ready status didn't change whilst waiting for the lock */
if (!cxt->ready)
if (!cxt->ready) {
spin_unlock_irqrestore(&cxt->writecount_lock, flags);
return;
}

if (cxt->writecount == 0) {
u32 *stamp = cxt->oops_buf;
Expand Down Expand Up @@ -420,6 +422,7 @@ static int __init mtdoops_console_init(void)

cxt->mtd_index = -1;
cxt->oops_buf = vmalloc(OOPS_PAGE_SIZE);
spin_lock_init(&cxt->writecount_lock);

if (!cxt->oops_buf) {
printk(KERN_ERR "Failed to allocate mtdoops buffer workspace\n");
Expand Down

0 comments on commit 48ec00a

Please sign in to comment.