Thread (15 messages) 15 messages, 10 authors, 2018-10-06

Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg

flat view

From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date: 2018-09-12 16:01:31
Also in: amd-gfx, ceph-devel, dri-devel, linux-btrfs, linux-crypto, linux-fbdev, linux-fsdevel, linux-input, linux-media, linux-pci, linux-rdma, linux-remoteproc, linux-scsi, linux-usb, linux-wireless, lkml, netdev, nvdimm, platform-driver-x86, sparclinux

Em Wed, 12 Sep 2018 17:08:52 +0200
Arnd Bergmann [off-list ref] escreveu:
The .ioctl and .compat_ioctl file operations have the same prototype so
they can both point to the same function, which works great almost all
the time when all the commands are compatible.
=20
One exception is the s390 architecture, where a compat pointer is only
31 bit wide, and converting it into a 64-bit pointer requires calling
compat_ptr(). Most drivers here will ever run in s390, but since we now
have a generic helper for it, it's easy enough to use it consistently.
=20
I double-checked all these drivers to ensure that all ioctl arguments
are used as pointers or are ignored, but are not interpreted as integer
values.
=20
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/media/rc/lirc_dev.c                 | 4 +---
quoted hunk ↗ jump to hunk
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index f862f1b7f996..077209f414ed 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -730,9 +730,7 @@ static const struct file_operations lirc_fops =3D {
 	.owner		=3D THIS_MODULE,
 	.write		=3D ir_lirc_transmit_ir,
 	.unlocked_ioctl	=3D ir_lirc_ioctl,
-#ifdef CONFIG_COMPAT
-	.compat_ioctl	=3D ir_lirc_ioctl,
-#endif
+	.compat_ioctl	=3D generic_compat_ioctl_ptrarg,
 	.read		=3D ir_lirc_read,
 	.poll		=3D ir_lirc_poll,
 	.open		=3D ir_lirc_open,
Adding an infrared remote controller to a s390 mainframe sounds fun :-)

I suspect that one could implement it on a s390 platform=20
using gpio-ir-recv and/or gpio-ir-tx drivers. Perhaps one possible
practical usage would be to let the mainframe to send remote
controller codes to adjust the air conditioning system ;-)

=46rom lirc driver's PoV, there's nothing that really prevents one to
do that and use lirc API, and the driver is generic enough to work
on any hardware platform.

I didn't check the implementation of generic_compat_ioctl_ptrarg(),
but assuming it is ok,

Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

Thanks,
Mauro
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help