From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 12 Sep 2018 13:01:31 -0300 From: Mauro Carvalho Chehab Subject: Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg Message-ID: <20180912130131.2c6581d5@coco.lan> In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Sender: linux-fsdevel-owner@vger.kernel.org To: Arnd Bergmann Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org List-ID: Em Wed, 12 Sep 2018 17:08:52 +0200 Arnd Bergmann 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 > --- > drivers/media/rc/lirc_dev.c | 4 +--- > 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 Thanks, Mauro From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from bombadil.infradead.org ([198.137.202.133]:33196 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726677AbeILVHG (ORCPT ); Wed, 12 Sep 2018 17:07:06 -0400 Date: Wed, 12 Sep 2018 13:01:31 -0300 From: Mauro Carvalho Chehab To: Arnd Bergmann Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg Message-ID: <20180912130131.2c6581d5@coco.lan> (sfid-20180912_180203_262529_FBA4DAEA) In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-wireless-owner@vger.kernel.org List-ID: Em Wed, 12 Sep 2018 17:08:52 +0200 Arnd Bergmann 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 > --- > drivers/media/rc/lirc_dev.c | 4 +--- > 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 Thanks, Mauro From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mauro Carvalho Chehab Subject: Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg Date: Wed, 12 Sep 2018 13:01:31 -0300 Message-ID: <20180912130131.2c6581d5@coco.lan> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.ker To: Arnd Bergmann Return-path: In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> Sender: netdev-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org Em Wed, 12 Sep 2018 17:08:52 +0200 Arnd Bergmann 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 > --- > drivers/media/rc/lirc_dev.c | 4 +--- > 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 Thanks, Mauro From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bombadil.infradead.org ([198.137.202.133]:33196 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726677AbeILVHG (ORCPT ); Wed, 12 Sep 2018 17:07:06 -0400 Date: Wed, 12 Sep 2018 13:01:31 -0300 From: Mauro Carvalho Chehab To: Arnd Bergmann Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg Message-ID: <20180912130131.2c6581d5@coco.lan> In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-btrfs-owner@vger.kernel.org List-ID: Em Wed, 12 Sep 2018 17:08:52 +0200 Arnd Bergmann 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. > > 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. > > 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. > > Signed-off-by: Arnd Bergmann > --- > drivers/media/rc/lirc_dev.c | 4 +--- > 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 = { > .owner = THIS_MODULE, > .write = ir_lirc_transmit_ir, > .unlocked_ioctl = ir_lirc_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = ir_lirc_ioctl, > -#endif > + .compat_ioctl = generic_compat_ioctl_ptrarg, > .read = ir_lirc_read, > .poll = ir_lirc_poll, > .open = 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 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 ;-) >>From 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 Thanks, Mauro From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg From: Mauro Carvalho Chehab Message-Id: <20180912130131.2c6581d5@coco.lan> Date: Wed, 12 Sep 2018 13:01:31 -0300 To: Arnd Bergmann Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org List-ID: RW0gV2VkLCAxMiBTZXAgMjAxOCAxNzowODo1MiArMDIwMApBcm5kIEJlcmdtYW5uIDxhcm5kQGFy bmRiLmRlPiBlc2NyZXZldToKCj4gVGhlIC5pb2N0bCBhbmQgLmNvbXBhdF9pb2N0bCBmaWxlIG9w ZXJhdGlvbnMgaGF2ZSB0aGUgc2FtZSBwcm90b3R5cGUgc28KPiB0aGV5IGNhbiBib3RoIHBvaW50 IHRvIHRoZSBzYW1lIGZ1bmN0aW9uLCB3aGljaCB3b3JrcyBncmVhdCBhbG1vc3QgYWxsCj4gdGhl IHRpbWUgd2hlbiBhbGwgdGhlIGNvbW1hbmRzIGFyZSBjb21wYXRpYmxlLgo+IAo+IE9uZSBleGNl cHRpb24gaXMgdGhlIHMzOTAgYXJjaGl0ZWN0dXJlLCB3aGVyZSBhIGNvbXBhdCBwb2ludGVyIGlz IG9ubHkKPiAzMSBiaXQgd2lkZSwgYW5kIGNvbnZlcnRpbmcgaXQgaW50byBhIDY0LWJpdCBwb2lu dGVyIHJlcXVpcmVzIGNhbGxpbmcKPiBjb21wYXRfcHRyKCkuIE1vc3QgZHJpdmVycyBoZXJlIHdp bGwgZXZlciBydW4gaW4gczM5MCwgYnV0IHNpbmNlIHdlIG5vdwo+IGhhdmUgYSBnZW5lcmljIGhl bHBlciBmb3IgaXQsIGl0J3MgZWFzeSBlbm91Z2ggdG8gdXNlIGl0IGNvbnNpc3RlbnRseS4KPiAK PiBJIGRvdWJsZS1jaGVja2VkIGFsbCB0aGVzZSBkcml2ZXJzIHRvIGVuc3VyZSB0aGF0IGFsbCBp b2N0bCBhcmd1bWVudHMKPiBhcmUgdXNlZCBhcyBwb2ludGVycyBvciBhcmUgaWdub3JlZCwgYnV0 IGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgaW50ZWdlcgo+IHZhbHVlcy4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IC0tLQoKPiAgZHJpdmVycy9tZWRp YS9yYy9saXJjX2Rldi5jICAgICAgICAgICAgICAgICB8IDQgKy0tLQoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS9yYy9saXJjX2Rldi5jIGIvZHJpdmVycy9tZWRpYS9yYy9saXJjX2Rldi5j Cj4gaW5kZXggZjg2MmYxYjdmOTk2Li4wNzcyMDlmNDE0ZWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9tZWRpYS9yYy9saXJjX2Rldi5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9yYy9saXJjX2Rldi5j Cj4gQEAgLTczMCw5ICs3MzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBsaXJjX2ZvcHMgPSB7Cj4gIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCj4gIAkud3JpdGUJCT0g aXJfbGlyY190cmFuc21pdF9pciwKPiAgCS51bmxvY2tlZF9pb2N0bAk9IGlyX2xpcmNfaW9jdGws Cj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3RsCT0gaXJfbGlyY19pb2N0 bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsCT0gZ2VuZXJpY19jb21wYXRfaW9jdGxfcHRy YXJnLAo+ICAJLnJlYWQJCT0gaXJfbGlyY19yZWFkLAo+ICAJLnBvbGwJCT0gaXJfbGlyY19wb2xs LAo+ICAJLm9wZW4JCT0gaXJfbGlyY19vcGVuLAoKQWRkaW5nIGFuIGluZnJhcmVkIHJlbW90ZSBj b250cm9sbGVyIHRvIGEgczM5MCBtYWluZnJhbWUgc291bmRzIGZ1biA6LSkKCkkgc3VzcGVjdCB0 aGF0IG9uZSBjb3VsZCBpbXBsZW1lbnQgaXQgb24gYSBzMzkwIHBsYXRmb3JtIAp1c2luZyBncGlv LWlyLXJlY3YgYW5kL29yIGdwaW8taXItdHggZHJpdmVycy4gUGVyaGFwcyBvbmUgcG9zc2libGUK cHJhY3RpY2FsIHVzYWdlIHdvdWxkIGJlIHRvIGxldCB0aGUgbWFpbmZyYW1lIHRvIHNlbmQgcmVt b3RlCmNvbnRyb2xsZXIgY29kZXMgdG8gYWRqdXN0IHRoZSBhaXIgY29uZGl0aW9uaW5nIHN5c3Rl bSA7LSkKCkZyb20gbGlyYyBkcml2ZXIncyBQb1YsIHRoZXJlJ3Mgbm90aGluZyB0aGF0IHJlYWxs eSBwcmV2ZW50cyBvbmUgdG8KZG8gdGhhdCBhbmQgdXNlIGxpcmMgQVBJLCBhbmQgdGhlIGRyaXZl ciBpcyBnZW5lcmljIGVub3VnaCB0byB3b3JrCm9uIGFueSBoYXJkd2FyZSBwbGF0Zm9ybS4KCkkg ZGlkbid0IGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBnZW5lcmljX2NvbXBhdF9pb2N0bF9w dHJhcmcoKSwKYnV0IGFzc3VtaW5nIGl0IGlzIG9rLAoKQWNrZWQtYnk6IE1hdXJvIENhcnZhbGhv IENoZWhhYiA8bWNoZWhhYitzYW1zdW5nQGtlcm5lbC5vcmc+CgpUaGFua3MsCk1hdXJvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mauro Carvalho Chehab Date: Wed, 12 Sep 2018 16:01:31 +0000 Subject: Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg Message-Id: <20180912130131.2c6581d5@coco.lan> List-Id: References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Arnd Bergmann Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Greg Kroah-Hartman , "David S. Miller" , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-btrfs@vger.ker Em Wed, 12 Sep 2018 17:08:52 +0200 Arnd Bergmann 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. > > 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. > > 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. > > Signed-off-by: Arnd Bergmann > --- > drivers/media/rc/lirc_dev.c | 4 +--- > 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 = { > .owner = THIS_MODULE, > .write = ir_lirc_transmit_ir, > .unlocked_ioctl = ir_lirc_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = ir_lirc_ioctl, > -#endif > + .compat_ioctl = generic_compat_ioctl_ptrarg, > .read = ir_lirc_read, > .poll = ir_lirc_poll, > .open = 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 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 ;-) >From 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 Thanks, Mauro