mtd: Fix compile failure and error path in physmap.c
[safe/jmp/linux-2.6] / drivers / mtd / maps / physmap.c
index 65f52d4..3f13a96 100644 (file)
@@ -44,12 +44,10 @@ static int physmap_flash_remove(struct platform_device *dev)
                return 0;
        platform_set_drvdata(dev, NULL);
 
-       if (info->cmtd == NULL)
-               return 0;
-
        physmap_data = dev->dev.platform_data;
 
-       if (mtd_has_partitions()) {
+       if (info->cmtd) {
+#ifdef CONFIG_MTD_PARTITIONS
                if (info->nr_parts || physmap_data->nr_parts) {
                        del_mtd_partitions(info->cmtd);
 
@@ -58,14 +56,14 @@ static int physmap_flash_remove(struct platform_device *dev)
                } else {
                        del_mtd_device(info->cmtd);
                }
-       } else {
+#else
                del_mtd_device(info->cmtd);
-       }
-
+#endif
 #ifdef CONFIG_MTD_CONCAT
-       if (info->cmtd != info->mtd[0])
-               mtd_concat_destroy(info->cmtd);
+               if (info->cmtd != info->mtd[0])
+                       mtd_concat_destroy(info->cmtd);
 #endif
+       }
 
        for (i = 0; i < MAX_RESOURCES; i++) {
                if (info->mtd[i] != NULL)
@@ -170,22 +168,22 @@ static int physmap_flash_probe(struct platform_device *dev)
        if (err)
                goto err_out;
 
-       if (mtd_has_partitions()) {
-               err = parse_mtd_partitions(info->cmtd, part_probe_types,
-                                       &info->parts, 0);
-               if (err > 0) {
-                       add_mtd_partitions(info->cmtd, info->parts, err);
-                       info->nr_parts = err;
-                       return 0;
-               }
+#ifdef CONFIG_MTD_PARTITIONS
+       err = parse_mtd_partitions(info->cmtd, part_probe_types,
+                               &info->parts, 0);
+       if (err > 0) {
+               add_mtd_partitions(info->cmtd, info->parts, err);
+               info->nr_parts = err;
+               return 0;
+       }
 
-               if (physmap_data->nr_parts) {
-                       printk(KERN_NOTICE "Using physmap partition information\n");
-                       add_mtd_partitions(info->cmtd, physmap_data->parts,
-                                       physmap_data->nr_parts);
-                       return 0;
-               }
+       if (physmap_data->nr_parts) {
+               printk(KERN_NOTICE "Using physmap partition information\n");
+               add_mtd_partitions(info->cmtd, physmap_data->parts,
+                                  physmap_data->nr_parts);
+               return 0;
        }
+#endif
 
        add_mtd_device(info->cmtd);
        return 0;