You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
--- a/drivers/mtd/devices/block2mtd.c
|
|
+++ b/drivers/mtd/devices/block2mtd.c
|
|
@@ -32,6 +32,8 @@
|
|
#include <linux/slab.h>
|
|
#include <linux/major.h>
|
|
|
|
+static const char * const block2mtd_probe_types[] = { "cmdlinepart", NULL };
|
|
+
|
|
/* Info for the block device */
|
|
struct block2mtd_dev {
|
|
struct list_head list;
|
|
@@ -227,6 +229,7 @@ static struct block2mtd_dev *add_device(
|
|
#endif
|
|
const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL;
|
|
struct block_device *bdev = ERR_PTR(-ENODEV);
|
|
+ struct mtd_part_parser_data ppdata = { 0 };
|
|
struct block2mtd_dev *dev;
|
|
struct mtd_partition *part;
|
|
char *name;
|
|
@@ -307,11 +310,7 @@ static struct block2mtd_dev *add_device(
|
|
dev->mtd.priv = dev;
|
|
dev->mtd.owner = THIS_MODULE;
|
|
|
|
- part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
|
|
- part->name = name;
|
|
- part->offset = 0;
|
|
- part->size = dev->mtd.size;
|
|
- if (mtd_device_register(&dev->mtd, part, 1)) {
|
|
+ if (mtd_device_parse_register(&dev->mtd, block2mtd_probe_types, &ppdata, NULL, 0)) {
|
|
/* Device didn't get added, so free the entry */
|
|
goto err_destroy_mutex;
|
|
}
|
|
|