From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v3] drm/i915: Compare GGTT view structs instead of types Date: Fri, 27 Mar 2015 10:41:17 +0000 Message-ID: <551533CD.8000506@linux.intel.com> References: <1427450584.4966.8.camel@jlahtine-mobl1> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 3A63E6EB46 for ; Fri, 27 Mar 2015 03:41:19 -0700 (PDT) In-Reply-To: <1427450584.4966.8.camel@jlahtine-mobl1> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDMvMjcvMjAxNSAxMDowMyBBTSwgSm9vbmFzIExhaHRpbmVuIHdyb3RlOgo+IFRv IGFsbG93IGZvciB2aWV3cyB3aGVyZSB0aGUgdmlldyB0eXBlIGlzIG5vdCBkZWZpbmVkIGJ5IHRo ZSB2aWV3IHR5cGUgb25seSwKPiBsaWtlIGl0IGlzIGluIHN0ZXJlbyBvciByb3RhdGVkIDkwIGRl Z3JlZSB2aWV3LCBjaGFuZ2UgdGhlIHNlbWFudGljIHRvIHJlcXVpcmUKPiB0aGUgd2hvbGUgdmll dyBzdHJ1Y3R1cmUgZm9yIGNvbXBhcmlzb24gd2hlbiB3ZSBtYXRjaCBhIEdHVFQgdmlldy4KPgo+ IFRoaXMgYWxsb3dzIGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2Ugb2Zmc2V0IHRvIGJlIGluY2x1 ZGVkIGluIHRoZSB2aWV3IHdoaWNoCj4gaXMgdXNlZnVsIGZvciBlZy4gcGFydGlhbCB2aWV3cy4K Pgo+IHYzOgo+IC0gUmVseSBvbiBnZ3R0X3ZpZXcgdHlwZSBiZWluZyAwIGZvciBub24tR0dUVCB2 bWEncywgd2hpY2ggZXF1YWxzIHRvCj4gICAgSTkxNV9HR1RUX1ZJRVdfTk9STUFMLiAoRGFuaWVs IFZldHRlcikKPiAtIERvIG5vdCB1c2UgcG90ZW50aWFsbHkgc2xvd2VyIGNvbXBhcmlzb24gd2hl biB3ZSBvbmx5IHdhbnQgdG8ga25vdyBpZgo+ICAgIHNvbWV0aGluZyBpcyBvciBpcyBub3QgYSBu b3JtYWwgdmlldy4KPiAtIFJlYmFzZSBvbiB0b3Agb2Ygcm90YXRlZCB2aWV3IHBhdGNoZXMuIEFk ZCByb3RhdGVkIHZpZXcgc2luZ2xldG9uLgo+IC0gSWYgb25lIHZpZXcgaXMgbWlzc2luZyBpbiBj b21wYXJpc29uIHRoZXkncmUgZXF1YWwgb25seSBpZiBib3RoIGFyZSBtaXNzaW5nLgo+Cj4gQ2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiBSZXZpZXdlZC1ieTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4gKHYyKQo+IFNpZ25lZC1vZmYt Ynk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiAt LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICA4ICsrKystLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgfCAxMyArKysrKysrLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgfCAgMyArKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICB8ICA4ICsrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgOCArKystLS0tLQo+ICAgNSBm aWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDI1NjM2OWYuLjVhZWJhNjAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjc5NCwxOSArMjc5NCwxOSBAQCB2b2lkIGk5MTVfZ2VtX3Jl c3RvcmVfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Cj4gICB1bnNpZ25lZCBsb25n Cj4gICBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXRfdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqbywKPiAtCQkJICAgICAgZW51bSBpOTE1X2dndHRfdmlld190eXBlIHZpZXcpOwo+ICsJ CQkgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+ICAgdW5zaWduZWQg bG9uZwo+ICAgaTkxNV9nZW1fb2JqX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq bywKPiAgIAkJICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKTsKPiAgIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZwo+ICAgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvKQo+ICAgewo+IC0JcmV0dXJuIGk5MTVfZ2VtX29ial9nZ3R0 X29mZnNldF92aWV3KG8sIEk5MTVfR0dUVF9WSUVXX05PUk1BTCk7Cj4gKwlyZXR1cm4gaTkxNV9n ZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcobywgJmk5MTVfZ2d0dF92aWV3X25vcm1hbCk7Cj4gICB9 Cj4KPiAgIGJvb2wgaTkxNV9nZW1fb2JqX2JvdW5kX2FueShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqbyk7Cj4gICBib29sIGk5MTVfZ2VtX29ial9nZ3R0X2JvdW5kX3ZpZXcoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm8sCj4gLQkJCQkgIGVudW0gaTkxNV9nZ3R0X3ZpZXdfdHlwZSB2 aWV3KTsKPiArCQkJCSAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KTsKPiAgIGJv b2wgaTkxNV9nZW1fb2JqX2JvdW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvLAo+ICAg CQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pOwo+Cj4gQEAgLTI4NTQsNyArMjg1NCw3 IEBAIGk5MTVfdm1fdG9fcHBndHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4KPiAg IHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9vYmpfZ2d0dF9ib3VuZChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0JcmV0dXJuIGk5MTVfZ2VtX29ial9nZ3R0X2Jv dW5kX3ZpZXcob2JqLCBJOTE1X0dHVFRfVklFV19OT1JNQUwpOwo+ICsJcmV0dXJuIGk5MTVfZ2Vt X29ial9nZ3R0X2JvdW5kX3ZpZXcob2JqLCAmaTkxNV9nZ3R0X3ZpZXdfbm9ybWFsKTsKPiAgIH0K Pgo+ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j Cj4gaW5kZXggMzMwMDk2My4uOGMzMmIxZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ IEBAIC00MTMxLDcgKzQxMzEsNyBAQCBpOTE1X2dlbV9vYmplY3RfZG9fcGluKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCj4KPiAgIAkJaWYgKGk5MTVfdm1hX21pc3BsYWNlZCh2bWEs IGFsaWdubWVudCwgZmxhZ3MpKSB7Cj4gICAJCQl1bnNpZ25lZCBsb25nIG9mZnNldDsKPiAtCQkJ b2Zmc2V0ID0gZ2d0dF92aWV3ID8gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcob2JqLCBn Z3R0X3ZpZXctPnR5cGUpIDoKPiArCQkJb2Zmc2V0ID0gZ2d0dF92aWV3ID8gaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0X3ZpZXcob2JqLCBnZ3R0X3ZpZXcpIDoKPiAgIAkJCQkJICAgICBpOTE1X2dl bV9vYmpfb2Zmc2V0KG9iaiwgdm0pOwo+ICAgCQkJV0FSTih2bWEtPnBpbl9jb3VudCwKPiAgIAkJ CSAgICAgImJvIGlzIGFscmVhZHkgcGlubmVkIGluICVzIHdpdGggaW5jb3JyZWN0IGFsaWdubWVu dDoiCj4gQEAgLTQyMzAsNyArNDIzMCw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluX3Zp ZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPgo+ICAgCUJVR19PTighdm1hKTsK PiAgIAlXQVJOX09OKHZtYS0+cGluX2NvdW50ID09IDApOwo+IC0JV0FSTl9PTighaTkxNV9nZW1f b2JqX2dndHRfYm91bmRfdmlldyhvYmosIHZpZXctPnR5cGUpKTsKPiArCVdBUk5fT04oIWk5MTVf Z2VtX29ial9nZ3R0X2JvdW5kX3ZpZXcob2JqLCB2aWV3KSk7Cj4KPiAgIAlpZiAoLS12bWEtPnBp bl9jb3VudCA9PSAwICYmIHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKQo+ICAg CQlvYmotPnBpbl9tYXBwYWJsZSA9IGZhbHNlOwoKTm8gY29tcGFyaXNvbiBoZWxwZXIgaW4gaTkx NV9nZW1fb2JqX3RvX2dndHRfdmlldygpPwoKPiBAQCAtNTEwOSwxMyArNTEwOSwxNCBAQCBpOTE1 X2dlbV9vYmpfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvLAo+Cj4gICB1bnNp Z25lZCBsb25nCj4gICBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXRfdmlldyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqbywKPiAtCQkJICAgICAgZW51bSBpOTE1X2dndHRfdmlld190eXBlIHZp ZXcpCj4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldykKPiAgIHsK PiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0ID0gaTkxNV9vYmpfdG9fZ2d0dChv KTsKPiAgIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPgo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnko dm1hLCAmby0+dm1hX2xpc3QsIHZtYV9saW5rKQo+IC0JCWlmICh2bWEtPnZtID09IGdndHQgJiYg dm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSB2aWV3KQo+ICsJCWlmICh2bWEtPnZtID09IGdndHQgJiYK PiArCQkgICAgaTkxNV9nZ3R0X3ZpZXdfZXF1YWwoJnZtYS0+Z2d0dF92aWV3LCB2aWV3KSkKPiAg IAkJCXJldHVybiB2bWEtPm5vZGUuc3RhcnQ7Cj4KPiAgIAlXQVJOKDEsICJnbG9iYWwgdm1hIGZv ciB0aGlzIG9iamVjdCBub3QgZm91bmQuXG4iKTsKPiBAQCAtNTEzOSwxNCArNTE0MCwxNCBAQCBi b29sIGk5MTVfZ2VtX29ial9ib3VuZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbywKPiAg IH0KPgo+ICAgYm9vbCBpOTE1X2dlbV9vYmpfZ2d0dF9ib3VuZF92aWV3KHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvLAo+IC0JCQkJICBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgdmlldykK PiArCQkJCSAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KQo+ICAgewo+ICAgCXN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSBpOTE1X29ial90b19nZ3R0KG8pOwo+ICAg CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZv LT52bWFfbGlzdCwgdm1hX2xpbmspCj4gICAJCWlmICh2bWEtPnZtID09IGdndHQgJiYKPiAtCQkg ICAgdm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSB2aWV3ICYmCj4gKwkJICAgIGk5MTVfZ2d0dF92aWV3 X2VxdWFsKCZ2bWEtPmdndHRfdmlldywgdmlldykgJiYKPiAgIAkJICAgIGRybV9tbV9ub2RlX2Fs bG9jYXRlZCgmdm1hLT5ub2RlKSkKPiAgIAkJCXJldHVybiB0cnVlOwo+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA5OTAzYmIwLi4xM2ViNzY5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtOTMsNiArOTMsOSBAQAo+ICAgICovCj4KPiAg IGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyBpOTE1X2dndHRfdmlld19ub3JtYWw7Cj4gK2Nv bnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyBpOTE1X2dndHRfdmlld19yb3RhdGVkID0gewo+ICsg ICAgICAgIC50eXBlID0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRAo+ICt9Owo+Cj4gICBzdGF0aWMg dm9pZCBiZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Cj4gICBzdGF0aWMgdm9pZCBjaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgK PiBpbmRleCAwZGFkNDI2Li5jMWM0MjZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmgKPiBAQCAtMTM4LDYgKzEzOCw3IEBAIHN0cnVjdCBpOTE1X2dndHRfdmlldyB7Cj4gICB9 Owo+Cj4gICBleHRlcm4gY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3IGk5MTVfZ2d0dF92aWV3 X25vcm1hbDsKPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyBpOTE1X2dndHRf dmlld19yb3RhdGVkOwo+Cj4gICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWw7Cj4KPiBAQCAtNDIyLDQg KzQyMywxMSBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ndHRfcHJlcGFyZV9v YmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gICB2b2lkIGk5MTVfZ2Vt X2d0dF9maW5pc2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+Cj4g K3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtpOTE1X2dndHRfdmlld19lcXVhbChjb25zdCBzdHJ1Y3Qg aTkxNV9nZ3R0X3ZpZXcgKmEsCj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBp OTE1X2dndHRfdmlldyAqYikKPiArewo+ICsJcmV0dXJuICEhYSAmJiAhIWIgPyBhLT50eXBlID09 IGItPnR5cGUgOiAhYSAmJiAhYjsKPiArfQoKV2hhdCdzIHRoZSBiYWNrZ3JvdW5kIGJlaGluZCB0 aGlzIGJvdGggTlVMTCBjaGVjaz8gV2lsbCB5b3UgZXZlciB1c2UgaXQgCmxpa2UgdGhhdD8KCkkg dGhpbmsgdGhlIGNvZGUgZWxzZXdoZXJlIG1ha2VzIHN1cmUgdG8gYWx3YXlzIHBhc3MgdmFsaWQg dmlld3MgdG8gdGhpcyAKaW50ZXJuYWwgaGVscGVyIHNvIEkgZG9uJ3QgZ2V0IGl0LgoKPiArCj4g ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggY2I1MDg1 NC4uZDZjMmUzNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAt MjI5Myw4ICsyMjkzLDYgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0 dF92aWV3ICp2aWV3LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgIAkJCWNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRl bF9yb3RhdGlvbl9pbmZvICppbmZvID0gJnZpZXctPnJvdGF0aW9uX2luZm87Cj4gLQlzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHJvdGF0ZWRfdmlldyA9Cj4gLQkJCQl7IC50eXBl ID0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB9Owo+Cj4gICAJKnZpZXcgPSBpOTE1X2dndHRfdmll d19ub3JtYWw7Cj4KPiBAQCAtMjMwNCw3ICsyMzAyLDcgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3Zp ZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwKPiAgIAlpZiAoIWludGVsX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0+cm90YXRp b24pKQo+ICAgCQlyZXR1cm4gMDsKPgo+IC0JKnZpZXcgPSByb3RhdGVkX3ZpZXc7Cj4gKwkqdmll dyA9IGk5MTVfZ2d0dF92aWV3X3JvdGF0ZWQ7Cj4KPiAgIAlpbmZvLT5oZWlnaHQgPSBmYi0+aGVp Z2h0Owo+ICAgCWluZm8tPnBpeGVsX2Zvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7Cj4gQEAgLTI5 MDQsMTAgKzI5MDIsMTAgQEAgdTMyIGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdWludDY0X3QgZmJfbW9kaWZpZXIsCj4gICB1bnNpZ25lZCBsb25nIGlu dGVsX3BsYW5lX29ial9vZmZzZXQoc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSwKPiAg IAkJCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICB7Cj4gLQllbnVt IGk5MTVfZ2d0dF92aWV3X3R5cGUgdmlldyA9IEk5MTVfR0dUVF9WSUVXX05PUk1BTDsKPiArCWNv bnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldyA9ICZpOTE1X2dndHRfdmlld19ub3JtYWw7 Cj4KPiAgIAlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKGludGVsX3BsYW5lLT5iYXNlLnN0 YXRlLT5yb3RhdGlvbikpCj4gLQkJdmlldyA9IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQ7Cj4gKwkJ dmlldyA9ICZpOTE1X2dndHRfdmlld19yb3RhdGVkOwo+Cj4gICAJcmV0dXJuIGk5MTVfZ2VtX29i al9nZ3R0X29mZnNldF92aWV3KG9iaiwgdmlldyk7Cj4gICB9Cj4KClJlZ2FyZHMsCgpUdnJ0a28K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK