From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH 33/39] drm/i915/perf: add a parameter to control the size of OA buffer Date: Wed, 21 Aug 2019 10:37:04 +0200 Message-ID: <2ce5d56e-b8d1-8c63-03ac-cd443cf00cb4@intel.com> References: <20190816080503.28594-1-lucas.demarchi@intel.com> <20190816080503.28594-34-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5EB4E6E2A8 for ; Wed, 21 Aug 2019 08:37:08 +0000 (UTC) In-Reply-To: <20190816080503.28594-34-lucas.demarchi@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi , intel-gfx@lists.freedesktop.org Cc: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org SSB0aGluayB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIGxhbmRlZCBhZnRlciAKaHR0cHM6Ly9wYXRj aHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzMxOTgxNS8/c2VyaWVzPTYwOTE2JnJldj0xMApB cyByZWNvbW1lbmRlZCBieSBKb29uYXMuCgpJdCBzaG91bGQgYWxzbyBidW1wIHRoZSByZXZpc2lv biBudW1iZXIgb2YgdGhlIHBlcmYgQVBJIHNvIHRoYXQgdGhlIAphcHBsaWNhdGlvbiBjYW4gZGV0 ZWN0IHRoaXMgZmVhdHVyZSBpcyBhdmFpbGFibGUuCgpUaGFua3MsCgotTGlvbmVsCgpPbiAxNi8w OC8yMDE5IDEwOjA0LCBMdWNhcyBEZSBNYXJjaGkgd3JvdGU6Cj4gRnJvbTogTGlvbmVsIExhbmR3 ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+Cj4gVGhlIHdheSBvdXIgaGFy ZHdhcmUgaXMgZGVzaWduZWQgZG9lc24ndCBzZWVtIHRvIGxldCB1cyB1c2UgdGhlCj4gTUlfUkVD T1JEX1BFUkZfQ09VTlQgY29tbWFuZCB3aXRob3V0IHNldHRpbmcgdXAgYSBjaXJjdWxhciBidWZm ZXIuCj4KPiBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBkaWRuJ3QgcmVxdWVzdCBPQSByZXBv cnRzIHRvIGJlIGF2YWlsYWJsZQo+IHRocm91Z2ggdGhlIGk5MTUgcGVyZiBzdHJlYW0sIHdlIGNh biBzZXQgdGhlIE9BIGJ1ZmZlciB0byB0aGUgbWluaW11bQo+IHNpemUgdG8gYXZvaWQgY29uc3Vt aW5nIG1lbW9yeSB3aGljaCB3b24ndCBiZSB1c2VkIGJ5IHRoZSBkcml2ZXIuCj4KPiBDYzogSm9v bmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IENjOiBNYXR0 aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTGlvbmVs IExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYt Ynk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgfCA5OCArKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAgMiAr Cj4gICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICB8ICA3ICsrKwo+ICAgMyBmaWxl cyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGVyZi5jCj4gaW5kZXggMmM5ZjQ2ZTEyNjIyLi45Mzg2ZDljODI5MzAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+IEBAIC0yMTYsMTMgKzIxNiw3IEBACj4gICAjaW5j bHVkZSAib2EvaTkxNV9vYV9jbmwuaCIKPiAgICNpbmNsdWRlICJvYS9pOTE1X29hX2ljbC5oIgo+ ICAgCj4gLS8qIEhXIHJlcXVpcmVzIHRoaXMgdG8gYmUgYSBwb3dlciBvZiB0d28sIGJldHdlZW4g MTI4ayBhbmQgMTZNLCB0aG91Z2ggZHJpdmVyCj4gLSAqIGlzIGN1cnJlbnRseSBnZW5lcmFsbHkg ZGVzaWduZWQgYXNzdW1pbmcgdGhlIGxhcmdlc3QgMTZNIHNpemUgaXMgdXNlZCBzdWNoCj4gLSAq IHRoYXQgdGhlIG92ZXJmbG93IGNhc2VzIGFyZSB1bmxpa2VseSBpbiBub3JtYWwgb3BlcmF0aW9u Lgo+IC0gKi8KPiAtI2RlZmluZSBPQV9CVUZGRVJfU0laRQkJU1pfMTZNCj4gLQo+IC0jZGVmaW5l IE9BX1RBS0VOKHRhaWwsIGhlYWQpCSgodGFpbCAtIGhlYWQpICYgKE9BX0JVRkZFUl9TSVpFIC0g MSkpCj4gKyNkZWZpbmUgT0FfVEFLRU4odGFpbCwgaGVhZCkJKCgodGFpbCkgLSAoaGVhZCkpICYg KHN0cmVhbS0+b2FfYnVmZmVyLnZtYS0+c2l6ZSAtIDEpKQo+ICAgCj4gICAvKioKPiAgICAqIERP QzogT0EgVGFpbCBQb2ludGVyIFJhY2UKPiBAQCAtMzQ3LDYgKzM0MSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaTkxNV9vYV9mb3JtYXQgZ2VuOF9wbHVzX29hX2Zvcm1hdHNbSTkxNV9PQV9GT1JN QVRfTUFYXSA9IHsKPiAgICAqIEBvYV9mb3JtYXQ6IEFuIE9BIHVuaXQgSFcgcmVwb3J0IGZvcm1h dAo+ICAgICogQG9hX3BlcmlvZGljOiBXaGV0aGVyIHRvIGVuYWJsZSBwZXJpb2RpYyBPQSB1bml0 IHNhbXBsaW5nCj4gICAgKiBAb2FfcGVyaW9kX2V4cG9uZW50OiBUaGUgT0EgdW5pdCBzYW1wbGlu ZyBwZXJpb2QgaXMgZGVyaXZlZCBmcm9tIHRoaXMKPiArICogQG9hX2J1ZmZlcl9zaXplX2V4cG9u ZW50OiBUaGUgT0EgYnVmZmVyIHNpemUgaXMgZGVyaXZlZCBmcm9tIHRoaXMKPiAgICAqCj4gICAg KiBBcyByZWFkX3Byb3BlcnRpZXNfdW5sb2NrZWQoKSBlbnVtZXJhdGVzIGFuZCB2YWxpZGF0ZXMg dGhlIHByb3BlcnRpZXMgZ2l2ZW4KPiAgICAqIHRvIG9wZW4gYSBzdHJlYW0gb2YgbWV0cmljcyB0 aGUgY29uZmlndXJhdGlvbiBpcyBidWlsdCB1cCBpbiB0aGUgc3RydWN0dXJlCj4gQEAgLTM2Myw2 ICszNTgsNyBAQCBzdHJ1Y3QgcGVyZl9vcGVuX3Byb3BlcnRpZXMgewo+ICAgCWludCBvYV9mb3Jt YXQ7Cj4gICAJYm9vbCBvYV9wZXJpb2RpYzsKPiAgIAlpbnQgb2FfcGVyaW9kX2V4cG9uZW50Owo+ ICsJdTMyIG9hX2J1ZmZlcl9zaXplX2V4cG9uZW50Owo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGVu dW0gaHJ0aW1lcl9yZXN0YXJ0IG9hX3BvbGxfY2hlY2tfdGltZXJfY2Ioc3RydWN0IGhydGltZXIg KmhydGltZXIpOwo+IEBAIC01MzEsNyArNTI3LDcgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2No ZWNrX3VubG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICAJCSAqIGNv dWxkIHB1dCB0aGUgdGFpbCBvdXQgb2YgYm91bmRzLi4uCj4gICAJCSAqLwo+ICAgCQlpZiAoaHdf dGFpbCA+PSBndHRfb2Zmc2V0ICYmCj4gLQkJICAgIGh3X3RhaWwgPCAoZ3R0X29mZnNldCArIE9B X0JVRkZFUl9TSVpFKSkgewo+ICsJCSAgICBod190YWlsIDwgKGd0dF9vZmZzZXQgKyBzdHJlYW0t Pm9hX2J1ZmZlci52bWEtPnNpemUpKSB7Cj4gICAJCQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1sh YWdlZF9pZHhdLm9mZnNldCA9Cj4gICAJCQkJYWdpbmdfdGFpbCA9IGh3X3RhaWw7Cj4gICAJCQlz dHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXAgPSBub3c7Cj4gQEAgLTY1OSw3ICs2NTUs NyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKPiAgIAlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZlci5m b3JtYXRfc2l6ZTsKPiAgIAl1OCAqb2FfYnVmX2Jhc2UgPSBzdHJlYW0tPm9hX2J1ZmZlci52YWRk cjsKPiAgIAl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZm ZXIudm1hKTsKPiAtCXUzMiBtYXNrID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7Cj4gKwl1MzIgbWFz ayA9IChzdHJlYW0tPm9hX2J1ZmZlci52bWEtPnNpemUgLSAxKTsKPiAgIAlzaXplX3Qgc3RhcnRf b2Zmc2V0ID0gKm9mZnNldDsKPiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgCXVuc2lnbmVk IGludCBhZ2VkX3RhaWxfaWR4Owo+IEBAIC02OTksOCArNjk1LDggQEAgc3RhdGljIGludCBnZW44 X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJ ICogb25seSBiZSBpbmNyZW1lbnRlZCBieSBtdWx0aXBsZXMgb2YgdGhlIHJlcG9ydCBzaXplIChu b3RhYmx5IGFsc28KPiAgIAkgKiBhbGwgYSBwb3dlciBvZiB0d28pLgo+ICAgCSAqLwo+IC0JaWYg KFdBUk5fT05DRShoZWFkID4gT0FfQlVGRkVSX1NJWkUgfHwgaGVhZCAlIHJlcG9ydF9zaXplIHx8 Cj4gLQkJICAgICAgdGFpbCA+IE9BX0JVRkZFUl9TSVpFIHx8IHRhaWwgJSByZXBvcnRfc2l6ZSwK PiArCWlmIChXQVJOX09OQ0UoaGVhZCA+IHN0cmVhbS0+b2FfYnVmZmVyLnZtYS0+c2l6ZSB8fCBo ZWFkICUgcmVwb3J0X3NpemUgfHwKPiArCQkgICAgICB0YWlsID4gc3RyZWFtLT5vYV9idWZmZXIu dm1hLT5zaXplIHx8IHRhaWwgJSByZXBvcnRfc2l6ZSwKPiAgIAkJICAgICAgIkluY29uc2lzdGVu dCBPQSBidWZmZXIgcG9pbnRlcnM6IGhlYWQgPSAldSwgdGFpbCA9ICV1XG4iLAo+ICAgCQkgICAg ICBoZWFkLCB0YWlsKSkKPiAgIAkJcmV0dXJuIC1FSU87Cj4gQEAgLTcyMyw3ICs3MTksNyBAQCBz dGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwKPiAgIAkJICogaGVyZSB3b3VsZCBpbXBseSBhIGRyaXZlciBidWcgdGhhdCB3b3Vs ZCByZXN1bHQKPiAgIAkJICogaW4gYW4gb3ZlcnJ1bi4KPiAgIAkJICovCj4gLQkJaWYgKFdBUk5f T04oKE9BX0JVRkZFUl9TSVpFIC0gaGVhZCkgPCByZXBvcnRfc2l6ZSkpIHsKPiArCQlpZiAoV0FS Tl9PTigoc3RyZWFtLT5vYV9idWZmZXIudm1hLT5zaXplIC0gaGVhZCkgPCByZXBvcnRfc2l6ZSkp IHsKPiAgIAkJCURSTV9FUlJPUigiU3B1cmlvdXMgT0EgaGVhZCBwdHI6IG5vbi1pbnRlZ3JhbCBy ZXBvcnQgb2Zmc2V0XG4iKTsKPiAgIAkJCWJyZWFrOwo+ICAgCQl9Cj4gQEAgLTg4MSwxMSArODc3 LDYgQEAgc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0 cmVhbSwKPiAgIAkgKiBhdXRvbWF0aWNhbGx5IHRyaWdnZXJlZCByZXBvcnRzIGluIHRoaXMgY29u ZGl0aW9uIGFuZCBzbyB3ZQo+ICAgCSAqIGhhdmUgdG8gYXNzdW1lIHRoYXQgb2xkIHJlcG9ydHMg YXJlIG5vdyBiZWluZyB0cmFtcGxlZAo+ICAgCSAqIG92ZXIuCj4gLQkgKgo+IC0JICogQ29uc2lk ZXJpbmcgaG93IHdlIGRvbid0IGN1cnJlbnRseSBnaXZlIHVzZXJzcGFjZSBjb250cm9sCj4gLQkg KiBvdmVyIHRoZSBPQSBidWZmZXIgc2l6ZSBhbmQgYWx3YXlzIGNvbmZpZ3VyZSBhIGxhcmdlIDE2 TUIKPiAtCSAqIGJ1ZmZlciwgdGhlbiBhIGJ1ZmZlciBvdmVyZmxvdyBkb2VzIGFueXdheSBsaWtl bHkgaW5kaWNhdGUKPiAtCSAqIHRoYXQgc29tZXRoaW5nIGhhcyBnb25lIHF1aXRlIGJhZGx5IHdy b25nLgo+ICAgCSAqLwo+ICAgCWlmIChvYXN0YXR1cyAmIEdFTjhfT0FTVEFUVVNfT0FCVUZGRVJf T1ZFUkZMT1cpIHsKPiAgIAkJcmV0ID0gYXBwZW5kX29hX3N0YXR1cyhzdHJlYW0sIGJ1ZiwgY291 bnQsIG9mZnNldCwKPiBAQCAtOTQ3LDcgKzkzOCw3IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRf b2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+ICAgCWludCByZXBv cnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOwo+ICAgCXU4ICpvYV9idWZf YmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOwo+ICAgCXUzMiBndHRfb2Zmc2V0ID0gaTkx NV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwo+IC0JdTMyIG1hc2sgPSAoT0Ff QlVGRkVSX1NJWkUgLSAxKTsKPiArCXUzMiBtYXNrID0gKHN0cmVhbS0+b2FfYnVmZmVyLnZtYS0+ c2l6ZSAtIDEpOwo+ICAgCXNpemVfdCBzdGFydF9vZmZzZXQgPSAqb2Zmc2V0Owo+ICAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gICAJdW5zaWduZWQgaW50IGFnZWRfdGFpbF9pZHg7Cj4gQEAgLTk4 NCw4ICs5NzUsOCBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5 MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAgIAkgKiBvbmx5IGJlIGluY3JlbWVudGVkIGJ5IG11 bHRpcGxlcyBvZiB0aGUgcmVwb3J0IHNpemUgKG5vdGFibHkgYWxzbwo+ICAgCSAqIGFsbCBhIHBv d2VyIG9mIHR3bykuCj4gICAJICovCj4gLQlpZiAoV0FSTl9PTkNFKGhlYWQgPiBPQV9CVUZGRVJf U0laRSB8fCBoZWFkICUgcmVwb3J0X3NpemUgfHwKPiAtCQkgICAgICB0YWlsID4gT0FfQlVGRkVS X1NJWkUgfHwgdGFpbCAlIHJlcG9ydF9zaXplLAo+ICsJaWYgKFdBUk5fT05DRShoZWFkID4gc3Ry ZWFtLT5vYV9idWZmZXIudm1hLT5zaXplIHx8IGhlYWQgJSByZXBvcnRfc2l6ZSB8fAo+ICsJCSAg ICAgIHRhaWwgPiBzdHJlYW0tPm9hX2J1ZmZlci52bWEtPnNpemUgfHwgdGFpbCAlIHJlcG9ydF9z aXplLAo+ICAgCQkgICAgICAiSW5jb25zaXN0ZW50IE9BIGJ1ZmZlciBwb2ludGVyczogaGVhZCA9 ICV1LCB0YWlsID0gJXVcbiIsCj4gICAJCSAgICAgIGhlYWQsIHRhaWwpKQo+ICAgCQlyZXR1cm4g LUVJTzsKPiBAQCAtMTAwNSw3ICs5OTYsNyBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3Jl cG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAgIAkJICogaGVyZSB3b3Vs ZCBpbXBseSBhIGRyaXZlciBidWcgdGhhdCB3b3VsZCByZXN1bHQKPiAgIAkJICogaW4gYW4gb3Zl cnJ1bi4KPiAgIAkJICovCj4gLQkJaWYgKFdBUk5fT04oKE9BX0JVRkZFUl9TSVpFIC0gaGVhZCkg PCByZXBvcnRfc2l6ZSkpIHsKPiArCQlpZiAoV0FSTl9PTigoc3RyZWFtLT5vYV9idWZmZXIudm1h LT5zaXplIC0gaGVhZCkgPCByZXBvcnRfc2l6ZSkpIHsKPiAgIAkJCURSTV9FUlJPUigiU3B1cmlv dXMgT0EgaGVhZCBwdHI6IG5vbi1pbnRlZ3JhbCByZXBvcnQgb2Zmc2V0XG4iKTsKPiAgIAkJCWJy ZWFrOwo+ICAgCQl9Cj4gQEAgLTE0MDgsNyArMTM5OSw5IEBAIHN0YXRpYyB2b2lkIGdlbjdfaW5p dF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAo+ICAgCUk5 MTVfV1JJVEUoR0VON19PQUJVRkZFUiwgZ3R0X29mZnNldCk7Cj4gICAKPiAtCUk5MTVfV1JJVEUo R0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfCBPQUJVRkZFUl9TSVpFXzE2TSk7IC8qIHRhaWwg Ki8KPiArCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfAo+ICsJCSAgICgo c3RyZWFtLT5vYV9idWZmZXIuc2l6ZV9leHBvbmVudCAtIDE3KSA8PAo+ICsJCSAgICBHRU43X09B U1RBVFVTMV9CVUZGRVJfU0laRV9TSElGVCkpOyAvKiB0YWlsICovCj4gICAKPiAgIAkvKiBNYXJr IHRoYXQgd2UgbmVlZCB1cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9tLi4uICovCj4g ICAJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsK PiBAQCAtMTQzMyw3ICsxNDI2LDcgQEAgc3RhdGljIHZvaWQgZ2VuN19pbml0X29hX2J1ZmZlcihz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgCSAqIHRoZSBhc3N1bXB0aW9uIHRo YXQgbmV3IHJlcG9ydHMgYXJlIGJlaW5nIHdyaXR0ZW4gdG8gemVyb2VkCj4gICAJICogbWVtb3J5 Li4uCj4gICAJICovCj4gLQltZW1zZXQoc3RyZWFtLT5vYV9idWZmZXIudmFkZHIsIDAsIE9BX0JV RkZFUl9TSVpFKTsKPiArCW1lbXNldChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgc3RyZWFt LT5vYV9idWZmZXIudm1hLT5zaXplKTsKPiAgIAo+ICAgCS8qIE1heWJlIG1ha2UgLT5wb2xsaW4g cGVyLXN0cmVhbSBzdGF0ZSBpZiB3ZSBzdXBwb3J0IG11bHRpcGxlCj4gICAJICogY29uY3VycmVu dCBzdHJlYW1zIGluIHRoZSBmdXR1cmUuCj4gQEAgLTE0NjQsNyArMTQ1Nyw5IEBAIHN0YXRpYyB2 b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkK PiAgIAkgKiAgYml0LiIKPiAgIAkgKi8KPiAgIAlJOTE1X1dSSVRFKEdFTjhfT0FCVUZGRVIsIGd0 dF9vZmZzZXQgfAo+IC0JCSAgIE9BQlVGRkVSX1NJWkVfMTZNIHwgR0VOOF9PQUJVRkZFUl9NRU1f U0VMRUNUX0dHVFQpOwo+ICsJCSAgICgoc3RyZWFtLT5vYV9idWZmZXIuc2l6ZV9leHBvbmVudCAt IDE3KSA8PAo+ICsJCSAgICBHRU44X09BQlVGRkVSX0JVRkZFUl9TSVpFX1NISUZUKSB8Cj4gKwkJ ICAgR0VOOF9PQUJVRkZFUl9NRU1fU0VMRUNUX0dHVFQpOwo+ICAgCUk5MTVfV1JJVEUoR0VOOF9P QVRBSUxQVFIsIGd0dF9vZmZzZXQgJiBHRU44X09BVEFJTFBUUl9NQVNLKTsKPiAgIAo+ICAgCS8q IE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBwb2ludGVycyB0byByZWFkIGZyb20uLi4g Ki8KPiBAQCAtMTQ5Miw3ICsxNDg3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0X29hX2J1ZmZl cihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgCSAqIHRoZSBhc3N1bXB0aW9u IHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJlaW5nIHdyaXR0ZW4gdG8gemVyb2VkCj4gICAJICogbWVt b3J5Li4uCj4gICAJICovCj4gLQltZW1zZXQoc3RyZWFtLT5vYV9idWZmZXIudmFkZHIsIDAsIE9B X0JVRkZFUl9TSVpFKTsKPiArCW1lbXNldChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgc3Ry ZWFtLT5vYV9idWZmZXIudm1hLT5zaXplKTsKPiAgIAo+ICAgCS8qCj4gICAJICogTWF5YmUgbWFr ZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKPiBAQCAt MTUwMSwyNCArMTQ5NiwyNSBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVj dCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICAJc3RyZWFtLT5wb2xsaW4gPSBmYWxzZTsK PiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQo+ICtzdGF0aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgaTkx NV9wZXJmX3N0cmVhbSAqc3RyZWFtLCBpbnQgc2l6ZV9leHBvbmVudCkKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYm87Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKPiAgIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK PiArCXNpemVfdCBzaXplID0gMVUgPDwgc2l6ZV9leHBvbmVudDsKPiAgIAlpbnQgcmV0Owo+ICAg Cj4gICAJaWYgKFdBUk5fT04oc3RyZWFtLT5vYV9idWZmZXIudm1hKSkKPiAgIAkJcmV0dXJuIC1F Tk9ERVY7Cj4gICAKPiArCWlmIChXQVJOX09OKHNpemUgPCBTWl8xMjhLIHx8IHNpemUgPiBTWl8x Nk0pKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgIAlyZXQgPSBpOTE1X211dGV4X2xvY2tf aW50ZXJydXB0aWJsZSgmZGV2X3ByaXYtPmRybSk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJu IHJldDsKPiAgIAo+IC0JQlVJTERfQlVHX09OX05PVF9QT1dFUl9PRl8yKE9BX0JVRkZFUl9TSVpF KTsKPiAtCUJVSUxEX0JVR19PTihPQV9CVUZGRVJfU0laRSA8IFNaXzEyOEsgfHwgT0FfQlVGRkVS X1NJWkUgPiBTWl8xNk0pOwo+IC0KPiAtCWJvID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1l bShkZXZfcHJpdiwgT0FfQlVGRkVSX1NJWkUpOwo+ICsJYm8gPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX3NobWVtKGRldl9wcml2LCBzaXplKTsKPiAgIAlpZiAoSVNfRVJSKGJvKSkgewo+ICAgCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBPQSBidWZmZXJcbiIpOwo+ICAgCQlyZXQgPSBQ VFJfRVJSKGJvKTsKPiBAQCAtMTUzNCw2ICsxNTMwLDcgQEAgc3RhdGljIGludCBhbGxvY19vYV9i dWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAkJZ290byBlcnJfdW5y ZWY7Cj4gICAJfQo+ICAgCXN0cmVhbS0+b2FfYnVmZmVyLnZtYSA9IHZtYTsKPiArCXN0cmVhbS0+ b2FfYnVmZmVyLnNpemVfZXhwb25lbnQgPSBzaXplX2V4cG9uZW50Owo+ICAgCj4gICAJc3RyZWFt LT5vYV9idWZmZXIudmFkZHIgPQo+ICAgCQlpOTE1X2dlbV9vYmplY3RfcGluX21hcChibywgSTkx NV9NQVBfV0IpOwo+IEBAIC0xNTQyLDkgKzE1MzksMTAgQEAgc3RhdGljIGludCBhbGxvY19vYV9i dWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAkJZ290byBlcnJfdW5w aW47Cj4gICAJfQo+ICAgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJPQSBCdWZmZXIgaW5pdGlhbGl6 ZWQsIGd0dCBvZmZzZXQgPSAweCV4LCB2YWRkciA9ICVwXG4iLAo+ICsJRFJNX0RFQlVHX0RSSVZF UigiT0EgQnVmZmVyIGluaXRpYWxpemVkLCBndHQgb2Zmc2V0ID0gMHgleCwgdmFkZHIgPSAlcCwg c2l6ZSA9ICVsbHVcbiIsCj4gICAJCQkgaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZl ci52bWEpLAo+IC0JCQkgc3RyZWFtLT5vYV9idWZmZXIudmFkZHIpOwo+ICsJCQkgc3RyZWFtLT5v YV9idWZmZXIudmFkZHIsCj4gKwkJCSBzdHJlYW0tPm9hX2J1ZmZlci52bWEtPnNpemUpOwo+ICAg Cj4gICAJZ290byB1bmxvY2s7Cj4gICAKPiBAQCAtMjI1MSw3ICsyMjQ5LDcgQEAgc3RhdGljIGlu dCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4g ICAJc3RyZWFtLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50 aW1lX3BtKTsKPiAgIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2X3ByaXYtPnVuY29y ZSwgRk9SQ0VXQUtFX0FMTCk7Cj4gICAKPiAtCXJldCA9IGFsbG9jX29hX2J1ZmZlcihzdHJlYW0p Owo+ICsJcmV0ID0gYWxsb2Nfb2FfYnVmZmVyKHN0cmVhbSwgcHJvcHMtPm9hX2J1ZmZlcl9zaXpl X2V4cG9uZW50KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycl9vYV9idWZfYWxsb2M7Cj4g ICAKPiBAQCAtMjgyMyw2ICsyODIxLDI2IEBAIHN0YXRpYyB1NjQgb2FfZXhwb25lbnRfdG9fbnMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZXhwb25lbnQpCj4gICAJCQkg MTAwMFVMTCAqIFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lf a2h6KTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50Cj4gK3NlbGVjdF9vYV9idWZmZXJfZXhwb25l bnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCSAgdTY0IHJlcXVlc3RlZF9z aXplKQo+ICt7Cj4gKwlpbnQgb3JkZXI7Cj4gKwo+ICsJLyoKPiArCSAqIFdoZW4gbm8gc2l6ZSBp cyBzcGVjaWZpZWQsIHVzZSB0aGUgbGFyZ2VzdCBzaXplIHN1cHBvcnRlZCBieSBhbGwKPiArCSAq IGdlbmVyYXRpb25zLgo+ICsJICovCj4gKwlpZiAoIXJlcXVlc3RlZF9zaXplKQo+ICsJCXJldHVy biBvcmRlcl9iYXNlXzIoU1pfMTZNKTsKPiArCj4gKwlvcmRlciA9IG9yZGVyX2Jhc2VfMihjbGFt cF90KHU2NCwgcmVxdWVzdGVkX3NpemUsIFNaXzEyOEssIFNaXzE2TSkpOwo+ICsJaWYgKHJlcXVl c3RlZF9zaXplICE9ICgxVUwgPDwgb3JkZXIpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAr CXJldHVybiBvcmRlcjsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogcmVhZF9wcm9wZXJ0aWVzX3Vu bG9ja2VkIC0gdmFsaWRhdGUgKyBjb3B5IHVzZXJzcGFjZSBzdHJlYW0gb3BlbiBwcm9wZXJ0aWVz Cj4gICAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCj4gQEAgLTI5NTAsNiArMjk2 OCwxNCBAQCBzdGF0aWMgaW50IHJlYWRfcHJvcGVydGllc191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQlwcm9wcy0+b2FfcGVyaW9kaWMgPSB0cnVlOwo+ ICAgCQkJcHJvcHMtPm9hX3BlcmlvZF9leHBvbmVudCA9IHZhbHVlOwo+ICAgCQkJYnJlYWs7Cj4g KwkJY2FzZSBEUk1fSTkxNV9QRVJGX1BST1BfT0FfQlVGRkVSX1NJWkU6Cj4gKwkJCXJldCA9IHNl bGVjdF9vYV9idWZmZXJfZXhwb25lbnQoZGV2X3ByaXYsIHZhbHVlKTsKPiArCQkJaWYgKHJldCA8 IDApIHsKPiArCQkJCURSTV9ERUJVRygiT0EgYnVmZmVyIHNpemUgaW52YWxpZCAlbGx1XG4iLCB2 YWx1ZSk7Cj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCQl9Cj4gKwkJCXByb3BzLT5vYV9idWZmZXJf c2l6ZV9leHBvbmVudCA9IHJldDsKPiArCQkJYnJlYWs7Cj4gICAJCWNhc2UgRFJNX0k5MTVfUEVS Rl9QUk9QX01BWDoKPiAgIAkJCU1JU1NJTkdfQ0FTRShpZCk7Cj4gICAJCQlyZXR1cm4gLUVJTlZB TDsKPiBAQCAtMjk1OCw2ICsyOTg0LDEyIEBAIHN0YXRpYyBpbnQgcmVhZF9wcm9wZXJ0aWVzX3Vu bG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkJdXByb3AgKz0g MjsKPiAgIAl9Cj4gICAKPiArCS8qIElmIG5vIGJ1ZmZlciBzaXplIHdhcyByZXF1ZXN0ZWQsIHNl bGVjdCB0aGUgZGVmYXVsdCBvbmUuICovCj4gKwlpZiAoIXByb3BzLT5vYV9idWZmZXJfc2l6ZV9l eHBvbmVudCkgewo+ICsJCXByb3BzLT5vYV9idWZmZXJfc2l6ZV9leHBvbmVudCA9Cj4gKwkJCXNl bGVjdF9vYV9idWZmZXJfZXhwb25lbnQoZGV2X3ByaXYsIDApOwo+ICsJfQo+ICsKPiAgIAlyZXR1 cm4gMDsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDM0ZDgzZTNh NTFhNy4uZDM1ZjM4NWY4Mjg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTY3 NSwxMiArNjc1LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X21taW9fcmVnX3ZhbGlkKGk5 MTVfcmVnX3QgcmVnKQo+ICAgI2RlZmluZSBHRU44X09BQlVGRkVSX1VEVyBfTU1JTygweDIzYjQp Cj4gICAjZGVmaW5lIEdFTjhfT0FCVUZGRVIgX01NSU8oMHgyYjE0KQo+ICAgI2RlZmluZSAgR0VO OF9PQUJVRkZFUl9NRU1fU0VMRUNUX0dHVFQgICAgICAoMSA8PCAwKSAgLyogMDogUFBHVFQsIDE6 IEdHVFQgKi8KPiArI2RlZmluZSAgR0VOOF9PQUJVRkZFUl9CVUZGRVJfU0laRV9TSElGVCAgICAz Cj4gICAKPiAgICNkZWZpbmUgR0VON19PQVNUQVRVUzEgX01NSU8oMHgyMzY0KQo+ICAgI2RlZmlu ZSAgR0VON19PQVNUQVRVUzFfVEFJTF9NQVNLCSAgICAweGZmZmZmZmMwCj4gICAjZGVmaW5lICBH RU43X09BU1RBVFVTMV9DT1VOVEVSX09WRVJGTE9XICAgICgxIDw8IDIpCj4gICAjZGVmaW5lICBH RU43X09BU1RBVFVTMV9PQUJVRkZFUl9PVkVSRkxPVyAgICgxIDw8IDEpCj4gICAjZGVmaW5lICBH RU43X09BU1RBVFVTMV9SRVBPUlRfTE9TVAkgICAgKDEgPDwgMCkKPiArI2RlZmluZSAgR0VON19P QVNUQVRVUzFfQlVGRkVSX1NJWkVfU0hJRlQgICAzCj4gICAKPiAgICNkZWZpbmUgR0VON19PQVNU QVRVUzIgX01NSU8oMHgyMzY4KQo+ICAgI2RlZmluZSAgR0VON19PQVNUQVRVUzJfSEVBRF9NQVNL ICAgICAgICAgICAweGZmZmZmZmMwCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IGluZGV4IDQ2OWRjNTEyY2Nh My4uZjY2MmM1MzRkZTBhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IEBAIC0xODczLDYgKzE4NzMs MTMgQEAgZW51bSBkcm1faTkxNV9wZXJmX3Byb3BlcnR5X2lkIHsKPiAgIAkgKi8KPiAgIAlEUk1f STkxNV9QRVJGX1BST1BfT0FfRVhQT05FTlQsCj4gICAKPiArCS8qKgo+ICsJICogU3BlY2lmeSBh IGdsb2JhbCBPQSBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0ZWQgaW4gYnl0ZXMuIFRoZSBzaXpl Cj4gKwkgKiBzcGVjaWZpZWQgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgSFcgKGN1cnJlbnRseSBzdXBw b3J0ZWQgc2l6ZXMgYXJlCj4gKwkgKiBwb3dlcnMgb2YgMiByYW5naW5nIGZyb20gMTI4S2IgdG8g MTZNYikuCj4gKwkgKi8KPiArCURSTV9JOTE1X1BFUkZfUFJPUF9PQV9CVUZGRVJfU0laRSwKPiAr Cj4gICAJRFJNX0k5MTVfUEVSRl9QUk9QX01BWCAvKiBub24tQUJJICovCj4gICB9Owo+ICAgCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4