From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/17] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt Date: Tue, 30 Jul 2019 14:58:07 +0100 Message-ID: References: <20190730133035.1977-1-chris@chris-wilson.co.uk> <20190730133035.1977-7-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 mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id ADC936E528 for ; Tue, 30 Jul 2019 13:58:09 +0000 (UTC) In-Reply-To: <20190730133035.1977-7-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 Ck9uIDMwLzA3LzIwMTkgMTQ6MzAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUaGUgYWxpYXNpbmdf cHBndHQgcHJvdmlkZXMgYSBQSU5fVVNFUiBhbGlhcyBmb3IgdGhlIGdsb2JhbCBndHQsIHNvIG1v dmUKPiBpdCB1bmRlciB0aGUgaTkxNV9nZ3R0IHRvIHNpbXBsaWZ5IGxhdGVyIHRyYW5zZm9ybWF0 aW9ucyB0byBlbmFibGUKPiBpbnRlbF9jb250ZXh0LnZtLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgoKIEZyb20gZmV3IGRheXMgYmFj azoKClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29t PgoKUmVnYXJkcywKClR2cnRrbwoKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9jb250ZXh0LmMgICB8ICA3ICstCj4gICAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0 cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgNjkgKysrKysrKysrKysrLS0tLS0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgIDMgLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgMzYgKysrKystLS0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgICAgIHwgIDMgKwo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgIHwgIDIgKy0K PiAgIDcgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXgg ZmZiNTlkOTZkNGQ4Li4wZjZiMDY3OGY1NDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtNDU5LDggKzQ1OSw3IEBAIF9fY3JlYXRlX2Nv bnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJaTkxNV9nZW1fY29udGV4 dF9zZXRfcmVjb3ZlcmFibGUoY3R4KTsKPiAgIAo+ICAgCWN0eC0+cmluZ19zaXplID0gNCAqIFBB R0VfU0laRTsKPiAtCWN0eC0+ZGVzY190ZW1wbGF0ZSA9Cj4gLQkJZGVmYXVsdF9kZXNjX3RlbXBs YXRlKGk5MTUsICZpOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm0pOwo+ICsJY3R4LT5kZXNjX3Rl bXBsYXRlID0gZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGk5MTUsIE5VTEwpOwo+ICAgCj4gICAJZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3R4LT5oYW5nX3RpbWVzdGFtcCk7IGkrKykKPiAgIAkJ Y3R4LT5oYW5nX3RpbWVzdGFtcFtpXSA9IGppZmZpZXMgLSBDT05URVhUX0ZBU1RfSEFOR19KSUZG SUVTOwo+IEBAIC0yMjU4LDggKzIyNTcsOCBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJh bV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQlhcmdzLT5z aXplID0gMDsKPiAgIAkJaWYgKGN0eC0+dm0pCj4gICAJCQlhcmdzLT52YWx1ZSA9IGN0eC0+dm0t PnRvdGFsOwo+IC0JCWVsc2UgaWYgKHRvX2k5MTUoZGV2KS0+bW0uYWxpYXNpbmdfcHBndHQpCj4g LQkJCWFyZ3MtPnZhbHVlID0gdG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dC0+dm0udG90 YWw7Cj4gKwkJZWxzZSBpZiAodG9faTkxNShkZXYpLT5nZ3R0LmFsaWFzKQo+ICsJCQlhcmdzLT52 YWx1ZSA9IHRvX2k5MTUoZGV2KS0+Z2d0dC5hbGlhcy0+dm0udG90YWw7Cj4gICAJCWVsc2UKPiAg IAkJCWFyZ3MtPnZhbHVlID0gdG9faTkxNShkZXYpLT5nZ3R0LnZtLnRvdGFsOwo+ICAgCQlicmVh azsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVf Z2VtX2NvbnRleHQuYwo+IGluZGV4IGRiNzg1NmYwZjMxZS4uYmJkMTdkNGI4ZmZkIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4 dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9j b250ZXh0LmMKPiBAQCAtMTE5MCw3ICsxMTkwLDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRv bmx5KHZvaWQgKmFyZykKPiAgIAkJZ290byBvdXRfdW5sb2NrOwo+ICAgCX0KPiAgIAo+IC0Jdm0g PSBjdHgtPnZtID86ICZpOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07Cj4gKwl2bSA9IGN0eC0+ dm0gPzogJmk5MTUtPmdndHQuYWxpYXMtPnZtOwo+ICAgCWlmICghdm0gfHwgIXZtLT5oYXNfcmVh ZF9vbmx5KSB7Cj4gICAJCWVyciA9IDA7Cj4gICAJCWdvdG8gb3V0X3VubG9jazsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggNWM3ZjJmZGM1ZWMz Li4xMWFmZTY0Y2MyNTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gQEAgLTEzNzYsMzAgKzEzNzYsNDEgQEAgc3RhdGljIHZvaWQgcmluZ19jb250 ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKnJlZikKPiAgIAlpbnRlbF9jb250ZXh0X2ZyZWUoY2Up Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgX19jb250ZXh0X3Bpbl9wcGd0dChzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqY3R4KQo+ICtzdGF0aWMgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm1fYWxpYXMoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bTsKPiArCj4gKwl2bSA9IGNlLT5nZW1fY29udGV4dC0+dm07Cj4gKwlp ZiAoIXZtKQo+ICsJCXZtID0gJmNlLT5lbmdpbmUtPmd0LT5nZ3R0LT5hbGlhcy0+dm07Cj4gKwo+ ICsJcmV0dXJuIHZtOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IF9fY29udGV4dF9waW5fcHBndHQo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtOwo+ICAgCWludCBlcnIgPSAwOwo+ICAgCj4gLQl2bSA9IGN0eC0+dm0gPzogJmN0 eC0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOwo+ICsJdm0gPSB2bV9hbGlhcyhjZSk7Cj4g ICAJaWYgKHZtKQo+ICAgCQllcnIgPSBnZW42X3BwZ3R0X3BpbihpOTE1X3ZtX3RvX3BwZ3R0KCh2 bSkpKTsKPiAgIAo+ICAgCXJldHVybiBlcnI7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgX19j b250ZXh0X3VucGluX3BwZ3R0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3N0YXRp YyB2b2lkIF9fY29udGV4dF91bnBpbl9wcGd0dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4g ICB7Cj4gICAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07Cj4gICAKPiAtCXZtID0gY3R4 LT52bSA/OiAmY3R4LT5pOTE1LT5tbS5hbGlhc2luZ19wcGd0dC0+dm07Cj4gKwl2bSA9IHZtX2Fs aWFzKGNlKTsKPiAgIAlpZiAodm0pCj4gICAJCWdlbjZfcHBndHRfdW5waW4oaTkxNV92bV90b19w cGd0dCh2bSkpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCByaW5nX2NvbnRleHRfdW5waW4o c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgewo+IC0JX19jb250ZXh0X3VucGluX3BwZ3R0 KGNlLT5nZW1fY29udGV4dCk7Cj4gKwlfX2NvbnRleHRfdW5waW5fcHBndHQoY2UpOwo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKPiBAQCAtMTQ5Myw3ICsxNTA0LDcgQEAg c3RhdGljIGludCByaW5nX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiAg IAlpZiAoZXJyKQo+ICAgCQlyZXR1cm4gZXJyOwo+ICAgCj4gLQllcnIgPSBfX2NvbnRleHRfcGlu X3BwZ3R0KGNlLT5nZW1fY29udGV4dCk7Cj4gKwllcnIgPSBfX2NvbnRleHRfcGluX3BwZ3R0KGNl KTsKPiAgIAlpZiAoZXJyKQo+ICAgCQlnb3RvIGVycl9hY3RpdmU7Cj4gICAKPiBAQCAtMTY4NSw3 ICsxNjk2LDcgQEAgc3RhdGljIGlubGluZSBpbnQgbWlfc2V0X2NvbnRleHQoc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEsIHUzMiBmbGFncykKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0 aWMgaW50IHJlbWFwX2wzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBpbnQgc2xpY2UpCj4gK3N0 YXRpYyBpbnQgcmVtYXBfbDNfc2xpY2Uoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGludCBzbGlj ZSkKPiAgIHsKPiAgIAl1MzIgKmNzLCAqcmVtYXBfaW5mbyA9IHJxLT5pOTE1LT5sM19wYXJpdHku cmVtYXBfaW5mb1tzbGljZV07Cj4gICAJaW50IGk7Cj4gQEAgLTE3MTMsMTUgKzE3MjQsMzQgQEAg c3RhdGljIGludCByZW1hcF9sMyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgaW50IHNsaWNlKQo+ ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgcmVtYXBfbDMoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCj4gK3sKPiArCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBy cS0+Z2VtX2NvbnRleHQ7Cj4gKwlpbnQgaSwgZXJyOwo+ICsKPiArCWlmICghY3R4LT5yZW1hcF9z bGljZSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0wzX1NMSUNF UzsgaSsrKSB7Cj4gKwkJaWYgKCEoY3R4LT5yZW1hcF9zbGljZSAmIEJJVChpKSkpCj4gKwkJCWNv bnRpbnVlOwo+ICsKPiArCQllcnIgPSByZW1hcF9sM19zbGljZShycSwgaSk7Cj4gKwkJaWYgKGVy cikKPiArCQkJcmV0dXJuIGVycjsKPiArCX0KPiArCj4gKwljdHgtPnJlbWFwX3NsaWNlID0gMDsK PiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBzd2l0Y2hfY29udGV4dChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSBycS0+ZW5naW5lOwo+IC0Jc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHJx LT5nZW1fY29udGV4dDsKPiAtCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0KPiAtCQlj dHgtPnZtID86ICZycS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtOwo+ICsJc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0gPSB2bV9hbGlhcyhycS0+aHdfY29udGV4dCk7Cj4gICAJdW5z aWduZWQgaW50IHVud2luZF9tbSA9IDA7Cj4gICAJdTMyIGh3X2ZsYWdzID0gMDsKPiAtCWludCBy ZXQsIGk7Cj4gKwlpbnQgcmV0Owo+ICAgCj4gICAJR0VNX0JVR19PTihIQVNfRVhFQ0xJU1RTKHJx LT5pOTE1KSk7Cj4gICAKPiBAQCAtMTc2NSw3ICsxNzk1LDcgQEAgc3RhdGljIGludCBzd2l0Y2hf Y29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAkJICogYXMgbm90aGluZyBhY3R1 YWxseSBleGVjdXRlcyB1c2luZyB0aGUga2VybmVsIGNvbnRleHQ7IGl0Cj4gICAJCSAqIGlzIHB1 cmVseSB1c2VkIGZvciBmbHVzaGluZyB1c2VyIGNvbnRleHRzLgo+ICAgCQkgKi8KPiAtCQlpZiAo aTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY3R4KSkKPiArCQlpZiAoaTkxNV9nZW1fY29udGV4 dF9pc19rZXJuZWwocnEtPmdlbV9jb250ZXh0KSkKPiAgIAkJCWh3X2ZsYWdzID0gTUlfUkVTVE9S RV9JTkhJQklUOwo+ICAgCj4gICAJCXJldCA9IG1pX3NldF9jb250ZXh0KHJxLCBod19mbGFncyk7 Cj4gQEAgLTE3OTksMTggKzE4MjksOSBAQCBzdGF0aWMgaW50IHN3aXRjaF9jb250ZXh0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgCQkJZ290byBlcnJfbW07Cj4gICAJfQo+ICAgCj4gLQlp ZiAoY3R4LT5yZW1hcF9zbGljZSkgewo+IC0JCWZvciAoaSA9IDA7IGkgPCBNQVhfTDNfU0xJQ0VT OyBpKyspIHsKPiAtCQkJaWYgKCEoY3R4LT5yZW1hcF9zbGljZSAmIEJJVChpKSkpCj4gLQkJCQlj b250aW51ZTsKPiAtCj4gLQkJCXJldCA9IHJlbWFwX2wzKHJxLCBpKTsKPiAtCQkJaWYgKHJldCkK PiAtCQkJCWdvdG8gZXJyX21tOwo+IC0JCX0KPiAtCj4gLQkJY3R4LT5yZW1hcF9zbGljZSA9IDA7 Cj4gLQl9Cj4gKwlyZXQgPSByZW1hcF9sMyhycSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJy X21tOwo+ICAgCj4gICAJcmV0dXJuIDA7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBp bmRleCBiNTE2ZTZhMDJiNjEuLjNkZGViYTVjN2I4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IEBAIC03ODQsOSArNzg0LDYgQEAgc3RydWN0IGk5MTVfZ2VtX21tIHsKPiAgIAkgKi8K PiAgIAlzdHJ1Y3QgdmZzbW91bnQgKmdlbWZzOwo+ICAgCj4gLQkvKiogUFBHVFQgdXNlZCBmb3Ig YWxpYXNpbmcgdGhlIFBQR1RUIHdpdGggdGhlIEdUVCAqLwo+IC0Jc3RydWN0IGk5MTVfcHBndHQg KmFsaWFzaW5nX3BwZ3R0Owo+IC0KPiAgIAlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgb29tX25vdGlm aWVyOwo+ICAgCXN0cnVjdCBub3RpZmllcl9ibG9jayB2bWFwX25vdGlmaWVyOwo+ICAgCXN0cnVj dCBzaHJpbmtlciBzaHJpbmtlcjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGlu ZGV4IDQyM2M4OTBkMDNiZi4uYzMwMjg3MjJkNGUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiBAQCAtMjQ0NiwxOCArMjQ0NiwxOCBAQCBzdGF0aWMgaW50IGFsaWFzaW5n X2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgIAkJcHRlX2ZsYWdzIHw9IFBU RV9SRUFEX09OTFk7Cj4gICAKPiAgIAlpZiAoZmxhZ3MgJiBJOTE1X1ZNQV9MT0NBTF9CSU5EKSB7 Cj4gLQkJc3RydWN0IGk5MTVfcHBndHQgKmFwcGd0dCA9IGk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0 Owo+ICsJCXN0cnVjdCBpOTE1X3BwZ3R0ICphbGlhcyA9IGk5MTVfdm1fdG9fZ2d0dCh2bWEtPnZt KS0+YWxpYXM7Cj4gICAKPiAgIAkJaWYgKCEodm1hLT5mbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJ TkQpKSB7Cj4gLQkJCXJldCA9IGFwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UoJmFwcGd0dC0+ dm0sCj4gLQkJCQkJCQkgICB2bWEtPm5vZGUuc3RhcnQsCj4gLQkJCQkJCQkgICB2bWEtPnNpemUp Owo+ICsJCQlyZXQgPSBhbGlhcy0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UoJmFsaWFzLT52bSwKPiAr CQkJCQkJCSAgdm1hLT5ub2RlLnN0YXJ0LAo+ICsJCQkJCQkJICB2bWEtPnNpemUpOwo+ICAgCQkJ aWYgKHJldCkKPiAgIAkJCQlyZXR1cm4gcmV0Owo+ICAgCQl9Cj4gICAKPiAtCQlhcHBndHQtPnZt Lmluc2VydF9lbnRyaWVzKCZhcHBndHQtPnZtLCB2bWEsIGNhY2hlX2xldmVsLAo+IC0JCQkJCSAg cHRlX2ZsYWdzKTsKPiArCQlhbGlhcy0+dm0uaW5zZXJ0X2VudHJpZXMoJmFsaWFzLT52bSwgdm1h LAo+ICsJCQkJCSBjYWNoZV9sZXZlbCwgcHRlX2ZsYWdzKTsKPiAgIAl9Cj4gICAKPiAgIAlpZiAo ZmxhZ3MgJiBJOTE1X1ZNQV9HTE9CQUxfQklORCkgewo+IEBAIC0yNDg1LDcgKzI0ODUsOCBAQCBz dGF0aWMgdm9pZCBhbGlhc2luZ19ndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK PiAgIAl9Cj4gICAKPiAgIAlpZiAodm1hLT5mbGFncyAmIEk5MTVfVk1BX0xPQ0FMX0JJTkQpIHsK PiAtCQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZpOTE1LT5tbS5hbGlhc2luZ19w cGd0dC0+dm07Cj4gKwkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPQo+ICsJCQkmaTkx NV92bV90b19nZ3R0KHZtYS0+dm0pLT5hbGlhcy0+dm07Cj4gICAKPiAgIAkJdm0tPmNsZWFyX3Jh bmdlKHZtLCB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7Cj4gICAJfQo+IEBAIC0yNTQyLDEz ICsyNTQzLDEyIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3R0X2NvbG9yX2FkanVzdChjb25zdCBzdHJ1 Y3QgZHJtX21tX25vZGUgKm5vZGUsCj4gICAJCSplbmQgLT0gSTkxNV9HVFRfUEFHRV9TSVpFOwo+ ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgaW5pdF9hbGlhc2luZ19wcGd0dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiArc3RhdGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVj dCBpOTE1X2dndHQgKmdndHQpCj4gICB7Cj4gLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5 MTUtPmdndHQ7Cj4gICAJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0Owo+ICAgCWludCBlcnI7Cj4g ICAKPiAtCXBwZ3R0ID0gaTkxNV9wcGd0dF9jcmVhdGUoaTkxNSk7Cj4gKwlwcGd0dCA9IGk5MTVf cHBndHRfY3JlYXRlKGdndHQtPnZtLmk5MTUpOwo+ICAgCWlmIChJU19FUlIocHBndHQpKQo+ICAg CQlyZXR1cm4gUFRSX0VSUihwcGd0dCk7Cj4gICAKPiBAQCAtMjU2Nyw3ICsyNTY3LDcgQEAgc3Rh dGljIGludCBpbml0X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+ICAgCWlmIChlcnIpCj4gICAJCWdvdG8gZXJyX3BwZ3R0Owo+ICAgCj4gLQlpOTE1LT5tbS5h bGlhc2luZ19wcGd0dCA9IHBwZ3R0Owo+ICsJZ2d0dC0+YWxpYXMgPSBwcGd0dDsKPiAgIAo+ICAg CUdFTV9CVUdfT04oZ2d0dC0+dm0udm1hX29wcy5iaW5kX3ZtYSAhPSBnZ3R0X2JpbmRfdm1hKTsK PiAgIAlnZ3R0LT52bS52bWFfb3BzLmJpbmRfdm1hID0gYWxpYXNpbmdfZ3R0X2JpbmRfdm1hOwo+ IEBAIC0yNTgyLDE0ICsyNTgyLDE0IEBAIHN0YXRpYyBpbnQgaW5pdF9hbGlhc2luZ19wcGd0dChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAlyZXR1cm4gZXJyOwo+ICAgfQo+ICAg Cj4gLXN0YXRpYyB2b2lkIGZpbmlfYWxpYXNpbmdfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4gK3N0YXRpYyB2b2lkIGZpbmlfYWxpYXNpbmdfcHBndHQoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCkKPiAgIHsKPiAtCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0 dDsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ2d0dC0+dm0uaTkxNTsKPiAg IAlzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQ7Cj4gICAKPiAgIAltdXRleF9sb2NrKCZpOTE1LT5k cm0uc3RydWN0X211dGV4KTsKPiAgIAo+IC0JcHBndHQgPSBmZXRjaF9hbmRfemVybygmaTkxNS0+ bW0uYWxpYXNpbmdfcHBndHQpOwo+ICsJcHBndHQgPSBmZXRjaF9hbmRfemVybygmZ2d0dC0+YWxp YXMpOwo+ICAgCWlmICghcHBndHQpCj4gICAJCWdvdG8gb3V0Owo+ICAgCj4gQEAgLTI3MDYsNyAr MjcwNiw3IEBAIGludCBpOTE1X2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiAgIAkJcmV0dXJuIHJldDsKPiAgIAo+ICAgCWlmIChJTlRFTF9QUEdUVChpOTE1KSA9PSBJ TlRFTF9QUEdUVF9BTElBU0lORykgewo+IC0JCXJldCA9IGluaXRfYWxpYXNpbmdfcHBndHQoaTkx NSk7Cj4gKwkJcmV0ID0gaW5pdF9hbGlhc2luZ19wcGd0dCgmaTkxNS0+Z2d0dCk7Cj4gICAJCWlm IChyZXQpCj4gICAJCQljbGVhbnVwX2luaXRfZ2d0dCgmaTkxNS0+Z2d0dCk7Cj4gICAJfQo+IEBA IC0yNzU1LDcgKzI3NTUsNyBAQCB2b2lkIGk5MTVfZ2d0dF9kcml2ZXJfcmVsZWFzZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIHsKPiAgIAlzdHJ1Y3QgcGFnZXZlYyAqcHZlYzsK PiAgIAo+IC0JZmluaV9hbGlhc2luZ19wcGd0dChpOTE1KTsKPiArCWZpbmlfYWxpYXNpbmdfcHBn dHQoJmk5MTUtPmdndHQpOwo+ICAgCj4gICAJZ2d0dF9jbGVhbnVwX2h3KCZpOTE1LT5nZ3R0KTsK PiAgIAo+IEBAIC0zNTg4LDcgKzM1ODgsNyBAQCBpbnQgaTkxNV9nZW1fZ3R0X3Jlc2VydmUoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJR0VNX0JVR19PTighSVNfQUxJR05FRChz aXplLCBJOTE1X0dUVF9QQUdFX1NJWkUpKTsKPiAgIAlHRU1fQlVHX09OKCFJU19BTElHTkVEKG9m ZnNldCwgSTkxNV9HVFRfTUlOX0FMSUdOTUVOVCkpOwo+ICAgCUdFTV9CVUdfT04ocmFuZ2Vfb3Zl cmZsb3dzKG9mZnNldCwgc2l6ZSwgdm0tPnRvdGFsKSk7Cj4gLQlHRU1fQlVHX09OKHZtID09ICZ2 bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKPiArCUdFTV9CVUdfT04odm0gPT0gJnZt LT5pOTE1LT5nZ3R0LmFsaWFzLT52bSk7Cj4gICAJR0VNX0JVR19PTihkcm1fbW1fbm9kZV9hbGxv Y2F0ZWQobm9kZSkpOwo+ICAgCj4gICAJbm9kZS0+c2l6ZSA9IHNpemU7Cj4gQEAgLTM2ODUsNyAr MzY4NSw3IEBAIGludCBpOTE1X2dlbV9ndHRfaW5zZXJ0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtLAo+ICAgCUdFTV9CVUdfT04oc3RhcnQgPj0gZW5kKTsKPiAgIAlHRU1fQlVHX09OKHN0 YXJ0ID4gMCAgJiYgIUlTX0FMSUdORUQoc3RhcnQsIEk5MTVfR1RUX1BBR0VfU0laRSkpOwo+ICAg CUdFTV9CVUdfT04oZW5kIDwgVTY0X01BWCAmJiAhSVNfQUxJR05FRChlbmQsIEk5MTVfR1RUX1BB R0VfU0laRSkpOwo+IC0JR0VNX0JVR19PTih2bSA9PSAmdm0tPmk5MTUtPm1tLmFsaWFzaW5nX3Bw Z3R0LT52bSk7Cj4gKwlHRU1fQlVHX09OKHZtID09ICZ2bS0+aTkxNS0+Z2d0dC5hbGlhcy0+dm0p Owo+ICAgCUdFTV9CVUdfT04oZHJtX21tX25vZGVfYWxsb2NhdGVkKG5vZGUpKTsKPiAgIAo+ICAg CWlmICh1bmxpa2VseShyYW5nZV9vdmVyZmxvd3Moc3RhcnQsIHNpemUsIGVuZCkpKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggY2VhNTllZjFhMzY1Li41MTI3NDQ4MzUw MmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IEBAIC0zOTQsNiArMzk0 LDkgQEAgc3RydWN0IGk5MTVfZ2d0dCB7Cj4gICAJdm9pZCBfX2lvbWVtICpnc207Cj4gICAJdm9p ZCAoKmludmFsaWRhdGUpKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwo+ICAgCj4gKwkvKiogUFBH VFQgdXNlZCBmb3IgYWxpYXNpbmcgdGhlIFBQR1RUIHdpdGggdGhlIEdUVCAqLwo+ICsJc3RydWN0 IGk5MTVfcHBndHQgKmFsaWFzOwo+ICsKPiAgIAlib29sIGRvX2lkbGVfbWFwczsKPiAgIAo+ICAg CWludCBtdHJyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IGluZGV4IGVlNzNiYWYyOTQxNS4u ZWIxNmExYTkzYmJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1h LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gQEAgLTEwNCw3ICsx MDQsNyBAQCB2bWFfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJ c3RydWN0IHJiX25vZGUgKnJiLCAqKnA7Cj4gICAKPiAgIAkvKiBUaGUgYWxpYXNpbmdfcHBndHQg c2hvdWxkIG5ldmVyIGJlIHVzZWQgZGlyZWN0bHkhICovCj4gLQlHRU1fQlVHX09OKHZtID09ICZ2 bS0+aTkxNS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtKTsKPiArCUdFTV9CVUdfT04odm0gPT0gJnZt LT5pOTE1LT5nZ3R0LmFsaWFzLT52bSk7Cj4gICAKPiAgIAl2bWEgPSBpOTE1X3ZtYV9hbGxvYygp Owo+ICAgCWlmICh2bWEgPT0gTlVMTCkKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4