From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/5] drm/i915: Do not make assumptions on GGTT VMA sizes Date: Mon, 27 Apr 2015 14:55:51 +0100 Message-ID: <553E3FE7.5030905@linux.intel.com> References: <1429877356.19506.5.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 2AE586E397 for ; Mon, 27 Apr 2015 06:55:53 -0700 (PDT) In-Reply-To: <1429877356.19506.5.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 List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDQvMjQvMjAxNSAwMTowOSBQTSwgSm9vbmFzIExhaHRpbmVuIHdyb3RlOgo+Cj4g R0dUVCBWTUEgc2l6ZXMgbWlnaHQgYmUgc21hbGxlciB0aGFuIHRoZSB3aG9sZSBvYmplY3Qgc2l6 ZSBkdWUgdG8KPiBkaWZmZXJlbnQgR0dUVCB2aWV3cy4KPgo+IHYyOgo+IC0gU2VwYXJhdGUgR0dU VCB2aWV3IGNvbnN0cmFpbnQgY2FsY3VsYXRpb25zIGZyb20gbm9ybWFsIHZpZXcKPiAgICBjb25z dHJhaW50IGNhbGN1bGF0aW9ucyAoQ2hyaXMgV2lsc29uKQo+Cj4gQ2M6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IEpvb25hcyBMYWh0aW5l biA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgIHwgIDEwNiArKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAgIDIz ICsrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCB8ICAgIDQg KysKPiAgIDMgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBlOGY2ZjRjLi4xMTFhYzhhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTM0OTcsNyArMzQ5Nyw4IEBAIHN0YXRpYyBi b29sIGk5MTVfZ2VtX3ZhbGlkX2d0dF9zcGFjZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgIH0K Pgo+ICAgLyoqCj4gLSAqIEZpbmRzIGZyZWUgc3BhY2UgaW4gdGhlIEdUVCBhcGVydHVyZSBhbmQg YmluZHMgdGhlIG9iamVjdCB0aGVyZS4KPiArICogRmluZHMgZnJlZSBzcGFjZSBpbiB0aGUgR1RU IGFwZXJ0dXJlIGFuZCBiaW5kcyB0aGUgb2JqZWN0IG9yIGEgdmlldyBvZiBpdAo+ICsgKiB0aGVy ZS4KPiAgICAqLwo+ICAgc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCj4gICBpOTE1X2dlbV9vYmpl Y3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+IEBAIC0zNTEz LDM5ICszNTE0LDY2IEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCWZsYWdzICYgUElOX09GRlNFVF9CSUFTID8gZmxhZ3Mg JiBQSU5fT0ZGU0VUX01BU0sgOiAwOwo+ICAgCXVuc2lnbmVkIGxvbmcgZW5kID0KPiAgIAkJZmxh Z3MgJiBQSU5fTUFQUEFCTEUgPyBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCA6IHZtLT50b3Rh bDsKPiArCWNvbnN0IGJvb2wgaXNfb2JqZWN0ID0gIWdndHRfdmlldyB8fAo+ICsJCQkgICAgICAg Z2d0dF92aWV3LT50eXBlID09IEk5MTVfR0dUVF9WSUVXX05PUk1BTDsKPiAgIAlzdHJ1Y3QgaTkx NV92bWEgKnZtYTsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlpZihXQVJOX09OKGk5MTVfaXNfZ2d0dCh2 bSkgIT0gISFnZ3R0X3ZpZXcpKQo+IC0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ICsJaWYg KGk5MTVfaXNfZ2d0dCh2bSkpIHsKPiArCQl1MzIgdmlld19zaXplOwo+ICsKPiArCQlpZiAoV0FS Tl9PTighZ2d0dF92aWV3KSkKPiArCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4KPiAtCWZl bmNlX3NpemUgPSBpOTE1X2dlbV9nZXRfZ3R0X3NpemUoZGV2LAo+IC0JCQkJCSAgIG9iai0+YmFz ZS5zaXplLAo+IC0JCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+IC0JZmVuY2VfYWxpZ25tZW50 ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoZGV2LAo+IC0JCQkJCQkgICAgIG9iai0+YmFz ZS5zaXplLAo+IC0JCQkJCQkgICAgIG9iai0+dGlsaW5nX21vZGUsIHRydWUpOwo+IC0JdW5mZW5j ZWRfYWxpZ25tZW50ID0KPiAtCQlpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChkZXYsCj4gLQkJ CQkJICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJICAgb2JqLT50aWxpbmdfbW9kZSwgZmFsc2Up Owo+ICsJCXZpZXdfc2l6ZSA9IGk5MTVfZ2d0dF92aWV3X3NpemUob2JqLCBnZ3R0X3ZpZXcpOwo+ ICsKPiArCQlmZW5jZV9zaXplID0gaTkxNV9nZW1fZ2V0X2d0dF9zaXplKGRldiwKPiArCQkJCQkJ ICAgdmlld19zaXplLAo+ICsJCQkJCQkgICBvYmotPnRpbGluZ19tb2RlKTsKPiArCQlmZW5jZV9h bGlnbm1lbnQgPSBpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChkZXYsCj4gKwkJCQkJCQkgICAg IHZpZXdfc2l6ZSwKPiArCQkJCQkJCSAgICAgb2JqLT50aWxpbmdfbW9kZSwKPiArCQkJCQkJCSAg ICAgdHJ1ZSk7Cj4gKwkJdW5mZW5jZWRfYWxpZ25tZW50ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGln bm1lbnQoZGV2LAo+ICsJCQkJCQkJCXZpZXdfc2l6ZSwKPiArCQkJCQkJCQlvYmotPnRpbGluZ19t b2RlLAo+ICsJCQkJCQkJCWZhbHNlKTsKPiArCQlzaXplID0gZmxhZ3MgJiBQSU5fTUFQUEFCTEUg PyBmZW5jZV9zaXplIDogdmlld19zaXplOwo+ICsJfSBlbHNlIHsKPiArCQlmZW5jZV9zaXplID0g aTkxNV9nZW1fZ2V0X2d0dF9zaXplKGRldiwKPiArCQkJCQkJICAgb2JqLT5iYXNlLnNpemUsCj4g KwkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+ICsJCWZlbmNlX2FsaWdubWVudCA9IGk5MTVf Z2VtX2dldF9ndHRfYWxpZ25tZW50KGRldiwKPiArCQkJCQkJCSAgICAgb2JqLT5iYXNlLnNpemUs Cj4gKwkJCQkJCQkgICAgIG9iai0+dGlsaW5nX21vZGUsCj4gKwkJCQkJCQkgICAgIHRydWUpOwo+ ICsJCXVuZmVuY2VkX2FsaWdubWVudCA9Cj4gKwkJCWk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50 KGRldiwKPiArCQkJCQkJICAgb2JqLT5iYXNlLnNpemUsCj4gKwkJCQkJCSAgIG9iai0+dGlsaW5n X21vZGUsCj4gKwkJCQkJCSAgIGZhbHNlKTsKPiArCQlzaXplID0gZmxhZ3MgJiBQSU5fTUFQUEFC TEUgPyBmZW5jZV9zaXplIDogb2JqLT5iYXNlLnNpemU7Cj4gKwl9CgpMb29rcyBsaWtlIHlvdSBj b3VsZCBhdm9pZCBkdXBsaWNhdGluZyB0aGUgaWYvZWxzZSBiZWxvdyBpZiB5b3UgZGlkIApzb21l dGhpbmcgbGlrZToKCnZpZXdfc2l6ZSA9IGdndHRfdmlldyA/IGk5MTVfZ2d0dF92aWV3X3NpemUo Li4uKSA6IG9iai0+YmFzZS5zaXplOwoKQW5kIHRoZW4gaGF2ZSBvbmx5IG9uZSBpbnN0YW5jZSBv ZjoKCmZlbmNlZF9zaXplID0gLi4uIHdpdGggdmlld19zaXplIGZvciBzaXplLCBldGMuLgp1bmZl bmNlZF9zaXplLi4KKmFsaWdubWVudCA9IC4uLgpzaXplID0gLi4uCgo+Cj4gICAJaWYgKGFsaWdu bWVudCA9PSAwKQo+ICAgCQlhbGlnbm1lbnQgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZlbmNl X2FsaWdubWVudCA6Cj4gICAJCQkJCQl1bmZlbmNlZF9hbGlnbm1lbnQ7Cj4gICAJaWYgKGZsYWdz ICYgUElOX01BUFBBQkxFICYmIGFsaWdubWVudCAmIChmZW5jZV9hbGlnbm1lbnQgLSAxKSkgewo+ IC0JCURSTV9ERUJVRygiSW52YWxpZCBvYmplY3QgYWxpZ25tZW50IHJlcXVlc3RlZCAldVxuIiwg YWxpZ25tZW50KTsKPiArCQlEUk1fREVCVUcoIkludmFsaWQgJXMgYWxpZ25tZW50IHJlcXVlc3Rl ZCAldVxuIiwKPiArCQkJICBpc19vYmplY3QgPyAib2JqZWN0IiA6ICJHR1RUIHZpZXciLAo+ICsJ CQkgIGFsaWdubWVudCk7Cj4gICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ICAgCX0KPgo+ IC0Jc2l6ZSA9IGZsYWdzICYgUElOX01BUFBBQkxFID8gZmVuY2Vfc2l6ZSA6IG9iai0+YmFzZS5z aXplOwo+IC0KPiAtCS8qIElmIHRoZSBvYmplY3QgaXMgYmlnZ2VyIHRoYW4gdGhlIGVudGlyZSBh cGVydHVyZSwgcmVqZWN0IGl0IGVhcmx5Cj4gLQkgKiBiZWZvcmUgZXZpY3RpbmcgZXZlcnl0aGlu ZyBpbiBhIHZhaW4gYXR0ZW1wdCB0byBmaW5kIHNwYWNlLgo+ICsJLyogSWYgYmluZGluZyB0aGUg b2JqZWN0L0dHVFQgdmlldyByZXF1aXJlcyBtb3JlIHNwYWNlIHRoYW4gdGhlIGVudGlyZQo+ICsJ ICogYXBlcnR1cmUgaGFzLCByZWplY3QgaXQgZWFybHkgYmVmb3JlIGV2aWN0aW5nIGV2ZXJ5dGhp bmcgaW4gYSB2YWluCj4gKwkgKiBhdHRlbXB0IHRvIGZpbmQgc3BhY2UuCj4gICAJICovCj4gLQlp ZiAob2JqLT5iYXNlLnNpemUgPiBlbmQpIHsKPiAtCQlEUk1fREVCVUcoIkF0dGVtcHRpbmcgdG8g YmluZCBhbiBvYmplY3QgbGFyZ2VyIHRoYW4gdGhlIGFwZXJ0dXJlOiBvYmplY3Q9JXpkID4gJXMg YXBlcnR1cmU9JWx1XG4iLAo+IC0JCQkgIG9iai0+YmFzZS5zaXplLAo+ICsJaWYgKHNpemUgPiBl bmQpIHsKPiArCQlEUk1fREVCVUcoIkF0dGVtcHRpbmcgdG8gYmluZCAlcyAodmlldyB0eXBlPSV1 KSBsYXJnZXIgdGhhbiB0aGUgYXBlcnR1cmU6IHNpemU9JXUgPiAlcyBhcGVydHVyZT0lbHVcbiIs Cj4gKwkJCSAgaXNfb2JqZWN0ID8gImFuIG9iamVjdCIgOiAiYSBHR1RUIHZpZXcgIiwKPiArCQkJ ICBpc19vYmplY3QgPyAwIDogZ2d0dF92aWV3LT50eXBlLAo+ICsJCQkgIHNpemUsCgpJIGFtIG5v dCBzdXJlIGlmIHRoaXMgaXNfb2JqZWN0IHRoaW5nIGhlcmUgYW5kIGFib3ZlIGlzIHdvcnRoIGl0 LiBNYXliZSAKanVzdCBhZGQgZ2d0dF92aWV3LT50eXBlPyBTaG91bGQgY2FycnkgdGhlIHNhbWUg YW1vdW50IG9mIGluZm8gZm9yIApkZWJ1Z2dpbmc/Cgo+ICAgCQkJICBmbGFncyAmIFBJTl9NQVBQ QUJMRSA/ICJtYXBwYWJsZSIgOiAidG90YWwiLAo+ICAgCQkJICBlbmQpOwo+ICAgCQlyZXR1cm4g RVJSX1BUUigtRTJCSUcpOwo+IEBAIC00MjA3LDI4ICs0MjM1LDMwIEBAIGk5MTVfZ2VtX29iamVj dF9kb19waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJCXJldHVybiBy ZXQ7Cj4gICAJfQo+Cj4gLQlpZiAoKGJvdW5kIF4gdm1hLT5ib3VuZCkgJiBHTE9CQUxfQklORCkg ewo+IC0JCWJvb2wgbWFwcGFibGUsIGZlbmNlYWJsZTsKPiAtCQl1MzIgZmVuY2Vfc2l6ZSwgZmVu Y2VfYWxpZ25tZW50Owo+ICsJaWYgKCFnZ3R0X3ZpZXcgfHwgZ2d0dF92aWV3LT50eXBlID09IEk5 MTVfR0dUVF9WSUVXX05PUk1BTCkgewoKV2h5IHRoaXMgY29uZGl0aW9uLCBhbmQgd2h5ICIhZ2d0 dF92aWV3IiAtIHRoYXQgbWVhbnMgUFBHVFQsIG5vPyBHR1RUIAphbmQgZ2d0dF92aWV3ID09IE5V TEwgaXMgbm90IGFsbG93ZWQgYnkgdGhlIFdBUk5fT04gZWFybGllciBpbiB0aGlzIApmdW5jdGlv bi4KCj4gKwkJaWYgKChib3VuZCBeIHZtYS0+Ym91bmQpICYgR0xPQkFMX0JJTkQpIHsKPiArCQkJ Ym9vbCBtYXBwYWJsZSwgZmVuY2VhYmxlOwo+ICsJCQl1MzIgZmVuY2Vfc2l6ZSwgZmVuY2VfYWxp Z25tZW50Owo+Cj4gLQkJZmVuY2Vfc2l6ZSA9IGk5MTVfZ2VtX2dldF9ndHRfc2l6ZShvYmotPmJh c2UuZGV2LAo+IC0JCQkJCQkgICBvYmotPmJhc2Uuc2l6ZSwKPiAtCQkJCQkJICAgb2JqLT50aWxp bmdfbW9kZSk7Cj4gLQkJZmVuY2VfYWxpZ25tZW50ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1l bnQob2JqLT5iYXNlLmRldiwKPiAtCQkJCQkJCSAgICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJ CQkgICAgIG9iai0+dGlsaW5nX21vZGUsCj4gLQkJCQkJCQkgICAgIHRydWUpOwo+ICsJCQlmZW5j ZV9zaXplID0gaTkxNV9nZW1fZ2V0X2d0dF9zaXplKG9iai0+YmFzZS5kZXYsCj4gKwkJCQkJCQkg ICBvYmotPmJhc2Uuc2l6ZSwKPiArCQkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+ICsJCQlm ZW5jZV9hbGlnbm1lbnQgPSBpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChvYmotPmJhc2UuZGV2 LAo+ICsJCQkJCQkJCSAgICAgb2JqLT5iYXNlLnNpemUsCj4gKwkJCQkJCQkJICAgICBvYmotPnRp bGluZ19tb2RlLAo+ICsJCQkJCQkJCSAgICAgdHJ1ZSk7Cj4KPiAtCQlmZW5jZWFibGUgPSAodm1h LT5ub2RlLnNpemUgPT0gZmVuY2Vfc2l6ZSAmJgo+IC0JCQkgICAgICh2bWEtPm5vZGUuc3RhcnQg JiAoZmVuY2VfYWxpZ25tZW50IC0gMSkpID09IDApOwo+ICsJCQlmZW5jZWFibGUgPSAodm1hLT5u b2RlLnNpemUgPT0gZmVuY2Vfc2l6ZSAmJgo+ICsJCQkJICAgICAodm1hLT5ub2RlLnN0YXJ0ICYg KGZlbmNlX2FsaWdubWVudCAtIDEpKSA9PSAwKTsKPgo+IC0JCW1hcHBhYmxlID0gKHZtYS0+bm9k ZS5zdGFydCArIGZlbmNlX3NpemUgPD0KPiAtCQkJICAgIGRldl9wcml2LT5ndHQubWFwcGFibGVf ZW5kKTsKPiArCQkJbWFwcGFibGUgPSAodm1hLT5ub2RlLnN0YXJ0ICsgZmVuY2Vfc2l6ZSA8PQo+ ICsJCQkJICAgIGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kKTsKPgo+IC0JCW9iai0+bWFwX2Fu ZF9mZW5jZWFibGUgPSBtYXBwYWJsZSAmJiBmZW5jZWFibGU7Cj4gLQl9Cj4gKwkJCW9iai0+bWFw X2FuZF9mZW5jZWFibGUgPSBtYXBwYWJsZSAmJiBmZW5jZWFibGU7Cj4gKwkJfQo+Cj4gLQlXQVJO X09OKGZsYWdzICYgUElOX01BUFBBQkxFICYmICFvYmotPm1hcF9hbmRfZmVuY2VhYmxlKTsKPiAr CQlXQVJOX09OKGZsYWdzICYgUElOX01BUFBBQkxFICYmICFvYmotPm1hcF9hbmRfZmVuY2VhYmxl KTsKPiArCX0KPgo+ICAgCXZtYS0+cGluX2NvdW50Kys7Cj4gICAJcmV0dXJuIDA7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCBlZTlmZjhlLi41YmFiYmQzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMjg0MiwzICsyODQyLDI2IEBAIGlu dCBpOTE1X3ZtYV9iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBlbnVtIGk5MTVfY2FjaGVfbGV2 ZWwgY2FjaGVfbGV2ZWwsCj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiArCj4gKy8qKgo+ICsgKiBp OTE1X2dndHRfdmlld19zaXplIC0gR2V0IHRoZSBzaXplIG9mIGEgR0dUVCB2aWV3Lgo+ICsgKiBA b2JqOiBPYmplY3QgdGhlIHZpZXcgaXMgb2YuCj4gKyAqIEB2aWV3OiBUaGUgdmlldyBpbiBxdWVz dGlvbi4KPiArICoKPiArICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUgR0dUVCB2aWV3IGluIGJ5 dGVzLgo+ICsgKi8KPiArc2l6ZV90Cj4gK2k5MTVfZ2d0dF92aWV3X3NpemUoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKPiArCQkgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3 ICp2aWV3KQo+ICt7Cj4gKwlCVUdfT04oIXZpZXcpOwoKV0FSTl9PTiBhbmQgcmV0dXJuIG9iamVj dCBzaXplIG1heWJlPwoKT25jZSBJIG1lbnRpb25lZCwgaWYgd2UgcmVhbGx5IHdhbnRlZCB0byBz dG9wIHRoZSBkcml2ZXIgY29tcGxldGVseSBpbiAKc29tZSBjYXNlcywgc2hvdWxkIGFkZCBzb21l dGhpbmcgbGlrZSBJOTE1X0JVR19PTigpIGFuZCBzb21lIGZsYWdzIGF0IApzdHJhdGVnaWMgcGxh Y2VzLiBNYXliZSBpdCB3b3VsZCBiZSBwb3NzaWJsZS4KCj4gKwo+ICsJaWYgKHZpZXctPnR5cGUg PT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMIHx8Cj4gKwkgICAgdmlldy0+dHlwZSA9PSBJOTE1X0dH VFRfVklFV19ST1RBVEVEKSB7Cj4gKwkJcmV0dXJuIG9iai0+YmFzZS5zaXplOwo+ICsJfSBlbHNl IHsKPiArCQlXQVJOX09OQ0UoMSwgIkdHVFQgdmlldyAldSBub3QgaW1wbGVtZW50ZWQhXG4iLCB2 aWV3LT50eXBlKTsKPiArCQlyZXR1cm4gb2JqLT5iYXNlLnNpemU7Cj4gKwl9Cj4gK30KPiArCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCA0ZTZjYWM1Li4zNGI3Y2NhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtNDk4LDQgKzQ5OCw4IEBA IGk5MTVfZ2d0dF92aWV3X2VxdWFsKGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqYSwKPiAg IAlyZXR1cm4gYS0+dHlwZSA9PSBiLT50eXBlOwo+ICAgfQo+Cj4gK3NpemVfdAo+ICtpOTE1X2dn dHRfdmlld19zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gKwkJICAgIGNv bnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldyk7Cj4gKwo+ICAgI2VuZGlmCj4KClJlZ2Fy ZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK