Message ID | 20201008132217.45037-1-andriy.shevchenko@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | [v1] gpiolib: Switch to use compat_need_64bit_alignment_fixup() helper | expand |
On Thu, Oct 08, 2020 at 04:22:17PM +0300, Andy Shevchenko wrote: > The new compat_need_64bit_alignment_fixup() helper allows to avoid > ugly ifdefferu in IOCTL compatible code. Use it in GPIO cdev code. There is v2 coming, don't consider this, thanks!
diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index e9faeaf65d14..03f33521e737 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -1479,19 +1479,15 @@ static __poll_t lineevent_poll(struct file *file, return events; } +struct compat_gpioeevent_data { + compat_u64 timestamp; + u32 id; +}; + static ssize_t lineevent_get_size(void) { -#if defined(CONFIG_X86_64) && !defined(CONFIG_UML) - /* i386 has no padding after 'id' */ - if (in_ia32_syscall()) { - struct compat_gpioeevent_data { - compat_u64 timestamp; - u32 id; - }; - + if (compat_need_64bit_alignment_fixup()) return sizeof(struct compat_gpioeevent_data); - } -#endif return sizeof(struct gpioevent_data); }
The new compat_need_64bit_alignment_fixup() helper allows to avoid ugly ifdefferu in IOCTL compatible code. Use it in GPIO cdev code. Depends-on: 527c412519eb ("compat: add a compat_need_64bit_alignment_fixup() helper") Depends-on: cc7886d25bca ("compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h>") Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib-cdev.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)