summaryrefslogtreecommitdiff
path: root/target/linux/generic/patches-3.10/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-3.10/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch')
-rw-r--r--target/linux/generic/patches-3.10/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.10/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch b/target/linux/generic/patches-3.10/047-UBI-make-UBI_IOCVOLCRBLK-take-a-parameter-for-future.patch
new file mode 100644
index 0000000..0a0230f
--- /dev/null
+++ b/target/linux/generic/patches-3.10/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 <ezequiel.garcia@free-electrons.com>
+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 <ezequiel.garcia@free-electrons.com>
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+---
+ 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
+