public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* initializing chip->wq in cfi_cmdset_0002.c
@ 2006-07-01 18:18 David Byron
  2006-07-01 22:46 ` Thomas Gleixner
  0 siblings, 1 reply; 2+ messages in thread
From: David Byron @ 2006-07-01 18:18 UTC (permalink / raw)
  To: linux-mtd

I'm using cfi_cmdset_0002.c to access a flash chip and I ran into an oops
from trying to dereference a null pointer.  I found a fix for it, but I feel
like there must be something I don't understand.  Seems like other folks
would have run into this as well.

The crash comes with the call to wake_up(&chip->wq) on the last line of
put_chip.  I can't see anywhere that this data structure is initialized.  I
looked at some of the other cfi_cmdset* files and decided that

diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c
b/drivers/mtd/chips/cfi_cmdset_0002.c
index 9885726..8a390b3 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -320,6 +320,7 @@ #endif
 		cfi->chips[i].word_write_time =
1<<cfi->cfiq->WordWriteTimeoutTyp;
 		cfi->chips[i].buffer_write_time =
1<<cfi->cfiq->BufWriteTimeoutTyp;
 		cfi->chips[i].erase_time =
1<<cfi->cfiq->BlockEraseTimeoutTyp;
+		init_waitqueue_head(&cfi->chips[i].wq);
 	}
 
 	map->fldrv = &cfi_amdstd_chipdrv;

was a good place to initialize.  It fixes the oops for me.  Can someone
confirm that this makes sense?

Thanks much.

-DB

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: initializing chip->wq in cfi_cmdset_0002.c
  2006-07-01 18:18 initializing chip->wq in cfi_cmdset_0002.c David Byron
@ 2006-07-01 22:46 ` Thomas Gleixner
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Gleixner @ 2006-07-01 22:46 UTC (permalink / raw)
  To: dbyron; +Cc: David Woodhouse, linux-mtd

On Sat, 2006-07-01 at 11:18 -0700, David Byron wrote:
> I'm using cfi_cmdset_0002.c to access a flash chip and I ran into an oops
> from trying to dereference a null pointer.  I found a fix for it, but I feel
> like there must be something I don't understand.  Seems like other folks
> would have run into this as well.
> 
> The crash comes with the call to wake_up(&chip->wq) on the last line of
> put_chip.  I can't see anywhere that this data structure is initialized.  I
> looked at some of the other cfi_cmdset* files and decided that
> 
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c
> b/drivers/mtd/chips/cfi_cmdset_0002.c
> index 9885726..8a390b3 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -320,6 +320,7 @@ #endif
>  		cfi->chips[i].word_write_time =
> 1<<cfi->cfiq->WordWriteTimeoutTyp;
>  		cfi->chips[i].buffer_write_time =
> 1<<cfi->cfiq->BufWriteTimeoutTyp;
>  		cfi->chips[i].erase_time =
> 1<<cfi->cfiq->BlockEraseTimeoutTyp;
> +		init_waitqueue_head(&cfi->chips[i].wq);
>  	}
>  
>  	map->fldrv = &cfi_amdstd_chipdrv;
> 
> was a good place to initialize.  It fixes the oops for me.  Can someone
> confirm that this makes sense?

Yes, it makes sense. Please fix your mailer not to line wrap patches.
Makes them hard to read and impossible to apply. Please resend !

I'm sure we fixed that some time ago. Might have been lost when we
switched from CVS to git. David ?

	tglx

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-07-01 22:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-01 18:18 initializing chip->wq in cfi_cmdset_0002.c David Byron
2006-07-01 22:46 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox