From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 01/23] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt Date: Wed, 24 Jul 2019 09:56:34 +0100 Message-ID: <47e0d7f4-71ac-ebb4-41b6-76a71fe59156@linux.intel.com> References: <20190723183842.20372-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 885A96E4B0 for ; Wed, 24 Jul 2019 08:56:36 +0000 (UTC) In-Reply-To: <20190723183842.20372-1-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIzLzA3LzIwMTkgMTk6MzgsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUaGUgYWxpYXNpbmdf cHBndHQgcHJvdmlkZXMgYSBQSU5fVVNFUiBhbGlhcyBmb3IgdGhlIGdsb2JhbCBndHQsIHNvIG1v dmUKPiBpdCB1bmRlciB0aGUgaTkxNV9nZ3R0IHRvIHNpbXBsaWZ5IGxhdGVyIHRyYW5zZm9ybWF0 aW9ucyB0byBlbmFibGUKPiBpbnRlbF9jb250ZXh0LnZtLgoKQ2FuIHlvdSBwaW4gcG9pbnQgd2hh dCBleGFjdGx5IGl0IG1ha2VzIGVhc2llciBpbiB0aGUgZm9sbG93aW5nIHBhdGNoPyAKSnVzdCB0 aGUgX19jb250ZXh0X3Bpbl9wcGd0dCBjaGFuZ2U/IEkgaGF2ZSByZXNlcnZhdGlvbnMgYWJvdXQg Z2d0dCAKZW1iZWRkaW5nIGFsaWFzaW5nIHBwZ3R0LiBCdXQgSSBndWVzcyBpdCBpcyBoYW5keSBm b3Igc29tZSB1c2FnZXMuCgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuYyAgIHwgIDcgKy0KPiAgIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5 MTVfZ2VtX2NvbnRleHQuYyB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yaW5nYnVmZmVyLmMgICAgfCA2OSArKysrKysrKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMyAtCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgICAgfCAzNiArKysrKy0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAgICAgICAgfCAgMyArCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICAg NyBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBmZmI1 OWQ5NmQ0ZDguLjBmNmIwNjc4ZjU0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBAIC00NTksOCArNDU5LDcgQEAgX19jcmVhdGVfY29udGV4 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAlpOTE1X2dlbV9jb250ZXh0X3Nl dF9yZWNvdmVyYWJsZShjdHgpOwo+ICAgCj4gICAJY3R4LT5yaW5nX3NpemUgPSA0ICogUEFHRV9T SVpFOwo+IC0JY3R4LT5kZXNjX3RlbXBsYXRlID0KPiAtCQlkZWZhdWx0X2Rlc2NfdGVtcGxhdGUo aTkxNSwgJmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0LT52bSk7Cj4gKwljdHgtPmRlc2NfdGVtcGxh dGUgPSBkZWZhdWx0X2Rlc2NfdGVtcGxhdGUoaTkxNSwgTlVMTCk7Cj4gICAKPiAgIAlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShjdHgtPmhhbmdfdGltZXN0YW1wKTsgaSsrKQo+ICAgCQljdHgt PmhhbmdfdGltZXN0YW1wW2ldID0gamlmZmllcyAtIENPTlRFWFRfRkFTVF9IQU5HX0pJRkZJRVM7 Cj4gQEAgLTIyNTgsOCArMjI1Nyw4IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCWFyZ3MtPnNpemUg PSAwOwo+ICAgCQlpZiAoY3R4LT52bSkKPiAgIAkJCWFyZ3MtPnZhbHVlID0gY3R4LT52bS0+dG90 YWw7Cj4gLQkJZWxzZSBpZiAodG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dCkKPiAtCQkJ YXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0LT52bS50b3RhbDsK PiArCQllbHNlIGlmICh0b19pOTE1KGRldiktPmdndHQuYWxpYXMpCj4gKwkJCWFyZ3MtPnZhbHVl ID0gdG9faTkxNShkZXYpLT5nZ3R0LmFsaWFzLT52bS50b3RhbDsKPiAgIAkJZWxzZQo+ICAgCQkJ YXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmdndHQudm0udG90YWw7Cj4gICAJCWJyZWFrOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29udGV4dC5jCj4gaW5kZXggZGI3ODU2ZjBmMzFlLi5iYmQxN2Q0YjhmZmQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRl eHQuYwo+IEBAIC0xMTkwLDcgKzExOTAsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHko dm9pZCAqYXJnKQo+ICAgCQlnb3RvIG91dF91bmxvY2s7Cj4gICAJfQo+ICAgCj4gLQl2bSA9IGN0 eC0+dm0gPzogJmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0LT52bTsKPiArCXZtID0gY3R4LT52bSA/ OiAmaTkxNS0+Z2d0dC5hbGlhcy0+dm07Cj4gICAJaWYgKCF2bSB8fCAhdm0tPmhhc19yZWFkX29u bHkpIHsKPiAgIAkJZXJyID0gMDsKPiAgIAkJZ290byBvdXRfdW5sb2NrOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCAxZGUxOWRhYzRhMTQuLmIw NTZmMjVjNjZmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9y aW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBAQCAtMTM5MiwzMCArMTM5Miw0MSBAQCBzdGF0aWMgdm9pZCByaW5nX2NvbnRleHRf ZGVzdHJveShzdHJ1Y3Qga3JlZiAqcmVmKQo+ICAgCWludGVsX2NvbnRleHRfZnJlZShjZSk7Cj4g ICB9Cj4gICAKPiAtc3RhdGljIGludCBfX2NvbnRleHRfcGluX3BwZ3R0KHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgpCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bV9h bGlhcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3sKPiArCXN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtOwo+ICsKPiArCXZtID0gY2UtPmdlbV9jb250ZXh0LT52bTsKPiArCWlmICgh dm0pCj4gKwkJdm0gPSAmY2UtPmVuZ2luZS0+Z3QtPmdndHQtPmFsaWFzLT52bTsKPiArCj4gKwly ZXR1cm4gdm07Cgp2bV9vcl9hbGlhcz8gU3RpbGwgbm90IGdvb2QuLiBnZXRfdm0gbWlnaHQgcGFz cyBzaW5jZSBpdCBpcyBsb2NhbD8KCj4gK30KPiArCj4gK3N0YXRpYyBpbnQgX19jb250ZXh0X3Bp bl9wcGd0dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gICB7Cj4gICAJc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm07Cj4gICAJaW50IGVyciA9IDA7Cj4gICAKPiAtCXZtID0gY3R4LT52 bSA/OiAmY3R4LT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07Cj4gKwl2bSA9IHZtX2FsaWFz KGNlKTsKPiAgIAlpZiAodm0pCgpDYW4ndCByZXR1cm4gTlVMTCBpdCBzZWVtcy4gKFNhbWUgYmVs b3cuKQoKPiAgIAkJZXJyID0gZ2VuNl9wcGd0dF9waW4oaTkxNV92bV90b19wcGd0dCgodm0pKSk7 Cj4gICAKPiAgIAlyZXR1cm4gZXJyOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIF9fY29udGV4 dF91bnBpbl9wcGd0dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICtzdGF0aWMgdm9p ZCBfX2NvbnRleHRfdW5waW5fcHBndHQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgewo+ ICAgCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwo+ICAgCj4gLQl2bSA9IGN0eC0+dm0g PzogJmN0eC0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOwo+ICsJdm0gPSB2bV9hbGlhcyhj ZSk7Cj4gICAJaWYgKHZtKQo+ICAgCQlnZW42X3BwZ3R0X3VucGluKGk5MTVfdm1fdG9fcHBndHQo dm0pKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X3VucGluKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSkKPiAgIHsKPiAtCV9fY29udGV4dF91bnBpbl9wcGd0dChjZS0+ Z2VtX2NvbnRleHQpOwo+ICsJX19jb250ZXh0X3VucGluX3BwZ3R0KGNlKTsKPiAgIH0KPiAgIAo+ ICAgc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCj4gQEAgLTE1MDksNyArMTUyMCw3IEBAIHN0YXRp YyBpbnQgcmluZ19jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gICAJaWYg KGVycikKPiAgIAkJcmV0dXJuIGVycjsKPiAgIAo+IC0JZXJyID0gX19jb250ZXh0X3Bpbl9wcGd0 dChjZS0+Z2VtX2NvbnRleHQpOwo+ICsJZXJyID0gX19jb250ZXh0X3Bpbl9wcGd0dChjZSk7Cj4g ICAJaWYgKGVycikKPiAgIAkJZ290byBlcnJfYWN0aXZlOwo+ICAgCj4gQEAgLTE3MDEsNyArMTcx Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxLCB1MzIgZmxhZ3MpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGlu dCByZW1hcF9sMyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgaW50IHNsaWNlKQo+ICtzdGF0aWMg aW50IHJlbWFwX2wzX3NsaWNlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQgc2xpY2UpCj4g ICB7Cj4gICAJdTMyICpjcywgKnJlbWFwX2luZm8gPSBycS0+aTkxNS0+bDNfcGFyaXR5LnJlbWFw X2luZm9bc2xpY2VdOwo+ICAgCWludCBpOwo+IEBAIC0xNzI5LDE1ICsxNzQwLDM0IEBAIHN0YXRp YyBpbnQgcmVtYXBfbDMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbGljZSkKPiAgIAly ZXR1cm4gMDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gcnEtPmdl bV9jb250ZXh0Owo+ICsJaW50IGksIGVycjsKPiArCj4gKwlpZiAoIWN0eC0+cmVtYXBfc2xpY2Up Cj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IE1BWF9MM19TTElDRVM7IGkr KykgewoKZXJyIGRlY2xhcmF0aW9uIGNvdWxkIGdvIGhlcmUgYnV0IG1laC4uCgo+ICsJCWlmICgh KGN0eC0+cmVtYXBfc2xpY2UgJiBCSVQoaSkpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZXJy ID0gcmVtYXBfbDNfc2xpY2UocnEsIGkpOwo+ICsJCWlmIChlcnIpCj4gKwkJCXJldHVybiBlcnI7 CgouLi4gb3IgY291bGQgc3RheSBhdCB0b3AgYW5kIGhlcmUgeW91IGJyZWFrIGFuZCByZXR1cm4g ZXJyIGF0IHRoZSBlbmQuIApNb3JlIG1laC4gRGVwZW5kaW5nIHdoZXRoZXIgaXQgaXMgaW1wb3J0 YW50IG9yIG5vdCB0byBjbGVhciAKY3R4LT5yZW1hcF9zbGljZSBvbiBlcnJvci4KCj4gKwl9Cj4g Kwo+ICsJY3R4LT5yZW1hcF9zbGljZSA9IDA7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0 YXRpYyBpbnQgc3dpdGNoX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gICB7Cj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKPiAtCXN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBycS0+Z2VtX2NvbnRleHQ7Cj4gLQlzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSA9Cj4gLQkJY3R4LT52bSA/OiAmcnEtPmk5MTUtPm1tLmFsaWFz aW5nX3BwZ3R0LT52bTsKPiArCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gdm1fYWxp YXMocnEtPmh3X2NvbnRleHQpOwo+ICAgCXVuc2lnbmVkIGludCB1bndpbmRfbW0gPSAwOwo+ICAg CXUzMiBod19mbGFncyA9IDA7Cj4gLQlpbnQgcmV0LCBpOwo+ICsJaW50IHJldDsKPiAgIAo+ICAg CUdFTV9CVUdfT04oSEFTX0VYRUNMSVNUUyhycS0+aTkxNSkpOwo+ICAgCj4gQEAgLTE3ODEsNyAr MTgxMSw3IEBAIHN0YXRpYyBpbnQgc3dpdGNoX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEpCj4gICAJCSAqIGFzIG5vdGhpbmcgYWN0dWFsbHkgZXhlY3V0ZXMgdXNpbmcgdGhlIGtlcm5l bCBjb250ZXh0OyBpdAo+ICAgCQkgKiBpcyBwdXJlbHkgdXNlZCBmb3IgZmx1c2hpbmcgdXNlciBj b250ZXh0cy4KPiAgIAkJICovCj4gLQkJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGN0 eCkpCj4gKwkJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKHJxLT5nZW1fY29udGV4dCkp Cj4gICAJCQlod19mbGFncyA9IE1JX1JFU1RPUkVfSU5ISUJJVDsKPiAgIAo+ICAgCQlyZXQgPSBt aV9zZXRfY29udGV4dChycSwgaHdfZmxhZ3MpOwo+IEBAIC0xODE1LDE4ICsxODQ1LDkgQEAgc3Rh dGljIGludCBzd2l0Y2hfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAkJCWdv dG8gZXJyX21tOwo+ICAgCX0KPiAgIAo+IC0JaWYgKGN0eC0+cmVtYXBfc2xpY2UpIHsKPiAtCQlm b3IgKGkgPSAwOyBpIDwgTUFYX0wzX1NMSUNFUzsgaSsrKSB7Cj4gLQkJCWlmICghKGN0eC0+cmVt YXBfc2xpY2UgJiBCSVQoaSkpKQo+IC0JCQkJY29udGludWU7Cj4gLQo+IC0JCQlyZXQgPSByZW1h cF9sMyhycSwgaSk7Cj4gLQkJCWlmIChyZXQpCj4gLQkJCQlnb3RvIGVycl9tbTsKPiAtCQl9Cj4g LQo+IC0JCWN0eC0+cmVtYXBfc2xpY2UgPSAwOwo+IC0JfQo+ICsJcmV0ID0gcmVtYXBfbDMocnEp Owo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9tbTsKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMGU0NGNjNGIyY2ExLi4yNjlhMWIzMmI0 OGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNzg0LDkgKzc4NCw2IEBAIHN0 cnVjdCBpOTE1X2dlbV9tbSB7Cj4gICAJICovCj4gICAJc3RydWN0IHZmc21vdW50ICpnZW1mczsK PiAgIAo+IC0JLyoqIFBQR1RUIHVzZWQgZm9yIGFsaWFzaW5nIHRoZSBQUEdUVCB3aXRoIHRoZSBH VFQgKi8KPiAtCXN0cnVjdCBpOTE1X3BwZ3R0ICphbGlhc2luZ19wcGd0dDsKPiAtCj4gICAJc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrIG9vbV9ub3RpZmllcjsKPiAgIAlzdHJ1Y3Qgbm90aWZpZXJfYmxv Y2sgdm1hcF9ub3RpZmllcjsKPiAgIAlzdHJ1Y3Qgc2hyaW5rZXIgc2hyaW5rZXI7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA0ZGQxZmE5NTYxNDMuLjgzMDRiOThiMGJm OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gQEAgLTI0NDYsMTggKzI0 NDYsMTggQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1h ICp2bWEsCj4gICAJCXB0ZV9mbGFncyB8PSBQVEVfUkVBRF9PTkxZOwo+ICAgCj4gICAJaWYgKGZs YWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCkgewo+IC0JCXN0cnVjdCBpOTE1X3BwZ3R0ICphcHBn dHQgPSBpOTE1LT5tbS5hbGlhc2luZ19wcGd0dDsKPiArCQlzdHJ1Y3QgaTkxNV9wcGd0dCAqYWxp YXMgPSBpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPmFsaWFzOwoKS2VlcGluZyB0aGUgdmFyaWFi bGUgbmFtZSB3b3VsZCBoYXZlIHJlZHVjZWQgdGhlIGNodXJuLgoKPiAgIAo+ICAgCQlpZiAoISh2 bWEtPmZsYWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCkpIHsKPiAtCQkJcmV0ID0gYXBwZ3R0LT52 bS5hbGxvY2F0ZV92YV9yYW5nZSgmYXBwZ3R0LT52bSwKPiAtCQkJCQkJCSAgIHZtYS0+bm9kZS5z dGFydCwKPiAtCQkJCQkJCSAgIHZtYS0+c2l6ZSk7Cj4gKwkJCXJldCA9IGFsaWFzLT52bS5hbGxv Y2F0ZV92YV9yYW5nZSgmYWxpYXMtPnZtLAo+ICsJCQkJCQkJICB2bWEtPm5vZGUuc3RhcnQsCj4g KwkJCQkJCQkgIHZtYS0+c2l6ZSk7Cj4gICAJCQlpZiAocmV0KQo+ICAgCQkJCXJldHVybiByZXQ7 Cj4gICAJCX0KPiAgIAo+IC0JCWFwcGd0dC0+dm0uaW5zZXJ0X2VudHJpZXMoJmFwcGd0dC0+dm0s IHZtYSwgY2FjaGVfbGV2ZWwsCj4gLQkJCQkJICBwdGVfZmxhZ3MpOwo+ICsJCWFsaWFzLT52bS5p bnNlcnRfZW50cmllcygmYWxpYXMtPnZtLCB2bWEsCj4gKwkJCQkJIGNhY2hlX2xldmVsLCBwdGVf ZmxhZ3MpOwo+ICAgCX0KPiAgIAo+ICAgCWlmIChmbGFncyAmIEk5MTVfVk1BX0dMT0JBTF9CSU5E KSB7Cj4gQEAgLTI0ODUsNyArMjQ4NSw4IEBAIHN0YXRpYyB2b2lkIGFsaWFzaW5nX2d0dF91bmJp bmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgCX0KPiAgIAo+ICAgCWlmICh2bWEtPmZs YWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCkgewo+IC0JCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtID0gJmk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0LT52bTsKPiArCQlzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSA9Cj4gKwkJCSZpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPmFsaWFz LT52bTsKPiAgIAo+ICAgCQl2bS0+Y2xlYXJfcmFuZ2Uodm0sIHZtYS0+bm9kZS5zdGFydCwgdm1h LT5zaXplKTsKPiAgIAl9Cj4gQEAgLTI1NDIsMTMgKzI1NDMsMTIgQEAgc3RhdGljIHZvaWQgaTkx NV9ndHRfY29sb3JfYWRqdXN0KGNvbnN0IHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKPiAgIAkJ KmVuZCAtPSBJOTE1X0dUVF9QQUdFX1NJWkU7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCBpbml0 X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICtzdGF0aWMg aW50IGluaXRfYWxpYXNpbmdfcHBndHQoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKPiAgIHsKPiAt CXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKPiAgIAlzdHJ1Y3QgaTkxNV9w cGd0dCAqcHBndHQ7Cj4gICAJaW50IGVycjsKPiAgIAo+IC0JcHBndHQgPSBpOTE1X3BwZ3R0X2Ny ZWF0ZShpOTE1KTsKPiArCXBwZ3R0ID0gaTkxNV9wcGd0dF9jcmVhdGUoZ2d0dC0+dm0uaTkxNSk7 Cj4gICAJaWYgKElTX0VSUihwcGd0dCkpCj4gICAJCXJldHVybiBQVFJfRVJSKHBwZ3R0KTsKPiAg IAo+IEBAIC0yNTY3LDcgKzI1NjcsNyBAQCBzdGF0aWMgaW50IGluaXRfYWxpYXNpbmdfcHBndHQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJaWYgKGVycikKPiAgIAkJZ290byBl cnJfcHBndHQ7Cj4gICAKPiAtCWk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0ID0gcHBndHQ7Cj4gKwln Z3R0LT5hbGlhcyA9IHBwZ3R0Owo+ICAgCj4gICAJR0VNX0JVR19PTihnZ3R0LT52bS52bWFfb3Bz LmJpbmRfdm1hICE9IGdndHRfYmluZF92bWEpOwo+ICAgCWdndHQtPnZtLnZtYV9vcHMuYmluZF92 bWEgPSBhbGlhc2luZ19ndHRfYmluZF92bWE7Cj4gQEAgLTI1ODIsMTQgKzI1ODIsMTQgQEAgc3Rh dGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+ICAgCXJldHVybiBlcnI7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgZmluaV9hbGlhc2lu Z19wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiArc3RhdGljIHZvaWQgZmlu aV9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQo+ICAgewo+IC0Jc3RydWN0 IGk5MTVfZ2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBnZ3R0LT52bS5pOTE1Owo+ICAgCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dDsK PiAgIAo+ICAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCj4gLQlw cGd0dCA9IGZldGNoX2FuZF96ZXJvKCZpOTE1LT5tbS5hbGlhc2luZ19wcGd0dCk7Cj4gKwlwcGd0 dCA9IGZldGNoX2FuZF96ZXJvKCZnZ3R0LT5hbGlhcyk7Cj4gICAJaWYgKCFwcGd0dCkKPiAgIAkJ Z290byBvdXQ7Cj4gICAKPiBAQCAtMjcwNiw3ICsyNzA2LDcgQEAgaW50IGk5MTVfaW5pdF9nZ3R0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4g ICAJaWYgKElOVEVMX1BQR1RUKGk5MTUpID09IElOVEVMX1BQR1RUX0FMSUFTSU5HKSB7Cj4gLQkJ cmV0ID0gaW5pdF9hbGlhc2luZ19wcGd0dChpOTE1KTsKPiArCQlyZXQgPSBpbml0X2FsaWFzaW5n X3BwZ3R0KCZpOTE1LT5nZ3R0KTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCWNsZWFudXBfaW5pdF9n Z3R0KCZpOTE1LT5nZ3R0KTsKPiAgIAl9Cj4gQEAgLTI3NTIsNyArMjc1Miw3IEBAIHZvaWQgaTkx NV9nZ3R0X2RyaXZlcl9yZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAg ewo+ICAgCXN0cnVjdCBwYWdldmVjICpwdmVjOwo+ICAgCj4gLQlmaW5pX2FsaWFzaW5nX3BwZ3R0 KGk5MTUpOwo+ICsJZmluaV9hbGlhc2luZ19wcGd0dCgmaTkxNS0+Z2d0dCk7Cj4gICAKPiAgIAln Z3R0X2NsZWFudXBfaHcoJmk5MTUtPmdndHQpOwo+ICAgCj4gQEAgLTM1ODUsNyArMzU4NSw3IEBA IGludCBpOTE1X2dlbV9ndHRfcmVzZXJ2ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiAgIAlHRU1fQlVHX09OKCFJU19BTElHTkVEKHNpemUsIEk5MTVfR1RUX1BBR0VfU0laRSkpOwo+ ICAgCUdFTV9CVUdfT04oIUlTX0FMSUdORUQob2Zmc2V0LCBJOTE1X0dUVF9NSU5fQUxJR05NRU5U KSk7Cj4gICAJR0VNX0JVR19PTihyYW5nZV9vdmVyZmxvd3Mob2Zmc2V0LCBzaXplLCB2bS0+dG90 YWwpKTsKPiAtCUdFTV9CVUdfT04odm0gPT0gJnZtLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+ dm0pOwo+ICsJR0VNX0JVR19PTih2bSA9PSAmdm0tPmk5MTUtPmdndHQuYWxpYXMtPnZtKTsKPiAg IAlHRU1fQlVHX09OKGRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSk7Cj4gICAKPiAgIAlub2Rl LT5zaXplID0gc2l6ZTsKPiBAQCAtMzY4Miw3ICszNjgyLDcgQEAgaW50IGk5MTVfZ2VtX2d0dF9p bnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJR0VNX0JVR19PTihzdGFy dCA+PSBlbmQpOwo+ICAgCUdFTV9CVUdfT04oc3RhcnQgPiAwICAmJiAhSVNfQUxJR05FRChzdGFy dCwgSTkxNV9HVFRfUEFHRV9TSVpFKSk7Cj4gICAJR0VNX0JVR19PTihlbmQgPCBVNjRfTUFYICYm ICFJU19BTElHTkVEKGVuZCwgSTkxNV9HVFRfUEFHRV9TSVpFKSk7Cj4gLQlHRU1fQlVHX09OKHZt ID09ICZ2bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKPiArCUdFTV9CVUdfT04odm0g PT0gJnZtLT5pOTE1LT5nZ3R0LmFsaWFzLT52bSk7Cj4gICAJR0VNX0JVR19PTihkcm1fbW1fbm9k ZV9hbGxvY2F0ZWQobm9kZSkpOwo+ICAgCj4gICAJaWYgKHVubGlrZWx5KHJhbmdlX292ZXJmbG93 cyhzdGFydCwgc2l6ZSwgZW5kKSkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBp bmRleCBjZWE1OWVmMWEzNjUuLjUxMjc0NDgzNTAyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCj4gQEAgLTM5NCw2ICszOTQsOSBAQCBzdHJ1Y3QgaTkxNV9nZ3R0IHsKPiAg IAl2b2lkIF9faW9tZW0gKmdzbTsKPiAgIAl2b2lkICgqaW52YWxpZGF0ZSkoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCk7Cj4gICAKPiArCS8qKiBQUEdUVCB1c2VkIGZvciBhbGlhc2luZyB0aGUgUFBH VFQgd2l0aCB0aGUgR1RUICovCj4gKwlzdHJ1Y3QgaTkxNV9wcGd0dCAqYWxpYXM7Cj4gKwo+ICAg CWJvb2wgZG9faWRsZV9tYXBzOwo+ICAgCj4gICAJaW50IG10cnI7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jCj4gaW5kZXggZWU3M2JhZjI5NDE1Li5lYjE2YTFhOTNiYmMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdm1hLmMKPiBAQCAtMTA0LDcgKzEwNCw3IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAlzdHJ1Y3QgcmJfbm9kZSAqcmIsICoqcDsKPiAg IAo+ICAgCS8qIFRoZSBhbGlhc2luZ19wcGd0dCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBkaXJlY3Rs eSEgKi8KPiAtCUdFTV9CVUdfT04odm0gPT0gJnZtLT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+ dm0pOwo+ICsJR0VNX0JVR19PTih2bSA9PSAmdm0tPmk5MTUtPmdndHQuYWxpYXMtPnZtKTsKPiAg IAo+ICAgCXZtYSA9IGk5MTVfdm1hX2FsbG9jKCk7Cj4gICAJaWYgKHZtYSA9PSBOVUxMKQo+IAoK Tm90aGluZyBidXQgbml0cGlja3MsIGxvb2tzIG9rYXkgaW4gcHJpbmNpcGxlLgoKUmVnYXJkcywK ClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=