From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 46/73] drm/i915: Release vma when the handle is closed Date: Mon, 01 Aug 2016 14:26:34 +0300 Message-ID: <1470050794.4174.6.camel@linux.intel.com> References: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> <1470042681-25318-47-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 975E86E2E7 for ; Mon, 1 Aug 2016 11:26:37 +0000 (UTC) In-Reply-To: <1470042681-25318-47-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 T24gbWEsIDIwMTYtMDgtMDEgYXQgMTA6MTAgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJ biBvcmRlciB0byBwcmV2ZW50IGEgbGVhayBvZiB0aGUgdm1hIG9uIHNoYXJlZCBvYmplY3RzLCB3 ZSBuZWVkIHRvCj4gaG9vayBpbnRvIHRoZSBvYmplY3RfY2xvc2UgY2FsbGJhY2sgdG8gZGVzdHJv eSB0aGUgdm1hIG9uIHRoZSBvYmplY3QgZm9yCj4gdGhpcyBmaWxlLiBIb3dldmVyLCBpZiB3ZSBk ZXN0cm95ZWQgdGhhdCB2bWEgaW1tZWRpYXRlbHkgd2UgbWF5IGNhdXNlCj4gdW5leHBlY3RlZCBh cHBsaWNhdGlvbiBzdGFsbHMgYXMgd2UgdHJ5IHRvIHVuYmluZCBhIGJ1c3kgdm1hIC0gaGVuY2Ug d2UKPiBkZWZlciB0aGUgdW5iaW5kIHRvIHdoZW4gd2UgcmV0aXJlIHRoZSB2bWEuCj4gCj4gdjI6 IEtlZXAgdm1hIGFsbG9jYXRlZCB1bnRpbCBjbG9zZWQuIFRoaXMgaXMgdXNlZnVsIGZvciBhIGxh dGVyCj4gb3B0aW1pc2F0aW9uLCBidXQgaXQgaXMgcmVxdWlyZWQgbm93IGluIG9yZGVyIHRvIGhh bmRsZSBwb3RlbnRpYWwKPiByZWN1cnNpb24gb2YgaTkxNV92bWFfdW5iaW5kKCkgYnkgcmV0aXJp bmcgaXRzZWxmLgo+IHYzOiBDb21tZW50cyBhcmUgaW1wb3J0YW50Lgo+IAo+IFRlc3RjYXNlOiBp Z3QvZ2VtX3BwZ2d0dC9mbGluay1hbmQtY2xvc2Utdm1hLWxlYWsKPiBTaWduZWQtb2ZmLWJ5OiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsZSBDZXJhb2xv IFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KCkFscmVhZHkgYWRkZWQg dG8gcHJldmlvdXMgc2VyaWVzOwoKUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFz LmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoMKgfMKgwqA0ICstCj4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jwqDCoMKgwqDCoMKgwqB8IDg4ICsrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jIHzC oMKgOCArLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuY8KgwqDCoHwg MjUgKysrKysrKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmjCoMKg wqB8wqDCoDEgKwo+IMKgNiBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCA0NzhlODE2OGFkOTQu Ljg2OWJhYTZhNTE5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0yNTc0LDYg KzI1NzQsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewo+IMKgCS5wb3N0 Y2xvc2UgPSBpOTE1X2RyaXZlcl9wb3N0Y2xvc2UsCj4gwqAJLnNldF9idXNpZCA9IGRybV9wY2lf c2V0X2J1c2lkLAo+IMKgCj4gKwkuZ2VtX2Nsb3NlX29iamVjdCA9IGk5MTVfZ2VtX2Nsb3NlX29i amVjdCwKPiDCoAkuZ2VtX2ZyZWVfb2JqZWN0ID0gaTkxNV9nZW1fZnJlZV9vYmplY3QsCj4gwqAJ LmdlbV92bV9vcHMgPSAmaTkxNV9nZW1fdm1fb3BzLAo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gaW5kZXggYTFjNGM3NjhjMGMzLi5mNDcwZWExOTUyNTMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBAQCAtMzAxNCw4ICszMDE0LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmk5MTVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiDC oAkJCQkJCcKgwqBzaXplX3Qgc2l6ZSk7Cj4gwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9mcm9tX2RhdGEoCj4gwqAJCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBzaXplKTsKPiArdm9pZCBpOTE1X2dlbV9j bG9zZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0sIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSk7Cj4gwqB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqKTsKPiAtdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZt YSk7Cj4gwqAKPiDCoC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQmZnJpZW5kcy4gKi8KPiDCoCNk ZWZpbmUgUElOX01BUFBBQkxFCSgxPDwwKQo+IEBAIC0zMDQ4LDYgKzMwNDgsOCBAQCBpbnQgX19t dXN0X2NoZWNrIGk5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cj4gwqAgKiBf Z3VhcmFudGVlXyBWTUEgaW4gcXVlc3Rpb24gaXMgX25vdCBpbiB1c2VfIGFueXdoZXJlLgo+IMKg ICovCj4gwqBpbnQgX19tdXN0X2NoZWNrIF9faTkxNV92bWFfdW5iaW5kX25vX3dhaXQoc3RydWN0 IGk5MTVfdm1hICp2bWEpOwo+ICt2b2lkIGk5MTVfdm1hX2Nsb3NlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hKTsKPiArdm9pZCBpOTE1X3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKPiDC oAo+IMKgaW50IGk5MTVfZ2VtX29iamVjdF91bmJpbmQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaik7Cj4gwqBpbnQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCAzZWJi ZWI0ZTBhMjQuLjc0ZDI0ZDdlM2NhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBA IC0yNTk2LDYgKzI1OTYsMTkgQEAgb3V0X3JlYXJtOgo+IMKgCX0KPiDCoH0KPiDCoAo+ICt2b2lk IGk5MTVfZ2VtX2Nsb3NlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwgc3RydWN0 IGRybV9maWxlICpmaWxlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq ID0gdG9faW50ZWxfYm8oZ2VtKTsKPiArCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZw cml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZuOwo+ ICsKPiArCW11dGV4X2xvY2soJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKQo+ ICsJCWlmICh2bWEtPnZtLT5maWxlID09IGZwcml2KQo+ICsJCQlpOTE1X3ZtYV9jbG9zZSh2bWEp Owo+ICsJbXV0ZXhfdW5sb2NrKCZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICt9Cj4g Kwo+IMKgLyoqCj4gwqAgKiBpOTE1X2dlbV93YWl0X2lvY3RsIC0gaW1wbGVtZW50cyBEUk1fSU9D VExfSTkxNV9HRU1fV0FJVAo+IMKgICogQGRldjogZHJtIGRldmljZSBwb2ludGVyCj4gQEAgLTI4 MDMsMjYgKzI4MTYsMzIgQEAgc3RhdGljIGludCBfX2k5MTVfdm1hX3VuYmluZChzdHJ1Y3QgaTkx NV92bWEgKnZtYSwgYm9vbCB3YWl0KQo+IMKgCWlmIChhY3RpdmUgJiYgd2FpdCkgewo+IMKgCQlp bnQgaWR4Owo+IMKgCj4gKwkJLyogV2hlbiBhIGNsb3NlZCBWTUEgaXMgcmV0aXJlZCwgaXQgaXMg dW5ib3VuZCAtIGVlay4KPiArCQnCoCogSW4gb3JkZXIgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5n IHJlY3Vyc2l2ZWx5IGNsb3NlZCwKPiArCQnCoCogdGFrZSBhIHBpbiBvbiB0aGUgdm1hIHNvIHRo YXQgdGhlIHNlY29uZCB1bmJpbmQgaXMKPiArCQnCoCogYWJvcnRlZC4KPiArCQnCoCovCj4gKwkJ dm1hLT5waW5fY291bnQrKzsKPiArCj4gwqAJCWZvcl9lYWNoX2FjdGl2ZShhY3RpdmUsIGlkeCkg ewo+IMKgCQkJcmV0ID0gaTkxNV9nZW1fYWN0aXZlX3JldGlyZSgmdm1hLT5sYXN0X3JlYWRbaWR4 XSwKPiDCoAkJCQkJCcKgwqDCoCZ2bWEtPnZtLT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gwqAJCQlp ZiAocmV0KQo+IC0JCQkJcmV0dXJuIHJldDsKPiArCQkJCWJyZWFrOwo+IMKgCQl9Cj4gwqAKPiAr CQl2bWEtPnBpbl9jb3VudC0tOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ IMKgCQlHRU1fQlVHX09OKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKTsKPiDCoAl9Cj4gwqAKPiDC oAlpZiAodm1hLT5waW5fY291bnQpCj4gwqAJCXJldHVybiAtRUJVU1k7Cj4gwqAKPiAtCWlmIChs aXN0X2VtcHR5KCZ2bWEtPm9ial9saW5rKSkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlpZiAoIWRy bV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkgewo+IC0JCWk5MTVfZ2VtX3ZtYV9kZXN0 cm95KHZtYSk7Cj4gLQkJcmV0dXJuIDA7Cj4gLQl9Cj4gKwlpZiAoIWRybV9tbV9ub2RlX2FsbG9j YXRlZCgmdm1hLT5ub2RlKSkKPiArCQlnb3RvIGRlc3Ryb3k7Cj4gwqAKPiDCoAlHRU1fQlVHX09O KG9iai0+YmluZF9jb3VudCA9PSAwKTsKPiDCoAlHRU1fQlVHX09OKCFvYmotPnBhZ2VzKTsKPiBA QCAtMjg1NSw3ICsyODc0LDYgQEAgc3RhdGljIGludCBfX2k5MTVfdm1hX3VuYmluZChzdHJ1Y3Qg aTkxNV92bWEgKnZtYSwgYm9vbCB3YWl0KQo+IMKgCX0KPiDCoAo+IMKgCWRybV9tbV9yZW1vdmVf bm9kZSgmdm1hLT5ub2RlKTsKPiAtCWk5MTVfZ2VtX3ZtYV9kZXN0cm95KHZtYSk7Cj4gwqAKPiDC oAkvKiBTaW5jZSB0aGUgdW5ib3VuZCBsaXN0IGlzIGdsb2JhbCwgb25seSBtb3ZlIHRvIHRoYXQg bGlzdCBpZgo+IMKgCcKgKiBubyBtb3JlIFZNQXMgZXhpc3QuICovCj4gQEAgLTI4NjksNiArMjg4 NywxMCBAQCBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1h LCBib29sIHdhaXQpCj4gwqAJwqAqLwo+IMKgCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhv YmopOwo+IMKgCj4gK2Rlc3Ryb3k6Cj4gKwlpZiAodW5saWtlbHkodm1hLT5jbG9zZWQpKQo+ICsJ CWk5MTVfdm1hX2Rlc3Ryb3kodm1hKTsKPiArCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiBA QCAtMzA0Myw3ICszMDY1LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiDCoAo+IMKgCQlpZiAob2Zmc2V0ICYgKGFsaWdubWVu dCAtIDEpIHx8IG9mZnNldCArIHNpemUgPiBlbmQpIHsKPiDCoAkJCXJldCA9IC1FSU5WQUw7Cj4g LQkJCWdvdG8gZXJyX2ZyZWVfdm1hOwo+ICsJCQlnb3RvIGVycl92bWE7Cj4gwqAJCX0KPiDCoAkJ dm1hLT5ub2RlLnN0YXJ0ID0gb2Zmc2V0Owo+IMKgCQl2bWEtPm5vZGUuc2l6ZSA9IHNpemU7Cj4g QEAgLTMwNTUsNyArMzA3Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gwqAJCQkJcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9k ZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKPiDCoAkJfQo+IMKgCQlpZiAocmV0KQo+IC0JCQlnb3Rv IGVycl9mcmVlX3ZtYTsKPiArCQkJZ290byBlcnJfdm1hOwo+IMKgCX0gZWxzZSB7Cj4gwqAJCWlm IChmbGFncyAmIFBJTl9ISUdIKSB7Cj4gwqAJCQlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hf QkVMT1c7Cj4gQEAgLTMwODAsNyArMzEwMiw3IEBAIHNlYXJjaF9mcmVlOgo+IMKgCQkJaWYgKHJl dCA9PSAwKQo+IMKgCQkJCWdvdG8gc2VhcmNoX2ZyZWU7Cj4gwqAKPiAtCQkJZ290byBlcnJfZnJl ZV92bWE7Cj4gKwkJCWdvdG8gZXJyX3ZtYTsKPiDCoAkJfQo+IMKgCX0KPiDCoAlpZiAoV0FSTl9P TighaTkxNV9nZW1fdmFsaWRfZ3R0X3NwYWNlKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCkpKSB7Cj4g QEAgLTMxMDEsOCArMzEyMyw3IEBAIHNlYXJjaF9mcmVlOgo+IMKgCj4gwqBlcnJfcmVtb3ZlX25v ZGU6Cj4gwqAJZHJtX21tX3JlbW92ZV9ub2RlKCZ2bWEtPm5vZGUpOwo+IC1lcnJfZnJlZV92bWE6 Cj4gLQlpOTE1X2dlbV92bWFfZGVzdHJveSh2bWEpOwo+ICtlcnJfdm1hOgo+IMKgCXZtYSA9IEVS Ul9QVFIocmV0KTsKPiDCoGVycl91bnBpbjoKPiDCoAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFn ZXMob2JqKTsKPiBAQCAtNDA1MSwyMSArNDA3MiwxOCBAQCB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2Jq ZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaikKPiDCoAo+IMKgCXRyYWNlX2k5MTVf Z2VtX29iamVjdF9kZXN0cm95KG9iaik7Cj4gwqAKPiArCS8qIEFsbCBmaWxlLW93bmVkIFZNQSBz aG91bGQgaGF2ZSBiZWVuIHJlbGVhc2VkIGJ5IHRoaXMgcG9pbnQgdGhyb3VnaAo+ICsJwqAqIGk5 MTVfZ2VtX2Nsb3NlX29iamVjdCgpLCBvciBlYXJsaWVyIGJ5IGk5MTVfZ2VtX2NvbnRleHRfY2xv c2UoKS4KPiArCcKgKiBIb3dldmVyLCB0aGUgb2JqZWN0IG1heSBhbHNvIGJlIGJvdW5kIGludG8g dGhlIGdsb2JhbCBHVFQgKGUuZy4KPiArCcKgKiBvbGRlciBHUFVzIHdpdGhvdXQgcGVyLXByb2Nl c3Mgc3VwcG9ydCwgb3IgZm9yIGRpcmVjdCBhY2Nlc3MgdGhyb3VnaAo+ICsJwqAqIHRoZSBHVFQg ZWl0aGVyIGZvciB0aGUgdXNlciBvciBmb3Igc2Nhbm91dCkuIFRob3NlIFZNQSBzdGlsbCBuZWVk IHRvCj4gKwnCoCogdW5ib3VuZCBub3cuCj4gKwnCoCovCj4gwqAJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHZtYSwgbmV4dCwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKSB7Cj4gLQkJaW50IHJl dDsKPiAtCj4gKwkJR0VNX0JVR19PTighdm1hLT5pc19nZ3R0KTsKPiArCQlHRU1fQlVHX09OKGk5 MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKTsKPiDCoAkJdm1hLT5waW5fY291bnQgPSAwOwo+IC0JCXJl dCA9IF9faTkxNV92bWFfdW5iaW5kX25vX3dhaXQodm1hKTsKPiAtCQlpZiAoV0FSTl9PTihyZXQg PT0gLUVSRVNUQVJUU1lTKSkgewo+IC0JCQlib29sIHdhc19pbnRlcnJ1cHRpYmxlOwo+IC0KPiAt CQkJd2FzX2ludGVycnVwdGlibGUgPSBkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZTsKPiAtCQkJ ZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgPSBmYWxzZTsKPiAtCj4gLQkJCVdBUk5fT04oaTkx NV92bWFfdW5iaW5kKHZtYSkpOwo+IC0KPiAtCQkJZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUg PSB3YXNfaW50ZXJydXB0aWJsZTsKPiAtCQl9Cj4gKwkJaTkxNV92bWFfY2xvc2Uodm1hKTsKPiDC oAl9Cj4gwqAJR0VNX0JVR19PTihvYmotPmJpbmRfY291bnQpOwo+IMKgCj4gQEAgLTQxMjksMjIg KzQxNDcsNiBAQCBzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfZ2VtX29ial90b19nZ3R0X3ZpZXcoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiDCoAlyZXR1cm4gTlVMTDsKPiDCoH0KPiDC oAo+IC12b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+IC17 Cj4gLQlXQVJOX09OKHZtYS0+bm9kZS5hbGxvY2F0ZWQpOwo+IC0KPiAtCS8qIEtlZXAgdGhlIHZt YSBhcyBhIHBsYWNlaG9sZGVyIGluIHRoZSBleGVjYnVmZmVyIHJlc2VydmF0aW9uIGxpc3RzICov Cj4gLQlpZiAoIWxpc3RfZW1wdHkoJnZtYS0+ZXhlY19saXN0KSkKPiAtCQlyZXR1cm47Cj4gLQo+ IC0JaWYgKCF2bWEtPmlzX2dndHQpCj4gLQkJaTkxNV9wcGd0dF9wdXQoaTkxNV92bV90b19wcGd0 dCh2bWEtPnZtKSk7Cj4gLQo+IC0JbGlzdF9kZWwoJnZtYS0+b2JqX2xpbmspOwo+IC0KPiAtCWtt ZW1fY2FjaGVfZnJlZSh0b19pOTE1KHZtYS0+b2JqLT5iYXNlLmRldiktPnZtYXMsIHZtYSk7Cj4g LX0KPiAtCj4gwqBzdGF0aWMgdm9pZAo+IMKgaTkxNV9nZW1fc3RvcF9lbmdpbmVzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gwqB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5j Cj4gaW5kZXggODFmN2I0MzgzZDVlLi4zNDM3Y2VkNzZjYjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiBAQCAtMTgyLDggKzE4Miw4IEBAIGZvdW5kOgo+IMKgCQkJ CcKgwqDCoMKgwqDCoMKgc3RydWN0IGk5MTVfdm1hLAo+IMKgCQkJCcKgwqDCoMKgwqDCoMKgZXhl Y19saXN0KTsKPiDCoAkJaWYgKGRybV9tbV9zY2FuX3JlbW92ZV9ibG9jaygmdm1hLT5ub2RlKSkg ewo+ICsJCQl2bWEtPnBpbl9jb3VudCsrOwo+IMKgCQkJbGlzdF9tb3ZlKCZ2bWEtPmV4ZWNfbGlz dCwgJmV2aWN0aW9uX2xpc3QpOwo+IC0JCQlpOTE1X2dlbV9vYmplY3RfZ2V0KHZtYS0+b2JqKTsK PiDCoAkJCWNvbnRpbnVlOwo+IMKgCQl9Cj4gwqAJCWxpc3RfZGVsX2luaXQoJnZtYS0+ZXhlY19s aXN0KTsKPiBAQCAtMTkxLDE4ICsxOTEsMTQgQEAgZm91bmQ6Cj4gwqAKPiDCoAkvKiBVbmJpbmRp bmcgd2lsbCBlbWl0IGFueSByZXF1aXJlZCBmbHVzaGVzICovCj4gwqAJd2hpbGUgKCFsaXN0X2Vt cHR5KCZldmljdGlvbl9saXN0KSkgewo+IC0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7Cj4gLQo+IMKgCQl2bWEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZldmljdGlvbl9saXN0LAo+IMKg CQkJCcKgwqDCoMKgwqDCoMKgc3RydWN0IGk5MTVfdm1hLAo+IMKgCQkJCcKgwqDCoMKgwqDCoMKg ZXhlY19saXN0KTsKPiDCoAo+IC0JCW9iaiA9wqDCoHZtYS0+b2JqOwo+IMKgCQlsaXN0X2RlbF9p bml0KCZ2bWEtPmV4ZWNfbGlzdCk7Cj4gKwkJdm1hLT5waW5fY291bnQtLTsKPiDCoAkJaWYgKHJl dCA9PSAwKQo+IMKgCQkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7Cj4gLQo+IC0JCWk5MTVf Z2VtX29iamVjdF9wdXQob2JqKTsKPiDCoAl9Cj4gwqAKPiDCoAlyZXR1cm4gcmV0Owo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggZjVmNTYzZDBhMWNlLi5lMGE4NjRhZTll MGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0zMzM1LDYgKzMz MzUsMzEgQEAgaTkxNV92bWFfcmV0aXJlKHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwK PiDCoAkJcmV0dXJuOwo+IMKgCj4gwqAJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZt YS0+dm0tPmluYWN0aXZlX2xpc3QpOwo+ICsJaWYgKHVubGlrZWx5KHZtYS0+Y2xvc2VkICYmICF2 bWEtPnBpbl9jb3VudCkpCj4gKwkJV0FSTl9PTihpOTE1X3ZtYV91bmJpbmQodm1hKSk7Cj4gK30K PiArCj4gK3ZvaWQgaTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiArewo+ ICsJR0VNX0JVR19PTih2bWEtPm5vZGUuYWxsb2NhdGVkKTsKPiArCUdFTV9CVUdfT04oaTkxNV92 bWFfaXNfYWN0aXZlKHZtYSkpOwo+ICsJR0VNX0JVR19PTighdm1hLT5jbG9zZWQpOwo+ICsKPiAr CWxpc3RfZGVsKCZ2bWEtPnZtX2xpbmspOwo+ICsJaWYgKCF2bWEtPmlzX2dndHQpCj4gKwkJaTkx NV9wcGd0dF9wdXQoaTkxNV92bV90b19wcGd0dCh2bWEtPnZtKSk7Cj4gKwo+ICsJa21lbV9jYWNo ZV9mcmVlKHRvX2k5MTUodm1hLT5vYmotPmJhc2UuZGV2KS0+dm1hcywgdm1hKTsKPiArfQo+ICsK PiArdm9pZCBpOTE1X3ZtYV9jbG9zZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiArewo+ICsJR0VN X0JVR19PTih2bWEtPmNsb3NlZCk7Cj4gKwl2bWEtPmNsb3NlZCA9IHRydWU7Cj4gKwo+ICsJbGlz dF9kZWxfaW5pdCgmdm1hLT5vYmpfbGluayk7Cj4gKwlpZiAoIWk5MTVfdm1hX2lzX2FjdGl2ZSh2 bWEpICYmICF2bWEtPnBpbl9jb3VudCkKPiArCQlXQVJOX09OKF9faTkxNV92bWFfdW5iaW5kX25v X3dhaXQodm1hKSk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggNjc0ZTExOGUzNjg2Li5hM2VhMWJk YTJiMWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IEBAIC0xODksNiAr MTg5LDcgQEAgc3RydWN0IGk5MTVfdm1hIHsKPiDCoCNkZWZpbmUgTE9DQUxfQklORAkoMTw8MSkK PiDCoAl1bnNpZ25lZCBpbnQgYm91bmQgOiA0Owo+IMKgCWJvb2wgaXNfZ2d0dCA6IDE7Cj4gKwli b29sIGNsb3NlZCA6IDE7Cj4gwqAKPiDCoAkvKioKPiDCoAnCoCogU3VwcG9ydCBkaWZmZXJlbnQg R0dUVCB2aWV3cyBpbnRvIHRoZSBzYW1lIG9iamVjdC4KLS0gCkpvb25hcyBMYWh0aW5lbgpPcGVu IFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpJbnRlbCBDb3Jwb3JhdGlvbgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK