From d494983d020035cacd8d8023afad22d2761fa7fc Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 11 Jun 2014 12:59:06 +0000 Subject: kernel: backport ubiblock support from 3.15 Backport ubiblock support from kernel 3.15 as well as all follow-up fixes related to ubiblock. Signed-off-by: Daniel Golle create mode 100644 target/linux/generic/patches-3.14/040-UBI-R-O-block-driver-on-top-of-UBI-volumes.patch create mode 100644 target/linux/generic/patches-3.14/041-UBI-block-do-not-use-term-attach.patch create mode 100644 target/linux/generic/patches-3.14/042-UBI-block-Mark-init-only-symbol-as-__initdata.patch create mode 100644 target/linux/generic/patches-3.14/043-UBI-block-Use-u64-for-the-64-bit-dividend.patch create mode 100644 target/linux/generic/patches-3.14/044-UBI-rename-block-device-ioctls.patch create mode 100644 target/linux/generic/patches-3.14/045-UBI-block-Remove-__initdata-from-ubiblock_param_ops.patch create mode 100644 target/linux/generic/patches-3.14/046-UBI-avoid-workqueue-format-string-leak.patch create mode 100644 target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch SVN-Revision: 41118 --- ...I_IOCVOLCRBLK-take-a-parameter-for-future.patch | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch (limited to 'target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch') diff --git a/target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch b/target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch new file mode 100644 index 0000000000..0a0230fafe --- /dev/null +++ b/target/linux/generic/patches-3.14/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch @@ -0,0 +1,63 @@ +From 463c5eedb4a13b9aa91f05498a0f2c20bd03f8c4 Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Wed, 5 Mar 2014 11:16:14 -0300 +Subject: [PATCH] UBI: make UBI_IOCVOLCRBLK take a parameter for future usage + +In order to allow a future ioctl parameter, such as a creation flag, +we change the UBI_IOCVOLCRBLK so it accepts a struct ubi_blkcreate_req. +For the time being the structure is not in use, but fully reserved. + +This ABI change is still possible and harmless, because the ioctl has just +been introduced and there's no userspace program which uses it. + +Signed-off-by: Ezequiel Garcia +Signed-off-by: Artem Bityutskiy +--- + include/uapi/mtd/ubi-user.h | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h +index 9c885e2..1927b0d 100644 +--- a/include/uapi/mtd/ubi-user.h ++++ b/include/uapi/mtd/ubi-user.h +@@ -138,9 +138,12 @@ + * Block devices on UBI volumes + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * +- * To create or remove a R/O block device on top of an UBI volume the +- * %UBI_IOCVOLCRBLK and %UBI_IOCVOLRMBLK ioctl commands should be used, +- * respectively. These commands take no arguments. ++ * To create a R/O block device on top of an UBI volume the %UBI_IOCVOLCRBLK ++ * should be used. A pointer to a &struct ubi_blkcreate_req object is expected ++ * to be passed, which is not used and reserved for future usage. ++ * ++ * Conversely, to remove a block device the %UBI_IOCVOLRMBLK should be used, ++ * which takes no arguments. + */ + + /* +@@ -199,7 +202,7 @@ + #define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \ + struct ubi_set_vol_prop_req) + /* Create a R/O block device on top of an UBI volume */ +-#define UBI_IOCVOLCRBLK _IO(UBI_VOL_IOC_MAGIC, 7) ++#define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req) + /* Remove the R/O block device */ + #define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8) + +@@ -431,4 +434,12 @@ struct ubi_set_vol_prop_req { + __u64 value; + } __packed; + ++/** ++ * struct ubi_blkcreate_req - a data structure used in block creation requests. ++ * @padding: reserved for future, not used, has to be zeroed ++ */ ++struct ubi_blkcreate_req { ++ __s8 padding[128]; ++} __packed; ++ + #endif /* __UBI_USER_H__ */ +-- +1.9.2 + -- cgit v1.2.3