From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 14/21] drm/i915/gtt: Make scratch page i915_page_dma compatible Date: Thu, 11 Jun 2015 19:30:12 +0300 Message-ID: <87zj46dx7v.fsf@gaia.fi.intel.com> References: <1432314314-23530-1-git-send-email-mika.kuoppala@intel.com> <1432314314-23530-15-git-send-email-mika.kuoppala@intel.com> <556F04D0.9030402@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 52E186E01C for ; Thu, 11 Jun 2015 09:30:18 -0700 (PDT) In-Reply-To: <556F04D0.9030402@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org TWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4gd3JpdGVzOgoKPiBPbiA1 LzIyLzIwMTUgNjowNSBQTSwgTWlrYSBLdW9wcGFsYSB3cm90ZToKPj4gTGF5IG91dCBzY3JhdGNo IHBhZ2Ugc3RydWN0dXJlIGluIHNpbWlsYXIgbWFubmVyIHRoYW4gb3RoZXIKPj4gcGFnaW5nIHN0 cnVjdHVyZXMuIFRoaXMgYWxsb3dzIHVzIHRvIHVzZSB0aGUgc2FtZSB0b29scyBmb3IKPj4gc2V0 dXAgYW5kIHRlYXJkb3duLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWth Lmt1b3BwYWxhQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMgfCA4OSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCAgOSArKy0tCj4+ICAgMiBm aWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPj4KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPj4gaW5kZXggNGY5YTAwMC4uNDNmYTU0MyAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPj4gQEAgLTMwMSwxMSArMzAxLDEy IEBAIHN0YXRpYyBnZW42X3B0ZV90IGlyaXNfcHRlX2VuY29kZShkbWFfYWRkcl90IGFkZHIsCj4+ ICAgICAgICAgIHJldHVybiBwdGU7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIGludCBzZXR1cF9wYWdl X2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCkKPj4g K3N0YXRpYyBpbnQgX19zZXR1cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsIGdmcF90 IGZsYWdzKQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+ cGRldi0+ZGV2Owo+Pgo+PiAtICAgICAgIHAtPnBhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwp Owo+PiArICAgICAgIHAtPnBhZ2UgPSBhbGxvY19wYWdlKGZsYWdzKTsKPj4gICAgICAgICAgaWYg KCFwLT5wYWdlKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pgo+PiBAQCAt MzIwLDYgKzMyMSwxMSBAQCBzdGF0aWMgaW50IHNldHVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwKQo+PiAgICAgICAgICByZXR1cm4gMDsK Pj4gICB9Cj4+Cj4+ICtzdGF0aWMgaW50IHNldHVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwKQo+PiArewo+PiArICAgICAgIHJldHVybiBf X3NldHVwX3BhZ2VfZG1hKGRldiwgcCwgR0ZQX0tFUk5FTCk7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0 aWMgdm9pZCBjbGVhbnVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBp OTE1X3BhZ2VfZG1hICpwKQo+PiAgIHsKPj4gICAgICAgICAgaWYgKFdBUk5fT04oIXAtPnBhZ2Up KQo+PiBAQCAtMzg4LDcgKzM5NCw4IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlhbGl6ZV9wdChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4gICB7Cj4+ICAgICAgICAgIGdlbjhfcHRl X3Qgc2NyYXRjaF9wdGU7Cj4+Cj4+IC0gICAgICAgc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNv ZGUodm0tPnNjcmF0Y2guYWRkciwgSTkxNV9DQUNIRV9MTEMsIHRydWUpOwo+PiArICAgICAgIHNj cmF0Y2hfcHRlID0gZ2VuOF9wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wYWdlKSwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NBQ0hFX0xMQywgdHJ1 ZSk7Cj4+Cj4+ICAgICAgICAgIGZpbGxfcHgodm0tPmRldiwgcHQsIHNjcmF0Y2hfcHRlKTsKPj4g ICB9Cj4+IEBAIC01MTUsNyArNTIyLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9y YW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4gICAgICAgICAgdW5zaWduZWQg bnVtX2VudHJpZXMgPSBsZW5ndGggPj4gUEFHRV9TSElGVDsKPj4gICAgICAgICAgdW5zaWduZWQg bGFzdF9wdGUsIGk7Cj4+Cj4+IC0gICAgICAgc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUo cHBndHQtPmJhc2Uuc2NyYXRjaC5hZGRyLAo+PiArICAgICAgIHNjcmF0Y2hfcHRlID0gZ2VuOF9w dGVfZW5jb2RlKHB4X2RtYShwcGd0dC0+YmFzZS5zY3JhdGNoX3BhZ2UpLAo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NBQ0hFX0xMQywgdXNlX3NjcmF0Y2gp Owo+Pgo+PiAgICAgICAgICB3aGlsZSAobnVtX2VudHJpZXMpIHsKPj4gQEAgLTEwMjEsNyArMTAy OCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZHVtcF9wcGd0dChzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPj4gICAgICAgICAgdWludDMyX3QgIHB0ZSwgcGRl LCB0ZW1wOwo+PiAgICAgICAgICB1aW50MzJfdCBzdGFydCA9IHBwZ3R0LT5iYXNlLnN0YXJ0LCBs ZW5ndGggPSBwcGd0dC0+YmFzZS50b3RhbDsKPj4KPj4gLSAgICAgICBzY3JhdGNoX3B0ZSA9IHZt LT5wdGVfZW5jb2RlKHZtLT5zY3JhdGNoLmFkZHIsIEk5MTVfQ0FDSEVfTExDLCB0cnVlLCAwKTsK Pj4gKyAgICAgICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRj aF9wYWdlKSwgSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwo+Pgo+PiAgICAgICAgICBnZW42X2Zv cl9lYWNoX3BkZSh1bnVzZWQsICZwcGd0dC0+cGQsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIHBkZSkg ewo+PiAgICAgICAgICAgICAgICAgIHUzMiBleHBlY3RlZDsKPj4gQEAgLTEyNTYsNyArMTI2Myw4 IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCj4+ICAgICAgICAgIHVuc2lnbmVkIGZpcnN0X3B0ZSA9IGZpcnN0X2VudHJ5 ICUgR0VONl9QVEVTOwo+PiAgICAgICAgICB1bnNpZ25lZCBsYXN0X3B0ZSwgaTsKPj4KPj4gLSAg ICAgICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHZtLT5zY3JhdGNoLmFkZHIsIEk5MTVf Q0FDSEVfTExDLCB0cnVlLCAwKTsKPj4gKyAgICAgICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5j b2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wYWdlKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlLCAwKTsKPj4KPj4gICAgICAgICAgd2hp bGUgKG51bV9lbnRyaWVzKSB7Cj4+ICAgICAgICAgICAgICAgICAgbGFzdF9wdGUgPSBmaXJzdF9w dGUgKyBudW1fZW50cmllczsKPj4gQEAgLTEzMTQsOSArMTMyMiwxMCBAQCBzdGF0aWMgdm9pZCBn ZW42X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4+ICAgewo+ PiAgICAgICAgICBnZW42X3B0ZV90IHNjcmF0Y2hfcHRlOwo+Pgo+PiAtICAgICAgIFdBUk5fT04o dm0tPnNjcmF0Y2guYWRkciA9PSAwKTsKPj4gKyAgICAgICBXQVJOX09OKHB4X2RtYSh2bS0+c2Ny YXRjaF9wYWdlKSA9PSAwKTsKPj4KPj4gLSAgICAgICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5j b2RlKHZtLT5zY3JhdGNoLmFkZHIsIEk5MTVfQ0FDSEVfTExDLCB0cnVlLCAwKTsKPj4gKyAgICAg ICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wYWdlKSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEk5MTVfQ0FDSEVfTExDLCB0 cnVlLCAwKTsKPj4KPj4gICAgICAgICAgZmlsbDMyX3B4KHZtLT5kZXYsIHB0LCBzY3JhdGNoX3B0 ZSk7Cj4+ICAgfQo+PiBAQCAtMTU1MywxMyArMTU2MiwxNCBAQCBzdGF0aWMgaW50IF9faHdfcHBn dHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQpCj4+ICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4+Cj4+ICAgICAgICAgIHBwZ3R0LT5iYXNlLmRldiA9IGRldjsKPj4gLSAg ICAgICBwcGd0dC0+YmFzZS5zY3JhdGNoID0gZGV2X3ByaXYtPmd0dC5iYXNlLnNjcmF0Y2g7Cj4+ ICsgICAgICAgcHBndHQtPmJhc2Uuc2NyYXRjaF9wYWdlID0gZGV2X3ByaXYtPmd0dC5iYXNlLnNj cmF0Y2hfcGFnZTsKPj4KPj4gICAgICAgICAgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOCkK Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuNl9wcGd0dF9pbml0KHBwZ3R0KTsKPj4gICAg ICAgICAgZWxzZQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiBnZW44X3BwZ3R0X2luaXQocHBn dHQpOwo+PiAgIH0KPj4gKwo+PiAgIGludCBpOTE1X3BwZ3R0X2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+PiAgIHsKPj4gICAgICAgICAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4g QEAgLTE4NzQsNyArMTg4NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ2d0dF9jbGVhcl9yYW5nZShz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4gICAgICAgICAgICAgICAgICAgZmlyc3Rf ZW50cnksIG51bV9lbnRyaWVzLCBtYXhfZW50cmllcykpCj4+ICAgICAgICAgICAgICAgICAgbnVt X2VudHJpZXMgPSBtYXhfZW50cmllczsKPj4KPj4gLSAgICAgICBzY3JhdGNoX3B0ZSA9IGdlbjhf cHRlX2VuY29kZSh2bS0+c2NyYXRjaC5hZGRyLAo+PiArICAgICAgIHNjcmF0Y2hfcHRlID0gZ2Vu OF9wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wYWdlKSwKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSTkxNV9DQUNIRV9MTEMsCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9zY3JhdGNoKTsKPj4gICAgICAgICAgZm9yIChp ID0gMDsgaSA8IG51bV9lbnRyaWVzOyBpKyspCj4+IEBAIC0xOTAwLDcgKzE5MTAsOCBAQCBzdGF0 aWMgdm9pZCBnZW42X2dndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCj4+ICAgICAgICAgICAgICAgICAgIGZpcnN0X2VudHJ5LCBudW1fZW50cmllcywgbWF4X2Vu dHJpZXMpKQo+PiAgICAgICAgICAgICAgICAgIG51bV9lbnRyaWVzID0gbWF4X2VudHJpZXM7Cj4+ Cj4+IC0gICAgICAgc2NyYXRjaF9wdGUgPSB2bS0+cHRlX2VuY29kZSh2bS0+c2NyYXRjaC5hZGRy LCBJOTE1X0NBQ0hFX0xMQywgdXNlX3NjcmF0Y2gsIDApOwo+PiArICAgICAgIHNjcmF0Y2hfcHRl ID0gdm0tPnB0ZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BhZ2UpLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSTkxNV9DQUNIRV9MTEMsIHVzZV9zY3JhdGNoLCAw KTsKPj4KPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9lbnRyaWVzOyBpKyspCj4+ICAg ICAgICAgICAgICAgICAgaW93cml0ZTMyKHNjcmF0Y2hfcHRlLCAmZ3R0X2Jhc2VbaV0pOwo+PiBA QCAtMjE1Nyw0MiArMjE2OCw0MCBAQCB2b2lkIGk5MTVfZ2xvYmFsX2d0dF9jbGVhbnVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgICAgICAgIHZtLT5jbGVhbnVwKHZtKTsKPj4gICB9Cj4+ Cj4+IC1zdGF0aWMgaW50IHNldHVwX3NjcmF0Y2hfcGFnZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+PiArc3RhdGljIGludCBhbGxvY19zY3JhdGNoX3BhZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0pCj4+ICAgewo+PiAtICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+IC0gICAgICAgc3RydWN0IHBhZ2UgKnBhZ2U7Cj4+ IC0gICAgICAgZG1hX2FkZHJfdCBkbWFfYWRkcjsKPj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wYWdl X3NjcmF0Y2ggKnNwOwo+PiArICAgICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICAgICBXQVJOX09O KHZtLT5zY3JhdGNoX3BhZ2UpOwo+Pgo+PiAtICAgICAgIHBhZ2UgPSBhbGxvY19wYWdlKEdGUF9L RVJORUwgfCBHRlBfRE1BMzIgfCBfX0dGUF9aRVJPKTsKPj4gLSAgICAgICBpZiAocGFnZSA9PSBO VUxMKQo+PiArICAgICAgIHNwID0ga3phbGxvYyhzaXplb2YoKnNwKSwgR0ZQX0tFUk5FTCk7Cj4+ ICsgICAgICAgaWYgKHNwID09IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07Cj4+IC0gICAgICAgc2V0X3BhZ2VzX3VjKHBhZ2UsIDEpOwo+Pgo+PiAtI2lmZGVmIENPTkZJ R19JTlRFTF9JT01NVQo+PiAtICAgICAgIGRtYV9hZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRl diwgcGFnZSwgMCwgUEFHRV9TSVpFLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBDSV9ETUFfQklESVJFQ1RJT05BTCk7Cj4+IC0gICAgICAgaWYgKHBjaV9kbWFfbWFwcGluZ19l cnJvcihkZXYtPnBkZXYsIGRtYV9hZGRyKSkgewo+PiAtICAgICAgICAgICAgICAgX19mcmVlX3Bh Z2UocGFnZSk7Cj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKyAgICAgICBy ZXQgPSBfX3NldHVwX3BhZ2VfZG1hKHZtLT5kZXYsIHB4X2Jhc2Uoc3ApLCBHRlBfRE1BMzIgfCBf X0dGUF9aRVJPKTsKPj4gKyAgICAgICBpZiAocmV0KSB7Cj4+ICsgICAgICAgICAgICAgICBrZnJl ZShzcCk7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiAgICAgICAgICB9Cj4+IC0j ZWxzZQo+PiAtICAgICAgIGRtYV9hZGRyID0gcGFnZV90b19waHlzKHBhZ2UpOwo+PiAtI2VuZGlm Cj4KPiBTaG91bGQgd2Uga2VlcCBhIG5vLWlvbW11IG9wdGlvbj8KPiBUaGlzIHNlZW1zIHRvIGhh dmUgYmVlbiBhZGRlZCBmb3IgZ2VuNiAoZ3R0KS4KPgoKVGhlIGRtYV9tYXBfcGFnZSBzaG91bGQg ZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGggYW5kCndpdGhvdXQgaW9tbXUuIEkgcmVhbGx5IGRvbid0 IHVuZGVyc3RhbmQgd2h5IHdlCndvdWxkIG5lZWQgdGhlIG5vLWlvbW11IG9wdGlvbi4KCklmIHRo ZXJlIGlzIG5vIGlvbW11LCB3ZSBnZXQgbm9tbXVfbWFwX3BhZ2UoKQp3aGljaCBpcyBlZmZlY3Rp dmVseSBwYWdlX3RvX3BoeXMoKS4KCi1NaWthCgoKPj4gLSAgICAgICBkZXZfcHJpdi0+Z3R0LmJh c2Uuc2NyYXRjaC5wYWdlID0gcGFnZTsKPj4gLSAgICAgICBkZXZfcHJpdi0+Z3R0LmJhc2Uuc2Ny YXRjaC5hZGRyID0gZG1hX2FkZHI7Cj4+ICsKPj4gKyAgICAgICBzZXRfcGFnZXNfdWMocHhfcGFn ZShzcCksIDEpOwo+PiArCj4+ICsgICAgICAgdm0tPnNjcmF0Y2hfcGFnZSA9IHNwOwo+Pgo+PiAg ICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCB0ZWFyZG93bl9zY3Jh dGNoX3BhZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gK3N0YXRpYyB2b2lkIGZyZWVfc2Ny YXRjaF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+PiAgIHsKPj4gLSAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ PiAtICAgICAgIHN0cnVjdCBwYWdlICpwYWdlID0gZGV2X3ByaXYtPmd0dC5iYXNlLnNjcmF0Y2gu cGFnZTsKPj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggKnNwID0gdm0tPnNjcmF0 Y2hfcGFnZTsKPj4KPj4gLSAgICAgICBzZXRfcGFnZXNfd2IocGFnZSwgMSk7Cj4+IC0gICAgICAg cGNpX3VubWFwX3BhZ2UoZGV2LT5wZGV2LCBkZXZfcHJpdi0+Z3R0LmJhc2Uuc2NyYXRjaC5hZGRy LAo+PiAtICAgICAgICAgICAgICAgICAgICAgIFBBR0VfU0laRSwgUENJX0RNQV9CSURJUkVDVElP TkFMKTsKPj4gLSAgICAgICBfX2ZyZWVfcGFnZShwYWdlKTsKPj4gKyAgICAgICBzZXRfcGFnZXNf d2IocHhfcGFnZShzcCksIDEpOwo+PiArCj4+ICsgICAgICAgY2xlYW51cF9weCh2bS0+ZGV2LCBz cCk7Cj4+ICsgICAgICAga2ZyZWUoc3ApOwo+PiArCj4+ICsgICAgICAgdm0tPnNjcmF0Y2hfcGFn ZSA9IE5VTEw7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2VuNl9nZXRfdG90 YWxfZ3R0X3NpemUodTE2IHNuYl9nbWNoX2N0bCkKPj4gQEAgLTIzMDAsNyArMjMwOSw3IEBAIHN0 YXRpYyBpbnQgZ2d0dF9wcm9iZV9jb21tb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAg ICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gICAgICAgICAgfQo+Pgo+PiAtICAgICAg IHJldCA9IHNldHVwX3NjcmF0Y2hfcGFnZShkZXYpOwo+PiArICAgICAgIHJldCA9IGFsbG9jX3Nj cmF0Y2hfcGFnZSgmZGV2X3ByaXYtPmd0dC5iYXNlKTsKPj4gICAgICAgICAgaWYgKHJldCkgewo+ PiAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiU2NyYXRjaCBzZXR1cCBmYWlsZWRcbiIpOwo+ PiAgICAgICAgICAgICAgICAgIC8qIGlvdW5tYXAgd2lsbCBhbHNvIGdldCBjYWxsZWQgYXQgcmVt b3ZlLCBidXQgbWVoICovCj4+IEBAIC0yNDc5LDcgKzI0ODgsNyBAQCBzdGF0aWMgdm9pZCBnZW42 X2dtY2hfcmVtb3ZlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+PiAgICAgICAgICBz dHJ1Y3QgaTkxNV9ndHQgKmd0dCA9IGNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfZ3R0LCBi YXNlKTsKPj4KPj4gICAgICAgICAgaW91bm1hcChndHQtPmdzbSk7Cj4+IC0gICAgICAgdGVhcmRv d25fc2NyYXRjaF9wYWdlKHZtLT5kZXYpOwo+PiArICAgICAgIGZyZWVfc2NyYXRjaF9wYWdlKHZt KTsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPj4gQEAgLTI1NDMsMTMgKzI1NTIsMTMgQEAgaW50IGk5MTVfZ2VtX2d0dF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgICAgICAgICAgICAgICAgZGV2X3ByaXYt Pmd0dC5iYXNlLmNsZWFudXAgPSBnZW42X2dtY2hfcmVtb3ZlOwo+PiAgICAgICAgICB9Cj4+Cj4+ ICsgICAgICAgZ3R0LT5iYXNlLmRldiA9IGRldjsKPj4gKwo+PiAgICAgICAgICByZXQgPSBndHQt Pmd0dF9wcm9iZShkZXYsICZndHQtPmJhc2UudG90YWwsICZndHQtPnN0b2xlbl9zaXplLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3R0LT5tYXBwYWJsZV9iYXNlLCAmZ3R0LT5t YXBwYWJsZV9lbmQpOwo+PiAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4+Cj4+IC0gICAgICAgZ3R0LT5iYXNlLmRldiA9IGRldjsKPj4gLQo+PiAgICAg ICAgICAvKiBHTUFEUiBpcyB0aGUgUENJIG1taW8gYXBlcnR1cmUgaW50byB0aGUgZ2xvYmFsIEdU VC4gKi8KPj4gICAgICAgICAgRFJNX0lORk8oIk1lbW9yeSB1c2FibGUgYnkgZ3JhcGhpY3MgZGV2 aWNlID0gJWxsdU1cbiIsCj4+ICAgICAgICAgICAgICAgICAgIGd0dC0+YmFzZS50b3RhbCA+PiAy MCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4+IGluZGV4IDAwNmI4MzkuLjFm ZDQwNDEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4+IEBAIC0yMTcs NiArMjE3LDEwIEBAIHN0cnVjdCBpOTE1X3BhZ2VfZG1hIHsKPj4gICAjZGVmaW5lIHB4X3BhZ2Uo cHgpIChweF9iYXNlKHB4KS0+cGFnZSkKPj4gICAjZGVmaW5lIHB4X2RtYShweCkgKHB4X2Jhc2Uo cHgpLT5kYWRkcikKPj4KPj4gK3N0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRjaCB7Cj4+ICsgICAgICAg c3RydWN0IGk5MTVfcGFnZV9kbWEgYmFzZTsKPj4gK307Cj4+ICsKPj4gICBzdHJ1Y3QgaTkxNV9w YWdlX3RhYmxlIHsKPj4gICAgICAgICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgYmFzZTsKPj4KPj4g QEAgLTI0MywxMCArMjQ3LDcgQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB7Cj4+ICAgICAg ICAgIHU2NCBzdGFydDsgICAgICAgICAgICAgIC8qIFN0YXJ0IG9mZnNldCBhbHdheXMgMCBmb3Ig ZHJpMiAqLwo+PiAgICAgICAgICB1NjQgdG90YWw7ICAgICAgICAgICAgICAvKiBzaXplIGFkZHIg c3BhY2UgbWFwcyAoZXguIDJHQiBmb3IgZ2d0dCkgKi8KPj4KPj4gLSAgICAgICBzdHJ1Y3Qgewo+ PiAtICAgICAgICAgICAgICAgZG1hX2FkZHJfdCBhZGRyOwo+PiAtICAgICAgICAgICAgICAgc3Ry dWN0IHBhZ2UgKnBhZ2U7Cj4+IC0gICAgICAgfSBzY3JhdGNoOwo+PiArICAgICAgIHN0cnVjdCBp OTE1X3BhZ2Vfc2NyYXRjaCAqc2NyYXRjaF9wYWdlOwo+Pgo+PiAgICAgICAgICAvKioKPj4gICAg ICAgICAgICogTGlzdCBvZiBvYmplY3RzIGN1cnJlbnRseSBpbnZvbHZlZCBpbiByZW5kZXJpbmcu Cj4+IC0tCj4+IDEuOS4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==