From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 105/190] drm/i915: Pad GTT views of exec objects up to user specified size Date: Tue, 22 Mar 2016 16:32:00 +0200 Message-ID: <20160322143200.GA23422@boom> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-19-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1C7F86E7A8 for ; Tue, 22 Mar 2016 14:32:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1452509174-16671-19-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 T24gTW9uLCBKYW4gMTEsIDIwMTYgYXQgMTA6NDQ6NDlBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE91ciBHUFVzIGltcG9zZSBjZXJ0YWluIHJlcXVpcmVtZW50cyB1cG9uIGJ1ZmZlcnMg dGhhdCBkZXBlbmQgdXBvbiBob3cKPiBleGFjdGx5IHRoZXkgYXJlIHVzZWQuIFR5cGljYWxseSB0 aGlzIGlzIGV4cHJlc3NlZCBhcyB0aGF0IHRoZXkgcmVxdWlyZQo+IGEgbGFyZ2VyIHN1cmZhY2Ug dGhhbiB3b3VsZCBiZSBuYWl2ZWx5IGNvbXB1dGVkIGJ5IHBpdGNoICogaGVpZ2h0Lgo+IE5vcm1h bGx5IHN1Y2ggcmVxdWlyZW1lbnRzIGFyZSBoaWRkZW4gYXdheSBpbiB0aGUgdXNlcnNwYWNlIGRy aXZlciwgYnV0Cj4gd2hlbiB3ZSBhY2NlcHQgcG9pbnRlcnMgZnJvbSBzdHJhbmdlcnMgYW5kIGxh dGVyIGltcG9zZSBleHRyYSBjb25kaXRpb25zCj4gb24gdGhlbSwgdGhlIG9yaWdpbmFsIGNsaWVu dCBhbGxvY2F0b3IgaGFzIG5vIGlkZWEgYWJvdXQgdGhlCj4gbW9uc3Ryb3NpdGllcyBpbiB0aGUg R1BVIGFuZCB3ZSByZXF1aXJlIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIHRvIGluZm9ybQo+IHRoZSBr ZXJuZWwgaG93IG1hbnkgcGFkZGluZyBwYWdlcyBhcmUgcmVxdWlyZWQgYmV5b25kIHRoZSBjbGll bnQKPiBhbGxvY2F0aW9uLgo+IAo+IHYyOiBMb25nIHRpbWUsIG5vIHNlZQo+IHYzOiBUcnkgYW4g YW5vbnltb3VzIHVuaW9uIGZvciB1YXBpIHN0cnVjdCBjb21wYXRhYmlsaXR5Cj4gCj4gU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpUZXN0Y2FzZTogZ2VtX21t YXBfZ3R0IC0tcnVuLXN1YnRlc3QgaHVnZS1iby10aWxlZFgKVGVzdGVkLWJ5OiBEYXZpZCBXZWlu ZWhhbGwgPGRhdmlkLndlaW5laGFsbEBpbnRlbC5jb20+CgpUaGlzIHBhdGNoIGZpeGVzIGFuIE9P UFMgb24gZ2VuOCsgdHJpZ2dlcmVkIGJ5IHRoZSBtZW50aW9uZWQgdGVzdGNhc2UuCgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgNiArKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgNzkgKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyB8IDE2ICsrKysrLQo+ICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAg ICAgICAgICAgICAgfCAgOCArKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCsp LCA0NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA0YWRh NjI1Yjc1MWUuLjQ5YjEyNmU0MTkxZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBA IC0yNjk0LDExICsyNjk0LDEzIEBAIHZvaWQgaTkxNV9nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmopOwo+ICBpbnQgX19tdXN0X2NoZWNrCj4gIGk5MTVfZ2VtX29iamVj dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQkgICAgc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gKwkJICAgIHVpbnQ2NF90IHNpemUsCj4gIAkJICAgIHVp bnQzMl90IGFsaWdubWVudCwKPiAgCQkgICAgdWludDY0X3QgZmxhZ3MpOwo+ICBpbnQgX19tdXN0 X2NoZWNrCj4gIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAo+ICAJCQkgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ICsJ CQkgdWludDY0X3Qgc2l6ZSwKPiAgCQkJIHVpbnQzMl90IGFsaWdubWVudCwKPiAgCQkJIHVpbnQ2 NF90IGZsYWdzKTsKPiAgCj4gQEAgLTI5MzEsOCArMjkzMyw4IEBAIGk5MTVfZ2VtX29ial9nZ3R0 X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCSAgICAgIHVpbnQzMl90 IGFsaWdubWVudCwKPiAgCQkgICAgICB1bnNpZ25lZCBmbGFncykKPiAgewo+IC0JcmV0dXJuIGk5 MTVfZ2VtX29iamVjdF9waW4ob2JqLCBpOTE1X29ial90b19nZ3R0KG9iaiksCj4gLQkJCQkgICBh bGlnbm1lbnQsIGZsYWdzIHwgUElOX0dMT0JBTCk7Cj4gKwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0 X3BpbihvYmosIGk5MTVfb2JqX3RvX2dndHQob2JqKSwgMCwgYWxpZ25tZW50LAo+ICsJCQkJICAg ZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBpbnQKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBhODJhMDZhNjEyNjIuLjJmMTRkMmRhNzVhNSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xNDQwLDcgKzE0NDAsNyBAQCBpbnQgaTkx NV9nZW1fZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAq dm1mKQo+ICAJfQo+ICAKPiAgCS8qIE5vdyBwaW4gaXQgaW50byB0aGUgR1RUIGlmIG5lZWRlZCAq Lwo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgJnZpZXcsIDAsIFBJTl9N QVBQQUJMRSk7Cj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmdmlldywg MCwgMCwgUElOX01BUFBBQkxFKTsKPiAgCWlmIChyZXQpCj4gIAkJZ290byB1bmxvY2s7Cj4gIAo+ IEBAIC0yNzQ2LDIwICsyNzQ2LDIwIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgo+ICBpOTE1 X2dlbV9vYmplY3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ ICAJCQkgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQkJICAgY29uc3Qgc3Ry dWN0IGk5MTVfZ2d0dF92aWV3ICpnZ3R0X3ZpZXcsCj4gKwkJCSAgIHVpbnQ2NF90IHNpemUsCj4g IAkJCSAgIHVuc2lnbmVkIGFsaWdubWVudCwKPiAgCQkJICAgdWludDY0X3QgZmxhZ3MpCj4gIHsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXUzMiBmZW5j ZV9hbGlnbm1lbnQsIHVuZmVuY2VkX2FsaWdubWVudDsKPiAtCXUzMiBzZWFyY2hfZmxhZywgYWxs b2NfZmxhZzsKPiAgCXU2NCBzdGFydCwgZW5kOwo+IC0JdTY0IHNpemUsIGZlbmNlX3NpemU7Cj4g Kwl1MzIgc2VhcmNoX2ZsYWcsIGFsbG9jX2ZsYWc7Cj4gIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK PiAgCWludCByZXQ7Cj4gIAo+ICAJaWYgKGk5MTVfaXNfZ2d0dCh2bSkpIHsKPiAtCQl1MzIgdmll d19zaXplOwo+ICsJCXUzMiBmZW5jZV9zaXplLCBmZW5jZV9hbGlnbm1lbnQsIHVuZmVuY2VkX2Fs aWdubWVudDsKPiArCQl1NjQgdmlld19zaXplOwo+ICAKPiAgCQlpZiAoV0FSTl9PTighZ2d0dF92 aWV3KSkKPiAgCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gQEAgLTI3NzcsMjEgKzI3Nzcs MjIgQEAgaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgCQkJCQkJCQl2aWV3X3NpemUsCj4gIAkJCQkJCQkJb2JqLT50aWxpbmdfbW9k ZSwKPiAgCQkJCQkJCQlmYWxzZSk7Cj4gLQkJc2l6ZSA9IGZsYWdzICYgUElOX01BUFBBQkxFID8g ZmVuY2Vfc2l6ZSA6IHZpZXdfc2l6ZTsKPiArCQlzaXplID0gbWF4KHNpemUsIHZpZXdfc2l6ZSk7 Cj4gKwkJaWYgKGZsYWdzICYgUElOX01BUFBBQkxFKQo+ICsJCQlzaXplID0gbWF4X3QodTY0LCBz aXplLCBmZW5jZV9zaXplKTsKPiArCj4gKwkJaWYgKGFsaWdubWVudCA9PSAwKQo+ICsJCQlhbGln bm1lbnQgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZlbmNlX2FsaWdubWVudCA6Cj4gKwkJCQl1 bmZlbmNlZF9hbGlnbm1lbnQ7Cj4gKwkJaWYgKGZsYWdzICYgUElOX01BUFBBQkxFICYmIGFsaWdu bWVudCAmIChmZW5jZV9hbGlnbm1lbnQgLSAxKSkgewo+ICsJCQlEUk1fREVCVUcoIkludmFsaWQg b2JqZWN0ICh2aWV3IHR5cGU9JXUpIGFsaWdubWVudCByZXF1ZXN0ZWQgJXVcbiIsCj4gKwkJCQkg IGdndHRfdmlldyA/IGdndHRfdmlldy0+dHlwZSA6IDAsCj4gKwkJCQkgIGFsaWdubWVudCk7Cj4g KwkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ICsJCX0KPiAgCX0gZWxzZSB7Cj4gLQkJZmVu Y2Vfc2l6ZSA9IGk5MTVfZ2VtX2dldF9ndHRfc2l6ZShkZXYsCj4gLQkJCQkJCSAgIG9iai0+YmFz ZS5zaXplLAo+IC0JCQkJCQkgICBvYmotPnRpbGluZ19tb2RlKTsKPiAtCQlmZW5jZV9hbGlnbm1l bnQgPSBpOTE1X2dlbV9nZXRfZ3R0X2FsaWdubWVudChkZXYsCj4gLQkJCQkJCQkgICAgIG9iai0+ YmFzZS5zaXplLAo+IC0JCQkJCQkJICAgICBvYmotPnRpbGluZ19tb2RlLAo+IC0JCQkJCQkJICAg ICB0cnVlKTsKPiAtCQl1bmZlbmNlZF9hbGlnbm1lbnQgPQo+IC0JCQlpOTE1X2dlbV9nZXRfZ3R0 X2FsaWdubWVudChkZXYsCj4gLQkJCQkJCSAgIG9iai0+YmFzZS5zaXplLAo+IC0JCQkJCQkgICBv YmotPnRpbGluZ19tb2RlLAo+IC0JCQkJCQkgICBmYWxzZSk7Cj4gLQkJc2l6ZSA9IGZsYWdzICYg UElOX01BUFBBQkxFID8gZmVuY2Vfc2l6ZSA6IG9iai0+YmFzZS5zaXplOwo+ICsJCXNpemUgPSBt YXhfdCh1NjQsIHNpemUsIG9iai0+YmFzZS5zaXplKTsKPiArCQlhbGlnbm1lbnQgPSA0MDk2Owo+ ICAJfQo+ICAKPiAgCXN0YXJ0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX0JJQVMgPyBmbGFncyAmIFBJ Tl9PRkZTRVRfTUFTSyA6IDA7Cj4gQEAgLTI4MDEsMjQgKzI4MDIsMTQgQEAgaTkxNV9nZW1fb2Jq ZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCWlmIChm bGFncyAmIFBJTl9aT05FXzRHKQo+ICAJCWVuZCA9IG1pbl90KHU2NCwgZW5kLCAoMVVMTCA8PCAz MikpOwo+ICAKPiAtCWlmIChhbGlnbm1lbnQgPT0gMCkKPiAtCQlhbGlnbm1lbnQgPSBmbGFncyAm IFBJTl9NQVBQQUJMRSA/IGZlbmNlX2FsaWdubWVudCA6Cj4gLQkJCQkJCXVuZmVuY2VkX2FsaWdu bWVudDsKPiAtCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSAmJiBhbGlnbm1lbnQgJiAoZmVuY2Vf YWxpZ25tZW50IC0gMSkpIHsKPiAtCQlEUk1fREVCVUcoIkludmFsaWQgb2JqZWN0ICh2aWV3IHR5 cGU9JXUpIGFsaWdubWVudCByZXF1ZXN0ZWQgJXVcbiIsCj4gLQkJCSAgZ2d0dF92aWV3ID8gZ2d0 dF92aWV3LT50eXBlIDogMCwKPiAtCQkJICBhbGlnbm1lbnQpOwo+IC0JCXJldHVybiBFUlJfUFRS KC1FSU5WQUwpOwo+IC0JfQo+IC0KPiAgCS8qIElmIGJpbmRpbmcgdGhlIG9iamVjdC9HR1RUIHZp ZXcgcmVxdWlyZXMgbW9yZSBzcGFjZSB0aGFuIHRoZSBlbnRpcmUKPiAgCSAqIGFwZXJ0dXJlIGhh cywgcmVqZWN0IGl0IGVhcmx5IGJlZm9yZSBldmljdGluZyBldmVyeXRoaW5nIGluIGEgdmFpbgo+ ICAJICogYXR0ZW1wdCB0byBmaW5kIHNwYWNlLgo+ICAJICovCj4gIAlpZiAoc2l6ZSA+IGVuZCkg ewo+IC0JCURSTV9ERUJVRygiQXR0ZW1wdGluZyB0byBiaW5kIGFuIG9iamVjdCAodmlldyB0eXBl PSV1KSBsYXJnZXIgdGhhbiB0aGUgYXBlcnR1cmU6IHNpemU9JWxsdSA+ICVzIGFwZXJ0dXJlPSVs bHVcbiIsCj4gKwkJRFJNX0RFQlVHKCJBdHRlbXB0aW5nIHRvIGJpbmQgYW4gb2JqZWN0ICh2aWV3 IHR5cGU9JXUpIGxhcmdlciB0aGFuIHRoZSBhcGVydHVyZTogcmVxdWVzdD0lbGx1IFtvYmplY3Q9 JXpkXSA+ICVzIGFwZXJ0dXJlPSVsbHVcbiIsCj4gIAkJCSAgZ2d0dF92aWV3ID8gZ2d0dF92aWV3 LT50eXBlIDogMCwKPiAtCQkJICBzaXplLAo+ICsJCQkgIHNpemUsIG9iai0+YmFzZS5zaXplLAo+ ICAJCQkgIGZsYWdzICYgUElOX01BUFBBQkxFID8gIm1hcHBhYmxlIiA6ICJ0b3RhbCIsCj4gIAkJ CSAgZW5kKTsKPiAgCQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOwo+IEBAIC0zMzA5LDcgKzMzMDAs NyBAQCBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKPiAgCSAqIChlLmcuIGxpYmttcyBmb3IgdGhlIGJvb3R1cCBzcGxh c2gpLCB3ZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHdlCj4gIAkgKiBhbHdheXMgdXNlIG1hcF9hbmRf ZmVuY2VhYmxlIGZvciBhbGwgc2Nhbm91dCBidWZmZXJzLgo+ICAJICovCj4gLQlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCB2aWV3LCBhbGlnbm1lbnQsCj4gKwlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCB2aWV3LCAwLCBhbGlnbm1lbnQsCj4gIAkJCQkgICAg ICAgdmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwgPwo+ICAJCQkJICAgICAgIFBJ Tl9NQVBQQUJMRSA6IDApOwo+ICAJaWYgKHJldCkKPiBAQCAtMzQ1OSwxMiArMzQ1MCwxNyBAQCBp OTE1X2dlbV9yaW5nX3Rocm90dGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSkKPiAgfQo+ICAKPiAgc3RhdGljIGJvb2wKPiAtaTkxNV92bWFfbWlzcGxhY2Vk KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1aW50MzJfdCBhbGlnbm1lbnQsIHVpbnQ2NF90IGZsYWdz KQo+ICtpOTE1X3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gKwkJICAgdWlu dDY0X3Qgc2l6ZSwKPiArCQkgICB1aW50MzJfdCBhbGlnbm1lbnQsCj4gKwkJICAgdWludDY0X3Qg ZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9i ajsKPiAgCj4gLQlpZiAoYWxpZ25tZW50ICYmCj4gLQkgICAgdm1hLT5ub2RlLnN0YXJ0ICYgKGFs aWdubWVudCAtIDEpKQo+ICsJaWYgKHZtYS0+bm9kZS5zaXplIDwgc2l6ZSkKPiArCQlyZXR1cm4g dHJ1ZTsKPiArCj4gKwlpZiAoYWxpZ25tZW50ICYmIHZtYS0+bm9kZS5zdGFydCAmIChhbGlnbm1l bnQgLSAxKSkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gIAlpZiAoZmxhZ3MgJiBQSU5fTUFQUEFC TEUgJiYgIW9iai0+bWFwX2FuZF9mZW5jZWFibGUpCj4gQEAgLTM1MDgsNiArMzUwNCw3IEBAIHN0 YXRpYyBpbnQKPiAgaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAo+ICAJCSAgICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAg CQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICpnZ3R0X3ZpZXcsCj4gKwkJICAg ICAgIHVpbnQ2NF90IHNpemUsCj4gIAkJICAgICAgIHVpbnQzMl90IGFsaWdubWVudCwKPiAgCQkg ICAgICAgdWludDY0X3QgZmxhZ3MpCj4gIHsKPiBAQCAtMzUzOCw3ICszNTM1LDcgQEAgaTkxNV9n ZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCWlm IChXQVJOX09OKHZtYS0+cGluX2NvdW50ID09IERSTV9JOTE1X0dFTV9PQkpFQ1RfTUFYX1BJTl9D T1VOVCkpCj4gIAkJCXJldHVybiAtRUJVU1k7Cj4gIAo+IC0JCWlmIChpOTE1X3ZtYV9taXNwbGFj ZWQodm1hLCBhbGlnbm1lbnQsIGZsYWdzKSkgewo+ICsJCWlmIChpOTE1X3ZtYV9taXNwbGFjZWQo dm1hLCBzaXplLCBhbGlnbm1lbnQsIGZsYWdzKSkgewo+ICAJCQlXQVJOKHZtYS0+cGluX2NvdW50 LAo+ICAJCQkgICAgICJibyBpcyBhbHJlYWR5IHBpbm5lZCBpbiAlcyB3aXRoIGluY29ycmVjdCBh bGlnbm1lbnQ6Igo+ICAJCQkgICAgICIgb2Zmc2V0PSUwOHggJTA4eCwgcmVxLmFsaWdubWVudD0l eCwgcmVxLm1hcF9hbmRfZmVuY2VhYmxlPSVkLCIKPiBAQCAtMzU1OSw4ICszNTU2LDggQEAgaTkx NV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAK PiAgCWJvdW5kID0gdm1hID8gdm1hLT5ib3VuZCA6IDA7Cj4gIAlpZiAodm1hID09IE5VTEwgfHwg IWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkgewo+IC0JCXZtYSA9IGk5MTVfZ2Vt X29iamVjdF9iaW5kX3RvX3ZtKG9iaiwgdm0sIGdndHRfdmlldywgYWxpZ25tZW50LAo+IC0JCQkJ CQkgZmxhZ3MpOwo+ICsJCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKG9iaiwgdm0s IGdndHRfdmlldywKPiArCQkJCQkJIHNpemUsIGFsaWdubWVudCwgZmxhZ3MpOwo+ICAJCWlmIChJ U19FUlIodm1hKSkKPiAgCQkJcmV0dXJuIFBUUl9FUlIodm1hKTsKPiAgCX0gZWxzZSB7Cj4gQEAg LTM1ODIsMTcgKzM1NzksMTkgQEAgaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAo+ICBpbnQKPiAgaTkxNV9nZW1fb2JqZWN0X3BpbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJCSAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKPiArCQkgICAgdWludDY0X3Qgc2l6ZSwKPiAgCQkgICAgdWludDMyX3QgYWxpZ25t ZW50LAo+ICAJCSAgICB1aW50NjRfdCBmbGFncykKPiAgewo+ICAJcmV0dXJuIGk5MTVfZ2VtX29i amVjdF9kb19waW4ob2JqLCB2bSwKPiAgCQkJCSAgICAgIGk5MTVfaXNfZ2d0dCh2bSkgPyAmaTkx NV9nZ3R0X3ZpZXdfbm9ybWFsIDogTlVMTCwKPiAtCQkJCSAgICAgIGFsaWdubWVudCwgZmxhZ3Mp Owo+ICsJCQkJICAgICAgc2l6ZSwgYWxpZ25tZW50LCBmbGFncyk7Cj4gIH0KPiAgCj4gIGludAo+ ICBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPiAgCQkJIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPiArCQkJIHVpbnQ2 NF90IHNpemUsCj4gIAkJCSB1aW50MzJfdCBhbGlnbm1lbnQsCj4gIAkJCSB1aW50NjRfdCBmbGFn cykKPiAgewo+IEBAIC0zNjAwLDcgKzM1OTksNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4o c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAg Cj4gIAlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2RvX3BpbihvYmosIGk5MTVfb2JqX3RvX2dndHQo b2JqKSwgdmlldywKPiAtCQkJCSAgICAgIGFsaWdubWVudCwgZmxhZ3MgfCBQSU5fR0xPQkFMKTsK PiArCQkJCSAgICAgIHNpemUsIGFsaWdubWVudCwgZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPiAgfQo+ ICAKPiAgdm9pZAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMK PiBpbmRleCBkODhiZTFkM2NiODYuLjg5OTIyMDEzOWE4YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtNjQyLDEwICs2NDIsMTQgQEAgaTkx NV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgCQkJ ZmxhZ3MgfD0gUElOX0hJR0g7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bp bihvYmosIHZtYS0+dm0sIGVudHJ5LT5hbGlnbm1lbnQsIGZsYWdzKTsKPiArCXJldCA9IGk5MTVf Z2VtX29iamVjdF9waW4ob2JqLCB2bWEtPnZtLAo+ICsJCQkJICBlbnRyeS0+cGFkX3RvX3NpemUs Cj4gKwkJCQkgIGVudHJ5LT5hbGlnbm1lbnQsCj4gKwkJCQkgIGZsYWdzKTsKPiAgCWlmICgocmV0 ID09IC1FTk9TUEMgIHx8IHJldCA9PSAtRTJCSUcpICYmCj4gIAkgICAgb25seV9tYXBwYWJsZV9m b3JfcmVsb2MoZW50cnktPmZsYWdzKSkKPiAgCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluKG9i aiwgdm1hLT52bSwKPiArCQkJCQkgIGVudHJ5LT5wYWRfdG9fc2l6ZSwKPiAgCQkJCQkgIGVudHJ5 LT5hbGlnbm1lbnQsCj4gIAkJCQkJICBmbGFncyAmIH5QSU5fTUFQUEFCTEUpOwo+ICAJaWYgKHJl dCkKPiBAQCAtNzA4LDYgKzcxMiw5IEBAIGViX3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1h ICp2bWEpCj4gIAkgICAgdm1hLT5ub2RlLnN0YXJ0ICYgKGVudHJ5LT5hbGlnbm1lbnQgLSAxKSkK PiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gKwlpZiAodm1hLT5ub2RlLnNpemUgPCBlbnRyeS0+cGFk X3RvX3NpemUpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICAJaWYgKGVudHJ5LT5mbGFncyAmIEVY RUNfT0JKRUNUX1BJTk5FRCAmJgo+ICAJICAgIHZtYS0+bm9kZS5zdGFydCAhPSBlbnRyeS0+b2Zm c2V0KQo+ICAJCXJldHVybiB0cnVlOwo+IEBAIC0xMDQ0LDYgKzEwNTEsMTMgQEAgdmFsaWRhdGVf ZXhlY19saXN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJaWYgKGV4ZWNbaV0uYWxpZ25t ZW50ICYmICFpc19wb3dlcl9vZl8yKGV4ZWNbaV0uYWxpZ25tZW50KSkKPiAgCQkJcmV0dXJuIC1F SU5WQUw7Cj4gIAo+ICsJCS8qIHBhZF90b19zaXplIHdhcyBvbmNlIGEgcmVzZXJ2ZWQgZmllbGQs IHNvIHNhbml0aXplIGl0ICovCj4gKwkJaWYgKGV4ZWNbaV0uZmxhZ3MgJiBFWEVDX09CSkVDVF9Q QURfVE9fU0laRSkgewo+ICsJCQlpZiAob2Zmc2V0X2luX3BhZ2UoZXhlY1tpXS5wYWRfdG9fc2l6 ZSkpCj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9IGVsc2UKPiArCQkJZXhlY1tpXS5wYWRf dG9fc2l6ZSA9IDA7Cj4gKwo+ICAJCS8qIEZpcnN0IGNoZWNrIGZvciBtYWxpY2lvdXMgaW5wdXQg Y2F1c2luZyBvdmVyZmxvdyBpbgo+ICAJCSAqIHRoZSB3b3JzdCBjYXNlIHdoZXJlIHdlIG5lZWQg dG8gYWxsb2NhdGUgdGhlIGVudGlyZQo+ICAJCSAqIHJlbG9jYXRpb24gdHJlZSBhcyBhIHNpbmds ZSBhcnJheS4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggN2ZlZTQ0MTZkY2M3Li5mZjdiNDM4MDU5 ZGEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gKysrIGIvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gQEAgLTY5NywxMCArNjk3LDE0IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9XUklURQko MTw8MikKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUyAoMTw8MykK PiAgI2RlZmluZSBFWEVDX09CSkVDVF9QSU5ORUQJKDE8PDQpCj4gLSNkZWZpbmUgX19FWEVDX09C SkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfUElOTkVEPDwxKQo+ICsjZGVmaW5lIEVY RUNfT0JKRUNUX1BBRF9UT19TSVpFCSgxPDw1KQo+ICsjZGVmaW5lIF9fRVhFQ19PQkpFQ1RfVU5L Tk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1BBRF9UT19TSVpFPDwxKQo+ICAJX191NjQgZmxhZ3M7 Cj4gIAo+IC0JX191NjQgcnN2ZDE7Cj4gKwl1bmlvbiB7Cj4gKwkJX191NjQgcnN2ZDE7Cj4gKwkJ X191NjQgcGFkX3RvX3NpemU7Cj4gKwl9Owo+ICAJX191NjQgcnN2ZDI7Cj4gIH07Cj4gIAo+IC0t IAo+IDIuNy4wLnJjMwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=