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: [v3,09/26] compat_ioctl: move drivers to compat_ptr_ioctl From: "Michael S. Tsirkin" Message-Id: <20190419191633-mutt-send-email-mst@kernel.org> Date: Fri, 19 Apr 2019 19:16:42 -0400 To: Arnd Bergmann Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Jarkko Sakkinen , Jason Gunthorpe , Sudip Mukherjee , Peter Huewe , Jason Gunthorpe , Stefan Richter , Jiri Kosina , Benjamin Tissoires , Alexander Shishkin , Maxime Coquelin , Alexandre Torgue , Tomas Winkler , Artem Bityutskiy , Richard Weinberger , David Woodhouse , Brian Norris , Boris Brezillon , Marek Vasut , "David S. Miller" , Alex Williamson , Jason Wang , Paolo Bonzini , Stefan Hajnoczi , OGAWA Hirofumi , Willem de Bruijn , linux-integrity@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-usb@vger.kernel.org, linux-input@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org, devel@driverdev.osuosl.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org List-ID: T24gVHVlLCBBcHIgMTYsIDIwMTkgYXQgMTA6MTk6NDdQTSArMDIwMCwgQXJuZCBCZXJnbWFubiB3 cm90ZToKPiBFYWNoIG9mIHRoZXNlIGRyaXZlcnMgaGFzIGEgY29weSBvZiB0aGUgc2FtZSB0cml2 aWFsIGhlbHBlciBmdW5jdGlvbiB0bwo+IGNvbnZlcnQgdGhlIHBvaW50ZXIgYXJndW1lbnQgYW5k IHRoZW4gY2FsbCB0aGUgbmF0aXZlIGlvY3RsIGhhbmRsZXIuCj4gCj4gV2Ugbm93IGhhdmUgYSBn ZW5lcmljIGltcGxlbWVudGF0aW9uIG9mIHRoYXQsIHNvIHVzZSBpdC4KPiAKPiBBY2tlZC1ieTog R3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KPiBSZXZpZXdl ZC1ieTogSmFya2tvIFNha2tpbmVuIDxqYXJra28uc2Fra2luZW5AbGludXguaW50ZWwuY29tPgo+ IFJldmlld2VkLWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BtZWxsYW5veC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KCkFja2VkLWJ5OiBNaWNoYWVs IFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9jaGFyL3BwZGV2 LmMgICAgICAgICAgICAgIHwgMTIgKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2NoYXIvdHBtL3RwbV92 dHBtX3Byb3h5LmMgfCAxMiArLS0tLS0tLS0tCj4gIGRyaXZlcnMvZmlyZXdpcmUvY29yZS1jZGV2 LmMgICAgICB8IDEyICstLS0tLS0tLS0KPiAgZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRldi5jICAg ICAgIHwgMTEgKy0tLS0tLS0tCj4gIGRyaXZlcnMvaHd0cmFjaW5nL3N0bS9jb3JlLmMgICAgICB8 IDEyICstLS0tLS0tLS0KPiAgZHJpdmVycy9taXNjL21laS9tYWluLmMgICAgICAgICAgIHwgMjIg Ky0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9tdGQvdWJpL2NkZXYuYyAgICAgICAgICAgIHwg MzYgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL25ldC90YXAuYyAgICAg ICAgICAgICAgICAgfCAxMiArLS0tLS0tLS0tCj4gIGRyaXZlcnMvc3RhZ2luZy9waTQzMy9waTQz M19pZi5jICB8IDEyICstLS0tLS0tLS0KPiAgZHJpdmVycy91c2IvY29yZS9kZXZpby5jICAgICAg ICAgIHwgMTYgKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL3ZmaW8vdmZpby5jICAgICAgICAgICAg ICAgfCAzOSArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvdmhvc3Qv bmV0LmMgICAgICAgICAgICAgICB8IDEyICstLS0tLS0tLS0KPiAgZHJpdmVycy92aG9zdC9zY3Np LmMgICAgICAgICAgICAgIHwgMTIgKy0tLS0tLS0tLQo+ICBkcml2ZXJzL3Zob3N0L3Rlc3QuYyAg ICAgICAgICAgICAgfCAxMiArLS0tLS0tLS0tCj4gIGRyaXZlcnMvdmhvc3QvdnNvY2suYyAgICAg ICAgICAgICB8IDEyICstLS0tLS0tLS0KPiAgZnMvZmF0L2ZpbGUuYyAgICAgICAgICAgICAgICAg ICAgIHwgMTMgKy0tLS0tLS0tLS0KPiAgMTYgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygr KSwgMjM3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcHBkZXYu YyBiL2RyaXZlcnMvY2hhci9wcGRldi5jCj4gaW5kZXggMWFlNzdiNDEwNTBhLi5lOTZjOGQ5NjIz ZTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9jaGFyL3BwZGV2LmMKPiArKysgYi9kcml2ZXJzL2No YXIvcHBkZXYuYwo+IEBAIC02NzQsMTQgKzY3NCw2IEBAIHN0YXRpYyBsb25nIHBwX2lvY3RsKHN0 cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiAg CXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLXN0YXRpYyBs b25nIHBwX2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwK PiAtCQkJICAgIHVuc2lnbmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlyZXR1cm4gcHBfaW9jdGwoZmls ZSwgY21kLCAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFyZykpOwo+IC19Cj4gLSNlbmRpZgo+ IC0KPiAgc3RhdGljIGludCBwcF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxlKQo+ICB7Cj4gIAl1bnNpZ25lZCBpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwo+IEBA IC03OTAsOSArNzgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHBf Zm9wcyA9IHsKPiAgCS53cml0ZQkJPSBwcF93cml0ZSwKPiAgCS5wb2xsCQk9IHBwX3BvbGwsCj4g IAkudW5sb2NrZWRfaW9jdGwJPSBwcF9pb2N0bCwKPiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAt CS5jb21wYXRfaW9jdGwgICA9IHBwX2NvbXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0 X2lvY3RsICAgPSBjb21wYXRfcHRyX2lvY3RsLAo+ICAJLm9wZW4JCT0gcHBfb3BlbiwKPiAgCS5y ZWxlYXNlCT0gcHBfcmVsZWFzZSwKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Rw bS90cG1fdnRwbV9wcm94eS5jIGIvZHJpdmVycy9jaGFyL3RwbS90cG1fdnRwbV9wcm94eS5jCj4g aW5kZXggZDc0ZjNkZTc0YWU2Li5mYjg0NWYwYTQzMGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9j aGFyL3RwbS90cG1fdnRwbV9wcm94eS5jCj4gKysrIGIvZHJpdmVycy9jaGFyL3RwbS90cG1fdnRw bV9wcm94eS5jCj4gQEAgLTY3NSwyMCArNjc1LDEwIEBAIHN0YXRpYyBsb25nIHZ0cG14X2ZvcHNf aW9jdGwoc3RydWN0IGZpbGUgKmYsIHVuc2lnbmVkIGludCBpb2N0bCwKPiAgCX0KPiAgfQo+ICAK PiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtc3RhdGljIGxvbmcgdnRwbXhfZm9wc19jb21wYXRf aW9jdGwoc3RydWN0IGZpbGUgKmYsIHVuc2lnbmVkIGludCBpb2N0bCwKPiAtCQkJCQkgIHVuc2ln bmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlyZXR1cm4gdnRwbXhfZm9wc19pb2N0bChmLCBpb2N0bCwg KHVuc2lnbmVkIGxvbmcpY29tcGF0X3B0cihhcmcpKTsKPiAtfQo+IC0jZW5kaWYKPiAtCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHZ0cG14X2ZvcHMgPSB7Cj4gIAkub3du ZXIgPSBUSElTX01PRFVMRSwKPiAgCS51bmxvY2tlZF9pb2N0bCA9IHZ0cG14X2ZvcHNfaW9jdGws Cj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3RsID0gdnRwbXhfZm9wc19j b21wYXRfaW9jdGwsCj4gLSNlbmRpZgo+ICsJLmNvbXBhdF9pb2N0bCA9IGNvbXBhdF9wdHJfaW9j dGwsCj4gIAkubGxzZWVrID0gbm9vcF9sbHNlZWssCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2ZpcmV3aXJlL2NvcmUtY2Rldi5jIGIvZHJpdmVycy9maXJld2lyZS9jb3JlLWNkZXYu Ywo+IGluZGV4IDE2YTcwNDU3MzZhOS4uZmI5MzQ2ODBmZGQzIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZmlyZXdpcmUvY29yZS1jZGV2LmMKPiArKysgYi9kcml2ZXJzL2ZpcmV3aXJlL2NvcmUtY2Rl di5jCj4gQEAgLTE2NTksMTQgKzE2NTksNiBAQCBzdGF0aWMgbG9uZyBmd19kZXZpY2Vfb3BfaW9j dGwoc3RydWN0IGZpbGUgKmZpbGUsCj4gIAlyZXR1cm4gZGlzcGF0Y2hfaW9jdGwoZmlsZS0+cHJp dmF0ZV9kYXRhLCBjbWQsICh2b2lkIF9fdXNlciAqKWFyZyk7Cj4gIH0KPiAgCj4gLSNpZmRlZiBD T05GSUdfQ09NUEFUCj4gLXN0YXRpYyBsb25nIGZ3X2RldmljZV9vcF9jb21wYXRfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsCj4gLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs b25nIGFyZykKPiAtewo+IC0JcmV0dXJuIGRpc3BhdGNoX2lvY3RsKGZpbGUtPnByaXZhdGVfZGF0 YSwgY21kLCBjb21wYXRfcHRyKGFyZykpOwo+IC19Cj4gLSNlbmRpZgo+IC0KPiAgc3RhdGljIGlu dCBmd19kZXZpY2Vfb3BfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpCj4gIHsKPiAgCXN0cnVjdCBjbGllbnQgKmNsaWVudCA9IGZpbGUtPnByaXZhdGVf ZGF0YTsKPiBAQCAtMTgwOCw3ICsxODAwLDUgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBmd19kZXZpY2Vfb3BzID0gewo+ICAJLm1tYXAJCT0gZndfZGV2aWNlX29wX21tYXAsCj4gIAku cmVsZWFzZQk9IGZ3X2RldmljZV9vcF9yZWxlYXNlLAo+ICAJLnBvbGwJCT0gZndfZGV2aWNlX29w X3BvbGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3RsCT0gZndfZGV2 aWNlX29wX2NvbXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsCT0gY29tcGF0 X3B0cl9pb2N0bCwKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRl di5jIGIvZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRldi5jCj4gaW5kZXggYTc0NjAxN2ZhYzE3Li5l ZjRhMWNkMzg5ZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRldi5jCj4g KysrIGIvZHJpdmVycy9oaWQvdXNiaGlkL2hpZGRldi5jCj4gQEAgLTg1NSwxMyArODU1LDYgQEAg c3RhdGljIGxvbmcgaGlkZGV2X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQg Y21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiAgCXJldHVybiByOwo+ICB9Cj4gIAo+IC0jaWZkZWYg Q09ORklHX0NPTVBBVAo+IC1zdGF0aWMgbG9uZyBoaWRkZXZfY29tcGF0X2lvY3RsKHN0cnVjdCBm aWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiAtewo+IC0J cmV0dXJuIGhpZGRldl9pb2N0bChmaWxlLCBjbWQsICh1bnNpZ25lZCBsb25nKWNvbXBhdF9wdHIo YXJnKSk7Cj4gLX0KPiAtI2VuZGlmCj4gLQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3Bl cmF0aW9ucyBoaWRkZXZfZm9wcyA9IHsKPiAgCS5vd25lciA9CVRISVNfTU9EVUxFLAo+ICAJLnJl YWQgPQkJaGlkZGV2X3JlYWQsCj4gQEAgLTg3MSw5ICs4NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyBoaWRkZXZfZm9wcyA9IHsKPiAgCS5yZWxlYXNlID0JaGlkZGV2 X3JlbGVhc2UsCj4gIAkudW5sb2NrZWRfaW9jdGwgPQloaWRkZXZfaW9jdGwsCj4gIAkuZmFzeW5j ID0JaGlkZGV2X2Zhc3luYywKPiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtCS5jb21wYXRfaW9j dGwJPSBoaWRkZXZfY29tcGF0X2lvY3RsLAo+IC0jZW5kaWYKPiArCS5jb21wYXRfaW9jdGwJPSBj b21wYXRfcHRyX2lvY3RsLAo+ICAJLmxsc2VlawkJPSBub29wX2xsc2VlaywKPiAgfTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHd0cmFjaW5nL3N0bS9jb3JlLmMgYi9kcml2ZXJzL2h3dHJh Y2luZy9zdG0vY29yZS5jCj4gaW5kZXggYzdiYThhY2ZkNGQ1Li40NTRkYTI1OWYxNDQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9od3RyYWNpbmcvc3RtL2NvcmUuYwo+ICsrKyBiL2RyaXZlcnMvaHd0 cmFjaW5nL3N0bS9jb3JlLmMKPiBAQCAtODQwLDIzICs4NDAsMTMgQEAgc3RtX2NoYXJfaW9jdGwo c3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQo+ ICAJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtc3RhdGlj IGxvbmcKPiAtc3RtX2NoYXJfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25l ZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKPiAtewo+IC0JcmV0dXJuIHN0bV9jaGFyX2lv Y3RsKGZpbGUsIGNtZCwgKHVuc2lnbmVkIGxvbmcpY29tcGF0X3B0cihhcmcpKTsKPiAtfQo+IC0j ZWxzZQo+IC0jZGVmaW5lIHN0bV9jaGFyX2NvbXBhdF9pb2N0bAlOVUxMCj4gLSNlbmRpZgo+IC0K PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc3RtX2ZvcHMgPSB7Cj4gIAku b3BlbgkJPSBzdG1fY2hhcl9vcGVuLAo+ICAJLnJlbGVhc2UJPSBzdG1fY2hhcl9yZWxlYXNlLAo+ ICAJLndyaXRlCQk9IHN0bV9jaGFyX3dyaXRlLAo+ICAJLm1tYXAJCT0gc3RtX2NoYXJfbW1hcCwK PiAgCS51bmxvY2tlZF9pb2N0bAk9IHN0bV9jaGFyX2lvY3RsLAo+IC0JLmNvbXBhdF9pb2N0bAk9 IHN0bV9jaGFyX2NvbXBhdF9pb2N0bCwKPiArCS5jb21wYXRfaW9jdGwJPSBjb21wYXRfcHRyX2lv Y3RsLAo+ICAJLmxsc2VlawkJPSBub19sbHNlZWssCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21pc2MvbWVpL21haW4uYyBiL2RyaXZlcnMvbWlzYy9tZWkvbWFpbi5jCj4gaW5kZXgg ODcyODFiMzY5NWU2Li5jYzZhZjkyY2RlZjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9taXNjL21l aS9tYWluLmMKPiArKysgYi9kcml2ZXJzL21pc2MvbWVpL21haW4uYwo+IEBAIC01MzUsMjQgKzUz NSw2IEBAIHN0YXRpYyBsb25nIG1laV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQg aW50IGNtZCwgdW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJcmV0dXJuIHJldHM7Cj4gIH0KPiAgCj4g LS8qKgo+IC0gKiBtZWlfY29tcGF0X2lvY3RsIC0gdGhlIGNvbXBhdCBJT0NUTCBmdW5jdGlvbgo+ IC0gKgo+IC0gKiBAZmlsZTogcG9pbnRlciB0byBmaWxlIHN0cnVjdHVyZQo+IC0gKiBAY21kOiBp b2N0bCBjb21tYW5kCj4gLSAqIEBkYXRhOiBwb2ludGVyIHRvIG1laSBtZXNzYWdlIHN0cnVjdHVy ZQo+IC0gKgo+IC0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyAsIDwwIG9uIGVycm9yCj4gLSAqLwo+ IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+IC1zdGF0aWMgbG9uZyBtZWlfY29tcGF0X2lvY3RsKHN0 cnVjdCBmaWxlICpmaWxlLAo+IC0JCQl1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGRh dGEpCj4gLXsKPiAtCXJldHVybiBtZWlfaW9jdGwoZmlsZSwgY21kLCAodW5zaWduZWQgbG9uZylj b21wYXRfcHRyKGRhdGEpKTsKPiAtfQo+IC0jZW5kaWYKPiAtCj4gLQo+ICAvKioKPiAgICogbWVp X3BvbGwgLSB0aGUgcG9sbCBmdW5jdGlvbgo+ICAgKgo+IEBAIC04NTUsOSArODM3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWVpX2ZvcHMgPSB7Cj4gIAkub3duZXIg PSBUSElTX01PRFVMRSwKPiAgCS5yZWFkID0gbWVpX3JlYWQsCj4gIAkudW5sb2NrZWRfaW9jdGwg PSBtZWlfaW9jdGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3RsID0g bWVpX2NvbXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsID0gY29tcGF0X3B0 cl9pb2N0bCwKPiAgCS5vcGVuID0gbWVpX29wZW4sCj4gIAkucmVsZWFzZSA9IG1laV9yZWxlYXNl LAo+ICAJLndyaXRlID0gbWVpX3dyaXRlLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC91Ymkv Y2Rldi5jIGIvZHJpdmVycy9tdGQvdWJpL2NkZXYuYwo+IGluZGV4IDk0N2E4YWRiYzc5OS4uMjY1 ZDM0ZmEzZWZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMKPiArKysgYi9k cml2ZXJzL210ZC91YmkvY2Rldi5jCj4gQEAgLTEwOTEsMzYgKzEwOTEsNiBAQCBzdGF0aWMgbG9u ZyBjdHJsX2NkZXZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCj4g IAlyZXR1cm4gZXJyOwo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+IC1zdGF0aWMg bG9uZyB2b2xfY2Rldl9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGlu dCBjbWQsCj4gLQkJCQkgIHVuc2lnbmVkIGxvbmcgYXJnKQo+IC17Cj4gLQl1bnNpZ25lZCBsb25n IHRyYW5zbGF0ZWRfYXJnID0gKHVuc2lnbmVkIGxvbmcpY29tcGF0X3B0cihhcmcpOwo+IC0KPiAt CXJldHVybiB2b2xfY2Rldl9pb2N0bChmaWxlLCBjbWQsIHRyYW5zbGF0ZWRfYXJnKTsKPiAtfQo+ IC0KPiAtc3RhdGljIGxvbmcgdWJpX2NkZXZfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxl LCB1bnNpZ25lZCBpbnQgY21kLAo+IC0JCQkJICB1bnNpZ25lZCBsb25nIGFyZykKPiAtewo+IC0J dW5zaWduZWQgbG9uZyB0cmFuc2xhdGVkX2FyZyA9ICh1bnNpZ25lZCBsb25nKWNvbXBhdF9wdHIo YXJnKTsKPiAtCj4gLQlyZXR1cm4gdWJpX2NkZXZfaW9jdGwoZmlsZSwgY21kLCB0cmFuc2xhdGVk X2FyZyk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBsb25nIGN0cmxfY2Rldl9jb21wYXRfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCj4gLQkJCQkgICB1bnNpZ25lZCBsb25n IGFyZykKPiAtewo+IC0JdW5zaWduZWQgbG9uZyB0cmFuc2xhdGVkX2FyZyA9ICh1bnNpZ25lZCBs b25nKWNvbXBhdF9wdHIoYXJnKTsKPiAtCj4gLQlyZXR1cm4gY3RybF9jZGV2X2lvY3RsKGZpbGUs IGNtZCwgdHJhbnNsYXRlZF9hcmcpOwo+IC19Cj4gLSNlbHNlCj4gLSNkZWZpbmUgdm9sX2NkZXZf Y29tcGF0X2lvY3RsICBOVUxMCj4gLSNkZWZpbmUgdWJpX2NkZXZfY29tcGF0X2lvY3RsICBOVUxM Cj4gLSNkZWZpbmUgY3RybF9jZGV2X2NvbXBhdF9pb2N0bCBOVUxMCj4gLSNlbmRpZgo+IC0KPiAg LyogVUJJIHZvbHVtZSBjaGFyYWN0ZXIgZGV2aWNlIG9wZXJhdGlvbnMgKi8KPiAgY29uc3Qgc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyB1Ymlfdm9sX2NkZXZfb3BlcmF0aW9ucyA9IHsKPiAgCS5vd25l ciAgICAgICAgICA9IFRISVNfTU9EVUxFLAo+IEBAIC0xMTMxLDcgKzExMDEsNyBAQCBjb25zdCBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHViaV92b2xfY2Rldl9vcGVyYXRpb25zID0gewo+ICAJLndy aXRlICAgICAgICAgID0gdm9sX2NkZXZfd3JpdGUsCj4gIAkuZnN5bmMJCT0gdm9sX2NkZXZfZnN5 bmMsCj4gIAkudW5sb2NrZWRfaW9jdGwgPSB2b2xfY2Rldl9pb2N0bCwKPiAtCS5jb21wYXRfaW9j dGwgICA9IHZvbF9jZGV2X2NvbXBhdF9pb2N0bCwKPiArCS5jb21wYXRfaW9jdGwgICA9IGNvbXBh dF9wdHJfaW9jdGwsCj4gIH07Cj4gIAo+ICAvKiBVQkkgY2hhcmFjdGVyIGRldmljZSBvcGVyYXRp b25zICovCj4gQEAgLTExMzksMTMgKzExMDksMTMgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyB1YmlfY2Rldl9vcGVyYXRpb25zID0gewo+ICAJLm93bmVyICAgICAgICAgID0gVEhJU19N T0RVTEUsCj4gIAkubGxzZWVrICAgICAgICAgPSBub19sbHNlZWssCj4gIAkudW5sb2NrZWRfaW9j dGwgPSB1YmlfY2Rldl9pb2N0bCwKPiAtCS5jb21wYXRfaW9jdGwgICA9IHViaV9jZGV2X2NvbXBh dF9pb2N0bCwKPiArCS5jb21wYXRfaW9jdGwgICA9IGNvbXBhdF9wdHJfaW9jdGwsCj4gIH07Cj4g IAo+ICAvKiBVQkkgY29udHJvbCBjaGFyYWN0ZXIgZGV2aWNlIG9wZXJhdGlvbnMgKi8KPiAgY29u c3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1YmlfY3RybF9jZGV2X29wZXJhdGlvbnMgPSB7Cj4g IAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKPiAgCS51bmxvY2tlZF9pb2N0bCA9IGN0 cmxfY2Rldl9pb2N0bCwKPiAtCS5jb21wYXRfaW9jdGwgICA9IGN0cmxfY2Rldl9jb21wYXRfaW9j dGwsCj4gKwkuY29tcGF0X2lvY3RsICAgPSBjb21wYXRfcHRyX2lvY3RsLAo+ICAJLmxsc2VlawkJ PSBub19sbHNlZWssCj4gIH07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RhcC5jIGIvZHJp dmVycy9uZXQvdGFwLmMKPiBpbmRleCAyZWE5YjQ5NzZmNGEuLmViZTQyNWU2NTk5MiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL25ldC90YXAuYwo+ICsrKyBiL2RyaXZlcnMvbmV0L3RhcC5jCj4gQEAg LTExMjMsMTQgKzExMjMsNiBAQCBzdGF0aWMgbG9uZyB0YXBfaW9jdGwoc3RydWN0IGZpbGUgKmZp bGUsIHVuc2lnbmVkIGludCBjbWQsCj4gIAl9Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05GSUdfQ09N UEFUCj4gLXN0YXRpYyBsb25nIHRhcF9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVu c2lnbmVkIGludCBjbWQsCj4gLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCj4gLXsKPiAtCXJl dHVybiB0YXBfaW9jdGwoZmlsZSwgY21kLCAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFyZykp Owo+IC19Cj4gLSNlbmRpZgo+IC0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgdGFwX2ZvcHMgPSB7Cj4gIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCj4gIAkub3BlbgkJPSB0 YXBfb3BlbiwKPiBAQCAtMTE0MCw5ICsxMTMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgdGFwX2ZvcHMgPSB7Cj4gIAkucG9sbAkJPSB0YXBfcG9sbCwKPiAgCS5sbHNl ZWsJCT0gbm9fbGxzZWVrLAo+ICAJLnVubG9ja2VkX2lvY3RsCT0gdGFwX2lvY3RsLAo+IC0jaWZk ZWYgQ09ORklHX0NPTVBBVAo+IC0JLmNvbXBhdF9pb2N0bAk9IHRhcF9jb21wYXRfaW9jdGwsCj4g LSNlbmRpZgo+ICsJLmNvbXBhdF9pb2N0bAk9IGNvbXBhdF9wdHJfaW9jdGwsCj4gIH07Cj4gIAo+ ICBzdGF0aWMgaW50IHRhcF9nZXRfdXNlcl94ZHAoc3RydWN0IHRhcF9xdWV1ZSAqcSwgc3RydWN0 IHhkcF9idWZmICp4ZHApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9waTQzMy9waTQz M19pZi5jIGIvZHJpdmVycy9zdGFnaW5nL3BpNDMzL3BpNDMzX2lmLmMKPiBpbmRleCBiMjMxNDYz NmRjODkuLmFiN2RmYzdjMjkxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvcGk0MzMv cGk0MzNfaWYuYwo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9waTQzMy9waTQzM19pZi5jCj4gQEAg LTkzNSwxNiArOTM1LDYgQEAgcGk0MzNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVk IGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQo+ICAJcmV0dXJuIHJldHZhbDsKPiAgfQo+ICAK PiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtc3RhdGljIGxvbmcKPiAtcGk0MzNfY29tcGF0X2lv Y3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy ZykKPiAtewo+IC0JcmV0dXJuIHBpNDMzX2lvY3RsKGZpbHAsIGNtZCwgKHVuc2lnbmVkIGxvbmcp Y29tcGF0X3B0cihhcmcpKTsKPiAtfQo+IC0jZWxzZQo+IC0jZGVmaW5lIHBpNDMzX2NvbXBhdF9p b2N0bCBOVUxMCj4gLSNlbmRpZiAvKiBDT05GSUdfQ09NUEFUICovCj4gLQo+ICAvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0qLwo+ICAKPiAgc3RhdGljIGludCBwaTQzM19vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxwKQo+IEBAIC0xMTAxLDcgKzEwOTEsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwaTQzM19mb3BzID0gewo+ICAJLndyaXRlID0JcGk0 MzNfd3JpdGUsCj4gIAkucmVhZCA9CQlwaTQzM19yZWFkLAo+ICAJLnVubG9ja2VkX2lvY3RsID0g cGk0MzNfaW9jdGwsCj4gLQkuY29tcGF0X2lvY3RsID0gcGk0MzNfY29tcGF0X2lvY3RsLAo+ICsJ LmNvbXBhdF9pb2N0bCA9IGNvbXBhdF9wdHJfaW9jdGwsCj4gIAkub3BlbiA9CQlwaTQzM19vcGVu LAo+ICAJLnJlbGVhc2UgPQlwaTQzM19yZWxlYXNlLAo+ICAJLmxsc2VlayA9CW5vX2xsc2VlaywK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9kZXZpby5jIGIvZHJpdmVycy91c2IvY29y ZS9kZXZpby5jCj4gaW5kZXggZmE3ODM1MzFlZTg4Li5kNzUwNTJiMzY1ODQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy91c2IvY29yZS9kZXZpby5jCj4gKysrIGIvZHJpdmVycy91c2IvY29yZS9kZXZp by5jCj4gQEAgLTI1NjgsMTggKzI1NjgsNiBAQCBzdGF0aWMgbG9uZyB1c2JkZXZfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g IAo+IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+IC1zdGF0aWMgbG9uZyB1c2JkZXZfY29tcGF0X2lv Y3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAo+IC0JCQl1bnNpZ25lZCBs b25nIGFyZykKPiAtewo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQgPSB1c2JkZXZfZG9faW9jdGwo ZmlsZSwgY21kLCBjb21wYXRfcHRyKGFyZykpOwo+IC0KPiAtCXJldHVybiByZXQ7Cj4gLX0KPiAt I2VuZGlmCj4gLQo+ICAvKiBObyBrZXJuZWwgbG9jayAtIGZpbmUgKi8KPiAgc3RhdGljIF9fcG9s bF90IHVzYmRldl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLAo+ICAJCQkJc3RydWN0IHBvbGxfdGFi bGVfc3RydWN0ICp3YWl0KQo+IEBAIC0yNjAzLDkgKzI1OTEsNyBAQCBjb25zdCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIHVzYmRldl9maWxlX29wZXJhdGlvbnMgPSB7Cj4gIAkucmVhZCA9CQkgIHVz YmRldl9yZWFkLAo+ICAJLnBvbGwgPQkJICB1c2JkZXZfcG9sbCwKPiAgCS51bmxvY2tlZF9pb2N0 bCA9IHVzYmRldl9pb2N0bCwKPiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtCS5jb21wYXRfaW9j dGwgPSAgIHVzYmRldl9jb21wYXRfaW9jdGwsCj4gLSNlbmRpZgo+ICsJLmNvbXBhdF9pb2N0bCA9 ICAgY29tcGF0X3B0cl9pb2N0bCwKPiAgCS5tbWFwID0gICAgICAgICAgIHVzYmRldl9tbWFwLAo+ ICAJLm9wZW4gPQkJICB1c2JkZXZfb3BlbiwKPiAgCS5yZWxlYXNlID0JICB1c2JkZXZfcmVsZWFz ZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3ZmaW8uYyBiL2RyaXZlcnMvdmZpby92Zmlv LmMKPiBpbmRleCBhMzAzMGNkZjNjMTguLmE1ZWZlODI1ODRhNSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3ZmaW8vdmZpby5jCj4gKysrIGIvZHJpdmVycy92ZmlvL3ZmaW8uYwo+IEBAIC0xMjAwLDE1 ICsxMjAwLDYgQEAgc3RhdGljIGxvbmcgdmZpb19mb3BzX3VubF9pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlsZXAsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+ IC1zdGF0aWMgbG9uZyB2ZmlvX2ZvcHNfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlcCwK PiAtCQkJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlh cmcgPSAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFyZyk7Cj4gLQlyZXR1cm4gdmZpb19mb3Bz X3VubF9pb2N0bChmaWxlcCwgY21kLCBhcmcpOwo+IC19Cj4gLSNlbmRpZgkvKiBDT05GSUdfQ09N UEFUICovCj4gLQo+ICBzdGF0aWMgaW50IHZmaW9fZm9wc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxlcCkKPiAgewo+ICAJc3RydWN0IHZmaW9fY29udGFpbmVyICpj b250YWluZXI7Cj4gQEAgLTEyOTEsOSArMTI4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIHZmaW9fZm9wcyA9IHsKPiAgCS5yZWFkCQk9IHZmaW9fZm9wc19yZWFkLAo+ ICAJLndyaXRlCQk9IHZmaW9fZm9wc193cml0ZSwKPiAgCS51bmxvY2tlZF9pb2N0bAk9IHZmaW9f Zm9wc191bmxfaW9jdGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3Rs CT0gdmZpb19mb3BzX2NvbXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsCT0g Y29tcGF0X3B0cl9pb2N0bCwKPiAgCS5tbWFwCQk9IHZmaW9fZm9wc19tbWFwLAo+ICB9Owo+ICAK PiBAQCAtMTU3MiwxNSArMTU2MSw2IEBAIHN0YXRpYyBsb25nIHZmaW9fZ3JvdXBfZm9wc191bmxf aW9jdGwoc3RydWN0IGZpbGUgKmZpbGVwLAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtI2lm ZGVmIENPTkZJR19DT01QQVQKPiAtc3RhdGljIGxvbmcgdmZpb19ncm91cF9mb3BzX2NvbXBhdF9p b2N0bChzdHJ1Y3QgZmlsZSAqZmlsZXAsCj4gLQkJCQkJIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlhcmcgPSAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFy Zyk7Cj4gLQlyZXR1cm4gdmZpb19ncm91cF9mb3BzX3VubF9pb2N0bChmaWxlcCwgY21kLCBhcmcp Owo+IC19Cj4gLSNlbmRpZgkvKiBDT05GSUdfQ09NUEFUICovCj4gLQo+ICBzdGF0aWMgaW50IHZm aW9fZ3JvdXBfZm9wc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl cCkKPiAgewo+ICAJc3RydWN0IHZmaW9fZ3JvdXAgKmdyb3VwOwo+IEBAIC0xNjM2LDkgKzE2MTYs NyBAQCBzdGF0aWMgaW50IHZmaW9fZ3JvdXBfZm9wc19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxlcCkKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJh dGlvbnMgdmZpb19ncm91cF9mb3BzID0gewo+ICAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAo+ICAJ LnVubG9ja2VkX2lvY3RsCT0gdmZpb19ncm91cF9mb3BzX3VubF9pb2N0bCwKPiAtI2lmZGVmIENP TkZJR19DT01QQVQKPiAtCS5jb21wYXRfaW9jdGwJPSB2ZmlvX2dyb3VwX2ZvcHNfY29tcGF0X2lv Y3RsLAo+IC0jZW5kaWYKPiArCS5jb21wYXRfaW9jdGwJPSBjb21wYXRfcHRyX2lvY3RsLAo+ICAJ Lm9wZW4JCT0gdmZpb19ncm91cF9mb3BzX29wZW4sCj4gIAkucmVsZWFzZQk9IHZmaW9fZ3JvdXBf Zm9wc19yZWxlYXNlLAo+ICB9Owo+IEBAIC0xNzAzLDI0ICsxNjgxLDEzIEBAIHN0YXRpYyBpbnQg dmZpb19kZXZpY2VfZm9wc19tbWFwKHN0cnVjdCBmaWxlICpmaWxlcCwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEpCj4gIAlyZXR1cm4gZGV2aWNlLT5vcHMtPm1tYXAoZGV2aWNlLT5kZXZpY2Vf ZGF0YSwgdm1hKTsKPiAgfQo+ICAKPiAtI2lmZGVmIENPTkZJR19DT01QQVQKPiAtc3RhdGljIGxv bmcgdmZpb19kZXZpY2VfZm9wc19jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGVwLAo+IC0J CQkJCSAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gLXsKPiAtCWFyZyA9 ICh1bnNpZ25lZCBsb25nKWNvbXBhdF9wdHIoYXJnKTsKPiAtCXJldHVybiB2ZmlvX2RldmljZV9m b3BzX3VubF9pb2N0bChmaWxlcCwgY21kLCBhcmcpOwo+IC19Cj4gLSNlbmRpZgkvKiBDT05GSUdf Q09NUEFUICovCj4gLQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2Zmlv X2RldmljZV9mb3BzID0gewo+ICAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAo+ICAJLnJlbGVhc2UJ PSB2ZmlvX2RldmljZV9mb3BzX3JlbGVhc2UsCj4gIAkucmVhZAkJPSB2ZmlvX2RldmljZV9mb3Bz X3JlYWQsCj4gIAkud3JpdGUJCT0gdmZpb19kZXZpY2VfZm9wc193cml0ZSwKPiAgCS51bmxvY2tl ZF9pb2N0bAk9IHZmaW9fZGV2aWNlX2ZvcHNfdW5sX2lvY3RsLAo+IC0jaWZkZWYgQ09ORklHX0NP TVBBVAo+IC0JLmNvbXBhdF9pb2N0bAk9IHZmaW9fZGV2aWNlX2ZvcHNfY29tcGF0X2lvY3RsLAo+ IC0jZW5kaWYKPiArCS5jb21wYXRfaW9jdGwJPSBjb21wYXRfcHRyX2lvY3RsLAo+ICAJLm1tYXAJ CT0gdmZpb19kZXZpY2VfZm9wc19tbWFwLAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aG9zdC9uZXQuYyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKPiBpbmRleCBkZjUxYTM1Y2Y1Mzcu LjE2NDJiMzU3MzIzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Zob3N0L25ldC5jCj4gKysrIGIv ZHJpdmVycy92aG9zdC9uZXQuYwo+IEBAIC0xNzY1LDE0ICsxNzY1LDYgQEAgc3RhdGljIGxvbmcg dmhvc3RfbmV0X2lvY3RsKHN0cnVjdCBmaWxlICpmLCB1bnNpZ25lZCBpbnQgaW9jdGwsCj4gIAl9 Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLXN0YXRpYyBsb25nIHZob3N0X25l dF9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmYsIHVuc2lnbmVkIGludCBpb2N0bCwKPiAtCQkJ CSAgIHVuc2lnbmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlyZXR1cm4gdmhvc3RfbmV0X2lvY3RsKGYs IGlvY3RsLCAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFyZykpOwo+IC19Cj4gLSNlbmRpZgo+ IC0KPiAgc3RhdGljIHNzaXplX3Qgdmhvc3RfbmV0X2Nocl9yZWFkX2l0ZXIoc3RydWN0IGtpb2Ni ICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRvKQo+ICB7Cj4gIAlzdHJ1Y3QgZmlsZSAqZmlsZSA9 IGlvY2ItPmtpX2ZpbHA7Cj4gQEAgLTE4MDgsOSArMTgwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIHZob3N0X25ldF9mb3BzID0gewo+ICAJLndyaXRlX2l0ZXIgICAg ID0gdmhvc3RfbmV0X2Nocl93cml0ZV9pdGVyLAo+ICAJLnBvbGwgICAgICAgICAgID0gdmhvc3Rf bmV0X2Nocl9wb2xsLAo+ICAJLnVubG9ja2VkX2lvY3RsID0gdmhvc3RfbmV0X2lvY3RsLAo+IC0j aWZkZWYgQ09ORklHX0NPTVBBVAo+IC0JLmNvbXBhdF9pb2N0bCAgID0gdmhvc3RfbmV0X2NvbXBh dF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsICAgPSBjb21wYXRfcHRyX2lvY3Rs LAo+ICAJLm9wZW4gICAgICAgICAgID0gdmhvc3RfbmV0X29wZW4sCj4gIAkubGxzZWVrCQk9IG5v b3BfbGxzZWVrLAo+ICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Njc2kuYyBiL2Ry aXZlcnMvdmhvc3Qvc2NzaS5jCj4gaW5kZXggNjE4ZmI2NDYxMDE3Li5mOWIxNGMzOWQ4OWIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy92aG9zdC9zY3NpLmMKPiArKysgYi9kcml2ZXJzL3Zob3N0L3Nj c2kuYwo+IEBAIC0xNzIxLDIxICsxNzIxLDExIEBAIHZob3N0X3Njc2lfaW9jdGwoc3RydWN0IGZp bGUgKmYsCj4gIAl9Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLXN0YXRpYyBs b25nIHZob3N0X3Njc2lfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmLCB1bnNpZ25lZCBpbnQg aW9jdGwsCj4gLQkJCQl1bnNpZ25lZCBsb25nIGFyZykKPiAtewo+IC0JcmV0dXJuIHZob3N0X3Nj c2lfaW9jdGwoZiwgaW9jdGwsICh1bnNpZ25lZCBsb25nKWNvbXBhdF9wdHIoYXJnKSk7Cj4gLX0K PiAtI2VuZGlmCj4gLQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aG9z dF9zY3NpX2ZvcHMgPSB7Cj4gIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKPiAgCS5y ZWxlYXNlICAgICAgICA9IHZob3N0X3Njc2lfcmVsZWFzZSwKPiAgCS51bmxvY2tlZF9pb2N0bCA9 IHZob3N0X3Njc2lfaW9jdGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lv Y3RsCT0gdmhvc3Rfc2NzaV9jb21wYXRfaW9jdGwsCj4gLSNlbmRpZgo+ICsJLmNvbXBhdF9pb2N0 bAk9IGNvbXBhdF9wdHJfaW9jdGwsCj4gIAkub3BlbiAgICAgICAgICAgPSB2aG9zdF9zY3NpX29w ZW4sCj4gIAkubGxzZWVrCQk9IG5vb3BfbGxzZWVrLAo+ICB9Owo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3Zob3N0L3Rlc3QuYyBiL2RyaXZlcnMvdmhvc3QvdGVzdC5jCj4gaW5kZXggNDA1ODk4NTBl YjMzLi42MWQ0ZDk4YzhmNzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy92aG9zdC90ZXN0LmMKPiAr KysgYi9kcml2ZXJzL3Zob3N0L3Rlc3QuYwo+IEBAIC0yOTgsMjEgKzI5OCwxMSBAQCBzdGF0aWMg bG9uZyB2aG9zdF90ZXN0X2lvY3RsKHN0cnVjdCBmaWxlICpmLCB1bnNpZ25lZCBpbnQgaW9jdGws Cj4gIAl9Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLXN0YXRpYyBsb25nIHZo b3N0X3Rlc3RfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmLCB1bnNpZ25lZCBpbnQgaW9jdGws Cj4gLQkJCQkgICB1bnNpZ25lZCBsb25nIGFyZykKPiAtewo+IC0JcmV0dXJuIHZob3N0X3Rlc3Rf aW9jdGwoZiwgaW9jdGwsICh1bnNpZ25lZCBsb25nKWNvbXBhdF9wdHIoYXJnKSk7Cj4gLX0KPiAt I2VuZGlmCj4gLQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aG9zdF90 ZXN0X2ZvcHMgPSB7Cj4gIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKPiAgCS5yZWxl YXNlICAgICAgICA9IHZob3N0X3Rlc3RfcmVsZWFzZSwKPiAgCS51bmxvY2tlZF9pb2N0bCA9IHZo b3N0X3Rlc3RfaW9jdGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3Rs ICAgPSB2aG9zdF90ZXN0X2NvbXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3Rs ICAgPSBjb21wYXRfcHRyX2lvY3RsLAo+ICAJLm9wZW4gICAgICAgICAgID0gdmhvc3RfdGVzdF9v cGVuLAo+ICAJLmxsc2VlawkJPSBub29wX2xsc2VlaywKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy92aG9zdC92c29jay5jIGIvZHJpdmVycy92aG9zdC92c29jay5jCj4gaW5kZXggYmI1ZmMw ZTlmYmMyLi45YTg2MjAyNjc4YjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy92aG9zdC92c29jay5j Cj4gKysrIGIvZHJpdmVycy92aG9zdC92c29jay5jCj4gQEAgLTcxNiwyMyArNzE2LDEzIEBAIHN0 YXRpYyBsb25nIHZob3N0X3Zzb2NrX2Rldl9pb2N0bChzdHJ1Y3QgZmlsZSAqZiwgdW5zaWduZWQg aW50IGlvY3RsLAo+ICAJfQo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+IC1zdGF0 aWMgbG9uZyB2aG9zdF92c29ja19kZXZfY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmLCB1bnNp Z25lZCBpbnQgaW9jdGwsCj4gLQkJCQkJIHVuc2lnbmVkIGxvbmcgYXJnKQo+IC17Cj4gLQlyZXR1 cm4gdmhvc3RfdnNvY2tfZGV2X2lvY3RsKGYsIGlvY3RsLCAodW5zaWduZWQgbG9uZyljb21wYXRf cHRyKGFyZykpOwo+IC19Cj4gLSNlbmRpZgo+IC0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgdmhvc3RfdnNvY2tfZm9wcyA9IHsKPiAgCS5vd25lciAgICAgICAgICA9IFRI SVNfTU9EVUxFLAo+ICAJLm9wZW4gICAgICAgICAgID0gdmhvc3RfdnNvY2tfZGV2X29wZW4sCj4g IAkucmVsZWFzZSAgICAgICAgPSB2aG9zdF92c29ja19kZXZfcmVsZWFzZSwKPiAgCS5sbHNlZWsJ CT0gbm9vcF9sbHNlZWssCj4gIAkudW5sb2NrZWRfaW9jdGwgPSB2aG9zdF92c29ja19kZXZfaW9j dGwsCj4gLSNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLQkuY29tcGF0X2lvY3RsICAgPSB2aG9zdF92 c29ja19kZXZfY29tcGF0X2lvY3RsLAo+IC0jZW5kaWYKPiArCS5jb21wYXRfaW9jdGwgICA9IGNv bXBhdF9wdHJfaW9jdGwsCj4gIH07Cj4gIAo+ICBzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2Ugdmhv c3RfdnNvY2tfbWlzYyA9IHsKPiBkaWZmIC0tZ2l0IGEvZnMvZmF0L2ZpbGUuYyBiL2ZzL2ZhdC9m aWxlLmMKPiBpbmRleCBiM2JlZDMyOTQ2YjEuLmYxNzNkOTI2MTExNSAxMDA2NDQKPiAtLS0gYS9m cy9mYXQvZmlsZS5jCj4gKysrIGIvZnMvZmF0L2ZpbGUuYwo+IEBAIC0xNzEsMTUgKzE3MSw2IEBA IGxvbmcgZmF0X2dlbmVyaWNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBj bWQsIHVuc2lnbmVkIGxvbmcgYXJnKQo+ICAJfQo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0NP TVBBVAo+IC1zdGF0aWMgbG9uZyBmYXRfZ2VuZXJpY19jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUg KmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCj4gLQkJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZykK PiAtCj4gLXsKPiAtCXJldHVybiBmYXRfZ2VuZXJpY19pb2N0bChmaWxwLCBjbWQsICh1bnNpZ25l ZCBsb25nKWNvbXBhdF9wdHIoYXJnKSk7Cj4gLX0KPiAtI2VuZGlmCj4gLQo+ICBzdGF0aWMgaW50 IGZhdF9maWxlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAp Cj4gIHsKPiAgCWlmICgoZmlscC0+Zl9tb2RlICYgRk1PREVfV1JJVEUpICYmCj4gQEAgLTIwOSw5 ICsyMDAsNyBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZhdF9maWxlX29wZXJhdGlv bnMgPSB7Cj4gIAkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKPiAgCS5yZWxlYXNlCT0gZmF0 X2ZpbGVfcmVsZWFzZSwKPiAgCS51bmxvY2tlZF9pb2N0bAk9IGZhdF9nZW5lcmljX2lvY3RsLAo+ IC0jaWZkZWYgQ09ORklHX0NPTVBBVAo+IC0JLmNvbXBhdF9pb2N0bAk9IGZhdF9nZW5lcmljX2Nv bXBhdF9pb2N0bCwKPiAtI2VuZGlmCj4gKwkuY29tcGF0X2lvY3RsCT0gY29tcGF0X3B0cl9pb2N0 bCwKPiAgCS5mc3luYwkJPSBmYXRfZmlsZV9mc3luYywKPiAgCS5zcGxpY2VfcmVhZAk9IGdlbmVy aWNfZmlsZV9zcGxpY2VfcmVhZCwKPiAgCS5zcGxpY2Vfd3JpdGUJPSBpdGVyX2ZpbGVfc3BsaWNl X3dyaXRlLAo+IC0tIAo+IDIuMjAuMAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E243DC282E0 for ; Fri, 19 Apr 2019 23:16:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A6B362171F for ; Fri, 19 Apr 2019 23:16:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727454AbfDSXQs (ORCPT ); Fri, 19 Apr 2019 19:16:48 -0400 Received: from mail-qk1-f193.google.com ([209.85.222.193]:45313 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727010AbfDSXQs (ORCPT ); Fri, 19 Apr 2019 19:16:48 -0400 Received: by mail-qk1-f193.google.com with SMTP id d5so1349839qko.12 for ; Fri, 19 Apr 2019 16:16:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=FdVatN/73YlNGbn3GdKW4kEdyp+/MQzu9nrISrDGips=; b=USqovkD+8aG3k/TBfFDHug22FvLqF9q6T/IAaQT5IqGffHlTYQt3ga26oEv3uATOsQ Z8Sq+u8z5l3G11nqfAQ3XHEUR+qMnbznv8VI5ygywVhxYU4L1oDqbfmnqdRcjc+Zjypm OfK8F+T+aGmXf89IvFpsFClOZjCNY2cn80+tzOmfj8evTN7nJrpjYyNuzO2zWIX99su8 uk0WjeokUWILC5AzW116iu88N5jYIMoZ0T439yEmajvKHixNWahtlBJ6kuzROF2m3xfJ uc93QPpqHAf2/27xQr4a8EaEm5+hRZaoAXaPWH9MUTyOMDGyN+37CyJYgPLSFHbhPuYF 2LOw== X-Gm-Message-State: APjAAAXQnBW3Y3eCpDwZoEQ+goWKrK2rrGjcCqu74qGpHi48L0ild4bf LzKqkW3DJ/ZeEcsfZZF+juQxSA== X-Google-Smtp-Source: APXvYqwJtiGcKTwmD5uG+y97IK/oHkJCWgUjdHzgzyzWv6PUKrsfBZw1/5RInbENwOpqGPJynP6scA== X-Received: by 2002:a05:620a:12ab:: with SMTP id x11mr1857499qki.320.1555715806740; Fri, 19 Apr 2019 16:16:46 -0700 (PDT) Received: from redhat.com (pool-173-76-246-42.bstnma.fios.verizon.net. [173.76.246.42]) by smtp.gmail.com with ESMTPSA id d21sm4282627qtc.91.2019.04.19.16.16.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 19 Apr 2019 16:16:45 -0700 (PDT) Date: Fri, 19 Apr 2019 19:16:42 -0400 From: "Michael S. Tsirkin" To: Arnd Bergmann Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Jarkko Sakkinen , Jason Gunthorpe , Sudip Mukherjee , Peter Huewe , Jason Gunthorpe , Stefan Richter , Jiri Kosina , Benjamin Tissoires , Alexander Shishkin , Maxime Coquelin , Alexandre Torgue , Tomas Winkler , Artem Bityutskiy , Richard Weinberger , David Woodhouse , Brian Norris , Boris Brezillon , Marek Vasut , "David S. Miller" , Alex Williamson , Jason Wang , Paolo Bonzini , Stefan Hajnoczi , OGAWA Hirofumi , Willem de Bruijn , linux-integrity@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-usb@vger.kernel.org, linux-input@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org, devel@driverdev.osuosl.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org Subject: Re: [PATCH v3 09/26] compat_ioctl: move drivers to compat_ptr_ioctl Message-ID: <20190419191633-mutt-send-email-mst@kernel.org> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202013.4034148-10-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: <20190416202013.4034148-10-arnd@arndb.de> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190419231642.kZoS18juClqdQtg0ASqsJTHH_3q3oNfsNuOP6r_WXTo@z> On Tue, Apr 16, 2019 at 10:19:47PM +0200, Arnd Bergmann wrote: > Each of these drivers has a copy of the same trivial helper function to > convert the pointer argument and then call the native ioctl handler. > > We now have a generic implementation of that, so use it. > > Acked-by: Greg Kroah-Hartman > Reviewed-by: Jarkko Sakkinen > Reviewed-by: Jason Gunthorpe > Signed-off-by: Arnd Bergmann Acked-by: Michael S. Tsirkin > --- > drivers/char/ppdev.c | 12 +--------- > drivers/char/tpm/tpm_vtpm_proxy.c | 12 +--------- > drivers/firewire/core-cdev.c | 12 +--------- > drivers/hid/usbhid/hiddev.c | 11 +-------- > drivers/hwtracing/stm/core.c | 12 +--------- > drivers/misc/mei/main.c | 22 +---------------- > drivers/mtd/ubi/cdev.c | 36 +++------------------------- > drivers/net/tap.c | 12 +--------- > drivers/staging/pi433/pi433_if.c | 12 +--------- > drivers/usb/core/devio.c | 16 +------------ > drivers/vfio/vfio.c | 39 +++---------------------------- > drivers/vhost/net.c | 12 +--------- > drivers/vhost/scsi.c | 12 +--------- > drivers/vhost/test.c | 12 +--------- > drivers/vhost/vsock.c | 12 +--------- > fs/fat/file.c | 13 +---------- > 16 files changed, 20 insertions(+), 237 deletions(-) > > diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c > index 1ae77b41050a..e96c8d9623e0 100644 > --- a/drivers/char/ppdev.c > +++ b/drivers/char/ppdev.c > @@ -674,14 +674,6 @@ static long pp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) > return ret; > } > > -#ifdef CONFIG_COMPAT > -static long pp_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - return pp_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static int pp_open(struct inode *inode, struct file *file) > { > unsigned int minor = iminor(inode); > @@ -790,9 +782,7 @@ static const struct file_operations pp_fops = { > .write = pp_write, > .poll = pp_poll, > .unlocked_ioctl = pp_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = pp_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = pp_open, > .release = pp_release, > }; > diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c > index d74f3de74ae6..fb845f0a430b 100644 > --- a/drivers/char/tpm/tpm_vtpm_proxy.c > +++ b/drivers/char/tpm/tpm_vtpm_proxy.c > @@ -675,20 +675,10 @@ static long vtpmx_fops_ioctl(struct file *f, unsigned int ioctl, > } > } > > -#ifdef CONFIG_COMPAT > -static long vtpmx_fops_compat_ioctl(struct file *f, unsigned int ioctl, > - unsigned long arg) > -{ > - return vtpmx_fops_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations vtpmx_fops = { > .owner = THIS_MODULE, > .unlocked_ioctl = vtpmx_fops_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vtpmx_fops_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .llseek = noop_llseek, > }; > > diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c > index 16a7045736a9..fb934680fdd3 100644 > --- a/drivers/firewire/core-cdev.c > +++ b/drivers/firewire/core-cdev.c > @@ -1659,14 +1659,6 @@ static long fw_device_op_ioctl(struct file *file, > return dispatch_ioctl(file->private_data, cmd, (void __user *)arg); > } > > -#ifdef CONFIG_COMPAT > -static long fw_device_op_compat_ioctl(struct file *file, > - unsigned int cmd, unsigned long arg) > -{ > - return dispatch_ioctl(file->private_data, cmd, compat_ptr(arg)); > -} > -#endif > - > static int fw_device_op_mmap(struct file *file, struct vm_area_struct *vma) > { > struct client *client = file->private_data; > @@ -1808,7 +1800,5 @@ const struct file_operations fw_device_ops = { > .mmap = fw_device_op_mmap, > .release = fw_device_op_release, > .poll = fw_device_op_poll, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = fw_device_op_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > }; > diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c > index a746017fac17..ef4a1cd389d6 100644 > --- a/drivers/hid/usbhid/hiddev.c > +++ b/drivers/hid/usbhid/hiddev.c > @@ -855,13 +855,6 @@ static long hiddev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) > return r; > } > > -#ifdef CONFIG_COMPAT > -static long hiddev_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) > -{ > - return hiddev_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations hiddev_fops = { > .owner = THIS_MODULE, > .read = hiddev_read, > @@ -871,9 +864,7 @@ static const struct file_operations hiddev_fops = { > .release = hiddev_release, > .unlocked_ioctl = hiddev_ioctl, > .fasync = hiddev_fasync, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = hiddev_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .llseek = noop_llseek, > }; > > diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c > index c7ba8acfd4d5..454da259f144 100644 > --- a/drivers/hwtracing/stm/core.c > +++ b/drivers/hwtracing/stm/core.c > @@ -840,23 +840,13 @@ stm_char_ioctl(struct file *file, unsigned int cmd, unsigned long arg) > return err; > } > > -#ifdef CONFIG_COMPAT > -static long > -stm_char_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) > -{ > - return stm_char_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); > -} > -#else > -#define stm_char_compat_ioctl NULL > -#endif > - > static const struct file_operations stm_fops = { > .open = stm_char_open, > .release = stm_char_release, > .write = stm_char_write, > .mmap = stm_char_mmap, > .unlocked_ioctl = stm_char_ioctl, > - .compat_ioctl = stm_char_compat_ioctl, > + .compat_ioctl = compat_ptr_ioctl, > .llseek = no_llseek, > }; > > diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c > index 87281b3695e6..cc6af92cdef0 100644 > --- a/drivers/misc/mei/main.c > +++ b/drivers/misc/mei/main.c > @@ -535,24 +535,6 @@ static long mei_ioctl(struct file *file, unsigned int cmd, unsigned long data) > return rets; > } > > -/** > - * mei_compat_ioctl - the compat IOCTL function > - * > - * @file: pointer to file structure > - * @cmd: ioctl command > - * @data: pointer to mei message structure > - * > - * Return: 0 on success , <0 on error > - */ > -#ifdef CONFIG_COMPAT > -static long mei_compat_ioctl(struct file *file, > - unsigned int cmd, unsigned long data) > -{ > - return mei_ioctl(file, cmd, (unsigned long)compat_ptr(data)); > -} > -#endif > - > - > /** > * mei_poll - the poll function > * > @@ -855,9 +837,7 @@ static const struct file_operations mei_fops = { > .owner = THIS_MODULE, > .read = mei_read, > .unlocked_ioctl = mei_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = mei_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = mei_open, > .release = mei_release, > .write = mei_write, > diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c > index 947a8adbc799..265d34fa3efa 100644 > --- a/drivers/mtd/ubi/cdev.c > +++ b/drivers/mtd/ubi/cdev.c > @@ -1091,36 +1091,6 @@ static long ctrl_cdev_ioctl(struct file *file, unsigned int cmd, > return err; > } > > -#ifdef CONFIG_COMPAT > -static long vol_cdev_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - unsigned long translated_arg = (unsigned long)compat_ptr(arg); > - > - return vol_cdev_ioctl(file, cmd, translated_arg); > -} > - > -static long ubi_cdev_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - unsigned long translated_arg = (unsigned long)compat_ptr(arg); > - > - return ubi_cdev_ioctl(file, cmd, translated_arg); > -} > - > -static long ctrl_cdev_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - unsigned long translated_arg = (unsigned long)compat_ptr(arg); > - > - return ctrl_cdev_ioctl(file, cmd, translated_arg); > -} > -#else > -#define vol_cdev_compat_ioctl NULL > -#define ubi_cdev_compat_ioctl NULL > -#define ctrl_cdev_compat_ioctl NULL > -#endif > - > /* UBI volume character device operations */ > const struct file_operations ubi_vol_cdev_operations = { > .owner = THIS_MODULE, > @@ -1131,7 +1101,7 @@ const struct file_operations ubi_vol_cdev_operations = { > .write = vol_cdev_write, > .fsync = vol_cdev_fsync, > .unlocked_ioctl = vol_cdev_ioctl, > - .compat_ioctl = vol_cdev_compat_ioctl, > + .compat_ioctl = compat_ptr_ioctl, > }; > > /* UBI character device operations */ > @@ -1139,13 +1109,13 @@ const struct file_operations ubi_cdev_operations = { > .owner = THIS_MODULE, > .llseek = no_llseek, > .unlocked_ioctl = ubi_cdev_ioctl, > - .compat_ioctl = ubi_cdev_compat_ioctl, > + .compat_ioctl = compat_ptr_ioctl, > }; > > /* UBI control character device operations */ > const struct file_operations ubi_ctrl_cdev_operations = { > .owner = THIS_MODULE, > .unlocked_ioctl = ctrl_cdev_ioctl, > - .compat_ioctl = ctrl_cdev_compat_ioctl, > + .compat_ioctl = compat_ptr_ioctl, > .llseek = no_llseek, > }; > diff --git a/drivers/net/tap.c b/drivers/net/tap.c > index 2ea9b4976f4a..ebe425e65992 100644 > --- a/drivers/net/tap.c > +++ b/drivers/net/tap.c > @@ -1123,14 +1123,6 @@ static long tap_ioctl(struct file *file, unsigned int cmd, > } > } > > -#ifdef CONFIG_COMPAT > -static long tap_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - return tap_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations tap_fops = { > .owner = THIS_MODULE, > .open = tap_open, > @@ -1140,9 +1132,7 @@ static const struct file_operations tap_fops = { > .poll = tap_poll, > .llseek = no_llseek, > .unlocked_ioctl = tap_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = tap_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > }; > > static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) > diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c > index b2314636dc89..ab7dfc7c2917 100644 > --- a/drivers/staging/pi433/pi433_if.c > +++ b/drivers/staging/pi433/pi433_if.c > @@ -935,16 +935,6 @@ pi433_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > return retval; > } > > -#ifdef CONFIG_COMPAT > -static long > -pi433_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > -{ > - return pi433_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); > -} > -#else > -#define pi433_compat_ioctl NULL > -#endif /* CONFIG_COMPAT */ > - > /*-------------------------------------------------------------------------*/ > > static int pi433_open(struct inode *inode, struct file *filp) > @@ -1101,7 +1091,7 @@ static const struct file_operations pi433_fops = { > .write = pi433_write, > .read = pi433_read, > .unlocked_ioctl = pi433_ioctl, > - .compat_ioctl = pi433_compat_ioctl, > + .compat_ioctl = compat_ptr_ioctl, > .open = pi433_open, > .release = pi433_release, > .llseek = no_llseek, > diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c > index fa783531ee88..d75052b36584 100644 > --- a/drivers/usb/core/devio.c > +++ b/drivers/usb/core/devio.c > @@ -2568,18 +2568,6 @@ static long usbdev_ioctl(struct file *file, unsigned int cmd, > return ret; > } > > -#ifdef CONFIG_COMPAT > -static long usbdev_compat_ioctl(struct file *file, unsigned int cmd, > - unsigned long arg) > -{ > - int ret; > - > - ret = usbdev_do_ioctl(file, cmd, compat_ptr(arg)); > - > - return ret; > -} > -#endif > - > /* No kernel lock - fine */ > static __poll_t usbdev_poll(struct file *file, > struct poll_table_struct *wait) > @@ -2603,9 +2591,7 @@ const struct file_operations usbdev_file_operations = { > .read = usbdev_read, > .poll = usbdev_poll, > .unlocked_ioctl = usbdev_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = usbdev_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .mmap = usbdev_mmap, > .open = usbdev_open, > .release = usbdev_release, > diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c > index a3030cdf3c18..a5efe82584a5 100644 > --- a/drivers/vfio/vfio.c > +++ b/drivers/vfio/vfio.c > @@ -1200,15 +1200,6 @@ static long vfio_fops_unl_ioctl(struct file *filep, > return ret; > } > > -#ifdef CONFIG_COMPAT > -static long vfio_fops_compat_ioctl(struct file *filep, > - unsigned int cmd, unsigned long arg) > -{ > - arg = (unsigned long)compat_ptr(arg); > - return vfio_fops_unl_ioctl(filep, cmd, arg); > -} > -#endif /* CONFIG_COMPAT */ > - > static int vfio_fops_open(struct inode *inode, struct file *filep) > { > struct vfio_container *container; > @@ -1291,9 +1282,7 @@ static const struct file_operations vfio_fops = { > .read = vfio_fops_read, > .write = vfio_fops_write, > .unlocked_ioctl = vfio_fops_unl_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vfio_fops_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .mmap = vfio_fops_mmap, > }; > > @@ -1572,15 +1561,6 @@ static long vfio_group_fops_unl_ioctl(struct file *filep, > return ret; > } > > -#ifdef CONFIG_COMPAT > -static long vfio_group_fops_compat_ioctl(struct file *filep, > - unsigned int cmd, unsigned long arg) > -{ > - arg = (unsigned long)compat_ptr(arg); > - return vfio_group_fops_unl_ioctl(filep, cmd, arg); > -} > -#endif /* CONFIG_COMPAT */ > - > static int vfio_group_fops_open(struct inode *inode, struct file *filep) > { > struct vfio_group *group; > @@ -1636,9 +1616,7 @@ static int vfio_group_fops_release(struct inode *inode, struct file *filep) > static const struct file_operations vfio_group_fops = { > .owner = THIS_MODULE, > .unlocked_ioctl = vfio_group_fops_unl_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vfio_group_fops_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = vfio_group_fops_open, > .release = vfio_group_fops_release, > }; > @@ -1703,24 +1681,13 @@ static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct *vma) > return device->ops->mmap(device->device_data, vma); > } > > -#ifdef CONFIG_COMPAT > -static long vfio_device_fops_compat_ioctl(struct file *filep, > - unsigned int cmd, unsigned long arg) > -{ > - arg = (unsigned long)compat_ptr(arg); > - return vfio_device_fops_unl_ioctl(filep, cmd, arg); > -} > -#endif /* CONFIG_COMPAT */ > - > static const struct file_operations vfio_device_fops = { > .owner = THIS_MODULE, > .release = vfio_device_fops_release, > .read = vfio_device_fops_read, > .write = vfio_device_fops_write, > .unlocked_ioctl = vfio_device_fops_unl_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vfio_device_fops_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .mmap = vfio_device_fops_mmap, > }; > > diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c > index df51a35cf537..1642b3573230 100644 > --- a/drivers/vhost/net.c > +++ b/drivers/vhost/net.c > @@ -1765,14 +1765,6 @@ static long vhost_net_ioctl(struct file *f, unsigned int ioctl, > } > } > > -#ifdef CONFIG_COMPAT > -static long vhost_net_compat_ioctl(struct file *f, unsigned int ioctl, > - unsigned long arg) > -{ > - return vhost_net_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static ssize_t vhost_net_chr_read_iter(struct kiocb *iocb, struct iov_iter *to) > { > struct file *file = iocb->ki_filp; > @@ -1808,9 +1800,7 @@ static const struct file_operations vhost_net_fops = { > .write_iter = vhost_net_chr_write_iter, > .poll = vhost_net_chr_poll, > .unlocked_ioctl = vhost_net_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vhost_net_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = vhost_net_open, > .llseek = noop_llseek, > }; > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index 618fb6461017..f9b14c39d89b 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -1721,21 +1721,11 @@ vhost_scsi_ioctl(struct file *f, > } > } > > -#ifdef CONFIG_COMPAT > -static long vhost_scsi_compat_ioctl(struct file *f, unsigned int ioctl, > - unsigned long arg) > -{ > - return vhost_scsi_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations vhost_scsi_fops = { > .owner = THIS_MODULE, > .release = vhost_scsi_release, > .unlocked_ioctl = vhost_scsi_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vhost_scsi_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = vhost_scsi_open, > .llseek = noop_llseek, > }; > diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c > index 40589850eb33..61d4d98c8f70 100644 > --- a/drivers/vhost/test.c > +++ b/drivers/vhost/test.c > @@ -298,21 +298,11 @@ static long vhost_test_ioctl(struct file *f, unsigned int ioctl, > } > } > > -#ifdef CONFIG_COMPAT > -static long vhost_test_compat_ioctl(struct file *f, unsigned int ioctl, > - unsigned long arg) > -{ > - return vhost_test_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations vhost_test_fops = { > .owner = THIS_MODULE, > .release = vhost_test_release, > .unlocked_ioctl = vhost_test_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vhost_test_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .open = vhost_test_open, > .llseek = noop_llseek, > }; > diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c > index bb5fc0e9fbc2..9a86202678b6 100644 > --- a/drivers/vhost/vsock.c > +++ b/drivers/vhost/vsock.c > @@ -716,23 +716,13 @@ static long vhost_vsock_dev_ioctl(struct file *f, unsigned int ioctl, > } > } > > -#ifdef CONFIG_COMPAT > -static long vhost_vsock_dev_compat_ioctl(struct file *f, unsigned int ioctl, > - unsigned long arg) > -{ > - return vhost_vsock_dev_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static const struct file_operations vhost_vsock_fops = { > .owner = THIS_MODULE, > .open = vhost_vsock_dev_open, > .release = vhost_vsock_dev_release, > .llseek = noop_llseek, > .unlocked_ioctl = vhost_vsock_dev_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = vhost_vsock_dev_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > }; > > static struct miscdevice vhost_vsock_misc = { > diff --git a/fs/fat/file.c b/fs/fat/file.c > index b3bed32946b1..f173d9261115 100644 > --- a/fs/fat/file.c > +++ b/fs/fat/file.c > @@ -171,15 +171,6 @@ long fat_generic_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) > } > } > > -#ifdef CONFIG_COMPAT > -static long fat_generic_compat_ioctl(struct file *filp, unsigned int cmd, > - unsigned long arg) > - > -{ > - return fat_generic_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); > -} > -#endif > - > static int fat_file_release(struct inode *inode, struct file *filp) > { > if ((filp->f_mode & FMODE_WRITE) && > @@ -209,9 +200,7 @@ const struct file_operations fat_file_operations = { > .mmap = generic_file_mmap, > .release = fat_file_release, > .unlocked_ioctl = fat_generic_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = fat_generic_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > .fsync = fat_file_fsync, > .splice_read = generic_file_splice_read, > .splice_write = iter_file_splice_write, > -- > 2.20.0