diff options
Diffstat (limited to 'drivers/mtd/mtdpart.c')
-rw-r--r-- | drivers/mtd/mtdpart.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 29675edb44b4..349fcbe5cc0f 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c | |||
@@ -27,9 +27,7 @@ struct mtd_part { | |||
27 | struct mtd_info mtd; | 27 | struct mtd_info mtd; |
28 | struct mtd_info *master; | 28 | struct mtd_info *master; |
29 | uint64_t offset; | 29 | uint64_t offset; |
30 | int index; | ||
31 | struct list_head list; | 30 | struct list_head list; |
32 | int registered; | ||
33 | }; | 31 | }; |
34 | 32 | ||
35 | /* | 33 | /* |
@@ -321,8 +319,7 @@ int del_mtd_partitions(struct mtd_info *master) | |||
321 | list_for_each_entry_safe(slave, next, &mtd_partitions, list) | 319 | list_for_each_entry_safe(slave, next, &mtd_partitions, list) |
322 | if (slave->master == master) { | 320 | if (slave->master == master) { |
323 | list_del(&slave->list); | 321 | list_del(&slave->list); |
324 | if (slave->registered) | 322 | del_mtd_device(&slave->mtd); |
325 | del_mtd_device(&slave->mtd); | ||
326 | kfree(slave); | 323 | kfree(slave); |
327 | } | 324 | } |
328 | 325 | ||
@@ -395,7 +392,7 @@ static struct mtd_part *add_one_partition(struct mtd_info *master, | |||
395 | slave->mtd.get_fact_prot_info = part_get_fact_prot_info; | 392 | slave->mtd.get_fact_prot_info = part_get_fact_prot_info; |
396 | if (master->sync) | 393 | if (master->sync) |
397 | slave->mtd.sync = part_sync; | 394 | slave->mtd.sync = part_sync; |
398 | if (!partno && master->suspend && master->resume) { | 395 | if (!partno && !master->dev.class && master->suspend && master->resume) { |
399 | slave->mtd.suspend = part_suspend; | 396 | slave->mtd.suspend = part_suspend; |
400 | slave->mtd.resume = part_resume; | 397 | slave->mtd.resume = part_resume; |
401 | } | 398 | } |
@@ -412,7 +409,6 @@ static struct mtd_part *add_one_partition(struct mtd_info *master, | |||
412 | slave->mtd.erase = part_erase; | 409 | slave->mtd.erase = part_erase; |
413 | slave->master = master; | 410 | slave->master = master; |
414 | slave->offset = part->offset; | 411 | slave->offset = part->offset; |
415 | slave->index = partno; | ||
416 | 412 | ||
417 | if (slave->offset == MTDPART_OFS_APPEND) | 413 | if (slave->offset == MTDPART_OFS_APPEND) |
418 | slave->offset = cur_offset; | 414 | slave->offset = cur_offset; |
@@ -500,15 +496,9 @@ static struct mtd_part *add_one_partition(struct mtd_info *master, | |||
500 | } | 496 | } |
501 | 497 | ||
502 | out_register: | 498 | out_register: |
503 | if (part->mtdp) { | 499 | /* register our partition */ |
504 | /* store the object pointer (caller may or may not register it*/ | 500 | add_mtd_device(&slave->mtd); |
505 | *part->mtdp = &slave->mtd; | 501 | |
506 | slave->registered = 0; | ||
507 | } else { | ||
508 | /* register our partition */ | ||
509 | add_mtd_device(&slave->mtd); | ||
510 | slave->registered = 1; | ||
511 | } | ||
512 | return slave; | 502 | return slave; |
513 | } | 503 | } |
514 | 504 | ||