From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH 09/12] drm/i915/uc: Move intel functions to intel_uc Date: Tue, 9 Jul 2019 17:54:34 -0700 Message-ID: <20190710005437.3496-10-daniele.ceraolospurio@intel.com> References: <20190710005437.3496-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3B82189950 for ; Wed, 10 Jul 2019 00:55:14 +0000 (UTC) In-Reply-To: <20190710005437.3496-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 QWxsIHRoZSBpbnRlbF91Y18qIGNhbiBub3cgYmUgbW92ZWQgdG8gd29yayBvbiB0aGUgaW50ZWxf dWMgc3RydWN0dXJlCmZvciBiZXR0ZXIgZW5jYXBzdWxhdGlvbiBvZiB1Yy1yZWxhdGVkIGFjdGlv bnMuCgpOb3RlOiBJJ3ZlIGludHJvZHVjZWQgdWNfdG9fZ3QgaW5zdGVhZCBvZiB1Y190b19pOTE1 IGJlY2F1c2UgdGhlIGFpbSBpcwp0byBtb3ZlIGV2ZXJ5dGhpbmcgdG8gYmUgZ3QtZm9jdXNlZCBp biB0aGUgbWVkaXVtIHRlcm0sIHNvIHdlIHdvdWxkJ3ZlCmhhZCB0byByZXBsYWNlIGl0IHNvb24g YW55d2F5LgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5j ZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KQ2M6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpk ZWN6a29AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9w bS5jIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oICAgICB8ICAg NSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYyAgfCAxODQgKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuaCAgfCAgMzQg KystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgIHwgIDE0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICAgNiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgfCAgMTggKy0tCiA4IGZpbGVzIGNoYW5nZWQs IDEzNyBpbnNlcnRpb25zKCspLCAxMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fcG0uYwppbmRleCA0ZDc3NDM3NmY1YjguLjNjNjc0Yzk1MmE3OCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lk IGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlpOTE1 X2dlbV9kcmFpbl9mcmVlZF9vYmplY3RzKGk5MTUpOwogCi0JaW50ZWxfdWNfc3VzcGVuZChpOTE1 KTsKKwlpbnRlbF91Y19zdXNwZW5kKCZpOTE1LT5ndC51Yyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqZmlyc3RfbW1fb2JqZWN0KHN0cnVjdCBsaXN0X2hlYWQgKmxp c3QpCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2xhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5 MTUtPm1tLm9ial9sb2NrLCBmbGFncyk7CiAKLQlpbnRlbF91Y19zYW5pdGl6ZShpOTE1KTsKKwlp bnRlbF91Y19zYW5pdGl6ZSgmaTkxNS0+Z3QudWMpOwogCWk5MTVfZ2VtX3Nhbml0aXplKGk5MTUp OwogfQogCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBpOTE1X2dlbV9yZXN1bWUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaWYgKGludGVsX2d0X3Jlc3VtZSgmaTkxNS0+Z3QpKQog CQlnb3RvIGVycl93ZWRnZWQ7CiAKLQlpbnRlbF91Y19yZXN1bWUoaTkxNSk7CisJaW50ZWxfdWNf cmVzdW1lKCZpOTE1LT5ndC51Yyk7CiAKIAkvKiBBbHdheXMgcmVsb2FkIGEgY29udGV4dCBmb3Ig cG93ZXJzYXZpbmcuICovCiAJaWYgKCFpOTE1X2dlbV9sb2FkX3Bvd2VyX2NvbnRleHQoaTkxNSkp CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaAppbmRleCAxMDkzZGNmMzZmNjMuLjg4MGJlMDVh M2Y0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oCkBAIC0xMSw2ICsxMSwxMSBAQAog CiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxf Z3QgKnVjX3RvX2d0KHN0cnVjdCBpbnRlbF91YyAqdWMpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9v Zih1Yywgc3RydWN0IGludGVsX2d0LCB1Yyk7Cit9CisKIHZvaWQgaW50ZWxfZ3RfaW5pdF9lYXJs eShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiB2 b2lkIGludGVsX2d0X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwppbmRleCBjY2VkZWE2MzZiYTMuLmJlMjNm NDU1NzExMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCkBAIC03MjAsNyAr NzIwLDcgQEAgc3RhdGljIGludGVsX2VuZ2luZV9tYXNrX3QgcmVzZXRfcHJlcGFyZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJcmVzZXRfcHJlcGFyZV9lbmdpbmUoZW5naW5lKTsK IAl9CiAKLQlpbnRlbF91Y19yZXNldF9wcmVwYXJlKGk5MTUpOworCWludGVsX3VjX3Jlc2V0X3By ZXBhcmUoJmk5MTUtPmd0LnVjKTsKIAogCXJldHVybiBhd2FrZTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF91Yy5jCmluZGV4IGUyMDgwZGEyZTFlNC4uMjA2MmU3ZmYwNWU4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMKQEAgLTIyLDE5ICsyMiwyMiBAQAogICoK ICAqLwogCisjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKICNpbmNsdWRlICJndC9pbnRlbF9yZXNl dC5oIgotI2luY2x1ZGUgImludGVsX3VjLmgiCiAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCiAjaW5j bHVkZSAiaW50ZWxfZ3VjX2Fkcy5oIgogI2luY2x1ZGUgImludGVsX2d1Y19zdWJtaXNzaW9uLmgi CisjaW5jbHVkZSAiaW50ZWxfdWMuaCIKKwogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAKIHN0YXRp YyB2b2lkIGd1Y19mcmVlX2xvYWRfZXJyX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwogCiAv KiBSZXNldCBHdUMgcHJvdmlkaW5nIHVzIHdpdGggZnJlc2ggc3RhdGUgZm9yIGJvdGggR3VDIGFu ZCBIdUMuCiAgKi8KLXN0YXRpYyBpbnQgX19pbnRlbF91Y19yZXNldF9odyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgaW50IF9faW50ZWxfdWNfcmVzZXRfaHcoc3Ry dWN0IGludGVsX3VjICp1YykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB1Y190b19ndCh1YyktPmk5MTU7CiAJaW50IHJldDsKIAl1MzIgZ3VjX3N0YXR1czsKIApAQCAt NTIsMTAgKzU1LDEwIEBAIHN0YXRpYyBpbnQgX19pbnRlbF91Y19yZXNldF9odyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBf X2dldF9wbGF0Zm9ybV9lbmFibGVfZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQor c3RhdGljIGludCBfX2dldF9wbGF0Zm9ybV9lbmFibGVfZ3VjKHN0cnVjdCBpbnRlbF91YyAqdWMp CiB7Ci0Jc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmaTkxNS0+Z3QudWMuZ3VjLmZ3Owot CXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0gJmk5MTUtPmd0LnVjLmh1Yy5mdzsKKwlzdHJ1 Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZ1Yy0+Z3VjLmZ3OworCXN0cnVjdCBpbnRlbF91Y19m dyAqaHVjX2Z3ID0gJnVjLT5odWMuZnc7CiAJaW50IGVuYWJsZV9ndWMgPSAwOwogCiAJLyogRGVm YXVsdCBpcyB0byB1c2UgSHVDIGlmIHdlIGtub3cgR3VDIGFuZCBIdUMgZmlybXdhcmVzICovCkBA IC02NywxMiArNzAsMTEgQEAgc3RhdGljIGludCBfX2dldF9wbGF0Zm9ybV9lbmFibGVfZ3VjKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiBlbmFibGVfZ3VjOwogfQogCi1z dGF0aWMgaW50IF9fZ2V0X2RlZmF1bHRfZ3VjX2xvZ19sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKK3N0YXRpYyBpbnQgX19nZXRfZGVmYXVsdF9ndWNfbG9nX2xldmVsKHN0cnVj dCBpbnRlbF91YyAqdWMpCiB7CiAJaW50IGd1Y19sb2dfbGV2ZWw7CiAKLQlpZiAoIWludGVsX3Vj X2Z3X3N1cHBvcnRlZCgmaTkxNS0+Z3QudWMuZ3VjLmZ3KSB8fAotCSAgICAhaW50ZWxfdWNfaXNf dXNpbmdfZ3VjKGk5MTUpKQorCWlmICghaW50ZWxfdWNfZndfc3VwcG9ydGVkKCZ1Yy0+Z3VjLmZ3 KSB8fCAhaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKHVjKSkKIAkJZ3VjX2xvZ19sZXZlbCA9IEdVQ19M T0dfTEVWRUxfRElTQUJMRUQ7CiAJZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVf REVCVUcpIHx8CiAJCSBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19HRU0pKQpAQCAt ODcsNyArODksNyBAQCBzdGF0aWMgaW50IF9fZ2V0X2RlZmF1bHRfZ3VjX2xvZ19sZXZlbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogLyoqCiAgKiBzYW5pdGl6ZV9vcHRpb25zX2Vh cmx5IC0gc2FuaXRpemUgdUMgcmVsYXRlZCBtb2RwYXJhbSBvcHRpb25zCi0gKiBAaTkxNTogZGV2 aWNlIHByaXZhdGUKKyAqIEB1YzogdGhlIGludGVsX3VjIHN0cnVjdHVyZQogICoKICAqIEluIGNh c2Ugb2YgImVuYWJsZV9ndWMiIG9wdGlvbiB0aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBt b2RpZnkKICAqIGl0IG9ubHkgaWYgaXQgd2FzIGluaXRpYWxseSBzZXQgdG8gImF1dG8oLTEpIi4g RGVmYXVsdCB2YWx1ZSBmb3IgdGhpcwpAQCAtMTAyLDIyICsxMDQsMjIgQEAgc3RhdGljIGludCBf X2dldF9kZWZhdWx0X2d1Y19sb2dfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CiAgKiB1bmxlc3MgR3VDIGlzIGVuYWJsZWQgb24gZ2l2ZW4gcGxhdGZvcm0gYW5kIHRoZSBkcml2 ZXIgaXMgY29tcGlsZWQgd2l0aAogICogZGVidWcgY29uZmlnIHdoZW4gdGhpcyBtb2RwYXJhbSB3 aWxsIGRlZmF1bHQgdG8gImVuYWJsZSgxLi40KSIuCiAgKi8KLXN0YXRpYyB2b2lkIHNhbml0aXpl X29wdGlvbnNfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgdm9p ZCBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KHN0cnVjdCBpbnRlbF91YyAqdWMpCiB7Ci0Jc3RydWN0 IGludGVsX3VjX2Z3ICpndWNfZncgPSAmaTkxNS0+Z3QudWMuZ3VjLmZ3OwotCXN0cnVjdCBpbnRl bF91Y19mdyAqaHVjX2Z3ID0gJmk5MTUtPmd0LnVjLmh1Yy5mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNf ZncgKmd1Y19mdyA9ICZ1Yy0+Z3VjLmZ3OworCXN0cnVjdCBpbnRlbF91Y19mdyAqaHVjX2Z3ID0g JnVjLT5odWMuZnc7CiAKIAkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZvcm0g ZGVmYXVsdCIgKi8KIAlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA8IDApCi0JCWk5MTVf bW9kcGFyYW1zLmVuYWJsZV9ndWMgPSBfX2dldF9wbGF0Zm9ybV9lbmFibGVfZ3VjKGk5MTUpOwor CQlpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjID0gX19nZXRfcGxhdGZvcm1fZW5hYmxlX2d1Yyh1 Yyk7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJlbmFibGVfZ3VjPSVkIChzdWJtaXNzaW9uOiVzIGh1 YzolcylcbiIsCiAJCQkgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YywKLQkJCSB5ZXNubyhpbnRl bF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbihpOTE1KSksCi0JCQkgeWVzbm8oaW50ZWxfdWNf aXNfdXNpbmdfaHVjKGk5MTUpKSk7CisJCQkgeWVzbm8oaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1 Ym1pc3Npb24odWMpKSwKKwkJCSB5ZXNubyhpbnRlbF91Y19pc191c2luZ19odWModWMpKSk7CiAK IAkvKiBWZXJpZnkgR3VDIGZpcm13YXJlIGF2YWlsYWJpbGl0eSAqLwotCWlmIChpbnRlbF91Y19p c191c2luZ19ndWMoaTkxNSkgJiYgIWludGVsX3VjX2Z3X2lzX3NlbGVjdGVkKGd1Y19mdykpIHsK KwlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKHVjKSAmJiAhaW50ZWxfdWNfZndfaXNfc2VsZWN0 ZWQoZ3VjX2Z3KSkgewogCQlEUk1fV0FSTigiSW5jb21wYXRpYmxlIG9wdGlvbiBkZXRlY3RlZDog JXM9JWQsICVzIVxuIiwKIAkJCSAiZW5hYmxlX2d1YyIsIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9n dWMsCiAJCQkgIWludGVsX3VjX2Z3X3N1cHBvcnRlZChndWNfZncpID8KQEAgLTEyNSw3ICsxMjcs NyBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQogCX0KIAogCS8qIFZlcmlmeSBIdUMgZmlybXdhcmUgYXZhaWxhYmlsaXR5 ICovCi0JaWYgKGludGVsX3VjX2lzX3VzaW5nX2h1YyhpOTE1KSAmJiAhaW50ZWxfdWNfZndfaXNf c2VsZWN0ZWQoaHVjX2Z3KSkgeworCWlmIChpbnRlbF91Y19pc191c2luZ19odWModWMpICYmICFp bnRlbF91Y19md19pc19zZWxlY3RlZChodWNfZncpKSB7CiAJCURSTV9XQVJOKCJJbmNvbXBhdGli bGUgb3B0aW9uIGRldGVjdGVkOiAlcz0lZCwgJXMhXG4iLAogCQkJICJlbmFibGVfZ3VjIiwgaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2d1YywKIAkJCSAhaW50ZWxfdWNfZndfc3VwcG9ydGVkKGh1Y19m dykgPwpAQCAtMTMzLDcgKzEzNSw3IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX29wdGlvbnNfZWFy bHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJfQogCiAJLyogWFhYOiBHdUMgc3Vi bWlzc2lvbiBpcyB1bmF2YWlsYWJsZSBmb3Igbm93ICovCi0JaWYgKGludGVsX3VjX2lzX3VzaW5n X2d1Y19zdWJtaXNzaW9uKGk5MTUpKSB7CisJaWYgKGludGVsX3VjX2lzX3VzaW5nX2d1Y19zdWJt aXNzaW9uKHVjKSkgewogCQlEUk1fSU5GTygiSW5jb21wYXRpYmxlIG9wdGlvbiBkZXRlY3RlZDog JXM9JWQsICVzIVxuIiwKIAkJCSAiZW5hYmxlX2d1YyIsIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9n dWMsCiAJCQkgIkd1QyBzdWJtaXNzaW9uIG5vdCBzdXBwb3J0ZWQiKTsKQEAgLTE0NCw5ICsxNDYs OSBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQogCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybS9j b25maWcgZGVmYXVsdCIgKi8KIAlpZiAoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IDAp CiAJCWk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPQotCQkJX19nZXRfZGVmYXVsdF9ndWNf bG9nX2xldmVsKGk5MTUpOworCQkJX19nZXRfZGVmYXVsdF9ndWNfbG9nX2xldmVsKHVjKTsKIAot CWlmIChpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsID4gMCAmJiAhaW50ZWxfdWNfaXNfdXNp bmdfZ3VjKGk5MTUpKSB7CisJaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiAwICYm ICFpbnRlbF91Y19pc191c2luZ19ndWModWMpKSB7CiAJCURSTV9XQVJOKCJJbmNvbXBhdGlibGUg b3B0aW9uIGRldGVjdGVkOiAlcz0lZCwgJXMhXG4iLAogCQkJICJndWNfbG9nX2xldmVsIiwgaTkx NV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCwKIAkJCSAhaW50ZWxfdWNfZndfc3VwcG9ydGVkKGd1 Y19mdykgPwpAQCAtMTcyLDM0ICsxNzQsMjkgQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfb3B0aW9u c19lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlHRU1fQlVHX09OKGk5MTVf bW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCAwKTsKIH0KIAotdm9pZCBpbnRlbF91Y19pbml0X2Vh cmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF91Y19pbml0X2Vh cmx5KHN0cnVjdCBpbnRlbF91YyAqdWMpCiB7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5 MTUtPmd0LnVjLmd1YzsKLQlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmaTkxNS0+Z3QudWMuaHVj OworCWludGVsX2d1Y19pbml0X2Vhcmx5KCZ1Yy0+Z3VjKTsKKwlpbnRlbF9odWNfaW5pdF9lYXJs eSgmdWMtPmh1Yyk7CiAKLQlpbnRlbF9ndWNfaW5pdF9lYXJseShndWMpOwotCWludGVsX2h1Y19p bml0X2Vhcmx5KGh1Yyk7Ci0KLQlzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KGk5MTUpOworCXNhbml0 aXplX29wdGlvbnNfZWFybHkodWMpOwogfQogCi12b2lkIGludGVsX3VjX2NsZWFudXBfZWFybHko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGludGVsX3VjX2NsZWFudXBfZWFy bHkoc3RydWN0IGludGVsX3VjICp1YykKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkx NS0+Z3QudWMuZ3VjOwotCi0JZ3VjX2ZyZWVfbG9hZF9lcnJfbG9nKGd1Yyk7CisJZ3VjX2ZyZWVf bG9hZF9lcnJfbG9nKCZ1Yy0+Z3VjKTsKIH0KIAogLyoqCiAgKiBpbnRlbF91Y19pbml0X21taW8g LSBzZXR1cCB1QyBNTUlPIGFjY2VzcwotICogQGk5MTU6IGRldmljZSBwcml2YXRlCisgKiBAdWM6 IHRoZSBpbnRlbF91YyBzdHJ1Y3R1cmUKICAqCiAgKiBTZXR1cCBtaW5pbWFsIHN0YXRlIG5lY2Vz c2FyeSBmb3IgTU1JTyBhY2Nlc3NlcyBsYXRlciBpbiB0aGUKICAqIGluaXRpYWxpemF0aW9uIHNl cXVlbmNlLgogICovCi12b2lkIGludGVsX3VjX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKK3ZvaWQgaW50ZWxfdWNfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF91YyAqdWMp CiB7Ci0JaW50ZWxfZ3VjX2luaXRfc2VuZF9yZWdzKCZpOTE1LT5ndC51Yy5ndWMpOworCWludGVs X2d1Y19pbml0X3NlbmRfcmVncygmdWMtPmd1Yyk7CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19jYXB0 dXJlX2xvYWRfZXJyX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCkBAIC0zNDYsNTQgKzM0Myw1 NiBAQCBzdGF0aWMgdm9pZCBndWNfZGlzYWJsZV9jb21tdW5pY2F0aW9uKHN0cnVjdCBpbnRlbF9n dWMgKmd1YykKIAlEUk1fSU5GTygiR3VDIGNvbW11bmljYXRpb24gZGlzYWJsZWRcbiIpOwogfQog Ci12b2lkIGludGVsX3VjX2ZldGNoX2Zpcm13YXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKK3ZvaWQgaW50ZWxfdWNfZmV0Y2hfZmlybXdhcmVzKHN0cnVjdCBpbnRlbF91YyAqdWMp CiB7Ci0JaWYgKCFVU0VTX0dVQyhpOTE1KSkKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IHVjX3RvX2d0KHVjKS0+aTkxNTsKKworCWlmICghaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKHVj KSkKIAkJcmV0dXJuOwogCi0JaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJmk5MTUtPmd0LnVjLmd1 Yy5mdyk7CisJaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJnVjLT5ndWMuZncpOwogCi0JaWYgKFVT RVNfSFVDKGk5MTUpKQotCQlpbnRlbF91Y19md19mZXRjaChpOTE1LCAmaTkxNS0+Z3QudWMuaHVj LmZ3KTsKKwlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfaHVjKHVjKSkKKwkJaW50ZWxfdWNfZndfZmV0 Y2goaTkxNSwgJnVjLT5odWMuZncpOwogfQogCi12b2lkIGludGVsX3VjX2NsZWFudXBfZmlybXdh cmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF91Y19jbGVhbnVw X2Zpcm13YXJlcyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogewotCWlmICghVVNFU19HVUMoaTkxNSkp CisJaWYgKCFpbnRlbF91Y19pc191c2luZ19ndWModWMpKQogCQlyZXR1cm47CiAKLQlpZiAoVVNF U19IVUMoaTkxNSkpCi0JCWludGVsX3VjX2Z3X2NsZWFudXBfZmV0Y2goJmk5MTUtPmd0LnVjLmh1 Yy5mdyk7CisJaWYgKGludGVsX3VjX2lzX3VzaW5nX2h1Yyh1YykpCisJCWludGVsX3VjX2Z3X2Ns ZWFudXBfZmV0Y2goJnVjLT5odWMuZncpOwogCi0JaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgm aTkxNS0+Z3QudWMuZ3VjLmZ3KTsKKwlpbnRlbF91Y19md19jbGVhbnVwX2ZldGNoKCZ1Yy0+Z3Vj LmZ3KTsKIH0KIAotaW50IGludGVsX3VjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCitpbnQgaW50ZWxfdWNfaW5pdChzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogewotCXN0cnVjdCBp bnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7Ci0Jc3RydWN0IGludGVsX2h1YyAqaHVj ID0gJmk5MTUtPmd0LnVjLmh1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsK KwlzdHJ1Y3QgaW50ZWxfaHVjICpodWMgPSAmdWMtPmh1YzsKIAlpbnQgcmV0OwogCi0JaWYgKCFV U0VTX0dVQyhpOTE1KSkKKwlpZiAoIWludGVsX3VjX2lzX3VzaW5nX2d1Yyh1YykpCiAJCXJldHVy biAwOwogCiAJaWYgKCFpbnRlbF91Y19md19zdXBwb3J0ZWQoJmd1Yy0+ZncpKQogCQlyZXR1cm4g LUVOT0RFVjsKIAogCS8qIFhYWDogR3VDIHN1Ym1pc3Npb24gaXMgdW5hdmFpbGFibGUgZm9yIG5v dyAqLwotCUdFTV9CVUdfT04oVVNFU19HVUNfU1VCTUlTU0lPTihpOTE1KSk7CisJR0VNX0JVR19P TihpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbih1YykpOwogCiAJcmV0ID0gaW50ZWxf Z3VjX2luaXQoZ3VjKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaWYgKFVTRVNfSFVD KGk5MTUpKSB7CisJaWYgKGludGVsX3VjX2lzX3VzaW5nX2h1Yyh1YykpIHsKIAkJcmV0ID0gaW50 ZWxfaHVjX2luaXQoaHVjKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX2d1YzsKIAl9CiAKLQlp ZiAoVVNFU19HVUNfU1VCTUlTU0lPTihpOTE1KSkgeworCWlmIChpbnRlbF91Y19pc191c2luZ19n dWNfc3VibWlzc2lvbih1YykpIHsKIAkJLyoKIAkJICogVGhpcyBpcyBzdHVmZiB3ZSBuZWVkIHRv IGhhdmUgYXZhaWxhYmxlIGF0IGZ3IGxvYWQgdGltZQogCQkgKiBpZiB3ZSBhcmUgcGxhbm5pbmcg dG8gZW5hYmxlIHN1Ym1pc3Npb24gbGF0ZXIKQEAgLTQwNiw1OSArNDA1LDYwIEBAIGludCBpbnRl bF91Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJldHVybiAwOwogCiBl cnJfaHVjOgotCWlmIChVU0VTX0hVQyhpOTE1KSkKKwlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfaHVj KHVjKSkKIAkJaW50ZWxfaHVjX2ZpbmkoaHVjKTsKIGVycl9ndWM6CiAJaW50ZWxfZ3VjX2Zpbmko Z3VjKTsKIAlyZXR1cm4gcmV0OwogfQogCi12b2lkIGludGVsX3VjX2Zpbmkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGludGVsX3VjX2Zpbmkoc3RydWN0IGludGVsX3VjICp1 YykKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOworCXN0cnVj dCBpbnRlbF9ndWMgKmd1YyA9ICZ1Yy0+Z3VjOwogCi0JaWYgKCFVU0VTX0dVQyhpOTE1KSkKKwlp ZiAoIWludGVsX3VjX2lzX3VzaW5nX2d1Yyh1YykpCiAJCXJldHVybjsKIAogCUdFTV9CVUdfT04o IWludGVsX3VjX2Z3X3N1cHBvcnRlZCgmZ3VjLT5mdykpOwogCi0JaWYgKFVTRVNfR1VDX1NVQk1J U1NJT04oaTkxNSkpCisJaWYgKGludGVsX3VjX2lzX3VzaW5nX2d1Y19zdWJtaXNzaW9uKHVjKSkK IAkJaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZmluaShndWMpOwogCi0JaWYgKFVTRVNfSFVDKGk5MTUp KQotCQlpbnRlbF9odWNfZmluaSgmaTkxNS0+Z3QudWMuaHVjKTsKKwlpZiAoaW50ZWxfdWNfaXNf dXNpbmdfaHVjKHVjKSkKKwkJaW50ZWxfaHVjX2ZpbmkoJnVjLT5odWMpOwogCiAJaW50ZWxfZ3Vj X2ZpbmkoZ3VjKTsKIH0KIAotc3RhdGljIHZvaWQgX191Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIF9fdWNfc2FuaXRpemUoc3RydWN0IGludGVs X3VjICp1YykKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOwot CXN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5ndC51Yy5odWM7CisJc3RydWN0IGludGVs X2d1YyAqZ3VjID0gJnVjLT5ndWM7CisJc3RydWN0IGludGVsX2h1YyAqaHVjID0gJnVjLT5odWM7 CiAKIAlHRU1fQlVHX09OKCFpbnRlbF91Y19md19zdXBwb3J0ZWQoJmd1Yy0+ZncpKTsKIAogCWlu dGVsX2h1Y19zYW5pdGl6ZShodWMpOwogCWludGVsX2d1Y19zYW5pdGl6ZShndWMpOwogCi0JX19p bnRlbF91Y19yZXNldF9odyhpOTE1KTsKKwlfX2ludGVsX3VjX3Jlc2V0X2h3KHVjKTsKIH0KIAot dm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3Zv aWQgaW50ZWxfdWNfc2FuaXRpemUoc3RydWN0IGludGVsX3VjICp1YykKIHsKLQlpZiAoIVVTRVNf R1VDKGk5MTUpKQorCWlmICghaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKHVjKSkKIAkJcmV0dXJuOwog Ci0JX191Y19zYW5pdGl6ZShpOTE1KTsKKwlfX3VjX3Nhbml0aXplKHVjKTsKIH0KIAotaW50IGlu dGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitpbnQgaW50ZWxf dWNfaW5pdF9odyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogewotCXN0cnVjdCBpbnRlbF9ndWMgKmd1 YyA9ICZpOTE1LT5ndC51Yy5ndWM7Ci0Jc3RydWN0IGludGVsX2h1YyAqaHVjID0gJmk5MTUtPmd0 LnVjLmh1YzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHVjX3RvX2d0KHVjKS0+ aTkxNTsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsKKwlzdHJ1Y3QgaW50ZWxf aHVjICpodWMgPSAmdWMtPmh1YzsKIAlpbnQgcmV0LCBhdHRlbXB0czsKIAotCWlmICghVVNFU19H VUMoaTkxNSkpCisJaWYgKCFpbnRlbF91Y19pc191c2luZ19ndWModWMpKQogCQlyZXR1cm4gMDsK IAogCUdFTV9CVUdfT04oIWludGVsX3VjX2Z3X3N1cHBvcnRlZCgmZ3VjLT5mdykpOwpAQCAtNDc3 LDExICs0NzcsMTEgQEAgaW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCiAJCSAqIEFsd2F5cyByZXNldCB0aGUgR3VDIGp1c3QgYmVmb3JlIChyZSlsb2Fk aW5nLCBzbwogCQkgKiB0aGF0IHRoZSBzdGF0ZSBhbmQgdGltaW5nIGFyZSBmYWlybHkgcHJlZGlj dGFibGUKIAkJICovCi0JCXJldCA9IF9faW50ZWxfdWNfcmVzZXRfaHcoaTkxNSk7CisJCXJldCA9 IF9faW50ZWxfdWNfcmVzZXRfaHcodWMpOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJfb3V0Owog Ci0JCWlmIChVU0VTX0hVQyhpOTE1KSkgeworCQlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfaHVjKHVj KSkgewogCQkJcmV0ID0gaW50ZWxfaHVjX2Z3X3VwbG9hZChodWMpOwogCQkJaWYgKHJldCkKIAkJ CQlnb3RvIGVycl9vdXQ7CkBAIC01MDUsNyArNTA1LDcgQEAgaW50IGludGVsX3VjX2luaXRfaHco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaWYgKHJldCkKIAkJZ290byBlcnJfbG9n X2NhcHR1cmU7CiAKLQlpZiAoVVNFU19IVUMoaTkxNSkpIHsKKwlpZiAoaW50ZWxfdWNfaXNfdXNp bmdfaHVjKHVjKSkgewogCQlyZXQgPSBpbnRlbF9odWNfYXV0aChodWMpOwogCQlpZiAocmV0KQog CQkJZ290byBlcnJfY29tbXVuaWNhdGlvbjsKQEAgLTUxNSw3ICs1MTUsNyBAQCBpbnQgaW50ZWxf dWNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpZiAocmV0KQogCQln b3RvIGVycl9jb21tdW5pY2F0aW9uOwogCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oaTkxNSkp IHsKKwlpZiAoaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1Ym1pc3Npb24odWMpKSB7CiAJCXJldCA9 IGludGVsX2d1Y19zdWJtaXNzaW9uX2VuYWJsZShndWMpOwogCQlpZiAocmV0KQogCQkJZ290byBl cnJfY29tbXVuaWNhdGlvbjsKQEAgLTUyNCw5ICs1MjQsOSBAQCBpbnQgaW50ZWxfdWNfaW5pdF9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlkZXZfaW5mbyhpOTE1LT5kcm0uZGV2 LCAiR3VDIGZpcm13YXJlIHZlcnNpb24gJXUuJXVcbiIsCiAJCSBndWMtPmZ3Lm1ham9yX3Zlcl9m b3VuZCwgZ3VjLT5mdy5taW5vcl92ZXJfZm91bmQpOwogCWRldl9pbmZvKGk5MTUtPmRybS5kZXYs ICJHdUMgc3VibWlzc2lvbiAlc1xuIiwKLQkJIGVuYWJsZWRkaXNhYmxlZChVU0VTX0dVQ19TVUJN SVNTSU9OKGk5MTUpKSk7CisJCSBlbmFibGVkZGlzYWJsZWQoaW50ZWxfdWNfaXNfdXNpbmdfZ3Vj X3N1Ym1pc3Npb24odWMpKSk7CiAJZGV2X2luZm8oaTkxNS0+ZHJtLmRldiwgIkh1QyAlc1xuIiwK LQkJIGVuYWJsZWRkaXNhYmxlZChVU0VTX0hVQyhpOTE1KSkpOworCQkgZW5hYmxlZGRpc2FibGVk KGludGVsX3VjX2lzX3VzaW5nX2h1Yyh1YykpKTsKIAogCXJldHVybiAwOwogCkBAIC01MzgsNyAr NTM4LDcgQEAgaW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiBlcnJfbG9nX2NhcHR1cmU6CiAJZ3VjX2NhcHR1cmVfbG9hZF9lcnJfbG9nKGd1Yyk7CiBl cnJfb3V0OgotCV9fdWNfc2FuaXRpemUoaTkxNSk7CisJX191Y19zYW5pdGl6ZSh1Yyk7CiAKIAkv KgogCSAqIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBmYWxsYmFjayBhcyBlaXRoZXIgdXNlciBleHBs aWNpdGx5IGFza2VkIGZvcgpAQCAtNTUxLDQyICs1NTEsNDIgQEAgaW50IGludGVsX3VjX2luaXRf aHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuIHJldDsKIH0KIAotdm9p ZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBp bnRlbF91Y19maW5pX2h3KHN0cnVjdCBpbnRlbF91YyAqdWMpCiB7Ci0Jc3RydWN0IGludGVsX2d1 YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMt Pmd1YzsKIAogCWlmICghaW50ZWxfZ3VjX2lzX2xvYWRlZChndWMpKQogCQlyZXR1cm47CiAKIAlH RU1fQlVHX09OKCFpbnRlbF91Y19md19zdXBwb3J0ZWQoJmd1Yy0+ZncpKTsKIAotCWlmIChVU0VT X0dVQ19TVUJNSVNTSU9OKGk5MTUpKQorCWlmIChpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlz c2lvbih1YykpCiAJCWludGVsX2d1Y19zdWJtaXNzaW9uX2Rpc2FibGUoZ3VjKTsKIAogCWd1Y19k aXNhYmxlX2NvbW11bmljYXRpb24oZ3VjKTsKLQlfX3VjX3Nhbml0aXplKGk5MTUpOworCV9fdWNf c2FuaXRpemUodWMpOwogfQogCiAvKioKICAqIGludGVsX3VjX3Jlc2V0X3ByZXBhcmUgLSBQcmVw YXJlIGZvciByZXNldAotICogQGk5MTU6IGRldmljZSBwcml2YXRlCisgKiBAdWM6IHRoZSBpbnRl bF91YyBzdHJ1Y3R1cmUKICAqCiAgKiBQcmVwYXJpbmcgZm9yIGZ1bGwgZ3B1IHJlc2V0LgogICov Ci12b2lkIGludGVsX3VjX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCit2b2lkIGludGVsX3VjX3Jlc2V0X3ByZXBhcmUoc3RydWN0IGludGVsX3VjICp1YykKIHsK LQlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3QudWMuZ3VjOworCXN0cnVjdCBpbnRl bF9ndWMgKmd1YyA9ICZ1Yy0+Z3VjOwogCiAJaWYgKCFpbnRlbF9ndWNfaXNfbG9hZGVkKGd1Yykp CiAJCXJldHVybjsKIAogCWd1Y19zdG9wX2NvbW11bmljYXRpb24oZ3VjKTsKLQlfX3VjX3Nhbml0 aXplKGk5MTUpOworCV9fdWNfc2FuaXRpemUodWMpOwogfQogCi12b2lkIGludGVsX3VjX3J1bnRp bWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaW50ZWxfdWNf cnVudGltZV9zdXNwZW5kKHN0cnVjdCBpbnRlbF91YyAqdWMpCiB7Ci0Jc3RydWN0IGludGVsX2d1 YyAqZ3VjID0gJmk5MTUtPmd0LnVjLmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMt Pmd1YzsKIAlpbnQgZXJyOwogCiAJaWYgKCFpbnRlbF9ndWNfaXNfbG9hZGVkKGd1YykpCkBAIC01 OTksMjEgKzU5OSwyMSBAQCB2b2lkIGludGVsX3VjX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlndWNfZGlzYWJsZV9jb21tdW5pY2F0aW9uKGd1Yyk7CiB9 CiAKLXZvaWQgaW50ZWxfdWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK K3ZvaWQgaW50ZWxfdWNfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogewotCXN0cnVjdCBp bnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndC51Yy5ndWM7CisJc3RydWN0IGludGVsX2d1YyAqZ3Vj ID0gJnVjLT5ndWM7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKIAlpZiAoIWludGVsX2d1 Y19pc19sb2FkZWQoZ3VjKSkKIAkJcmV0dXJuOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZp OTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQlpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQoaTkx NSk7CisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZ1Y190b19ndCh1YyktPmk5MTUtPnJ1bnRpbWVf cG0sIHdha2VyZWYpCisJCWludGVsX3VjX3J1bnRpbWVfc3VzcGVuZCh1Yyk7CiB9CiAKLWludCBp bnRlbF91Y19yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitpbnQgaW50ZWxf dWNfcmVzdW1lKHN0cnVjdCBpbnRlbF91YyAqdWMpCiB7Ci0Jc3RydWN0IGludGVsX2d1YyAqZ3Vj ID0gJmk5MTUtPmd0LnVjLmd1YzsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmdWMtPmd1YzsK IAlpbnQgZXJyOwogCiAJaWYgKCFpbnRlbF9ndWNfaXNfbG9hZGVkKGd1YykpCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfdWMuaAppbmRleCBhMmZkYzg0YWZmZjIuLmZlMzM2MmZkNzcwNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5oCkBAIC0zMywzNCArMzMsMzQgQEAg c3RydWN0IGludGVsX3VjIHsKIAlzdHJ1Y3QgaW50ZWxfaHVjIGh1YzsKIH07CiAKLXZvaWQgaW50 ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9p ZCBpbnRlbF91Y19jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Ci12b2lkIGludGVsX3VjX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwotdm9pZCBpbnRlbF91Y19mZXRjaF9maXJtd2FyZXMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfc2FuaXRpemUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCBpbnRlbF91Y19pbml0X2h3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3VjX2ZpbmlfaHco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCBpbnRlbF91Y19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX3VjX2Zpbmkoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfdWNfcmVzZXRfcHJl cGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci12b2lkIGludGVsX3VjX3N1c3Bl bmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdm9pZCBpbnRlbF91Y19ydW50aW1l X3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotaW50IGludGVsX3VjX3Jl c3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF91Y19p bml0X2Vhcmx5KHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19jbGVhbnVwX2Vh cmx5KHN0cnVjdCBpbnRlbF91YyAqdWMpOwordm9pZCBpbnRlbF91Y19pbml0X21taW8oc3RydWN0 IGludGVsX3VjICp1Yyk7Cit2b2lkIGludGVsX3VjX2ZldGNoX2Zpcm13YXJlcyhzdHJ1Y3QgaW50 ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoc3RydWN0IGludGVs X3VjICp1Yyk7Cit2b2lkIGludGVsX3VjX3Nhbml0aXplKHN0cnVjdCBpbnRlbF91YyAqdWMpOwor aW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGludGVsX3VjICp1Yyk7Cit2b2lkIGludGVsX3Vj X2ZpbmlfaHcoc3RydWN0IGludGVsX3VjICp1Yyk7CitpbnQgaW50ZWxfdWNfaW5pdChzdHJ1Y3Qg aW50ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfZmluaShzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsK K3ZvaWQgaW50ZWxfdWNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK3ZvaWQg aW50ZWxfdWNfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKK3ZvaWQgaW50ZWxfdWNfcnVu dGltZV9zdXNwZW5kKHN0cnVjdCBpbnRlbF91YyAqdWMpOworaW50IGludGVsX3VjX3Jlc3VtZShz dHJ1Y3QgaW50ZWxfdWMgKnVjKTsKIAotc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX2lzX3Vz aW5nX2d1YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBpbmxpbmUgYm9v bCBpbnRlbF91Y19pc191c2luZ19ndWMoc3RydWN0IGludGVsX3VjICp1YykKIHsKIAlHRU1fQlVH X09OKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPCAwKTsKIAlyZXR1cm4gaTkxNV9tb2RwYXJh bXMuZW5hYmxlX2d1YyA+IDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y19pc191 c2luZ19ndWNfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRp YyBpbmxpbmUgYm9vbCBpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbihzdHJ1Y3QgaW50 ZWxfdWMgKnVjKQogewogCUdFTV9CVUdfT04oaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA8IDAp OwogCXJldHVybiBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgRU5BQkxFX0dVQ19TVUJNSVNT SU9OOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfdWNfaXNfdXNpbmdfaHVjKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIGlubGluZSBib29sIGludGVsX3VjX2lz X3VzaW5nX2h1YyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogewogCUdFTV9CVUdfT04oaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2d1YyA8IDApOwogCXJldHVybiBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Vj ICYgRU5BQkxFX0dVQ19MT0FEX0hVQzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGU3Yzg5 ZDMyMDM3NS4uZjU5NGU3NGYwOTdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTkzNCw3 ICs5MzQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWludGVsX2RldGVjdF9wY2goZGV2X3ByaXYpOwogCiAJ aW50ZWxfd29wY21faW5pdF9lYXJseSgmZGV2X3ByaXYtPndvcGNtKTsKLQlpbnRlbF91Y19pbml0 X2Vhcmx5KGRldl9wcml2KTsKKwlpbnRlbF91Y19pbml0X2Vhcmx5KCZkZXZfcHJpdi0+Z3QudWMp OwogCWludGVsX3BtX3NldHVwKGRldl9wcml2KTsKIAlpbnRlbF9pbml0X2RwaW8oZGV2X3ByaXYp OwogCXJldCA9IGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChkZXZfcHJpdik7CkBAIC05NTIsNyAr OTUyLDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIAogZXJyX3VjOgotCWludGVsX3VjX2Ns ZWFudXBfZWFybHkoZGV2X3ByaXYpOworCWludGVsX3VjX2NsZWFudXBfZWFybHkoJmRldl9wcml2 LT5ndC51Yyk7CiAJaTkxNV9nZW1fY2xlYW51cF9lYXJseShkZXZfcHJpdik7CiBlcnJfd29ya3F1 ZXVlczoKIAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZfcHJpdik7CkBAIC05NjksNyArOTY5 LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50ZWxfaXJxX2ZpbmkoZGV2X3ByaXYpOwogCWlu dGVsX3Bvd2VyX2RvbWFpbnNfY2xlYW51cChkZXZfcHJpdik7Ci0JaW50ZWxfdWNfY2xlYW51cF9l YXJseShkZXZfcHJpdik7CisJaW50ZWxfdWNfY2xlYW51cF9lYXJseSgmZGV2X3ByaXYtPmd0LnVj KTsKIAlpOTE1X2dlbV9jbGVhbnVwX2Vhcmx5KGRldl9wcml2KTsKIAlpOTE1X3dvcmtxdWV1ZXNf Y2xlYW51cChkZXZfcHJpdik7CiAJaTkxNV9lbmdpbmVzX2NsZWFudXAoZGV2X3ByaXYpOwpAQCAt MTAwOCw3ICsxMDA4LDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X21taW8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaW50ZWxfdW5jb3JlX3BydW5lX21taW9f ZG9tYWlucygmZGV2X3ByaXYtPnVuY29yZSk7CiAKLQlpbnRlbF91Y19pbml0X21taW8oZGV2X3By aXYpOworCWludGVsX3VjX2luaXRfbW1pbygmZGV2X3ByaXYtPmd0LnVjKTsKIAogCXJldCA9IGlu dGVsX2VuZ2luZXNfaW5pdF9tbWlvKGRldl9wcml2KTsKIAlpZiAocmV0KQpAQCAtMjkzMyw3ICsy OTMzLDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAq a2RldikKIAkgKi8KIAlpOTE1X2dlbV9ydW50aW1lX3N1c3BlbmQoZGV2X3ByaXYpOwogCi0JaW50 ZWxfdWNfcnVudGltZV9zdXNwZW5kKGRldl9wcml2KTsKKwlpbnRlbF91Y19ydW50aW1lX3N1c3Bl bmQoJmRldl9wcml2LT5ndC51Yyk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJy dXB0cyhkZXZfcHJpdik7CiAKQEAgLTI5NTgsNyArMjk1OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf cnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAKIAkJaW50ZWxfcnVudGltZV9w bV9lbmFibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKLQkJaW50ZWxfdWNfcmVzdW1lKGRldl9w cml2KTsKKwkJaW50ZWxfdWNfcmVzdW1lKCZkZXZfcHJpdi0+Z3QudWMpOwogCiAJCWludGVsX2d0 X2luaXRfc3dpenpsaW5nKCZkZXZfcHJpdi0+Z3QpOwogCQlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNl cyhkZXZfcHJpdik7CkBAIC0zMDU2LDcgKzMwNTYsNyBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRp bWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAKIAlpbnRlbF9ydW50aW1lX3BtX2VuYWJs ZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKIAotCWludGVsX3VjX3Jlc3VtZShkZXZfcHJpdik7CisJ aW50ZWxfdWNfcmVzdW1lKCZkZXZfcHJpdi0+Z3QudWMpOwogCiAJLyoKIAkgKiBObyBwb2ludCBv ZiByb2xsaW5nIGJhY2sgdGhpbmdzIGluIGNhc2Ugb2YgYW4gZXJyb3IsIGFzIHRoZSBiZXN0CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBjNDc1N2NiZjlhMzMuLjk5MDA0YzhiODMzZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMjkzLDkgKzIyOTMsOSBAQCBJU19TVUJQTEFURk9S TShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKICNkZWZpbmUgSEFTX0hVQ19V Q09ERShkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQogCiAvKiBIYXZpbmcgYSBHdUMgaXMg bm90IHRoZSBzYW1lIGFzIHVzaW5nIGEgR3VDICovCi0jZGVmaW5lIFVTRVNfR1VDKGRldl9wcml2 KQkJaW50ZWxfdWNfaXNfdXNpbmdfZ3VjKGRldl9wcml2KQotI2RlZmluZSBVU0VTX0dVQ19TVUJN SVNTSU9OKGRldl9wcml2KQlpbnRlbF91Y19pc191c2luZ19ndWNfc3VibWlzc2lvbihkZXZfcHJp dikKLSNkZWZpbmUgVVNFU19IVUMoZGV2X3ByaXYpCQlpbnRlbF91Y19pc191c2luZ19odWMoZGV2 X3ByaXYpCisjZGVmaW5lIFVTRVNfR1VDKGRldl9wcml2KQkJaW50ZWxfdWNfaXNfdXNpbmdfZ3Vj KCYoZGV2X3ByaXYpLT5ndC51YykKKyNkZWZpbmUgVVNFU19HVUNfU1VCTUlTU0lPTihkZXZfcHJp dikJaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1Ym1pc3Npb24oJihkZXZfcHJpdiktPmd0LnVjKQor I2RlZmluZSBVU0VTX0hVQyhkZXZfcHJpdikJCWludGVsX3VjX2lzX3VzaW5nX2h1YygmKGRldl9w cml2KS0+Z3QudWMpCiAKICNkZWZpbmUgSEFTX1BPT0xFRF9FVShkZXZfcHJpdikJKElOVEVMX0lO Rk8oZGV2X3ByaXYpLT5oYXNfcG9vbGVkX2V1KQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRl eCBlNmU4ZTRkNWViYjEuLmI3OTJlODViOGMyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBA IC0xMjQ4LDcgKzEyNDgsNyBAQCBpbnQgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKIAl9CiAKIAkvKiBXZSBjYW4ndCBlbmFibGUgY29udGV4dHMgdW50aWwg YWxsIGZpcm13YXJlIGlzIGxvYWRlZCAqLwotCXJldCA9IGludGVsX3VjX2luaXRfaHcoaTkxNSk7 CisJcmV0ID0gaW50ZWxfdWNfaW5pdF9odygmaTkxNS0+Z3QudWMpOwogCWlmIChyZXQpIHsKIAkJ RFJNX0VSUk9SKCJFbmFibGluZyB1YyBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAkJZ290byBvdXQ7 CkBAIC0xNDMzLDcgKzE0MzMsNyBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX3Vj X2ZldGNoX2Zpcm13YXJlcyhkZXZfcHJpdik7CisJaW50ZWxfdWNfZmV0Y2hfZmlybXdhcmVzKCZk ZXZfcHJpdi0+Z3QudWMpOwogCiAJcmV0ID0gaW50ZWxfd29wY21faW5pdCgmZGV2X3ByaXYtPndv cGNtKTsKIAlpZiAocmV0KQpAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgaW50IGk5MTVfZ2VtX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaW50ZWxfaW5pdF9ndF9wb3dl cnNhdmUoZGV2X3ByaXYpOwogCi0JcmV0ID0gaW50ZWxfdWNfaW5pdChkZXZfcHJpdik7CisJcmV0 ID0gaW50ZWxfdWNfaW5pdCgmZGV2X3ByaXYtPmd0LnVjKTsKIAlpZiAocmV0KQogCQlnb3RvIGVy cl9wbTsKIApAQCAtMTU0NSw5ICsxNTQ1LDkgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5z dHJ1Y3RfbXV0ZXgpOwogZXJyX2luaXRfaHc6Ci0JaW50ZWxfdWNfZmluaV9odyhkZXZfcHJpdik7 CisJaW50ZWxfdWNfZmluaV9odygmZGV2X3ByaXYtPmd0LnVjKTsKIGVycl91Y19pbml0OgotCWlu dGVsX3VjX2ZpbmkoZGV2X3ByaXYpOworCWludGVsX3VjX2ZpbmkoJmRldl9wcml2LT5ndC51Yyk7 CiBlcnJfcG06CiAJaWYgKHJldCAhPSAtRUlPKSB7CiAJCWludGVsX2NsZWFudXBfZ3RfcG93ZXJz YXZlKGRldl9wcml2KTsKQEAgLTE1NjQsNyArMTU2NCw3IEBAIGludCBpOTE1X2dlbV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5kcm0uc3RydWN0X211dGV4KTsKIAogZXJyX3VjX2Z3OgotCWludGVsX3VjX2NsZWFudXBfZmly bXdhcmVzKGRldl9wcml2KTsKKwlpbnRlbF91Y19jbGVhbnVwX2Zpcm13YXJlcygmZGV2X3ByaXYt Pmd0LnVjKTsKIAogCWlmIChyZXQgIT0gLUVJTykgewogCQlpOTE1X2dlbV9jbGVhbnVwX3VzZXJw dHIoZGV2X3ByaXYpOwpAQCAtMTYxMSw4ICsxNjExLDggQEAgdm9pZCBpOTE1X2dlbV9maW5pX2h3 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpOTE1X2dlbV9kcmFpbl93b3Jr cXVldWUoZGV2X3ByaXYpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwotCWludGVsX3VjX2ZpbmlfaHcoZGV2X3ByaXYpOwotCWludGVsX3VjX2ZpbmkoZGV2X3By aXYpOworCWludGVsX3VjX2ZpbmlfaHcoJmRldl9wcml2LT5ndC51Yyk7CisJaW50ZWxfdWNfZmlu aSgmZGV2X3ByaXYtPmd0LnVjKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0 X211dGV4KTsKIAogCWk5MTVfZ2VtX2RyYWluX2ZyZWVkX29iamVjdHMoZGV2X3ByaXYpOwpAQCAt MTYzMCw3ICsxNjMwLDcgQEAgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAogCWludGVsX2NsZWFudXBfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsK IAotCWludGVsX3VjX2NsZWFudXBfZmlybXdhcmVzKGRldl9wcml2KTsKKwlpbnRlbF91Y19jbGVh bnVwX2Zpcm13YXJlcygmZGV2X3ByaXYtPmd0LnVjKTsKIAlpOTE1X2dlbV9jbGVhbnVwX3VzZXJw dHIoZGV2X3ByaXYpOwogCWludGVsX3RpbWVsaW5lc19maW5pKGRldl9wcml2KTsKIAotLSAKMi4y MC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=