From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 03/37] drm/i915/region: support basic eviction Date: Tue, 30 Jul 2019 18:26:05 +0200 Message-ID: <20190730162605.GC7444@phenom.ffwll.local> References: <20190627205633.1143-1-matthew.auld@intel.com> <20190627205633.1143-4-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C98489388 for ; Tue, 30 Jul 2019 16:26:09 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id i11so63114456edq.0 for ; Tue, 30 Jul 2019 09:26:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190627205633.1143-4-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matthew Auld Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMjcsIDIwMTkgYXQgMDk6NTU6NTlQTSArMDEwMCwgTWF0dGhldyBBdWxkIHdy b3RlOgo+IFN1cHBvcnQgYmFzaWMgZXZpY3Rpb24gZm9yIHJlZ2lvbnMuCj4gCj4gU2lnbmVkLW9m Zi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+IENjOiBKb29uYXMg TGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEFiZGllbCBK YW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KClNvIGZyb20gYSB2ZXJ5 IGhpZ2ggbGV2ZWwgdGhpcyBsb29rcyBsaWtlIGl0IHdhcyBsYXJnZWx5IG1vZGVsbGVkIGFmdGVy Cmk5MTVfZ2VtX3Nocmluay5jIGFuZCBub3QgaTkxNV9nZW1fZXZpY3QuYyAob3VyIG90aGVyICJt YWtlIHJvb20sIHdlJ3JlCnJ1bm5pbmcgb3V0IG9mIHN0dWZmIiBjb2RlKS4gQW55IHNwZWNpZmlj IHJlYXNvbnM/CgpJIHRoaW5rIGk5MTVfZ2VtX2V2aWN0IGlzIGEgbG90IGNsb3NlciBtYXRjaCBm b3Igd2hhdCB3ZSB3YW50IGZvciB2cmFtIChpdApzdGFydGVkIG91dCB0byBtYW5hZ2Ugc2V2ZXJl bHkgbGltaXR0ZWQgR1RUIG9uIGdlbjIvMy80KSBhZnRlciBhbGwuIFdpdGgKdGhlIGNvbXBsaWNh dGlvbiB0aGF0IHdlJ2xsIGhhdmUgdG8gbWFuYWdlIHBoeXNpY2FsIG1lbW9yeSB3aXRoIG11bHRp cGxlCnZpcnR1YWwgbWFwcGluZ3Mgb2YgaXQgb24gdG9wLCBzbyB1bmZvcnR1bmF0ZWx5IHdlIGNh bid0IGp1c3QgcmV1c2UgdGhlCmxvY2tpbmcgcGF0dGVyIENocmlzIGhhcyBjb21lIHVwIHdpdGgg aW4gaGlzIHN0cnVjdF9tdXRleC1yZW1vdmFsIGJyYW5jaC4KQnV0IGF0IGxlYXN0IGNvbmNlcHR1 YWxseSBpdCBzaG91bGQgYmUgYSBsb3QgY2xvc2VyLgoKQnV0IEkgbWlnaHQgYmUgZW50aXJlbHkg b2ZmIHRoZSB0cmFjayB3aXRoIHJlY29uc3RydWN0aW5nIGhvdyB0aGlzIGNvZGUKY2FtZSB0byBi ZSwgc28gcGxlYXNlIGVsYWJvcmF0ZSBhIGJpdC4KClRoYW5rcywgRGFuaWVsCgo+IC0tLQo+ICAu Li4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgNyArKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAxNiArKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYyAgICB8IDg5ICsrKysr KysrKysrKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lv bi5oICAgIHwgMTAgKysrCj4gIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3Jl Z2lvbi5jICB8IDczICsrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19yZWdpb24uYyAgfCAgMSArCj4gIDYgZmlsZXMgY2hhbmdlZCwgMTkyIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAo+IGluZGV4IDhkNzYwZTg1MmM0Yi4uODcwMDBm YzI0YWIzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3RfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3RfdHlwZXMuaAo+IEBAIC03Miw2ICs3MiwxMyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCB7Cj4gIAkgKiBMaXN0IG9mIG1lbW9yeSByZWdpb24gYmxvY2tzIGFsbG9jYXRlZCBmb3Ig dGhpcyBvYmplY3QuCj4gIAkgKi8KPiAgCXN0cnVjdCBsaXN0X2hlYWQgYmxvY2tzOwo+ICsJLyoq Cj4gKwkgKiBFbGVtZW50IHdpdGhpbiBtZW1vcnlfcmVnaW9uLT5vYmplY3RzIG9yIG1lbW9yeV9y ZWdpb24tPnB1cmdlYWJsZSBpZgo+ICsJICogdGhlIG9iamVjdCBpcyBtYXJrZWQgYXMgRE9OVE5F RUQuIEFjY2VzcyBpcyBwcm90ZWN0ZWQgYnkKPiArCSAqIG1lbW9yeV9yZWdpb24tPm9ial9sb2Nr Lgo+ICsJICovCj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHJlZ2lvbl9saW5rOwo+ICsJc3RydWN0IGxp c3RfaGVhZCBldmljdGlvbl9saW5rOwo+ICAKPiAgCXN0cnVjdCB7Cj4gIAkJLyoqCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggZGIzNzQ0YjBiYzgwLi44NTY3N2FlODk4NDkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTEyMiw2ICsxMTIyLDIyIEBAIGk5MTVfZ2Vt X21hZHZpc2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCSAg ICAhaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKQo+ICAJCWk5MTVfZ2VtX29iamVjdF90 cnVuY2F0ZShvYmopOwo+ICAKPiArCWlmIChvYmotPm1lbW9yeV9yZWdpb24pIHsKPiArCQltdXRl eF9sb2NrKCZvYmotPm1lbW9yeV9yZWdpb24tPm9ial9sb2NrKTsKPiArCj4gKwkJc3dpdGNoIChv YmotPm1tLm1hZHYpIHsKPiArCQljYXNlIEk5MTVfTUFEVl9XSUxMTkVFRDoKPiArCQkJbGlzdF9t b3ZlKCZvYmotPnJlZ2lvbl9saW5rLCAmb2JqLT5tZW1vcnlfcmVnaW9uLT5vYmplY3RzKTsKPiAr CQkJYnJlYWs7Cj4gKwkJZGVmYXVsdDoKPiArCQkJbGlzdF9tb3ZlKCZvYmotPnJlZ2lvbl9saW5r LAo+ICsJCQkJICAmb2JqLT5tZW1vcnlfcmVnaW9uLT5wdXJnZWFibGUpOwo+ICsJCQlicmVhazsK PiArCQl9Cj4gKwo+ICsJCW11dGV4X3VubG9jaygmb2JqLT5tZW1vcnlfcmVnaW9uLT5vYmpfbG9j ayk7Cj4gKwl9Cj4gKwo+ICAJYXJncy0+cmV0YWluZWQgPSBvYmotPm1tLm1hZHYgIT0gX19JOTE1 X01BRFZfUFVSR0VEOwo+ICAJbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2spOwo+ICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCj4gaW5kZXggNGM4OTg1M2E3 NzY5Li43MjFiNDdlNDY0OTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVt b3J5X3JlZ2lvbi5jCj4gQEAgLTYsNiArNiw1NiBAQAo+ICAjaW5jbHVkZSAiaW50ZWxfbWVtb3J5 X3JlZ2lvbi5oIgo+ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgCj4gK2ludCBpOTE1X21lbW9y eV9yZWdpb25fZXZpY3Qoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKPiArCQkJICAg ICByZXNvdXJjZV9zaXplX3QgdGFyZ2V0KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLCAqb247Cj4gKwlyZXNvdXJjZV9zaXplX3QgZm91bmQ7Cj4gKwlMSVNUX0hFQUQo cHVyZ2VhYmxlKTsKPiArCWludCBlcnI7Cj4gKwo+ICsJZXJyID0gMDsKPiArCWZvdW5kID0gMDsK PiArCj4gKwltdXRleF9sb2NrKCZtZW0tPm9ial9sb2NrKTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNo X2VudHJ5KG9iaiwgJm1lbS0+cHVyZ2VhYmxlLCByZWdpb25fbGluaykgewo+ICsJCWlmICghaTkx NV9nZW1fb2JqZWN0X2hhc19wYWdlcyhvYmopKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYg KFJFQURfT05DRShvYmotPnBpbl9nbG9iYWwpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYg KGF0b21pY19yZWFkKCZvYmotPmJpbmRfY291bnQpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJ bGlzdF9hZGQoJm9iai0+ZXZpY3Rpb25fbGluaywgJnB1cmdlYWJsZSk7Cj4gKwo+ICsJCWZvdW5k ICs9IG9iai0+YmFzZS5zaXplOwo+ICsJCWlmIChmb3VuZCA+PSB0YXJnZXQpCj4gKwkJCWdvdG8g Zm91bmQ7Cj4gKwl9Cj4gKwo+ICsJZXJyID0gLUVOT1NQQzsKPiArZm91bmQ6Cj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUob2JqLCBvbiwgJnB1cmdlYWJsZSwgZXZpY3Rpb25fbGluaykgewo+ ICsJCWlmICghZXJyKSB7Cj4gKwkJCV9faTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlcyhvYmosIEk5 MTVfTU1fU0hSSU5LRVIpOwo+ICsKPiArCQkJbXV0ZXhfbG9ja19uZXN0ZWQoJm9iai0+bW0ubG9j aywgSTkxNV9NTV9TSFJJTktFUik7Cj4gKwkJCWlmICghaTkxNV9nZW1fb2JqZWN0X2hhc19wYWdl cyhvYmopKQo+ICsJCQkJb2JqLT5tbS5tYWR2ID0gX19JOTE1X01BRFZfUFVSR0VEOwo+ICsJCQlt dXRleF91bmxvY2soJm9iai0+bW0ubG9jayk7Cj4gKwkJfQo+ICsKPiArCQlsaXN0X2RlbCgmb2Jq LT5ldmljdGlvbl9saW5rKTsKPiArCX0KPiArCj4gKwltdXRleF91bmxvY2soJm1lbS0+b2JqX2xv Y2spOwo+ICsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkCj4gIG1lbW9y eV9yZWdpb25fZnJlZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJ CQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcykKPiBAQCAtNzAsNyArMTIwLDggQEAgaTkxNV9tZW1v cnlfcmVnaW9uX2dldF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQo+ICAJCXVuc2lnbmVkIGludCBvcmRlcjsKPiAgCQl1NjQgYmxvY2tfc2l6ZTsKPiAgCQl1NjQg b2Zmc2V0Owo+IC0KPiArCQlib29sIHJldHJ5ID0gdHJ1ZTsKPiArcmV0cnk6Cj4gIAkJb3JkZXIg PSBmbHMobl9wYWdlcykgLSAxOwo+ICAJCUdFTV9CVUdfT04ob3JkZXIgPiBtZW0tPm1tLm1heF9v cmRlcik7Cj4gIAo+IEBAIC03OSw5ICsxMzAsMjQgQEAgaTkxNV9tZW1vcnlfcmVnaW9uX2dldF9w YWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAJCQlpZiAoIUlT X0VSUihibG9jaykpCj4gIAkJCQlicmVhazsKPiAgCj4gLQkJCS8qIFhYWDogc29tZSBraW5kIG9m IGV2aWN0aW9uIHBhc3MsIGxvY2FsIHRvIHRoZSBkZXZpY2UgKi8KPiAtCQkJaWYgKCFvcmRlci0t KQo+IC0JCQkJZ290byBlcnJfZnJlZV9ibG9ja3M7Cj4gKwkJCWlmICghb3JkZXItLSkgewo+ICsJ CQkJcmVzb3VyY2Vfc2l6ZV90IHRhcmdldDsKPiArCQkJCWludCBlcnI7Cj4gKwo+ICsJCQkJaWYg KCFyZXRyeSkKPiArCQkJCQlnb3RvIGVycl9mcmVlX2Jsb2NrczsKPiArCj4gKwkJCQl0YXJnZXQg PSBuX3BhZ2VzICogbWVtLT5tbS5taW5fc2l6ZTsKPiArCj4gKwkJCQltdXRleF91bmxvY2soJm1l bS0+bW1fbG9jayk7Cj4gKwkJCQllcnIgPSBpOTE1X21lbW9yeV9yZWdpb25fZXZpY3QobWVtLCB0 YXJnZXQpOwo+ICsJCQkJbXV0ZXhfbG9jaygmbWVtLT5tbV9sb2NrKTsKPiArCQkJCWlmIChlcnIp Cj4gKwkJCQkJZ290byBlcnJfZnJlZV9ibG9ja3M7Cj4gKwo+ICsJCQkJcmV0cnkgPSBmYWxzZTsK PiArCQkJCWdvdG8gcmV0cnk7Cj4gKwkJCX0KPiAgCQl9IHdoaWxlICgxKTsKPiAgCj4gIAkJbl9w YWdlcyAtPSBCSVQob3JkZXIpOwo+IEBAIC0xMzYsNiArMjAyLDEzIEBAIHZvaWQgaTkxNV9tZW1v cnlfcmVnaW9uX3JlbGVhc2VfYnVkZHkoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkK PiAgCWk5MTVfYnVkZHlfZmluaSgmbWVtLT5tbSk7Cj4gIH0KPiAgCj4gK3ZvaWQgaTkxNV9nZW1f b2JqZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQo+ICt7Cj4gKwltdXRleF9sb2NrKCZvYmotPm1lbW9yeV9yZWdpb24tPm9ial9sb2NrKTsK PiArCWxpc3RfZGVsKCZvYmotPnJlZ2lvbl9saW5rKTsKPiArCW11dGV4X3VubG9jaygmb2JqLT5t ZW1vcnlfcmVnaW9uLT5vYmpfbG9jayk7Cj4gK30KPiArCj4gIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICoKPiAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oc3RydWN0IGludGVsX21l bW9yeV9yZWdpb24gKm1lbSwKPiAgCQkJICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUsCj4gQEAg LTE2NCw2ICsyMzcsMTAgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oc3RydWN0IGlu dGVsX21lbW9yeV9yZWdpb24gKm1lbSwKPiAgCUlOSVRfTElTVF9IRUFEKCZvYmotPmJsb2Nrcyk7 Cj4gIAlvYmotPm1lbW9yeV9yZWdpb24gPSBtZW07Cj4gIAo+ICsJbXV0ZXhfbG9jaygmbWVtLT5v YmpfbG9jayk7Cj4gKwlsaXN0X2FkZCgmb2JqLT5yZWdpb25fbGluaywgJm1lbS0+b2JqZWN0cyk7 Cj4gKwltdXRleF91bmxvY2soJm1lbS0+b2JqX2xvY2spOwo+ICsKPiAgCXJldHVybiBvYmo7Cj4g IH0KPiAgCj4gQEAgLTE4OCw2ICsyNjUsMTAgQEAgaW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAltZW0tPm1pbl9wYWdlX3NpemUgPSBt aW5fcGFnZV9zaXplOwo+ICAJbWVtLT5vcHMgPSBvcHM7Cj4gIAo+ICsJbXV0ZXhfaW5pdCgmbWVt LT5vYmpfbG9jayk7Cj4gKwlJTklUX0xJU1RfSEVBRCgmbWVtLT5vYmplY3RzKTsKPiArCUlOSVRf TElTVF9IRUFEKCZtZW0tPnB1cmdlYWJsZSk7Cj4gKwo+ICAJbXV0ZXhfaW5pdCgmbWVtLT5tbV9s b2NrKTsKPiAgCj4gIAlpZiAob3BzLT5pbml0KSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX21lbW9yeV9yZWdpb24uaAo+IGluZGV4IDhkNDczNmJkZGU1MC4uYmVlMGMwMjJkMjk1IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaAo+IEBAIC04 MCw4ICs4MCwxNiBAQCBzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiB7Cj4gIAl1bnNpZ25lZCBp bnQgdHlwZTsKPiAgCXVuc2lnbmVkIGludCBpbnN0YW5jZTsKPiAgCXVuc2lnbmVkIGludCBpZDsK PiArCj4gKwkvKiBQcm90ZWN0cyBhY2Nlc3MgdG8gb2JqZWN0cyBhbmQgcHVyZ2VhYmxlICovCj4g KwlzdHJ1Y3QgbXV0ZXggb2JqX2xvY2s7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIG9iamVjdHM7Cj4g KwlzdHJ1Y3QgbGlzdF9oZWFkIHB1cmdlYWJsZTsKPiAgfTsKPiAgCj4gK2ludCBpOTE1X21lbW9y eV9yZWdpb25fZXZpY3Qoc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSwKPiArCQkJICAg ICByZXNvdXJjZV9zaXplX3QgdGFyZ2V0KTsKPiArCj4gIGludCBpOTE1X21lbW9yeV9yZWdpb25f aW5pdF9idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtKTsKPiAgdm9pZCBpOTE1 X21lbW9yeV9yZWdpb25fcmVsZWFzZV9idWRkeShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq bWVtKTsKPiAgCj4gQEAgLTg5LDYgKzk3LDggQEAgaW50IGk5MTVfbWVtb3J5X3JlZ2lvbl9nZXRf cGFnZXNfYnVkZHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gIHZvaWQgaTkx NV9tZW1vcnlfcmVnaW9uX3B1dF9wYWdlc19idWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+ICAJCQkJCXN0cnVjdCBzZ190YWJsZSAqcGFnZXMpOwo+ICAKPiArdm9pZCBpOTE1 X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopOwo+ICsKPiAgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKgo+ICBpbnRlbF9t ZW1vcnlfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgCQkJ ICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYwo+IGluZGV4IGMzYjE2MGNmZDcxMy4u ZWNlNDk5ODY5NzQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCj4gQEAgLTc2LDEwICs3Niw4MyBAQCBzdGF0aWMg aW50IGlndF9tb2NrX2ZpbGwodm9pZCAqYXJnKQo+ICAJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiAr c3RhdGljIHZvaWQgaWd0X21hcmtfZXZpY3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCj4gK3sKPiArCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwo+ICsJb2Jq LT5tbS5tYWR2ID0gSTkxNV9NQURWX0RPTlRORUVEOwo+ICsJbGlzdF9tb3ZlKCZvYmotPnJlZ2lv bl9saW5rLCAmb2JqLT5tZW1vcnlfcmVnaW9uLT5wdXJnZWFibGUpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IGlndF9tb2NrX2V2aWN0KHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0IGludGVsX21l bW9yeV9yZWdpb24gKm1lbSA9IGFyZzsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7Cj4gKwl1bnNpZ25lZCBsb25nIG5fb2JqZWN0czsKPiArCUxJU1RfSEVBRChvYmplY3RzKTsK PiArCXJlc291cmNlX3NpemVfdCB0YXJnZXQ7Cj4gKwlyZXNvdXJjZV9zaXplX3QgdG90YWw7Cj4g KwlpbnQgZXJyID0gMDsKPiArCj4gKwl0YXJnZXQgPSBtZW0tPm1tLm1pbl9zaXplOwo+ICsJdG90 YWwgPSByZXNvdXJjZV9zaXplKCZtZW0tPnJlZ2lvbik7Cj4gKwluX29iamVjdHMgPSB0b3RhbCAv IHRhcmdldDsKPiArCj4gKwl3aGlsZSAobl9vYmplY3RzLS0pIHsKPiArCQlvYmogPSBpOTE1X2dl bV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtZW0sIHRhcmdldCwgMCk7Cj4gKwkJaWYgKElTX0VSUihv YmopKSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIob2JqKTsKPiArCQkJZ290byBlcnJfY2xvc2Vfb2Jq ZWN0czsKPiArCQl9Cj4gKwo+ICsJCWxpc3RfYWRkKCZvYmotPnN0X2xpbmssICZvYmplY3RzKTsK PiArCj4gKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwo+ICsJCWlmIChl cnIpCj4gKwkJCWdvdG8gZXJyX2Nsb3NlX29iamVjdHM7Cj4gKwo+ICsJCS8qCj4gKwkJICogTWFr ZSBoYWxmIG9mIHRoZSByZWdpb24gZXZpY3RhYmxlLCB0aG91Z2ggZG8gc28gaW4gYQo+ICsJCSAq IGhvcnJpYmx5IGZyYWdtZW50ZWQgZmFzaGlvbi4KPiArCQkgKi8KPiArCQlpZiAobl9vYmplY3Rz ICUgMikKPiArCQkJaWd0X21hcmtfZXZpY3RhYmxlKG9iaik7Cj4gKwl9Cj4gKwo+ICsJd2hpbGUg KHRhcmdldCA8PSB0b3RhbCAvIDIpIHsKPiArCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3JlZ2lvbihtZW0sIHRhcmdldCwgMCk7Cj4gKwkJaWYgKElTX0VSUihvYmopKSB7Cj4gKwkJCWVy ciA9IFBUUl9FUlIob2JqKTsKPiArCQkJZ290byBlcnJfY2xvc2Vfb2JqZWN0czsKPiArCQl9Cj4g Kwo+ICsJCWxpc3RfYWRkKCZvYmotPnN0X2xpbmssICZvYmplY3RzKTsKPiArCj4gKwkJZXJyID0g aTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwo+ICsJCWlmIChlcnIpIHsKPiArCQkJcHJf ZXJyKCJmYWlsZWQgdG8gZXZpY3QgZm9yIHRhcmdldD0lcGEiLCAmdGFyZ2V0KTsKPiArCQkJZ290 byBlcnJfY2xvc2Vfb2JqZWN0czsKPiArCQl9Cj4gKwo+ICsJCS8qIEFnYWluLCBoYWxmIG9mIHRo ZSByZWdpb24gc2hvdWxkIHJlbWFpbiBldmljdGFibGUgKi8KPiArCQlpZ3RfbWFya19ldmljdGFi bGUob2JqKTsKPiArCj4gKwkJdGFyZ2V0IDw8PSAxOwo+ICsJfQo+ICsKPiArZXJyX2Nsb3NlX29i amVjdHM6Cj4gKwljbG9zZV9vYmplY3RzKCZvYmplY3RzKTsKPiArCj4gKwlpZiAoZXJyID09IC1F Tk9NRU0pCj4gKwkJZXJyID0gMDsKPiArCj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICBpbnQg aW50ZWxfbWVtb3J5X3JlZ2lvbl9tb2NrX3NlbGZ0ZXN0cyh2b2lkKQo+ICB7Cj4gIAlzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewo+ICAJCVNVQlRFU1QoaWd0X21v Y2tfZmlsbCksCj4gKwkJU1VCVEVTVChpZ3RfbW9ja19ldmljdCksCj4gIAl9Owo+ICAJc3RydWN0 IGludGVsX21lbW9yeV9yZWdpb24gKm1lbTsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19y ZWdpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlZ2lvbi5jCj4g aW5kZXggY2I5NDJhNDYxZTlkLi44MGVhZmRjNTQ5MjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfcmVnaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvbW9ja19yZWdpb24uYwo+IEBAIC04LDYgKzgsNyBAQAo+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIG1vY2tfcmVnaW9uX29ial9v cHMgPSB7Cj4gIAkuZ2V0X3BhZ2VzID0gaTkxNV9tZW1vcnlfcmVnaW9uX2dldF9wYWdlc19idWRk eSwKPiAgCS5wdXRfcGFnZXMgPSBpOTE1X21lbW9yeV9yZWdpb25fcHV0X3BhZ2VzX2J1ZGR5LAo+ ICsJLnJlbGVhc2UgPSBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uLAo+ICB9 Owo+ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPiAtLSAKPiAyLjIw LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=