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=-4.0 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 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 EA127C3F2CF for ; Fri, 28 Feb 2020 09:24:34 +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 B655124695 for ; Fri, 28 Feb 2020 09:24:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B655124695 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 62ECB6EE96; Fri, 28 Feb 2020 09:24:34 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2FE16EE96 for ; Fri, 28 Feb 2020 09:24:32 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Feb 2020 01:24:32 -0800 X-IronPort-AV: E=Sophos;i="5.70,495,1574150400"; d="scan'208";a="227486754" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Feb 2020 01:24:29 -0800 From: Jani Nikula To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org In-Reply-To: <20200228022843.1936-6-daniele.ceraolospurio@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20200228022843.1936-1-daniele.ceraolospurio@intel.com> <20200228022843.1936-6-daniele.ceraolospurio@intel.com> Date: Fri, 28 Feb 2020 11:24:27 +0200 Message-ID: <874kvbqd2s.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCAyNyBGZWIgMjAyMCwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJh b2xvc3B1cmlvQGludGVsLmNvbT4gd3JvdGU6Cj4gdUMgaXMgYSBjb21wb25lbnQgb2YgdGhlIEdU LCBzbyBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIHVDIGRlYnVnZnMgZmlsZXMKPiB0byBiZSBpbiB0 aGUgR1QgZm9sZGVyLiBBIHN1YmZvbGRlciBoYXMgYmVlbiB1c2VkIHRvIGtlZXAgdGhlIHNhbWUK PiBzdHJ1Y3R1cmUgd2UgaGF2ZSBmb3IgdGhlIGNvZGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5p ZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IENj OiBBbmRpIFNoeXRpIDxhbmRpLnNoeXRpQGludGVsLmNvbT4KPiBDYzogTWljaGFsIFdhamRlY3pr byA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+Cj4gQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4u Qy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gQ2M6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RA aW50ZWwuY29tPgo+IENjOiBUb255IFllIDx0b255LnllQGludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgIDcgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jICAgICAgICAgfCAgIDMgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Yy5jICAgICB8ICA0MiArKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuaCAgICAgfCAgMTQgKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWNfbG9nLmMgfCAxMjMgKysrKysr KysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWNfbG9n LmggfCAgMTQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMuYyAg ICAgfCAgMzYgKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMu aCAgICAgfCAgMTQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc191Yy5j ICAgICAgfCAgMzEgKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc191 Yy5oICAgICAgfCAgNDMgKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Yy5oICAgICAgIHwgICA1ICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf Z3VjX2xvZy5jICAgfCAgIDUgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyAgICAgICAgICB8IDEzNyAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEzIGZpbGVzIGNoYW5nZWQs IDMzMSBpbnNlcnRpb25zKCspLCAxNDMgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Yy5jCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Yy5oCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Y19sb2cu Ywo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdm c19ndWNfbG9nLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2RlYnVnZnNfaHVjLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2RlYnVnZnNfaHVjLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc191Yy5oCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ IGluZGV4IGZlNmQ1ODA4NjlkNy4uYzVjZDliMTM5MGU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKPiBAQCAtMTY0LDcgKzE2NCwxMiBAQCBpOTE1LXkgKz0gXAo+ICAJICBpbnRlbF93b3BjbS5v Cj4gIAo+ICAjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykgc3VwcG9ydAo+ IC1pOTE1LXkgKz0gZ3QvdWMvaW50ZWxfdWMubyBcCj4gK2k5MTUteSArPSBcCj4gKwkgIGd0L3Vj L2RlYnVnZnNfZ3VjLm8gXAo+ICsJICBndC91Yy9kZWJ1Z2ZzX2d1Y19sb2cubyBcCj4gKwkgIGd0 L3VjL2RlYnVnZnNfaHVjLm8gXAo+ICsJICBndC91Yy9kZWJ1Z2ZzX3VjLm8gXAo+ICsJICBndC91 Yy9pbnRlbF91Yy5vIFwKPiAgCSAgZ3QvdWMvaW50ZWxfdWNfZncubyBcCj4gIAkgIGd0L3VjL2lu dGVsX2d1Yy5vIFwKPiAgCSAgZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5vIFwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvZGVidWdmc19ndC5jCj4gaW5kZXggNzUyNTVhYWFjYWVkLi5lYjQwM2NjM2M0OGQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jCj4gQEAgLTksNiArOSw3IEBACj4g ICNpbmNsdWRlICJkZWJ1Z2ZzX2VuZ2luZXMuaCIKPiAgI2luY2x1ZGUgImRlYnVnZnNfZ3QuaCIK PiAgI2luY2x1ZGUgImRlYnVnZnNfZ3RfcG0uaCIKPiArI2luY2x1ZGUgInVjL2RlYnVnZnNfdWMu aCIKPiAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gIAo+ICB2b2lkIGRlYnVnZnNfZ3RfcmVnaXN0 ZXIoc3RydWN0IGludGVsX2d0ICpndCkKPiBAQCAtMjQsNiArMjUsOCBAQCB2b2lkIGRlYnVnZnNf Z3RfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d0ICpndCkKPiAgCj4gIAlkZWJ1Z2ZzX2VuZ2luZXNf cmVnaXN0ZXIoZ3QsIHJvb3QpOwo+ICAJZGVidWdmc19ndF9wbV9yZWdpc3RlcihndCwgcm9vdCk7 Cj4gKwo+ICsJZGVidWdmc191Y19yZWdpc3RlcigmZ3QtPnVjLCByb290KTsKCgpJJ3ZlIGNvbXBs YWluZWQgYWJvdXQgdGhlIHR3byBhYm92ZSwgYW5kIEknbGwgYWxzbyBjb21wbGFpbiBhYm91dCB0 aGlzCm9uZTogcGxlYXNlIGRvbid0IHVzZSBkZWJ1Z2ZzXyBwcmVmaXggZm9yIG5vbi1zdGF0aWMg ZnVuY3Rpb25zLiBJdCdzIGZvcgpmcy9kZWJ1Z2ZzLyogbm90IHVzLgoKQlIsCkphbmkuCgoKCj4g IH0KPiAgCj4gIHZvaWQgZGVidWdmc19ndF9yZWdpc3Rlcl9maWxlcyhzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuYwo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4xYWRhYzQyZTE1OTYKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuYwo+ IEBAIC0wLDAgKzEsNDIgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsK PiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4g Kwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgo+ICsKPiArI2luY2x1ZGUgImRlYnVnZnNf Z3VjX2xvZy5oIgo+ICsjaW5jbHVkZSAiZGVidWdmc191Yy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxf Z3VjLmgiCj4gKwo+ICtzdGF0aWMgaW50IGd1Y19pbmZvX3Nob3coc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBtLT5wcml2YXRl Owo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiAr Cj4gKwlpZiAoIWludGVsX2d1Y19pc19zdXBwb3J0ZWQoZ3VjKSkKPiArCQlyZXR1cm4gLUVOT0RF VjsKPiArCj4gKwlpbnRlbF9ndWNfbG9hZF9zdGF0dXMoZ3VjLCAmcCk7Cj4gKwlkcm1fcHV0cygm cCwgIlxuIik7Cj4gKwlpbnRlbF9ndWNfbG9nX2luZm8oJmd1Yy0+bG9nLCAmcCk7Cj4gKwo+ICsJ LyogQWRkIG1vcmUgYXMgcmVxdWlyZWQgLi4uICovCj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr REVGSU5FX1VDX0RFQlVHRlNfQVRUUklCVVRFKGd1Y19pbmZvKTsKPiArCj4gK3ZvaWQgZGVidWdm c19ndWNfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBzdHJ1Y3QgZGVudHJ5ICpyb290 KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfdWNfZmlsZSBmaWxlc1tdID0g ewo+ICsJCXsgImd1Y19pbmZvIiwgJmd1Y19pbmZvX2ZvcHMgfSwKPiArCX07Cj4gKwo+ICsJaWYg KCFpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKGd1YykpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWRlYnVn ZnNfdWNfcmVnaXN0ZXJfZmlsZXMoZmlsZXMsIHJvb3QsIGd1Yyk7Cj4gKwlkZWJ1Z2ZzX2d1Y19s b2dfcmVnaXN0ZXIoJmd1Yy0+bG9nLCByb290KTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvZGVidWdmc19ndWMuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MDAwMDAwLi5kOTE4OGRlZjdkMTIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWMuaAo+IEBAIC0wLDAgKzEsMTQgQEAKPiArLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAy MCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgREVCVUdGU19HVUNfSAo+ ICsjZGVmaW5lIERFQlVHRlNfR1VDX0gKPiArCj4gK3N0cnVjdCBpbnRlbF9ndWM7Cj4gK3N0cnVj dCBkZW50cnk7Cj4gKwo+ICt2b2lkIGRlYnVnZnNfZ3VjX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9n dWMgKmd1Yywgc3RydWN0IGRlbnRyeSAqcm9vdCk7Cj4gKwo+ICsjZW5kaWYgLyogREVCVUdGU19H VUNfSCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2Zz X2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfZ3VjX2xvZy5j Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmE1NjBhMzkyYWEw OQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1 Z2ZzX2d1Y19sb2cuYwo+IEBAIC0wLDAgKzEsMTIzIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBNSVQKPiArCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBv cmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Cj4gKyNpbmNsdWRlIDxk cm0vZHJtX3ByaW50Lmg+Cj4gKwo+ICsjaW5jbHVkZSAiZGVidWdmc191Yy5oIgo+ICsjaW5jbHVk ZSAiaW50ZWxfZ3VjLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9ndWNfbG9nLmgiCj4gKwo+ICtzdGF0 aWMgaW50IGd1Y19sb2dfZHVtcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiArewo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsK PiArCj4gKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19kdW1wKG0tPnByaXZhdGUsICZwLCBmYWxzZSk7 Cj4gK30KPiArREVGSU5FX1VDX0RFQlVHRlNfQVRUUklCVVRFKGd1Y19sb2dfZHVtcCk7Cj4gKwo+ ICtzdGF0aWMgaW50IGd1Y19sb2FkX2Vycl9sb2dfZHVtcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2Zp bGVfcHJpbnRlcihtKTsKPiArCj4gKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19kdW1wKG0tPnByaXZh dGUsICZwLCB0cnVlKTsKPiArfQo+ICtERUZJTkVfVUNfREVCVUdGU19BVFRSSUJVVEUoZ3VjX2xv YWRfZXJyX2xvZ19kdW1wKTsKPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2xvZ19sZXZlbF9nZXQodm9p ZCAqZGF0YSwgdTY0ICp2YWwpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSBk YXRhOwo+ICsKPiArCWlmICghaW50ZWxfZ3VjX2lzX3VzZWQobG9nX3RvX2d1Yyhsb2cpKSkKPiAr CQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwkqdmFsID0gaW50ZWxfZ3VjX2xvZ19nZXRfbGV2ZWwo bG9nKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBndWNfbG9nX2xl dmVsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjX2xv ZyAqbG9nID0gZGF0YTsKPiArCj4gKwlpZiAoIWludGVsX2d1Y19pc191c2VkKGxvZ190b19ndWMo bG9nKSkpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2d1Y19sb2df c2V0X2xldmVsKGxvZywgdmFsKTsKPiArfQo+ICsKPiArREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUo Z3VjX2xvZ19sZXZlbF9mb3BzLAo+ICsJCQlndWNfbG9nX2xldmVsX2dldCwgZ3VjX2xvZ19sZXZl bF9zZXQsCj4gKwkJCSIlbGxkXG4iKTsKPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2xvZ19yZWxheV9v cGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gaW5vZGUtPmlfcHJpdmF0ZTsKPiArCj4gKwlpZiAoIWlu dGVsX2d1Y19pc19yZWFkeShsb2dfdG9fZ3VjKGxvZykpKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ ICsKPiArCWZpbGUtPnByaXZhdGVfZGF0YSA9IGxvZzsKPiArCj4gKwlyZXR1cm4gaW50ZWxfZ3Vj X2xvZ19yZWxheV9vcGVuKGxvZyk7Cj4gK30KPiArCj4gK3N0YXRpYyBzc2l6ZV90Cj4gK2d1Y19s b2dfcmVsYXlfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsCj4gKwkJICAgIGNvbnN0IGNoYXIgX191 c2VyICp1YnVmLAo+ICsJCSAgICBzaXplX3QgY250LAo+ICsJCSAgICBsb2ZmX3QgKnBwb3MpCj4g K3sKPiArCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSBmaWxwLT5wcml2YXRlX2RhdGE7Cj4g KwlpbnQgdmFsOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBrc3RydG9pbnRfZnJvbV91c2Vy KHVidWYsIGNudCwgMCwgJnZhbCk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCS8qCj4gKwkgKiBFbmFibGUgYW5kIHN0YXJ0IHRoZSBndWMgbG9nIHJlbGF5IG9uIHZh bHVlIG9mIDEuCj4gKwkgKiBGbHVzaCBsb2cgcmVsYXkgZm9yIGFueSBvdGhlciB2YWx1ZS4KPiAr CSAqLwo+ICsJaWYgKHZhbCA9PSAxKQo+ICsJCXJldCA9IGludGVsX2d1Y19sb2dfcmVsYXlfc3Rh cnQobG9nKTsKPiArCWVsc2UKPiArCQlpbnRlbF9ndWNfbG9nX3JlbGF5X2ZsdXNoKGxvZyk7Cj4g Kwo+ICsJcmV0dXJuIHJldCA/OiBjbnQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2xvZ19y ZWxheV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICt7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gaW5vZGUtPmlfcHJpdmF0ZTsKPiArCj4g KwlpbnRlbF9ndWNfbG9nX3JlbGF5X2Nsb3NlKGxvZyk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZ3VjX2xvZ19yZWxheV9mb3Bz ID0gewo+ICsJLm93bmVyID0gVEhJU19NT0RVTEUsCj4gKwkub3BlbiA9IGd1Y19sb2dfcmVsYXlf b3BlbiwKPiArCS53cml0ZSA9IGd1Y19sb2dfcmVsYXlfd3JpdGUsCj4gKwkucmVsZWFzZSA9IGd1 Y19sb2dfcmVsYXlfcmVsZWFzZSwKPiArfTsKPiArCj4gK3ZvaWQgZGVidWdmc19ndWNfbG9nX3Jl Z2lzdGVyKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2csIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4g K3sKPiArCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVidWdmc191Y19maWxlIGZpbGVzW10gPSB7Cj4g KwkJeyAiZ3VjX2xvZ19kdW1wIiwgJmd1Y19sb2dfZHVtcF9mb3BzIH0sCj4gKwkJeyAiZ3VjX2xv YWRfZXJyX2xvZ19kdW1wIiwgJmd1Y19sb2FkX2Vycl9sb2dfZHVtcF9mb3BzIH0sCj4gKwkJeyAi Z3VjX2xvZ19sZXZlbCIsICZndWNfbG9nX2xldmVsX2ZvcHMgfSwKPiArCQl7ICJndWNfbG9nX3Jl bGF5IiwgJmd1Y19sb2dfcmVsYXlfZm9wcyB9LAo+ICsJfTsKPiArCj4gKwlpZiAoIWludGVsX2d1 Y19pc19zdXBwb3J0ZWQobG9nX3RvX2d1Yyhsb2cpKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGVi dWdmc191Y19yZWdpc3Rlcl9maWxlcyhmaWxlcywgcm9vdCwgbG9nKTsKPiArfQo+ICsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWNfbG9nLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX2d1Y19sb2cuaAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iYzNjZTc4NDY2N2UKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19ndWNfbG9nLmgK PiBAQCAtMCwwICsxLDE0IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8K PiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4g Kwo+ICsjaWZuZGVmIERFQlVHRlNfR1VDX0xPR19ICj4gKyNkZWZpbmUgREVCVUdGU19HVUNfTE9H X0gKPiArCj4gK3N0cnVjdCBpbnRlbF9ndWNfbG9nOwo+ICtzdHJ1Y3QgZGVudHJ5Owo+ICsKPiAr dm9pZCBkZWJ1Z2ZzX2d1Y19sb2dfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZywg c3RydWN0IGRlbnRyeSAqcm9vdCk7Cj4gKwo+ICsjZW5kaWYgLyogREVCVUdGU19HVUNfTE9HX0gg Ki8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc19odWMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYjU4NzQwODcyMzMzCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfaHVjLmMKPiBA QCAtMCwwICsxLDM2IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArCj4g Ky8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsK PiArI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPiArCj4gKyNpbmNsdWRlICJkZWJ1Z2ZzX3Vj LmgiCj4gKyNpbmNsdWRlICJpbnRlbF9odWMuaCIKPiArCj4gK3N0YXRpYyBpbnQgaHVjX2luZm9f c2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9odWMgKmh1YyA9IG0tPnByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9z ZXFfZmlsZV9wcmludGVyKG0pOwo+ICsKPiArCWlmICghaW50ZWxfaHVjX2lzX3N1cHBvcnRlZCho dWMpKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCWludGVsX2h1Y19sb2FkX3N0YXR1cyho dWMsICZwKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICtERUZJTkVfVUNfREVCVUdGU19BVFRS SUJVVEUoaHVjX2luZm8pOwo+ICsKPiArdm9pZCBkZWJ1Z2ZzX2h1Y19yZWdpc3RlcihzdHJ1Y3Qg aW50ZWxfaHVjICpodWMsIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4gK3sKPiArCXN0YXRpYyBjb25z dCBzdHJ1Y3QgZGVidWdmc191Y19maWxlIGZpbGVzW10gPSB7Cj4gKwkJeyAiaHVjX2luZm8iLCAm aHVjX2luZm9fZm9wcyB9LAo+ICsJfTsKPiArCj4gKwlpZiAoIWludGVsX2h1Y19pc19zdXBwb3J0 ZWQoaHVjKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGVidWdmc191Y19yZWdpc3Rlcl9maWxlcyhm aWxlcywgcm9vdCwgaHVjKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9kZWJ1Z2ZzX2h1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdm c19odWMuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi43NjFm M2VlM2VkNmEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvZGVidWdmc19odWMuaAo+IEBAIC0wLDAgKzEsMTQgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jw b3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgREVCVUdGU19IVUNfSAo+ICsjZGVmaW5lIERF QlVHRlNfSFVDX0gKPiArCj4gK3N0cnVjdCBpbnRlbF9odWM7Cj4gK3N0cnVjdCBkZW50cnk7Cj4g Kwo+ICt2b2lkIGRlYnVnZnNfaHVjX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9odWMgKmh1Yywgc3Ry dWN0IGRlbnRyeSAqcm9vdCk7Cj4gKwo+ICsjZW5kaWYgLyogREVCVUdGU19IVUNfSCAqLwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX3VjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9kZWJ1Z2ZzX3VjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZTkyNTQ0MzE4M2JlCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuYwo+IEBAIC0wLDAgKzEs MzEgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsKPiArLyoKPiArICog Q29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaW5jbHVk ZSA8bGludXgvZGVidWdmcy5oPgo+ICsKPiArI2luY2x1ZGUgImRlYnVnZnNfZ3VjLmgiCj4gKyNp bmNsdWRlICJkZWJ1Z2ZzX2h1Yy5oIgo+ICsjaW5jbHVkZSAiZGVidWdmc191Yy5oIgo+ICsjaW5j bHVkZSAiaW50ZWxfdWMuaCIKPiArCj4gK3ZvaWQgZGVidWdmc191Y19yZWdpc3RlcihzdHJ1Y3Qg aW50ZWxfdWMgKnVjLCBzdHJ1Y3QgZGVudHJ5ICpndF9yb290KQo+ICt7Cj4gKwlzdHJ1Y3QgZGVu dHJ5ICpyb290Owo+ICsKPiArCWlmICghZ3Rfcm9vdCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyog R3VDIGFuZCBIdUMgZ28gYWx3YXlzIGluIHBhaXIsIG5vIG5lZWQgdG8gY2hlY2sgYm90aCAqLwo+ ICsJaWYgKCFpbnRlbF91Y19zdXBwb3J0c19ndWModWMpKQo+ICsJCXJldHVybjsKPiArCj4gKwly b290ID0gZGVidWdmc19jcmVhdGVfZGlyKCJ1YyIsIGd0X3Jvb3QpOwo+ICsJaWYgKElTX0VSUihy b290KSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGVidWdmc19ndWNfcmVnaXN0ZXIoJnVjLT5ndWMs IHJvb3QpOwo+ICsJZGVidWdmc19odWNfcmVnaXN0ZXIoJnVjLT5odWMsIHJvb3QpOwo+ICt9Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2RlYnVnZnNfdWMuaAo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi45YWE0YjdlNTI3NzAKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvZGVidWdmc191Yy5oCj4gQEAgLTAsMCAr MSw0MyBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gKy8qCj4gKyAq IENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lmbmRl ZiBERUJVR0ZTX1VDX0gKPiArI2RlZmluZSBERUJVR0ZTX1VDX0gKPiArCj4gKyNpbmNsdWRlIDxs aW51eC9maWxlLmg+Cj4gKwo+ICtzdHJ1Y3QgaW50ZWxfdWM7Cj4gKwo+ICsjZGVmaW5lIERFRklO RV9VQ19ERUJVR0ZTX0FUVFJJQlVURShfX25hbWUpCQkJCVwKPiArCXN0YXRpYyBpbnQgX19uYW1l ICMjIF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKSBcCj4gK3sJ CQkJCQkJCQlcCj4gKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgX19uYW1lICMjIF9zaG93LCBp bm9kZS0+aV9wcml2YXRlKTsJXAo+ICt9CQkJCQkJCQkJXAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBfX25hbWUgIyMgX2ZvcHMgPSB7CQkJXAo+ICsJLm93bmVyID0gVEhJ U19NT0RVTEUsCQkJCQkJXAo+ICsJLm9wZW4gPSBfX25hbWUgIyMgX29wZW4sCQkJCQlcCj4gKwku cmVhZCA9IHNlcV9yZWFkLAkJCQkJCVwKPiArCS5sbHNlZWsgPSBzZXFfbHNlZWssCQkJCQkJXAo+ ICsJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZSwJCQkJCVwKPiArfQo+ICsKPiArdm9pZCBkZWJ1 Z2ZzX3VjX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF91YyAqdWMsIHN0cnVjdCBkZW50cnkgKmd0X3Jv b3QpOwo+ICsKPiArc3RydWN0IGRlYnVnZnNfdWNfZmlsZSB7Cj4gKwljb25zdCBjaGFyICpuYW1l Owo+ICsJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wczsKPiArfTsKPiArCj4gKyNk ZWZpbmUgZGVidWdmc191Y19yZWdpc3Rlcl9maWxlcyhmaWxlc19fLCByb290X18sIGRhdGFfXykg XAo+ICtkbyB7IFwKPiArCWludCBpX18gPSAwOyBcCj4gKwlmb3IgKGlfXyA9IDA7IGlfXyA8IEFS UkFZX1NJWkUoZmlsZXNfXyk7IGlfXysrKSB7IFwKPiArCQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKGZp bGVzX19baV9fXS5uYW1lLCBcCj4gKwkJCQkgICAgMDQ0NCwgcm9vdF9fLCBkYXRhX18sIFwKPiAr CQkJCSAgICBmaWxlc19fW2lfX10uZm9wcyk7IFwKPiArCX0gXAo+ICt9IHdoaWxlICgwKQo+ICsK PiArI2VuZGlmIC8qIERFQlVHRlNfVUNfSCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Yy5oCj4gaW5kZXggN2QxYWU5ODc5Yjk0Li4yYjc5YThiZjhkMjcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaAo+IEBAIC03NCw2ICs3NCwxMSBAQCBzdHJ1 Y3QgaW50ZWxfZ3VjIHsKPiAgCXN0cnVjdCBtdXRleCBzZW5kX211dGV4Owo+ICB9Owo+ICAKPiAr c3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZ3VjICpsb2dfdG9fZ3VjKGNvbnN0IHN0cnVjdCBp bnRlbF9ndWNfbG9nICpsb2cpCj4gK3sKPiArCXJldHVybiBjb250YWluZXJfb2YobG9nLCBzdHJ1 Y3QgaW50ZWxfZ3VjLCBsb2cpOwo+ICt9Cj4gKwo+ICBzdGF0aWMKPiAgaW5saW5lIGludCBpbnRl bF9ndWNfc2VuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIg bGVuKQo+ICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwo+ IGluZGV4IGZiYjczYjhkOTE3OC4uY2ZlMmY5MzIxNjgwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwo+IEBAIC01NSwxMSArNTUsNiBAQCBzdGF0aWMg aW50IGd1Y19hY3Rpb25fY29udHJvbF9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjLCBib29sIGVu YWJsZSwKPiAgCXJldHVybiBpbnRlbF9ndWNfc2VuZChndWMsIGFjdGlvbiwgQVJSQVlfU0laRShh Y3Rpb24pKTsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZ3VjICpsb2df dG9fZ3VjKGNvbnN0IHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCj4gLXsKPiAtCXJldHVybiBj b250YWluZXJfb2YobG9nLCBzdHJ1Y3QgaW50ZWxfZ3VjLCBsb2cpOwo+IC19Cj4gLQo+ICBzdGF0 aWMgdm9pZCBndWNfbG9nX2VuYWJsZV9mbHVzaF9ldmVudHMoc3RydWN0IGludGVsX2d1Y19sb2cg KmxvZykKPiAgewo+ICAJaW50ZWxfZ3VjX2VuYWJsZV9tc2cobG9nX3RvX2d1Yyhsb2cpLAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggMWJlYzRjZGViOTJmLi5hOGI2ZjBm ZDk0MzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0zNyw3ICsz Nyw2IEBACj4gICNpbmNsdWRlICJndC9pbnRlbF9yZXNldC5oIgo+ICAjaW5jbHVkZSAiZ3QvaW50 ZWxfcmM2LmgiCj4gICNpbmNsdWRlICJndC9pbnRlbF9ycHMuaCIKPiAtI2luY2x1ZGUgImd0L3Vj L2ludGVsX2d1Y19zdWJtaXNzaW9uLmgiCj4gIAo+ICAjaW5jbHVkZSAiaTkxNV9kZWJ1Z2ZzLmgi Cj4gICNpbmNsdWRlICJpOTE1X2RlYnVnZnNfcGFyYW1zLmgiCj4gQEAgLTE0NjUsMTM2ICsxNDY0 LDYgQEAgc3RhdGljIGludCBpOTE1X2xsYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpOTE1X2h1Y19pbmZvKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwo+IC0Jc3RydWN0IGludGVs X2h1YyAqaHVjID0gJmRldl9wcml2LT5ndC51Yy5odWM7Cj4gLQlzdHJ1Y3QgZHJtX3ByaW50ZXIg cCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+IC0KPiAtCWlmICghaW50ZWxfaHVjX2lzX3N1 cHBvcnRlZChodWMpKQo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0KPiAtCWludGVsX2h1Y19sb2Fk X3N0YXR1cyhodWMsICZwKTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGljIGlu dCBpOTE1X2d1Y19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAtewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZh dGUpOwo+IC0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndC51Yy5ndWM7Cj4g LQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+IC0KPiAt CWlmICghaW50ZWxfZ3VjX2lzX3N1cHBvcnRlZChndWMpKQo+IC0JCXJldHVybiAtRU5PREVWOwo+ IC0KPiAtCWludGVsX2d1Y19sb2FkX3N0YXR1cyhndWMsICZwKTsKPiAtCWRybV9wdXRzKCZwLCAi XG4iKTsKPiAtCWludGVsX2d1Y19sb2dfaW5mbygmZ3VjLT5sb2csICZwKTsKPiAtCj4gLQkvKiBB ZGQgbW9yZSBhcyByZXF1aXJlZCAuLi4gKi8KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAt c3RhdGljIGludCBpOTE1X2d1Y19sb2dfZHVtcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCj4gLXsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShub2RlKTsK PiAtCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3QudWMuZ3VjOwo+IC0JYm9v bCBkdW1wX2xvYWRfZXJyID0gISFub2RlLT5pbmZvX2VudC0+ZGF0YTsKPiAtCXN0cnVjdCBkcm1f cHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQo+IC0JaWYgKCFpbnRlbF9n dWNfaXNfc3VwcG9ydGVkKGd1YykpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JcmV0dXJu IGludGVsX2d1Y19sb2dfZHVtcCgmZ3VjLT5sb2csICZwLCBkdW1wX2xvYWRfZXJyKTsKPiAtfQo+ IC0KPiAtc3RhdGljIGludCBpOTE1X2d1Y19sb2dfbGV2ZWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAq dmFsKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwo+ IC0Jc3RydWN0IGludGVsX3VjICp1YyA9ICZkZXZfcHJpdi0+Z3QudWM7Cj4gLQo+IC0JaWYgKCFp bnRlbF91Y191c2VzX2d1Yyh1YykpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JKnZhbCA9 IGludGVsX2d1Y19sb2dfZ2V0X2xldmVsKCZ1Yy0+Z3VjLmxvZyk7Cj4gLQo+IC0JcmV0dXJuIDA7 Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgaTkxNV9ndWNfbG9nX2xldmVsX3NldCh2b2lkICpkYXRh LCB1NjQgdmFsKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk YXRhOwo+IC0Jc3RydWN0IGludGVsX3VjICp1YyA9ICZkZXZfcHJpdi0+Z3QudWM7Cj4gLQo+IC0J aWYgKCFpbnRlbF91Y191c2VzX2d1Yyh1YykpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0J cmV0dXJuIGludGVsX2d1Y19sb2dfc2V0X2xldmVsKCZ1Yy0+Z3VjLmxvZywgdmFsKTsKPiAtfQo+ IC0KPiAtREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoaTkxNV9ndWNfbG9nX2xldmVsX2ZvcHMsCj4g LQkJCWk5MTVfZ3VjX2xvZ19sZXZlbF9nZXQsIGk5MTVfZ3VjX2xvZ19sZXZlbF9zZXQsCj4gLQkJ CSIlbGxkXG4iKTsKPiAtCj4gLXN0YXRpYyBpbnQgaTkxNV9ndWNfbG9nX3JlbGF5X29wZW4oc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gaW5vZGUtPmlfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9n dWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9n ID0gJmd1Yy0+bG9nOwo+IC0KPiAtCWlmICghaW50ZWxfZ3VjX2lzX3JlYWR5KGd1YykpCj4gLQkJ cmV0dXJuIC1FTk9ERVY7Cj4gLQo+IC0JZmlsZS0+cHJpdmF0ZV9kYXRhID0gbG9nOwo+IC0KPiAt CXJldHVybiBpbnRlbF9ndWNfbG9nX3JlbGF5X29wZW4obG9nKTsKPiAtfQo+IC0KPiAtc3RhdGlj IHNzaXplX3QKPiAtaTkxNV9ndWNfbG9nX3JlbGF5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAo+ IC0JCQkgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCj4gLQkJCSBzaXplX3QgY250LAo+IC0JCQkg bG9mZl90ICpwcG9zKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gZmlscC0+ cHJpdmF0ZV9kYXRhOwo+IC0JaW50IHZhbDsKPiAtCWludCByZXQ7Cj4gLQo+IC0JcmV0ID0ga3N0 cnRvaW50X2Zyb21fdXNlcih1YnVmLCBjbnQsIDAsICZ2YWwpOwo+IC0JaWYgKHJldCA8IDApCj4g LQkJcmV0dXJuIHJldDsKPiAtCj4gLQkvKgo+IC0JICogRW5hYmxlIGFuZCBzdGFydCB0aGUgZ3Vj IGxvZyByZWxheSBvbiB2YWx1ZSBvZiAxLgo+IC0JICogRmx1c2ggbG9nIHJlbGF5IGZvciBhbnkg b3RoZXIgdmFsdWUuCj4gLQkgKi8KPiAtCWlmICh2YWwgPT0gMSkKPiAtCQlyZXQgPSBpbnRlbF9n dWNfbG9nX3JlbGF5X3N0YXJ0KGxvZyk7Cj4gLQllbHNlCj4gLQkJaW50ZWxfZ3VjX2xvZ19yZWxh eV9mbHVzaChsb2cpOwo+IC0KPiAtCXJldHVybiByZXQgPzogY250Owo+IC19Cj4gLQo+IC1zdGF0 aWMgaW50IGk5MTVfZ3VjX2xvZ19yZWxheV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmaWxlICpmaWxlKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IGlub2RlLT5pX3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3Qu dWMuZ3VjOwo+IC0KPiAtCWludGVsX2d1Y19sb2dfcmVsYXlfY2xvc2UoJmd1Yy0+bG9nKTsKPiAt CXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBpOTE1X2d1Y19sb2dfcmVsYXlfZm9wcyA9IHsKPiAtCS5vd25lciA9IFRISVNfTU9EVUxFLAo+ IC0JLm9wZW4gPSBpOTE1X2d1Y19sb2dfcmVsYXlfb3BlbiwKPiAtCS53cml0ZSA9IGk5MTVfZ3Vj X2xvZ19yZWxheV93cml0ZSwKPiAtCS5yZWxlYXNlID0gaTkxNV9ndWNfbG9nX3JlbGF5X3JlbGVh c2UsCj4gLX07Cj4gLQo+ICBzdGF0aWMgaW50IGk5MTVfcnVudGltZV9wbV9zdGF0dXMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKPiBAQCAtMjIwMywxMCAr MjA3Miw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVnZnNf bGlzdFtdID0gewo+ICAJeyJpOTE1X2dlbV9vYmplY3RzIiwgaTkxNV9nZW1fb2JqZWN0X2luZm8s IDB9LAo+ICAJeyJpOTE1X2dlbV9mZW5jZV9yZWdzIiwgaTkxNV9nZW1fZmVuY2VfcmVnc19pbmZv LCAwfSwKPiAgCXsiaTkxNV9nZW1faW50ZXJydXB0IiwgaTkxNV9pbnRlcnJ1cHRfaW5mbywgMH0s Cj4gLQl7Imk5MTVfZ3VjX2luZm8iLCBpOTE1X2d1Y19pbmZvLCAwfSwKPiAtCXsiaTkxNV9ndWNf bG9nX2R1bXAiLCBpOTE1X2d1Y19sb2dfZHVtcCwgMH0sCj4gLQl7Imk5MTVfZ3VjX2xvYWRfZXJy X2xvZ19kdW1wIiwgaTkxNV9ndWNfbG9nX2R1bXAsIDAsICh2b2lkICopMX0sCj4gLQl7Imk5MTVf aHVjX2luZm8iLCBpOTE1X2h1Y19pbmZvLCAwfSwKPiAgCXsiaTkxNV9mcmVxdWVuY3lfaW5mbyIs IGk5MTVfZnJlcXVlbmN5X2luZm8sIDB9LAo+ICAJeyJpOTE1X2RycGNfaW5mbyIsIGk5MTVfZHJw Y19pbmZvLCAwfSwKPiAgCXsiaTkxNV9yaW5nX2ZyZXFfdGFibGUiLCBpOTE1X3JpbmdfZnJlcV90 YWJsZSwgMH0sCj4gQEAgLTIyMzYsOCArMjEwMSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkx NV9kZWJ1Z2ZzX2ZpbGVzIHsKPiAgCXsiaTkxNV9lcnJvcl9zdGF0ZSIsICZpOTE1X2Vycm9yX3N0 YXRlX2ZvcHN9LAo+ICAJeyJpOTE1X2dwdV9pbmZvIiwgJmk5MTVfZ3B1X2luZm9fZm9wc30sCj4g ICNlbmRpZgo+IC0JeyJpOTE1X2d1Y19sb2dfbGV2ZWwiLCAmaTkxNV9ndWNfbG9nX2xldmVsX2Zv cHN9LAo+IC0JeyJpOTE1X2d1Y19sb2dfcmVsYXkiLCAmaTkxNV9ndWNfbG9nX3JlbGF5X2ZvcHN9 LAo+ICB9Owo+ICAKPiAgaW50IGk5MTVfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdy YXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK