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=-6.9 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_GIT 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 AFF41C43331 for ; Thu, 26 Mar 2020 18:12:06 +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 932CE20714 for ; Thu, 26 Mar 2020 18:12:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 932CE20714 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 373856E8FA; Thu, 26 Mar 2020 18:12:06 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 30FC26E8FA for ; Thu, 26 Mar 2020 18:12:05 +0000 (UTC) IronPort-SDR: apgWrbTnlR0r39Rd1431t6fIGm3zpPnUOCbbuwycPUGZAyHxSBXAXRsfD+Rj/aczJIukpT4KVM fmzq3eUFPRiw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2020 11:12:04 -0700 IronPort-SDR: 0KDl9XAaga9QMePnOz0tMMhAjX+VoyRmG6auNuncP4jDKtolhWtFgglOeDUTLytUdFJusj0JyF t3k3h8Cut/+w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,309,1580803200"; d="scan'208";a="265956013" Received: from dceraolo-linux.fm.intel.com ([10.1.27.145]) by orsmga002.jf.intel.com with ESMTP; 26 Mar 2020 11:12:04 -0700 From: Daniele Ceraolo Spurio To: intel-gfx@lists.freedesktop.org Date: Thu, 26 Mar 2020 11:11:20 -0700 Message-Id: <20200326181121.16869-6-daniele.ceraolospurio@intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200326181121.16869-1-daniele.ceraolospurio@intel.com> References: <20200326181121.16869-1-daniele.ceraolospurio@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v3 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" dUMgaXMgYSBjb21wb25lbnQgb2YgdGhlIEdULCBzbyBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIHVD IGRlYnVnZnMgZmlsZXMKdG8gYmUgaW4gdGhlIEdUIGZvbGRlci4gQSBzdWJmb2xkZXIgaGFzIGJl ZW4gdXNlZCB0byBrZWVwIHRoZSBzYW1lCnN0cnVjdHVyZSB3ZSBoYXZlIGZvciB0aGUgY29kZS4K CnYyOiB1c2UgaW50ZWxfKiBwcmVmaXggKEphbmkpLCByZWJhc2Ugb24gbmV3IGd0X2RlYnVnZnNf cmVnaXN0ZXJfZmlsZXMsCiAgICBmaXggcGVybWlzc2lvbnMgZm9yIHdyaXRhYmxlIGRlYnVnZnMg ZmlsZXMuCgp2MzogUmVuYW1lIGZpbGVzIChNaWNoYWwpLCByZW1vdmUgYmxhbmsgbGluZSAoSmFu aSksIGZpeCBzcGFyc2Ugd2FybnMuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1 cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgpDYzogQW5kaSBTaHl0aSA8YW5k aS5zaHl0aUBpbnRlbC5jb20+CkNjOiBNaWNoYWwgV2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtv QGludGVsLmNvbT4KQ2M6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ CkNjOiBNYXR0aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KQ2M6IFRvbnkgWWUg PHRvbnkueWVAaW50ZWwuY29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZGkgU2h5dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPiAj djIKLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAg IDQgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZGVidWdmc19ndC5jICAgICAgICAgIHwgICA2 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaCAgICAgICAgfCAgIDUg KwogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZGVidWdmcy5jICAgIHwgIDQyICsr KysrKwogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZGVidWdmcy5oICAgIHwgIDE0 ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMgICAgfCAgIDUg LQogLi4uL2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2dfZGVidWdmcy5jICAgIHwgMTI0ICsr KysrKysrKysrKysrKysKIC4uLi9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nX2RlYnVnZnMu aCAgICB8ICAxNSArKwogLi4uL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZGVidWdmcy5j ICAgIHwgIDM2ICsrKysrCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Y19kZWJ1Z2Zz LmggICAgfCAgMTQgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2RlYnVn ZnMuYyB8ICAzMCArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19kZWJ1 Z2ZzLmggfCAgMTQgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAg ICAgICB8IDEzNyAtLS0tLS0tLS0tLS0tLS0tLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDMwMyBpbnNl cnRpb25zKCspLCAxNDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2RlYnVnZnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19kZWJ1Z2ZzLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nX2RlYnVn ZnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19sb2dfZGVidWdmcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfaHVjX2RlYnVnZnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Y19kZWJ1Z2ZzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19kZWJ1Z2ZzLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19kZWJ1Z2ZzLmgK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDk5Y2QzZDI1ZjgxNi4uMmZjZThiMDA0MGYzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQpAQCAtMTY3LDE0ICsxNjcsMTggQEAgaTkxNS15ICs9IFwKIAogIyBn ZW5lcmFsLXB1cnBvc2UgbWljcm9jb250cm9sbGVyIChHdUMpIHN1cHBvcnQKIGk5MTUteSArPSBn dC91Yy9pbnRlbF91Yy5vIFwKKwkgIGd0L3VjL2ludGVsX3VjX2RlYnVnZnMubyBcCiAJICBndC91 Yy9pbnRlbF91Y19mdy5vIFwKIAkgIGd0L3VjL2ludGVsX2d1Yy5vIFwKIAkgIGd0L3VjL2ludGVs X2d1Y19hZHMubyBcCiAJICBndC91Yy9pbnRlbF9ndWNfY3QubyBcCisJICBndC91Yy9pbnRlbF9n dWNfZGVidWdmcy5vIFwKIAkgIGd0L3VjL2ludGVsX2d1Y19mdy5vIFwKIAkgIGd0L3VjL2ludGVs X2d1Y19sb2cubyBcCisJICBndC91Yy9pbnRlbF9ndWNfbG9nX2RlYnVnZnMubyBcCiAJICBndC91 Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5vIFwKIAkgIGd0L3VjL2ludGVsX2h1Yy5vIFwKKwkgIGd0 L3VjL2ludGVsX2h1Y19kZWJ1Z2ZzLm8gXAogCSAgZ3QvdWMvaW50ZWxfaHVjX2Z3Lm8KIAogIyBt b2Rlc2V0dGluZyBjb3JlIGNvZGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2RlYnVnZnNfZ3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2RlYnVnZnNfZ3QuYwppbmRl eCBkZTczYjYzZDZiYTcuLjFkZTVmYmFhMWNmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvZGVidWdmc19ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2RlYnVn ZnNfZ3QuYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNsdWRlICJkZWJ1Z2ZzX2VuZ2luZXMuaCIKICNp bmNsdWRlICJkZWJ1Z2ZzX2d0LmgiCiAjaW5jbHVkZSAiZGVidWdmc19ndF9wbS5oIgorI2luY2x1 ZGUgInVjL2ludGVsX3VjX2RlYnVnZnMuaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogCiB2b2lk IGRlYnVnZnNfZ3RfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d0ICpndCkKQEAgLTI0LDYgKzI1LDgg QEAgdm9pZCBkZWJ1Z2ZzX2d0X3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAKIAlkZWJ1 Z2ZzX2VuZ2luZXNfcmVnaXN0ZXIoZ3QsIHJvb3QpOwogCWRlYnVnZnNfZ3RfcG1fcmVnaXN0ZXIo Z3QsIHJvb3QpOworCisJaW50ZWxfdWNfZGVidWdmc19yZWdpc3RlcigmZ3QtPnVjLCByb290KTsK IH0KIAogdm9pZCBpbnRlbF9ndF9kZWJ1Z2ZzX3JlZ2lzdGVyX2ZpbGVzKHN0cnVjdCBkZW50cnkg KnJvb3QsCkBAIC0zMSw5ICszNCwxMCBAQCB2b2lkIGludGVsX2d0X2RlYnVnZnNfcmVnaXN0ZXJf ZmlsZXMoc3RydWN0IGRlbnRyeSAqcm9vdCwKIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgY291bnQs IHZvaWQgKmRhdGEpCiB7CiAJd2hpbGUgKGNvdW50LS0pIHsKKwkJdW1vZGVfdCBtb2RlID0gZmls ZXMtPmZvcHMtPndyaXRlID8gMDY0NCA6IDA0NDQ7CiAJCWlmICghZmlsZXMtPmV2YWwgfHwgZmls ZXMtPmV2YWwoZGF0YSkpCiAJCQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKGZpbGVzLT5uYW1lLAotCQkJ CQkgICAgMDQ0NCwgcm9vdCwgZGF0YSwKKwkJCQkJICAgIG1vZGUsIHJvb3QsIGRhdGEsCiAJCQkJ CSAgICBmaWxlcy0+Zm9wcyk7CiAKIAkJZmlsZXMrKzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjLmgKaW5kZXggYTVkN2E4NmJlNGNmLi5lODRhYjY3YjMxN2QgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Yy5oCkBAIC03NCw2ICs3NCwxMSBAQCBzdHJ1Y3QgaW50 ZWxfZ3VjIHsKIAlzdHJ1Y3QgbXV0ZXggc2VuZF9tdXRleDsKIH07CiAKK3N0YXRpYyBpbmxpbmUg c3RydWN0IGludGVsX2d1YyAqbG9nX3RvX2d1YyhzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQor eworCXJldHVybiBjb250YWluZXJfb2YobG9nLCBzdHJ1Y3QgaW50ZWxfZ3VjLCBsb2cpOworfQor CiBzdGF0aWMKIGlubGluZSBpbnQgaW50ZWxfZ3VjX3NlbmQoc3RydWN0IGludGVsX2d1YyAqZ3Vj LCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfZGVidWdmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZmU3Y2I3YjI5YTFlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2RlYnVnZnMuYwpAQCAtMCwwICsxLDQyIEBACisvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMjAgSW50 ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCisjaW5j bHVkZSAiZ3QvZGVidWdmc19ndC5oIgorI2luY2x1ZGUgImludGVsX2d1Yy5oIgorI2luY2x1ZGUg ImludGVsX2d1Y19kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZ19kZWJ1Z2ZzLmgi CisKK3N0YXRpYyBpbnQgZ3VjX2luZm9fc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCit7CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gbS0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJt X3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOworCisJaWYgKCFpbnRlbF9ndWNf aXNfc3VwcG9ydGVkKGd1YykpCisJCXJldHVybiAtRU5PREVWOworCisJaW50ZWxfZ3VjX2xvYWRf c3RhdHVzKGd1YywgJnApOworCWRybV9wdXRzKCZwLCAiXG4iKTsKKwlpbnRlbF9ndWNfbG9nX2lu Zm8oJmd1Yy0+bG9nLCAmcCk7CisKKwkvKiBBZGQgbW9yZSBhcyByZXF1aXJlZCAuLi4gKi8KKwor CXJldHVybiAwOworfQorREVGSU5FX0dUX0RFQlVHRlNfQVRUUklCVVRFKGd1Y19pbmZvKTsKKwor dm9pZCBpbnRlbF9ndWNfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIHN0 cnVjdCBkZW50cnkgKnJvb3QpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX2d0X2Zp bGUgZmlsZXNbXSA9IHsKKwkJeyAiZ3VjX2luZm8iLCAmZ3VjX2luZm9fZm9wcywgTlVMTCB9LAor CX07CisKKwlpZiAoIWludGVsX2d1Y19pc19zdXBwb3J0ZWQoZ3VjKSkKKwkJcmV0dXJuOworCisJ aW50ZWxfZ3RfZGVidWdmc19yZWdpc3Rlcl9maWxlcyhyb290LCBmaWxlcywgQVJSQVlfU0laRShm aWxlcyksIGd1Yyk7CisJaW50ZWxfZ3VjX2xvZ19kZWJ1Z2ZzX3JlZ2lzdGVyKCZndWMtPmxvZywg cm9vdCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9n dWNfZGVidWdmcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2RlYnVn ZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQyNGMyNjY2NWNm MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19kZWJ1Z2ZzLmgKQEAgLTAsMCArMSwxNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8K KworI2lmbmRlZiBERUJVR0ZTX0dVQ19ICisjZGVmaW5lIERFQlVHRlNfR1VDX0gKKworc3RydWN0 IGludGVsX2d1YzsKK3N0cnVjdCBkZW50cnk7CisKK3ZvaWQgaW50ZWxfZ3VjX2RlYnVnZnNfcmVn aXN0ZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBzdHJ1Y3QgZGVudHJ5ICpyb290KTsKKworI2Vu ZGlmIC8qIERFQlVHRlNfR1VDX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19sb2cuYwppbmRleCA4Y2RkNmRjM2RmNTguLjViMTFhNmQ4ZTI3ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwpAQCAtNTUsMTEgKzU1LDYgQEAgc3Rh dGljIGludCBndWNfYWN0aW9uX2NvbnRyb2xfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgYm9v bCBlbmFibGUsCiAJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpF KGFjdGlvbikpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9ndWMgKmxvZ190b19n dWMoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKGxv Zywgc3RydWN0IGludGVsX2d1YywgbG9nKTsKLX0KLQogc3RhdGljIHZvaWQgZ3VjX2xvZ19lbmFi bGVfZmx1c2hfZXZlbnRzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpCiB7CiAJaW50ZWxfZ3Vj X2VuYWJsZV9tc2cobG9nX3RvX2d1Yyhsb2cpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZ19kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfbG9nX2RlYnVnZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjEyOWUwY2Y3ZGZlMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2dfZGVidWdmcy5jCkBAIC0wLDAgKzEsMTI0 IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKp IDIwMjAgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNp bmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CisKKyNpbmNsdWRlICJndC9kZWJ1Z2ZzX2d0LmgiCisj aW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2xvZy5oIgorI2luY2x1 ZGUgImludGVsX2d1Y19sb2dfZGVidWdmcy5oIgorCitzdGF0aWMgaW50IGd1Y19sb2dfZHVtcF9z aG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZHJtX3ByaW50 ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOworCisJcmV0dXJuIGludGVsX2d1Y19sb2df ZHVtcChtLT5wcml2YXRlLCAmcCwgZmFsc2UpOworfQorREVGSU5FX0dUX0RFQlVHRlNfQVRUUklC VVRFKGd1Y19sb2dfZHVtcCk7CisKK3N0YXRpYyBpbnQgZ3VjX2xvYWRfZXJyX2xvZ19kdW1wX3No b3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkcm1fcHJpbnRl ciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7CisKKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19k dW1wKG0tPnByaXZhdGUsICZwLCB0cnVlKTsKK30KK0RFRklORV9HVF9ERUJVR0ZTX0FUVFJJQlVU RShndWNfbG9hZF9lcnJfbG9nX2R1bXApOworCitzdGF0aWMgaW50IGd1Y19sb2dfbGV2ZWxfZ2V0 KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQoreworCXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSBk YXRhOworCisJaWYgKCFpbnRlbF9ndWNfaXNfdXNlZChsb2dfdG9fZ3VjKGxvZykpKQorCQlyZXR1 cm4gLUVOT0RFVjsKKworCSp2YWwgPSBpbnRlbF9ndWNfbG9nX2dldF9sZXZlbChsb2cpOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ3VjX2xvZ19sZXZlbF9zZXQodm9pZCAqZGF0YSwg dTY0IHZhbCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nID0gZGF0YTsKKworCWlmICgh aW50ZWxfZ3VjX2lzX3VzZWQobG9nX3RvX2d1Yyhsb2cpKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisK KwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19zZXRfbGV2ZWwobG9nLCB2YWwpOworfQorCitERUZJTkVf U0lNUExFX0FUVFJJQlVURShndWNfbG9nX2xldmVsX2ZvcHMsCisJCQlndWNfbG9nX2xldmVsX2dl dCwgZ3VjX2xvZ19sZXZlbF9zZXQsCisJCQkiJWxsZFxuIik7CisKK3N0YXRpYyBpbnQgZ3VjX2xv Z19yZWxheV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQorewor CXN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cgPSBpbm9kZS0+aV9wcml2YXRlOworCisJaWYgKCFp bnRlbF9ndWNfaXNfcmVhZHkobG9nX3RvX2d1Yyhsb2cpKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisK KwlmaWxlLT5wcml2YXRlX2RhdGEgPSBsb2c7CisKKwlyZXR1cm4gaW50ZWxfZ3VjX2xvZ19yZWxh eV9vcGVuKGxvZyk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitndWNfbG9nX3JlbGF5X3dyaXRlKHN0 cnVjdCBmaWxlICpmaWxwLAorCQkgICAgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICBz aXplX3QgY250LAorCQkgICAgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBpbnRlbF9ndWNfbG9n ICpsb2cgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJaW50IHZhbDsKKwlpbnQgcmV0OworCisJcmV0 ID0ga3N0cnRvaW50X2Zyb21fdXNlcih1YnVmLCBjbnQsIDAsICZ2YWwpOworCWlmIChyZXQgPCAw KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBFbmFibGUgYW5kIHN0YXJ0IHRoZSBndWMgbG9n IHJlbGF5IG9uIHZhbHVlIG9mIDEuCisJICogRmx1c2ggbG9nIHJlbGF5IGZvciBhbnkgb3RoZXIg dmFsdWUuCisJICovCisJaWYgKHZhbCA9PSAxKQorCQlyZXQgPSBpbnRlbF9ndWNfbG9nX3JlbGF5 X3N0YXJ0KGxvZyk7CisJZWxzZQorCQlpbnRlbF9ndWNfbG9nX3JlbGF5X2ZsdXNoKGxvZyk7CisK KwlyZXR1cm4gcmV0ID86IGNudDsKK30KKworc3RhdGljIGludCBndWNfbG9nX3JlbGF5X3JlbGVh c2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGlu dGVsX2d1Y19sb2cgKmxvZyA9IGlub2RlLT5pX3ByaXZhdGU7CisKKwlpbnRlbF9ndWNfbG9nX3Jl bGF5X2Nsb3NlKGxvZyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIGd1Y19sb2dfcmVsYXlfZm9wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVM RSwKKwkub3BlbiA9IGd1Y19sb2dfcmVsYXlfb3BlbiwKKwkud3JpdGUgPSBndWNfbG9nX3JlbGF5 X3dyaXRlLAorCS5yZWxlYXNlID0gZ3VjX2xvZ19yZWxheV9yZWxlYXNlLAorfTsKKwordm9pZCBp bnRlbF9ndWNfbG9nX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZywK KwkJCQkgICAgc3RydWN0IGRlbnRyeSAqcm9vdCkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IGRl YnVnZnNfZ3RfZmlsZSBmaWxlc1tdID0geworCQl7ICJndWNfbG9nX2R1bXAiLCAmZ3VjX2xvZ19k dW1wX2ZvcHMsIE5VTEwgfSwKKwkJeyAiZ3VjX2xvYWRfZXJyX2xvZ19kdW1wIiwgJmd1Y19sb2Fk X2Vycl9sb2dfZHVtcF9mb3BzLCBOVUxMIH0sCisJCXsgImd1Y19sb2dfbGV2ZWwiLCAmZ3VjX2xv Z19sZXZlbF9mb3BzLCBOVUxMIH0sCisJCXsgImd1Y19sb2dfcmVsYXkiLCAmZ3VjX2xvZ19yZWxh eV9mb3BzLCBOVUxMIH0sCisJfTsKKworCWlmICghaW50ZWxfZ3VjX2lzX3N1cHBvcnRlZChsb2df dG9fZ3VjKGxvZykpKQorCQlyZXR1cm47CisKKwlpbnRlbF9ndF9kZWJ1Z2ZzX3JlZ2lzdGVyX2Zp bGVzKHJvb3QsIGZpbGVzLCBBUlJBWV9TSVpFKGZpbGVzKSwgbG9nKTsKK30KKwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZ19kZWJ1Z2ZzLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nX2RlYnVnZnMuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU4OTAwZTNkNzRlYQotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2dfZGVidWdm cy5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8K Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5k ZWYgREVCVUdGU19HVUNfTE9HX0gKKyNkZWZpbmUgREVCVUdGU19HVUNfTE9HX0gKKworc3RydWN0 IGludGVsX2d1Y19sb2c7CitzdHJ1Y3QgZGVudHJ5OworCit2b2lkIGludGVsX2d1Y19sb2dfZGVi dWdmc19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nLAorCQkJCSAgICBzdHJ1Y3Qg ZGVudHJ5ICpyb290KTsKKworI2VuZGlmIC8qIERFQlVHRlNfR1VDX0xPR19IICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2RlYnVnZnMuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU3MzNjMTVmZDEyMwotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Y19kZWJ1Z2ZzLmMKQEAgLTAs MCArMSwzNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHly aWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgPGRybS9kcm1f cHJpbnQuaD4KKworI2luY2x1ZGUgImd0L2RlYnVnZnNfZ3QuaCIKKyNpbmNsdWRlICJpbnRlbF9o dWMuaCIKKyNpbmNsdWRlICJpbnRlbF9odWNfZGVidWdmcy5oIgorCitzdGF0aWMgaW50IGh1Y19p bmZvX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBpbnRl bF9odWMgKmh1YyA9IG0tPnByaXZhdGU7CisJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2Vx X2ZpbGVfcHJpbnRlcihtKTsKKworCWlmICghaW50ZWxfaHVjX2lzX3N1cHBvcnRlZChodWMpKQor CQlyZXR1cm4gLUVOT0RFVjsKKworCWludGVsX2h1Y19sb2FkX3N0YXR1cyhodWMsICZwKTsKKwor CXJldHVybiAwOworfQorREVGSU5FX0dUX0RFQlVHRlNfQVRUUklCVVRFKGh1Y19pbmZvKTsKKwor dm9pZCBpbnRlbF9odWNfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgaW50ZWxfaHVjICpodWMsIHN0 cnVjdCBkZW50cnkgKnJvb3QpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX2d0X2Zp bGUgZmlsZXNbXSA9IHsKKwkJeyAiaHVjX2luZm8iLCAmaHVjX2luZm9fZm9wcywgTlVMTCB9LAor CX07CisKKwlpZiAoIWludGVsX2h1Y19pc19zdXBwb3J0ZWQoaHVjKSkKKwkJcmV0dXJuOworCisJ aW50ZWxfZ3RfZGVidWdmc19yZWdpc3Rlcl9maWxlcyhyb290LCBmaWxlcywgQVJSQVlfU0laRShm aWxlcyksIGh1Yyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9odWNfZGVidWdmcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVj X2RlYnVnZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJlNzll OTkyZjk3NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2h1Y19kZWJ1Z2ZzLmgKQEAgLTAsMCArMSwxNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9u CisgKi8KKworI2lmbmRlZiBERUJVR0ZTX0hVQ19ICisjZGVmaW5lIERFQlVHRlNfSFVDX0gKKwor c3RydWN0IGludGVsX2h1YzsKK3N0cnVjdCBkZW50cnk7CisKK3ZvaWQgaW50ZWxfaHVjX2RlYnVn ZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX2h1YyAqaHVjLCBzdHJ1Y3QgZGVudHJ5ICpyb290KTsK KworI2VuZGlmIC8qIERFQlVHRlNfSFVDX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX3VjX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3VjL2ludGVsX3VjX2RlYnVnZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjlkMTZiNzg0YWEwZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX3VjX2RlYnVnZnMuYwpAQCAtMCwwICsxLDMwIEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUCisvKgorICogQ29weXJpZ2h0IMKpIDIwMjAgSW50ZWwgQ29y cG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorCisjaW5jbHVkZSAi aW50ZWxfZ3VjX2RlYnVnZnMuaCIKKyNpbmNsdWRlICJpbnRlbF9odWNfZGVidWdmcy5oIgorI2lu Y2x1ZGUgImludGVsX3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfdWNfZGVidWdmcy5oIgorCit2b2lk IGludGVsX3VjX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX3VjICp1Yywgc3RydWN0IGRl bnRyeSAqZ3Rfcm9vdCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpyb290OworCisJaWYgKCFndF9yb290 KQorCQlyZXR1cm47CisKKwkvKiBHdUMgYW5kIEh1QyBnbyBhbHdheXMgaW4gcGFpciwgbm8gbmVl ZCB0byBjaGVjayBib3RoICovCisJaWYgKCFpbnRlbF91Y19zdXBwb3J0c19ndWModWMpKQorCQly ZXR1cm47CisKKwlyb290ID0gZGVidWdmc19jcmVhdGVfZGlyKCJ1YyIsIGd0X3Jvb3QpOworCWlm IChJU19FUlIocm9vdCkpCisJCXJldHVybjsKKworCWludGVsX2d1Y19kZWJ1Z2ZzX3JlZ2lzdGVy KCZ1Yy0+Z3VjLCByb290KTsKKwlpbnRlbF9odWNfZGVidWdmc19yZWdpc3RlcigmdWMtPmh1Yywg cm9vdCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91 Y19kZWJ1Z2ZzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19kZWJ1Z2Zz LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMTBjZTI1MGQyMjMK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19k ZWJ1Z2ZzLmgKQEAgLTAsMCArMSwxNCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1J VCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisgKi8KKwor I2lmbmRlZiBERUJVR0ZTX1VDX0gKKyNkZWZpbmUgREVCVUdGU19VQ19ICisKK3N0cnVjdCBpbnRl bF91YzsKK3N0cnVjdCBkZW50cnk7CisKK3ZvaWQgaW50ZWxfdWNfZGVidWdmc19yZWdpc3Rlcihz dHJ1Y3QgaW50ZWxfdWMgKnVjLCBzdHJ1Y3QgZGVudHJ5ICpndF9yb290KTsKKworI2VuZGlmIC8q IERFQlVHRlNfVUNfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAzMThl YzRmYTc3NzkuLjRjOGE4OGM2NGMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK QEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJndC9pbnRlbF9yZXNldC5oIgogI2luY2x1ZGUg Imd0L2ludGVsX3JjNi5oIgogI2luY2x1ZGUgImd0L2ludGVsX3Jwcy5oIgotI2luY2x1ZGUgImd0 L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmgiCiAKICNpbmNsdWRlICJpOTE1X2RlYnVnZnMuaCIK ICNpbmNsdWRlICJpOTE1X2RlYnVnZnNfcGFyYW1zLmgiCkBAIC0xMjUxLDEzNiArMTI1MCw2IEBA IHN0YXRpYyBpbnQgaTkxNV9sbGMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgaW50IGk5MTVfaHVjX2luZm8oc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5v ZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmZGV2X3By aXYtPmd0LnVjLmh1YzsKLQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmlu dGVyKG0pOwotCi0JaWYgKCFpbnRlbF9odWNfaXNfc3VwcG9ydGVkKGh1YykpCi0JCXJldHVybiAt RU5PREVWOwotCi0JaW50ZWxfaHVjX2xvYWRfc3RhdHVzKGh1YywgJnApOwotCi0JcmV0dXJuIDA7 Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9ndWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19p OTE1KG0tPnByaXZhdGUpOwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3Qu dWMuZ3VjOwotCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7 Ci0KLQlpZiAoIWludGVsX2d1Y19pc19zdXBwb3J0ZWQoZ3VjKSkKLQkJcmV0dXJuIC1FTk9ERVY7 Ci0KLQlpbnRlbF9ndWNfbG9hZF9zdGF0dXMoZ3VjLCAmcCk7Ci0JZHJtX3B1dHMoJnAsICJcbiIp OwotCWludGVsX2d1Y19sb2dfaW5mbygmZ3VjLT5sb2csICZwKTsKLQotCS8qIEFkZCBtb3JlIGFz IHJlcXVpcmVkIC4uLiAqLwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9ndWNf bG9nX2R1bXAoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBkcm1f aW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobm9kZSk7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0g JmRldl9wcml2LT5ndC51Yy5ndWM7Ci0JYm9vbCBkdW1wX2xvYWRfZXJyID0gISFub2RlLT5pbmZv X2VudC0+ZGF0YTsKLQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVy KG0pOwotCi0JaWYgKCFpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKGd1YykpCi0JCXJldHVybiAtRU5P REVWOwotCi0JcmV0dXJuIGludGVsX2d1Y19sb2dfZHVtcCgmZ3VjLT5sb2csICZwLCBkdW1wX2xv YWRfZXJyKTsKLX0KLQotc3RhdGljIGludCBpOTE1X2d1Y19sb2dfbGV2ZWxfZ2V0KHZvaWQgKmRh dGEsIHU2NCAqdmFsKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRh dGE7Ci0Jc3RydWN0IGludGVsX3VjICp1YyA9ICZkZXZfcHJpdi0+Z3QudWM7Ci0KLQlpZiAoIWlu dGVsX3VjX3VzZXNfZ3VjKHVjKSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQkqdmFsID0gaW50ZWxf Z3VjX2xvZ19nZXRfbGV2ZWwoJnVjLT5ndWMubG9nKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0 aWMgaW50IGk5MTVfZ3VjX2xvZ19sZXZlbF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKLXsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwotCXN0cnVjdCBpbnRlbF91 YyAqdWMgPSAmZGV2X3ByaXYtPmd0LnVjOwotCi0JaWYgKCFpbnRlbF91Y191c2VzX2d1Yyh1Yykp Ci0JCXJldHVybiAtRU5PREVWOwotCi0JcmV0dXJuIGludGVsX2d1Y19sb2dfc2V0X2xldmVsKCZ1 Yy0+Z3VjLmxvZywgdmFsKTsKLX0KLQotREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoaTkxNV9ndWNf bG9nX2xldmVsX2ZvcHMsCi0JCQlpOTE1X2d1Y19sb2dfbGV2ZWxfZ2V0LCBpOTE1X2d1Y19sb2df bGV2ZWxfc2V0LAotCQkJIiVsbGRcbiIpOwotCi1zdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19yZWxh eV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gaW5vZGUtPmlfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwotCXN0cnVjdCBpbnRlbF9ndWNfbG9nICps b2cgPSAmZ3VjLT5sb2c7Ci0KLQlpZiAoIWludGVsX2d1Y19pc19yZWFkeShndWMpKQotCQlyZXR1 cm4gLUVOT0RFVjsKLQotCWZpbGUtPnByaXZhdGVfZGF0YSA9IGxvZzsKLQotCXJldHVybiBpbnRl bF9ndWNfbG9nX3JlbGF5X29wZW4obG9nKTsKLX0KLQotc3RhdGljIHNzaXplX3QKLWk5MTVfZ3Vj X2xvZ19yZWxheV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJCSBjb25zdCBjaGFyIF9fdXNl ciAqdWJ1ZiwKLQkJCSBzaXplX3QgY250LAotCQkJIGxvZmZfdCAqcHBvcykKLXsKLQlzdHJ1Y3Qg aW50ZWxfZ3VjX2xvZyAqbG9nID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCWludCB2YWw7Ci0JaW50 IHJldDsKLQotCXJldCA9IGtzdHJ0b2ludF9mcm9tX3VzZXIodWJ1ZiwgY250LCAwLCAmdmFsKTsK LQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCS8qCi0JICogRW5hYmxlIGFuZCBzdGFy dCB0aGUgZ3VjIGxvZyByZWxheSBvbiB2YWx1ZSBvZiAxLgotCSAqIEZsdXNoIGxvZyByZWxheSBm b3IgYW55IG90aGVyIHZhbHVlLgotCSAqLwotCWlmICh2YWwgPT0gMSkKLQkJcmV0ID0gaW50ZWxf Z3VjX2xvZ19yZWxheV9zdGFydChsb2cpOwotCWVsc2UKLQkJaW50ZWxfZ3VjX2xvZ19yZWxheV9m bHVzaChsb2cpOwotCi0JcmV0dXJuIHJldCA/OiBjbnQ7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9n dWNfbG9nX3JlbGF5X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBpbm9kZS0+aV9wcml2YXRl OwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7Ci0KLQlpbnRlbF9n dWNfbG9nX3JlbGF5X2Nsb3NlKCZndWMtPmxvZyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBj b25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5MTVfZ3VjX2xvZ19yZWxheV9mb3BzID0gewot CS5vd25lciA9IFRISVNfTU9EVUxFLAotCS5vcGVuID0gaTkxNV9ndWNfbG9nX3JlbGF5X29wZW4s Ci0JLndyaXRlID0gaTkxNV9ndWNfbG9nX3JlbGF5X3dyaXRlLAotCS5yZWxlYXNlID0gaTkxNV9n dWNfbG9nX3JlbGF5X3JlbGVhc2UsCi19OwotCiBzdGF0aWMgaW50IGk5MTVfcnVudGltZV9wbV9z dGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwpAQCAtMTk4 OSwxMCArMTg1OCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2Rl YnVnZnNfbGlzdFtdID0gewogCXsiaTkxNV9nZW1fb2JqZWN0cyIsIGk5MTVfZ2VtX29iamVjdF9p bmZvLCAwfSwKIAl7Imk5MTVfZ2VtX2ZlbmNlX3JlZ3MiLCBpOTE1X2dlbV9mZW5jZV9yZWdzX2lu Zm8sIDB9LAogCXsiaTkxNV9nZW1faW50ZXJydXB0IiwgaTkxNV9pbnRlcnJ1cHRfaW5mbywgMH0s Ci0JeyJpOTE1X2d1Y19pbmZvIiwgaTkxNV9ndWNfaW5mbywgMH0sCi0JeyJpOTE1X2d1Y19sb2df ZHVtcCIsIGk5MTVfZ3VjX2xvZ19kdW1wLCAwfSwKLQl7Imk5MTVfZ3VjX2xvYWRfZXJyX2xvZ19k dW1wIiwgaTkxNV9ndWNfbG9nX2R1bXAsIDAsICh2b2lkICopMX0sCi0JeyJpOTE1X2h1Y19pbmZv IiwgaTkxNV9odWNfaW5mbywgMH0sCiAJeyJpOTE1X2ZyZXF1ZW5jeV9pbmZvIiwgaTkxNV9mcmVx dWVuY3lfaW5mbywgMH0sCiAJeyJpOTE1X3JpbmdfZnJlcV90YWJsZSIsIGk5MTVfcmluZ19mcmVx X3RhYmxlLCAwfSwKIAl7Imk5MTVfY29udGV4dF9zdGF0dXMiLCBpOTE1X2NvbnRleHRfc3RhdHVz LCAwfSwKQEAgLTIwMjAsOCArMTg4NSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9kZWJ1 Z2ZzX2ZpbGVzIHsKIAl7Imk5MTVfZXJyb3Jfc3RhdGUiLCAmaTkxNV9lcnJvcl9zdGF0ZV9mb3Bz fSwKIAl7Imk5MTVfZ3B1X2luZm8iLCAmaTkxNV9ncHVfaW5mb19mb3BzfSwKICNlbmRpZgotCXsi aTkxNV9ndWNfbG9nX2xldmVsIiwgJmk5MTVfZ3VjX2xvZ19sZXZlbF9mb3BzfSwKLQl7Imk5MTVf Z3VjX2xvZ19yZWxheSIsICZpOTE1X2d1Y19sb2dfcmVsYXlfZm9wc30sCiB9OwogCiB2b2lkIGk5 MTVfZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi0t IAoyLjI0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=