From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH 14/21] drm/i915/gtt: Make scratch page i915_page_dma compatible Date: Wed, 24 Jun 2015 15:59:35 +0100 Message-ID: <558AC5D7.4080307@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> <87zj46dx7v.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id E86D76E098 for ; Wed, 24 Jun 2015 07:59:37 -0700 (PDT) In-Reply-To: <87zj46dx7v.fsf@gaia.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gNi8xMS8yMDE1IDU6MzAgUE0sIE1pa2EgS3VvcHBhbGEgd3JvdGU6Cj4gTWljaGVsIFRoaWVy cnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4gd3JpdGVzOgo+Cj4+IE9uIDUvMjIvMjAxNSA2 OjA1IFBNLCBNaWthIEt1b3BwYWxhIHdyb3RlOgo+Pj4gTGF5IG91dCBzY3JhdGNoIHBhZ2Ugc3Ry dWN0dXJlIGluIHNpbWlsYXIgbWFubmVyIHRoYW4gb3RoZXIKPj4+IHBhZ2luZyBzdHJ1Y3R1cmVz LiBUaGlzIGFsbG93cyB1cyB0byB1c2UgdGhlIHNhbWUgdG9vbHMgZm9yCj4+PiBzZXR1cCBhbmQg dGVhcmRvd24uCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9w cGFsYUBpbnRlbC5jb20+Cj4+PiAtLS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jIHwgODkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+Pj4g ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCAgOSArKy0tCj4+PiAgICAy IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQo+Pj4KPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+PiBpbmRleCA0ZjlhMDAwLi40M2ZhNTQz IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+PiBAQCAtMzAxLDEx ICszMDEsMTIgQEAgc3RhdGljIGdlbjZfcHRlX3QgaXJpc19wdGVfZW5jb2RlKGRtYV9hZGRyX3Qg YWRkciwKPj4+ICAgICAgICAgICByZXR1cm4gcHRlOwo+Pj4gICAgfQo+Pj4KPj4+IC1zdGF0aWMg aW50IHNldHVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpOTE1X3Bh Z2VfZG1hICpwKQo+Pj4gK3N0YXRpYyBpbnQgX19zZXR1cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3Bh Z2VfZG1hICpwLCBnZnBfdCBmbGFncykKPj4+ICAgIHsKPj4+ICAgICAgICAgICBzdHJ1Y3QgZGV2 aWNlICpkZXZpY2UgPSAmZGV2LT5wZGV2LT5kZXY7Cj4+Pgo+Pj4gLSAgICAgICBwLT5wYWdlID0g YWxsb2NfcGFnZShHRlBfS0VSTkVMKTsKPj4+ICsgICAgICAgcC0+cGFnZSA9IGFsbG9jX3BhZ2Uo ZmxhZ3MpOwo+Pj4gICAgICAgICAgIGlmICghcC0+cGFnZSkKPj4+ICAgICAgICAgICAgICAgICAg IHJldHVybiAtRU5PTUVNOwo+Pj4KPj4+IEBAIC0zMjAsNiArMzIxLDExIEBAIHN0YXRpYyBpbnQg c2V0dXBfcGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9k bWEgKnApCj4+PiAgICAgICAgICAgcmV0dXJuIDA7Cj4+PiAgICB9Cj4+Pgo+Pj4gK3N0YXRpYyBp bnQgc2V0dXBfcGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFn ZV9kbWEgKnApCj4+PiArewo+Pj4gKyAgICAgICByZXR1cm4gX19zZXR1cF9wYWdlX2RtYShkZXYs IHAsIEdGUF9LRVJORUwpOwo+Pj4gK30KPj4+ICsKPj4+ICAgIHN0YXRpYyB2b2lkIGNsZWFudXBf cGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAp Cj4+PiAgICB7Cj4+PiAgICAgICAgICAgaWYgKFdBUk5fT04oIXAtPnBhZ2UpKQo+Pj4gQEAgLTM4 OCw3ICszOTQsOCBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4+PiAgICB7Cj4+PiAgICAgICAgICAgZ2VuOF9wdGVfdCBzY3Jh dGNoX3B0ZTsKPj4+Cj4+PiAtICAgICAgIHNjcmF0Y2hfcHRlID0gZ2VuOF9wdGVfZW5jb2RlKHZt LT5zY3JhdGNoLmFkZHIsIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPj4+ICsgICAgICAgc2NyYXRj aF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BhZ2UpLAo+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSk7 Cj4+Pgo+Pj4gICAgICAgICAgIGZpbGxfcHgodm0tPmRldiwgcHQsIHNjcmF0Y2hfcHRlKTsKPj4+ ICAgIH0KPj4+IEBAIC01MTUsNyArNTIyLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVh cl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4+ICAgICAgICAgICB1bnNp Z25lZCBudW1fZW50cmllcyA9IGxlbmd0aCA+PiBQQUdFX1NISUZUOwo+Pj4gICAgICAgICAgIHVu c2lnbmVkIGxhc3RfcHRlLCBpOwo+Pj4KPj4+IC0gICAgICAgc2NyYXRjaF9wdGUgPSBnZW44X3B0 ZV9lbmNvZGUocHBndHQtPmJhc2Uuc2NyYXRjaC5hZGRyLAo+Pj4gKyAgICAgICBzY3JhdGNoX3B0 ZSA9IGdlbjhfcHRlX2VuY29kZShweF9kbWEocHBndHQtPmJhc2Uuc2NyYXRjaF9wYWdlKSwKPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NBQ0hFX0xMQywg dXNlX3NjcmF0Y2gpOwo+Pj4KPj4+ICAgICAgICAgICB3aGlsZSAobnVtX2VudHJpZXMpIHsKPj4+ IEBAIC0xMDIxLDcgKzEwMjgsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2R1bXBfcHBndHQoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4+PiAgICAgICAgICAg dWludDMyX3QgIHB0ZSwgcGRlLCB0ZW1wOwo+Pj4gICAgICAgICAgIHVpbnQzMl90IHN0YXJ0ID0g cHBndHQtPmJhc2Uuc3RhcnQsIGxlbmd0aCA9IHBwZ3R0LT5iYXNlLnRvdGFsOwo+Pj4KPj4+IC0g ICAgICAgc2NyYXRjaF9wdGUgPSB2bS0+cHRlX2VuY29kZSh2bS0+c2NyYXRjaC5hZGRyLCBJOTE1 X0NBQ0hFX0xMQywgdHJ1ZSwgMCk7Cj4+PiArICAgICAgIHNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9l bmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BhZ2UpLCBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSwgMCk7 Cj4+Pgo+Pj4gICAgICAgICAgIGdlbjZfZm9yX2VhY2hfcGRlKHVudXNlZCwgJnBwZ3R0LT5wZCwg c3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRlKSB7Cj4+PiAgICAgICAgICAgICAgICAgICB1MzIgZXhw ZWN0ZWQ7Cj4+PiBAQCAtMTI1Niw3ICsxMjYzLDggQEAgc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9j bGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4+ICAgICAgICAgICB1 bnNpZ25lZCBmaXJzdF9wdGUgPSBmaXJzdF9lbnRyeSAlIEdFTjZfUFRFUzsKPj4+ICAgICAgICAg ICB1bnNpZ25lZCBsYXN0X3B0ZSwgaTsKPj4+Cj4+PiAtICAgICAgIHNjcmF0Y2hfcHRlID0gdm0t PnB0ZV9lbmNvZGUodm0tPnNjcmF0Y2guYWRkciwgSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwo+ Pj4gKyAgICAgICBzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRj aF9wYWdlKSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NB Q0hFX0xMQywgdHJ1ZSwgMCk7Cj4+Pgo+Pj4gICAgICAgICAgIHdoaWxlIChudW1fZW50cmllcykg ewo+Pj4gICAgICAgICAgICAgICAgICAgbGFzdF9wdGUgPSBmaXJzdF9wdGUgKyBudW1fZW50cmll czsKPj4+IEBAIC0xMzE0LDkgKzEzMjIsMTAgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0aWFsaXpl X3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Pj4gICAgewo+Pj4gICAgICAgICAg IGdlbjZfcHRlX3Qgc2NyYXRjaF9wdGU7Cj4+Pgo+Pj4gLSAgICAgICBXQVJOX09OKHZtLT5zY3Jh dGNoLmFkZHIgPT0gMCk7Cj4+PiArICAgICAgIFdBUk5fT04ocHhfZG1hKHZtLT5zY3JhdGNoX3Bh Z2UpID09IDApOwo+Pj4KPj4+IC0gICAgICAgc2NyYXRjaF9wdGUgPSB2bS0+cHRlX2VuY29kZSh2 bS0+c2NyYXRjaC5hZGRyLCBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSwgMCk7Cj4+PiArICAgICAgIHNj cmF0Y2hfcHRlID0gdm0tPnB0ZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BhZ2UpLAo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVl LCAwKTsKPj4+Cj4+PiAgICAgICAgICAgZmlsbDMyX3B4KHZtLT5kZXYsIHB0LCBzY3JhdGNoX3B0 ZSk7Cj4+PiAgICB9Cj4+PiBAQCAtMTU1MywxMyArMTU2MiwxNCBAQCBzdGF0aWMgaW50IF9faHdf cHBndHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQpCj4+PiAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4+Cj4+PiAgICAgICAgICAgcHBndHQtPmJhc2UuZGV2ID0gZGV2 Owo+Pj4gLSAgICAgICBwcGd0dC0+YmFzZS5zY3JhdGNoID0gZGV2X3ByaXYtPmd0dC5iYXNlLnNj cmF0Y2g7Cj4+PiArICAgICAgIHBwZ3R0LT5iYXNlLnNjcmF0Y2hfcGFnZSA9IGRldl9wcml2LT5n dHQuYmFzZS5zY3JhdGNoX3BhZ2U7Cj4+Pgo+Pj4gICAgICAgICAgIGlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA8IDgpCj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuNl9wcGd0dF9pbml0 KHBwZ3R0KTsKPj4+ICAgICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm4g Z2VuOF9wcGd0dF9pbml0KHBwZ3R0KTsKPj4+ICAgIH0KPj4+ICsKPj4+ICAgIGludCBpOTE1X3Bw Z3R0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBw Z3R0KQo+Pj4gICAgewo+Pj4gICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+PiBAQCAtMTg3NCw3ICsxODg0LDcgQEAgc3RhdGlj IHZvaWQgZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAo+Pj4gICAgICAgICAgICAgICAgICAgIGZpcnN0X2VudHJ5LCBudW1fZW50cmllcywgbWF4X2Vu dHJpZXMpKQo+Pj4gICAgICAgICAgICAgICAgICAgbnVtX2VudHJpZXMgPSBtYXhfZW50cmllczsK Pj4+Cj4+PiAtICAgICAgIHNjcmF0Y2hfcHRlID0gZ2VuOF9wdGVfZW5jb2RlKHZtLT5zY3JhdGNo LmFkZHIsCj4+PiArICAgICAgIHNjcmF0Y2hfcHRlID0gZ2VuOF9wdGVfZW5jb2RlKHB4X2RtYSh2 bS0+c2NyYXRjaF9wYWdlKSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJOTE1X0NBQ0hFX0xMQywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1c2Vfc2NyYXRjaCk7Cj4+PiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9l bnRyaWVzOyBpKyspCj4+PiBAQCAtMTkwMCw3ICsxOTEwLDggQEAgc3RhdGljIHZvaWQgZ2VuNl9n Z3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Pj4gICAgICAg ICAgICAgICAgICAgIGZpcnN0X2VudHJ5LCBudW1fZW50cmllcywgbWF4X2VudHJpZXMpKQo+Pj4g ICAgICAgICAgICAgICAgICAgbnVtX2VudHJpZXMgPSBtYXhfZW50cmllczsKPj4+Cj4+PiAtICAg ICAgIHNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9lbmNvZGUodm0tPnNjcmF0Y2guYWRkciwgSTkxNV9D QUNIRV9MTEMsIHVzZV9zY3JhdGNoLCAwKTsKPj4+ICsgICAgICAgc2NyYXRjaF9wdGUgPSB2bS0+ cHRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcGFnZSksCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSTkxNV9DQUNIRV9MTEMsIHVzZV9zY3JhdGNoLCAwKTsKPj4+ Cj4+PiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9lbnRyaWVzOyBpKyspCj4+PiAgICAg ICAgICAgICAgICAgICBpb3dyaXRlMzIoc2NyYXRjaF9wdGUsICZndHRfYmFzZVtpXSk7Cj4+PiBA QCAtMjE1Nyw0MiArMjE2OCw0MCBAQCB2b2lkIGk5MTVfZ2xvYmFsX2d0dF9jbGVhbnVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+PiAgICAgICAgICAgdm0tPmNsZWFudXAodm0pOwo+Pj4gICAg fQo+Pj4KPj4+IC1zdGF0aWMgaW50IHNldHVwX3NjcmF0Y2hfcGFnZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+Pj4gK3N0YXRpYyBpbnQgYWxsb2Nfc2NyYXRjaF9wYWdlKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQo+Pj4gICAgewo+Pj4gLSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gLSAgICAgICBzdHJ1Y3QgcGFn ZSAqcGFnZTsKPj4+IC0gICAgICAgZG1hX2FkZHJfdCBkbWFfYWRkcjsKPj4+ICsgICAgICAgc3Ry dWN0IGk5MTVfcGFnZV9zY3JhdGNoICpzcDsKPj4+ICsgICAgICAgaW50IHJldDsKPj4+ICsKPj4+ ICsgICAgICAgV0FSTl9PTih2bS0+c2NyYXRjaF9wYWdlKTsKPj4+Cj4+PiAtICAgICAgIHBhZ2Ug PSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BMzIgfCBfX0dGUF9aRVJPKTsKPj4+IC0g ICAgICAgaWYgKHBhZ2UgPT0gTlVMTCkKPj4+ICsgICAgICAgc3AgPSBremFsbG9jKHNpemVvZigq c3ApLCBHRlBfS0VSTkVMKTsKPj4+ICsgICAgICAgaWYgKHNwID09IE5VTEwpCj4+PiAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+IC0gICAgICAgc2V0X3BhZ2VzX3VjKHBhZ2Us IDEpOwo+Pj4KPj4+IC0jaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCj4+PiAtICAgICAgIGRtYV9h ZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgMCwgUEFHRV9TSVpFLAo+Pj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOwo+Pj4g LSAgICAgICBpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKGRldi0+cGRldiwgZG1hX2FkZHIpKSB7 Cj4+PiAtICAgICAgICAgICAgICAgX19mcmVlX3BhZ2UocGFnZSk7Cj4+PiAtICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiArICAgICAgIHJldCA9IF9fc2V0dXBfcGFnZV9kbWEodm0t PmRldiwgcHhfYmFzZShzcCksIEdGUF9ETUEzMiB8IF9fR0ZQX1pFUk8pOwo+Pj4gKyAgICAgICBp ZiAocmV0KSB7Cj4+PiArICAgICAgICAgICAgICAga2ZyZWUoc3ApOwo+Pj4gKyAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4+PiAgICAgICAgICAgfQo+Pj4gLSNlbHNlCj4+PiAtICAgICAgIGRt YV9hZGRyID0gcGFnZV90b19waHlzKHBhZ2UpOwo+Pj4gLSNlbmRpZgo+Pgo+PiBTaG91bGQgd2Ug a2VlcCBhIG5vLWlvbW11IG9wdGlvbj8KPj4gVGhpcyBzZWVtcyB0byBoYXZlIGJlZW4gYWRkZWQg Zm9yIGdlbjYgKGd0dCkuCj4+Cj4KPiBUaGUgZG1hX21hcF9wYWdlIHNob3VsZCBkbyB0aGUgcmln aHQgdGhpbmcgd2l0aCBhbmQKPiB3aXRob3V0IGlvbW11LiBJIHJlYWxseSBkb24ndCB1bmRlcnN0 YW5kIHdoeSB3ZQo+IHdvdWxkIG5lZWQgdGhlIG5vLWlvbW11IG9wdGlvbi4KPgo+IElmIHRoZXJl IGlzIG5vIGlvbW11LCB3ZSBnZXQgbm9tbXVfbWFwX3BhZ2UoKQo+IHdoaWNoIGlzIGVmZmVjdGl2 ZWx5IHBhZ2VfdG9fcGh5cygpLgoKVGhhbmtzIGZvciBjbGVhciB0aGlzIHVwLgoKUmV2aWV3ZWQt Ynk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cgo+Cj4gLU1pa2EK Pgo+Cj4+PiAtICAgICAgIGRldl9wcml2LT5ndHQuYmFzZS5zY3JhdGNoLnBhZ2UgPSBwYWdlOwo+ Pj4gLSAgICAgICBkZXZfcHJpdi0+Z3R0LmJhc2Uuc2NyYXRjaC5hZGRyID0gZG1hX2FkZHI7Cj4+ PiArCj4+PiArICAgICAgIHNldF9wYWdlc191YyhweF9wYWdlKHNwKSwgMSk7Cj4+PiArCj4+PiAr ICAgICAgIHZtLT5zY3JhdGNoX3BhZ2UgPSBzcDsKPj4+Cj4+PiAgICAgICAgICAgcmV0dXJuIDA7 Cj4+PiAgICB9Cj4+Pgo+Pj4gLXN0YXRpYyB2b2lkIHRlYXJkb3duX3NjcmF0Y2hfcGFnZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gK3N0YXRpYyB2b2lkIGZyZWVfc2NyYXRjaF9wYWdlKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+Pj4gICAgewo+Pj4gLSAgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gLSAgICAg ICBzdHJ1Y3QgcGFnZSAqcGFnZSA9IGRldl9wcml2LT5ndHQuYmFzZS5zY3JhdGNoLnBhZ2U7Cj4+ PiArICAgICAgIHN0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRjaCAqc3AgPSB2bS0+c2NyYXRjaF9wYWdl Owo+Pj4KPj4+IC0gICAgICAgc2V0X3BhZ2VzX3diKHBhZ2UsIDEpOwo+Pj4gLSAgICAgICBwY2lf dW5tYXBfcGFnZShkZXYtPnBkZXYsIGRldl9wcml2LT5ndHQuYmFzZS5zY3JhdGNoLmFkZHIsCj4+ PiAtICAgICAgICAgICAgICAgICAgICAgIFBBR0VfU0laRSwgUENJX0RNQV9CSURJUkVDVElPTkFM KTsKPj4+IC0gICAgICAgX19mcmVlX3BhZ2UocGFnZSk7Cj4+PiArICAgICAgIHNldF9wYWdlc193 YihweF9wYWdlKHNwKSwgMSk7Cj4+PiArCj4+PiArICAgICAgIGNsZWFudXBfcHgodm0tPmRldiwg c3ApOwo+Pj4gKyAgICAgICBrZnJlZShzcCk7Cj4+PiArCj4+PiArICAgICAgIHZtLT5zY3JhdGNo X3BhZ2UgPSBOVUxMOwo+Pj4gICAgfQo+Pj4KPj4+ICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2Vu Nl9nZXRfdG90YWxfZ3R0X3NpemUodTE2IHNuYl9nbWNoX2N0bCkKPj4+IEBAIC0yMzAwLDcgKzIz MDksNyBAQCBzdGF0aWMgaW50IGdndHRfcHJvYmVfY29tbW9uKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+ICAgICAgICAgICB9 Cj4+Pgo+Pj4gLSAgICAgICByZXQgPSBzZXR1cF9zY3JhdGNoX3BhZ2UoZGV2KTsKPj4+ICsgICAg ICAgcmV0ID0gYWxsb2Nfc2NyYXRjaF9wYWdlKCZkZXZfcHJpdi0+Z3R0LmJhc2UpOwo+Pj4gICAg ICAgICAgIGlmIChyZXQpIHsKPj4+ICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiU2NyYXRj aCBzZXR1cCBmYWlsZWRcbiIpOwo+Pj4gICAgICAgICAgICAgICAgICAgLyogaW91bm1hcCB3aWxs IGFsc28gZ2V0IGNhbGxlZCBhdCByZW1vdmUsIGJ1dCBtZWggKi8KPj4+IEBAIC0yNDc5LDcgKzI0 ODgsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2dtY2hfcmVtb3ZlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtKQo+Pj4gICAgICAgICAgIHN0cnVjdCBpOTE1X2d0dCAqZ3R0ID0gY29udGFpbmVy X29mKHZtLCBzdHJ1Y3QgaTkxNV9ndHQsIGJhc2UpOwo+Pj4KPj4+ICAgICAgICAgICBpb3VubWFw KGd0dC0+Z3NtKTsKPj4+IC0gICAgICAgdGVhcmRvd25fc2NyYXRjaF9wYWdlKHZtLT5kZXYpOwo+ Pj4gKyAgICAgICBmcmVlX3NjcmF0Y2hfcGFnZSh2bSk7Cj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3Rh dGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+IEBAIC0y NTQzLDEzICsyNTUyLDEzIEBAIGludCBpOTE1X2dlbV9ndHRfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+Pj4gICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmd0dC5iYXNlLmNsZWFudXAg PSBnZW42X2dtY2hfcmVtb3ZlOwo+Pj4gICAgICAgICAgIH0KPj4+Cj4+PiArICAgICAgIGd0dC0+ YmFzZS5kZXYgPSBkZXY7Cj4+PiArCj4+PiAgICAgICAgICAgcmV0ID0gZ3R0LT5ndHRfcHJvYmUo ZGV2LCAmZ3R0LT5iYXNlLnRvdGFsLCAmZ3R0LT5zdG9sZW5fc2l6ZSwKPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZ3R0LT5tYXBwYWJsZV9iYXNlLCAmZ3R0LT5tYXBwYWJsZV9l bmQpOwo+Pj4gICAgICAgICAgIGlmIChyZXQpCj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm4g cmV0Owo+Pj4KPj4+IC0gICAgICAgZ3R0LT5iYXNlLmRldiA9IGRldjsKPj4+IC0KPj4+ICAgICAg ICAgICAvKiBHTUFEUiBpcyB0aGUgUENJIG1taW8gYXBlcnR1cmUgaW50byB0aGUgZ2xvYmFsIEdU VC4gKi8KPj4+ICAgICAgICAgICBEUk1fSU5GTygiTWVtb3J5IHVzYWJsZSBieSBncmFwaGljcyBk ZXZpY2UgPSAlbGx1TVxuIiwKPj4+ICAgICAgICAgICAgICAgICAgICBndHQtPmJhc2UudG90YWwg Pj4gMjApOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPj4+IGluZGV4IDAwNmI4 MzkuLjFmZDQwNDEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPj4+ IEBAIC0yMTcsNiArMjE3LDEwIEBAIHN0cnVjdCBpOTE1X3BhZ2VfZG1hIHsKPj4+ICAgICNkZWZp bmUgcHhfcGFnZShweCkgKHB4X2Jhc2UocHgpLT5wYWdlKQo+Pj4gICAgI2RlZmluZSBweF9kbWEo cHgpIChweF9iYXNlKHB4KS0+ZGFkZHIpCj4+Pgo+Pj4gK3N0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRj aCB7Cj4+PiArICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZG1hIGJhc2U7Cj4+PiArfTsKPj4+ICsK Pj4+ICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgewo+Pj4gICAgICAgICAgIHN0cnVjdCBpOTE1 X3BhZ2VfZG1hIGJhc2U7Cj4+Pgo+Pj4gQEAgLTI0MywxMCArMjQ3LDcgQEAgc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSB7Cj4+PiAgICAgICAgICAgdTY0IHN0YXJ0OyAgICAgICAgICAgICAgLyog U3RhcnQgb2Zmc2V0IGFsd2F5cyAwIGZvciBkcmkyICovCj4+PiAgICAgICAgICAgdTY0IHRvdGFs OyAgICAgICAgICAgICAgLyogc2l6ZSBhZGRyIHNwYWNlIG1hcHMgKGV4LiAyR0IgZm9yIGdndHQp ICovCj4+Pgo+Pj4gLSAgICAgICBzdHJ1Y3Qgewo+Pj4gLSAgICAgICAgICAgICAgIGRtYV9hZGRy X3QgYWRkcjsKPj4+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgcGFnZSAqcGFnZTsKPj4+IC0gICAg ICAgfSBzY3JhdGNoOwo+Pj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3NjcmF0Y2ggKnNjcmF0 Y2hfcGFnZTsKPj4+Cj4+PiAgICAgICAgICAgLyoqCj4+PiAgICAgICAgICAgICogTGlzdCBvZiBv YmplY3RzIGN1cnJlbnRseSBpbnZvbHZlZCBpbiByZW5kZXJpbmcuCj4+PiAtLQo+Pj4gMS45LjEK Pj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ Pj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+Pj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo+Pj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK