+ goto out;
+ }
+
-+ part->name = (unsigned char *)&part[1];
+ memcpy(part, old, sizeof(*part));
++ part->name = (unsigned char *)&part[1];
+ strcpy(part->name, ROOTFS_SPLIT_NAME);
+
+ len = (u32) sb->bytes_used;
+ if (dpart == NULL)
+ return 1;
+
-+ printk(KERN_INFO "mtd: partition \"%s\" created automatically, ofs=%lX, len=%lX \n",
++ printk(KERN_INFO "mtd: partition \"%s\" created automatically, ofs=%X, len=%X \n",
+ ROOTFS_SPLIT_NAME, dpart->offset, dpart->size);
+
+ ret = add_one_partition(master, dpart, index, NULL);
+ j++;
+
+ if (strcmp(part->name, "rootfs") == 0 && slave->registered) {
-+#if CONFIG_MTD_ROOTFS_ROOT_DEV
++#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
+ if (ROOT_DEV == 0) {
+ printk(KERN_NOTICE "mtd: partition \"rootfs\" "
+ "set to be root filesystem\n");
- add_mtd_device(&slave->mtd);
- slave->registered = 1;
+#endif
-+#if CONFIG_MTD_ROOTFS_SPLIT
++#ifdef CONFIG_MTD_ROOTFS_SPLIT
+ ret = split_rootfs_data(master, part, j);
+ if (ret == 0)
+ j++;