diff options
-rw-r--r-- | target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch b/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch index 74e0a2f3e..22b845f77 100644 --- a/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch +++ b/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch @@ -1,6 +1,23 @@ ---- a/drivers/mtd/devices/block2mtd.c -+++ b/drivers/mtd/devices/block2mtd.c -@@ -330,7 +330,7 @@ static int block2mtd_refresh(struct mtd_ +Index: linux-2.6.38-rc6/drivers/mtd/devices/block2mtd.c +=================================================================== +--- linux-2.6.38-rc6.orig/drivers/mtd/devices/block2mtd.c 2011-02-28 16:41:59.839603348 +0100 ++++ linux-2.6.38-rc6/drivers/mtd/devices/block2mtd.c 2011-02-28 16:47:59.637698484 +0100 +@@ -264,12 +264,13 @@ static int _open_bdev(struct block2mtd_d + bdev = blkdev_get_by_path(dev->devname, mode, dev); + #ifndef MODULE + if (IS_ERR(bdev)) { ++ dev_t devt; + + /* We might not have rootfs mounted at this point. Try + to resolve the device name by other means. */ + + wait_for_device_probe(); +- dev_t devt = name_to_dev_t(dev->devname); ++ devt = name_to_dev_t(dev->devname); + if (devt) + bdev = blkdev_get_by_dev(devt, mode, dev); + } +@@ -330,7 +331,7 @@ static int block2mtd_refresh(struct mtd_ _close_bdev(dev); /* open the whole disk, issue a partition rescan, then */ @@ -9,3 +26,12 @@ if (!bdev || !bdev->bd_disk) err = -EINVAL; #ifndef CONFIG_MTD_BLOCK2MTD_MODULE +@@ -395,7 +396,7 @@ static struct block2mtd_dev *add_device( + dev->mtd.refresh_device = block2mtd_refresh; + + part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL); +- part->name = dev->mtd.name; ++ part->name = name; + part->offset = 0; + part->size = dev->mtd.size; + if (add_mtd_partitions(&dev->mtd, part, 1)) { |