Patchwork UBI: document UBI_IOCVOLUP better in user header

login
register
mail settings
Submitter Mike Frysinger
Date May 2, 2013, 3:42 a.m.
Message ID <1367466167-13087-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/240889/
State New
Headers show

Comments

Mike Frysinger - May 2, 2013, 3:42 a.m.
The current ioctl define implies that this func expects to be passed a
64bit number directly rather than a pointer to a 64bit.  The code that
processes this ioctl shows that it clearly expects a pointer.

It'd be best if we could change the type to "__s64*", but that would
change the generated ioctl number thus breaking the userland ABI.  So
just add a comment for intrepid developers.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 include/uapi/mtd/ubi-user.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Artem Bityutskiy - May 29, 2013, 12:21 p.m.
On Wed, 2013-05-01 at 23:42 -0400, Mike Frysinger wrote:
> The current ioctl define implies that this func expects to be passed a
> 64bit number directly rather than a pointer to a 64bit.  The code that
> processes this ioctl shows that it clearly expects a pointer.
> 
> It'd be best if we could change the type to "__s64*", but that would
> change the generated ioctl number thus breaking the userland ABI.  So
> just add a comment for intrepid developers.
> 
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>

Pushed to linux-ubi.git, thanks!

Patch

diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h
index 53cae1e..723c324 100644
--- a/include/uapi/mtd/ubi-user.h
+++ b/include/uapi/mtd/ubi-user.h
@@ -173,7 +173,10 @@ 
 
 #define UBI_VOL_IOC_MAGIC 'O'
 
-/* Start UBI volume update */
+/* Start UBI volume update
+ * Note: This actually takes a pointer (__s64*), but we can't change
+ *       that without breaking the ABI on 32bit systems
+ */
 #define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64)
 /* LEB erasure command, used for debugging, disabled by default */
 #define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32)