<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/mtd, branch v3.2.38</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/mtd?h=v3.2.38</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/mtd?h=v3.2.38'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-01-03T03:33:39Z</updated>
<entry>
<title>mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems</title>
<updated>2013-01-03T03:33:39Z</updated>
<author>
<name>Wolfram Sang</name>
<email>w.sang@pengutronix.de</email>
</author>
<published>2012-12-05T20:46:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=86d5031c943445a561eae9c827d610e58a3325fd'/>
<id>urn:sha1:86d5031c943445a561eae9c827d610e58a3325fd</id>
<content type='text'>
commit 6f2a6a52560ad8d85710aabd92b7a3239b3a6b07 upstream.

It could happen (1 out of 100 times) that NAND did not start up
correctly after warm rebooting, so the kernel could not find the UBI or
DMA timed out due to a stalled BCH. When resetting BCH together with
GPMI, the issue could not be observed anymore (after 10000+ reboots). We
probably need the consistent state already before sending any command to
NAND, even when no ECC is needed. I chose to keep the extra reset for
BCH when changing the flash layout to be on the safe side.

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Acked-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: slram: invalid checking of absolute end address</title>
<updated>2012-12-06T11:20:22Z</updated>
<author>
<name>Jiri Engelthaler</name>
<email>engycz@gmail.com</email>
</author>
<published>2012-09-20T14:49:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c714d5ebaa83ad49965b17b5aa8c8e732b27b60d'/>
<id>urn:sha1:c714d5ebaa83ad49965b17b5aa8c8e732b27b60d</id>
<content type='text'>
commit c36a7ff4578ab6294885aef5ef241aeec4cdb1f0 upstream.

Fixed parsing end absolute address.

Signed-off-by: Jiri Engelthaler &lt;engycz@gmail.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions()</title>
<updated>2012-12-06T11:20:21Z</updated>
<author>
<name>Sachin Kamat</name>
<email>sachin.kamat@linaro.org</email>
</author>
<published>2012-09-25T09:57:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=016ede1a94fbd90c2a24a82599859f9e46e3c298'/>
<id>urn:sha1:016ede1a94fbd90c2a24a82599859f9e46e3c298</id>
<content type='text'>
commit 5a6ea4af0907f995dc06df21a9c9ef764c7cd3bc upstream.

The pointer returned by kzalloc should be tested for NULL
to avoid potential NULL pointer dereference later. Incorrect
pointer was being tested for NULL. Bug introduced by commit fbcf62a3
(mtd: physmap_of: move parse_obsolete_partitions to become separate
parser).
This patch fixes this bug.

Cc: Dmitry Eremin-Solenikov &lt;dbaryshkov@gmail.com&gt;
Cc: Artem Bityutskiy &lt;artem.bityutskiy@intel.com&gt;
Signed-off-by: Sachin Kamat &lt;sachin.kamat@linaro.org&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver</title>
<updated>2012-10-30T23:26:28Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2012-07-13T16:28:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a8cfa724f6059e312e7a10f3116f4d028842d73c'/>
<id>urn:sha1:a8cfa724f6059e312e7a10f3116f4d028842d73c</id>
<content type='text'>
commit bf7a01bf7987b63b121d572b240c132ec44129c4 upstream.

The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs. It
silently masks off at least one flag that might be set by the driver
(NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
others.

Really, as long as driver writers exercise a small amount of care with
NAND_* options, this mask is not necessary at all; it was only here to
prevent certain options from accidentally being set by the driver. But the
original thought turns out to be a bad idea occasionally. Thus, kill it.

Note, this patch fixes some major gpmi-nand breakage.

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Tested-by: Huang Shijie &lt;shijie8@gmail.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
[Brian Norris: This is a backport for v3.2 stable.]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: nandsim: bugfix: fail if overridesize is too big</title>
<updated>2012-10-17T02:49:16Z</updated>
<author>
<name>Richard Genoud</name>
<email>richard.genoud@gmail.com</email>
</author>
<published>2012-09-12T12:26:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4a888aa97cc653cb4d82539caea9f149231aeaf0'/>
<id>urn:sha1:4a888aa97cc653cb4d82539caea9f149231aeaf0</id>
<content type='text'>
commit bb0a13a13411c4ce24c48c8ff3cdf7b48d237240 upstream.

If override size is too big, the module was actually loaded instead of
failing, because retval was not set.

This lead to memory corruption with the use of the freed structs nandsim
and nand_chip.

Signed-off-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: omap2: fix module loading</title>
<updated>2012-10-17T02:49:14Z</updated>
<author>
<name>Andreas Bießmann</name>
<email>andreas@biessmann.de</email>
</author>
<published>2012-08-31T11:35:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8f864fc457e834f71de5b5b44401174170064593'/>
<id>urn:sha1:8f864fc457e834f71de5b5b44401174170064593</id>
<content type='text'>
commit 4d3d688da8e7016f15483e9319b41311e1db9515 upstream.

Unloading the omap2 nand driver missed to release the memory region which will
result in not being able to request it again if one want to load the driver
later on.

This patch fixes following error when loading omap2 module after unloading:
---8&lt;---
~ $ rmmod omap2
~ $ modprobe omap2
[   37.420928] omap2-nand: probe of omap2-nand.0 failed with error -16
~ $
---&gt;8---

This error was introduced in 67ce04bf2746f8a1f8c2a104b313d20c63f68378 which
was the first commit of this driver.

Signed-off-by: Andreas Bießmann &lt;andreas@biessmann.de&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: omap2: fix omap_nand_remove segfault</title>
<updated>2012-10-17T02:49:13Z</updated>
<author>
<name>Andreas Bießmann</name>
<email>andreas@biessmann.de</email>
</author>
<published>2012-08-31T11:35:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c7cbfe66d8e173bd562e56776dfc96f45c089188'/>
<id>urn:sha1:c7cbfe66d8e173bd562e56776dfc96f45c089188</id>
<content type='text'>
commit 7d9b110269253b1d5858cfa57d68dfc7bf50dd77 upstream.

Do not kfree() the mtd_info; it is handled in the mtd subsystem and
already freed by nand_release(). Instead kfree() the struct
omap_nand_info allocated in omap_nand_probe which was not freed before.

This patch fixes following error when unloading the omap2 module:

---8&lt;---
~ $ rmmod omap2
------------[ cut here ]------------
kernel BUG at mm/slab.c:3126!
Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
Modules linked in: omap2(-)
CPU: 0    Not tainted  (3.6.0-rc3-00230-g155e36d-dirty #3)
PC is at cache_free_debugcheck+0x2d4/0x36c
LR is at kfree+0xc8/0x2ac
pc : [&lt;c01125a0&gt;]    lr : [&lt;c0112efc&gt;]    psr: 200d0193
sp : c521fe08  ip : c0e8ef90  fp : c521fe5c
r10: bf0001fc  r9 : c521e000  r8 : c0d99c8c
r7 : c661ebc0  r6 : c065d5a4  r5 : c65c4060  r4 : c78005c0
r3 : 00000000  r2 : 00001000  r1 : c65c4000  r0 : 00000001
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 86694019  DAC: 00000015
Process rmmod (pid: 549, stack limit = 0xc521e2f0)
Stack: (0xc521fe08 to 0xc5220000)
fe00:                   c008a874 c00bf44c c515c6d0 200d0193 c65c4860 c515c240
fe20: c521fe3c c521fe30 c008a9c0 c008a854 c521fe5c c65c4860 c78005c0 bf0001fc
fe40: c780ff40 a00d0113 c521e000 00000000 c521fe84 c521fe60 c0112efc c01122d8
fe60: c65c4860 c0673778 c06737ac 00000000 00070013 00000000 c521fe9c c521fe88
fe80: bf0001fc c0112e40 c0673778 bf001ca8 c521feac c521fea0 c02ca11c bf0001ac
fea0: c521fec4 c521feb0 c02c82c4 c02ca100 c0673778 bf001ca8 c521fee4 c521fec8
fec0: c02c8dd8 c02c8250 00000000 bf001ca8 bf001ca8 c0804ee0 c521ff04 c521fee8
fee0: c02c804c c02c8d20 bf001924 00000000 bf001ca8 c521e000 c521ff1c c521ff08
ff00: c02c950c c02c7fbc bf001d48 00000000 c521ff2c c521ff20 c02ca3a4 c02c94b8
ff20: c521ff3c c521ff30 bf001938 c02ca394 c521ffa4 c521ff40 c009beb4 bf001930
ff40: c521ff6c 70616d6f b6fe0032 c0014f84 70616d6f b6fe0032 00000081 60070010
ff60: c521ff84 c521ff70 c008e1f4 c00bf328 0001a004 70616d6f c521ff94 0021ff88
ff80: c008e368 0001a004 70616d6f b6fe0032 00000081 c0015028 00000000 c521ffa8
ffa0: c0014dc0 c009bcd0 0001a004 70616d6f bec2ab38 00000880 bec2ab38 00000880
ffc0: 0001a004 70616d6f b6fe0032 00000081 00000319 00000000 b6fe1000 00000000
ffe0: bec2ab30 bec2ab20 00019f00 b6f539c0 60070010 bec2ab38 aaaaaaaa aaaaaaaa
Backtrace:
[&lt;c01122cc&gt;] (cache_free_debugcheck+0x0/0x36c) from [&lt;c0112efc&gt;] (kfree+0xc8/0x2ac)
[&lt;c0112e34&gt;] (kfree+0x0/0x2ac) from [&lt;bf0001fc&gt;] (omap_nand_remove+0x5c/0x64 [omap2])
[&lt;bf0001a0&gt;] (omap_nand_remove+0x0/0x64 [omap2]) from [&lt;c02ca11c&gt;] (platform_drv_remove+0x28/0x2c)
 r5:bf001ca8 r4:c0673778
[&lt;c02ca0f4&gt;] (platform_drv_remove+0x0/0x2c) from [&lt;c02c82c4&gt;] (__device_release_driver+0x80/0xdc)
[&lt;c02c8244&gt;] (__device_release_driver+0x0/0xdc) from [&lt;c02c8dd8&gt;] (driver_detach+0xc4/0xc8)
 r5:bf001ca8 r4:c0673778
[&lt;c02c8d14&gt;] (driver_detach+0x0/0xc8) from [&lt;c02c804c&gt;] (bus_remove_driver+0x9c/0x104)
 r6:c0804ee0 r5:bf001ca8 r4:bf001ca8 r3:00000000
[&lt;c02c7fb0&gt;] (bus_remove_driver+0x0/0x104) from [&lt;c02c950c&gt;] (driver_unregister+0x60/0x80)
 r6:c521e000 r5:bf001ca8 r4:00000000 r3:bf001924
[&lt;c02c94ac&gt;] (driver_unregister+0x0/0x80) from [&lt;c02ca3a4&gt;] (platform_driver_unregister+0x1c/0x20)
 r5:00000000 r4:bf001d48
[&lt;c02ca388&gt;] (platform_driver_unregister+0x0/0x20) from [&lt;bf001938&gt;] (omap_nand_driver_exit+0x14/0x1c [omap2])
[&lt;bf001924&gt;] (omap_nand_driver_exit+0x0/0x1c [omap2]) from [&lt;c009beb4&gt;] (sys_delete_module+0x1f0/0x2ec)
[&lt;c009bcc4&gt;] (sys_delete_module+0x0/0x2ec) from [&lt;c0014dc0&gt;] (ret_fast_syscall+0x0/0x48)
 r8:c0015028 r7:00000081 r6:b6fe0032 r5:70616d6f r4:0001a004
Code: e1a00005 eb0d9172 e7f001f2 e7f001f2 (e7f001f2)
---[ end trace 6a30b24d8c0cc2ee ]---
Segmentation fault
---&gt;8---

This error was introduced in 67ce04bf2746f8a1f8c2a104b313d20c63f68378 which
was the first commit of this driver.

Signed-off-by: Andreas Bießmann &lt;andreas@biessmann.de&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: mtdpart: break it as soon as we parse out the partitions</title>
<updated>2012-10-17T02:49:13Z</updated>
<author>
<name>Huang Shijie</name>
<email>shijie8@gmail.com</email>
</author>
<published>2012-08-18T17:07:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c6d6eb108e31288a1a1abfef69353783dd2be611'/>
<id>urn:sha1:c6d6eb108e31288a1a1abfef69353783dd2be611</id>
<content type='text'>
commit c51803ddba10d80d9f246066802c6e359cf1d44c upstream.

We may cause a memory leak when the @types has more then one parser.

Take the `default_mtd_part_types` for example. The default_mtd_part_types has
two parsers now: `cmdlinepart` and `ofpart`.

Assume the following case:
The kernel command line sets the partitions like:
	#gpmi-nand:20m(boot),20m(kernel),1g(rootfs),-(user)
But the devicetree file(such as arch/arm/boot/dts/imx28-evk.dts) also sets
the same partitions as the kernel command line does.

In the current code, the partitions parsed out by the `ofpart` will
overwrite the @pparts which has already set by the `cmdlinepart` parser,
and the the partitions parsed out by the `cmdlinepart` is missed.
A memory leak occurs.

So we should break the code as soon as we parse out the partitions,
In actually, this patch makes a priority order between the parsers.
If one parser has already parsed out the partitions successfully,
it's no need to use another parser anymore.

Signed-off-by: Huang Shijie &lt;shijie8@gmail.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>mtd: autcpu12-nvram: Fix compile breakage</title>
<updated>2012-10-17T02:49:12Z</updated>
<author>
<name>Alexander Shiyan</name>
<email>shc_work@mail.ru</email>
</author>
<published>2012-08-15T16:28:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3d6f072401a231375a960010c87945a1e70f0042'/>
<id>urn:sha1:3d6f072401a231375a960010c87945a1e70f0042</id>
<content type='text'>
commit d1f55c680e5d021e7066f4461dd678d42af18898 upstream.

Update driver autcpu12-nvram.c so it compiles; map_read32/map_write32
no longer exist in the kernel so the driver is totally broken.
Additionally, map_info name passed to simple_map_init is incorrect.

Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>UBI: erase free PEB with bitflip in EC header</title>
<updated>2012-10-17T02:48:19Z</updated>
<author>
<name>Matthieu CASTET</name>
<email>matthieu.castet@parrot.com</email>
</author>
<published>2012-08-22T14:03:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=04ed02cc7d431eb295bf9a4cb33c13319f34c48a'/>
<id>urn:sha1:04ed02cc7d431eb295bf9a4cb33c13319f34c48a</id>
<content type='text'>
commit 193819cf2e6e395b1e1be2d36785dc5563a6edca upstream.

Without this patch, these PEB are not scrubbed until we put data in them.
Bitflip can accumulate latter and we can loose the EC header (but VID header
should be intact and allow to recover data).

Signed-off-by: Matthieu Castet &lt;matthieu.castet@parrot.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
[bwh: Backported to 3.2: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
</feed>
