From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 06/38] drm/i915: Pad GTT views of exec objects up to user specified size Date: Wed, 8 Jun 2016 11:41:01 +0200 Message-ID: <20160608094101.GT3363@phenom.ffwll.local> References: <1464972953-2726-1-git-send-email-chris@chris-wilson.co.uk> <1464972953-2726-7-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C0466E42C for ; Wed, 8 Jun 2016 09:41:06 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id r5so1506371wmr.0 for ; Wed, 08 Jun 2016 02:41:06 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1464972953-2726-7-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMDMsIDIwMTYgYXQgMDU6NTU6MjFQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE91ciBHUFVzIGltcG9zZSBjZXJ0YWluIHJlcXVpcmVtZW50cyB1cG9uIGJ1ZmZlcnMg dGhhdCBkZXBlbmQgdXBvbiBob3cKPiBleGFjdGx5IHRoZXkgYXJlIHVzZWQuIFR5cGljYWxseSB0 aGlzIGlzIGV4cHJlc3NlZCBhcyB0aGF0IHRoZXkgcmVxdWlyZQo+IGEgbGFyZ2VyIHN1cmZhY2Ug dGhhbiB3b3VsZCBiZSBuYWl2ZWx5IGNvbXB1dGVkIGJ5IHBpdGNoICogaGVpZ2h0Lgo+IE5vcm1h bGx5IHN1Y2ggcmVxdWlyZW1lbnRzIGFyZSBoaWRkZW4gYXdheSBpbiB0aGUgdXNlcnNwYWNlIGRy aXZlciwgYnV0Cj4gd2hlbiB3ZSBhY2NlcHQgcG9pbnRlcnMgZnJvbSBzdHJhbmdlcnMgYW5kIGxh dGVyIGltcG9zZSBleHRyYSBjb25kaXRpb25zCj4gb24gdGhlbSwgdGhlIG9yaWdpbmFsIGNsaWVu dCBhbGxvY2F0b3IgaGFzIG5vIGlkZWEgYWJvdXQgdGhlCj4gbW9uc3Ryb3NpdGllcyBpbiB0aGUg R1BVIGFuZCB3ZSByZXF1aXJlIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIHRvIGluZm9ybQo+IHRoZSBr ZXJuZWwgaG93IG1hbnkgcGFkZGluZyBwYWdlcyBhcmUgcmVxdWlyZWQgYmV5b25kIHRoZSBjbGll bnQKPiBhbGxvY2F0aW9uLgo+IAo+IHYyOiBMb25nIHRpbWUsIG5vIHNlZQo+IHYzOiBUcnkgYW4g YW5vbnltb3VzIHVuaW9uIGZvciB1YXBpIHN0cnVjdCBjb21wYXRhYmlsaXR5Cj4gCj4gU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpIbSwgd2hlcmUncyB0aGUg dXNlcnNwYWNlIGZvciB0aGlzPyBDb21taXQgbWVzc2FnZSBzaG91bGQgZWxhYm9yYXRlIGltbyBh CmJpdCBtb3JlIG9uIHdoYXQncyBnb2luZyBvbiBoZXJlIC4uLgotRGFuaWVsCgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgNiArKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgODIgKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYyB8IDE2ICsrKysrLQo+ICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAg ICAgICAgICAgfCAgOCArKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA0 NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBhMDY1MzI1 NTgwZDguLjk1MjBhZGJhMzNmNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0y OTQ1LDExICsyOTQ1LDEzIEBAIHZvaWQgaTkxNV9nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopOwo+ICBpbnQgX19tdXN0X2NoZWNrCj4gIGk5MTVfZ2VtX29iamVjdF9w aW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQkgICAgc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4gKwkJICAgIHVpbnQ2NF90IHNpemUsCj4gIAkJICAgIHVpbnQz Ml90IGFsaWdubWVudCwKPiAgCQkgICAgdWludDY0X3QgZmxhZ3MpOwo+ICBpbnQgX19tdXN0X2No ZWNrCj4gIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+ICAJCQkgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ICsJCQkg dWludDY0X3Qgc2l6ZSwKPiAgCQkJIHVpbnQzMl90IGFsaWdubWVudCwKPiAgCQkJIHVpbnQ2NF90 IGZsYWdzKTsKPiAgCj4gQEAgLTMyMDksOCArMzIxMSw4IEBAIGk5MTVfZ2VtX29ial9nZ3R0X3Bp bihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpOTE1 X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7Cj4gIAo+IC0JcmV0dXJuIGk5MTVfZ2VtX29i amVjdF9waW4ob2JqLCAmZ2d0dC0+YmFzZSwKPiAtCQkJCSAgIGFsaWdubWVudCwgZmxhZ3MgfCBQ SU5fR0xPQkFMKTsKPiArCXJldHVybiBpOTE1X2dlbV9vYmplY3RfcGluKG9iaiwgJmdndHQtPmJh c2UsIDAsIGFsaWdubWVudCwKPiArCQkJCSAgIGZsYWdzIHwgUElOX0dMT0JBTCk7Cj4gIH0KPiAg Cj4gIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW5fdmlldyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDE5YjhkMmVh NzY5OC4uMGYwMTAxMzAwYjJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTE0 MzgsNyArMTQzOCw3IEBAIGludCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSwgc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4gIAl9Cj4gIAo+ICAJLyogTm93IHBpbiBpdCBp bnRvIHRoZSBHVFQgaWYgbmVlZGVkICovCj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9w aW4ob2JqLCAmdmlldywgMCwgUElOX01BUFBBQkxFKTsKPiArCXJldCA9IGk5MTVfZ2VtX29iamVj dF9nZ3R0X3BpbihvYmosICZ2aWV3LCAwLCAwLCBQSU5fTUFQUEFCTEUpOwo+ICAJaWYgKHJldCkK PiAgCQlnb3RvIHVubG9jazsKPiAgCj4gQEAgLTI2NzgsMjEgKzI2NzgsMjAgQEAgc3RhdGljIHN0 cnVjdCBpOTE1X3ZtYSAqCj4gIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJCSAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKmdndHRfdmlldywKPiAr CQkJICAgdWludDY0X3Qgc2l6ZSwKPiAgCQkJICAgdW5zaWduZWQgYWxpZ25tZW50LAo+ICAJCQkg ICB1aW50NjRfdCBmbGFncykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0Owo+IC0J dTMyIGZlbmNlX2FsaWdubWVudCwgdW5mZW5jZWRfYWxpZ25tZW50Owo+IC0JdTMyIHNlYXJjaF9m bGFnLCBhbGxvY19mbGFnOwo+ICAJdTY0IHN0YXJ0LCBlbmQ7Cj4gLQl1NjQgc2l6ZSwgZmVuY2Vf c2l6ZTsKPiArCXUzMiBzZWFyY2hfZmxhZywgYWxsb2NfZmxhZzsKPiAgCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwo+ICAJaW50IHJldDsKPiAgCj4gIAlpZiAoaTkxNV9pc19nZ3R0KHZtKSkgewo+IC0J CXUzMiB2aWV3X3NpemU7Cj4gKwkJdTMyIGZlbmNlX3NpemUsIGZlbmNlX2FsaWdubWVudCwgdW5m ZW5jZWRfYWxpZ25tZW50Owo+ICsJCXU2NCB2aWV3X3NpemU7Cj4gIAo+ICAJCWlmIChXQVJOX09O KCFnZ3R0X3ZpZXcpKQo+ICAJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKPiBAQCAtMjcxMCw0 OCArMjcwOSwzOSBAQCBpOTE1X2dlbV9vYmplY3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAo+ICAJCQkJCQkJCXZpZXdfc2l6ZSwKPiAgCQkJCQkJCQlvYmotPnRp bGluZ19tb2RlLAo+ICAJCQkJCQkJCWZhbHNlKTsKPiAtCQlzaXplID0gZmxhZ3MgJiBQSU5fTUFQ UEFCTEUgPyBmZW5jZV9zaXplIDogdmlld19zaXplOwo+ICsJCXNpemUgPSBtYXgoc2l6ZSwgdmll d19zaXplKTsKPiArCQlpZiAoZmxhZ3MgJiBQSU5fTUFQUEFCTEUpCj4gKwkJCXNpemUgPSBtYXhf dCh1NjQsIHNpemUsIGZlbmNlX3NpemUpOwo+ICsKPiArCQlpZiAoYWxpZ25tZW50ID09IDApCj4g KwkJCWFsaWdubWVudCA9IGZsYWdzICYgUElOX01BUFBBQkxFID8gZmVuY2VfYWxpZ25tZW50IDoK PiArCQkJCXVuZmVuY2VkX2FsaWdubWVudDsKPiArCQlpZiAoZmxhZ3MgJiBQSU5fTUFQUEFCTEUg JiYgYWxpZ25tZW50ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSB7Cj4gKwkJCURSTV9ERUJVRygi SW52YWxpZCBvYmplY3QgKHZpZXcgdHlwZT0ldSkgYWxpZ25tZW50IHJlcXVlc3RlZCAldVxuIiwK PiArCQkJCSAgZ2d0dF92aWV3ID8gZ2d0dF92aWV3LT50eXBlIDogMCwKPiArCQkJCSAgYWxpZ25t ZW50KTsKPiArCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gKwkJfQo+ICAJfSBlbHNlIHsK PiAtCQlmZW5jZV9zaXplID0gaTkxNV9nZW1fZ2V0X2d0dF9zaXplKGRldiwKPiAtCQkJCQkJICAg b2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUpOwo+IC0JCWZlbmNl X2FsaWdubWVudCA9IGk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KGRldiwKPiAtCQkJCQkJCSAg ICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJCQkgICAgIG9iai0+dGlsaW5nX21vZGUsCj4gLQkJ CQkJCQkgICAgIHRydWUpOwo+IC0JCXVuZmVuY2VkX2FsaWdubWVudCA9Cj4gLQkJCWk5MTVfZ2Vt X2dldF9ndHRfYWxpZ25tZW50KGRldiwKPiAtCQkJCQkJICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJ CQkJCSAgIG9iai0+dGlsaW5nX21vZGUsCj4gLQkJCQkJCSAgIGZhbHNlKTsKPiAtCQlzaXplID0g ZmxhZ3MgJiBQSU5fTUFQUEFCTEUgPyBmZW5jZV9zaXplIDogb2JqLT5iYXNlLnNpemU7Cj4gKwkJ c2l6ZSA9IG1heF90KHU2NCwgc2l6ZSwgb2JqLT5iYXNlLnNpemUpOwo+ICsJCWFsaWdubWVudCA9 IDQwOTY7Cj4gIAl9Cj4gIAo+ICAJc3RhcnQgPSBmbGFncyAmIFBJTl9PRkZTRVRfQklBUyA/IGZs YWdzICYgUElOX09GRlNFVF9NQVNLIDogMDsKPiAgCWVuZCA9IHZtLT50b3RhbDsKPiAgCWlmIChm bGFncyAmIFBJTl9NQVBQQUJMRSkKPiAtCQllbmQgPSBtaW5fdCh1NjQsIGVuZCwgZ2d0dC0+bWFw cGFibGVfZW5kKTsKPiArCQllbmQgPSBtaW5fdCh1NjQsIGVuZCwgZGV2X3ByaXYtPmdndHQubWFw cGFibGVfZW5kKTsKPiAgCWlmIChmbGFncyAmIFBJTl9aT05FXzRHKQo+ICAJCWVuZCA9IG1pbl90 KHU2NCwgZW5kLCAoMVVMTCA8PCAzMikgLSBQQUdFX1NJWkUpOwo+ICAKPiAtCWlmIChhbGlnbm1l bnQgPT0gMCkKPiAtCQlhbGlnbm1lbnQgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZlbmNlX2Fs aWdubWVudCA6Cj4gLQkJCQkJCXVuZmVuY2VkX2FsaWdubWVudDsKPiAtCWlmIChmbGFncyAmIFBJ Tl9NQVBQQUJMRSAmJiBhbGlnbm1lbnQgJiAoZmVuY2VfYWxpZ25tZW50IC0gMSkpIHsKPiAtCQlE Uk1fREVCVUcoIkludmFsaWQgb2JqZWN0ICh2aWV3IHR5cGU9JXUpIGFsaWdubWVudCByZXF1ZXN0 ZWQgJXVcbiIsCj4gLQkJCSAgZ2d0dF92aWV3ID8gZ2d0dF92aWV3LT50eXBlIDogMCwKPiAtCQkJ ICBhbGlnbm1lbnQpOwo+IC0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+IC0JfQo+IC0KPiAg CS8qIElmIGJpbmRpbmcgdGhlIG9iamVjdC9HR1RUIHZpZXcgcmVxdWlyZXMgbW9yZSBzcGFjZSB0 aGFuIHRoZSBlbnRpcmUKPiAgCSAqIGFwZXJ0dXJlIGhhcywgcmVqZWN0IGl0IGVhcmx5IGJlZm9y ZSBldmljdGluZyBldmVyeXRoaW5nIGluIGEgdmFpbgo+ICAJICogYXR0ZW1wdCB0byBmaW5kIHNw YWNlLgo+ICAJICovCj4gIAlpZiAoc2l6ZSA+IGVuZCkgewo+IC0JCURSTV9ERUJVRygiQXR0ZW1w dGluZyB0byBiaW5kIGFuIG9iamVjdCAodmlldyB0eXBlPSV1KSBsYXJnZXIgdGhhbiB0aGUgYXBl cnR1cmU6IHNpemU9JWxsdSA+ICVzIGFwZXJ0dXJlPSVsbHVcbiIsCj4gKwkJRFJNX0RFQlVHKCJB dHRlbXB0aW5nIHRvIGJpbmQgYW4gb2JqZWN0ICh2aWV3IHR5cGU9JXUpIGxhcmdlciB0aGFuIHRo ZSBhcGVydHVyZTogcmVxdWVzdD0lbGx1IFtvYmplY3Q9JXpkXSA+ICVzIGFwZXJ0dXJlPSVsbHVc biIsCj4gIAkJCSAgZ2d0dF92aWV3ID8gZ2d0dF92aWV3LT50eXBlIDogMCwKPiAtCQkJICBzaXpl LAo+ICsJCQkgIHNpemUsIG9iai0+YmFzZS5zaXplLAo+ICAJCQkgIGZsYWdzICYgUElOX01BUFBB QkxFID8gIm1hcHBhYmxlIiA6ICJ0b3RhbCIsCj4gIAkJCSAgZW5kKTsKPiAgCQlyZXR1cm4gRVJS X1BUUigtRTJCSUcpOwo+IEBAIC0zMjQzLDcgKzMyMzMsNyBAQCBpOTE1X2dlbV9vYmplY3RfcGlu X3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCSAq IChlLmcuIGxpYmttcyBmb3IgdGhlIGJvb3R1cCBzcGxhc2gpLCB3ZSBoYXZlIHRvIGVuc3VyZSB0 aGF0IHdlCj4gIAkgKiBhbHdheXMgdXNlIG1hcF9hbmRfZmVuY2VhYmxlIGZvciBhbGwgc2Nhbm91 dCBidWZmZXJzLgo+ICAJICovCj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2Jq LCB2aWV3LCBhbGlnbm1lbnQsCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2Jq LCB2aWV3LCAwLCBhbGlnbm1lbnQsCj4gIAkJCQkgICAgICAgdmlldy0+dHlwZSA9PSBJOTE1X0dH VFRfVklFV19OT1JNQUwgPwo+ICAJCQkJICAgICAgIFBJTl9NQVBQQUJMRSA6IDApOwo+ICAJaWYg KHJldCkKPiBAQCAtMzM5MywxMiArMzM4MywxNyBAQCBpOTE1X2dlbV9yaW5nX3Rocm90dGxlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgfQo+ICAKPiAg c3RhdGljIGJvb2wKPiAtaTkxNV92bWFfbWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1 aW50MzJfdCBhbGlnbm1lbnQsIHVpbnQ2NF90IGZsYWdzKQo+ICtpOTE1X3ZtYV9taXNwbGFjZWQo c3RydWN0IGk5MTVfdm1hICp2bWEsCj4gKwkJICAgdWludDY0X3Qgc2l6ZSwKPiArCQkgICB1aW50 MzJfdCBhbGlnbm1lbnQsCj4gKwkJICAgdWludDY0X3QgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKPiAgCj4gLQlpZiAoYWxpZ25tZW50 ICYmCj4gLQkgICAgdm1hLT5ub2RlLnN0YXJ0ICYgKGFsaWdubWVudCAtIDEpKQo+ICsJaWYgKHZt YS0+bm9kZS5zaXplIDwgc2l6ZSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZiAoYWxpZ25t ZW50ICYmIHZtYS0+bm9kZS5zdGFydCAmIChhbGlnbm1lbnQgLSAxKSkKPiAgCQlyZXR1cm4gdHJ1 ZTsKPiAgCj4gIAlpZiAoZmxhZ3MgJiBQSU5fTUFQUEFCTEUgJiYgIW9iai0+bWFwX2FuZF9mZW5j ZWFibGUpCj4gQEAgLTM0NDIsNiArMzQzNyw3IEBAIHN0YXRpYyBpbnQKPiAgaTkxNV9nZW1fb2Jq ZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCSAgICAgICBz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQkgICAgICAgY29uc3Qgc3RydWN0IGk5 MTVfZ2d0dF92aWV3ICpnZ3R0X3ZpZXcsCj4gKwkJICAgICAgIHVpbnQ2NF90IHNpemUsCj4gIAkJ ICAgICAgIHVpbnQzMl90IGFsaWdubWVudCwKPiAgCQkgICAgICAgdWludDY0X3QgZmxhZ3MpCj4g IHsKPiBAQCAtMzQ2OSw3ICszNDY1LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCWlmIChXQVJOX09OKHZtYS0+cGluX2NvdW50 ID09IERSTV9JOTE1X0dFTV9PQkpFQ1RfTUFYX1BJTl9DT1VOVCkpCj4gIAkJCXJldHVybiAtRUJV U1k7Cj4gIAo+IC0JCWlmIChpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCBhbGlnbm1lbnQsIGZsYWdz KSkgewo+ICsJCWlmIChpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCBzaXplLCBhbGlnbm1lbnQsIGZs YWdzKSkgewo+ICAJCQlXQVJOKHZtYS0+cGluX2NvdW50LAo+ICAJCQkgICAgICJibyBpcyBhbHJl YWR5IHBpbm5lZCBpbiAlcyB3aXRoIGluY29ycmVjdCBhbGlnbm1lbnQ6Igo+ICAJCQkgICAgICIg b2Zmc2V0PSUwOHggJTA4eCwgcmVxLmFsaWdubWVudD0leCwgcmVxLm1hcF9hbmRfZmVuY2VhYmxl PSVkLCIKPiBAQCAtMzQ5MCw4ICszNDg2LDggQEAgaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAKPiAgCWJvdW5kID0gdm1hID8gdm1hLT5i b3VuZCA6IDA7Cj4gIAlpZiAodm1hID09IE5VTEwgfHwgIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgm dm1hLT5ub2RlKSkgewo+IC0JCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKG9iaiwg dm0sIGdndHRfdmlldywgYWxpZ25tZW50LAo+IC0JCQkJCQkgZmxhZ3MpOwo+ICsJCXZtYSA9IGk5 MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKG9iaiwgdm0sIGdndHRfdmlldywKPiArCQkJCQkJIHNp emUsIGFsaWdubWVudCwgZmxhZ3MpOwo+ICAJCWlmIChJU19FUlIodm1hKSkKPiAgCQkJcmV0dXJu IFBUUl9FUlIodm1hKTsKPiAgCX0gZWxzZSB7Cj4gQEAgLTM1MTMsMTcgKzM1MDksMTkgQEAgaTkx NV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICBp bnQKPiAgaTkxNV9nZW1fb2JqZWN0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+ICAJCSAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiArCQkgICAgdWludDY0 X3Qgc2l6ZSwKPiAgCQkgICAgdWludDMyX3QgYWxpZ25tZW50LAo+ICAJCSAgICB1aW50NjRfdCBm bGFncykKPiAgewo+ICAJcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9kb19waW4ob2JqLCB2bSwKPiAg CQkJCSAgICAgIGk5MTVfaXNfZ2d0dCh2bSkgPyAmaTkxNV9nZ3R0X3ZpZXdfbm9ybWFsIDogTlVM TCwKPiAtCQkJCSAgICAgIGFsaWdubWVudCwgZmxhZ3MpOwo+ICsJCQkJICAgICAgc2l6ZSwgYWxp Z25tZW50LCBmbGFncyk7Cj4gIH0KPiAgCj4gIGludAo+ICBpOTE1X2dlbV9vYmplY3RfZ2d0dF9w aW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQkJIGNvbnN0IHN0cnVjdCBp OTE1X2dndHRfdmlldyAqdmlldywKPiArCQkJIHVpbnQ2NF90IHNpemUsCj4gIAkJCSB1aW50MzJf dCBhbGlnbm1lbnQsCj4gIAkJCSB1aW50NjRfdCBmbGFncykKPiAgewo+IEBAIC0zNTM0LDcgKzM1 MzIsNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgCUJVR19PTighdmlldyk7Cj4gIAo+ICAJcmV0dXJuIGk5MTVfZ2VtX29iamVj dF9kb19waW4ob2JqLCAmZ2d0dC0+YmFzZSwgdmlldywKPiAtCQkJCSAgICAgIGFsaWdubWVudCwg ZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPiArCQkJCSAgICAgIHNpemUsIGFsaWdubWVudCwgZmxhZ3Mg fCBQSU5fR0xPQkFMKTsKPiAgfQo+ICAKPiAgdm9pZAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRleCA0MDkzN2EwOTg1NWQuLmMxZTdlZTIxMmU3ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAt NjUyLDEwICs2NTIsMTQgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlX3ZtYShzdHJ1Y3Qg aTkxNV92bWEgKnZtYSwKPiAgCQkJZmxhZ3MgfD0gUElOX0hJR0g7Cj4gIAl9Cj4gIAo+IC0JcmV0 ID0gaTkxNV9nZW1fb2JqZWN0X3BpbihvYmosIHZtYS0+dm0sIGVudHJ5LT5hbGlnbm1lbnQsIGZs YWdzKTsKPiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW4ob2JqLCB2bWEtPnZtLAo+ICsJCQkJ ICBlbnRyeS0+cGFkX3RvX3NpemUsCj4gKwkJCQkgIGVudHJ5LT5hbGlnbm1lbnQsCj4gKwkJCQkg IGZsYWdzKTsKPiAgCWlmICgocmV0ID09IC1FTk9TUEMgIHx8IHJldCA9PSAtRTJCSUcpICYmCj4g IAkgICAgb25seV9tYXBwYWJsZV9mb3JfcmVsb2MoZW50cnktPmZsYWdzKSkKPiAgCQlyZXQgPSBp OTE1X2dlbV9vYmplY3RfcGluKG9iaiwgdm1hLT52bSwKPiArCQkJCQkgIGVudHJ5LT5wYWRfdG9f c2l6ZSwKPiAgCQkJCQkgIGVudHJ5LT5hbGlnbm1lbnQsCj4gIAkJCQkJICBmbGFncyAmIH5QSU5f TUFQUEFCTEUpOwo+ICAJaWYgKHJldCkKPiBAQCAtNzE4LDYgKzcyMiw5IEBAIGViX3ZtYV9taXNw bGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gIAkgICAgdm1hLT5ub2RlLnN0YXJ0ICYgKGVu dHJ5LT5hbGlnbm1lbnQgLSAxKSkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gKwlpZiAodm1hLT5u b2RlLnNpemUgPCBlbnRyeS0+cGFkX3RvX3NpemUpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICAJ aWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCAmJgo+ICAJICAgIHZtYS0+bm9k ZS5zdGFydCAhPSBlbnRyeS0+b2Zmc2V0KQo+ICAJCXJldHVybiB0cnVlOwo+IEBAIC0xMDU4LDYg KzEwNjUsMTMgQEAgdmFsaWRhdGVfZXhlY19saXN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAkJaWYgKGV4ZWNbaV0uYWxpZ25tZW50ICYmICFpc19wb3dlcl9vZl8yKGV4ZWNbaV0uYWxpZ25t ZW50KSkKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICsJCS8qIHBhZF90b19zaXplIHdhcyBv bmNlIGEgcmVzZXJ2ZWQgZmllbGQsIHNvIHNhbml0aXplIGl0ICovCj4gKwkJaWYgKGV4ZWNbaV0u ZmxhZ3MgJiBFWEVDX09CSkVDVF9QQURfVE9fU0laRSkgewo+ICsJCQlpZiAob2Zmc2V0X2luX3Bh Z2UoZXhlY1tpXS5wYWRfdG9fc2l6ZSkpCj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9IGVs c2UKPiArCQkJZXhlY1tpXS5wYWRfdG9fc2l6ZSA9IDA7Cj4gKwo+ICAJCS8qIEZpcnN0IGNoZWNr IGZvciBtYWxpY2lvdXMgaW5wdXQgY2F1c2luZyBvdmVyZmxvdyBpbgo+ICAJCSAqIHRoZSB3b3Jz dCBjYXNlIHdoZXJlIHdlIG5lZWQgdG8gYWxsb2NhdGUgdGhlIGVudGlyZQo+ICAJCSAqIHJlbG9j YXRpb24gdHJlZSBhcyBhIHNpbmdsZSBhcnJheS4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggZDZj NjY4ZTU4NDI2Li4zYjg2MTc0NmJhN2EgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gQEAgLTcwMSwx MCArNzAxLDE0IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKPiAgI2RlZmlu ZSBFWEVDX09CSkVDVF9XUklURQkoMTw8MikKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9TVVBQT1JU U180OEJfQUREUkVTUyAoMTw8MykKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9QSU5ORUQJKDE8PDQp Cj4gLSNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfUElO TkVEPDwxKQo+ICsjZGVmaW5lIEVYRUNfT0JKRUNUX1BBRF9UT19TSVpFCSgxPDw1KQo+ICsjZGVm aW5lIF9fRVhFQ19PQkpFQ1RfVU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1BBRF9UT19TSVpF PDwxKQo+ICAJX191NjQgZmxhZ3M7Cj4gIAo+IC0JX191NjQgcnN2ZDE7Cj4gKwl1bmlvbiB7Cj4g KwkJX191NjQgcnN2ZDE7Cj4gKwkJX191NjQgcGFkX3RvX3NpemU7Cj4gKwl9Owo+ICAJX191NjQg cnN2ZDI7Cj4gIH07Cj4gIAo+IC0tIAo+IDIuOC4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==