From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08100C2D0E5 for ; Wed, 25 Mar 2020 21:04:10 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D6BF820737 for ; Wed, 25 Mar 2020 21:04:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D6BF820737 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 292056E1F8; Wed, 25 Mar 2020 21:04:09 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0364E6E1F8 for ; Wed, 25 Mar 2020 21:04:05 +0000 (UTC) IronPort-SDR: Xa1mu6DT4nz+K8PAcuSbDPOi1a5lXakbxSmFBPF7LhbH9/XmWQGRmAapTQGVmaAoiuetjjyysk iTBv4UisKh+g== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2020 14:04:05 -0700 IronPort-SDR: Lz2DEDxXxVh8ZU0cNbFEjt8Zo53cOgxeYS+FU8RbEfJOKRtfZbflaJKsn+VO0K51uWVXgOMJcs 7sy27LEQPOsA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,305,1580803200"; d="scan'208";a="282266091" Received: from dceraolo-linux.fm.intel.com (HELO [10.1.27.145]) ([10.1.27.145]) by fmsmga002.fm.intel.com with ESMTP; 25 Mar 2020 14:04:04 -0700 To: intel-gfx@lists.freedesktop.org References: <20200312011631.15262-1-daniele.ceraolospurio@intel.com> <20200312011631.15262-6-daniele.ceraolospurio@intel.com> From: Daniele Ceraolo Spurio Message-ID: <832a9f79-7a3d-6d28-ddd7-ff4dd3f0c933@intel.com> Date: Wed, 25 Mar 2020 14:03:41 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <20200312011631.15262-6-daniele.ceraolospurio@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v2 5/6] drm/i915/uc: Move uC debugfs to its own folder under GT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiAzLzExLzIwIDY6MTYgUE0sIERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gd3JvdGU6Cj4gdUMg aXMgYSBjb21wb25lbnQgb2YgdGhlIEdULCBzbyBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIHVDIGRl YnVnZnMgZmlsZXMKPiB0byBiZSBpbiB0aGUgR1QgZm9sZGVyLiBBIHN1YmZvbGRlciBoYXMgYmVl biB1c2VkIHRvIGtlZXAgdGhlIHNhbWUKPiBzdHJ1Y3R1cmUgd2UgaGF2ZSBmb3IgdGhlIGNvZGUu Cj4gCj4gdjI6IHVzZSBpbnRlbF8qIHByZWZpeCAoSmFuaSksIHJlYmFzZSBvbiBuZXcgZ3RfZGVi dWdmc19yZWdpc3Rlcl9maWxlcywKPiAgICAgIGZpeCBwZXJtaXNzaW9ucyBmb3Igd3JpdGFibGUg ZGVidWdmcyBmaWxlcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlv IDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IENjOiBBbmRpIFNoeXRpIDxhbmRp LnNoeXRpQGludGVsLmNvbT4KPiBDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3pr b0BpbnRlbC5jb20+Cj4gQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5j b20+Cj4gQ2M6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgo+IENjOiBU b255IFllIDx0b255LnllQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgICAgICAgIHwgICA3ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9kZWJ1 Z2ZzX2d0LmMgICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv ZGVidWdmc19ndWMuYyAgICAgfCAgNDIgKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9kZWJ1Z2ZzX2d1Yy5oICAgICB8ICAxNCArKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvZGVidWdmc19ndWNfbG9nLmMgfCAxMjQgKysrKysrKysrKysrKysrKysKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfZ3VjX2xvZy5oIHwgIDE1ICsrCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2h1Yy5jICAgICB8ICAzNiArKysrKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMuaCAgICAgfCAgMTQgKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuYyAgICAgIHwgIDMxICsrKysr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX3VjLmggICAgICB8ICAxNCAr Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmggICAgICAgfCAgIDUg Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jICAgfCAgIDUg LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgfCAxMzcg LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgMTMgZmlsZXMgY2hhbmdlZCwgMzA2IGluc2VydGlvbnMo KyksIDE0NCBkZWxldGlvbnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Yy5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuaAo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfZ3VjX2xvZy5jCj4gICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWNfbG9nLmgK PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2Zz X2h1Yy5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv ZGVidWdmc19odWMuaAo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2RlYnVnZnNfdWMuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXgg OWY4ODdhODZlNTU1Li5mODYyYWM2NjE1ZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IEBA IC0xNjYsNyArMTY2LDEyIEBAIGk5MTUteSArPSBcCj4gICAJICBpbnRlbF93b3BjbS5vCj4gICAK PiAgICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29udHJvbGxlciAoR3VDKSBzdXBwb3J0Cj4gLWk5 MTUteSArPSBndC91Yy9pbnRlbF91Yy5vIFwKPiAraTkxNS15ICs9IFwKPiArCSAgZ3QvdWMvZGVi dWdmc19ndWMubyBcCj4gKwkgIGd0L3VjL2RlYnVnZnNfZ3VjX2xvZy5vIFwKPiArCSAgZ3QvdWMv ZGVidWdmc19odWMubyBcCj4gKwkgIGd0L3VjL2RlYnVnZnNfdWMubyBcCgpJbiBhbiBJTSBkaXNj dXNzaW9uIE1pY2hhbCBzdWdnZXN0ZWQgdG8gcmVuYW1lIHRob3NlIGZpbGVzIHRvIAppbnRlbF91 Y19kZWJ1Z2ZzLCBpbnRlbF9ndWNfZGVidWdmcyBldGMuIFRoaXMgd291bGQgYmUgZGlmZmVyZW50 IGZyb20gCnRoZSBmaWxlcyB1bmRlciBndC8uIEJlZm9yZSBJIGRvIGl0LCBkb2VzIGFueW9uZSBo YXZlIGEgcHJvYmxlbSB3aXRoIHRoZSAKcmVuYW1pbmc/CgpEYW5pZWxlCgo+ICsJICBndC91Yy9p bnRlbF91Yy5vIFwKPiAgIAkgIGd0L3VjL2ludGVsX3VjX2Z3Lm8gXAo+ICAgCSAgZ3QvdWMvaW50 ZWxfZ3VjLm8gXAo+ICAgCSAgZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5vIFwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvZGVidWdmc19ndC5jCj4gaW5kZXggZGU3M2I2M2Q2YmE3Li5mY2JjNTdlMjI2YzMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jCj4gQEAgLTksNiArOSw3IEBACj4g ICAjaW5jbHVkZSAiZGVidWdmc19lbmdpbmVzLmgiCj4gICAjaW5jbHVkZSAiZGVidWdmc19ndC5o Igo+ICAgI2luY2x1ZGUgImRlYnVnZnNfZ3RfcG0uaCIKPiArI2luY2x1ZGUgInVjL2RlYnVnZnNf dWMuaCIKPiAgICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAgCj4gICB2b2lkIGRlYnVnZnNfZ3Rf cmVnaXN0ZXIoc3RydWN0IGludGVsX2d0ICpndCkKPiBAQCAtMjQsNiArMjUsOCBAQCB2b2lkIGRl YnVnZnNfZ3RfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d0ICpndCkKPiAgIAo+ICAgCWRlYnVnZnNf ZW5naW5lc19yZWdpc3RlcihndCwgcm9vdCk7Cj4gICAJZGVidWdmc19ndF9wbV9yZWdpc3Rlcihn dCwgcm9vdCk7Cj4gKwo+ICsJaW50ZWxfdWNfZGVidWdmc19yZWdpc3RlcigmZ3QtPnVjLCByb290 KTsKPiAgIH0KPiAgIAo+ICAgdm9pZCBpbnRlbF9ndF9kZWJ1Z2ZzX3JlZ2lzdGVyX2ZpbGVzKHN0 cnVjdCBkZW50cnkgKnJvb3QsCj4gQEAgLTMxLDkgKzM0LDEwIEBAIHZvaWQgaW50ZWxfZ3RfZGVi dWdmc19yZWdpc3Rlcl9maWxlcyhzdHJ1Y3QgZGVudHJ5ICpyb290LAo+ICAgCQkJCSAgICAgdW5z aWduZWQgbG9uZyBjb3VudCwgdm9pZCAqZGF0YSkKPiAgIHsKPiAgIAl3aGlsZSAoY291bnQtLSkg ewo+ICsJCXVtb2RlX3QgbW9kZSA9IGZpbGVzLT5mb3BzLT53cml0ZSA/IDA2NDQgOiAwNDQ0Owo+ ICAgCQlpZiAoIWZpbGVzLT5ldmFsIHx8IGZpbGVzLT5ldmFsKGRhdGEpKQo+ICAgCQkJZGVidWdm c19jcmVhdGVfZmlsZShmaWxlcy0+bmFtZSwKPiAtCQkJCQkgICAgMDQ0NCwgcm9vdCwgZGF0YSwK PiArCQkJCQkgICAgbW9kZSwgcm9vdCwgZGF0YSwKPiAgIAkJCQkJICAgIGZpbGVzLT5mb3BzKTsK PiAgIAo+ICAgCQlmaWxlcysrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9kZWJ1Z2ZzX2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19n dWMuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi40NTA2YjUy YTYxZjIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv ZGVidWdmc19ndWMuYwo+IEBAIC0wLDAgKzEsNDIgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVAo+ICsKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9y YXRpb24KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgo+ICsKPiArI2lu Y2x1ZGUgImd0L2RlYnVnZnNfZ3QuaCIKPiArI2luY2x1ZGUgImRlYnVnZnNfZ3VjX2xvZy5oIgo+ ICsjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCj4gKwo+ICtzdGF0aWMgaW50IGd1Y19pbmZvX3Nob3co c3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMgPSBtLT5wcml2YXRlOwo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2Zp bGVfcHJpbnRlcihtKTsKPiArCj4gKwlpZiAoIWludGVsX2d1Y19pc19zdXBwb3J0ZWQoZ3VjKSkK PiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpbnRlbF9ndWNfbG9hZF9zdGF0dXMoZ3VjLCAm cCk7Cj4gKwlkcm1fcHV0cygmcCwgIlxuIik7Cj4gKwlpbnRlbF9ndWNfbG9nX2luZm8oJmd1Yy0+ bG9nLCAmcCk7Cj4gKwo+ICsJLyogQWRkIG1vcmUgYXMgcmVxdWlyZWQgLi4uICovCj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KPiArREVGSU5FX0dUX0RFQlVHRlNfQVRUUklCVVRFKGd1Y19pbmZvKTsK PiArCj4gK3ZvaWQgaW50ZWxfZ3VjX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d1YyAq Z3VjLCBzdHJ1Y3QgZGVudHJ5ICpyb290KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IGRl YnVnZnNfZ3RfZmlsZSBmaWxlc1tdID0gewo+ICsJCXsgImd1Y19pbmZvIiwgJmd1Y19pbmZvX2Zv cHMsIE5VTEwgfSwKPiArCX07Cj4gKwo+ICsJaWYgKCFpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKGd1 YykpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWludGVsX2d0X2RlYnVnZnNfcmVnaXN0ZXJfZmlsZXMo cm9vdCwgZmlsZXMsIEFSUkFZX1NJWkUoZmlsZXMpLCBndWMpOwo+ICsJaW50ZWxfZ3VjX2xvZ19k ZWJ1Z2ZzX3JlZ2lzdGVyKCZndWMtPmxvZywgcm9vdCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2RlYnVnZnNfZ3VjLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMDAwMC4uNDI0YzI2NjY1Y2YxCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfZ3VjLmgKPiBAQCAtMCwwICsxLDE0IEBACj4gKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KPiArLyoKPiArICogQ29weXJpZ2h0IMKp IDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaWZuZGVmIERFQlVHRlNfR1VD X0gKPiArI2RlZmluZSBERUJVR0ZTX0dVQ19ICj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZ3VjOwo+ICtz dHJ1Y3QgZGVudHJ5Owo+ICsKPiArdm9pZCBpbnRlbF9ndWNfZGVidWdmc19yZWdpc3RlcihzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMsIHN0cnVjdCBkZW50cnkgKnJvb3QpOwo+ICsKPiArI2VuZGlmIC8q IERFQlVHRlNfR1VDX0ggKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvZGVidWdmc19ndWNfbG9nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2Zz X2d1Y19sb2cuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44 YmMyOTIyOTE1ZjQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvZGVidWdmc19ndWNfbG9nLmMKPiBAQCAtMCwwICsxLDEyNCBAQAo+ICsvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAyMCBJ bnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9mcy5oPgo+ICsj aW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgo+ICsKPiArI2luY2x1ZGUgImd0L2RlYnVnZnNfZ3Qu aCIKPiArI2luY2x1ZGUgImludGVsX2d1Yy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZy5o Igo+ICsKPiArc3RhdGljIGludCBndWNfbG9nX2R1bXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxl X3ByaW50ZXIobSk7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2d1Y19sb2dfZHVtcChtLT5wcml2YXRl LCAmcCwgZmFsc2UpOwo+ICt9Cj4gK0RFRklORV9HVF9ERUJVR0ZTX0FUVFJJQlVURShndWNfbG9n X2R1bXApOwo+ICsKPiArc3RhdGljIGludCBndWNfbG9hZF9lcnJfbG9nX2R1bXBfc2hvdyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBkcm1fcHJpbnRlciBw ID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2d1Y19sb2df ZHVtcChtLT5wcml2YXRlLCAmcCwgdHJ1ZSk7Cj4gK30KPiArREVGSU5FX0dUX0RFQlVHRlNfQVRU UklCVVRFKGd1Y19sb2FkX2Vycl9sb2dfZHVtcCk7Cj4gKwo+ICtzdGF0aWMgaW50IGd1Y19sb2df bGV2ZWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3Vj X2xvZyAqbG9nID0gZGF0YTsKPiArCj4gKwlpZiAoIWludGVsX2d1Y19pc191c2VkKGxvZ190b19n dWMobG9nKSkpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJKnZhbCA9IGludGVsX2d1Y19s b2dfZ2V0X2xldmVsKGxvZyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgZ3VjX2xvZ19sZXZlbF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKPiArewo+ICsJc3RydWN0 IGludGVsX2d1Y19sb2cgKmxvZyA9IGRhdGE7Cj4gKwo+ICsJaWYgKCFpbnRlbF9ndWNfaXNfdXNl ZChsb2dfdG9fZ3VjKGxvZykpKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCXJldHVybiBp bnRlbF9ndWNfbG9nX3NldF9sZXZlbChsb2csIHZhbCk7Cj4gK30KPiArCj4gK0RFRklORV9TSU1Q TEVfQVRUUklCVVRFKGd1Y19sb2dfbGV2ZWxfZm9wcywKPiArCQkJZ3VjX2xvZ19sZXZlbF9nZXQs IGd1Y19sb2dfbGV2ZWxfc2V0LAo+ICsJCQkiJWxsZFxuIik7Cj4gKwo+ICtzdGF0aWMgaW50IGd1 Y19sb2dfcmVsYXlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkK PiArewo+ICsJc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyA9IGlub2RlLT5pX3ByaXZhdGU7Cj4g Kwo+ICsJaWYgKCFpbnRlbF9ndWNfaXNfcmVhZHkobG9nX3RvX2d1Yyhsb2cpKSkKPiArCQlyZXR1 cm4gLUVOT0RFVjsKPiArCj4gKwlmaWxlLT5wcml2YXRlX2RhdGEgPSBsb2c7Cj4gKwo+ICsJcmV0 dXJuIGludGVsX2d1Y19sb2dfcmVsYXlfb3Blbihsb2cpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3Np emVfdAo+ICtndWNfbG9nX3JlbGF5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAo+ICsJCSAgICBj b25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKPiArCQkgICAgc2l6ZV90IGNudCwKPiArCQkgICAgbG9m Zl90ICpwcG9zKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gZmlscC0+cHJp dmF0ZV9kYXRhOwo+ICsJaW50IHZhbDsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0ga3N0cnRv aW50X2Zyb21fdXNlcih1YnVmLCBjbnQsIDAsICZ2YWwpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJ cmV0dXJuIHJldDsKPiArCj4gKwkvKgo+ICsJICogRW5hYmxlIGFuZCBzdGFydCB0aGUgZ3VjIGxv ZyByZWxheSBvbiB2YWx1ZSBvZiAxLgo+ICsJICogRmx1c2ggbG9nIHJlbGF5IGZvciBhbnkgb3Ro ZXIgdmFsdWUuCj4gKwkgKi8KPiArCWlmICh2YWwgPT0gMSkKPiArCQlyZXQgPSBpbnRlbF9ndWNf bG9nX3JlbGF5X3N0YXJ0KGxvZyk7Cj4gKwllbHNlCj4gKwkJaW50ZWxfZ3VjX2xvZ19yZWxheV9m bHVzaChsb2cpOwo+ICsKPiArCXJldHVybiByZXQgPzogY250Owo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IGd1Y19sb2dfcmVsYXlfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSkKPiArewo+ICsJc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyA9IGlub2RlLT5pX3By aXZhdGU7Cj4gKwo+ICsJaW50ZWxfZ3VjX2xvZ19yZWxheV9jbG9zZShsb2cpOwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGd1Y19s b2dfcmVsYXlfZm9wcyA9IHsKPiArCS5vd25lciA9IFRISVNfTU9EVUxFLAo+ICsJLm9wZW4gPSBn dWNfbG9nX3JlbGF5X29wZW4sCj4gKwkud3JpdGUgPSBndWNfbG9nX3JlbGF5X3dyaXRlLAo+ICsJ LnJlbGVhc2UgPSBndWNfbG9nX3JlbGF5X3JlbGVhc2UsCj4gK307Cj4gKwo+ICt2b2lkIGludGVs X2d1Y19sb2dfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nLAo+ICsJ CQkJICAgIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4gK3sKPiArCXN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGVidWdmc19ndF9maWxlIGZpbGVzW10gPSB7Cj4gKwkJeyAiZ3VjX2xvZ19kdW1wIiwgJmd1Y19s b2dfZHVtcF9mb3BzLCBOVUxMIH0sCj4gKwkJeyAiZ3VjX2xvYWRfZXJyX2xvZ19kdW1wIiwgJmd1 Y19sb2FkX2Vycl9sb2dfZHVtcF9mb3BzLCBOVUxMIH0sCj4gKwkJeyAiZ3VjX2xvZ19sZXZlbCIs ICZndWNfbG9nX2xldmVsX2ZvcHMsIE5VTEwgfSwKPiArCQl7ICJndWNfbG9nX3JlbGF5IiwgJmd1 Y19sb2dfcmVsYXlfZm9wcywgTlVMTCB9LAo+ICsJfTsKPiArCj4gKwlpZiAoIWludGVsX2d1Y19p c19zdXBwb3J0ZWQobG9nX3RvX2d1Yyhsb2cpKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJaW50ZWxf Z3RfZGVidWdmc19yZWdpc3Rlcl9maWxlcyhyb290LCBmaWxlcywgQVJSQVlfU0laRShmaWxlcyks IGxvZyk7Cj4gK30KPiArCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2RlYnVnZnNfZ3VjX2xvZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19n dWNfbG9nLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZTg5 MDBlM2Q3NGVhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2RlYnVnZnNfZ3VjX2xvZy5oCj4gQEAgLTAsMCArMSwxNSBAQAo+ICsvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogTUlUICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVs IENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBERUJVR0ZTX0dVQ19MT0dfSAo+ICsj ZGVmaW5lIERFQlVHRlNfR1VDX0xPR19ICj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZ3VjX2xvZzsKPiAr c3RydWN0IGRlbnRyeTsKPiArCj4gK3ZvaWQgaW50ZWxfZ3VjX2xvZ19kZWJ1Z2ZzX3JlZ2lzdGVy KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2csCj4gKwkJCQkgICAgc3RydWN0IGRlbnRyeSAqcm9v dCk7Cj4gKwo+ICsjZW5kaWYgLyogREVCVUdGU19HVUNfTE9HX0ggKi8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uNDk3ZTRjNjkzZjgzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmMKPiBAQCAtMCwwICsxLDM2IEBACj4g Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArCj4gKy8qCj4gKyAqIENvcHlyaWdo dCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGRybS9k cm1fcHJpbnQuaD4KPiArCj4gKyNpbmNsdWRlICJndC9kZWJ1Z2ZzX2d0LmgiCj4gKyNpbmNsdWRl ICJpbnRlbF9odWMuaCIKPiArCj4gK3N0YXRpYyBpbnQgaHVjX2luZm9fc2hvdyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9IG0t PnByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVy KG0pOwo+ICsKPiArCWlmICghaW50ZWxfaHVjX2lzX3N1cHBvcnRlZChodWMpKQo+ICsJCXJldHVy biAtRU5PREVWOwo+ICsKPiArCWludGVsX2h1Y19sb2FkX3N0YXR1cyhodWMsICZwKTsKPiArCj4g KwlyZXR1cm4gMDsKPiArfQo+ICtERUZJTkVfR1RfREVCVUdGU19BVFRSSUJVVEUoaHVjX2luZm8p Owo+ICsKPiArdm9pZCBpbnRlbF9odWNfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfaHVj ICpodWMsIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4gK3sKPiArCXN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGVidWdmc19ndF9maWxlIGZpbGVzW10gPSB7Cj4gKwkJeyAiaHVjX2luZm8iLCAmaHVjX2luZm9f Zm9wcywgTlVMTCB9LAo+ICsJfTsKPiArCj4gKwlpZiAoIWludGVsX2h1Y19pc19zdXBwb3J0ZWQo aHVjKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJaW50ZWxfZ3RfZGVidWdmc19yZWdpc3Rlcl9maWxl cyhyb290LCBmaWxlcywgQVJSQVlfU0laRShmaWxlcyksIGh1Yyk7Cj4gK30KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uYmU3OWU5OTJmOTc2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmgKPiBAQCAtMCwwICsxLDE0IEBA Cj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KPiArLyoKPiArICogQ29weXJp Z2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaWZuZGVmIERFQlVH RlNfSFVDX0gKPiArI2RlZmluZSBERUJVR0ZTX0hVQ19ICj4gKwo+ICtzdHJ1Y3QgaW50ZWxfaHVj Owo+ICtzdHJ1Y3QgZGVudHJ5Owo+ICsKPiArdm9pZCBpbnRlbF9odWNfZGVidWdmc19yZWdpc3Rl cihzdHJ1Y3QgaW50ZWxfaHVjICpodWMsIHN0cnVjdCBkZW50cnkgKnJvb3QpOwo+ICsKPiArI2Vu ZGlmIC8qIERFQlVHRlNfSFVDX0ggKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvZGVidWdmc191Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdm c191Yy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmZkMTgz NDdmOGQxYwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9kZWJ1Z2ZzX3VjLmMKPiBAQCAtMCwwICsxLDMxIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBNSVQKPiArCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBv cmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KPiArCj4gKyNp bmNsdWRlICJkZWJ1Z2ZzX2d1Yy5oIgo+ICsjaW5jbHVkZSAiZGVidWdmc19odWMuaCIKPiArI2lu Y2x1ZGUgImRlYnVnZnNfdWMuaCIKPiArI2luY2x1ZGUgImludGVsX3VjLmgiCj4gKwo+ICt2b2lk IGludGVsX3VjX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX3VjICp1Yywgc3RydWN0IGRl bnRyeSAqZ3Rfcm9vdCkKPiArewo+ICsJc3RydWN0IGRlbnRyeSAqcm9vdDsKPiArCj4gKwlpZiAo IWd0X3Jvb3QpCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIEd1QyBhbmQgSHVDIGdvIGFsd2F5cyBp biBwYWlyLCBubyBuZWVkIHRvIGNoZWNrIGJvdGggKi8KPiArCWlmICghaW50ZWxfdWNfc3VwcG9y dHNfZ3VjKHVjKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2Rp cigidWMiLCBndF9yb290KTsKPiArCWlmIChJU19FUlIocm9vdCkpCj4gKwkJcmV0dXJuOwo+ICsK PiArCWludGVsX2d1Y19kZWJ1Z2ZzX3JlZ2lzdGVyKCZ1Yy0+Z3VjLCByb290KTsKPiArCWludGVs X2h1Y19kZWJ1Z2ZzX3JlZ2lzdGVyKCZ1Yy0+aHVjLCByb290KTsKPiArfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX3VjLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX3VjLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uMDEwY2UyNTBkMjIzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuaAo+IEBAIC0wLDAgKzEsMTQgQEAKPiAr LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQg wqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgREVCVUdGU19V Q19ICj4gKyNkZWZpbmUgREVCVUdGU19VQ19ICj4gKwo+ICtzdHJ1Y3QgaW50ZWxfdWM7Cj4gK3N0 cnVjdCBkZW50cnk7Cj4gKwo+ICt2b2lkIGludGVsX3VjX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0 IGludGVsX3VjICp1Yywgc3RydWN0IGRlbnRyeSAqZ3Rfcm9vdCk7Cj4gKwo+ICsjZW5kaWYgLyog REVCVUdGU19VQ19IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPiBp bmRleCBhNWQ3YTg2YmU0Y2YuLmU4NGFiNjdiMzE3ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Yy5oCj4gQEAgLTc0LDYgKzc0LDExIEBAIHN0cnVjdCBpbnRlbF9ndWMg ewo+ICAgCXN0cnVjdCBtdXRleCBzZW5kX211dGV4Owo+ICAgfTsKPiAgIAo+ICtzdGF0aWMgaW5s aW5lIHN0cnVjdCBpbnRlbF9ndWMgKmxvZ190b19ndWMoc3RydWN0IGludGVsX2d1Y19sb2cgKmxv ZykKPiArewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihsb2csIHN0cnVjdCBpbnRlbF9ndWMsIGxv Zyk7Cj4gK30KPiArCj4gICBzdGF0aWMKPiAgIGlubGluZSBpbnQgaW50ZWxfZ3VjX3NlbmQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbikKPiAgIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jCj4gaW5kZXggOGNkZDZk YzNkZjU4Li41YjExYTZkOGUyN2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX2xvZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjX2xvZy5jCj4gQEAgLTU1LDExICs1NSw2IEBAIHN0YXRpYyBpbnQgZ3VjX2FjdGlv bl9jb250cm9sX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGJvb2wgZW5hYmxlLAo+ICAgCXJl dHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShhY3Rpb24pKTsKPiAg IH0KPiAgIAo+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9ndWMgKmxvZ190b19ndWMoc3Ry dWN0IGludGVsX2d1Y19sb2cgKmxvZykKPiAtewo+IC0JcmV0dXJuIGNvbnRhaW5lcl9vZihsb2cs IHN0cnVjdCBpbnRlbF9ndWMsIGxvZyk7Cj4gLX0KPiAtCj4gICBzdGF0aWMgdm9pZCBndWNfbG9n X2VuYWJsZV9mbHVzaF9ldmVudHMoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKPiAgIHsKPiAg IAlpbnRlbF9ndWNfZW5hYmxlX21zZyhsb2dfdG9fZ3VjKGxvZyksCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCA1NjUwNGJlMmE2ZWMuLmU2MGE1NzUwZWE0NCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTM3LDcgKzM3LDYgQEAKPiAgICNp bmNsdWRlICJndC9pbnRlbF9yZXNldC5oIgo+ICAgI2luY2x1ZGUgImd0L2ludGVsX3JjNi5oIgo+ ICAgI2luY2x1ZGUgImd0L2ludGVsX3Jwcy5oIgo+IC0jaW5jbHVkZSAiZ3QvdWMvaW50ZWxfZ3Vj X3N1Ym1pc3Npb24uaCIKPiAgIAo+ICAgI2luY2x1ZGUgImk5MTVfZGVidWdmcy5oIgo+ICAgI2lu Y2x1ZGUgImk5MTVfZGVidWdmc19wYXJhbXMuaCIKPiBAQCAtMTI1MSwxMzYgKzEyNTAsNiBAQCBz dGF0aWMgaW50IGk5MTVfbGxjKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIAly ZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGk5MTVfaHVjX2luZm8oc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfaHVj ICpodWMgPSAmZGV2X3ByaXYtPmd0LnVjLmh1YzsKPiAtCXN0cnVjdCBkcm1fcHJpbnRlciBwID0g ZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQo+IC0JaWYgKCFpbnRlbF9odWNfaXNfc3VwcG9y dGVkKGh1YykpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JaW50ZWxfaHVjX2xvYWRfc3Rh dHVzKGh1YywgJnApOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGk5 MTVfZ3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+IC17Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKPiAtCXN0 cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQo+IC0JaWYg KCFpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKGd1YykpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+ IC0JaW50ZWxfZ3VjX2xvYWRfc3RhdHVzKGd1YywgJnApOwo+IC0JZHJtX3B1dHMoJnAsICJcbiIp Owo+IC0JaW50ZWxfZ3VjX2xvZ19pbmZvKCZndWMtPmxvZywgJnApOwo+IC0KPiAtCS8qIEFkZCBt b3JlIGFzIHJlcXVpcmVkIC4uLiAqLwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0 aWMgaW50IGk5MTVfZ3VjX2xvZ19kdW1wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiAtewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG5vZGUpOwo+IC0J c3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7Cj4gLQlib29sIGR1 bXBfbG9hZF9lcnIgPSAhIW5vZGUtPmluZm9fZW50LT5kYXRhOwo+IC0Jc3RydWN0IGRybV9wcmlu dGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiAtCj4gLQlpZiAoIWludGVsX2d1Y19p c19zdXBwb3J0ZWQoZ3VjKSkKPiAtCQlyZXR1cm4gLUVOT0RFVjsKPiAtCj4gLQlyZXR1cm4gaW50 ZWxfZ3VjX2xvZ19kdW1wKCZndWMtPmxvZywgJnAsIGR1bXBfbG9hZF9lcnIpOwo+IC19Cj4gLQo+ IC1zdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19sZXZlbF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwp Cj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gLQlz dHJ1Y3QgaW50ZWxfdWMgKnVjID0gJmRldl9wcml2LT5ndC51YzsKPiAtCj4gLQlpZiAoIWludGVs X3VjX3VzZXNfZ3VjKHVjKSkKPiAtCQlyZXR1cm4gLUVOT0RFVjsKPiAtCj4gLQkqdmFsID0gaW50 ZWxfZ3VjX2xvZ19nZXRfbGV2ZWwoJnVjLT5ndWMubG9nKTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAt fQo+IC0KPiAtc3RhdGljIGludCBpOTE1X2d1Y19sb2dfbGV2ZWxfc2V0KHZvaWQgKmRhdGEsIHU2 NCB2YWwpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7 Cj4gLQlzdHJ1Y3QgaW50ZWxfdWMgKnVjID0gJmRldl9wcml2LT5ndC51YzsKPiAtCj4gLQlpZiAo IWludGVsX3VjX3VzZXNfZ3VjKHVjKSkKPiAtCQlyZXR1cm4gLUVOT0RFVjsKPiAtCj4gLQlyZXR1 cm4gaW50ZWxfZ3VjX2xvZ19zZXRfbGV2ZWwoJnVjLT5ndWMubG9nLCB2YWwpOwo+IC19Cj4gLQo+ IC1ERUZJTkVfU0lNUExFX0FUVFJJQlVURShpOTE1X2d1Y19sb2dfbGV2ZWxfZm9wcywKPiAtCQkJ aTkxNV9ndWNfbG9nX2xldmVsX2dldCwgaTkxNV9ndWNfbG9nX2xldmVsX3NldCwKPiAtCQkJIiVs bGRcbiIpOwo+IC0KPiAtc3RhdGljIGludCBpOTE1X2d1Y19sb2dfcmVsYXlfb3BlbihzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBpbm9kZS0+aV9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2d1YyAq Z3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSAm Z3VjLT5sb2c7Cj4gLQo+IC0JaWYgKCFpbnRlbF9ndWNfaXNfcmVhZHkoZ3VjKSkKPiAtCQlyZXR1 cm4gLUVOT0RFVjsKPiAtCj4gLQlmaWxlLT5wcml2YXRlX2RhdGEgPSBsb2c7Cj4gLQo+IC0JcmV0 dXJuIGludGVsX2d1Y19sb2dfcmVsYXlfb3Blbihsb2cpOwo+IC19Cj4gLQo+IC1zdGF0aWMgc3Np emVfdAo+IC1pOTE1X2d1Y19sb2dfcmVsYXlfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsCj4gLQkJ CSBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKPiAtCQkJIHNpemVfdCBjbnQsCj4gLQkJCSBsb2Zm X3QgKnBwb3MpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSBmaWxwLT5wcml2 YXRlX2RhdGE7Cj4gLQlpbnQgdmFsOwo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQgPSBrc3RydG9p bnRfZnJvbV91c2VyKHVidWYsIGNudCwgMCwgJnZhbCk7Cj4gLQlpZiAocmV0IDwgMCkKPiAtCQly ZXR1cm4gcmV0Owo+IC0KPiAtCS8qCj4gLQkgKiBFbmFibGUgYW5kIHN0YXJ0IHRoZSBndWMgbG9n IHJlbGF5IG9uIHZhbHVlIG9mIDEuCj4gLQkgKiBGbHVzaCBsb2cgcmVsYXkgZm9yIGFueSBvdGhl ciB2YWx1ZS4KPiAtCSAqLwo+IC0JaWYgKHZhbCA9PSAxKQo+IC0JCXJldCA9IGludGVsX2d1Y19s b2dfcmVsYXlfc3RhcnQobG9nKTsKPiAtCWVsc2UKPiAtCQlpbnRlbF9ndWNfbG9nX3JlbGF5X2Zs dXNoKGxvZyk7Cj4gLQo+IC0JcmV0dXJuIHJldCA/OiBjbnQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyBp bnQgaTkxNV9ndWNfbG9nX3JlbGF5X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaW5v ZGUtPmlfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5n dWM7Cj4gLQo+IC0JaW50ZWxfZ3VjX2xvZ19yZWxheV9jbG9zZSgmZ3VjLT5sb2cpOwo+IC0JcmV0 dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5 MTVfZ3VjX2xvZ19yZWxheV9mb3BzID0gewo+IC0JLm93bmVyID0gVEhJU19NT0RVTEUsCj4gLQku b3BlbiA9IGk5MTVfZ3VjX2xvZ19yZWxheV9vcGVuLAo+IC0JLndyaXRlID0gaTkxNV9ndWNfbG9n X3JlbGF5X3dyaXRlLAo+IC0JLnJlbGVhc2UgPSBpOTE1X2d1Y19sb2dfcmVsYXlfcmVsZWFzZSwK PiAtfTsKPiAtCj4gICBzdGF0aWMgaW50IGk5MTVfcnVudGltZV9wbV9zdGF0dXMoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwo+IEBAIC0xOTg5LDEwICsx ODU4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19s aXN0W10gPSB7Cj4gICAJeyJpOTE1X2dlbV9vYmplY3RzIiwgaTkxNV9nZW1fb2JqZWN0X2luZm8s IDB9LAo+ICAgCXsiaTkxNV9nZW1fZmVuY2VfcmVncyIsIGk5MTVfZ2VtX2ZlbmNlX3JlZ3NfaW5m bywgMH0sCj4gICAJeyJpOTE1X2dlbV9pbnRlcnJ1cHQiLCBpOTE1X2ludGVycnVwdF9pbmZvLCAw fSwKPiAtCXsiaTkxNV9ndWNfaW5mbyIsIGk5MTVfZ3VjX2luZm8sIDB9LAo+IC0JeyJpOTE1X2d1 Y19sb2dfZHVtcCIsIGk5MTVfZ3VjX2xvZ19kdW1wLCAwfSwKPiAtCXsiaTkxNV9ndWNfbG9hZF9l cnJfbG9nX2R1bXAiLCBpOTE1X2d1Y19sb2dfZHVtcCwgMCwgKHZvaWQgKikxfSwKPiAtCXsiaTkx NV9odWNfaW5mbyIsIGk5MTVfaHVjX2luZm8sIDB9LAo+ICAgCXsiaTkxNV9mcmVxdWVuY3lfaW5m byIsIGk5MTVfZnJlcXVlbmN5X2luZm8sIDB9LAo+ICAgCXsiaTkxNV9yaW5nX2ZyZXFfdGFibGUi LCBpOTE1X3JpbmdfZnJlcV90YWJsZSwgMH0sCj4gICAJeyJpOTE1X2NvbnRleHRfc3RhdHVzIiwg aTkxNV9jb250ZXh0X3N0YXR1cywgMH0sCj4gQEAgLTIwMjAsOCArMTg4NSw2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9kZWJ1Z2ZzX2ZpbGVzIHsKPiAgIAl7Imk5MTVfZXJyb3Jfc3RhdGUi LCAmaTkxNV9lcnJvcl9zdGF0ZV9mb3BzfSwKPiAgIAl7Imk5MTVfZ3B1X2luZm8iLCAmaTkxNV9n cHVfaW5mb19mb3BzfSwKPiAgICNlbmRpZgo+IC0JeyJpOTE1X2d1Y19sb2dfbGV2ZWwiLCAmaTkx NV9ndWNfbG9nX2xldmVsX2ZvcHN9LAo+IC0JeyJpOTE1X2d1Y19sb2dfcmVsYXkiLCAmaTkxNV9n dWNfbG9nX3JlbGF5X2ZvcHN9LAo+ICAgfTsKPiAgIAo+ICAgaW50IGk5MTVfZGVidWdmc19yZWdp c3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=