From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 2/5] drm/i915: Do not make assumptions on GGTT VMA sizes Date: Tue, 28 Apr 2015 10:23:14 +0300 Message-ID: <1430205794.3270.5.camel@jlahtine-mobl1> References: <1429877356.19506.5.camel@jlahtine-mobl1> <553E3FE7.5030905@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id EB8A36E52D for ; Tue, 28 Apr 2015 00:23:17 -0700 (PDT) In-Reply-To: <553E3FE7.5030905@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTUtMDQtMjcgYXQgMTQ6NTUgKzAxMDAsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+ IEhpLAo+IAo+IE9uIDA0LzI0LzIwMTUgMDE6MDkgUE0sIEpvb25hcyBMYWh0aW5lbiB3cm90ZToK PiA+Cj4gPiBHR1RUIFZNQSBzaXplcyBtaWdodCBiZSBzbWFsbGVyIHRoYW4gdGhlIHdob2xlIG9i amVjdCBzaXplIGR1ZSB0bwo+ID4gZGlmZmVyZW50IEdHVFQgdmlld3MuCj4gPgo+ID4gdjI6Cj4g PiAtIFNlcGFyYXRlIEdHVFQgdmlldyBjb25zdHJhaW50IGNhbGN1bGF0aW9ucyBmcm9tIG5vcm1h bCB2aWV3Cj4gPiAgICBjb25zdHJhaW50IGNhbGN1bGF0aW9ucyAoQ2hyaXMgV2lsc29uKQo+ID4K PiA+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+IFNpZ25l ZC1vZmYtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KPiA+IC0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICB8ICAx MDYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiA+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAgIDIzICsrKysrKysrCj4gPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIHwgICAgNCArKwo+ID4gICAzIGZpbGVzIGNoYW5nZWQs IDk1IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ID4gaW5kZXggZThmNmY0Yy4uMTExYWM4YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiA+IEBAIC0zNDk3LDcgKzM0OTcsOCBAQCBzdGF0aWMgYm9vbCBpOTE1X2dl bV92YWxpZF9ndHRfc3BhY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gPiAgIH0KPiA+Cj4gPiAg IC8qKgo+ID4gLSAqIEZpbmRzIGZyZWUgc3BhY2UgaW4gdGhlIEdUVCBhcGVydHVyZSBhbmQgYmlu ZHMgdGhlIG9iamVjdCB0aGVyZS4KPiA+ICsgKiBGaW5kcyBmcmVlIHNwYWNlIGluIHRoZSBHVFQg YXBlcnR1cmUgYW5kIGJpbmRzIHRoZSBvYmplY3Qgb3IgYSB2aWV3IG9mIGl0Cj4gPiArICogdGhl cmUuCj4gPiAgICAqLwo+ID4gICBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKPiA+ICAgaTkxNV9n ZW1fb2JqZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ IEBAIC0zNTEzLDM5ICszNTE0LDY2IEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAgIAkJZmxhZ3MgJiBQSU5fT0ZGU0VUX0JJ QVMgPyBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSyA6IDA7Cj4gPiAgIAl1bnNpZ25lZCBsb25nIGVu ZCA9Cj4gPiAgIAkJZmxhZ3MgJiBQSU5fTUFQUEFCTEUgPyBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxl X2VuZCA6IHZtLT50b3RhbDsKPiA+ICsJY29uc3QgYm9vbCBpc19vYmplY3QgPSAhZ2d0dF92aWV3 IHx8Cj4gPiArCQkJICAgICAgIGdndHRfdmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JN QUw7Cj4gPiAgIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiA+ICAgCWludCByZXQ7Cj4gPgo+ID4g LQlpZihXQVJOX09OKGk5MTVfaXNfZ2d0dCh2bSkgIT0gISFnZ3R0X3ZpZXcpKQo+ID4gLQkJcmV0 dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gPiArCWlmIChpOTE1X2lzX2dndHQodm0pKSB7Cj4gPiAr CQl1MzIgdmlld19zaXplOwo+ID4gKwo+ID4gKwkJaWYgKFdBUk5fT04oIWdndHRfdmlldykpCj4g PiArCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gPgo+ID4gLQlmZW5jZV9zaXplID0gaTkx NV9nZW1fZ2V0X2d0dF9zaXplKGRldiwKPiA+IC0JCQkJCSAgIG9iai0+YmFzZS5zaXplLAo+ID4g LQkJCQkJICAgb2JqLT50aWxpbmdfbW9kZSk7Cj4gPiAtCWZlbmNlX2FsaWdubWVudCA9IGk5MTVf Z2VtX2dldF9ndHRfYWxpZ25tZW50KGRldiwKPiA+IC0JCQkJCQkgICAgIG9iai0+YmFzZS5zaXpl LAo+ID4gLQkJCQkJCSAgICAgb2JqLT50aWxpbmdfbW9kZSwgdHJ1ZSk7Cj4gPiAtCXVuZmVuY2Vk X2FsaWdubWVudCA9Cj4gPiAtCQlpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChkZXYsCj4gPiAt CQkJCQkgICBvYmotPmJhc2Uuc2l6ZSwKPiA+IC0JCQkJCSAgIG9iai0+dGlsaW5nX21vZGUsIGZh bHNlKTsKPiA+ICsJCXZpZXdfc2l6ZSA9IGk5MTVfZ2d0dF92aWV3X3NpemUob2JqLCBnZ3R0X3Zp ZXcpOwo+ID4gKwo+ID4gKwkJZmVuY2Vfc2l6ZSA9IGk5MTVfZ2VtX2dldF9ndHRfc2l6ZShkZXYs Cj4gPiArCQkJCQkJICAgdmlld19zaXplLAo+ID4gKwkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUp Owo+ID4gKwkJZmVuY2VfYWxpZ25tZW50ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoZGV2 LAo+ID4gKwkJCQkJCQkgICAgIHZpZXdfc2l6ZSwKPiA+ICsJCQkJCQkJICAgICBvYmotPnRpbGlu Z19tb2RlLAo+ID4gKwkJCQkJCQkgICAgIHRydWUpOwo+ID4gKwkJdW5mZW5jZWRfYWxpZ25tZW50 ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoZGV2LAo+ID4gKwkJCQkJCQkJdmlld19zaXpl LAo+ID4gKwkJCQkJCQkJb2JqLT50aWxpbmdfbW9kZSwKPiA+ICsJCQkJCQkJCWZhbHNlKTsKPiA+ ICsJCXNpemUgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZlbmNlX3NpemUgOiB2aWV3X3NpemU7 Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlmZW5jZV9zaXplID0gaTkxNV9nZW1fZ2V0X2d0dF9zaXpl KGRldiwKPiA+ICsJCQkJCQkgICBvYmotPmJhc2Uuc2l6ZSwKPiA+ICsJCQkJCQkgICBvYmotPnRp bGluZ19tb2RlKTsKPiA+ICsJCWZlbmNlX2FsaWdubWVudCA9IGk5MTVfZ2VtX2dldF9ndHRfYWxp Z25tZW50KGRldiwKPiA+ICsJCQkJCQkJICAgICBvYmotPmJhc2Uuc2l6ZSwKPiA+ICsJCQkJCQkJ ICAgICBvYmotPnRpbGluZ19tb2RlLAo+ID4gKwkJCQkJCQkgICAgIHRydWUpOwo+ID4gKwkJdW5m ZW5jZWRfYWxpZ25tZW50ID0KPiA+ICsJCQlpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChkZXYs Cj4gPiArCQkJCQkJICAgb2JqLT5iYXNlLnNpemUsCj4gPiArCQkJCQkJICAgb2JqLT50aWxpbmdf bW9kZSwKPiA+ICsJCQkJCQkgICBmYWxzZSk7Cj4gPiArCQlzaXplID0gZmxhZ3MgJiBQSU5fTUFQ UEFCTEUgPyBmZW5jZV9zaXplIDogb2JqLT5iYXNlLnNpemU7Cj4gPiArCX0KPiAKPiBMb29rcyBs aWtlIHlvdSBjb3VsZCBhdm9pZCBkdXBsaWNhdGluZyB0aGUgaWYvZWxzZSBiZWxvdyBpZiB5b3Ug ZGlkIAo+IHNvbWV0aGluZyBsaWtlOgo+IAo+IHZpZXdfc2l6ZSA9IGdndHRfdmlldyA/IGk5MTVf Z2d0dF92aWV3X3NpemUoLi4uKSA6IG9iai0+YmFzZS5zaXplOwo+IAo+IEFuZCB0aGVuIGhhdmUg b25seSBvbmUgaW5zdGFuY2Ugb2Y6Cj4gCj4gZmVuY2VkX3NpemUgPSAuLi4gd2l0aCB2aWV3X3Np emUgZm9yIHNpemUsIGV0Yy4uCj4gdW5mZW5jZWRfc2l6ZS4uCj4gKmFsaWdubWVudCA9IC4uLgo+ IHNpemUgPSAuLi4KPiAKCkl0IHdhcyBvcmlnaW5hbGx5IGxpa2UgdGhhdCwgdGhpcyB2MiBtb3Zl ZCBpdCB0byBpdHMgb3duIGJyYW5jaCBiZWNhdXNlCkNocmlzIGluZm9ybWVkIG1lIHRoYXQgdGhl cmUgaXMgd29yayBnb2luZyBvbiB3aGljaCBhZGRzIG1vcmUKY29uc3RyYWludHMsIGFuZCB0aGF0 IG9wdGltaXppbmcgY29tbW9uIGNvZGUgc2hvdWxkIG9ubHkgYmUgZG9uZSBhZnRlcgp0aGUgZHVz dCBoYXMgc2V0dGxlZC4KCj4gPgo+ID4gICAJaWYgKGFsaWdubWVudCA9PSAwKQo+ID4gICAJCWFs aWdubWVudCA9IGZsYWdzICYgUElOX01BUFBBQkxFID8gZmVuY2VfYWxpZ25tZW50IDoKPiA+ICAg CQkJCQkJdW5mZW5jZWRfYWxpZ25tZW50Owo+ID4gICAJaWYgKGZsYWdzICYgUElOX01BUFBBQkxF ICYmIGFsaWdubWVudCAmIChmZW5jZV9hbGlnbm1lbnQgLSAxKSkgewo+ID4gLQkJRFJNX0RFQlVH KCJJbnZhbGlkIG9iamVjdCBhbGlnbm1lbnQgcmVxdWVzdGVkICV1XG4iLCBhbGlnbm1lbnQpOwo+ ID4gKwkJRFJNX0RFQlVHKCJJbnZhbGlkICVzIGFsaWdubWVudCByZXF1ZXN0ZWQgJXVcbiIsCj4g PiArCQkJICBpc19vYmplY3QgPyAib2JqZWN0IiA6ICJHR1RUIHZpZXciLAo+ID4gKwkJCSAgYWxp Z25tZW50KTsKPiA+ICAgCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKPiA+ICAgCX0KPiA+Cj4g PiAtCXNpemUgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZlbmNlX3NpemUgOiBvYmotPmJhc2Uu c2l6ZTsKPiA+IC0KPiA+IC0JLyogSWYgdGhlIG9iamVjdCBpcyBiaWdnZXIgdGhhbiB0aGUgZW50 aXJlIGFwZXJ0dXJlLCByZWplY3QgaXQgZWFybHkKPiA+IC0JICogYmVmb3JlIGV2aWN0aW5nIGV2 ZXJ5dGhpbmcgaW4gYSB2YWluIGF0dGVtcHQgdG8gZmluZCBzcGFjZS4KPiA+ICsJLyogSWYgYmlu ZGluZyB0aGUgb2JqZWN0L0dHVFQgdmlldyByZXF1aXJlcyBtb3JlIHNwYWNlIHRoYW4gdGhlIGVu dGlyZQo+ID4gKwkgKiBhcGVydHVyZSBoYXMsIHJlamVjdCBpdCBlYXJseSBiZWZvcmUgZXZpY3Rp bmcgZXZlcnl0aGluZyBpbiBhIHZhaW4KPiA+ICsJICogYXR0ZW1wdCB0byBmaW5kIHNwYWNlLgo+ ID4gICAJICovCj4gPiAtCWlmIChvYmotPmJhc2Uuc2l6ZSA+IGVuZCkgewo+ID4gLQkJRFJNX0RF QlVHKCJBdHRlbXB0aW5nIHRvIGJpbmQgYW4gb2JqZWN0IGxhcmdlciB0aGFuIHRoZSBhcGVydHVy ZTogb2JqZWN0PSV6ZCA+ICVzIGFwZXJ0dXJlPSVsdVxuIiwKPiA+IC0JCQkgIG9iai0+YmFzZS5z aXplLAo+ID4gKwlpZiAoc2l6ZSA+IGVuZCkgewo+ID4gKwkJRFJNX0RFQlVHKCJBdHRlbXB0aW5n IHRvIGJpbmQgJXMgKHZpZXcgdHlwZT0ldSkgbGFyZ2VyIHRoYW4gdGhlIGFwZXJ0dXJlOiBzaXpl PSV1ID4gJXMgYXBlcnR1cmU9JWx1XG4iLAo+ID4gKwkJCSAgaXNfb2JqZWN0ID8gImFuIG9iamVj dCIgOiAiYSBHR1RUIHZpZXcgIiwKPiA+ICsJCQkgIGlzX29iamVjdCA/IDAgOiBnZ3R0X3ZpZXct PnR5cGUsCj4gPiArCQkJICBzaXplLAo+IAo+IEkgYW0gbm90IHN1cmUgaWYgdGhpcyBpc19vYmpl Y3QgdGhpbmcgaGVyZSBhbmQgYWJvdmUgaXMgd29ydGggaXQuIE1heWJlIAo+IGp1c3QgYWRkIGdn dHRfdmlldy0+dHlwZT8gU2hvdWxkIGNhcnJ5IHRoZSBzYW1lIGFtb3VudCBvZiBpbmZvIGZvciAK PiBkZWJ1Z2dpbmc/CgpUcnVlIHNvLgoKPiAKPiA+ICAgCQkJICBmbGFncyAmIFBJTl9NQVBQQUJM RSA/ICJtYXBwYWJsZSIgOiAidG90YWwiLAo+ID4gICAJCQkgIGVuZCk7Cj4gPiAgIAkJcmV0dXJu IEVSUl9QVFIoLUUyQklHKTsKPiA+IEBAIC00MjA3LDI4ICs0MjM1LDMwIEBAIGk5MTVfZ2VtX29i amVjdF9kb19waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICAgCQkJcmV0 dXJuIHJldDsKPiA+ICAgCX0KPiA+Cj4gPiAtCWlmICgoYm91bmQgXiB2bWEtPmJvdW5kKSAmIEdM T0JBTF9CSU5EKSB7Cj4gPiAtCQlib29sIG1hcHBhYmxlLCBmZW5jZWFibGU7Cj4gPiAtCQl1MzIg ZmVuY2Vfc2l6ZSwgZmVuY2VfYWxpZ25tZW50Owo+ID4gKwlpZiAoIWdndHRfdmlldyB8fCBnZ3R0 X3ZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMKSB7Cj4gCj4gV2h5IHRoaXMgY29u ZGl0aW9uLCBhbmQgd2h5ICIhZ2d0dF92aWV3IiAtIHRoYXQgbWVhbnMgUFBHVFQsIG5vPyBHR1RU IAo+IGFuZCBnZ3R0X3ZpZXcgPT0gTlVMTCBpcyBub3QgYWxsb3dlZCBieSB0aGUgV0FSTl9PTiBl YXJsaWVyIGluIHRoaXMgCj4gZnVuY3Rpb24uCgpUaGlzIGNvbmRpdGlvbiBpcyB0aGVyZSBiZWNh dXNlIHRoZSBjYWxjdWxhdGlvbiBhcHBsaWVzIHRvIHRoZSB3aG9sZQpvYmplY3QgZmxhZyAnbWFw X2FuZF9mZW5jZWFibGUnLiBBbmQgY29uZGl0aW9ucyB3aGVuIHRoZSB3aG9sZSBvYmplY3QKYXJl IGhhbmRsZWQgYXJlIHdoZW4gaXQncyBub3QgaW4gR0dUVCwgb3Igd2UncmUgdGFsa2luZyBhYm91 dCBub3JtYWwKdmlldyBpbiBHR1RULgoKPiAKPiA+ICsJCWlmICgoYm91bmQgXiB2bWEtPmJvdW5k KSAmIEdMT0JBTF9CSU5EKSB7Cj4gPiArCQkJYm9vbCBtYXBwYWJsZSwgZmVuY2VhYmxlOwo+ID4g KwkJCXUzMiBmZW5jZV9zaXplLCBmZW5jZV9hbGlnbm1lbnQ7Cj4gPgo+ID4gLQkJZmVuY2Vfc2l6 ZSA9IGk5MTVfZ2VtX2dldF9ndHRfc2l6ZShvYmotPmJhc2UuZGV2LAo+ID4gLQkJCQkJCSAgIG9i ai0+YmFzZS5zaXplLAo+ID4gLQkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+ID4gLQkJZmVu Y2VfYWxpZ25tZW50ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQob2JqLT5iYXNlLmRldiwK PiA+IC0JCQkJCQkJICAgICBvYmotPmJhc2Uuc2l6ZSwKPiA+IC0JCQkJCQkJICAgICBvYmotPnRp bGluZ19tb2RlLAo+ID4gLQkJCQkJCQkgICAgIHRydWUpOwo+ID4gKwkJCWZlbmNlX3NpemUgPSBp OTE1X2dlbV9nZXRfZ3R0X3NpemUob2JqLT5iYXNlLmRldiwKPiA+ICsJCQkJCQkJICAgb2JqLT5i YXNlLnNpemUsCj4gPiArCQkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+ID4gKwkJCWZlbmNl X2FsaWdubWVudCA9IGk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KG9iai0+YmFzZS5kZXYsCj4g PiArCQkJCQkJCQkgICAgIG9iai0+YmFzZS5zaXplLAo+ID4gKwkJCQkJCQkJICAgICBvYmotPnRp bGluZ19tb2RlLAo+ID4gKwkJCQkJCQkJICAgICB0cnVlKTsKPiA+Cj4gPiAtCQlmZW5jZWFibGUg PSAodm1hLT5ub2RlLnNpemUgPT0gZmVuY2Vfc2l6ZSAmJgo+ID4gLQkJCSAgICAgKHZtYS0+bm9k ZS5zdGFydCAmIChmZW5jZV9hbGlnbm1lbnQgLSAxKSkgPT0gMCk7Cj4gPiArCQkJZmVuY2VhYmxl ID0gKHZtYS0+bm9kZS5zaXplID09IGZlbmNlX3NpemUgJiYKPiA+ICsJCQkJICAgICAodm1hLT5u b2RlLnN0YXJ0ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSA9PSAwKTsKPiA+Cj4gPiAtCQltYXBw YWJsZSA9ICh2bWEtPm5vZGUuc3RhcnQgKyBmZW5jZV9zaXplIDw9Cj4gPiAtCQkJICAgIGRldl9w cml2LT5ndHQubWFwcGFibGVfZW5kKTsKPiA+ICsJCQltYXBwYWJsZSA9ICh2bWEtPm5vZGUuc3Rh cnQgKyBmZW5jZV9zaXplIDw9Cj4gPiArCQkJCSAgICBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Vu ZCk7Cj4gPgo+ID4gLQkJb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSA9IG1hcHBhYmxlICYmIGZlbmNl YWJsZTsKPiA+IC0JfQo+ID4gKwkJCW9iai0+bWFwX2FuZF9mZW5jZWFibGUgPSBtYXBwYWJsZSAm JiBmZW5jZWFibGU7Cj4gPiArCQl9Cj4gPgo+ID4gLQlXQVJOX09OKGZsYWdzICYgUElOX01BUFBB QkxFICYmICFvYmotPm1hcF9hbmRfZmVuY2VhYmxlKTsKPiA+ICsJCVdBUk5fT04oZmxhZ3MgJiBQ SU5fTUFQUEFCTEUgJiYgIW9iai0+bWFwX2FuZF9mZW5jZWFibGUpOwo+ID4gKwl9Cj4gPgo+ID4g ICAJdm1hLT5waW5fY291bnQrKzsKPiA+ICAgCXJldHVybiAwOwo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiA+IGluZGV4IGVlOWZmOGUuLjViYWJiZDMgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiA+IEBAIC0yODQyLDMgKzI4NDIsMjYgQEAgaW50 IGk5MTVfdm1hX2JpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGVudW0gaTkxNV9jYWNoZV9sZXZl bCBjYWNoZV9sZXZlbCwKPiA+Cj4gPiAgIAlyZXR1cm4gMDsKPiA+ICAgfQo+ID4gKwo+ID4gKy8q Kgo+ID4gKyAqIGk5MTVfZ2d0dF92aWV3X3NpemUgLSBHZXQgdGhlIHNpemUgb2YgYSBHR1RUIHZp ZXcuCj4gPiArICogQG9iajogT2JqZWN0IHRoZSB2aWV3IGlzIG9mLgo+ID4gKyAqIEB2aWV3OiBU aGUgdmlldyBpbiBxdWVzdGlvbi4KPiA+ICsgKgo+ID4gKyAqIEByZXR1cm4gVGhlIHNpemUgb2Yg dGhlIEdHVFQgdmlldyBpbiBieXRlcy4KPiA+ICsgKi8KPiA+ICtzaXplX3QKPiA+ICtpOTE1X2dn dHRfdmlld19zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiArCQkgICAg Y29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3KQo+ID4gK3sKPiA+ICsJQlVHX09OKCF2 aWV3KTsKPiAKPiBXQVJOX09OIGFuZCByZXR1cm4gb2JqZWN0IHNpemUgbWF5YmU/Cj4gCgpUaGVy ZSdzIG5vIHNlbnNlIHRvIGNhbGwgdGhlIHRoaXMgZnVuY3Rpb24gd2l0aCBOVUxMIHBvaW50ZXIg YmVjYXVzZSBpdAppcyB0aGUgbWFpbiBhcmd1bWVudCBvZiB0aGUgZnVuY3Rpb24sIGl0J2QgT09Q UyBpbiB0aGlzIGNhc2UsIHNvIEkKdW5kZXJzdG9vZCB0aGlzIHdvdWxkIGJlIHRoZSBPSyBwbGFj ZSB0byB1c2UgaXQuCgo+IE9uY2UgSSBtZW50aW9uZWQsIGlmIHdlIHJlYWxseSB3YW50ZWQgdG8g c3RvcCB0aGUgZHJpdmVyIGNvbXBsZXRlbHkgaW4gCj4gc29tZSBjYXNlcywgc2hvdWxkIGFkZCBz b21ldGhpbmcgbGlrZSBJOTE1X0JVR19PTigpIGFuZCBzb21lIGZsYWdzIGF0IAo+IHN0cmF0ZWdp YyBwbGFjZXMuIE1heWJlIGl0IHdvdWxkIGJlIHBvc3NpYmxlLgo+IAo+ID4gKwo+ID4gKwlpZiAo dmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwgfHwKPiA+ICsJICAgIHZpZXctPnR5 cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCkgewo+ID4gKwkJcmV0dXJuIG9iai0+YmFzZS5z aXplOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJV0FSTl9PTkNFKDEsICJHR1RUIHZpZXcgJXUgbm90 IGltcGxlbWVudGVkIVxuIiwgdmlldy0+dHlwZSk7Cj4gPiArCQlyZXR1cm4gb2JqLT5iYXNlLnNp emU7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aAo+ID4gaW5kZXggNGU2Y2FjNS4uMzRiN2NjYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaAo+ID4gQEAgLTQ5OCw0ICs0OTgsOCBAQCBpOTE1X2dndHRfdmlld19lcXVh bChjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKmEsCj4gPiAgIAlyZXR1cm4gYS0+dHlwZSA9 PSBiLT50eXBlOwo+ID4gICB9Cj4gPgo+ID4gK3NpemVfdAo+ID4gK2k5MTVfZ2d0dF92aWV3X3Np emUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICsJCSAgICBjb25zdCBzdHJ1 Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+ID4gKwo+ID4gICAjZW5kaWYKPiA+Cj4gCj4gUmVn YXJkcywKPiAKPiBUdnJ0a28KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=