From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH 4/4] drm/i915/guc: kill the GuC client Date: Wed, 6 Nov 2019 14:25:50 -0800 Message-ID: <20191106222550.20752-5-daniele.ceraolospurio@intel.com> References: <20191106222550.20752-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AB0E6EE3B for ; Wed, 6 Nov 2019 22:26:21 +0000 (UTC) In-Reply-To: <20191106222550.20752-1-daniele.ceraolospurio@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2Ugbm93IG9ubHkgdXNlIDEgY2xpZW50IHdpdGhvdXQgYW55IHBsYW4gdG8gYWRkIG1vcmUuIFRo ZSBjbGllbnQgaXMKYWxzbyBvbmx5IGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFdRIGFu ZCB0aGUgcHJvY2VzcyBkZXNjLCBzbyB3ZQpjYW4ganVzdCBtb3ZlIHRob3NlIGluIHRoZSBpbnRl bF9ndWMgc3RydWN0dXJlIGFuZCBhbHdheXMgdXNlIHN0YWdlX2lkCjAuCgpTaWduZWQtb2ZmLWJ5 OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29t PgpDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CkNjOiBK b2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgpDYzogTWF0dGhldyBCcm9z dCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmVzZXQuYyAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWMuaCAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2d1Y19md2lmLmggICB8ICAgMSAtCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19zdWJtaXNzaW9uLmMgfCAyNzIgKysrKystLS0tLS0tLS0tLS0tCiAuLi4vZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmggfCAgNDUgKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgfCAgMTEgLQogNiBmaWxlcyBjaGFuZ2Vk LCA4NyBpbnNlcnRpb25zKCspLCAyNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3Jlc2V0LmMKaW5kZXggZjAzZTAwMDA1MWMxLi5kMmQ4OGQwYmM5ZDcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUg ImludGVsX3Jlc2V0LmgiCiAKICNpbmNsdWRlICJ1Yy9pbnRlbF9ndWMuaCIKKyNpbmNsdWRlICJ1 Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIgogCiAjZGVmaW5lIFJFU0VUX01BWF9SRVRSSUVTIDMK IApAQCAtMTA3MCw2ICsxMDcxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZ3RfcmVzZXRf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIGludCBpbnRlbF9lbmdpbmVf cmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiB7 CiAJc3RydWN0IGludGVsX2d0ICpndCA9IGVuZ2luZS0+Z3Q7CisJYm9vbCB1c2VzX2d1YyA9IGlu dGVsX2VuZ2luZV9pbl9ndWNfc3VibWlzc2lvbl9tb2RlKGVuZ2luZSk7CiAJaW50IHJldDsKIAog CUdFTV9UUkFDRSgiJXMgZmxhZ3M9JWx4XG4iLCBlbmdpbmUtPm5hbWUsIGd0LT5yZXNldC5mbGFn cyk7CkBAIC0xMDg1LDE0ICsxMDg3LDE0IEBAIGludCBpbnRlbF9lbmdpbmVfcmVzZXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiAJCQkgICAiUmVzZXR0 aW5nICVzIGZvciAlc1xuIiwgZW5naW5lLT5uYW1lLCBtc2cpOwogCWF0b21pY19pbmMoJmVuZ2lu ZS0+aTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2VuZ2luZV9jb3VudFtlbmdpbmUtPnVhYmlfY2xhc3Nd KTsKIAotCWlmICghZW5naW5lLT5ndC0+dWMuZ3VjLmV4ZWNidWZfY2xpZW50KQorCWlmICghdXNl c19ndWMpCiAJCXJldCA9IGludGVsX2d0X3Jlc2V0X2VuZ2luZShlbmdpbmUpOwogCWVsc2UKIAkJ cmV0ID0gaW50ZWxfZ3VjX3Jlc2V0X2VuZ2luZSgmZW5naW5lLT5ndC0+dWMuZ3VjLCBlbmdpbmUp OwogCWlmIChyZXQpIHsKIAkJLyogSWYgd2UgZmFpbCBoZXJlLCB3ZSBleHBlY3QgdG8gZmFsbGJh Y2sgdG8gYSBnbG9iYWwgcmVzZXQgKi8KIAkJRFJNX0RFQlVHX0RSSVZFUigiJXNGYWlsZWQgdG8g cmVzZXQgJXMsIHJldD0lZFxuIiwKLQkJCQkgZW5naW5lLT5ndC0+dWMuZ3VjLmV4ZWNidWZfY2xp ZW50ID8gIkd1QyAiIDogIiIsCisJCQkJIHVzZXNfZ3VjID8gIkd1QyAiIDogIiIsCiAJCQkJIGVu Z2luZS0+bmFtZSwgcmV0KTsKIAkJZ290byBvdXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWMuaAppbmRleCBiMmQxNzY2ZTY4OWEuLmNkMDljOTEyZTM2MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKQEAgLTQ2LDkgKzQ2LDEzIEBAIHN0cnVjdCBp bnRlbF9ndWMgewogCiAJc3RydWN0IGk5MTVfdm1hICpzdGFnZV9kZXNjX3Bvb2w7CiAJdm9pZCAq c3RhZ2VfZGVzY19wb29sX3ZhZGRyOwotCXN0cnVjdCBpZGEgc3RhZ2VfaWRzOwogCi0Jc3RydWN0 IGludGVsX2d1Y19jbGllbnQgKmV4ZWNidWZfY2xpZW50OworCXN0cnVjdCBpOTE1X3ZtYSAqd29y a3F1ZXVlOworCXZvaWQgKndvcmtxdWV1ZV92YWRkcjsKKwlzcGlubG9ja190IHdxX2xvY2s7CisK KwlzdHJ1Y3QgaTkxNV92bWEgKnByb2NfZGVzYzsKKwl2b2lkICpwcm9jX2Rlc2NfdmFkZHI7CiAK IAkvKiBDb250cm9sIHBhcmFtcyBmb3IgZncgaW5pdGlhbGl6YXRpb24gKi8KIAl1MzIgcGFyYW1z W0dVQ19DVExfTUFYX0RXT1JEU107CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF9ndWNfZndpZi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf Z3VjX2Z3aWYuaAppbmRleCAxZThlNGFmN2Q5Y2EuLmE2YjczM2MxNDZjOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3aWYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCkBAIC0zMSw3ICszMSw2IEBACiAK ICNkZWZpbmUgR1VDX0RPT1JCRUxMX0lOVkFMSUQJCTI1NgogCi0jZGVmaW5lIEdVQ19QRF9TSVpF CQkJKFBBR0VfU0laRSkKICNkZWZpbmUgR1VDX1dRX1NJWkUJCQkoUEFHRV9TSVpFICogMikKIAog LyogV29yayBxdWV1ZSBpdGVtIGhlYWRlciBkZWZpbml0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMDA4OGMzNDE3 NjQxLi43MTc4ODU4OWY5ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtMjcsMjQgKzI3LDEzIEBACiAgKiBjb2RlKSBtYXRj aGVzIHRoZSBvbGQgc3VibWlzc2lvbiBtb2RlbCBhbmQgd2lsbCBiZSB1cGRhdGVkIGFzIHBhcnQg b2YgdGhlCiAgKiB1cGdyYWRlIHRvIHRoZSBuZXcgZmxvdy4KICAqCi0gKiBHdUMgY2xpZW50Ogot ICogQSBpbnRlbF9ndWNfY2xpZW50IHJlZmVycyB0byBhIHN1Ym1pc3Npb24gcGF0aCB0aHJvdWdo IEd1Qy4gQ3VycmVudGx5LCB0aGVyZQotICogaXMgb25seSBvbmUgY2xpZW50LCB3aGljaCBpcyBj aGFyZ2VkIHdpdGggYWxsIHN1Ym1pc3Npb25zIHRvIHRoZSBHdUMuIFRoaXMKLSAqIHN0cnVjdCBp cyB0aGUgb3duZXIgb2YgYSBwcm9jZXNzIGRlc2NyaXB0b3IgYW5kIGEgd29ya3F1ZXVlIChib3Ro IG9mIHRoZW0KLSAqIGluc2lkZSBhIHNpbmdsZSBnZW0gb2JqZWN0IHRoYXQgY29udGFpbnMgYWxs IHJlcXVpcmVkIHBhZ2VzIGZvciB0aGVzZQotICogZWxlbWVudHMpLgotICoKICAqIEd1QyBzdGFn ZSBkZXNjcmlwdG9yOgogICogRHVyaW5nIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIGFsbG9j YXRlcyBhIHN0YXRpYyBwb29sIG9mIDEwMjQgc3VjaAotICogZGVzY3JpcHRvcnMsIGFuZCBzaGFy ZXMgdGhlbSB3aXRoIHRoZSBHdUMuCi0gKiBDdXJyZW50bHksIHRoZXJlIGV4aXN0cyBhIDE6MSBt YXBwaW5nIGJldHdlZW4gYSBpbnRlbF9ndWNfY2xpZW50IGFuZCBhCi0gKiBndWNfc3RhZ2VfZGVz YyAodmlhIHRoZSBjbGllbnQncyBzdGFnZV9pZCksIHNvIGVmZmVjdGl2ZWx5IG9ubHkgb25lCi0g KiBnZXRzIHVzZWQuIFRoaXMgc3RhZ2UgZGVzY3JpcHRvciBsZXRzIHRoZSBHdUMga25vdyBhYm91 dCB0aGUgd29ya3F1ZXVlIGFuZAorICogZGVzY3JpcHRvcnMsIGFuZCBzaGFyZXMgdGhlbSB3aXRo IHRoZSBHdUMuIEN1cnJlbnRseSwgd2Ugb25seSB1c2Ugb25lCisgKiBkZXNjcmlwdG9yLiBUaGlz IHN0YWdlIGRlc2NyaXB0b3IgbGV0cyB0aGUgR3VDIGtub3cgYWJvdXQgdGhlIHdvcmtxdWV1ZSBh bmQKICAqIHByb2Nlc3MgZGVzY3JpcHRvci4gVGhlb3JldGljYWxseSwgaXQgYWxzbyBsZXRzIHRo ZSBHdUMga25vdyBhYm91dCBvdXIgSFcKICAqIGNvbnRleHRzIChjb250ZXh0IElELCBldGMuLi4p LCBidXQgd2UgYWN0dWFsbHkgZW1wbG95IGEga2luZCBvZiBzdWJtaXNzaW9uCi0gKiB3aGVyZSB0 aGUgR3VDIHVzZXMgdGhlIExSQ0Egc2VudCB2aWEgdGhlIHdvcmsgaXRlbSBpbnN0ZWFkICh0aGUg c2luZ2xlCi0gKiBndWNfc3RhZ2VfZGVzYyBhc3NvY2lhdGVkIHRvIGV4ZWNidWYgY2xpZW50IGNv bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZQotICogZGVmYXVsdCBrZXJuZWwgY29udGV4dCBv bmx5LCBidXQgdGhpcyBpcyBlc3NlbnRpYWxseSB1bnVzZWQpLiBUaGlzIGlzIGNhbGxlZAorICog d2hlcmUgdGhlIEd1QyB1c2VzIHRoZSBMUkNBIHNlbnQgdmlhIHRoZSB3b3JrIGl0ZW0gaW5zdGVh ZC4gVGhpcyBpcyBjYWxsZWQKICAqIGEgInByb3h5IiBzdWJtaXNzaW9uLgogICoKICAqIFRoZSBT Y3JhdGNoIHJlZ2lzdGVyczoKQEAgLTcxLDMzICs2MCw0NSBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCBpOTE1X3ByaW9saXN0ICp0b19wcmlvbGlzdChzdHJ1Y3QgcmJfbm9kZSAqcmIpCiAJcmV0dXJu IHJiX2VudHJ5KHJiLCBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCwgbm9kZSk7CiB9CiAKLXN0YXRpYyBp bmxpbmUgYm9vbCBpc19oaWdoX3ByaW9yaXR5KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGll bnQpCitzdGF0aWMgc3RydWN0IGd1Y19zdGFnZV9kZXNjICpfX2dldF9zdGFnZV9kZXNjKHN0cnVj dCBpbnRlbF9ndWMgKmd1YywgdTMyIGlkKQogewotCXJldHVybiAoY2xpZW50LT5wcmlvcml0eSA9 PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdIIHx8Ci0JCWNsaWVudC0+cHJpb3JpdHkgPT0g R1VDX0NMSUVOVF9QUklPUklUWV9ISUdIKTsKKwlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmJhc2Ug PSBndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKKworCXJldHVybiAmYmFzZVtpZF07CiB9CiAK LXN0YXRpYyBzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKl9fZ2V0X3N0YWdlX2Rlc2Moc3RydWN0IGlu dGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3N0YXRpYyBpbnQgZ3VjX3dvcmtxdWV1ZV9jcmVhdGUo c3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqYmFzZSA9 IGNsaWVudC0+Z3VjLT5zdGFnZV9kZXNjX3Bvb2xfdmFkZHI7Ci0KLQlyZXR1cm4gJmJhc2VbY2xp ZW50LT5zdGFnZV9pZF07CisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRfbWFwX3ZtYShn dWMsIEdVQ19XUV9TSVpFLCAmZ3VjLT53b3JrcXVldWUsCisJCQkJCSAgICAgICZndWMtPndvcmtx dWV1ZV92YWRkcik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2Mg KgotX19nZXRfcHJvY2Vzc19kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCitz dGF0aWMgdm9pZCBndWNfd29ya3F1ZXVlX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKQog ewotCXJldHVybiBjbGllbnQtPnZhZGRyOworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZn dWMtPndvcmtxdWV1ZSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwogfQogCiAvKgogICogSW5pdGlh bGlzZSB0aGUgcHJvY2VzcyBkZXNjcmlwdG9yIHNoYXJlZCB3aXRoIHRoZSBHdUMgZmlybXdhcmUu CiAgKi8KLXN0YXRpYyB2b2lkIGd1Y19wcm9jX2Rlc2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2Ns aWVudCAqY2xpZW50KQorc3RhdGljIGludCBndWNfcHJvY19kZXNjX2NyZWF0ZShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCit7CisJY29uc3QgdTMyIHNpemUgPSBQQUdFX0FMSUdOKHNpemVvZihzdHJ1 Y3QgZ3VjX3Byb2Nlc3NfZGVzYykpOworCisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRf bWFwX3ZtYShndWMsIHNpemUsICZndWMtPnByb2NfZGVzYywKKwkJCQkJICAgICAgJmd1Yy0+cHJv Y19kZXNjX3ZhZGRyKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19kZXN0cm95KHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3Vj LT5wcm9jX2Rlc2MsIEk5MTVfVk1BX1JFTEVBU0VfTUFQKTsKK30KKworc3RhdGljIHZvaWQgZ3Vj X3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKIAlzdHJ1Y3QgZ3VjX3By b2Nlc3NfZGVzYyAqZGVzYzsKIAotCWRlc2MgPSBtZW1zZXQoX19nZXRfcHJvY2Vzc19kZXNjKGNs aWVudCksIDAsIHNpemVvZigqZGVzYykpOworCWRlc2MgPSBtZW1zZXQoZ3VjLT5wcm9jX2Rlc2Nf dmFkZHIsIDAsIHNpemVvZigqZGVzYykpOwogCiAJLyoKIAkgKiBYWFg6IHBEb29yYmVsbCBhbmQg V1FWQmFzZUFkZHJlc3MgYXJlIHBvaW50ZXJzIGluIHByb2Nlc3MgYWRkcmVzcwpAQCAtMTA4LDM5 ICsxMDksMjcgQEAgc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9n dWNfY2xpZW50ICpjbGllbnQpCiAJZGVzYy0+d3FfYmFzZV9hZGRyID0gMDsKIAlkZXNjLT5kYl9i YXNlX2FkZHIgPSAwOwogCi0JZGVzYy0+c3RhZ2VfaWQgPSBjbGllbnQtPnN0YWdlX2lkOwogCWRl c2MtPndxX3NpemVfYnl0ZXMgPSBHVUNfV1FfU0laRTsKIAlkZXNjLT53cV9zdGF0dXMgPSBXUV9T VEFUVVNfQUNUSVZFOwotCWRlc2MtPnByaW9yaXR5ID0gY2xpZW50LT5wcmlvcml0eTsKKwlkZXNj LT5wcmlvcml0eSA9IEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX05PUk1BTDsKIH0KIAotc3RhdGlj IHZvaWQgZ3VjX3Byb2NfZGVzY19maW5pKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQp CitzdGF0aWMgdm9pZCBndWNfcHJvY19kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQog ewotCXN0cnVjdCBndWNfcHJvY2Vzc19kZXNjICpkZXNjOwotCi0JZGVzYyA9IF9fZ2V0X3Byb2Nl c3NfZGVzYyhjbGllbnQpOwotCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKKwltZW1z ZXQoZ3VjLT5wcm9jX2Rlc2NfdmFkZHIsIDAsIHNpemVvZihzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVz YykpOwogfQogCiBzdGF0aWMgaW50IGd1Y19zdGFnZV9kZXNjX3Bvb2xfY3JlYXRlKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKIHsKIAl1MzIgc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZW9mKHN0cnVjdCBn dWNfc3RhZ2VfZGVzYykgKgogCQkJICAgICAgR1VDX01BWF9TVEFHRV9ERVNDUklQVE9SUyk7Ci0J aW50IHJldDsKLQotCXJldCA9IGludGVsX2d1Y19hbGxvY2F0ZV9hbmRfbWFwX3ZtYShndWMsIHNp emUsICZndWMtPnN0YWdlX2Rlc2NfcG9vbCwKLQkJCQkJICAgICAmZ3VjLT5zdGFnZV9kZXNjX3Bv b2xfdmFkZHIpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlpZGFfaW5pdCgmZ3VjLT5z dGFnZV9pZHMpOwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRf bWFwX3ZtYShndWMsIHNpemUsICZndWMtPnN0YWdlX2Rlc2NfcG9vbCwKKwkJCQkJICAgICAgJmd1 Yy0+c3RhZ2VfZGVzY19wb29sX3ZhZGRyKTsKIH0KIAogc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rl c2NfcG9vbF9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKLQlpZGFfZGVzdHJveSgm Z3VjLT5zdGFnZV9pZHMpOwogCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPnN0YWdl X2Rlc2NfcG9vbCwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwogfQogCkBAIC0xNDgsNTggKzEzNyw0 OSBAQCBzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19wb29sX2Rlc3Ryb3koc3RydWN0IGludGVs X2d1YyAqZ3VjKQogICogSW5pdGlhbGlzZS9jbGVhciB0aGUgc3RhZ2UgZGVzY3JpcHRvciBzaGFy ZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgogICoKICAqIFRoaXMgZGVzY3JpcHRvciB0ZWxscyB0 aGUgR3VDIHdoZXJlIChpbiBHR1RUIHNwYWNlKSB0byBmaW5kIHRoZSBpbXBvcnRhbnQKLSAqIGRh dGEgc3RydWN0dXJlcyByZWxhdGluZyB0byB0aGlzIGNsaWVudCAocHJvY2VzcyBkZXNjcmlwdG9y LCB3cml0ZSBxdWV1ZSwKKyAqIGRhdGEgc3RydWN0dXJlcyByZWxhdGVkIHRvIHdvcmsgc3VibWlz c2lvbiAocHJvY2VzcyBkZXNjcmlwdG9yLCB3cml0ZSBxdWV1ZSwKICAqIGV0YykuCiAgKi8KLXN0 YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNs aWVudCkKK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1YyAq Z3VjKQogewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGNsaWVudC0+Z3VjOwogCXN0cnVjdCBn dWNfc3RhZ2VfZGVzYyAqZGVzYzsKLQl1MzIgZ2Z4X2FkZHI7CiAKLQlkZXNjID0gX19nZXRfc3Rh Z2VfZGVzYyhjbGllbnQpOworCS8qIHdlIG9ubHkgdXNlIDEgc3RhZ2UgZGVzYywgc28gaGFyZGNv ZGUgaXQgdG8gMCAqLworCWRlc2MgPSBfX2dldF9zdGFnZV9kZXNjKGd1YywgMCk7CiAJbWVtc2V0 KGRlc2MsIDAsIHNpemVvZigqZGVzYykpOwogCiAJZGVzYy0+YXR0cmlidXRlID0gR1VDX1NUQUdF X0RFU0NfQVRUUl9BQ1RJVkUgfAogCQkJICBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTDsKLQlp ZiAoaXNfaGlnaF9wcmlvcml0eShjbGllbnQpKQotCQlkZXNjLT5hdHRyaWJ1dGUgfD0gR1VDX1NU QUdFX0RFU0NfQVRUUl9QUkVFTVBUOwotCWRlc2MtPnN0YWdlX2lkID0gY2xpZW50LT5zdGFnZV9p ZDsKLQlkZXNjLT5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3JpdHk7CiAKLQkvKgotCSAqIFRoZSBw cm9jZXNzIGRlc2NyaXB0b3IgYW5kIHdvcmtxdWV1ZSBhcmUgYWxsIHBhcnRzIG9mIHRoZSBjbGll bnQKLQkgKiBvYmplY3QsIHdoaWNoIHRoZSBHdUMgd2lsbCByZWZlcmVuY2UgdmlhIHRoZSBHR1RU Ci0JICovCi0JZ2Z4X2FkZHIgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjbGllbnQtPnZt YSk7Ci0JZGVzYy0+cHJvY2Vzc19kZXNjID0gZ2Z4X2FkZHI7Ci0JZGVzYy0+d3FfYWRkciA9IGdm eF9hZGRyICsgR1VDX1BEX1NJWkU7Ci0JZGVzYy0+d3Ffc2l6ZSA9IEdVQ19XUV9TSVpFOworCWRl c2MtPnN0YWdlX2lkID0gMDsKKwlkZXNjLT5wcmlvcml0eSA9IEdVQ19DTElFTlRfUFJJT1JJVFlf S01EX05PUk1BTDsKIAotCWRlc2MtPmRlc2NfcHJpdmF0ZSA9IHB0cl90b191NjQoY2xpZW50KTsK KwlkZXNjLT5wcm9jZXNzX2Rlc2MgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPnBy b2NfZGVzYyk7CisJZGVzYy0+d3FfYWRkciA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1 Yy0+d29ya3F1ZXVlKTsKKwlkZXNjLT53cV9zaXplID0gR1VDX1dRX1NJWkU7CiB9CiAKLXN0YXRp YyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVu dCkKK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQogewogCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVzYzsKIAotCWRlc2MgPSBfX2dldF9zdGFn ZV9kZXNjKGNsaWVudCk7CisJZGVzYyA9IF9fZ2V0X3N0YWdlX2Rlc2MoZ3VjLCAwKTsKIAltZW1z ZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7CiB9CiAKIC8qIENvbnN0cnVjdCBhIFdvcmsgSXRl bSBhbmQgYXBwZW5kIGl0IHRvIHRoZSBHdUMncyBXb3JrIFF1ZXVlICovCi1zdGF0aWMgdm9pZCBn dWNfd3FfaXRlbV9hcHBlbmQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKK3N0YXRp YyB2b2lkIGd1Y193cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJCQkgICAg ICAgdTMyIHRhcmdldF9lbmdpbmUsIHUzMiBjb250ZXh0X2Rlc2MsCiAJCQkgICAgICAgdTMyIHJp bmdfdGFpbCwgdTMyIGZlbmNlX2lkKQogewogCS8qIHdxaV9sZW4gaXMgaW4gRFdvcmRzLCBhbmQg ZG9lcyBub3QgaW5jbHVkZSB0aGUgb25lLXdvcmQgaGVhZGVyICovCiAJY29uc3Qgc2l6ZV90IHdx aV9zaXplID0gc2l6ZW9mKHN0cnVjdCBndWNfd3FfaXRlbSk7CiAJY29uc3QgdTMyIHdxaV9sZW4g PSB3cWlfc2l6ZSAvIHNpemVvZih1MzIpIC0gMTsKLQlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAq ZGVzYyA9IF9fZ2V0X3Byb2Nlc3NfZGVzYyhjbGllbnQpOworCXN0cnVjdCBndWNfcHJvY2Vzc19k ZXNjICpkZXNjID0gZ3VjLT5wcm9jX2Rlc2NfdmFkZHI7CiAJc3RydWN0IGd1Y193cV9pdGVtICp3 cWk7CiAJdTMyIHdxX29mZjsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmNsaWVudC0+d3FfbG9j ayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3VjLT53cV9sb2NrKTsKIAogCS8qIEZvciBub3cg d29ya3F1ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBidWZmZXIgaXMgMiBwYWdlcy4gU28g d2UKIAkgKiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ugd2hlcmUgc3RydWN0dXJlIHdxaSBpcyBh Y3Jvc3MgcGFnZSwgbmVpdGhlcgpAQCAtMjIwLDcgKzIwMCw3IEBAIHN0YXRpYyB2b2lkIGd1Y193 cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50LAogCUdFTV9CVUdf T04od3Ffb2ZmICYgKHdxaV9zaXplIC0gMSkpOwogCiAJLyogV1Egc3RhcnRzIGZyb20gdGhlIHBh Z2UgYWZ0ZXIgcHJvY2Vzc19kZXNjICovCi0Jd3FpID0gY2xpZW50LT52YWRkciArIHdxX29mZiAr IEdVQ19QRF9TSVpFOworCXdxaSA9IGd1Yy0+d29ya3F1ZXVlX3ZhZGRyICsgd3Ffb2ZmOwogCiAJ LyogTm93IGZpbGwgaW4gdGhlIDQtd29yZCB3b3JrIHF1ZXVlIGl0ZW0gKi8KIAl3cWktPmhlYWRl ciA9IFdRX1RZUEVfSU5PUkRFUiB8CkBAIC0yMzgsMTIgKzIxOCwxMSBAQCBzdGF0aWMgdm9pZCBn dWNfd3FfaXRlbV9hcHBlbmQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKIAogc3Rh dGljIHZvaWQgZ3VjX2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yywgc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCA9IGd1 Yy0+ZXhlY2J1Zl9jbGllbnQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEt PmVuZ2luZTsKIAl1MzIgY3R4X2Rlc2MgPSBsb3dlcl8zMl9iaXRzKHJxLT5od19jb250ZXh0LT5s cmNfZGVzYyk7CiAJdTMyIHJpbmdfdGFpbCA9IGludGVsX3Jpbmdfc2V0X3RhaWwocnEtPnJpbmcs IHJxLT50YWlsKSAvIHNpemVvZih1NjQpOwogCi0JZ3VjX3dxX2l0ZW1fYXBwZW5kKGNsaWVudCwg ZW5naW5lLT5ndWNfaWQsIGN0eF9kZXNjLAorCWd1Y193cV9pdGVtX2FwcGVuZChndWMsIGVuZ2lu ZS0+Z3VjX2lkLCBjdHhfZGVzYywKIAkJCSAgIHJpbmdfdGFpbCwgcnEtPmZlbmNlLnNlcW5vKTsK IH0KIApAQCAtMjY3LDkgKzI0Niw4IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqKmVu ZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5ndC0+dWMuZ3VjOwotCXN0 cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQgPSBndWMtPmV4ZWNidWZfY2xpZW50OwogCi0J c3Bpbl9sb2NrKCZjbGllbnQtPndxX2xvY2spOworCXNwaW5fbG9jaygmZ3VjLT53cV9sb2NrKTsK IAogCWRvIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSAqb3V0Kys7CkBAIC0yNzgsNyAr MjU2LDcgQEAgc3RhdGljIHZvaWQgZ3VjX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCiAJCWd1Y19hZGRfcmVxdWVzdChndWMsIHJxKTsKIAl9IHdoaWxlIChvdXQgIT0gZW5k KTsKIAotCXNwaW5fdW5sb2NrKCZjbGllbnQtPndxX2xvY2spOworCXNwaW5fdW5sb2NrKCZndWMt PndxX2xvY2spOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBycV9wcmlvKGNvbnN0IHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxKQpAQCAtNTI5LDEyNSArNTA3LDYgQEAgc3RhdGljIHZvaWQgZ3VjX3Jl c2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAgKiBwYXRoIG9mIGd1 Y19zdWJtaXQoKSBhYm92ZS4KICAqLwogCi0vKioKLSAqIGd1Y19jbGllbnRfYWxsb2MoKSAtIEFs bG9jYXRlIGFuIGludGVsX2d1Y19jbGllbnQKLSAqIEBndWM6CXRoZSBpbnRlbF9ndWMgc3RydWN0 dXJlCi0gKiBAcHJpb3JpdHk6CWZvdXIgbGV2ZWxzIHByaW9yaXR5IF9DUklUSUNBTCwgX0hJR0gs IF9OT1JNQUwgYW5kIF9MT1cKLSAqCQlUaGUga2VybmVsIGNsaWVudCB0byByZXBsYWNlIEV4ZWNM aXN0IHN1Ym1pc3Npb24gaXMgY3JlYXRlZCB3aXRoCi0gKgkJTk9STUFMIHByaW9yaXR5LiBQcmlv cml0eSBvZiBhIGNsaWVudCBmb3Igc2NoZWR1bGVyIGNhbiBiZSBISUdILAotICoJCXdoaWxlIGEg cHJlZW1wdGlvbiBjb250ZXh0IGNhbiB1c2UgQ1JJVElDQUwuCi0gKgotICogUmV0dXJuOglBbiBp bnRlbF9ndWNfY2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLCBlbHNlIE5VTEwuCi0gKi8KLXN0YXRp YyBzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqCi1ndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywgdTMyIHByaW9yaXR5KQotewotCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpj bGllbnQ7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0JaW50IHJldDsK LQotCWNsaWVudCA9IGt6YWxsb2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAo IWNsaWVudCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQljbGllbnQtPmd1YyA9IGd1 YzsKLQljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7Ci0Jc3Bpbl9sb2NrX2luaXQoJmNsaWVu dC0+d3FfbG9jayk7Ci0KLQlyZXQgPSBpZGFfc2ltcGxlX2dldCgmZ3VjLT5zdGFnZV9pZHMsIDAs IEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMsCi0JCQkgICAgIEdGUF9LRVJORUwpOwotCWlmIChy ZXQgPCAwKQotCQlnb3RvIGVycl9jbGllbnQ7Ci0KLQljbGllbnQtPnN0YWdlX2lkID0gcmV0Owot Ci0JLyogVGhlIGZpcnN0IHBhZ2UgaXMgZG9vcmJlbGwvcHJvY19kZXNjLiBUd28gZm9sbG93ZWQg cGFnZXMgYXJlIHdxLiAqLwotCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBHVUNf UERfU0laRSArIEdVQ19XUV9TSVpFKTsKLQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJcmV0ID0gUFRS X0VSUih2bWEpOwotCQlnb3RvIGVycl9pZDsKLQl9Ci0KLQkvKiBXZSdsbCBrZWVwIGp1c3QgdGhl IGZpcnN0IChkb29yYmVsbC9wcm9jKSBwYWdlIHBlcm1hbmVudGx5IGttYXAnZC4gKi8KLQljbGll bnQtPnZtYSA9IHZtYTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5v YmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQlyZXQgPSBQVFJfRVJS KHZhZGRyKTsKLQkJZ290byBlcnJfdm1hOwotCX0KLQljbGllbnQtPnZhZGRyID0gdmFkZHI7Ci0K LQlEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwOiBzdGFnZV9pZCAl dVxuIiwKLQkJCSBwcmlvcml0eSwgY2xpZW50LCBjbGllbnQtPnN0YWdlX2lkKTsKLQotCXJldHVy biBjbGllbnQ7Ci0KLWVycl92bWE6Ci0JaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmNsaWVu dC0+dm1hLCAwKTsKLWVycl9pZDoKLQlpZGFfc2ltcGxlX3JlbW92ZSgmZ3VjLT5zdGFnZV9pZHMs IGNsaWVudC0+c3RhZ2VfaWQpOwotZXJyX2NsaWVudDoKLQlrZnJlZShjbGllbnQpOwotCXJldHVy biBFUlJfUFRSKHJldCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1Y3Qg aW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNl KCZjbGllbnQtPnZtYSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotCWlkYV9zaW1wbGVfcmVtb3Zl KCZjbGllbnQtPmd1Yy0+c3RhZ2VfaWRzLCBjbGllbnQtPnN0YWdlX2lkKTsKLQlrZnJlZShjbGll bnQpOwotfQotCi1zdGF0aWMgaW50IGd1Y19jbGllbnRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCi17Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudDsKLQotCUdFTV9CVUdf T04oZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGd1 YywgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMKTsKLQlpZiAoSVNfRVJSKGNsaWVudCkp IHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEd1QyBjbGllbnQgZm9yIHN1Ym1pc3Np b24hXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoY2xpZW50KTsKLQl9Ci0JZ3VjLT5leGVjYnVmX2Ns aWVudCA9IGNsaWVudDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY2xpZW50 c19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Ns aWVudCAqY2xpZW50OwotCi0JY2xpZW50ID0gZmV0Y2hfYW5kX3plcm8oJmd1Yy0+ZXhlY2J1Zl9j bGllbnQpOwotCWlmIChjbGllbnQpCi0JCWd1Y19jbGllbnRfZnJlZShjbGllbnQpOwotfQotCi1z dGF0aWMgdm9pZCBfX2d1Y19jbGllbnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpj bGllbnQpCi17Ci0JZ3VjX3Byb2NfZGVzY19pbml0KGNsaWVudCk7Ci0JZ3VjX3N0YWdlX2Rlc2Nf aW5pdChjbGllbnQpOwotfQotCi1zdGF0aWMgdm9pZCBfX2d1Y19jbGllbnRfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWd1Y19zdGFnZV9kZXNjX2ZpbmkoY2xp ZW50KTsKLQlndWNfcHJvY19kZXNjX2ZpbmkoY2xpZW50KTsKLX0KLQotc3RhdGljIHZvaWQgZ3Vj X2NsaWVudHNfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlfX2d1Y19jbGllbnRf ZW5hYmxlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY2xpZW50 c19kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpZiAoZ3VjLT5leGVjYnVmX2Ns aWVudCkKLQkJX19ndWNfY2xpZW50X2Rpc2FibGUoZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci19Ci0K IC8qCiAgKiBTZXQgdXAgdGhlIG1lbW9yeSByZXNvdXJjZXMgdG8gYmUgc2hhcmVkIHdpdGggdGhl IEd1QyAodmlhIHRoZSBHR1RUKQogICogYXQgZmlybXdhcmUgbG9hZGluZyB0aW1lLgpAQCAtNjY4 LDEyICs1MjcsMjAgQEAgaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVs X2d1YyAqZ3VjKQogCSAqLwogCUdFTV9CVUdfT04oIWd1Yy0+c3RhZ2VfZGVzY19wb29sKTsKIAot CXJldCA9IGd1Y19jbGllbnRzX2NyZWF0ZShndWMpOworCXJldCA9IGd1Y193b3JrcXVldWVfY3Jl YXRlKGd1Yyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfcG9vbDsKIAorCXJldCA9IGd1Y19wcm9j X2Rlc2NfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfd29ya3F1ZXVlOworCisJ c3Bpbl9sb2NrX2luaXQoJmd1Yy0+d3FfbG9jayk7CisKIAlyZXR1cm4gMDsKIAorZXJyX3dvcmtx dWV1ZToKKwlndWNfd29ya3F1ZXVlX2Rlc3Ryb3koZ3VjKTsKIGVycl9wb29sOgogCWd1Y19zdGFn ZV9kZXNjX3Bvb2xfZGVzdHJveShndWMpOwogCXJldHVybiByZXQ7CkBAIC02ODEsMTAgKzU0OCwx MSBAQCBpbnQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiAKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiB7Ci0JZ3VjX2NsaWVudHNfZGVzdHJveShndWMpOwotCi0JaWYgKGd1Yy0+c3RhZ2VfZGVzY19w b29sKQorCWlmIChndWMtPnN0YWdlX2Rlc2NfcG9vbCkgeworCQlndWNfcHJvY19kZXNjX2Rlc3Ry b3koZ3VjKTsKKwkJZ3VjX3dvcmtxdWV1ZV9kZXN0cm95KGd1Yyk7CiAJCWd1Y19zdGFnZV9kZXNj X3Bvb2xfZGVzdHJveShndWMpOworCX0KIH0KIAogc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNf Y2FwdHVyZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQpAQCAtODE2LDkgKzY4NCw4IEBAIHZvaWQgaW50 ZWxfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAkJICAgICBz aXplb2Yoc3RydWN0IGd1Y193cV9pdGVtKSAqCiAJCSAgICAgSTkxNV9OVU1fRU5HSU5FUyA+IEdV Q19XUV9TSVpFKTsKIAotCUdFTV9CVUdfT04oIWd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotCi0JZ3Vj X2NsaWVudHNfZW5hYmxlKGd1Yyk7CisJZ3VjX3Byb2NfZGVzY19pbml0KGd1Yyk7CisJZ3VjX3N0 YWdlX2Rlc2NfaW5pdChndWMpOwogCiAJLyogVGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wg b2YgRUxTUCAoZXhlY2xpc3RzKSAqLwogCWd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoZ3QpOwpAQCAt ODM2LDcgKzcwMyw5IEBAIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMpCiAJR0VNX0JVR19PTihndC0+YXdha2UpOyAvKiBHVCBzaG91bGQgYmUg cGFya2VkIGZpcnN0ICovCiAKIAlndWNfaW50ZXJydXB0c19yZWxlYXNlKGd0KTsKLQlndWNfY2xp ZW50c19kaXNhYmxlKGd1Yyk7CisKKwlndWNfc3RhZ2VfZGVzY19maW5pKGd1Yyk7CisJZ3VjX3By b2NfZGVzY19maW5pKGd1Yyk7CiB9CiAKIHN0YXRpYyBib29sIF9fZ3VjX3N1Ym1pc3Npb25fc3Vw cG9ydChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCkBAIC04NTQsMyArNzIzLDggQEAgdm9pZCBpbnRl bF9ndWNfc3VibWlzc2lvbl9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKIAln dWMtPnN1Ym1pc3Npb25fc3VwcG9ydGVkID0gX19ndWNfc3VibWlzc2lvbl9zdXBwb3J0KGd1Yyk7 CiB9CisKK2Jvb2wgaW50ZWxfZW5naW5lX2luX2d1Y19zdWJtaXNzaW9uX21vZGUoY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXJldHVybiBlbmdpbmUtPnNldF9kZWZh dWx0X3N1Ym1pc3Npb24gPT0gZ3VjX3NldF9kZWZhdWx0X3N1Ym1pc3Npb247Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaAppbmRleCBl MmRlYjRlNmY0MmEuLmU0MDJhMjkzMjU5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCkBAIC02LDQ4ICs2LDEwIEBACiAjaWZuZGVm IF9JTlRFTF9HVUNfU1VCTUlTU0lPTl9IXwogI2RlZmluZSBfSU5URUxfR1VDX1NVQk1JU1NJT05f SF8KIAotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMu aD4KIAotI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV90eXBlcy5oIgotCi0jaW5jbHVkZSAiaTkx NV9nZW0uaCIKLSNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCi0KLXN0cnVjdCBkcm1faTkxNV9w cml2YXRlOwotCi0vKgotICogVGhpcyBzdHJ1Y3R1cmUgcHJpbWFyaWx5IGRlc2NyaWJlcyB0aGUg R0VNIG9iamVjdCBzaGFyZWQgd2l0aCB0aGUgR3VDLgotICogVGhlIHNwZWNzIHNvbWV0aW1lcyBy ZWZlciB0byB0aGlzIG9iamVjdCBhcyBhICJHdUMgY29udGV4dCIsIGJ1dCB3ZSB1c2UKLSAqIHRo ZSB0ZXJtICJjbGllbnQiIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGhhcmR3YXJlIGNvbnRleHRz LiBUaGlzCi0gKiBHRU0gb2JqZWN0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgbGlmZXRpbWUgb2Yg b3VyIGludGVyYWN0aW9uIHdpdGgKLSAqIHRoZSBHdUMsIGJlaW5nIGFsbG9jYXRlZCBiZWZvcmUg dGhlIEd1QyBpcyBsb2FkZWQgd2l0aCBpdHMgZmlybXdhcmUuCi0gKiBCZWNhdXNlIHRoZXJlJ3Mg bm8gd2F5IHRvIHVwZGF0ZSB0aGUgYWRkcmVzcyB1c2VkIGJ5IHRoZSBHdUMgYWZ0ZXIKLSAqIGlu aXRpYWxpc2F0aW9uLCB0aGUgc2hhcmVkIG9iamVjdCBtdXN0IHN0YXkgcGlubmVkIGludG8gdGhl IEdHVFQgYXMKLSAqIGxvbmcgYXMgdGhlIEd1QyBpcyBpbiB1c2UuIFdlIGFsc28ga2VlcCB0aGUg Zmlyc3QgcGFnZSAob25seSkgbWFwcGVkCi0gKiBpbnRvIGtlcm5lbCBhZGRyZXNzIHNwYWNlLCBh cyBpdCBpbmNsdWRlcyBzaGFyZWQgZGF0YSB0aGF0IG11c3QgYmUKLSAqIHVwZGF0ZWQgb24gZXZl cnkgcmVxdWVzdCBzdWJtaXNzaW9uLgotICoKLSAqIFRoZSBzaW5nbGUgR0VNIG9iamVjdCBkZXNj cmliZWQgaGVyZSBpcyBhY3R1YWxseSBtYWRlIHVwIG9mIHNldmVyYWwKLSAqIHNlcGFyYXRlIGFy ZWFzLCBhcyBmYXIgYXMgdGhlIEd1QyBpcyBjb25jZXJuZWQuIFRoZSBmaXJzdCBwYWdlIChrZXB0 Ci0gKiBrbWFwJ2QpIGluY2x1ZGVzIHRoZSAicHJvY2VzcyBkZXNjcmlwdG9yIiB3aGljaCBob2xk cyBzZXF1ZW5jZSBkYXRhIGZvcgotICogdGhlIGRvb3JiZWxsLCBhbmQgb25lIGNhY2hlbGluZSB3 aGljaCBhY3R1YWxseSAqaXMqIHRoZSBkb29yYmVsbDsgYQotICogd3JpdGUgdG8gdGhpcyB3aWxs ICJyaW5nIHRoZSBkb29yYmVsbCIgKGkuZS4gc2VuZCBhbiBpbnRlcnJ1cHQgdG8gdGhlCi0gKiBH dUMpLiBUaGUgc3Vic2VxdWVudCAgcGFnZXMgb2YgdGhlIGNsaWVudCBvYmplY3QgY29uc3RpdHV0 ZSB0aGUgd29yawotICogcXVldWUgKGEgY2lyY3VsYXIgYXJyYXkgb2Ygd29yayBpdGVtcyksIGFn YWluIGRlc2NyaWJlZCBpbiB0aGUgcHJvY2VzcwotICogZGVzY3JpcHRvci4gV29yayBxdWV1ZSBw YWdlcyBhcmUgbWFwcGVkIG1vbWVudGFyaWx5IGFzIHJlcXVpcmVkLgotICovCi1zdHJ1Y3QgaW50 ZWxfZ3VjX2NsaWVudCB7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0J c3RydWN0IGludGVsX2d1YyAqZ3VjOwotCi0JLyogYml0bWFwIG9mIChob3N0KSBlbmdpbmUgaWRz ICovCi0JdTMyIHByaW9yaXR5OwotCXUzMiBzdGFnZV9pZDsKLQotCS8qIFByb3RlY3RzIEd1QyBj bGllbnQncyBXUSBhY2Nlc3MgKi8KLQlzcGlubG9ja190IHdxX2xvY2s7Ci19Oworc3RydWN0IGlu dGVsX2d1YzsKK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CiAKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1p c3Npb25faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwogaW50IGludGVsX2d1Y19z dWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKQEAgLTU2LDUgKzE4LDYgQEAg dm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7 CiB2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsK IGludCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp Owogdm9pZCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAq Z3VjKTsKK2Jvb2wgaW50ZWxfZW5naW5lX2luX2d1Y19zdWJtaXNzaW9uX21vZGUoY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCmluZGV4IDVkNTk3NGU3ZjNlZC4uZjMyZTdiMDE2MTk3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTgwMiwyMyArMTgwMiwxMiBAQCBzdGF0aWMgdm9p ZCBpOTE1X2d1Y19sb2dfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiBzdGF0aWMgaW50IGk5MTVf Z3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQljb25z dCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKLQlzdHJ1Y3Qg aW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKIAogCWlmICgh VVNFU19HVUMoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWk5MTVfZ3VjX2xvZ19p bmZvKG0sIGRldl9wcml2KTsKIAotCWlmICghVVNFU19HVUNfU1VCTUlTU0lPTihkZXZfcHJpdikp Ci0JCXJldHVybiAwOwotCi0JR0VNX0JVR19PTighZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQlz ZXFfcHJpbnRmKG0sICJcbkd1QyBleGVjYnVmIGNsaWVudCBAICVwOlxuIiwgY2xpZW50KTsKLQlz ZXFfcHJpbnRmKG0sICJcdFByaW9yaXR5ICVkLCBHdUMgc3RhZ2UgaW5kZXg6ICV1XG4iLAotCQkg ICBjbGllbnQtPnByaW9yaXR5LAotCQkgICBjbGllbnQtPnN0YWdlX2lkKTsKIAkvKiBBZGQgbW9y ZSBhcyByZXF1aXJlZCAuLi4gKi8KIAogCXJldHVybiAwOwotLSAKMi4yMy4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= 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=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 A2C8FFC6194 for ; Wed, 6 Nov 2019 22:26:22 +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 7DFAC2166E for ; Wed, 6 Nov 2019 22:26:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7DFAC2166E 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 1EF3C6EE39; Wed, 6 Nov 2019 22:26:22 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AB0E6EE3B for ; Wed, 6 Nov 2019 22:26:21 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2019 14:26:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,275,1569308400"; d="scan'208";a="214399337" Received: from dceraolo-linux.fm.intel.com ([10.1.27.145]) by orsmga002.jf.intel.com with ESMTP; 06 Nov 2019 14:26:20 -0800 From: Daniele Ceraolo Spurio To: intel-gfx@lists.freedesktop.org Date: Wed, 6 Nov 2019 14:25:50 -0800 Message-Id: <20191106222550.20752-5-daniele.ceraolospurio@intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191106222550.20752-1-daniele.ceraolospurio@intel.com> References: <20191106222550.20752-1-daniele.ceraolospurio@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 4/4] drm/i915/guc: kill the GuC client X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 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" Message-ID: <20191106222550.-AJXvgp2NrDHnhIgJNAUp9ETNn_TltfCSVvn1--ek1I@z> V2Ugbm93IG9ubHkgdXNlIDEgY2xpZW50IHdpdGhvdXQgYW55IHBsYW4gdG8gYWRkIG1vcmUuIFRo ZSBjbGllbnQgaXMKYWxzbyBvbmx5IGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFdRIGFu ZCB0aGUgcHJvY2VzcyBkZXNjLCBzbyB3ZQpjYW4ganVzdCBtb3ZlIHRob3NlIGluIHRoZSBpbnRl bF9ndWMgc3RydWN0dXJlIGFuZCBhbHdheXMgdXNlIHN0YWdlX2lkCjAuCgpTaWduZWQtb2ZmLWJ5 OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29t PgpDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CkNjOiBK b2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgpDYzogTWF0dGhldyBCcm9z dCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmVzZXQuYyAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWMuaCAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2d1Y19md2lmLmggICB8ICAgMSAtCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19zdWJtaXNzaW9uLmMgfCAyNzIgKysrKystLS0tLS0tLS0tLS0tCiAuLi4vZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmggfCAgNDUgKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgfCAgMTEgLQogNiBmaWxlcyBjaGFuZ2Vk LCA4NyBpbnNlcnRpb25zKCspLCAyNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3Jlc2V0LmMKaW5kZXggZjAzZTAwMDA1MWMxLi5kMmQ4OGQwYmM5ZDcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUg ImludGVsX3Jlc2V0LmgiCiAKICNpbmNsdWRlICJ1Yy9pbnRlbF9ndWMuaCIKKyNpbmNsdWRlICJ1 Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIgogCiAjZGVmaW5lIFJFU0VUX01BWF9SRVRSSUVTIDMK IApAQCAtMTA3MCw2ICsxMDcxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZ3RfcmVzZXRf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIGludCBpbnRlbF9lbmdpbmVf cmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiB7 CiAJc3RydWN0IGludGVsX2d0ICpndCA9IGVuZ2luZS0+Z3Q7CisJYm9vbCB1c2VzX2d1YyA9IGlu dGVsX2VuZ2luZV9pbl9ndWNfc3VibWlzc2lvbl9tb2RlKGVuZ2luZSk7CiAJaW50IHJldDsKIAog CUdFTV9UUkFDRSgiJXMgZmxhZ3M9JWx4XG4iLCBlbmdpbmUtPm5hbWUsIGd0LT5yZXNldC5mbGFn cyk7CkBAIC0xMDg1LDE0ICsxMDg3LDE0IEBAIGludCBpbnRlbF9lbmdpbmVfcmVzZXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBjb25zdCBjaGFyICptc2cpCiAJCQkgICAiUmVzZXR0 aW5nICVzIGZvciAlc1xuIiwgZW5naW5lLT5uYW1lLCBtc2cpOwogCWF0b21pY19pbmMoJmVuZ2lu ZS0+aTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2VuZ2luZV9jb3VudFtlbmdpbmUtPnVhYmlfY2xhc3Nd KTsKIAotCWlmICghZW5naW5lLT5ndC0+dWMuZ3VjLmV4ZWNidWZfY2xpZW50KQorCWlmICghdXNl c19ndWMpCiAJCXJldCA9IGludGVsX2d0X3Jlc2V0X2VuZ2luZShlbmdpbmUpOwogCWVsc2UKIAkJ cmV0ID0gaW50ZWxfZ3VjX3Jlc2V0X2VuZ2luZSgmZW5naW5lLT5ndC0+dWMuZ3VjLCBlbmdpbmUp OwogCWlmIChyZXQpIHsKIAkJLyogSWYgd2UgZmFpbCBoZXJlLCB3ZSBleHBlY3QgdG8gZmFsbGJh Y2sgdG8gYSBnbG9iYWwgcmVzZXQgKi8KIAkJRFJNX0RFQlVHX0RSSVZFUigiJXNGYWlsZWQgdG8g cmVzZXQgJXMsIHJldD0lZFxuIiwKLQkJCQkgZW5naW5lLT5ndC0+dWMuZ3VjLmV4ZWNidWZfY2xp ZW50ID8gIkd1QyAiIDogIiIsCisJCQkJIHVzZXNfZ3VjID8gIkd1QyAiIDogIiIsCiAJCQkJIGVu Z2luZS0+bmFtZSwgcmV0KTsKIAkJZ290byBvdXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWMuaAppbmRleCBiMmQxNzY2ZTY4OWEuLmNkMDljOTEyZTM2MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKQEAgLTQ2LDkgKzQ2LDEzIEBAIHN0cnVjdCBp bnRlbF9ndWMgewogCiAJc3RydWN0IGk5MTVfdm1hICpzdGFnZV9kZXNjX3Bvb2w7CiAJdm9pZCAq c3RhZ2VfZGVzY19wb29sX3ZhZGRyOwotCXN0cnVjdCBpZGEgc3RhZ2VfaWRzOwogCi0Jc3RydWN0 IGludGVsX2d1Y19jbGllbnQgKmV4ZWNidWZfY2xpZW50OworCXN0cnVjdCBpOTE1X3ZtYSAqd29y a3F1ZXVlOworCXZvaWQgKndvcmtxdWV1ZV92YWRkcjsKKwlzcGlubG9ja190IHdxX2xvY2s7CisK KwlzdHJ1Y3QgaTkxNV92bWEgKnByb2NfZGVzYzsKKwl2b2lkICpwcm9jX2Rlc2NfdmFkZHI7CiAK IAkvKiBDb250cm9sIHBhcmFtcyBmb3IgZncgaW5pdGlhbGl6YXRpb24gKi8KIAl1MzIgcGFyYW1z W0dVQ19DVExfTUFYX0RXT1JEU107CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF9ndWNfZndpZi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf Z3VjX2Z3aWYuaAppbmRleCAxZThlNGFmN2Q5Y2EuLmE2YjczM2MxNDZjOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3aWYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCkBAIC0zMSw3ICszMSw2IEBACiAK ICNkZWZpbmUgR1VDX0RPT1JCRUxMX0lOVkFMSUQJCTI1NgogCi0jZGVmaW5lIEdVQ19QRF9TSVpF CQkJKFBBR0VfU0laRSkKICNkZWZpbmUgR1VDX1dRX1NJWkUJCQkoUEFHRV9TSVpFICogMikKIAog LyogV29yayBxdWV1ZSBpdGVtIGhlYWRlciBkZWZpbml0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMDA4OGMzNDE3 NjQxLi43MTc4ODU4OWY5ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtMjcsMjQgKzI3LDEzIEBACiAgKiBjb2RlKSBtYXRj aGVzIHRoZSBvbGQgc3VibWlzc2lvbiBtb2RlbCBhbmQgd2lsbCBiZSB1cGRhdGVkIGFzIHBhcnQg b2YgdGhlCiAgKiB1cGdyYWRlIHRvIHRoZSBuZXcgZmxvdy4KICAqCi0gKiBHdUMgY2xpZW50Ogot ICogQSBpbnRlbF9ndWNfY2xpZW50IHJlZmVycyB0byBhIHN1Ym1pc3Npb24gcGF0aCB0aHJvdWdo IEd1Qy4gQ3VycmVudGx5LCB0aGVyZQotICogaXMgb25seSBvbmUgY2xpZW50LCB3aGljaCBpcyBj aGFyZ2VkIHdpdGggYWxsIHN1Ym1pc3Npb25zIHRvIHRoZSBHdUMuIFRoaXMKLSAqIHN0cnVjdCBp cyB0aGUgb3duZXIgb2YgYSBwcm9jZXNzIGRlc2NyaXB0b3IgYW5kIGEgd29ya3F1ZXVlIChib3Ro IG9mIHRoZW0KLSAqIGluc2lkZSBhIHNpbmdsZSBnZW0gb2JqZWN0IHRoYXQgY29udGFpbnMgYWxs IHJlcXVpcmVkIHBhZ2VzIGZvciB0aGVzZQotICogZWxlbWVudHMpLgotICoKICAqIEd1QyBzdGFn ZSBkZXNjcmlwdG9yOgogICogRHVyaW5nIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIGFsbG9j YXRlcyBhIHN0YXRpYyBwb29sIG9mIDEwMjQgc3VjaAotICogZGVzY3JpcHRvcnMsIGFuZCBzaGFy ZXMgdGhlbSB3aXRoIHRoZSBHdUMuCi0gKiBDdXJyZW50bHksIHRoZXJlIGV4aXN0cyBhIDE6MSBt YXBwaW5nIGJldHdlZW4gYSBpbnRlbF9ndWNfY2xpZW50IGFuZCBhCi0gKiBndWNfc3RhZ2VfZGVz YyAodmlhIHRoZSBjbGllbnQncyBzdGFnZV9pZCksIHNvIGVmZmVjdGl2ZWx5IG9ubHkgb25lCi0g KiBnZXRzIHVzZWQuIFRoaXMgc3RhZ2UgZGVzY3JpcHRvciBsZXRzIHRoZSBHdUMga25vdyBhYm91 dCB0aGUgd29ya3F1ZXVlIGFuZAorICogZGVzY3JpcHRvcnMsIGFuZCBzaGFyZXMgdGhlbSB3aXRo IHRoZSBHdUMuIEN1cnJlbnRseSwgd2Ugb25seSB1c2Ugb25lCisgKiBkZXNjcmlwdG9yLiBUaGlz IHN0YWdlIGRlc2NyaXB0b3IgbGV0cyB0aGUgR3VDIGtub3cgYWJvdXQgdGhlIHdvcmtxdWV1ZSBh bmQKICAqIHByb2Nlc3MgZGVzY3JpcHRvci4gVGhlb3JldGljYWxseSwgaXQgYWxzbyBsZXRzIHRo ZSBHdUMga25vdyBhYm91dCBvdXIgSFcKICAqIGNvbnRleHRzIChjb250ZXh0IElELCBldGMuLi4p LCBidXQgd2UgYWN0dWFsbHkgZW1wbG95IGEga2luZCBvZiBzdWJtaXNzaW9uCi0gKiB3aGVyZSB0 aGUgR3VDIHVzZXMgdGhlIExSQ0Egc2VudCB2aWEgdGhlIHdvcmsgaXRlbSBpbnN0ZWFkICh0aGUg c2luZ2xlCi0gKiBndWNfc3RhZ2VfZGVzYyBhc3NvY2lhdGVkIHRvIGV4ZWNidWYgY2xpZW50IGNv bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZQotICogZGVmYXVsdCBrZXJuZWwgY29udGV4dCBv bmx5LCBidXQgdGhpcyBpcyBlc3NlbnRpYWxseSB1bnVzZWQpLiBUaGlzIGlzIGNhbGxlZAorICog d2hlcmUgdGhlIEd1QyB1c2VzIHRoZSBMUkNBIHNlbnQgdmlhIHRoZSB3b3JrIGl0ZW0gaW5zdGVh ZC4gVGhpcyBpcyBjYWxsZWQKICAqIGEgInByb3h5IiBzdWJtaXNzaW9uLgogICoKICAqIFRoZSBT Y3JhdGNoIHJlZ2lzdGVyczoKQEAgLTcxLDMzICs2MCw0NSBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCBpOTE1X3ByaW9saXN0ICp0b19wcmlvbGlzdChzdHJ1Y3QgcmJfbm9kZSAqcmIpCiAJcmV0dXJu IHJiX2VudHJ5KHJiLCBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCwgbm9kZSk7CiB9CiAKLXN0YXRpYyBp bmxpbmUgYm9vbCBpc19oaWdoX3ByaW9yaXR5KHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGll bnQpCitzdGF0aWMgc3RydWN0IGd1Y19zdGFnZV9kZXNjICpfX2dldF9zdGFnZV9kZXNjKHN0cnVj dCBpbnRlbF9ndWMgKmd1YywgdTMyIGlkKQogewotCXJldHVybiAoY2xpZW50LT5wcmlvcml0eSA9 PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdIIHx8Ci0JCWNsaWVudC0+cHJpb3JpdHkgPT0g R1VDX0NMSUVOVF9QUklPUklUWV9ISUdIKTsKKwlzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKmJhc2Ug PSBndWMtPnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKKworCXJldHVybiAmYmFzZVtpZF07CiB9CiAK LXN0YXRpYyBzdHJ1Y3QgZ3VjX3N0YWdlX2Rlc2MgKl9fZ2V0X3N0YWdlX2Rlc2Moc3RydWN0IGlu dGVsX2d1Y19jbGllbnQgKmNsaWVudCkKK3N0YXRpYyBpbnQgZ3VjX3dvcmtxdWV1ZV9jcmVhdGUo c3RydWN0IGludGVsX2d1YyAqZ3VjKQogewotCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqYmFzZSA9 IGNsaWVudC0+Z3VjLT5zdGFnZV9kZXNjX3Bvb2xfdmFkZHI7Ci0KLQlyZXR1cm4gJmJhc2VbY2xp ZW50LT5zdGFnZV9pZF07CisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRfbWFwX3ZtYShn dWMsIEdVQ19XUV9TSVpFLCAmZ3VjLT53b3JrcXVldWUsCisJCQkJCSAgICAgICZndWMtPndvcmtx dWV1ZV92YWRkcik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2Mg KgotX19nZXRfcHJvY2Vzc19kZXNjKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQpCitz dGF0aWMgdm9pZCBndWNfd29ya3F1ZXVlX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAqZ3VjKQog ewotCXJldHVybiBjbGllbnQtPnZhZGRyOworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZn dWMtPndvcmtxdWV1ZSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwogfQogCiAvKgogICogSW5pdGlh bGlzZSB0aGUgcHJvY2VzcyBkZXNjcmlwdG9yIHNoYXJlZCB3aXRoIHRoZSBHdUMgZmlybXdhcmUu CiAgKi8KLXN0YXRpYyB2b2lkIGd1Y19wcm9jX2Rlc2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjX2Ns aWVudCAqY2xpZW50KQorc3RhdGljIGludCBndWNfcHJvY19kZXNjX2NyZWF0ZShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCit7CisJY29uc3QgdTMyIHNpemUgPSBQQUdFX0FMSUdOKHNpemVvZihzdHJ1 Y3QgZ3VjX3Byb2Nlc3NfZGVzYykpOworCisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRf bWFwX3ZtYShndWMsIHNpemUsICZndWMtPnByb2NfZGVzYywKKwkJCQkJICAgICAgJmd1Yy0+cHJv Y19kZXNjX3ZhZGRyKTsKK30KKworc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19kZXN0cm95KHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKK3sKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3Vj LT5wcm9jX2Rlc2MsIEk5MTVfVk1BX1JFTEVBU0VfTUFQKTsKK30KKworc3RhdGljIHZvaWQgZ3Vj X3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKIAlzdHJ1Y3QgZ3VjX3By b2Nlc3NfZGVzYyAqZGVzYzsKIAotCWRlc2MgPSBtZW1zZXQoX19nZXRfcHJvY2Vzc19kZXNjKGNs aWVudCksIDAsIHNpemVvZigqZGVzYykpOworCWRlc2MgPSBtZW1zZXQoZ3VjLT5wcm9jX2Rlc2Nf dmFkZHIsIDAsIHNpemVvZigqZGVzYykpOwogCiAJLyoKIAkgKiBYWFg6IHBEb29yYmVsbCBhbmQg V1FWQmFzZUFkZHJlc3MgYXJlIHBvaW50ZXJzIGluIHByb2Nlc3MgYWRkcmVzcwpAQCAtMTA4LDM5 ICsxMDksMjcgQEAgc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9n dWNfY2xpZW50ICpjbGllbnQpCiAJZGVzYy0+d3FfYmFzZV9hZGRyID0gMDsKIAlkZXNjLT5kYl9i YXNlX2FkZHIgPSAwOwogCi0JZGVzYy0+c3RhZ2VfaWQgPSBjbGllbnQtPnN0YWdlX2lkOwogCWRl c2MtPndxX3NpemVfYnl0ZXMgPSBHVUNfV1FfU0laRTsKIAlkZXNjLT53cV9zdGF0dXMgPSBXUV9T VEFUVVNfQUNUSVZFOwotCWRlc2MtPnByaW9yaXR5ID0gY2xpZW50LT5wcmlvcml0eTsKKwlkZXNj LT5wcmlvcml0eSA9IEdVQ19DTElFTlRfUFJJT1JJVFlfS01EX05PUk1BTDsKIH0KIAotc3RhdGlj IHZvaWQgZ3VjX3Byb2NfZGVzY19maW5pKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQp CitzdGF0aWMgdm9pZCBndWNfcHJvY19kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQog ewotCXN0cnVjdCBndWNfcHJvY2Vzc19kZXNjICpkZXNjOwotCi0JZGVzYyA9IF9fZ2V0X3Byb2Nl c3NfZGVzYyhjbGllbnQpOwotCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKKwltZW1z ZXQoZ3VjLT5wcm9jX2Rlc2NfdmFkZHIsIDAsIHNpemVvZihzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVz YykpOwogfQogCiBzdGF0aWMgaW50IGd1Y19zdGFnZV9kZXNjX3Bvb2xfY3JlYXRlKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKIHsKIAl1MzIgc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZW9mKHN0cnVjdCBn dWNfc3RhZ2VfZGVzYykgKgogCQkJICAgICAgR1VDX01BWF9TVEFHRV9ERVNDUklQVE9SUyk7Ci0J aW50IHJldDsKLQotCXJldCA9IGludGVsX2d1Y19hbGxvY2F0ZV9hbmRfbWFwX3ZtYShndWMsIHNp emUsICZndWMtPnN0YWdlX2Rlc2NfcG9vbCwKLQkJCQkJICAgICAmZ3VjLT5zdGFnZV9kZXNjX3Bv b2xfdmFkZHIpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlpZGFfaW5pdCgmZ3VjLT5z dGFnZV9pZHMpOwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIGludGVsX2d1Y19hbGxvY2F0ZV9hbmRf bWFwX3ZtYShndWMsIHNpemUsICZndWMtPnN0YWdlX2Rlc2NfcG9vbCwKKwkJCQkJICAgICAgJmd1 Yy0+c3RhZ2VfZGVzY19wb29sX3ZhZGRyKTsKIH0KIAogc3RhdGljIHZvaWQgZ3VjX3N0YWdlX2Rl c2NfcG9vbF9kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKLQlpZGFfZGVzdHJveSgm Z3VjLT5zdGFnZV9pZHMpOwogCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPnN0YWdl X2Rlc2NfcG9vbCwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwogfQogCkBAIC0xNDgsNTggKzEzNyw0 OSBAQCBzdGF0aWMgdm9pZCBndWNfc3RhZ2VfZGVzY19wb29sX2Rlc3Ryb3koc3RydWN0IGludGVs X2d1YyAqZ3VjKQogICogSW5pdGlhbGlzZS9jbGVhciB0aGUgc3RhZ2UgZGVzY3JpcHRvciBzaGFy ZWQgd2l0aCB0aGUgR3VDIGZpcm13YXJlLgogICoKICAqIFRoaXMgZGVzY3JpcHRvciB0ZWxscyB0 aGUgR3VDIHdoZXJlIChpbiBHR1RUIHNwYWNlKSB0byBmaW5kIHRoZSBpbXBvcnRhbnQKLSAqIGRh dGEgc3RydWN0dXJlcyByZWxhdGluZyB0byB0aGlzIGNsaWVudCAocHJvY2VzcyBkZXNjcmlwdG9y LCB3cml0ZSBxdWV1ZSwKKyAqIGRhdGEgc3RydWN0dXJlcyByZWxhdGVkIHRvIHdvcmsgc3VibWlz c2lvbiAocHJvY2VzcyBkZXNjcmlwdG9yLCB3cml0ZSBxdWV1ZSwKICAqIGV0YykuCiAgKi8KLXN0 YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNs aWVudCkKK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2luaXQoc3RydWN0IGludGVsX2d1YyAq Z3VjKQogewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGNsaWVudC0+Z3VjOwogCXN0cnVjdCBn dWNfc3RhZ2VfZGVzYyAqZGVzYzsKLQl1MzIgZ2Z4X2FkZHI7CiAKLQlkZXNjID0gX19nZXRfc3Rh Z2VfZGVzYyhjbGllbnQpOworCS8qIHdlIG9ubHkgdXNlIDEgc3RhZ2UgZGVzYywgc28gaGFyZGNv ZGUgaXQgdG8gMCAqLworCWRlc2MgPSBfX2dldF9zdGFnZV9kZXNjKGd1YywgMCk7CiAJbWVtc2V0 KGRlc2MsIDAsIHNpemVvZigqZGVzYykpOwogCiAJZGVzYy0+YXR0cmlidXRlID0gR1VDX1NUQUdF X0RFU0NfQVRUUl9BQ1RJVkUgfAogCQkJICBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTDsKLQlp ZiAoaXNfaGlnaF9wcmlvcml0eShjbGllbnQpKQotCQlkZXNjLT5hdHRyaWJ1dGUgfD0gR1VDX1NU QUdFX0RFU0NfQVRUUl9QUkVFTVBUOwotCWRlc2MtPnN0YWdlX2lkID0gY2xpZW50LT5zdGFnZV9p ZDsKLQlkZXNjLT5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3JpdHk7CiAKLQkvKgotCSAqIFRoZSBw cm9jZXNzIGRlc2NyaXB0b3IgYW5kIHdvcmtxdWV1ZSBhcmUgYWxsIHBhcnRzIG9mIHRoZSBjbGll bnQKLQkgKiBvYmplY3QsIHdoaWNoIHRoZSBHdUMgd2lsbCByZWZlcmVuY2UgdmlhIHRoZSBHR1RU Ci0JICovCi0JZ2Z4X2FkZHIgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBjbGllbnQtPnZt YSk7Ci0JZGVzYy0+cHJvY2Vzc19kZXNjID0gZ2Z4X2FkZHI7Ci0JZGVzYy0+d3FfYWRkciA9IGdm eF9hZGRyICsgR1VDX1BEX1NJWkU7Ci0JZGVzYy0+d3Ffc2l6ZSA9IEdVQ19XUV9TSVpFOworCWRl c2MtPnN0YWdlX2lkID0gMDsKKwlkZXNjLT5wcmlvcml0eSA9IEdVQ19DTElFTlRfUFJJT1JJVFlf S01EX05PUk1BTDsKIAotCWRlc2MtPmRlc2NfcHJpdmF0ZSA9IHB0cl90b191NjQoY2xpZW50KTsK KwlkZXNjLT5wcm9jZXNzX2Rlc2MgPSBpbnRlbF9ndWNfZ2d0dF9vZmZzZXQoZ3VjLCBndWMtPnBy b2NfZGVzYyk7CisJZGVzYy0+d3FfYWRkciA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1 Yy0+d29ya3F1ZXVlKTsKKwlkZXNjLT53cV9zaXplID0gR1VDX1dRX1NJWkU7CiB9CiAKLXN0YXRp YyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVu dCkKK3N0YXRpYyB2b2lkIGd1Y19zdGFnZV9kZXNjX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQogewogCXN0cnVjdCBndWNfc3RhZ2VfZGVzYyAqZGVzYzsKIAotCWRlc2MgPSBfX2dldF9zdGFn ZV9kZXNjKGNsaWVudCk7CisJZGVzYyA9IF9fZ2V0X3N0YWdlX2Rlc2MoZ3VjLCAwKTsKIAltZW1z ZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7CiB9CiAKIC8qIENvbnN0cnVjdCBhIFdvcmsgSXRl bSBhbmQgYXBwZW5kIGl0IHRvIHRoZSBHdUMncyBXb3JrIFF1ZXVlICovCi1zdGF0aWMgdm9pZCBn dWNfd3FfaXRlbV9hcHBlbmQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKK3N0YXRp YyB2b2lkIGd1Y193cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJCQkgICAg ICAgdTMyIHRhcmdldF9lbmdpbmUsIHUzMiBjb250ZXh0X2Rlc2MsCiAJCQkgICAgICAgdTMyIHJp bmdfdGFpbCwgdTMyIGZlbmNlX2lkKQogewogCS8qIHdxaV9sZW4gaXMgaW4gRFdvcmRzLCBhbmQg ZG9lcyBub3QgaW5jbHVkZSB0aGUgb25lLXdvcmQgaGVhZGVyICovCiAJY29uc3Qgc2l6ZV90IHdx aV9zaXplID0gc2l6ZW9mKHN0cnVjdCBndWNfd3FfaXRlbSk7CiAJY29uc3QgdTMyIHdxaV9sZW4g PSB3cWlfc2l6ZSAvIHNpemVvZih1MzIpIC0gMTsKLQlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAq ZGVzYyA9IF9fZ2V0X3Byb2Nlc3NfZGVzYyhjbGllbnQpOworCXN0cnVjdCBndWNfcHJvY2Vzc19k ZXNjICpkZXNjID0gZ3VjLT5wcm9jX2Rlc2NfdmFkZHI7CiAJc3RydWN0IGd1Y193cV9pdGVtICp3 cWk7CiAJdTMyIHdxX29mZjsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmNsaWVudC0+d3FfbG9j ayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3VjLT53cV9sb2NrKTsKIAogCS8qIEZvciBub3cg d29ya3F1ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBidWZmZXIgaXMgMiBwYWdlcy4gU28g d2UKIAkgKiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ugd2hlcmUgc3RydWN0dXJlIHdxaSBpcyBh Y3Jvc3MgcGFnZSwgbmVpdGhlcgpAQCAtMjIwLDcgKzIwMCw3IEBAIHN0YXRpYyB2b2lkIGd1Y193 cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50LAogCUdFTV9CVUdf T04od3Ffb2ZmICYgKHdxaV9zaXplIC0gMSkpOwogCiAJLyogV1Egc3RhcnRzIGZyb20gdGhlIHBh Z2UgYWZ0ZXIgcHJvY2Vzc19kZXNjICovCi0Jd3FpID0gY2xpZW50LT52YWRkciArIHdxX29mZiAr IEdVQ19QRF9TSVpFOworCXdxaSA9IGd1Yy0+d29ya3F1ZXVlX3ZhZGRyICsgd3Ffb2ZmOwogCiAJ LyogTm93IGZpbGwgaW4gdGhlIDQtd29yZCB3b3JrIHF1ZXVlIGl0ZW0gKi8KIAl3cWktPmhlYWRl ciA9IFdRX1RZUEVfSU5PUkRFUiB8CkBAIC0yMzgsMTIgKzIxOCwxMSBAQCBzdGF0aWMgdm9pZCBn dWNfd3FfaXRlbV9hcHBlbmQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKIAogc3Rh dGljIHZvaWQgZ3VjX2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yywgc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCA9IGd1 Yy0+ZXhlY2J1Zl9jbGllbnQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEt PmVuZ2luZTsKIAl1MzIgY3R4X2Rlc2MgPSBsb3dlcl8zMl9iaXRzKHJxLT5od19jb250ZXh0LT5s cmNfZGVzYyk7CiAJdTMyIHJpbmdfdGFpbCA9IGludGVsX3Jpbmdfc2V0X3RhaWwocnEtPnJpbmcs IHJxLT50YWlsKSAvIHNpemVvZih1NjQpOwogCi0JZ3VjX3dxX2l0ZW1fYXBwZW5kKGNsaWVudCwg ZW5naW5lLT5ndWNfaWQsIGN0eF9kZXNjLAorCWd1Y193cV9pdGVtX2FwcGVuZChndWMsIGVuZ2lu ZS0+Z3VjX2lkLCBjdHhfZGVzYywKIAkJCSAgIHJpbmdfdGFpbCwgcnEtPmZlbmNlLnNlcW5vKTsK IH0KIApAQCAtMjY3LDkgKzI0Niw4IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAgc3RydWN0IGk5MTVfcmVxdWVzdCAqKmVu ZCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZW5naW5lLT5ndC0+dWMuZ3VjOwotCXN0 cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpjbGllbnQgPSBndWMtPmV4ZWNidWZfY2xpZW50OwogCi0J c3Bpbl9sb2NrKCZjbGllbnQtPndxX2xvY2spOworCXNwaW5fbG9jaygmZ3VjLT53cV9sb2NrKTsK IAogCWRvIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSAqb3V0Kys7CkBAIC0yNzgsNyAr MjU2LDcgQEAgc3RhdGljIHZvaWQgZ3VjX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCiAJCWd1Y19hZGRfcmVxdWVzdChndWMsIHJxKTsKIAl9IHdoaWxlIChvdXQgIT0gZW5k KTsKIAotCXNwaW5fdW5sb2NrKCZjbGllbnQtPndxX2xvY2spOworCXNwaW5fdW5sb2NrKCZndWMt PndxX2xvY2spOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBycV9wcmlvKGNvbnN0IHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxKQpAQCAtNTI5LDEyNSArNTA3LDYgQEAgc3RhdGljIHZvaWQgZ3VjX3Jl c2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAgKiBwYXRoIG9mIGd1 Y19zdWJtaXQoKSBhYm92ZS4KICAqLwogCi0vKioKLSAqIGd1Y19jbGllbnRfYWxsb2MoKSAtIEFs bG9jYXRlIGFuIGludGVsX2d1Y19jbGllbnQKLSAqIEBndWM6CXRoZSBpbnRlbF9ndWMgc3RydWN0 dXJlCi0gKiBAcHJpb3JpdHk6CWZvdXIgbGV2ZWxzIHByaW9yaXR5IF9DUklUSUNBTCwgX0hJR0gs IF9OT1JNQUwgYW5kIF9MT1cKLSAqCQlUaGUga2VybmVsIGNsaWVudCB0byByZXBsYWNlIEV4ZWNM aXN0IHN1Ym1pc3Npb24gaXMgY3JlYXRlZCB3aXRoCi0gKgkJTk9STUFMIHByaW9yaXR5LiBQcmlv cml0eSBvZiBhIGNsaWVudCBmb3Igc2NoZWR1bGVyIGNhbiBiZSBISUdILAotICoJCXdoaWxlIGEg cHJlZW1wdGlvbiBjb250ZXh0IGNhbiB1c2UgQ1JJVElDQUwuCi0gKgotICogUmV0dXJuOglBbiBp bnRlbF9ndWNfY2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLCBlbHNlIE5VTEwuCi0gKi8KLXN0YXRp YyBzdHJ1Y3QgaW50ZWxfZ3VjX2NsaWVudCAqCi1ndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywgdTMyIHByaW9yaXR5KQotewotCXN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpj bGllbnQ7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0JaW50IHJldDsK LQotCWNsaWVudCA9IGt6YWxsb2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAo IWNsaWVudCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQljbGllbnQtPmd1YyA9IGd1 YzsKLQljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7Ci0Jc3Bpbl9sb2NrX2luaXQoJmNsaWVu dC0+d3FfbG9jayk7Ci0KLQlyZXQgPSBpZGFfc2ltcGxlX2dldCgmZ3VjLT5zdGFnZV9pZHMsIDAs IEdVQ19NQVhfU1RBR0VfREVTQ1JJUFRPUlMsCi0JCQkgICAgIEdGUF9LRVJORUwpOwotCWlmIChy ZXQgPCAwKQotCQlnb3RvIGVycl9jbGllbnQ7Ci0KLQljbGllbnQtPnN0YWdlX2lkID0gcmV0Owot Ci0JLyogVGhlIGZpcnN0IHBhZ2UgaXMgZG9vcmJlbGwvcHJvY19kZXNjLiBUd28gZm9sbG93ZWQg cGFnZXMgYXJlIHdxLiAqLwotCXZtYSA9IGludGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBHVUNf UERfU0laRSArIEdVQ19XUV9TSVpFKTsKLQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJcmV0ID0gUFRS X0VSUih2bWEpOwotCQlnb3RvIGVycl9pZDsKLQl9Ci0KLQkvKiBXZSdsbCBrZWVwIGp1c3QgdGhl IGZpcnN0IChkb29yYmVsbC9wcm9jKSBwYWdlIHBlcm1hbmVudGx5IGttYXAnZC4gKi8KLQljbGll bnQtPnZtYSA9IHZtYTsKLQotCXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5v YmosIEk5MTVfTUFQX1dCKTsKLQlpZiAoSVNfRVJSKHZhZGRyKSkgewotCQlyZXQgPSBQVFJfRVJS KHZhZGRyKTsKLQkJZ290byBlcnJfdm1hOwotCX0KLQljbGllbnQtPnZhZGRyID0gdmFkZHI7Ci0K LQlEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwOiBzdGFnZV9pZCAl dVxuIiwKLQkJCSBwcmlvcml0eSwgY2xpZW50LCBjbGllbnQtPnN0YWdlX2lkKTsKLQotCXJldHVy biBjbGllbnQ7Ci0KLWVycl92bWE6Ci0JaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmNsaWVu dC0+dm1hLCAwKTsKLWVycl9pZDoKLQlpZGFfc2ltcGxlX3JlbW92ZSgmZ3VjLT5zdGFnZV9pZHMs IGNsaWVudC0+c3RhZ2VfaWQpOwotZXJyX2NsaWVudDoKLQlrZnJlZShjbGllbnQpOwotCXJldHVy biBFUlJfUFRSKHJldCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1Y3Qg aW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNl KCZjbGllbnQtPnZtYSwgSTkxNV9WTUFfUkVMRUFTRV9NQVApOwotCWlkYV9zaW1wbGVfcmVtb3Zl KCZjbGllbnQtPmd1Yy0+c3RhZ2VfaWRzLCBjbGllbnQtPnN0YWdlX2lkKTsKLQlrZnJlZShjbGll bnQpOwotfQotCi1zdGF0aWMgaW50IGd1Y19jbGllbnRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCi17Ci0Jc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudDsKLQotCUdFTV9CVUdf T04oZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGd1 YywgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMKTsKLQlpZiAoSVNfRVJSKGNsaWVudCkp IHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEd1QyBjbGllbnQgZm9yIHN1Ym1pc3Np b24hXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoY2xpZW50KTsKLQl9Ci0JZ3VjLT5leGVjYnVmX2Ns aWVudCA9IGNsaWVudDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY2xpZW50 c19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Ns aWVudCAqY2xpZW50OwotCi0JY2xpZW50ID0gZmV0Y2hfYW5kX3plcm8oJmd1Yy0+ZXhlY2J1Zl9j bGllbnQpOwotCWlmIChjbGllbnQpCi0JCWd1Y19jbGllbnRfZnJlZShjbGllbnQpOwotfQotCi1z dGF0aWMgdm9pZCBfX2d1Y19jbGllbnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWNfY2xpZW50ICpj bGllbnQpCi17Ci0JZ3VjX3Byb2NfZGVzY19pbml0KGNsaWVudCk7Ci0JZ3VjX3N0YWdlX2Rlc2Nf aW5pdChjbGllbnQpOwotfQotCi1zdGF0aWMgdm9pZCBfX2d1Y19jbGllbnRfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50KQotewotCWd1Y19zdGFnZV9kZXNjX2ZpbmkoY2xp ZW50KTsKLQlndWNfcHJvY19kZXNjX2ZpbmkoY2xpZW50KTsKLX0KLQotc3RhdGljIHZvaWQgZ3Vj X2NsaWVudHNfZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlfX2d1Y19jbGllbnRf ZW5hYmxlKGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotfQotCi1zdGF0aWMgdm9pZCBndWNfY2xpZW50 c19kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlpZiAoZ3VjLT5leGVjYnVmX2Ns aWVudCkKLQkJX19ndWNfY2xpZW50X2Rpc2FibGUoZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci19Ci0K IC8qCiAgKiBTZXQgdXAgdGhlIG1lbW9yeSByZXNvdXJjZXMgdG8gYmUgc2hhcmVkIHdpdGggdGhl IEd1QyAodmlhIHRoZSBHR1RUKQogICogYXQgZmlybXdhcmUgbG9hZGluZyB0aW1lLgpAQCAtNjY4 LDEyICs1MjcsMjAgQEAgaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVs X2d1YyAqZ3VjKQogCSAqLwogCUdFTV9CVUdfT04oIWd1Yy0+c3RhZ2VfZGVzY19wb29sKTsKIAot CXJldCA9IGd1Y19jbGllbnRzX2NyZWF0ZShndWMpOworCXJldCA9IGd1Y193b3JrcXVldWVfY3Jl YXRlKGd1Yyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfcG9vbDsKIAorCXJldCA9IGd1Y19wcm9j X2Rlc2NfY3JlYXRlKGd1Yyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfd29ya3F1ZXVlOworCisJ c3Bpbl9sb2NrX2luaXQoJmd1Yy0+d3FfbG9jayk7CisKIAlyZXR1cm4gMDsKIAorZXJyX3dvcmtx dWV1ZToKKwlndWNfd29ya3F1ZXVlX2Rlc3Ryb3koZ3VjKTsKIGVycl9wb29sOgogCWd1Y19zdGFn ZV9kZXNjX3Bvb2xfZGVzdHJveShndWMpOwogCXJldHVybiByZXQ7CkBAIC02ODEsMTAgKzU0OCwx MSBAQCBpbnQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiAKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiB7Ci0JZ3VjX2NsaWVudHNfZGVzdHJveShndWMpOwotCi0JaWYgKGd1Yy0+c3RhZ2VfZGVzY19w b29sKQorCWlmIChndWMtPnN0YWdlX2Rlc2NfcG9vbCkgeworCQlndWNfcHJvY19kZXNjX2Rlc3Ry b3koZ3VjKTsKKwkJZ3VjX3dvcmtxdWV1ZV9kZXN0cm95KGd1Yyk7CiAJCWd1Y19zdGFnZV9kZXNj X3Bvb2xfZGVzdHJveShndWMpOworCX0KIH0KIAogc3RhdGljIHZvaWQgZ3VjX2ludGVycnVwdHNf Y2FwdHVyZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQpAQCAtODE2LDkgKzY4NCw4IEBAIHZvaWQgaW50 ZWxfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAkJICAgICBz aXplb2Yoc3RydWN0IGd1Y193cV9pdGVtKSAqCiAJCSAgICAgSTkxNV9OVU1fRU5HSU5FUyA+IEdV Q19XUV9TSVpFKTsKIAotCUdFTV9CVUdfT04oIWd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwotCi0JZ3Vj X2NsaWVudHNfZW5hYmxlKGd1Yyk7CisJZ3VjX3Byb2NfZGVzY19pbml0KGd1Yyk7CisJZ3VjX3N0 YWdlX2Rlc2NfaW5pdChndWMpOwogCiAJLyogVGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wg b2YgRUxTUCAoZXhlY2xpc3RzKSAqLwogCWd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoZ3QpOwpAQCAt ODM2LDcgKzcwMyw5IEBAIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMpCiAJR0VNX0JVR19PTihndC0+YXdha2UpOyAvKiBHVCBzaG91bGQgYmUg cGFya2VkIGZpcnN0ICovCiAKIAlndWNfaW50ZXJydXB0c19yZWxlYXNlKGd0KTsKLQlndWNfY2xp ZW50c19kaXNhYmxlKGd1Yyk7CisKKwlndWNfc3RhZ2VfZGVzY19maW5pKGd1Yyk7CisJZ3VjX3By b2NfZGVzY19maW5pKGd1Yyk7CiB9CiAKIHN0YXRpYyBib29sIF9fZ3VjX3N1Ym1pc3Npb25fc3Vw cG9ydChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCkBAIC04NTQsMyArNzIzLDggQEAgdm9pZCBpbnRl bF9ndWNfc3VibWlzc2lvbl9pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIHsKIAln dWMtPnN1Ym1pc3Npb25fc3VwcG9ydGVkID0gX19ndWNfc3VibWlzc2lvbl9zdXBwb3J0KGd1Yyk7 CiB9CisKK2Jvb2wgaW50ZWxfZW5naW5lX2luX2d1Y19zdWJtaXNzaW9uX21vZGUoY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXJldHVybiBlbmdpbmUtPnNldF9kZWZh dWx0X3N1Ym1pc3Npb24gPT0gZ3VjX3NldF9kZWZhdWx0X3N1Ym1pc3Npb247Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaAppbmRleCBl MmRlYjRlNmY0MmEuLmU0MDJhMjkzMjU5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCkBAIC02LDQ4ICs2LDEwIEBACiAjaWZuZGVm IF9JTlRFTF9HVUNfU1VCTUlTU0lPTl9IXwogI2RlZmluZSBfSU5URUxfR1VDX1NVQk1JU1NJT05f SF8KIAotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMu aD4KIAotI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV90eXBlcy5oIgotCi0jaW5jbHVkZSAiaTkx NV9nZW0uaCIKLSNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCi0KLXN0cnVjdCBkcm1faTkxNV9w cml2YXRlOwotCi0vKgotICogVGhpcyBzdHJ1Y3R1cmUgcHJpbWFyaWx5IGRlc2NyaWJlcyB0aGUg R0VNIG9iamVjdCBzaGFyZWQgd2l0aCB0aGUgR3VDLgotICogVGhlIHNwZWNzIHNvbWV0aW1lcyBy ZWZlciB0byB0aGlzIG9iamVjdCBhcyBhICJHdUMgY29udGV4dCIsIGJ1dCB3ZSB1c2UKLSAqIHRo ZSB0ZXJtICJjbGllbnQiIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGhhcmR3YXJlIGNvbnRleHRz LiBUaGlzCi0gKiBHRU0gb2JqZWN0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgbGlmZXRpbWUgb2Yg b3VyIGludGVyYWN0aW9uIHdpdGgKLSAqIHRoZSBHdUMsIGJlaW5nIGFsbG9jYXRlZCBiZWZvcmUg dGhlIEd1QyBpcyBsb2FkZWQgd2l0aCBpdHMgZmlybXdhcmUuCi0gKiBCZWNhdXNlIHRoZXJlJ3Mg bm8gd2F5IHRvIHVwZGF0ZSB0aGUgYWRkcmVzcyB1c2VkIGJ5IHRoZSBHdUMgYWZ0ZXIKLSAqIGlu aXRpYWxpc2F0aW9uLCB0aGUgc2hhcmVkIG9iamVjdCBtdXN0IHN0YXkgcGlubmVkIGludG8gdGhl IEdHVFQgYXMKLSAqIGxvbmcgYXMgdGhlIEd1QyBpcyBpbiB1c2UuIFdlIGFsc28ga2VlcCB0aGUg Zmlyc3QgcGFnZSAob25seSkgbWFwcGVkCi0gKiBpbnRvIGtlcm5lbCBhZGRyZXNzIHNwYWNlLCBh cyBpdCBpbmNsdWRlcyBzaGFyZWQgZGF0YSB0aGF0IG11c3QgYmUKLSAqIHVwZGF0ZWQgb24gZXZl cnkgcmVxdWVzdCBzdWJtaXNzaW9uLgotICoKLSAqIFRoZSBzaW5nbGUgR0VNIG9iamVjdCBkZXNj cmliZWQgaGVyZSBpcyBhY3R1YWxseSBtYWRlIHVwIG9mIHNldmVyYWwKLSAqIHNlcGFyYXRlIGFy ZWFzLCBhcyBmYXIgYXMgdGhlIEd1QyBpcyBjb25jZXJuZWQuIFRoZSBmaXJzdCBwYWdlIChrZXB0 Ci0gKiBrbWFwJ2QpIGluY2x1ZGVzIHRoZSAicHJvY2VzcyBkZXNjcmlwdG9yIiB3aGljaCBob2xk cyBzZXF1ZW5jZSBkYXRhIGZvcgotICogdGhlIGRvb3JiZWxsLCBhbmQgb25lIGNhY2hlbGluZSB3 aGljaCBhY3R1YWxseSAqaXMqIHRoZSBkb29yYmVsbDsgYQotICogd3JpdGUgdG8gdGhpcyB3aWxs ICJyaW5nIHRoZSBkb29yYmVsbCIgKGkuZS4gc2VuZCBhbiBpbnRlcnJ1cHQgdG8gdGhlCi0gKiBH dUMpLiBUaGUgc3Vic2VxdWVudCAgcGFnZXMgb2YgdGhlIGNsaWVudCBvYmplY3QgY29uc3RpdHV0 ZSB0aGUgd29yawotICogcXVldWUgKGEgY2lyY3VsYXIgYXJyYXkgb2Ygd29yayBpdGVtcyksIGFn YWluIGRlc2NyaWJlZCBpbiB0aGUgcHJvY2VzcwotICogZGVzY3JpcHRvci4gV29yayBxdWV1ZSBw YWdlcyBhcmUgbWFwcGVkIG1vbWVudGFyaWx5IGFzIHJlcXVpcmVkLgotICovCi1zdHJ1Y3QgaW50 ZWxfZ3VjX2NsaWVudCB7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0J c3RydWN0IGludGVsX2d1YyAqZ3VjOwotCi0JLyogYml0bWFwIG9mIChob3N0KSBlbmdpbmUgaWRz ICovCi0JdTMyIHByaW9yaXR5OwotCXUzMiBzdGFnZV9pZDsKLQotCS8qIFByb3RlY3RzIEd1QyBj bGllbnQncyBXUSBhY2Nlc3MgKi8KLQlzcGlubG9ja190IHdxX2xvY2s7Ci19Oworc3RydWN0IGlu dGVsX2d1YzsKK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7CiAKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1p c3Npb25faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwogaW50IGludGVsX2d1Y19z dWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKQEAgLTU2LDUgKzE4LDYgQEAg dm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7 CiB2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsK IGludCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp Owogdm9pZCBpbnRlbF9ndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koc3RydWN0IGludGVsX2d1YyAq Z3VjKTsKK2Jvb2wgaW50ZWxfZW5naW5lX2luX2d1Y19zdWJtaXNzaW9uX21vZGUoY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCmluZGV4IDVkNTk3NGU3ZjNlZC4uZjMyZTdiMDE2MTk3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTgwMiwyMyArMTgwMiwxMiBAQCBzdGF0aWMgdm9p ZCBpOTE1X2d1Y19sb2dfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiBzdGF0aWMgaW50IGk5MTVf Z3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQljb25z dCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd0LnVjLmd1YzsKLQlzdHJ1Y3Qg aW50ZWxfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKIAogCWlmICgh VVNFU19HVUMoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWk5MTVfZ3VjX2xvZ19p bmZvKG0sIGRldl9wcml2KTsKIAotCWlmICghVVNFU19HVUNfU1VCTUlTU0lPTihkZXZfcHJpdikp Ci0JCXJldHVybiAwOwotCi0JR0VNX0JVR19PTighZ3VjLT5leGVjYnVmX2NsaWVudCk7Ci0KLQlz ZXFfcHJpbnRmKG0sICJcbkd1QyBleGVjYnVmIGNsaWVudCBAICVwOlxuIiwgY2xpZW50KTsKLQlz ZXFfcHJpbnRmKG0sICJcdFByaW9yaXR5ICVkLCBHdUMgc3RhZ2UgaW5kZXg6ICV1XG4iLAotCQkg ICBjbGllbnQtPnByaW9yaXR5LAotCQkgICBjbGllbnQtPnN0YWdlX2lkKTsKIAkvKiBBZGQgbW9y ZSBhcyByZXF1aXJlZCAuLi4gKi8KIAogCXJldHVybiAwOwotLSAKMi4yMy4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=