/*
* MTD methods which simply translate the effective address and pass through
-@@ -524,6 +526,150 @@ out_register:
+@@ -524,6 +526,152 @@ out_register:
return slave;
}
+{
+ struct mtd_partition *dpart;
+ struct mtd_part *slave = NULL;
++ struct mtd_part *spart;
+ int split_offset = 0;
+ int ret;
+
-+ ret = split_squashfs(master, part->offset, &split_offset);
++ spart = PART(rpart);
++ ret = split_squashfs(master, spart->offset, &split_offset);
+ if (ret)
+ return ret;
+
+ dpart->name = (unsigned char *)&dpart[1];
+ strcpy(dpart->name, ROOTFS_SPLIT_NAME);
+
-+ dpart->size -= split_offset - dpart->offset;
++ dpart->size = rpart->size - (split_offset - spart->offset);
+ dpart->offset = split_offset;
+
+ if (dpart == NULL)
#include <linux/mtd/mtd.h>
#include <linux/mtd/map.h>
-@@ -854,6 +855,13 @@ static int mtd_ioctl(struct file *file,
+@@ -854,6 +855,13 @@ static int mtd_ioctl(struct file *file,
file->f_pos = 0;
break;
}
ret = -ENOTTY;
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
-@@ -98,6 +98,7 @@ struct mtd_oob_ops {
+@@ -110,6 +110,7 @@ struct mtd_oob_ops {
uint8_t *oobbuf;
};
struct mtd_info {
u_char type;
uint32_t flags;
-@@ -238,6 +239,9 @@ struct mtd_info {
+@@ -251,6 +252,9 @@ struct mtd_info {
struct device dev;
int usecount;
#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', 24)
/*
* Obsolete legacy interface. Keep it in order not to break userspace