From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 07/22] drm/i915: Pad GTT views of exec objects up to user specified size Date: Thu, 28 Jul 2016 11:55:21 +0200 Message-ID: <20160728095521.GC6232@phenom.ffwll.local> References: <1469618100-15298-1-git-send-email-chris@chris-wilson.co.uk> <1469618100-15298-8-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-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C9676E7B5 for ; Thu, 28 Jul 2016 09:55:27 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id o80so10326803wme.0 for ; Thu, 28 Jul 2016 02:55:27 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1469618100-15298-8-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 T24gV2VkLCBKdWwgMjcsIDIwMTYgYXQgMTI6MTQ6NDVQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE91ciBHUFVzIGltcG9zZSBjZXJ0YWluIHJlcXVpcmVtZW50cyB1cG9uIGJ1ZmZlcnMg dGhhdCBkZXBlbmQgdXBvbiBob3cKPiBleGFjdGx5IHRoZXkgYXJlIHVzZWQuIFR5cGljYWxseSB0 aGlzIGlzIGV4cHJlc3NlZCBhcyB0aGF0IHRoZXkgcmVxdWlyZQo+IGEgbGFyZ2VyIHN1cmZhY2Ug dGhhbiB3b3VsZCBiZSBuYWl2ZWx5IGNvbXB1dGVkIGJ5IHBpdGNoICogaGVpZ2h0Lgo+IE5vcm1h bGx5IHN1Y2ggcmVxdWlyZW1lbnRzIGFyZSBoaWRkZW4gYXdheSBpbiB0aGUgdXNlcnNwYWNlIGRy aXZlciwgYnV0Cj4gd2hlbiB3ZSBhY2NlcHQgcG9pbnRlcnMgZnJvbSBzdHJhbmdlcnMgYW5kIGxh dGVyIGltcG9zZSBleHRyYSBjb25kaXRpb25zCj4gb24gdGhlbSwgdGhlIG9yaWdpbmFsIGNsaWVu dCBhbGxvY2F0b3IgaGFzIG5vIGlkZWEgYWJvdXQgdGhlCj4gbW9uc3Ryb3NpdGllcyBpbiB0aGUg R1BVIGFuZCB3ZSByZXF1aXJlIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIHRvIGluZm9ybQo+IHRoZSBr ZXJuZWwgaG93IG1hbnkgcGFkZGluZyBwYWdlcyBhcmUgcmVxdWlyZWQgYmV5b25kIHRoZSBjbGll bnQKPiBhbGxvY2F0aW9uLgo+IAo+IHYyOiBMb25nIHRpbWUsIG5vIHNlZQo+IHYzOiBUcnkgYW4g YW5vbnltb3VzIHVuaW9uIGZvciB1YXBpIHN0cnVjdCBjb21wYXRpYmlsaXR5Cj4gCj4gU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpUaGlzIGlzIG1pc3Npbmcg dGhlIHRlc3RjYXNlIGxpbmUuIEFsc28gc2hvcnQgbGluayB0byB0aGUKbGlidmEvb3BlbmNsL3do YXRldmVyIHBhdGNoZXMgd291bGQgYmUgZ29vZCB0b28uCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA2ICsrLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA3OSArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIHwgMTYgKysrKystCj4gIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAg ICAgICB8ICA4ICsrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDQ3IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDc0YTMxMzU4ZmQ4 Ny4uMWUxMzY5MzE5MzI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTMwMzIs MTEgKzMwMzIsMTMgQEAgdm9pZCBpOTE1X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaik7Cj4gIGludCBfX211c3RfY2hlY2sKPiAgaTkxNV9nZW1fb2JqZWN0X3Bpbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCSAgICBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKPiArCQkgICAgdTY0IHNpemUsCj4gIAkJICAgIHU2NCBhbGlnbm1lbnQs Cj4gIAkJICAgIHU2NCBmbGFncyk7Cj4gIGludCBfX211c3RfY2hlY2sKPiAgaTkxNV9nZW1fb2Jq ZWN0X2dndHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJCSBjb25z dCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCj4gKwkJCSB1NjQgc2l6ZSwKPiAgCQkJIHU2 NCBhbGlnbm1lbnQsCj4gIAkJCSB1NjQgZmxhZ3MpOwo+ICAKPiBAQCAtMzMxMyw4ICszMzE1LDgg QEAgaTkxNV9nZW1fb2JqX2dndHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iai0+YmFz ZS5kZXYpOwo+ICAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKPiAg Cj4gLQlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3BpbihvYmosICZnZ3R0LT5iYXNlLAo+IC0JCQkJ ICAgYWxpZ25tZW50LCBmbGFncyB8IFBJTl9HTE9CQUwpOwo+ICsJcmV0dXJuIGk5MTVfZ2VtX29i amVjdF9waW4ob2JqLCAmZ2d0dC0+YmFzZSwgMCwgYWxpZ25tZW50LAo+ICsJCQkJICAgZmxhZ3Mg fCBQSU5fR0xPQkFMKTsKPiAgfQo+ICAKPiAgdm9pZCBpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bl92aWV3KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gaW5kZXggYzRkZjQ0YjQ3Y2VhLi4yMTQ3MjI1ZTc4ODcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTY4OSw3ICsxNjg5LDcgQEAgaW50IGk5MTVfZ2VtX2ZhdWx0 KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiAgCX0K PiAgCj4gIAkvKiBOb3cgcGluIGl0IGludG8gdGhlIEdUVCBpZiBuZWVkZWQgKi8KPiAtCXJldCA9 IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosICZ2aWV3LCAwLCBQSU5fTUFQUEFCTEUpOwo+ ICsJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgJnZpZXcsIDAsIDAsIFBJTl9N QVBQQUJMRSk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gdW5sb2NrOwo+ICAKPiBAQCAtMjk2OSwy MSArMjk2OSwyMCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKPiAgaTkxNV9nZW1fb2JqZWN0 X2JpbmRfdG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQkJICAgc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpOTE1X2dn dHRfdmlldyAqZ2d0dF92aWV3LAo+ICsJCQkgICB1NjQgc2l6ZSwKPiAgCQkJICAgdTY0IGFsaWdu bWVudCwKPiAgCQkJICAgdTY0IGZsYWdzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gb2JqLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdn dHQ7Cj4gLQl1MzIgZmVuY2VfYWxpZ25tZW50LCB1bmZlbmNlZF9hbGlnbm1lbnQ7Cj4gLQl1MzIg c2VhcmNoX2ZsYWcsIGFsbG9jX2ZsYWc7Cj4gIAl1NjQgc3RhcnQsIGVuZDsKPiAtCXU2NCBzaXpl LCBmZW5jZV9zaXplOwo+ICsJdTMyIHNlYXJjaF9mbGFnLCBhbGxvY19mbGFnOwo+ICAJc3RydWN0 IGk5MTVfdm1hICp2bWE7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChpOTE1X2lzX2dndHQodm0p KSB7Cj4gLQkJdTMyIHZpZXdfc2l6ZTsKPiArCQl1MzIgZmVuY2Vfc2l6ZSwgZmVuY2VfYWxpZ25t ZW50LCB1bmZlbmNlZF9hbGlnbm1lbnQ7Cj4gKwkJdTY0IHZpZXdfc2l6ZTsKPiAgCj4gIAkJaWYg KFdBUk5fT04oIWdndHRfdmlldykpCj4gIAkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+IEBA IC0zMDAxLDQ4ICszMDAwLDM5IEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJCQkJCQkJdmlld19zaXplLAo+ICAJCQkJCQkJ CW9iai0+dGlsaW5nX21vZGUsCj4gIAkJCQkJCQkJZmFsc2UpOwo+IC0JCXNpemUgPSBmbGFncyAm IFBJTl9NQVBQQUJMRSA/IGZlbmNlX3NpemUgOiB2aWV3X3NpemU7Cj4gKwkJc2l6ZSA9IG1heChz aXplLCB2aWV3X3NpemUpOwo+ICsJCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSkKPiArCQkJc2l6 ZSA9IG1heF90KHU2NCwgc2l6ZSwgZmVuY2Vfc2l6ZSk7Cj4gKwo+ICsJCWlmIChhbGlnbm1lbnQg PT0gMCkKPiArCQkJYWxpZ25tZW50ID0gZmxhZ3MgJiBQSU5fTUFQUEFCTEUgPyBmZW5jZV9hbGln bm1lbnQgOgo+ICsJCQkJdW5mZW5jZWRfYWxpZ25tZW50Owo+ICsJCWlmIChmbGFncyAmIFBJTl9N QVBQQUJMRSAmJiBhbGlnbm1lbnQgJiAoZmVuY2VfYWxpZ25tZW50IC0gMSkpIHsKPiArCQkJRFJN X0RFQlVHKCJJbnZhbGlkIG9iamVjdCAodmlldyB0eXBlPSV1KSBhbGlnbm1lbnQgcmVxdWVzdGVk ICVsbHhcbiIsCj4gKwkJCQkgIGdndHRfdmlldyA/IGdndHRfdmlldy0+dHlwZSA6IDAsCj4gKwkJ CQkgIChsb25nIGxvbmcpYWxpZ25tZW50KTsKPiArCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Cj4gKwkJfQo+ICAJfSBlbHNlIHsKPiAtCQlmZW5jZV9zaXplID0gaTkxNV9nZW1fZ2V0X2d0dF9z aXplKGRldiwKPiAtCQkJCQkJICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJCSAgIG9iai0+dGls aW5nX21vZGUpOwo+IC0JCWZlbmNlX2FsaWdubWVudCA9IGk5MTVfZ2VtX2dldF9ndHRfYWxpZ25t ZW50KGRldiwKPiAtCQkJCQkJCSAgICAgb2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJCQkgICAgIG9i ai0+dGlsaW5nX21vZGUsCj4gLQkJCQkJCQkgICAgIHRydWUpOwo+IC0JCXVuZmVuY2VkX2FsaWdu bWVudCA9Cj4gLQkJCWk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KGRldiwKPiAtCQkJCQkJICAg b2JqLT5iYXNlLnNpemUsCj4gLQkJCQkJCSAgIG9iai0+dGlsaW5nX21vZGUsCj4gLQkJCQkJCSAg IGZhbHNlKTsKPiAtCQlzaXplID0gZmxhZ3MgJiBQSU5fTUFQUEFCTEUgPyBmZW5jZV9zaXplIDog b2JqLT5iYXNlLnNpemU7Cj4gKwkJc2l6ZSA9IG1heF90KHU2NCwgc2l6ZSwgb2JqLT5iYXNlLnNp emUpOwo+ICsJCWFsaWdubWVudCA9IDQwOTY7Cj4gIAl9Cj4gIAo+ICAJc3RhcnQgPSBmbGFncyAm IFBJTl9PRkZTRVRfQklBUyA/IGZsYWdzICYgUElOX09GRlNFVF9NQVNLIDogMDsKPiAgCWVuZCA9 IHZtLT50b3RhbDsKPiAgCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSkKPiAtCQllbmQgPSBtaW5f dCh1NjQsIGVuZCwgZ2d0dC0+bWFwcGFibGVfZW5kKTsKPiArCQllbmQgPSBtaW5fdCh1NjQsIGVu ZCwgZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kKTsKPiAgCWlmIChmbGFncyAmIFBJTl9aT05F XzRHKQo+ICAJCWVuZCA9IG1pbl90KHU2NCwgZW5kLCAoMVVMTCA8PCAzMikgLSBQQUdFX1NJWkUp Owo+ICAKPiAtCWlmIChhbGlnbm1lbnQgPT0gMCkKPiAtCQlhbGlnbm1lbnQgPSBmbGFncyAmIFBJ Tl9NQVBQQUJMRSA/IGZlbmNlX2FsaWdubWVudCA6Cj4gLQkJCQkJCXVuZmVuY2VkX2FsaWdubWVu dDsKPiAtCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSAmJiBhbGlnbm1lbnQgJiAoZmVuY2VfYWxp Z25tZW50IC0gMSkpIHsKPiAtCQlEUk1fREVCVUcoIkludmFsaWQgb2JqZWN0ICh2aWV3IHR5cGU9 JXUpIGFsaWdubWVudCByZXF1ZXN0ZWQgJWxseFxuIiwKPiAtCQkJICBnZ3R0X3ZpZXcgPyBnZ3R0 X3ZpZXctPnR5cGUgOiAwLAo+IC0JCQkgIChsb25nIGxvbmcpYWxpZ25tZW50KTsKPiAtCQlyZXR1 cm4gRVJSX1BUUigtRUlOVkFMKTsKPiAtCX0KPiAtCj4gIAkvKiBJZiBiaW5kaW5nIHRoZSBvYmpl Y3QvR0dUVCB2aWV3IHJlcXVpcmVzIG1vcmUgc3BhY2UgdGhhbiB0aGUgZW50aXJlCj4gIAkgKiBh cGVydHVyZSBoYXMsIHJlamVjdCBpdCBlYXJseSBiZWZvcmUgZXZpY3RpbmcgZXZlcnl0aGluZyBp biBhIHZhaW4KPiAgCSAqIGF0dGVtcHQgdG8gZmluZCBzcGFjZS4KPiAgCSAqLwo+ICAJaWYgKHNp emUgPiBlbmQpIHsKPiAtCQlEUk1fREVCVUcoIkF0dGVtcHRpbmcgdG8gYmluZCBhbiBvYmplY3Qg KHZpZXcgdHlwZT0ldSkgbGFyZ2VyIHRoYW4gdGhlIGFwZXJ0dXJlOiBzaXplPSVsbHUgPiAlcyBh cGVydHVyZT0lbGx1XG4iLAo+ICsJCURSTV9ERUJVRygiQXR0ZW1wdGluZyB0byBiaW5kIGFuIG9i amVjdCAodmlldyB0eXBlPSV1KSBsYXJnZXIgdGhhbiB0aGUgYXBlcnR1cmU6IHJlcXVlc3Q9JWxs dSBbb2JqZWN0PSV6ZF0gPiAlcyBhcGVydHVyZT0lbGx1XG4iLAo+ICAJCQkgIGdndHRfdmlldyA/ IGdndHRfdmlldy0+dHlwZSA6IDAsCj4gLQkJCSAgc2l6ZSwKPiArCQkJICBzaXplLCBvYmotPmJh c2Uuc2l6ZSwKPiAgCQkJICBmbGFncyAmIFBJTl9NQVBQQUJMRSA/ICJtYXBwYWJsZSIgOiAidG90 YWwiLAo+ICAJCQkgIGVuZCk7Cj4gIAkJcmV0dXJuIEVSUl9QVFIoLUUyQklHKTsKPiBAQCAtMzUz Niw3ICszNTI2LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkgKiAoZS5nLiBsaWJrbXMgZm9yIHRoZSBi b290dXAgc3BsYXNoKSwgd2UgaGF2ZSB0byBlbnN1cmUgdGhhdCB3ZQo+ICAJICogYWx3YXlzIHVz ZSBtYXBfYW5kX2ZlbmNlYWJsZSBmb3IgYWxsIHNjYW5vdXQgYnVmZmVycy4KPiAgCSAqLwo+IC0J cmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgdmlldywgYWxpZ25tZW50LAo+ICsJ cmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgdmlldywgMCwgYWxpZ25tZW50LAo+ ICAJCQkJICAgICAgIHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMID8KPiAgCQkJ CSAgICAgICBQSU5fTUFQUEFCTEUgOiAwKTsKPiAgCWlmIChyZXQpCj4gQEAgLTM2ODgsMTIgKzM2 NzgsMTQgQEAgaTkxNV9nZW1fcmluZ190aHJvdHRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gIH0KPiAgCj4gIHN0YXRpYyBib29sCj4gLWk5MTVfdm1h X21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdz KQo+ICtpOTE1X3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBzaXplLCB1 NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmogPSB2bWEtPm9iajsKPiAgCj4gLQlpZiAoYWxpZ25tZW50ICYmCj4gLQkgICAgdm1h LT5ub2RlLnN0YXJ0ICYgKGFsaWdubWVudCAtIDEpKQo+ICsJaWYgKHZtYS0+bm9kZS5zaXplIDwg c2l6ZSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZiAoYWxpZ25tZW50ICYmIHZtYS0+bm9k ZS5zdGFydCAmIChhbGlnbm1lbnQgLSAxKSkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gIAlpZiAo ZmxhZ3MgJiBQSU5fTUFQUEFCTEUgJiYgIW9iai0+bWFwX2FuZF9mZW5jZWFibGUpCj4gQEAgLTM3 MzcsNiArMzcyOSw3IEBAIHN0YXRpYyBpbnQKPiAgaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCSAgICAgICBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKPiAgCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICpn Z3R0X3ZpZXcsCj4gKwkJICAgICAgIHU2NCBzaXplLAo+ICAJCSAgICAgICB1NjQgYWxpZ25tZW50 LAo+ICAJCSAgICAgICB1NjQgZmxhZ3MpCj4gIHsKPiBAQCAtMzc2NCw3ICszNzU3LDcgQEAgaTkx NV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJ CWlmIChXQVJOX09OKHZtYS0+cGluX2NvdW50ID09IERSTV9JOTE1X0dFTV9PQkpFQ1RfTUFYX1BJ Tl9DT1VOVCkpCj4gIAkJCXJldHVybiAtRUJVU1k7Cj4gIAo+IC0JCWlmIChpOTE1X3ZtYV9taXNw bGFjZWQodm1hLCBhbGlnbm1lbnQsIGZsYWdzKSkgewo+ICsJCWlmIChpOTE1X3ZtYV9taXNwbGFj ZWQodm1hLCBzaXplLCBhbGlnbm1lbnQsIGZsYWdzKSkgewo+ICAJCQlXQVJOKHZtYS0+cGluX2Nv dW50LAo+ICAJCQkgICAgICJibyBpcyBhbHJlYWR5IHBpbm5lZCBpbiAlcyB3aXRoIGluY29ycmVj dCBhbGlnbm1lbnQ6Igo+ICAJCQkgICAgICIgb2Zmc2V0PSUwOHggJTA4eCwgcmVxLmFsaWdubWVu dD0lbGx4LCByZXEubWFwX2FuZF9mZW5jZWFibGU9JWQsIgo+IEBAIC0zNzg1LDggKzM3NzgsOCBA QCBpOTE1X2dlbV9vYmplY3RfZG9fcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gIAo+ICAJYm91bmQgPSB2bWEgPyB2bWEtPmJvdW5kIDogMDsKPiAgCWlmICh2bWEgPT0gTlVM TCB8fCAhZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKSB7Cj4gLQkJdm1hID0gaTkx NV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0ob2JqLCB2bSwgZ2d0dF92aWV3LCBhbGlnbm1lbnQsCj4g LQkJCQkJCSBmbGFncyk7Cj4gKwkJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0ob2Jq LCB2bSwgZ2d0dF92aWV3LAo+ICsJCQkJCQkgc2l6ZSwgYWxpZ25tZW50LCBmbGFncyk7Cj4gIAkJ aWYgKElTX0VSUih2bWEpKQo+ICAJCQlyZXR1cm4gUFRSX0VSUih2bWEpOwo+ICAJfSBlbHNlIHsK PiBAQCAtMzgwOCwxNyArMzgwMSwxOSBAQCBpOTE1X2dlbV9vYmplY3RfZG9fcGluKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIGludAo+ICBpOTE1X2dlbV9vYmplY3RfcGluKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJICAgIHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAo+ICsJCSAgICB1NjQgc2l6ZSwKPiAgCQkgICAgdTY0IGFsaWdubWVudCwK PiAgCQkgICAgdTY0IGZsYWdzKQo+ICB7Cj4gIAlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2RvX3Bp bihvYmosIHZtLAo+ICAJCQkJICAgICAgaTkxNV9pc19nZ3R0KHZtKSA/ICZpOTE1X2dndHRfdmll d19ub3JtYWwgOiBOVUxMLAo+IC0JCQkJICAgICAgYWxpZ25tZW50LCBmbGFncyk7Cj4gKwkJCQkg ICAgICBzaXplLCBhbGlnbm1lbnQsIGZsYWdzKTsKPiAgfQo+ICAKPiAgaW50Cj4gIGk5MTVfZ2Vt X29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCQkg Y29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ICsJCQkgdTY0IHNpemUsCj4gIAkJ CSB1NjQgYWxpZ25tZW50LAo+ICAJCQkgdTY0IGZsYWdzKQo+ICB7Cj4gQEAgLTM4MjksNyArMzgy NCw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+ICAJQlVHX09OKCF2aWV3KTsKPiAgCj4gIAlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0 X2RvX3BpbihvYmosICZnZ3R0LT5iYXNlLCB2aWV3LAo+IC0JCQkJICAgICAgYWxpZ25tZW50LCBm bGFncyB8IFBJTl9HTE9CQUwpOwo+ICsJCQkJICAgICAgc2l6ZSwgYWxpZ25tZW50LCBmbGFncyB8 IFBJTl9HTE9CQUwpOwo+ICB9Cj4gIAo+ICB2b2lkCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGluZGV4IDYzOTg0YzRkOGU1YS4uZjQwZmQ3ZjllNWZhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC02 ODIsMTAgKzY4MiwxNCBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmVfdm1hKHN0cnVjdCBp OTE1X3ZtYSAqdm1hLAo+ICAJCQlmbGFncyB8PSBQSU5fSElHSDsKPiAgCX0KPiAgCj4gLQlyZXQg PSBpOTE1X2dlbV9vYmplY3RfcGluKG9iaiwgdm1hLT52bSwgZW50cnktPmFsaWdubWVudCwgZmxh Z3MpOwo+ICsJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3BpbihvYmosIHZtYS0+dm0sCj4gKwkJCQkg IGVudHJ5LT5wYWRfdG9fc2l6ZSwKPiArCQkJCSAgZW50cnktPmFsaWdubWVudCwKPiArCQkJCSAg ZmxhZ3MpOwo+ICAJaWYgKChyZXQgPT0gLUVOT1NQQyAgfHwgcmV0ID09IC1FMkJJRykgJiYKPiAg CSAgICBvbmx5X21hcHBhYmxlX2Zvcl9yZWxvYyhlbnRyeS0+ZmxhZ3MpKQo+ICAJCXJldCA9IGk5 MTVfZ2VtX29iamVjdF9waW4ob2JqLCB2bWEtPnZtLAo+ICsJCQkJCSAgZW50cnktPnBhZF90b19z aXplLAo+ICAJCQkJCSAgZW50cnktPmFsaWdubWVudCwKPiAgCQkJCQkgIGZsYWdzICYgflBJTl9N QVBQQUJMRSk7Cj4gIAlpZiAocmV0KQo+IEBAIC03NDgsNiArNzUyLDkgQEAgZWJfdm1hX21pc3Bs YWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgCSAgICB2bWEtPm5vZGUuc3RhcnQgJiAoZW50 cnktPmFsaWdubWVudCAtIDEpKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiArCWlmICh2bWEtPm5v ZGUuc2l6ZSA8IGVudHJ5LT5wYWRfdG9fc2l6ZSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gIAlp ZiAoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEICYmCj4gIAkgICAgdm1hLT5ub2Rl LnN0YXJ0ICE9IGVudHJ5LT5vZmZzZXQpCj4gIAkJcmV0dXJuIHRydWU7Cj4gQEAgLTEwOTEsNiAr MTA5OCwxMyBAQCB2YWxpZGF0ZV9leGVjX2xpc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CQlpZiAoZXhlY1tpXS5hbGlnbm1lbnQgJiYgIWlzX3Bvd2VyX29mXzIoZXhlY1tpXS5hbGlnbm1l bnQpKQo+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gKwkJLyogcGFkX3RvX3NpemUgd2FzIG9u Y2UgYSByZXNlcnZlZCBmaWVsZCwgc28gc2FuaXRpemUgaXQgKi8KPiArCQlpZiAoZXhlY1tpXS5m bGFncyAmIEVYRUNfT0JKRUNUX1BBRF9UT19TSVpFKSB7Cj4gKwkJCWlmIChvZmZzZXRfaW5fcGFn ZShleGVjW2ldLnBhZF90b19zaXplKSkKPiArCQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0gZWxz ZQo+ICsJCQlleGVjW2ldLnBhZF90b19zaXplID0gMDsKPiArCj4gIAkJLyogRmlyc3QgY2hlY2sg Zm9yIG1hbGljaW91cyBpbnB1dCBjYXVzaW5nIG92ZXJmbG93IGluCj4gIAkJICogdGhlIHdvcnN0 IGNhc2Ugd2hlcmUgd2UgbmVlZCB0byBhbGxvY2F0ZSB0aGUgZW50aXJlCj4gIAkJICogcmVsb2Nh dGlvbiB0cmVlIGFzIGEgc2luZ2xlIGFycmF5Lgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv ZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBpbmRleCAzM2Nl NWZmOTU1NmEuLjBmMjkyNzMzY2ZmYyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtNzI3LDEx ICs3MjcsMTUgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgewo+ICAjZGVmaW5l IEVYRUNfT0JKRUNUX1dSSVRFCQkgKDE8PDIpCj4gICNkZWZpbmUgRVhFQ19PQkpFQ1RfU1VQUE9S VFNfNDhCX0FERFJFU1MgKDE8PDMpCj4gICNkZWZpbmUgRVhFQ19PQkpFQ1RfUElOTkVECQkgKDE8 PDQpCj4gKyNkZWZpbmUgRVhFQ19PQkpFQ1RfUEFEX1RPX1NJWkUJCSAoMTw8NSkKPiAgLyogQWxs IHJlbWFpbmluZyBiaXRzIGFyZSBNQlogYW5kIFJFU0VSVkVEIEZPUiBGVVRVUkUgVVNFICovCj4g LSNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTCSgtKEVYRUNfT0JKRUNUX1BJTk5F RDw8MSkpCj4gKyNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpF Q1RfUEFEX1RPX1NJWkU8PDEpCj4gIAlfX3U2NCBmbGFnczsKPiAgCj4gLQlfX3U2NCByc3ZkMTsK PiArCXVuaW9uIHsKPiArCQlfX3U2NCByc3ZkMTsKPiArCQlfX3U2NCBwYWRfdG9fc2l6ZTsKPiAr CX07Cj4gIAlfX3U2NCByc3ZkMjsKPiAgfTsKPiAgCj4gLS0gCj4gMi44LjEKPiAKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK