From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [RFC] [PATCH] drm/i915: Require HW contexts (when possible) Date: Thu, 17 Oct 2013 11:01:05 -0700 Message-ID: <20131017180105.GA16575@bwidawsk.net> References: <1382029183-24410-1-git-send-email-ben@bwidawsk.net> <20131017175217.GI13047@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id C8638E6C00 for ; Thu, 17 Oct 2013 11:01:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20131017175217.GI13047@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTcsIDIwMTMgYXQgMDg6NTI6MTdQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgT2N0IDE3LCAyMDEzIGF0IDA5OjU5OjQzQU0gLTA3MDAsIEJlbiBX aWRhd3NreSB3cm90ZToKPiA+IEZyb206IEJlbiBXaWRhd3NreSA8YmVuamFtaW4ud2lkYXdza3lA aW50ZWwuY29tPgo+ID4gCj4gPiBPbmx5IGNvbXBpbGUgdGVzdGVkCj4gPiAKPiA+IENDOiBLZW5u ZXRoIEdyYXVua2UgPGtlbm5ldGhAd2hpdGVjYXBlLm9yZz4KPiA+IFNpZ25lZC1vZmYtYnk6IEJl biBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8ICA1ICstLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMyArLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jICAgICAgICAgfCAgNyArKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMgfCA0MyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgICAgICAgfCAgNiArKy0t LQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gaW5kZXggMTA2MGE5Ni4uOGM5MDU1 OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IEBAIC03NTAsMTQgKzc1MCwx MSBAQCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkgKi8KPiA+ ICAJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkgfHwKPiA+ ICAJCQkhZGV2X3ByaXYtPnVtcy5tbV9zdXNwZW5kZWQpIHsKPiA+IC0JCWJvb2wgaHdfY29udGV4 dHNfZGlzYWJsZWQgPSBkZXZfcHJpdi0+aHdfY29udGV4dHNfZGlzYWJsZWQ7Cj4gPiAgCQlkZXZf cHJpdi0+dW1zLm1tX3N1c3BlbmRlZCA9IDA7Cj4gPiAgCj4gPiAgCQlyZXQgPSBpOTE1X2dlbV9p bml0X2h3KGRldik7Cj4gPiAtCQlpZiAoIWh3X2NvbnRleHRzX2Rpc2FibGVkICYmIGRldl9wcml2 LT5od19jb250ZXh0c19kaXNhYmxlZCkKPiA+IC0JCQlEUk1fRVJST1IoIkhXIGNvbnRleHRzIGRp ZG4ndCBzdXJ2aXZlIHJlc2V0XG4iKTsKPiA+IC0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwo+ID4gIAkJaWYgKHJldCkgewo+ID4gKwkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+IAo+IEJvdGNoZWQgbG9ja2luZy4KCk15IG1pc3Rha2Ugd2FzIGludGVudGlv bmFsIGF0IGxlYXN0LCBhbmQgbm90IHRoZSB1c3VhbCBjb3B5L3Bhc3RlLgpTb21laG93IHRoaXMg bG9va2VkIHJpZ2h0IHRvIG1lIGVhcmxpZXIuCgpUaGFua3MuCgo+IAo+ID4gIAkJCURSTV9FUlJP UigiRmFpbGVkIGh3IGluaXQgb24gcmVzZXQgJWRcbiIsIHJldCk7Cj4gPiAgCQkJcmV0dXJuIHJl dDsKPiA+ICAJCX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggZTRmZjhlOS4u MjFiMmMzNyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0xNDExLDcg KzE0MTEsNiBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+ICAJc3RydWN0 IGRybV9wcm9wZXJ0eSAqYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTsKPiA+ICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqZm9yY2VfYXVkaW9fcHJvcGVydHk7Cj4gPiAgCj4gPiAtCWJvb2wgaHdfY29udGV4 dHNfZGlzYWJsZWQ7Cj4gPiAgCXVpbnQzMl90IGh3X2NvbnRleHRfc2l6ZTsKPiA+ICAJc3RydWN0 IGxpc3RfaGVhZCBjb250ZXh0X2xpc3Q7Cj4gPiAgCj4gPiBAQCAtMjE0MCw3ICsyMTM5LDcgQEAg aTkxNV9nZW1fb2JqX2dndHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4g PiAgfQo+ID4gIAo+ID4gIC8qIGk5MTVfZ2VtX2NvbnRleHQuYyAqLwo+ID4gLXZvaWQgaTkxNV9n ZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gK2ludCBfX211c3Rf Y2hlY2sgaTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4g IHZvaWQgaTkxNV9nZW1fY29udGV4dF9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4g IHZvaWQgaTkxNV9nZW1fY29udGV4dF9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+ID4gIGludCBpOTE1X3N3aXRjaF9jb250ZXh0KHN0cnVjdCBp bnRlbF9yaW5nX2J1ZmZlciAqcmluZywKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4gaW5k ZXggMzRkZjU5Yi4uMGRmNDBlNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ IEBAIC00NDYzLDcgKzQ0NjMsMTIgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gIAkgKiBYWFg6IFRoZXJlIHdhcyBzb21lIHcvYSBkZXNjcmliZWQgc29tZXdo ZXJlIHN1Z2dlc3RpbmcgbG9hZGluZwo+ID4gIAkgKiBjb250ZXh0cyBiZWZvcmUgUFBHVFQuCj4g PiAgCSAqLwo+ID4gLQlpOTE1X2dlbV9jb250ZXh0X2luaXQoZGV2KTsKPiA+ICsJcmV0ID0gaTkx NV9nZW1fY29udGV4dF9pbml0KGRldik7Cj4gPiArCWlmIChyZXQpIHsKPiAKPiBpOTE1X2dlbV9j bGVhbnVwX3JpbmdidWZmZXIoKSA/Cj4gCj4gRGFtbiBvdXIgZXJyb3IgdW53aW5kaW5nIGlzIGhh cmQgdG8gZm9sbG93LCB3aGljaCBtZWFucyBpdCdzIHByb2JhYmx5Cj4gYnJva2VuIHNvbWV3aGVy ZS4gRnJvbSBpOTE1X2xvYWRfbW9kZXNldF9pbml0KCkgd2UgY2FsbAo+IGk5MTVfZ2VtX2luaXQo KSB3aGljaCBkb2VzIHNvbWUgc3R1ZmYgZGlyZWN0bHkgYW5kIHRoZW4gY2FsbHMKPiBpOTE1X2dl bV9pbml0X2h3KCkuIEFuZCBpZiB3ZSBnZXQgc29tZSBlcnJvciBsYXRlciBpbiBpOTE1X2xvYWRf bW9kZXNldF9pbml0KCksCj4gd2UgbWFudWFsbHkgdW53aW5kIGFsbCB0aGUgc3R1ZmYgdGhhdCBp OTE1X2dlbV9pbml0KCkgYW5kIGk5MTVfZ2VtX2luaXRfaHcoKQo+IHN1cHBvc2VkbHkgZGlkLiBU aGlzIGNvdWxkIHN1cmUgdXNlIHNvbWUgaTkxNV9nZW1fZmluaSgpIGFuZCBpOTE1X2dlbV9maW5p X2h3KCkKPiB0byBrZWVwIHRoZSBkbyt1bmRvIGNvZGUgY2xvc2UgdG9nZXRoZXIuCj4gCgpJdCdz IGRlZmluaXRlbHkgYSBtZXNzLiBUQkYsIGl0J3MgYmVlbiBjaGFuZ2luZyBhIGxvdCBtb3JlIHJl Y2VudGx5IHRoYW4KaXQgaGFkIGluIHRoZSBwYXN0LgoKQnV0IHllYWggdGhpcyBpcyBtaXNzaW5n LiBJIHdvbmRlciBpZiBJIG1pc3NlZCB0aGlzIGxhc3QgdGltZSBJIHdyb3RlCnRoZSBwYXRjaCB0 b28uLi4/IFRoYW5rcy4KCj4gPiArCQlEUk1fRVJST1IoIkNvbnRleHQgaW5pdGlhbGl6YXRpb24g ZmFpbGVkICVkXG4iLCByZXQpOwo+ID4gKwkJcmV0dXJuIHJldDsKPiA+ICsJfQo+ID4gKwo+ID4g IAlpZiAoZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0KSB7Cj4gPiAgCQlyZXQgPSBkZXZfcHJp di0+bW0uYWxpYXNpbmdfcHBndHQtPmVuYWJsZShkZXYpOwo+ID4gIAkJaWYgKHJldCkgewo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4gaW5kZXggY2M2MTljMS4u NDYyNTY3MCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j Cj4gPiBAQCAtMjQ0LDM2ICsyNDQsMzQgQEAgZXJyX2Rlc3Ryb3k6Cj4gPiAgCXJldHVybiByZXQ7 Cj4gPiAgfQo+ID4gIAo+ID4gLXZvaWQgaTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gPiAraW50IGk5MTVfZ2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJaW50IHJldDsKPiA+ICAKPiA+IC0JaWYgKCFIQVNf SFdfQ09OVEVYVFMoZGV2KSkgewo+ID4gLQkJZGV2X3ByaXYtPmh3X2NvbnRleHRzX2Rpc2FibGVk ID0gdHJ1ZTsKPiA+IC0JCURSTV9ERUJVR19EUklWRVIoIkRpc2FibGluZyBIVyBDb250ZXh0czsg b2xkIGhhcmR3YXJlXG4iKTsKPiA+IC0JCXJldHVybjsKPiA+IC0JfQo+ID4gKwlpZiAoIUhBU19I V19DT05URVhUUyhkZXYpKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAgCS8qIElmIGNhbGxl ZCBmcm9tIHJlc2V0LCBvciB0aGF3Li4uIHdlJ3ZlIGJlZW4gaGVyZSBhbHJlYWR5ICovCj4gPiAt CWlmIChkZXZfcHJpdi0+aHdfY29udGV4dHNfZGlzYWJsZWQgfHwKPiA+IC0JICAgIGRldl9wcml2 LT5yaW5nW1JDU10uZGVmYXVsdF9jb250ZXh0KQo+ID4gLQkJcmV0dXJuOwo+ID4gKwlpZiAoZGV2 X3ByaXYtPnJpbmdbUkNTXS5kZWZhdWx0X2NvbnRleHQpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICAK PiA+ICAJZGV2X3ByaXYtPmh3X2NvbnRleHRfc2l6ZSA9IHJvdW5kX3VwKGdldF9jb250ZXh0X3Np emUoZGV2KSwgNDA5Nik7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJpdi0+aHdfY29udGV4dF9zaXpl ID4gKDE8PDIwKSkgewo+ID4gLQkJZGV2X3ByaXYtPmh3X2NvbnRleHRzX2Rpc2FibGVkID0gdHJ1 ZTsKPiA+ICAJCURSTV9ERUJVR19EUklWRVIoIkRpc2FibGluZyBIVyBDb250ZXh0czsgaW52YWxp ZCBzaXplXG4iKTsKPiA+IC0JCXJldHVybjsKPiA+ICsJCXJldHVybiAtRTJCSUc7Cj4gPiAgCX0K PiA+ICAKPiA+IC0JaWYgKGNyZWF0ZV9kZWZhdWx0X2NvbnRleHQoZGV2X3ByaXYpKSB7Cj4gPiAt CQlkZXZfcHJpdi0+aHdfY29udGV4dHNfZGlzYWJsZWQgPSB0cnVlOwo+ID4gLQkJRFJNX0RFQlVH X0RSSVZFUigiRGlzYWJsaW5nIEhXIENvbnRleHRzOyBjcmVhdGUgZmFpbGVkXG4iKTsKPiA+IC0J CXJldHVybjsKPiA+ICsJcmV0ID0gY3JlYXRlX2RlZmF1bHRfY29udGV4dChkZXZfcHJpdik7Cj4g PiArCWlmIChyZXQpIHsKPiA+ICsJCURSTV9ERUJVR19EUklWRVIoIkRpc2FibGluZyBIVyBDb250 ZXh0czsgY3JlYXRlIGZhaWxlZCAlZFxuIiwKPiA+ICsJCQkJIHJldCk7Cj4gPiArCQlyZXR1cm4g cmV0Owo+ID4gIAl9Cj4gPiAgCj4gPiAgCURSTV9ERUJVR19EUklWRVIoIkhXIGNvbnRleHQgc3Vw cG9ydCBpbml0aWFsaXplZFxuIik7Cj4gPiArCXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+ICB2 b2lkIGk5MTVfZ2VtX2NvbnRleHRfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gQEAg LTI4MSw3ICsyNzksNyBAQCB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfZmluaShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ID4gIAlzdHJ1Y3QgaTkxNV9od19jb250ZXh0ICpkY3R4ID0gZGV2X3By aXYtPnJpbmdbUkNTXS5kZWZhdWx0X2NvbnRleHQ7Cj4gPiAgCj4gPiAtCWlmIChkZXZfcHJpdi0+ aHdfY29udGV4dHNfZGlzYWJsZWQpCj4gPiArCWlmICghSEFTX0hXX0NPTlRFWFRTKGRldikpCj4g PiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAgCS8qIFRoZSBvbmx5IGtub3duIHdheSB0byBzdG9wIHRo ZSBncHUgZnJvbSBhY2Nlc3NpbmcgdGhlIGh3IGNvbnRleHQgaXMKPiA+IEBAIC0zMjQsMTYgKzMy MiwxNiBAQCBpOTE1X2dlbV9jb250ZXh0X2dldF9oYW5nX3N0YXRzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gPiAgCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+ICAJCQkJdTMyIGlkKQo+ ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0g ZmlsZS0+ZHJpdmVyX3ByaXY7Cj4gPiAgCXN0cnVjdCBpOTE1X2h3X2NvbnRleHQgKmN0eDsKPiA+ ICAKPiA+ICAJaWYgKGlkID09IERFRkFVTFRfQ09OVEVYVF9JRCkKPiA+ICAJCXJldHVybiAmZmls ZV9wcml2LT5oYW5nX3N0YXRzOwo+ID4gIAo+ID4gLQljdHggPSBOVUxMOwo+ID4gLQlpZiAoIWRl dl9wcml2LT5od19jb250ZXh0c19kaXNhYmxlZCkKPiA+IC0JCWN0eCA9IGk5MTVfZ2VtX2NvbnRl eHRfZ2V0KGZpbGUtPmRyaXZlcl9wcml2LCBpZCk7Cj4gPiArCWlmICghSEFTX0hXX0NPTlRFWFRT KGRldikpCj4gPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKPiA+ICsKPiA+ICsJY3R4ID0g aTkxNV9nZW1fY29udGV4dF9nZXQoZmlsZS0+ZHJpdmVyX3ByaXYsIGlkKTsKPiA+ICAJaWYgKGN0 eCA9PSBOVUxMKQo+ID4gIAkJcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7Cj4gPiAgCj4gPiBAQCAt NTA2LDcgKzUwNCw3IEBAIGludCBpOTE1X3N3aXRjaF9jb250ZXh0KHN0cnVjdCBpbnRlbF9yaW5n X2J1ZmZlciAqcmluZywKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g cmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJc3RydWN0IGk5MTVfaHdfY29udGV4dCAqdG87 Cj4gPiAgCj4gPiAtCWlmIChkZXZfcHJpdi0+aHdfY29udGV4dHNfZGlzYWJsZWQpCj4gPiArCWlm ICghSEFTX0hXX0NPTlRFWFRTKHJpbmctPmRldikpCj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+ ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKPiA+IEBAIC01MzEsNyArNTI5LDYgQEAgaW50IGk5MTVfc3dpdGNoX2NvbnRleHQoc3RydWN0 IGludGVsX3JpbmdfYnVmZmVyICpyaW5nLAo+ID4gIGludCBpOTE1X2dlbV9jb250ZXh0X2NyZWF0 ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4gIAkJCQkgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1f Y29udGV4dF9jcmVhdGUgKmFyZ3MgPSBkYXRhOwo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9w cml2YXRlICpmaWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJpdjsKPiA+ICAJc3RydWN0IGk5MTVf aHdfY29udGV4dCAqY3R4Owo+ID4gQEAgLTU0MCw3ICs1MzcsNyBAQCBpbnQgaTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+ ICAJaWYgKCEoZGV2LT5kcml2ZXItPmRyaXZlcl9mZWF0dXJlcyAmIERSSVZFUl9HRU0pKQo+ID4g IAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiAgCj4gPiAtCWlmIChkZXZfcHJpdi0+aHdfY29udGV4dHNf ZGlzYWJsZWQpCj4gPiArCWlmICghSEFTX0hXX0NPTlRFWFRTKGRldikpCj4gPiAgCQlyZXR1cm4g LUVOT0RFVjsKPiA+ICAKPiA+ICAJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUo ZGV2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKPiA+IGluZGV4IGJiMzFmZjMuLjQ3 YmM1MWIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+ID4gQEAgLTE4Mywx MyArMTgzLDEzIEBAIGk5MTVfbDNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2Jq ZWN0ICprb2JqLAo+ID4gIAlpbnQgc2xpY2UgPSAoaW50KSh1aW50cHRyX3QpYXR0ci0+cHJpdmF0 ZTsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICsJaWYgKCFIQVNfSFdfQ09OVEVYVFMoZHJtX2Rl dikpCj4gPiArCQlyZXR1cm4gLUVOWElPOwo+ID4gKwo+ID4gIAlyZXQgPSBsM19hY2Nlc3NfdmFs aWQoZHJtX2Rldiwgb2Zmc2V0KTsKPiA+ICAJaWYgKHJldCkKPiA+ICAJCXJldHVybiByZXQ7Cj4g PiAgCj4gPiAtCWlmIChkZXZfcHJpdi0+aHdfY29udGV4dHNfZGlzYWJsZWQpCj4gPiAtCQlyZXR1 cm4gLUVOWElPOwo+ID4gLQo+ID4gIAlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJs ZShkcm1fZGV2KTsKPiA+ICAJaWYgKHJldCkKPiA+ICAJCXJldHVybiByZXQ7Cj4gPiAtLSAKPiA+ IDEuOC40LjEKPiA+IAoKTm9ib2R5IGlzIGNvbW1lbnRpbmcgb24gd2hldGhlciBvciBub3QgdGhp cyBpcyBva2F5LCB3aGljaCBpcyB3aGF0IEkgd2FzCnJlYWxseSBpbnRlcmVzdGluZy4KCi0tIApC ZW4gV2lkYXdza3ksIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==