+ }
+
+ memcpy(dpart, part, sizeof(*part));
++ strcpy((char *)&dpart[1], ROOTFS_SPLIT_NAME);
+ dpart->name = (unsigned char *)&dpart[1];
-+ strcpy(dpart->name, ROOTFS_SPLIT_NAME);
+
+ dpart->size = rpart->size - (split_offset - spart->offset);
+ dpart->offset = split_offset;
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
-@@ -841,6 +841,13 @@ static int mtd_ioctl(struct file *file,
- file->f_pos = 0;
+@@ -956,6 +956,13 @@ static int mtd_ioctl(struct file *file,
break;
}
+ #endif
+#ifdef CONFIG_MTD_PARTITIONS
+ case MTDREFRESH:
+ {
+ }
+#endif
- case OTPGETREGIONCOUNT:
- case OTPGETREGIONINFO:
+ default:
+ ret = -ENOTTY;
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -125,6 +125,7 @@ struct nand_ecclayout {
+struct mtd_partition;
struct mtd_partition {
- char *name; /* identifier string */
+- char *name; /* identifier string */
++ const char *name; /* identifier string */
uint64_t size; /* partition size */
uint64_t offset; /* offset within the master MTD space */
uint32_t mask_flags; /* master MTD flags to mask out for this partition */
#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64)
#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
#define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
-+#define MTDREFRESH _IO('M', 23)
++#define MTDREFRESH _IO('M', 50)
/*
* Obsolete legacy interface. Keep it in order not to break userspace