From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 10/11] drm/i915: Mark the context and address space as closed Date: Thu, 17 Dec 2015 12:37:13 +0000 Message-ID: <5672AC79.1040208@linux.intel.com> References: <1450093012-14955-1-git-send-email-chris@chris-wilson.co.uk> <1450093012-14955-10-git-send-email-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C6F16E1AB for ; Thu, 17 Dec 2015 04:37:15 -0800 (PST) In-Reply-To: <1450093012-14955-10-git-send-email-chris@chris-wilson.co.uk> 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 CkhpLAoKT24gMTQvMTIvMTUgMTE6MzYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXaGVuIHRoZSB1 c2VyIGNsb3NlcyB0aGUgY29udGV4dCBtYXJrIGl0IGFuZCB0aGUgZGVwZW5kZW50IGFkZHJlc3Mg c3BhY2UKPiBhcyBjbG9zZWQuIEFzIHdlIHVzZSBhbiBhc3luY2hyb25vdXMgZGVzdHJ1Y3QgbWV0 aG9kLCB0aGlzIGhhcyB0d28gcHVycG9zZXMuCj4gRmlyc3QgaXQgYWxsb3dzIHVzIHRvIGZsYWcg dGhlIGNsb3NlZCBjb250ZXh0IGFuZCBkZXRlY3QgaW50ZXJuYWwgZXJyb3JzIGlmCj4gd2UgdG8g Y3JlYXRlIGFueSBuZXcgb2JqZWN0cyBmb3IgaXQgKGFzIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUg dXNlcidzCj4gbmFtZXNwYWNlLCB0aGVzZSBzaG91bGQgYmUgaW50ZXJuYWwgYnVncyBvbmx5KS4g QW5kIHNlY29uZGx5LCBpdCBhbGxvd3MKPiB1cyB0byBpbW1lZGlhdGVseSByZWFwIHN0YWxlIHZt YS4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwg IDQgKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMTUg KysrKysrKystLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j IHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgfCAxMSArKysrKysrLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAgfCAgOSArKysrKysrKwo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgIHwgIDIgKy0KPiAgIDYgZmlsZXMgY2hhbmdl ZCwgNjYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBpbmRleCA2OTY0NjlhMDY3MTUuLjY2ZWNkNmIzZGY5NSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IEBAIC04OTIsNiArODkyLDggQEAgc3RydWN0IGludGVsX2NvbnRleHQg ewo+ICAgCX0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsKPgo+ICAgCXN0cnVjdCBsaXN0X2hlYWQg bGluazsKPiArCj4gKwlib29sIGNsb3NlZDoxOwo+ICAgfTsKPgo+ICAgZW51bSBmYl9vcF9vcmln aW4gewo+IEBAIC0yNzIwLDYgKzI3MjIsOCBAQCBpbnQgX19tdXN0X2NoZWNrIGk5MTVfdm1hX3Vu YmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cj4gICAgKiBfZ3VhcmFudGVlXyBWTUEgaW4gcXVl c3Rpb24gaXMgX25vdCBpbiB1c2VfIGFueXdoZXJlLgo+ICAgICovCj4gICBpbnQgX19tdXN0X2No ZWNrIF9faTkxNV92bWFfdW5iaW5kX25vX3dhaXQoc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+ICt2 b2lkIGk5MTVfdm1hX2Nsb3NlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKPiArCj4gICBpbnQgaTkx NV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsK PiAgIHZvaWQgaTkxNV9nZW1fcmVsZWFzZV9hbGxfbW1hcHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaTkxNV9nZW1fcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDdj MTNjMjdhNjQ3MC4uMDhlYTBiN2VkYThiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g QEAgLTIzNjcsMTIgKzIzNjcsMTMgQEAgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2FjdGl2ZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0 YXRpYyB2b2lkIGk5MTVfdm1hX2Nsb3NlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoKQ2FuJ3QgZmlu ZCB0aGlzIGluIHRoaXMgc2VyaWVzPwoKPiArdm9pZCBpOTE1X3ZtYV9jbG9zZShzdHJ1Y3QgaTkx NV92bWEgKnZtYSkKPiAgIHsKPiAgIAlSUV9CVUdfT04odm1hLT5jbG9zZWQpOwo+ICAgCXZtYS0+ Y2xvc2VkID0gdHJ1ZTsKPgo+ICAgCWxpc3RfZGVsX2luaXQoJnZtYS0+b2JqX2xpbmspOwo+ICsJ bGlzdF9kZWxfaW5pdCgmdm1hLT52bV9saW5rKTsKPiAgIAlpZiAoIXZtYS0+YWN0aXZlKQo+ICAg CQlXQVJOX09OKGk5MTVfdm1hX3VuYmluZCh2bWEpKTsKPiAgIH0KPiBAQCAtMjYyMCwxMiArMjYy MSwxMyBAQCBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1h LCBib29sIHdhaXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCX0KPgo+IC0JdHJhY2VfaTkxNV92 bWFfdW5iaW5kKHZtYSk7Cj4gLQo+IC0Jdm1hLT52bS0+dW5iaW5kX3ZtYSh2bWEpOwo+ICsJaWYg KGxpa2VseSghdm1hLT52bS0+Y2xvc2VkKSkgewo+ICsJCXRyYWNlX2k5MTVfdm1hX3VuYmluZCh2 bWEpOwo+ICsJCXZtYS0+dm0tPnVuYmluZF92bWEodm1hKTsKPiArCX0KPiAgIAl2bWEtPmJvdW5k ID0gMDsKPgo+IC0JbGlzdF9kZWxfaW5pdCgmdm1hLT52bV9saW5rKTsKPiArCWxpc3RfbW92ZV90 YWlsKCZ2bWEtPnZtX2xpbmssICZ2bWEtPnZtLT51bmJvdW5kX2xpc3QpOwo+ICAgCWlmICh2bWEt PmlzX2dndHQpIHsKPiAgIAkJaWYgKHZtYS0+Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJ RVdfTk9STUFMKSB7Cj4gICAJCQlvYmotPm1hcF9hbmRfZmVuY2VhYmxlID0gZmFsc2U7Cj4gQEAg LTI4ODIsNyArMjg4NCw3IEBAIHNlYXJjaF9mcmVlOgo+ICAgCQlnb3RvIGVycl9yZW1vdmVfbm9k ZTsKPgo+ICAgCWxpc3RfbW92ZV90YWlsKCZvYmotPmdsb2JhbF9saXN0LCAmZGV2X3ByaXYtPm1t LmJvdW5kX2xpc3QpOwo+IC0JbGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmdm0tPmluYWN0 aXZlX2xpc3QpOwo+ICsJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtLT5pbmFjdGl2 ZV9saXN0KTsKPgo+ICAgCXJldHVybiB2bWE7Cj4KPiBAQCAtMzg5MCw2ICszODkyLDcgQEAgdm9p ZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAlpZiAoIWxp c3RfZW1wdHkoJnZtYS0+ZXhlY19saXN0KSkKPiAgIAkJcmV0dXJuOwo+Cj4gKwlsaXN0X2RlbCgm dm1hLT52bV9saW5rKTsKPiAgIAlpZiAoIXZtYS0+aXNfZ2d0dCkKPiAgIAkJaTkxNV9wcGd0dF9w dXQoaTkxNV92bV90b19wcGd0dCh2bWEtPnZtKSk7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCj4gaW5kZXggYzRhOGE2NGNkMWIyLi45NjY5NTQ3YzdjMmQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTE1Myw2ICsxNTMs NyBAQCB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfZnJlZShzdHJ1Y3Qga3JlZiAqY3R4X3JlZikKPiAg IAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gY29udGFpbmVyX29mKGN0eF9yZWYsIHR5cGVv ZigqY3R4KSwgcmVmKTsKPgo+ICAgCXRyYWNlX2k5MTVfY29udGV4dF9mcmVlKGN0eCk7Cj4gKwlS UV9CVUdfT04oIWN0eC0+Y2xvc2VkKTsKCk5vcm1hbCBCVUdfT04gSSB0aGluay4KCj4KPiAgIAlp ZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ICAgCQlpbnRlbF9scl9jb250ZXh0X2ZyZWUoY3R4 KTsKPiBAQCAtMjA5LDYgKzIxMCwzNiBAQCBpOTE1X2dlbV9hbGxvY19jb250ZXh0X29iaihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSkKPiAgIAlyZXR1cm4gb2JqOwo+ICAgfQo+ Cj4gK3N0YXRpYyB2b2lkIGk5MTVfcHBndHRfY2xvc2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0pCj4gK3sKPiArCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlc1tdID0gewo+ICsJCSZ2bS0+ YWN0aXZlX2xpc3QsCj4gKwkJJnZtLT5pbmFjdGl2ZV9saXN0LAo+ICsJCSZ2bS0+dW5ib3VuZF9s aXN0LAo+ICsJCU5VTEwsCj4gKwl9LCAqKnBoYXNlOwo+ICsKPiArCVJRX0JVR19PTih2bS0+aXNf Z2d0dCk7Cj4gKwlSUV9CVUdfT04odm0tPmNsb3NlZCk7CgpNb3JlLCBhbmQgZWxzZXdoZXJlLgoK PiArCXZtLT5jbG9zZWQgPSB0cnVlOwo+ICsKPiArCWZvciAocGhhc2UgPSBwaGFzZXM7ICpwaGFz ZTsgcGhhc2UrKykgewo+ICsJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdm47Cj4gKwo+ICsJCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHZuLCAqcGhhc2UsIHZtX2xpbmspCj4gKwkJCWk5 MTVfdm1hX2Nsb3NlKHZtYSk7CgpDYW4ndCByZWFsbHkgY2Fycnkgb24gc2luY2UgSSBkb24ndCBz ZWUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMuCgpEb2VzIGl0IHdhaXQgZm9yIHJldGlyZW1l bnQ/Cgo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb250ZXh0X2Nsb3NlKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgpCj4gK3sKPiArCVJRX0JVR19PTihjdHgtPmNsb3NlZCk7Cj4gKwlj dHgtPmNsb3NlZCA9IHRydWU7Cj4gKwlpZiAoY3R4LT5wcGd0dCkKPiArCQlpOTE1X3BwZ3R0X2Ns b3NlKCZjdHgtPnBwZ3R0LT5iYXNlKTsKPiArCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uo Y3R4KTsKPiArfQo+ICsKPiAgIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gICBfX2Ny ZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCSAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYpCj4gQEAgLTI1Niw3ICsyODcsNyBAQCBf X2NyZWF0ZV9od19jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJcmV0dXJuIGN0 eDsKPgo+ICAgZXJyX291dDoKPiAtCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsK PiArCWNvbnRleHRfY2xvc2UoY3R4KTsKPiAgIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAgfQo+ Cj4gQEAgLTMxOCw3ICszNDksNyBAQCBlcnJfdW5waW46Cj4gICAJCWk5MTVfZ2VtX29iamVjdF9n Z3R0X3VucGluKGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpOwo+ICAgZXJyX2Rlc3Ryb3k6 Cj4gICAJaWRyX3JlbW92ZSgmZmlsZV9wcml2LT5jb250ZXh0X2lkciwgY3R4LT51c2VyX2hhbmRs ZSk7Cj4gLQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4gKwljb250ZXh0X2Ns b3NlKGN0eCk7Cj4gICAJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgIH0KPgo+IEBAIC00NzAsNyAr NTAxLDcgQEAgc3RhdGljIGludCBjb250ZXh0X2lkcl9jbGVhbnVwKGludCBpZCwgdm9pZCAqcCwg dm9pZCAqZGF0YSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcDsKPgo+ IC0JaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShjdHgpOwo+ICsJY29udGV4dF9jbG9zZShj dHgpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gQEAgLTg5NCw3ICs5MjUsNyBAQCBpbnQgaTkx NV9nZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gICAJfQo+Cj4gICAJaWRyX3JlbW92ZSgmY3R4LT5maWxlX3ByaXYtPmNvbnRleHRf aWRyLCBjdHgtPnVzZXJfaGFuZGxlKTsKPiAtCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uo Y3R4KTsKPiArCWNvbnRleHRfY2xvc2UoY3R4KTsKPiAgIAltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKPgo+ICAgCURSTV9ERUJVR19EUklWRVIoIkhXIGNvbnRleHQgJWQgZGVzdHJv eWVkXG4iLCBhcmdzLT5jdHhfaWQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g aW5kZXggOWY1OTRjMzNiZDBhLi4zNTQyMzZkNzI0MzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+IEBAIC0yMTMwLDYgKzIxMzAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Fk ZHJlc3Nfc3BhY2VfaW5pdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAl2bS0+ ZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAgIAlJTklUX0xJU1RfSEVBRCgmdm0tPmFjdGl2ZV9saXN0 KTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmdm0tPmluYWN0aXZlX2xpc3QpOwo+ICsJSU5JVF9MSVNU X0hFQUQoJnZtLT51bmJvdW5kX2xpc3QpOwo+ICAgCWxpc3RfYWRkX3RhaWwoJnZtLT5nbG9iYWxf bGluaywgJmRldl9wcml2LT52bV9saXN0KTsKPiAgIH0KPgo+IEBAIC0yMjE0LDkgKzIyMTUsMTAg QEAgdm9pZCAgaTkxNV9wcGd0dF9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+Cj4gICAJdHJh Y2VfaTkxNV9wcGd0dF9yZWxlYXNlKCZwcGd0dC0+YmFzZSk7Cj4KPiAtCS8qIHZtYXMgc2hvdWxk IGFscmVhZHkgYmUgdW5ib3VuZCAqLwo+ICsJLyogdm1hcyBzaG91bGQgYWxyZWFkeSBiZSB1bmJv dW5kIGFuZCBkZXN0cm95ZWQgKi8KPiAgIAlXQVJOX09OKCFsaXN0X2VtcHR5KCZwcGd0dC0+YmFz ZS5hY3RpdmVfbGlzdCkpOwo+ICAgCVdBUk5fT04oIWxpc3RfZW1wdHkoJnBwZ3R0LT5iYXNlLmlu YWN0aXZlX2xpc3QpKTsKPiArCVdBUk5fT04oIWxpc3RfZW1wdHkoJnBwZ3R0LT5iYXNlLnVuYm91 bmRfbGlzdCkpOwo+Cj4gICAJbGlzdF9kZWwoJnBwZ3R0LT5iYXNlLmdsb2JhbF9saW5rKTsKPiAg IAlkcm1fbW1fdGFrZWRvd24oJnBwZ3R0LT5iYXNlLm1tKTsKPiBAQCAtMjY5OCw3ICsyNzAwLDcg QEAgc3RhdGljIGludCBpOTE1X2dlbV9zZXR1cF9nbG9iYWxfZ3R0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCQl9Cj4gICAJCXZtYS0+Ym91bmQgfD0gR0xP QkFMX0JJTkQ7Cj4gLQkJbGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmZ2d0dF92bS0+aW5h Y3RpdmVfbGlzdCk7Cj4gKwkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJmdndHRfdm0t PmluYWN0aXZlX2xpc3QpOwo+ICAgCX0KPgo+ICAgCS8qIENsZWFyIGFueSBub24tcHJlYWxsb2Nh dGVkIGJsb2NrcyAqLwo+IEBAIC0zMjUyLDYgKzMyNTQsOCBAQCBfX2k5MTVfZ2VtX3ZtYV9jcmVh dGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAlzdHJ1Y3QgaTkxNV92bWEg KnZtYTsKPiAgIAlpbnQgaTsKPgo+ICsJUlFfQlVHX09OKHZtLT5jbG9zZWQpOwo+ICsKPiAgIAlp ZiAoV0FSTl9PTihpOTE1X2lzX2dndHQodm0pICE9ICEhZ2d0dF92aWV3KSkKPiAgIAkJcmV0dXJu IEVSUl9QVFIoLUVJTlZBTCk7Cj4KPiBAQCAtMzI1OSwxMSArMzI2MywxMSBAQCBfX2k5MTVfZ2Vt X3ZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAlpZiAodm1h ID09IE5VTEwpCj4gICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+Cj4gLQlJTklUX0xJU1Rf SEVBRCgmdm1hLT52bV9saW5rKTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmdm1hLT5vYmpfbGluayk7 Cj4gICAJSU5JVF9MSVNUX0hFQUQoJnZtYS0+ZXhlY19saXN0KTsKPiAgIAlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRSh2bWEtPmxhc3RfcmVhZCk7IGkrKykKPiAgIAkJaW5pdF9yZXF1ZXN0X2Fj dGl2ZSgmdm1hLT5sYXN0X3JlYWRbaV0sIGk5MTVfdm1hX3JldGlyZSk7Cj4gKwlsaXN0X2FkZCgm dm1hLT52bV9saW5rLCAmdm0tPnVuYm91bmRfbGlzdCk7Cj4gICAJdm1hLT52bSA9IHZtOwo+ICAg CXZtYS0+b2JqID0gb2JqOwo+ICAgCXZtYS0+aXNfZ2d0dCA9IGk5MTVfaXNfZ2d0dCh2bSk7Cj4g QEAgLTMzMTAsNiArMzMxNCw3IEBAIGk5MTVfZ2VtX29ial9sb29rdXBfb3JfY3JlYXRlX2dndHRf dm1hKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJaWYgKCF2bWEpCj4gICAJ CXZtYSA9IF9faTkxNV9nZW1fdm1hX2NyZWF0ZShvYmosIGdndHQsIHZpZXcpOwo+Cj4gKwlSUV9C VUdfT04odm1hLT5jbG9zZWQpOwo+ICAgCXJldHVybiB2bWE7Cj4KPiAgIH0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuaAo+IGluZGV4IGJlN2U4NTI2YjIxOS4uM2JkMmE0ZjQ5OTBjIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtMjg0LDYgKzI4NCw4IEBA IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ugewo+ICAgCXU2NCBzdGFydDsJCS8qIFN0YXJ0IG9m ZnNldCBhbHdheXMgMCBmb3IgZHJpMiAqLwo+ICAgCXU2NCB0b3RhbDsJCS8qIHNpemUgYWRkciBz cGFjZSBtYXBzIChleC4gMkdCIGZvciBnZ3R0KSAqLwo+Cj4gKwlib29sIGNsb3NlZDsKPiArCj4g ICAJc3RydWN0IGk5MTVfcGFnZV9zY3JhdGNoICpzY3JhdGNoX3BhZ2U7Cj4gICAJc3RydWN0IGk5 MTVfcGFnZV90YWJsZSAqc2NyYXRjaF9wdDsKPiAgIAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9y eSAqc2NyYXRjaF9wZDsKPiBAQCAtMzEyLDYgKzMxNCwxMyBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlIHsKPiAgIAkgKi8KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGluYWN0aXZlX2xpc3Q7Cj4K PiArCS8qKgo+ICsJICogTGlzdCBvZiB2bWEgdGhhdCBoYXZlIGJlZW4gdW5ib3VuZC4KPiArCSAq Cj4gKwkgKiBBIHJlZmVyZW5jZSBpcyBub3QgaGVsZCBvbiB0aGUgYnVmZmVyIHdoaWxlIG9uIHRo aXMgbGlzdC4KCnMvYnVmZmVyL29iamVjdC8KCj4gKwkgKi8KPiArCXN0cnVjdCBsaXN0X2hlYWQg dW5ib3VuZF9saXN0Owo+ICsKPiAgIAkvKiBGSVhNRTogTmVlZCBhIG1vcmUgZ2VuZXJpYyByZXR1 cm4gdHlwZSAqLwo+ICAgCWdlbjZfcHRlX3QgKCpwdGVfZW5jb2RlKShkbWFfYWRkcl90IGFkZHIs Cj4gICAJCQkJIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9zdG9sZW4uYwo+IGluZGV4IDMwNWQ1OGE1Zjc0NS4uNGE4MDMzMTFmNWJmIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBAQCAtNjg4LDcgKzY4 OCw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJfQo+Cj4gICAJCXZtYS0+Ym91bmQgfD0gR0xPQkFM X0JJTkQ7Cj4gLQkJbGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmZ2d0dC0+aW5hY3RpdmVf bGlzdCk7Cj4gKwkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJmdndHQtPmluYWN0aXZl X2xpc3QpOwo+ICAgCX0KPgo+ICAgCWxpc3RfYWRkX3RhaWwoJm9iai0+Z2xvYmFsX2xpc3QsICZk ZXZfcHJpdi0+bW0uYm91bmRfbGlzdCk7Cj4KClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==