bug found in the core MTD driver code in 2.6.34 r97

Artem Bityutskiy dedekind1 at gmail.com
Mon Apr 18 00:38:08 EDT 2011


On Thu, 2011-04-14 at 17:55 +0100, Mike Turner wrote:
> Hi folks,
> 
> On the second and subsequent boots into my Gumstix NAND-resident ubifs RFS 
> (Gumstix "minimal build" aimed at fast booting from NAND), it seems that 
> udevadm - executing from the script /etc/init.d/udev - encounters a driver 
> crash when drivers/mtd/ubi/gluebi.c:gluebi_read() passes the value 
> 0xFFFFFFF0 as a "struct ubi_volume_desc *" argument to  ubi_read() and 
> thence ubi_leb_read().

OK, I see the issue now.

> Is this bug unique to my build, perhaps caused by an 
> incomplete/wrong/missing patch, or is it the case in other builds?

Not this is just a bug. Your version of the kernel is old and the
upstream has changed, but I see there are problems with the error path
in upstream as well.

> 
> I fixed it by making blktrans_open() behave exactly the same w.r.t. the 
> return from get_mtd_device() as do all the other callers to that function. 
> I presume that would be the correct approach?

Yeah, you may just fix up your kernel. You might as well try the
upstream kernel, fix it and submit a patch.

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)




More information about the linux-mtd mailing list