<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/mtd, branch linux-2.6.24.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>mtd: fix broken state in CFI driver caused by FL_SHUTDOWN</title>
<updated>2008-04-19T01:53:23+00:00</updated>
<author>
<name>Alexey Korolev</name>
<email>akorolev@infradead.org</email>
</author>
<published>2008-04-04T22:15:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=81f368b55356732412d1737b7da90c4a7d7d11a2'/>
<id>81f368b55356732412d1737b7da90c4a7d7d11a2</id>
<content type='text'>
upstream commit: fb6d080c6f75dfd7e23d5a3575334785aa8738eb

THe CFI driver in 2.6.24 kernel is broken.  Not so intensive read/write
operations cause incomplete writes which lead to kernel panics in JFFS2.

We investigated the issue - it is caused by bug in FL_SHUTDOWN parsing code.
Sometimes chip returns -EIO as if it is in FL_SHUTDOWN state when it should
wait in FL_PONT (error in order of conditions).

The following patch fixes the bug in state parsing code of CFI.  Also I've
added comments to notify developers if they want to add new case in future.

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Reviewed-by: Joern Engel &lt;joern@logfs.org&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
upstream commit: fb6d080c6f75dfd7e23d5a3575334785aa8738eb

THe CFI driver in 2.6.24 kernel is broken.  Not so intensive read/write
operations cause incomplete writes which lead to kernel panics in JFFS2.

We investigated the issue - it is caused by bug in FL_SHUTDOWN parsing code.
Sometimes chip returns -EIO as if it is in FL_SHUTDOWN state when it should
wait in FL_PONT (error in order of conditions).

The following patch fixes the bug in state parsing code of CFI.  Also I've
added comments to notify developers if they want to add new case in future.

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Reviewed-by: Joern Engel &lt;joern@logfs.org&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mtd: memory corruption in block2mtd.c</title>
<updated>2008-04-19T01:53:18+00:00</updated>
<author>
<name>Ingo van Lil</name>
<email>inguin@gmx.de</email>
</author>
<published>2008-03-25T02:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a98ac15765353742ddff62e5ee1e46874742e1f1'/>
<id>a98ac15765353742ddff62e5ee1e46874742e1f1</id>
<content type='text'>
upstream commit: 2875fb65f8e40401c4b781ebc5002df10485f635

The block2mtd driver (drivers/mtd/devices/block2mtd.c) will kfree an on-stack
pointer when handling an invalid argument line (e.g.
block2mtd=/dev/loop0,xxx).

The kfree was added some time ago when "name" was dynamically allocated.

Signed-off-by: Ingo van Lil &lt;inguin@gmx.de&gt;
Acked-by: Joern Engel &lt;joern@lazybastard.org&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
upstream commit: 2875fb65f8e40401c4b781ebc5002df10485f635

The block2mtd driver (drivers/mtd/devices/block2mtd.c) will kfree an on-stack
pointer when handling an invalid argument line (e.g.
block2mtd=/dev/loop0,xxx).

The kfree was added some time ago when "name" was dynamically allocated.

Signed-off-by: Ingo van Lil &lt;inguin@gmx.de&gt;
Acked-by: Joern Engel &lt;joern@lazybastard.org&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cache invalidation error for buffered write</title>
<updated>2008-01-11T19:44:37+00:00</updated>
<author>
<name>Massimo Cirillo</name>
<email>maxcir@gmail.com</email>
</author>
<published>2008-01-11T10:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=646fd12784d506180353005f40f90bcf08c84a3e'/>
<id>646fd12784d506180353005f40f90bcf08c84a3e</id>
<content type='text'>
The bug causes corruptions of data read from flash.

The original code performs cache invalidation from "adr" to "adr + len"
in do_write_buffer().  Since len and adr could be updated in the code
before invalidation - it causes improper setting of cache invalidation
regions.

Signed-off-by: Massimo Cirillo &lt;maxcir@gmail.com&gt;
Signed-off-by: Giuseppe D'Eliseo &lt;giuseppedeliseo@gmail.com&gt;
Acked-by: Nicolas Pitre &lt;nico@cam.org&gt;
Acked-by: Jörn Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woohouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bug causes corruptions of data read from flash.

The original code performs cache invalidation from "adr" to "adr + len"
in do_write_buffer().  Since len and adr could be updated in the code
before invalidation - it causes improper setting of cache invalidation
regions.

Signed-off-by: Massimo Cirillo &lt;maxcir@gmail.com&gt;
Signed-off-by: Giuseppe D'Eliseo &lt;giuseppedeliseo@gmail.com&gt;
Acked-by: Nicolas Pitre &lt;nico@cam.org&gt;
Acked-by: Jörn Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woohouse &lt;dwmw2@infradead.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Eliminate pointless casts from void* in a few driver irq handlers.</title>
<updated>2007-10-23T23:53:16+00:00</updated>
<author>
<name>Jeff Garzik</name>
<email>jeff@garzik.org</email>
</author>
<published>2007-10-19T07:10:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=06efcad0d43a5491602f7d7bfc1ce997cdb0d062'/>
<id>06efcad0d43a5491602f7d7bfc1ce997cdb0d062</id>
<content type='text'>
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] [NOR] Fix deadlock in Intel chip driver caused by get_chip recursion</title>
<updated>2007-10-23T11:07:52+00:00</updated>
<author>
<name>Alexey Korolev</name>
<email>akorolev@infradead.org</email>
</author>
<published>2007-10-22T16:55:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5a37cf19efcceae14c2078449e35b9f4eb3e63e4'/>
<id>5a37cf19efcceae14c2078449e35b9f4eb3e63e4</id>
<content type='text'>
This patch solves kernel deadlock issue seen on JFFF2 simultaneous 
operations. Detailed investigation of the issue showed that the kernel 
deadlock is caused by tons of recursive get_chip calls.

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Acked-by: Nicolas Pitre &lt;nico@cam.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch solves kernel deadlock issue seen on JFFF2 simultaneous 
operations. Detailed investigation of the issue showed that the kernel 
deadlock is caused by tons of recursive get_chip calls.

Signed-off-by: Alexey Korolev &lt;akorolev@infradead.org&gt;
Acked-by: Nicolas Pitre &lt;nico@cam.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] [OneNAND] Fix wrong free the static address in onenand_sim</title>
<updated>2007-10-22T08:57:28+00:00</updated>
<author>
<name>Kyungmin Park</name>
<email>kmpark@infradead.org</email>
</author>
<published>2007-10-22T02:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c21f900cb8817009930e672d22a5b91e5b706351'/>
<id>c21f900cb8817009930e672d22a5b91e5b706351</id>
<content type='text'>
Reported-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] [NAND] Replace -1 with -EBADMSG in nand error correction code</title>
<updated>2007-10-20T21:30:54+00:00</updated>
<author>
<name>Jörn Engel</name>
<email>joern@logfs.org</email>
</author>
<published>2007-10-20T21:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=eb684507159de2162cd6fc62f2b3a671afd5a61d'/>
<id>eb684507159de2162cd6fc62f2b3a671afd5a61d</id>
<content type='text'>
Magic numerical values are just bad style.  Particularly so when
undocumented.

Signed-off-by: Jörn Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Magic numerical values are just bad style.  Particularly so when
undocumented.

Signed-off-by: Jörn Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] [NAND] treat any negative return value from correct() as an error</title>
<updated>2007-10-20T21:27:22+00:00</updated>
<author>
<name>Matt Reimer</name>
<email>mreimer@vpop.net</email>
</author>
<published>2007-10-17T21:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c32b8dcc45c823cf30dcdf0fc37ee2f6b78f38cb'/>
<id>c32b8dcc45c823cf30dcdf0fc37ee2f6b78f38cb</id>
<content type='text'>
Treat any negative return value from a NAND driver's correct() function
as a failure, rather than just -1.

Signed-off-by: Matt Reimer &lt;mreimer@vpop.net&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Treat any negative return value from a NAND driver's correct() function
as a failure, rather than just -1.

Signed-off-by: Matt Reimer &lt;mreimer@vpop.net&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] [NAND] nandsim: bugfix in initialization</title>
<updated>2007-10-20T14:00:29+00:00</updated>
<author>
<name>Artem Bityutskiy</name>
<email>Artem.Bityutskiy@nokia.com</email>
</author>
<published>2007-09-19T14:56:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=39e73fc10e916db93c8a2c622f0315d296e66cf4'/>
<id>39e73fc10e916db93c8a2c622f0315d296e66cf4</id>
<content type='text'>
NAND of &gt; 32MiB in size use 4 bytes in address cycle, not 3.

Reported-by: bhsong &lt;bhsong@augustatek.com&gt;
Signed-off-by: Artem Bityutskiy &lt;Artem.Bityutskiy@nokia.com&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NAND of &gt; 32MiB in size use 4 bytes in address cycle, not 3.

Reported-by: bhsong &lt;bhsong@augustatek.com&gt;
Signed-off-by: Artem Bityutskiy &lt;Artem.Bityutskiy@nokia.com&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[MTD] Fix typo in Alauda config option help text.</title>
<updated>2007-10-20T13:59:26+00:00</updated>
<author>
<name>Dave Jones</name>
<email>davej@redhat.com</email>
</author>
<published>2007-10-17T21:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=42265940ed911c355140aa41ca4c2d94d7c5f5d8'/>
<id>42265940ed911c355140aa41ca4c2d94d7c5f5d8</id>
<content type='text'>
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Joern Engel &lt;joern@logfs.org&gt;
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
