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.8 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 3E5F1C433DF for ; Thu, 4 Jun 2020 15:05:21 +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 1D90F2064C for ; Thu, 4 Jun 2020 15:05:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D90F2064C 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 A84C36E408; Thu, 4 Jun 2020 15:05:20 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B61AF6E408 for ; Thu, 4 Jun 2020 15:05:19 +0000 (UTC) IronPort-SDR: 7LOIJxmI4o4KGYVk/AcVpYb+6L43frZRHKaGU66Ssn7B8M4c/szAeLEUjK10JQ+1B71/Nwn4q0 /jUB6LGUB+WQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2020 08:05:11 -0700 IronPort-SDR: gdwbRCTp245zuBvpbgE1Ojk5uSPgolBhewByuKx4Z0IEr4x53Bosyzq4YFkN9Vn9ICBHlJyl0d guldcCq2P90A== X-IronPort-AV: E=Sophos;i="5.73,472,1583222400"; d="scan'208";a="445533382" Received: from bsochack-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.43.109]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2020 08:05:08 -0700 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Date: Thu, 4 Jun 2020 18:05:03 +0300 Message-Id: <20200604150503.17199-1-jani.nikula@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Intel-gfx] [CI] drm/i915/params: switch to device specific parameters X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jani.nikula@intel.com, =?UTF-8?q?Juha-Pekka=20Heikkil=C3=A4?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" U3RhcnQgdXNpbmcgZGV2aWNlIHNwZWNpZmljIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBtb2R1bGUg cGFyYW1ldGVycyBmb3IKbW9zdCB0aGluZ3MuIFRoZSBtb2R1bGUgcGFyYW1ldGVycyBiZWNvbWUg dGhlIGltbXV0YWJsZSBpbml0aWFsIHZhbHVlcwpmb3IgaTkxNSBwYXJhbWV0ZXJzLiBUaGUgZGV2 aWNlIHNwZWNpZmljIHBhcmFtZXRlcnMgaW4gaTkxNS0+cGFyYW1zCnN0YXJ0IGxpZmUgYXMgYSBj b3B5IG9mIGk5MTVfbW9kcGFyYW1zLiBBbnkgbGF0ZXIgY2hhbmdlcyBhcmUgb25seQpyZWZsZWN0 ZWQgaW4gdGhlIGRlYnVnZnMuCgpUaGUgc3RyYWdnbGVycyBhcmU6CgoqIGk5MTUuZm9yY2VfcHJv YmUgYW5kIGk5MTUubW9kZXNldC4gTmVlZGVkIGJlZm9yZSBkZXZfcHJpdiBpcwogIGF2YWlsYWJs ZS4gVGhpcyBpcyBmaW5lIGJlY2F1c2UgdGhlIHBhcmFtZXRlcnMgYXJlIHJlYWQtb25seSBhbmQg bmV2ZXIKICBtb2RpZmllZC4KCiogaTkxNS52ZXJib3NlX3N0YXRlX2NoZWNrcy4gUGFzc2luZyBk ZXZfcHJpdiB0byBJOTE1X1NUQVRFX1dBUk4gYW5kCiAgSTkxNV9TVEFURV9XQVJOX09OIHdvdWxk IHJlc3VsdCBpbiBtYXNzaXZlIGFuZCB1Z2x5IGNodXJuLiBUaGlzIGlzCiAgaGFuZGxlZCBieSBu b3QgZXhwb3NpbmcgdGhlIHBhcmFtZXRlciB2aWEgZGVidWdmcywgYW5kIGxlYXZpbmcgdGhlCiAg cGFyYW1ldGVyIHdyaXRhYmxlIGluIHN5c2ZzLiBUaGlzIG1heSBiZSBmaXhlZCB1cCBpbiBmb2xs b3ctdXAgd29yay4KCiogaTkxNS5pbmplY3RfcHJvYmVfZmFpbHVyZS4gT25seSBtYWtlcyBzZW5z ZSBpbiB0ZXJtcyBvZiB0aGUgbW9kdWxlLAogIG5vdCB0aGUgZGV2aWNlLiBUaGlzIGlzIGhhbmRs ZWQgYnkgbm90IGV4cG9zaW5nIHRoZSBwYXJhbWV0ZXIgdmlhCiAgZGVidWdmcy4KCkNjOiBKdWhh LVBla2thIEhlaWtraWzDpCA8anVoYS1wZWtrYS5oZWlra2lsYUBpbnRlbC5jb20+CkNjOiBWZW5r YXRhIFNhbmRlZXAgRGhhbmFsYWtvdGEgPHZlbmthdGEucy5kaGFuYWxha290YUBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgICAgIHwgIDYgKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgICAgICB8ICA0ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3NyLmMgICAgICB8ICA2ICsrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAxMiArKysrKy0tLS0t CiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyAgfCAgMiArLQog Li4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jICAgIHwgMTQgKysrKysr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAg OCArKysrLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMg fCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jICAgICAg fCAxMiArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMu YyAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX29wcmVn aW9uLmMgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5j ICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyAg ICAgIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0 LmMgICB8ICA0ICsrLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVh dC5jICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyAgICAg ICAgIHwgIDYgKystLS0KIC4uLi9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfaGVhcnRiZWF0 LmMgICB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9n LmMgICAgfCAxNSArKysrKysrKy0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19zdWJtaXNzaW9uLmMgfCAgNCArKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRl bF91Yy5jICAgICAgICAgfCAyMCArKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfdWNfZncuYyAgICAgIHwgMjIgKysrKysrKysrKy0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmc19wYXJhbXMuYyAgICB8ICA3ICstLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDkgKysrKysrLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICA1ICsrKyst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDQgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMgICAgICAgICAgICAgIHwgIDggKysrLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAgICAgIHwgIDYgKyst LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jICAgICAgICAgICB8ICA4ICsr Ky0tLS0KIDMwIGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspLCAxMDEgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9z LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwppbmRleCA4Mzkx MjQ2NDcyMDIuLmVjOGFmMmI3YmYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9iaW9zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9iaW9zLmMKQEAgLTQ3OSw3ICs0NzksNyBAQCBwYXJzZV9zZHZvX3BhbmVsX2RhdGEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpwYW5lbF9maXhlZF9tb2RlOwogCWludCBpbmRleDsKIAotCWluZGV4ID0gaTkxNV9tb2RwYXJh bXMudmJ0X3Nkdm9fcGFuZWxfdHlwZTsKKwlpbmRleCA9IGRldl9wcml2LT5wYXJhbXMudmJ0X3Nk dm9fcGFuZWxfdHlwZTsKIAlpZiAoaW5kZXggPT0gLTIpIHsKIAkJZHJtX2RiZ19rbXMoJmRldl9w cml2LT5kcm0sCiAJCQkgICAgIklnbm9yZSBTRFZPIHBhbmVsIG1vZGUgZnJvbSBCSU9TIFZCVCB0 YWJsZXMuXG4iKTsKQEAgLTgyOSw5ICs4MjksOSBAQCBwYXJzZV9lZHAoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQogCQl1OCB2 c3dpbmc7CiAKIAkJLyogRG9uJ3QgcmVhZCBmcm9tIFZCVCBpZiBtb2R1bGUgcGFyYW1ldGVyIGhh cyB2YWxpZCB2YWx1ZSovCi0JCWlmIChpOTE1X21vZHBhcmFtcy5lZHBfdnN3aW5nKSB7CisJCWlm IChkZXZfcHJpdi0+cGFyYW1zLmVkcF92c3dpbmcpIHsKIAkJCWRldl9wcml2LT52YnQuZWRwLmxv d192c3dpbmcgPQotCQkJCWk5MTVfbW9kcGFyYW1zLmVkcF92c3dpbmcgPT0gMTsKKwkJCQlkZXZf cHJpdi0+cGFyYW1zLmVkcF92c3dpbmcgPT0gMTsKIAkJfSBlbHNlIHsKIAkJCXZzd2luZyA9IChl ZHAtPmVkcF92c3dpbmdfcHJlZW1waCA+PiAocGFuZWxfdHlwZSAqIDQpKSAmIDB4RjsKIAkJCWRl dl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgPSB2c3dpbmcgPT0gMDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCmluZGV4IDJmNWI5YTRiYWFmZC4uNWI0NTEwY2U1Njkz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKQEAgLTgzMyw3ICs4 MzMsNyBAQCBpbnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is CiAJCSAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSwKIAkJICAgIGZvcmNl KTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5sb2FkX2RldGVjdF90ZXN0KSB7CisJaWYgKGRldl9w cml2LT5wYXJhbXMubG9hZF9kZXRlY3RfdGVzdCkgewogCQl3YWtlcmVmID0gaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3ByaXYsCiAJCQkJCQkgIGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFp bik7CiAJCWdvdG8gbG9hZF9kZXRlY3Q7CkBAIC04ODksNyArODg5LDcgQEAgaW50ZWxfY3J0X2Rl dGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQllbHNlIGlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgNCkKIAkJCXN0YXR1cyA9IGludGVsX2NydF9sb2FkX2RldGVjdChjcnQs CiAJCQkJdG9faW50ZWxfY3J0Yyhjb25uZWN0b3ItPnN0YXRlLT5jcnRjKS0+cGlwZSk7Ci0JCWVs c2UgaWYgKGk5MTVfbW9kcGFyYW1zLmxvYWRfZGV0ZWN0X3Rlc3QpCisJCWVsc2UgaWYgKGRldl9w cml2LT5wYXJhbXMubG9hZF9kZXRlY3RfdGVzdCkKIAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0 dXNfZGlzY29ubmVjdGVkOwogCQllbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX3Vu a25vd247CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nz ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jc3IuYwppbmRleCA5ODQz YzlhZjZjMTMuLmYyMmE3NjQ1YzI0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Nzci5jCkBAIC03MjMsMTUgKzcyMywxNSBAQCB2b2lkIGludGVsX2Nzcl91Y29kZV9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJY3NyLT5tYXhfZndfc2l6ZSA9 IEJYVF9DU1JfTUFYX0ZXX1NJWkU7CiAJfQogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmRtY19maXJt d2FyZV9wYXRoKSB7Ci0JCWlmIChzdHJsZW4oaTkxNV9tb2RwYXJhbXMuZG1jX2Zpcm13YXJlX3Bh dGgpID09IDApIHsKKwlpZiAoZGV2X3ByaXYtPnBhcmFtcy5kbWNfZmlybXdhcmVfcGF0aCkgewor CQlpZiAoc3RybGVuKGRldl9wcml2LT5wYXJhbXMuZG1jX2Zpcm13YXJlX3BhdGgpID09IDApIHsK IAkJCWNzci0+ZndfcGF0aCA9IE5VTEw7CiAJCQlkcm1faW5mbygmZGV2X3ByaXYtPmRybSwKIAkJ CQkgIkRpc2FibGluZyBDU1IgZmlybXdhcmUgYW5kIHJ1bnRpbWUgUE1cbiIpOwogCQkJcmV0dXJu OwogCQl9CiAKLQkJY3NyLT5md19wYXRoID0gaTkxNV9tb2RwYXJhbXMuZG1jX2Zpcm13YXJlX3Bh dGg7CisJCWNzci0+ZndfcGF0aCA9IGRldl9wcml2LT5wYXJhbXMuZG1jX2Zpcm13YXJlX3BhdGg7 CiAJCS8qIEJ5cGFzcyB2ZXJzaW9uIGNoZWNrIGZvciBmaXJtd2FyZSBvdmVycmlkZS4gKi8KIAkJ Y3NyLT5yZXF1aXJlZF92ZXJzaW9uID0gMDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGE5Zjc1MmQyNmI0ZS4uNzMxMDhlYTVhOGQ5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDg4 Niw3ICs0ODg2LDcgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlpbnQgcmV0OwogCiAJLyogcmVzZXQgZG9lc24ndCB0b3VjaCB0 aGUgZGlzcGxheSAqLwotCWlmICghaTkxNV9tb2RwYXJhbXMuZm9yY2VfcmVzZXRfbW9kZXNldF90 ZXN0ICYmCisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCAm JgogCSAgICAhZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkoZGV2X3ByaXYpKQogCQlyZXR1cm47 CiAKQEAgLTc4NzksNyArNzg3OSw3IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFoc3dfY3J0 Y19zdXBwb3J0c19pcHMoY3J0YykpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmICghaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2lwcykKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2lwcykKIAkJ cmV0dXJuIGZhbHNlOwogCiAJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwID4gMjQpCkBAIC04MTUw LDggKzgxNTAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wYW5lbF9zYW5pdGl6ZV9zc2Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgYm9vbCBpbnRlbF9wYW5lbF91 c2Vfc3NjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoaTkxNV9t b2RwYXJhbXMucGFuZWxfdXNlX3NzYyA+PSAwKQotCQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMucGFu ZWxfdXNlX3NzYyAhPSAwOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLnBhbmVsX3VzZV9zc2MgPj0g MCkKKwkJcmV0dXJuIGRldl9wcml2LT5wYXJhbXMucGFuZWxfdXNlX3NzYyAhPSAwOwogCXJldHVy biBkZXZfcHJpdi0+dmJ0Lmx2ZHNfdXNlX3NzYwogCQkmJiAhKGRldl9wcml2LT5xdWlya3MgJiBR VUlSS19MVkRTX1NTQ19ESVNBQkxFKTsKIH0KQEAgLTEzNTg0LDggKzEzNTg0LDggQEAgcGlwZV9j b25maWdfbWlzbWF0Y2goYm9vbCBmYXN0c2V0LCBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAogc3RhdGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKGk5MTVfbW9kcGFyYW1zLmZhc3Rib290ICE9IC0xKQotCQly ZXR1cm4gaTkxNV9tb2RwYXJhbXMuZmFzdGJvb3Q7CisJaWYgKGRldl9wcml2LT5wYXJhbXMuZmFz dGJvb3QgIT0gLTEpCisJCXJldHVybiBkZXZfcHJpdi0+cGFyYW1zLmZhc3Rib290OwogCiAJLyog RW5hYmxlIGZhc3Rib290IGJ5IGRlZmF1bHQgb24gU2t5bGFrZSBhbmQgbmV3ZXIgKi8KIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMKaW5kZXggMmI2NDBkOGFiOWQyLi4wNTQ2 OGI3OTNjNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X2RlYnVnZnMuYwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9p cHNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJc2VxX3ByaW50 ZihtLCAiRW5hYmxlZCBieSBrZXJuZWwgcGFyYW1ldGVyOiAlc1xuIiwKLQkJICAgeWVzbm8oaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2lwcykpOworCQkgICB5ZXNubyhkZXZfcHJpdi0+cGFyYW1zLmVu YWJsZV9pcHMpKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJc2VxX3B1 dHMobSwgIkN1cnJlbnRseTogdW5rbm93blxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCmluZGV4IDcyMzEyYjY3YjU3YS4uZDJj NWJlOTI2YzRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuYwpAQCAtNDUxMyw3ICs0NTEzLDcgQEAgc3RhdGljIHUzMiBnZXRfYWxs b3dlZF9kY19tYXNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ bWFzayA9IDA7CiAJfQogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwp CisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKIAkJbWF4X2RjID0g MDsKIAogCWlmIChlbmFibGVfZGMgPj0gMCAmJiBlbmFibGVfZGMgPD0gbWF4X2RjKSB7CkBAIC00 NjAyLDExICs0NjAyLDExIEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBv d2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJaW50IGVycjsKIAotCWk5 MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCA9CisJZGV2X3ByaXYtPnBhcmFtcy5kaXNh YmxlX3Bvd2VyX3dlbGwgPQogCQlzYW5pdGl6ZV9kaXNhYmxlX3Bvd2VyX3dlbGxfb3B0aW9uKGRl dl9wcml2LAotCQkJCQkJICAgaTkxNV9tb2RwYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxsKTsKKwkJ CQkJCSAgIGRldl9wcml2LT5wYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxsKTsKIAlkZXZfcHJpdi0+ Y3NyLmFsbG93ZWRfZGNfbWFzayA9Ci0JCWdldF9hbGxvd2VkX2RjX21hc2soZGV2X3ByaXYsIGk5 MTVfbW9kcGFyYW1zLmVuYWJsZV9kYyk7CisJCWdldF9hbGxvd2VkX2RjX21hc2soZGV2X3ByaXYs IGRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2RjKTsKIAogCWRldl9wcml2LT5jc3IudGFyZ2V0X2Rj X3N0YXRlID0KIAkJc2FuaXRpemVfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9F Tl9VUFRPX0RDNik7CkBAIC01NTYzLDcgKzU1NjMsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCByZXN1bWUpCiAJ CWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RPTUFJTl9JTklUKTsKIAogCS8q IERpc2FibGUgcG93ZXIgc3VwcG9ydCBpZiB0aGUgdXNlciBhc2tlZCBzby4gKi8KLQlpZiAoIWk5 MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFtcy5kaXNh YmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RP TUFJTl9JTklUKTsKIAlpbnRlbF9wb3dlcl9kb21haW5zX3N5bmNfaHcoaTkxNSk7CiAKQEAgLTU1 ODcsNyArNTU4Nyw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kcml2ZXJfcmVtb3ZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlmZXRjaF9hbmRfemVybygmaTkxNS0+cG93 ZXJfZG9tYWlucy53YWtlcmVmKTsKIAogCS8qIFJlbW92ZSB0aGUgcmVmY291bnQgd2UgdG9vayB0 byBrZWVwIHBvd2VyIHdlbGwgc3VwcG9ydCBkaXNhYmxlZC4gKi8KLQlpZiAoIWk5MTVfbW9kcGFy YW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFtcy5kaXNhYmxlX3Bvd2Vy X3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChpOTE1LCBQT1dFUl9E T01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2ZsdXNoX3dvcmtfc3luYyhpOTE1 KTsKQEAgLTU2NzYsNyArNTY3Niw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5k KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIEV2ZW4gaWYgcG93ZXIgd2VsbCBz dXBwb3J0IHdhcyBkaXNhYmxlZCB3ZSBzdGlsbCB3YW50IHRvIGRpc2FibGUKIAkgKiBwb3dlciB3 ZWxscyBpZiBwb3dlciBkb21haW5zIG11c3QgYmUgZGVpbml0aWFsaXplZCBmb3Igc3VzcGVuZC4K IAkgKi8KLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5 MTUtPnBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 X3VuY2hlY2tlZChpOTE1LCBQT1dFUl9ET01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNwbGF5X3Bv d2VyX2ZsdXNoX3dvcmsoaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmMKaW5kZXggNTVmZGEwNzRjMGFkLi4wOGViZTM0OWIyOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwLmMKQEAgLTQ3MDcsNyArNDcwNyw5IEBAIGludGVsX2RwX3Npbmtf Y2FuX21zdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogc3RhdGljIGJvb2wKIGludGVsX2Rw X2Nhbl9tc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKLQlyZXR1cm4gaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2RwX21zdCAmJgorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g ZHBfdG9faTkxNShpbnRlbF9kcCk7CisKKwlyZXR1cm4gaTkxNS0+cGFyYW1zLmVuYWJsZV9kcF9t c3QgJiYKIAkJaW50ZWxfZHAtPmNhbl9tc3QgJiYKIAkJaW50ZWxfZHBfc2lua19jYW5fbXN0KGlu dGVsX2RwKTsKIH0KQEAgLTQ3MjQsMTMgKzQ3MjYsMTMgQEAgaW50ZWxfZHBfY29uZmlndXJlX21z dChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQkgICAgIltFTkNPREVSOiVkOiVzXSBNU1Qg c3VwcG9ydDogcG9ydDogJXMsIHNpbms6ICVzLCBtb2RwYXJhbTogJXNcbiIsCiAJCSAgICBlbmNv ZGVyLT5iYXNlLmJhc2UuaWQsIGVuY29kZXItPmJhc2UubmFtZSwKIAkJICAgIHllc25vKGludGVs X2RwLT5jYW5fbXN0KSwgeWVzbm8oc2lua19jYW5fbXN0KSwKLQkJICAgIHllc25vKGk5MTVfbW9k cGFyYW1zLmVuYWJsZV9kcF9tc3QpKTsKKwkJICAgIHllc25vKGk5MTUtPnBhcmFtcy5lbmFibGVf ZHBfbXN0KSk7CiAKIAlpZiAoIWludGVsX2RwLT5jYW5fbXN0KQogCQlyZXR1cm47CiAKIAlpbnRl bF9kcC0+aXNfbXN0ID0gc2lua19jYW5fbXN0ICYmCi0JCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9k cF9tc3Q7CisJCWk5MTUtPnBhcmFtcy5lbmFibGVfZHBfbXN0OwogCiAJZHJtX2RwX21zdF90b3Bv bG9neV9tZ3Jfc2V0X21zdCgmaW50ZWxfZHAtPm1zdF9tZ3IsCiAJCQkJCWludGVsX2RwLT5pc19t c3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9h dXhfYmFja2xpZ2h0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX2F1 eF9iYWNrbGlnaHQuYwppbmRleCAwNzIyNTQwZDY0YWQuLmFjYmQ3ZWI2NmNiZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0 LmMKQEAgLTM0OCw3ICszNDgsNyBAQCBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1 bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKIAlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGludGVsX2Nvbm5lY3Rvci0+ZW5jb2Rl cik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBkcF90b19pOTE1KGludGVsX2Rw KTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPT0gMCB8fAor CWlmIChpOTE1LT5wYXJhbXMuZW5hYmxlX2RwY2RfYmFja2xpZ2h0ID09IDAgfHwKIAkgICAgIWlu dGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShpbnRlbF9jb25uZWN0b3IpKQogCQly ZXR1cm4gLUVOT0RFVjsKIApAQCAtMzU4LDcgKzM1OCw3IEBAIGludCBpbnRlbF9kcF9hdXhfaW5p dF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9y KQogCSAqLwogCWlmIChpOTE1LT52YnQuYmFja2xpZ2h0LnR5cGUgIT0KIAkgICAgSU5URUxfQkFD S0xJR0hUX1ZFU0FfRURQX0FVWF9JTlRFUkZBQ0UgJiYKLQkgICAgaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2RwY2RfYmFja2xpZ2h0ICE9IDEgJiYKKwkgICAgaTkxNS0+cGFyYW1zLmVuYWJsZV9kcGNk X2JhY2tsaWdodCAhPSAxICYmCiAJICAgICFkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVz YywgaW50ZWxfZHAtPmVkaWRfcXVpcmtzLAogCQkJICAgICAgRFBfUVVJUktfRk9SQ0VfRFBDRF9C QUNLTElHSFQpKSB7CiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9mYmMuYwppbmRleCAxYzI2NjczYWNiMmQuLjMwNjQ5ZTE3Y2ZiNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCkBAIC03NDAsNyArNzQwLDcg QEAgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaWYgKCFpOTE1X21vZHBhcmFt cy5lbmFibGVfZmJjKSB7CisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9mYmMpIHsKIAkJ ZmJjLT5ub19mYmNfcmVhc29uID0gImRpc2FibGVkIHBlciBtb2R1bGUgcGFyYW0gb3IgYnkgZGVm YXVsdCI7CiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBzdGF0aWMg dm9pZCBfX2ludGVsX2ZiY19wb3N0X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAog CWZiYy0+ZmxpcF9wZW5kaW5nID0gZmFsc2U7CiAKLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9mYmMpIHsKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2ZiYykgewogCQlpbnRlbF9m YmNfZGVhY3RpdmF0ZShkZXZfcHJpdiwgImRpc2FibGVkIGF0IHJ1bnRpbWUgcGVyIG1vZHVsZSBw YXJhbSIpOwogCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsKIApAQCAtMTM3MCw4ICsx MzcwLDggQEAgdm9pZCBpbnRlbF9mYmNfaGFuZGxlX2ZpZm9fdW5kZXJydW5faXJxKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogc3RhdGljIGludCBpbnRlbF9zYW5pdGl6 ZV9mYmNfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAo aTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyA+PSAwKQotCQlyZXR1cm4gISFpOTE1X21vZHBhcmFt cy5lbmFibGVfZmJjOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9mYmMgPj0gMCkKKwkJ cmV0dXJuICEhZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfZmJjOwogCiAJaWYgKCFIQVNfRkJDKGRl dl9wcml2KSkKIAkJcmV0dXJuIDA7CkBAIC0xNDE1LDkgKzE0MTUsOSBAQCB2b2lkIGludGVsX2Zi Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAobmVlZF9mYmNf dnRkX3dhKGRldl9wcml2KSkKIAkJbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPmRpc3Bs YXkuaGFzX2ZiYyA9IGZhbHNlOwogCi0JaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyA9IGludGVs X3Nhbml0aXplX2ZiY19vcHRpb24oZGV2X3ByaXYpOworCWRldl9wcml2LT5wYXJhbXMuZW5hYmxl X2ZiYyA9IGludGVsX3Nhbml0aXplX2ZiY19vcHRpb24oZGV2X3ByaXYpOwogCWRybV9kYmdfa21z KCZkZXZfcHJpdi0+ZHJtLCAiU2FuaXRpemVkIGVuYWJsZV9mYmMgdmFsdWU6ICVkXG4iLAotCQkg ICAgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyk7CisJCSAgICBkZXZfcHJpdi0+cGFyYW1zLmVu YWJsZV9mYmMpOwogCiAJaWYgKCFIQVNfRkJDKGRldl9wcml2KSkgewogCQlmYmMtPm5vX2ZiY19y ZWFzb24gPSAidW5zdXBwb3J0ZWQgYnkgdGhpcyBjaGlwc2V0IjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKaW5kZXggODcyZjJhNDg5MzM5Li4xODg4NjExMjQ0ZGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCkBAIC03ODQsOCAr Nzg0LDggQEAgc3RhdGljIGJvb2wgY29tcHV0ZV9pc19kdWFsX2xpbmtfbHZkcyhzdHJ1Y3QgaW50 ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCiAJLyogdXNlIHRoZSBtb2R1bGUgb3B0aW9uIHZh bHVlIGlmIHNwZWNpZmllZCAqLwotCWlmIChpOTE1X21vZHBhcmFtcy5sdmRzX2NoYW5uZWxfbW9k ZSA+IDApCi0JCXJldHVybiBpOTE1X21vZHBhcmFtcy5sdmRzX2NoYW5uZWxfbW9kZSA9PSAyOwor CWlmIChkZXZfcHJpdi0+cGFyYW1zLmx2ZHNfY2hhbm5lbF9tb2RlID4gMCkKKwkJcmV0dXJuIGRl dl9wcml2LT5wYXJhbXMubHZkc19jaGFubmVsX21vZGUgPT0gMjsKIAogCS8qIHNpbmdsZSBjaGFu bmVsIExWRFMgaXMgbGltaXRlZCB0byAxMTIgTUh6ICovCiAJaWYgKGx2ZHNfZW5jb2Rlci0+YXR0 YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT5jbG9jayA+IDExMjk5OSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYwppbmRleCBjYzZiMDA5 NTk1ODYuLmRlOTk1MzYyZjQyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9vcHJlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfb3ByZWdpb24uYwpAQCAtODAxLDcgKzgwMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9h ZF92YnRfZmlybXdhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0 cnVjdCBpbnRlbF9vcHJlZ2lvbiAqb3ByZWdpb24gPSAmZGV2X3ByaXYtPm9wcmVnaW9uOwogCWNv bnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCWNvbnN0IGNoYXIgKm5hbWUgPSBpOTE1 X21vZHBhcmFtcy52YnRfZmlybXdhcmU7CisJY29uc3QgY2hhciAqbmFtZSA9IGRldl9wcml2LT5w YXJhbXMudmJ0X2Zpcm13YXJlOwogCWludCByZXQ7CiAKIAlpZiAoIW5hbWUgfHwgISpuYW1lKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jCmluZGV4IDNjNTA1NmRi ZjYwNy4uYWFlZDllYjNiNTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9wYW5lbC5jCkBAIC01MjEsMTAgKzUyMSwxMCBAQCBzdGF0aWMgdTMyIGludGVsX3BhbmVsX2Nv bXB1dGVfYnJpZ2h0bmVzcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAlk cm1fV0FSTl9PTigmZGV2X3ByaXYtPmRybSwgcGFuZWwtPmJhY2tsaWdodC5tYXggPT0gMCk7CiAK LQlpZiAoaTkxNV9tb2RwYXJhbXMuaW52ZXJ0X2JyaWdodG5lc3MgPCAwKQorCWlmIChkZXZfcHJp di0+cGFyYW1zLmludmVydF9icmlnaHRuZXNzIDwgMCkKIAkJcmV0dXJuIHZhbDsKIAotCWlmIChp OTE1X21vZHBhcmFtcy5pbnZlcnRfYnJpZ2h0bmVzcyA+IDAgfHwKKwlpZiAoZGV2X3ByaXYtPnBh cmFtcy5pbnZlcnRfYnJpZ2h0bmVzcyA+IDAgfHwKIAkgICAgZGV2X3ByaXYtPnF1aXJrcyAmIFFV SVJLX0lOVkVSVF9CUklHSFRORVNTKSB7CiAJCXJldHVybiBwYW5lbC0+YmFja2xpZ2h0Lm1heCAt IHZhbCArIHBhbmVsLT5iYWNrbGlnaHQubWluOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Bzci5jCmluZGV4IGI3YTJjMTAyNjQ4YS4uYzg0YTJlZDE5ZjdiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKQEAgLTgzLDcgKzgzLDcgQEAgc3Rh dGljIGJvb2wgcHNyX2dsb2JhbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogewogCXN3aXRjaCAoaTkxNS0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNL KSB7CiAJY2FzZSBJOTE1X1BTUl9ERUJVR19ERUZBVUxUOgotCQlyZXR1cm4gaTkxNV9tb2RwYXJh bXMuZW5hYmxlX3BzcjsKKwkJcmV0dXJuIGk5MTUtPnBhcmFtcy5lbmFibGVfcHNyOwogCWNhc2Ug STkxNV9QU1JfREVCVUdfRElTQUJMRToKIAkJcmV0dXJuIGZhbHNlOwogCWRlZmF1bHQ6CkBAIC0x NDUwLDkgKzE0NTAsOSBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAkJICovCiAJCWRldl9wcml2LT5oc3dfcHNyX21taW9fYWRqdXN0ID0g X1NSRF9DVExfRURQIC0gX0hTV19FRFBfUFNSX0JBU0U7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX3BzciA9PSAtMSkKKwlpZiAoZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfcHNyID09IC0x KQogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkgfHwgIWRldl9wcml2LT52YnQucHNyLmVu YWJsZSkKLQkJCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IgPSAwOworCQkJZGV2X3ByaXYtPnBh cmFtcy5lbmFibGVfcHNyID0gMDsKIAogCS8qIFNldCBsaW5rX3N0YW5kYnkgeCBsaW5rX29mZiBk ZWZhdWx0cyAqLwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2 X3ByaXYpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2Nv bnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKaW5k ZXggZjVkNTlkMThjZDViLi40ZDg4ZmFlYjRkNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyB2b2lkIGNv bnRleHRfY2xvc2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkgKiBjb250ZXh0IGNs b3NlLgogCSAqLwogCWlmICghaTkxNV9nZW1fY29udGV4dF9pc19wZXJzaXN0ZW50KGN0eCkgfHwK LQkgICAgIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spCisJICAgICFjdHgtPmk5MTUt PnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrKQogCQlraWxsX2NvbnRleHQoY3R4KTsKIAogCWk5MTVf Z2VtX2NvbnRleHRfcHV0KGN0eCk7CkBAIC02NjcsNyArNjY3LDcgQEAgc3RhdGljIGludCBfX2Nv bnRleHRfc2V0X3BlcnNpc3RlbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIGJvb2wg c3RhdGUpCiAJCSAqIHJlc2V0XSBhcmUgYWxsb3dlZCB0byBzdXJ2aXZlIHBhc3QgdGVybWluYXRp b24uIFdlIHJlcXVpcmUKIAkJICogaGFuZ2NoZWNrIHRvIGVuc3VyZSB0aGF0IHRoZSBwZXJzaXN0 ZW50IHJlcXVlc3RzIGFyZSBoZWFsdGh5LgogCQkgKi8KLQkJaWYgKCFpOTE1X21vZHBhcmFtcy5l bmFibGVfaGFuZ2NoZWNrKQorCQlpZiAoIWN0eC0+aTkxNS0+cGFyYW1zLmVuYWJsZV9oYW5nY2hl Y2spCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQlpOTE1X2dlbV9jb250ZXh0X3NldF9wZXJzaXN0 ZW5jZShjdHgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hl YXJ0YmVhdC5jCmluZGV4IGY2N2FkOTM3ZWVmYi4uMmIyZmFkMTQ3NjdjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC00LDYgKzQs NyBAQAogICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KICAqLwogCisjaW5j bHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKIAogI2luY2x1ZGUg ImludGVsX2NvbnRleHQuaCIKQEAgLTEzMCw3ICsxMzEsNyBAQCBzdGF0aWMgdm9pZCBoZWFydGJl YXQoc3RydWN0IHdvcmtfc3RydWN0ICp3cmspCiAJCWdvdG8gdW5sb2NrOwogCiAJaWRsZV9wdWxz ZShlbmdpbmUsIHJxKTsKLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKKwlp ZiAoZW5naW5lLT5pOTE1LT5wYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKIAkJZW5naW5lLT5oZWFy dGJlYXQuc3lzdG9sZSA9IGk5MTVfcmVxdWVzdF9nZXQocnEpOwogCiAJX19pOTE1X3JlcXVlc3Rf Y29tbWl0KHJxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jl c2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4IDM5MDcw YjUxNGU2NS4uMDE1NmYxZjVjNzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yZXNldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0 LmMKQEAgLTYzOCw3ICs2MzgsNyBAQCBpbnQgX19pbnRlbF9ndF9yZXNldChzdHJ1Y3QgaW50ZWxf Z3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQogCiBib29sIGludGVsX2hh c19ncHVfcmVzZXQoY29uc3Qgc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlpZiAoIWk5MTVfbW9k cGFyYW1zLnJlc2V0KQorCWlmICghZ3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJcmV0dXJuIE5V TEw7CiAKIAlyZXR1cm4gaW50ZWxfZ2V0X2dwdV9yZXNldChndCk7CkBAIC02NDYsNyArNjQ2LDcg QEAgYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAK IGJvb2wgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShjb25zdCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQog ewotCWlmIChpOTE1X21vZHBhcmFtcy5yZXNldCA8IDIpCisJaWYgKGd0LT5pOTE1LT5wYXJhbXMu cmVzZXQgPCAyKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gSU5URUxfSU5GTyhndC0+aTkx NSktPmhhc19yZXNldF9lbmdpbmU7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCB2b2lkIGludGVsX2d0 X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJYXdha2UgPSByZXNldF9wcmVwYXJlKGd0KTsK IAogCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChndCkpIHsKLQkJaWYgKGk5MTVfbW9kcGFyYW1z LnJlc2V0KQorCQlpZiAoZ3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJCWRybV9lcnIoJmd0LT5p OTE1LT5kcm0sICJHUFUgcmVzZXQgbm90IHN1cHBvcnRlZFxuIik7CiAJCWVsc2UKIAkJCWRybV9k YmcoJmd0LT5pOTE1LT5kcm0sICJHUFUgcmVzZXQgZGlzYWJsZWRcbiIpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jCmluZGV4IDY5 NzExNGRkMWY0Ny4uOWYwNGM1NGM0ZDBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9lbmdpbmVfaGVhcnRiZWF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC0zODYsMTEgKzM4NiwxMSBAQCBp bnQgaW50ZWxfaGVhcnRiZWF0X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7 CiAKLQlzYXZlZF9oYW5nY2hlY2sgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrOwot CWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2sgPSBJTlRfTUFYOworCXNhdmVkX2hhbmdj aGVjayA9IGk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrOworCWk5MTUtPnBhcmFtcy5lbmFi bGVfaGFuZ2NoZWNrID0gSU5UX01BWDsKIAogCWVyciA9IGludGVsX2d0X2xpdmVfc3VidGVzdHMo dGVzdHMsICZpOTE1LT5ndCk7CiAKLQlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0g c2F2ZWRfaGFuZ2NoZWNrOworCWk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0gc2F2ZWRf aGFuZ2NoZWNrOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfbG9nLmMKaW5kZXggZmIxMGYzNTk3ZWE1Li45YmJlOGE3OTVjYjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMKQEAgLTQyNCwyNSArNDI0LDI4 IEBAIHN0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9n ICpsb2cpCiAKIHN0YXRpYyB1MzIgX19nZXRfZGVmYXVsdF9sb2dfbGV2ZWwoc3RydWN0IGludGVs X2d1Y19sb2cgKmxvZykKIHsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBsb2dfdG9fZ3VjKGxv Zyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkx NTsKKwogCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybS9jb25maWcgZGVm YXVsdCIgKi8KLQlpZiAoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IDApIHsKKwlpZiAo aTkxNS0+cGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCAwKSB7CiAJCXJldHVybiAoSVNfRU5BQkxFRChD T05GSUdfRFJNX0k5MTVfREVCVUcpIHx8CiAJCQlJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9E RUJVR19HRU0pKSA/CiAJCQlHVUNfTE9HX0xFVkVMX01BWCA6IEdVQ19MT0dfTEVWRUxfTk9OX1ZF UkJPU0U7CiAJfQogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiBHVUNfTE9H X0xFVkVMX01BWCkgeworCWlmIChpOTE1LT5wYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdVQ19MT0df TEVWRUxfTUFYKSB7CiAJCURSTV9XQVJOKCJJbmNvbXBhdGlibGUgb3B0aW9uIGRldGVjdGVkOiAl cz0lZCwgJXMhXG4iLAotCQkJICJndWNfbG9nX2xldmVsIiwgaTkxNV9tb2RwYXJhbXMuZ3VjX2xv Z19sZXZlbCwKKwkJCSAiZ3VjX2xvZ19sZXZlbCIsIGk5MTUtPnBhcmFtcy5ndWNfbG9nX2xldmVs LAogCQkJICJ2ZXJib3NpdHkgdG9vIGhpZ2giKTsKIAkJcmV0dXJuIChJU19FTkFCTEVEKENPTkZJ R19EUk1fSTkxNV9ERUJVRykgfHwKIAkJCUlTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVH X0dFTSkpID8KIAkJCUdVQ19MT0dfTEVWRUxfTUFYIDogR1VDX0xPR19MRVZFTF9ESVNBQkxFRDsK IAl9CiAKLQlHRU1fQlVHX09OKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCBHVUNfTE9H X0xFVkVMX0RJU0FCTEVEKTsKLQlHRU1fQlVHX09OKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2 ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCk7Ci0JcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmd1Y19sb2df bGV2ZWw7CisJR0VNX0JVR19PTihpOTE1LT5wYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IEdVQ19MT0df TEVWRUxfRElTQUJMRUQpOworCUdFTV9CVUdfT04oaTkxNS0+cGFyYW1zLmd1Y19sb2dfbGV2ZWwg PiBHVUNfTE9HX0xFVkVMX01BWCk7CisJcmV0dXJuIGk5MTUtPnBhcmFtcy5ndWNfbG9nX2xldmVs OwogfQogCiBpbnQgaW50ZWxfZ3VjX2xvZ19jcmVhdGUoc3RydWN0IGludGVsX2d1Y19sb2cgKmxv ZykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJt aXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lv bi5jCmluZGV4IDk0ZWI2M2YzMDljZS4uZmRmZWI0YjliMGY1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKQEAgLTY2MCwxMCArNjYw LDEyIEBAIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCiAKIHN0YXRpYyBib29sIF9fZ3VjX3N1Ym1pc3Npb25fc2VsZWN0ZWQoc3RydWN0IGlu dGVsX2d1YyAqZ3VjKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3Rv X2d0KGd1YyktPmk5MTU7CisKIAlpZiAoIWludGVsX2d1Y19zdWJtaXNzaW9uX2lzX3N1cHBvcnRl ZChndWMpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2d1YyAmIEVOQUJMRV9HVUNfU1VCTUlTU0lPTjsKKwlyZXR1cm4gaTkxNS0+cGFyYW1zLmVuYWJs ZV9ndWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT047CiB9CiAKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1p c3Npb25faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfdWMuYwppbmRleCBmNTE4ZmUwNWM2ZjkuLjFjMmQ2MzU4ODI2YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCkBAIC00NywxNSArNDcsMTUgQEAgc3RhdGlj IHZvaWQgX19jb25maXJtX29wdGlvbnMoc3RydWN0IGludGVsX3VjICp1YykKIAogCWRybV9kYmco Jmk5MTUtPmRybSwKIAkJImVuYWJsZV9ndWM9JWQgKGd1YzolcyBzdWJtaXNzaW9uOiVzIGh1Yzol cylcbiIsCi0JCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsCisJCWk5MTUtPnBhcmFtcy5lbmFi bGVfZ3VjLAogCQl5ZXNubyhpbnRlbF91Y193YW50c19ndWModWMpKSwKIAkJeWVzbm8oaW50ZWxf dWNfd2FudHNfZ3VjX3N1Ym1pc3Npb24odWMpKSwKIAkJeWVzbm8oaW50ZWxfdWNfd2FudHNfaHVj KHVjKSkpOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPT0gLTEpCisJaWYgKGk5 MTUtPnBhcmFtcy5lbmFibGVfZ3VjID09IC0xKQogCQlyZXR1cm47CiAKLQlpZiAoaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2d1YyA9PSAwKSB7CisJaWYgKGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjID09 IDApIHsKIAkJR0VNX0JVR19PTihpbnRlbF91Y193YW50c19ndWModWMpKTsKIAkJR0VNX0JVR19P TihpbnRlbF91Y193YW50c19ndWNfc3VibWlzc2lvbih1YykpOwogCQlHRU1fQlVHX09OKGludGVs X3VjX3dhbnRzX2h1Yyh1YykpOwpAQCAtNjUsMjUgKzY1LDI1IEBAIHN0YXRpYyB2b2lkIF9fY29u ZmlybV9vcHRpb25zKHN0cnVjdCBpbnRlbF91YyAqdWMpCiAJaWYgKCFpbnRlbF91Y19zdXBwb3J0 c19ndWModWMpKQogCQlkcm1faW5mbygmaTkxNS0+ZHJtLAogCQkJICJJbmNvbXBhdGlibGUgb3B0 aW9uIGVuYWJsZV9ndWM9JWQgLSAlc1xuIiwKLQkJCSBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Vj LCAiR3VDIGlzIG5vdCBzdXBwb3J0ZWQhIik7CisJCQkgaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMs ICJHdUMgaXMgbm90IHN1cHBvcnRlZCEiKTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVf Z3VjICYgRU5BQkxFX0dVQ19MT0FEX0hVQyAmJgorCWlmIChpOTE1LT5wYXJhbXMuZW5hYmxlX2d1 YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMgJiYKIAkgICAgIWludGVsX3VjX3N1cHBvcnRzX2h1Yyh1 YykpCiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCiAJCQkgIkluY29tcGF0aWJsZSBvcHRpb24gZW5h YmxlX2d1Yz0lZCAtICVzXG4iLAotCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsICJIdUMg aXMgbm90IHN1cHBvcnRlZCEiKTsKKwkJCSBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YywgIkh1QyBp cyBub3Qgc3VwcG9ydGVkISIpOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgJiBF TkFCTEVfR1VDX1NVQk1JU1NJT04gJiYKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMgJiBF TkFCTEVfR1VDX1NVQk1JU1NJT04gJiYKIAkgICAgIWludGVsX3VjX3N1cHBvcnRzX2d1Y19zdWJt aXNzaW9uKHVjKSkKIAkJZHJtX2luZm8oJmk5MTUtPmRybSwKIAkJCSAiSW5jb21wYXRpYmxlIG9w dGlvbiBlbmFibGVfZ3VjPSVkIC0gJXNcbiIsCi0JCQkgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1 YywgIkd1QyBzdWJtaXNzaW9uIGlzIE4vQSIpOworCQkJIGk5MTUtPnBhcmFtcy5lbmFibGVfZ3Vj LCAiR3VDIHN1Ym1pc3Npb24gaXMgTi9BIik7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2d1YyAmIH4oRU5BQkxFX0dVQ19TVUJNSVNTSU9OIHwKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJs ZV9ndWMgJiB+KEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8CiAJCQkJCSAgRU5BQkxFX0dVQ19MT0FE X0hVQykpCiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCiAJCQkgIkluY29tcGF0aWJsZSBvcHRpb24g ZW5hYmxlX2d1Yz0lZCAtICVzXG4iLAotCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsICJ1 bmRvY3VtZW50ZWQgZmxhZyIpOworCQkJIGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjLCAidW5kb2N1 bWVudGVkIGZsYWciKTsKIH0KIAogdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRl bF91YyAqdWMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91 Y19mdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYwppbmRleCBl NzViZTM5OTkzNTguLjBjYmQ2OWFiYjUyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfdWNfZncuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF91Y19mdy5jCkBAIC0xMTcsNiArMTE3LDcgQEAgc3RydWN0IF9fcGFja2VkIHVjX2Z3X3Bs YXRmb3JtX3JlcXVpcmVtZW50IHsKIHN0YXRpYyB2b2lkCiBfX3VjX2Z3X2F1dG9fc2VsZWN0KHN0 cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxfcGxhdGZvcm0gcCwgdTggcmV2KQog eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gX191Y19md190b19ndCh1Y19mdykt Pmk5MTU7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCB1Y19md19wbGF0Zm9ybV9yZXF1aXJlbWVudCBm d19ibG9ic1tdID0gewogCQlJTlRFTF9VQ19GSVJNV0FSRV9ERUZTKE1BS0VfRldfTElTVCwgR1VD X0ZXX0JMT0IsIEhVQ19GV19CTE9CKQogCX07CkBAIC0xNTQsMzUgKzE1NSwzNiBAQCBfX3VjX2Z3 X2F1dG9fc2VsZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxfcGxhdGZv cm0gcCwgdTggcmV2KQogCX0KIAogCS8qIFdlIGRvbid0IHdhbnQgdG8gZW5hYmxlIEd1Qy9IdUMg b24gcHJlLUdlbjExIGJ5IGRlZmF1bHQgKi8KLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1 YyA9PSAtMSAmJiBwIDwgSU5URUxfSUNFTEFLRSkKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJsZV9n dWMgPT0gLTEgJiYgcCA8IElOVEVMX0lDRUxBS0UpCiAJCXVjX2Z3LT5wYXRoID0gTlVMTDsKIH0K IAotc3RhdGljIGNvbnN0IGNoYXIgKl9fb3ZlcnJpZGVfZ3VjX2Zpcm13YXJlX3BhdGgodm9pZCkK K3N0YXRpYyBjb25zdCBjaGFyICpfX292ZXJyaWRlX2d1Y19maXJtd2FyZV9wYXRoKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQogewotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Vj ICYgKEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8Ci0JCQkJCSBFTkFCTEVfR1VDX0xPQURfSFVDKSkK LQkJcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmd1Y19maXJtd2FyZV9wYXRoOworCWlmIChpOTE1LT5w YXJhbXMuZW5hYmxlX2d1YyAmIChFTkFCTEVfR1VDX1NVQk1JU1NJT04gfAorCQkJCSAgICAgICBF TkFCTEVfR1VDX0xPQURfSFVDKSkKKwkJcmV0dXJuIGk5MTUtPnBhcmFtcy5ndWNfZmlybXdhcmVf cGF0aDsKIAlyZXR1cm4gIiI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpfX292ZXJyaWRlX2h1 Y19maXJtd2FyZV9wYXRoKHZvaWQpCitzdGF0aWMgY29uc3QgY2hhciAqX19vdmVycmlkZV9odWNf ZmlybXdhcmVfcGF0aChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlpZiAoaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMpCi0JCXJldHVybiBp OTE1X21vZHBhcmFtcy5odWNfZmlybXdhcmVfcGF0aDsKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJs ZV9ndWMgJiBFTkFCTEVfR1VDX0xPQURfSFVDKQorCQlyZXR1cm4gaTkxNS0+cGFyYW1zLmh1Y19m aXJtd2FyZV9wYXRoOwogCXJldHVybiAiIjsKIH0KIAogc3RhdGljIHZvaWQgX191Y19md191c2Vy X292ZXJyaWRlKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCiB7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBfX3VjX2Z3X3RvX2d0KHVjX2Z3KS0+aTkxNTsKIAljb25zdCBjaGFy ICpwYXRoID0gTlVMTDsKIAogCXN3aXRjaCAodWNfZnctPnR5cGUpIHsKIAljYXNlIElOVEVMX1VD X0ZXX1RZUEVfR1VDOgotCQlwYXRoID0gX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aCgpOwor CQlwYXRoID0gX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aChpOTE1KTsKIAkJYnJlYWs7CiAJ Y2FzZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoKLQkJcGF0aCA9IF9fb3ZlcnJpZGVfaHVjX2Zpcm13 YXJlX3BhdGgoKTsKKwkJcGF0aCA9IF9fb3ZlcnJpZGVfaHVjX2Zpcm13YXJlX3BhdGgoaTkxNSk7 CiAJCWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBiY2Ew MzZhYzY2MjEuLjg1OTRhOGVmMDhjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK QEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGludCBpOTE1X2NhcGFiaWxpdGllcyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJaW50ZWxfZHJpdmVyX2NhcHNfcHJpbnQoJmk5MTUtPmNh cHMsICZwKTsKIAogCWtlcm5lbF9wYXJhbV9sb2NrKFRISVNfTU9EVUxFKTsKLQlpOTE1X3BhcmFt c19kdW1wKCZpOTE1X21vZHBhcmFtcywgJnApOworCWk5MTVfcGFyYW1zX2R1bXAoJmk5MTUtPnBh cmFtcywgJnApOwogCWtlcm5lbF9wYXJhbV91bmxvY2soVEhJU19NT0RVTEUpOwogCiAJcmV0dXJu IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnNfcGFyYW1z LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnNfcGFyYW1zLmMKaW5kZXggNjJi MmM1ZjA0OTVkLi40ZTJiMDc3NjkyY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmc19wYXJhbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnNfcGFyYW1zLmMKQEAgLTEzOCw5ICsxMzgsNiBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X3Bh cmFtX2NoYXJwX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWNoYXIgKipzID0gbS0+cHJpdmF0 ZTsKIAljaGFyICpuZXcsICpvbGQ7CiAKLQkvKiBGSVhNRTogcmVtb3ZlIGxvY2tpbmcgYWZ0ZXIg cGFyYW1zIGFyZW4ndCB0aGUgbW9kdWxlIHBhcmFtcyAqLwotCWtlcm5lbF9wYXJhbV9sb2NrKFRI SVNfTU9EVUxFKTsKLQogCW9sZCA9ICpzOwogCW5ldyA9IHN0cm5kdXBfdXNlcih1YnVmLCBQQUdF X1NJWkUpOwogCWlmIChJU19FUlIobmV3KSkgewpAQCAtMTUyLDggKzE0OSw2IEBAIHN0YXRpYyBz c2l6ZV90IGk5MTVfcGFyYW1fY2hhcnBfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAKIAlrZnJl ZShvbGQpOwogb3V0OgotCWtlcm5lbF9wYXJhbV91bmxvY2soVEhJU19NT0RVTEUpOwotCiAJcmV0 dXJuIGxlbjsKIH0KIApAQCAtMjI5LDcgKzIyNCw3IEBAIF9pOTE1X3BhcmFtX2NyZWF0ZV9maWxl KHN0cnVjdCBkZW50cnkgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwKIHN0cnVjdCBkZW50cnkg Kmk5MTVfZGVidWdmc19wYXJhbXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJ c3RydWN0IGRybV9taW5vciAqbWlub3IgPSBpOTE1LT5kcm0ucHJpbWFyeTsKLQlzdHJ1Y3QgaTkx NV9wYXJhbXMgKnBhcmFtcyA9ICZpOTE1X21vZHBhcmFtczsKKwlzdHJ1Y3QgaTkxNV9wYXJhbXMg KnBhcmFtcyA9ICZpOTE1LT5wYXJhbXM7CiAJc3RydWN0IGRlbnRyeSAqZGlyOwogCiAJZGlyID0g ZGVidWdmc19jcmVhdGVfZGlyKCJpOTE1X3BhcmFtcyIsIG1pbm9yLT5kZWJ1Z2ZzX3Jvb3QpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMzRlZTEyZjNmMDJkLi42NzEwMmRjMjZmY2UgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNTAxLDYgKzUwMSw4IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZHJpdmVyX2xhdGVfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAKIAljcHVfbGF0ZW5jeV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldl9wcml2LT5zYl9xb3MpOwog CW11dGV4X2Rlc3Ryb3koJmRldl9wcml2LT5zYl9sb2NrKTsKKworCWk5MTVfcGFyYW1zX2ZyZWUo JmRldl9wcml2LT5wYXJhbXMpOwogfQogCiAvKioKQEAgLTkxNSw2ICs5MTcsOSBAQCBpOTE1X2Ry aXZlcl9jcmVhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNl X2lkICplbnQpCiAJaTkxNS0+ZHJtLnBkZXYgPSBwZGV2OwogCXBjaV9zZXRfZHJ2ZGF0YShwZGV2 LCBpOTE1KTsKIAorCS8qIERldmljZSBwYXJhbWV0ZXJzIHN0YXJ0IGFzIGEgY29weSBvZiBtb2R1 bGUgcGFyYW1ldGVycy4gKi8KKwlpOTE1X3BhcmFtc19jb3B5KCZpOTE1LT5wYXJhbXMsICZpOTE1 X21vZHBhcmFtcyk7CisKIAkvKiBTZXR1cCB0aGUgd3JpdGUtb25jZSAiY29uc3RhbnQiIGRldmlj ZSBpbmZvICovCiAJZGV2aWNlX2luZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGk5MTUpOwogCW1l bWNweShkZXZpY2VfaW5mbywgbWF0Y2hfaW5mbywgc2l6ZW9mKCpkZXZpY2VfaW5mbykpOwpAQCAt OTQ4LDcgKzk1Myw3IEBAIGludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRl diwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAkJcmV0dXJuIFBUUl9FUlIoaTkx NSk7CiAKIAkvKiBEaXNhYmxlIG51Y2xlYXIgcGFnZWZsaXAgYnkgZGVmYXVsdCBvbiBwcmUtSUxL ICovCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5udWNsZWFyX3BhZ2VmbGlwICYmIG1hdGNoX2luZm8t PmdlbiA8IDUpCisJaWYgKCFpOTE1LT5wYXJhbXMubnVjbGVhcl9wYWdlZmxpcCAmJiBtYXRjaF9p bmZvLT5nZW4gPCA1KQogCQlpOTE1LT5kcm0uZHJpdmVyX2ZlYXR1cmVzICY9IH5EUklWRVJfQVRP TUlDOwogCiAJLyoKQEAgLTk1OCw3ICs5NjMsNyBAQCBpbnQgaTkxNV9kcml2ZXJfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAjaWYg SVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCiAJaWYgKElTX0VOQUJMRUQoQ09O RklHX0RSTV9JOTE1X1VOU1RBQkxFX0ZBS0VfTE1FTSkpIHsKIAkJaWYgKElOVEVMX0dFTihpOTE1 KSA+PSA5ICYmIGk5MTVfc2VsZnRlc3QubGl2ZSA8IDAgJiYKLQkJICAgIGk5MTVfbW9kcGFyYW1z LmZha2VfbG1lbV9zdGFydCkgeworCQkgICAgaTkxNS0+cGFyYW1zLmZha2VfbG1lbV9zdGFydCkg ewogCQkJbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+bWVtb3J5X3JlZ2lvbnMgPQogCQkJCVJF R0lPTl9TTUVNIHwgUkVHSU9OX0xNRU0gfCBSRUdJT05fU1RPTEVOOwogCQkJbWt3cml0ZV9kZXZp Y2VfaW5mbyhpOTE1KS0+aXNfZGdmeCA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCBlOTkyNTVlMTdlYjcuLmYzOTlkODY4ZDkzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC04MzAsNiArODMwLDkgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCS8qIEZJWE1FOiBE ZXZpY2UgcmVsZWFzZSBhY3Rpb25zIHNob3VsZCBhbGwgYmUgbW92ZWQgdG8gZHJtbV8gKi8KIAli b29sIGRvX3JlbGVhc2U7CiAKKwkvKiBpOTE1IGRldmljZSBwYXJhbWV0ZXJzICovCisJc3RydWN0 IGk5MTVfcGFyYW1zIHBhcmFtczsKKwogCWNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBf X2luZm87IC8qIFVzZSBJTlRFTF9JTkZPKCkgdG8gYWNjZXNzLiAqLwogCXN0cnVjdCBpbnRlbF9y dW50aW1lX2luZm8gX19ydW50aW1lOyAvKiBVc2UgUlVOVElNRV9JTkZPKCkgdG8gYWNjZXNzLiAq LwogCXN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyBjYXBzOwpAQCAtMTY4NCw3ICsxNjg3LDcgQEAg SVNfU1VCUExBVEZPUk0oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIC8q IE9ubHkgdmFsaWQgd2hlbiBIQVNfRElTUExBWSgpIGlzIHRydWUgKi8KICNkZWZpbmUgSU5URUxf RElTUExBWV9FTkFCTEVEKGRldl9wcml2KSBcCi0JCShkcm1fV0FSTl9PTigmKGRldl9wcml2KS0+ ZHJtLCAhSEFTX0RJU1BMQVkoZGV2X3ByaXYpKSwgIWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfZGlz cGxheSkKKwkoZHJtX1dBUk5fT04oJihkZXZfcHJpdiktPmRybSwgIUhBU19ESVNQTEFZKGRldl9w cml2KSksICEoZGV2X3ByaXYpLT5wYXJhbXMuZGlzYWJsZV9kaXNwbGF5KQogCiBzdGF0aWMgaW5s aW5lIGJvb2wgaW50ZWxfdnRkX2FjdGl2ZSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZXRwYXJhbS5jCmluZGV4IGQwNDI2NDRiOWNkMi4uNDAzOTBiMjM1MmIxIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZXRwYXJhbS5jCkBAIC04MCw3ICs4MCw3IEBAIGludCBpOTE1X2dldHBhcmFt X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlyZXR1cm4gLUVO T0RFVjsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFNX0hBU19HUFVfUkVTRVQ6Ci0JCXZhbHVl ID0gaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjayAmJgorCQl2YWx1ZSA9IGk5MTUtPnBh cmFtcy5lbmFibGVfaGFuZ2NoZWNrICYmCiAJCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KCZpOTE1LT5n dCk7CiAJCWlmICh2YWx1ZSAmJiBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKCZpOTE1LT5ndCkpCiAJ CQl2YWx1ZSA9IDI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCBlZWMy OTJkMDZmMTEuLjg2NjE2NmFkYTEwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCkBAIC0xNjk4LDcgKzE2OTgsNyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX2dlbihzdHJ1Y3Qg aTkxNV9ncHVfY29yZWR1bXAgKmVycm9yKQogCWVycm9yLT5yZXNldF9jb3VudCA9IGk5MTVfcmVz ZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcik7CiAJZXJyb3ItPnN1c3BlbmRfY291bnQgPSBpOTE1 LT5zdXNwZW5kX2NvdW50OwogCi0JaTkxNV9wYXJhbXNfY29weSgmZXJyb3ItPnBhcmFtcywgJmk5 MTVfbW9kcGFyYW1zKTsKKwlpOTE1X3BhcmFtc19jb3B5KCZlcnJvci0+cGFyYW1zLCAmaTkxNS0+ cGFyYW1zKTsKIAltZW1jcHkoJmVycm9yLT5kZXZpY2VfaW5mbywKIAkgICAgICAgSU5URUxfSU5G TyhpOTE1KSwKIAkgICAgICAgc2l6ZW9mKGVycm9yLT5kZXZpY2VfaW5mbykpOwpAQCAtMTcxMyw3 ICsxNzEzLDcgQEAgaTkxNV9ncHVfY29yZWR1bXBfYWxsb2Moc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsIGdmcF90IGdmcCkKIHsKIAlzdHJ1Y3QgaTkxNV9ncHVfY29yZWR1bXAgKmVycm9y OwogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5lcnJvcl9jYXB0dXJlKQorCWlmICghaTkxNS0+cGFy YW1zLmVycm9yX2NhcHR1cmUpCiAJCXJldHVybiBOVUxMOwogCiAJZXJyb3IgPSBremFsbG9jKHNp emVvZigqZXJyb3IpLCBnZnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYwppbmRleCBkZDg5ODEz NDBkNmUuLjk5ZmU4YWVmMWM2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKQEAgLTY2LDcg KzY2LDcgQEAgc3RhdGljIGJvb2wgaXNfc3VwcG9ydGVkX2RldmljZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHZvaWQgaW50ZWxfZ3Z0X3Nhbml0aXplX29wdGlvbnMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWlmICghaTkxNV9tb2RwYXJh bXMuZW5hYmxlX2d2dCkKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2d2dCkKIAkJcmV0 dXJuOwogCiAJaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkgewpAQCAtODIsNyArODIs NyBAQCB2b2lkIGludGVsX2d2dF9zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAogCXJldHVybjsKIGJhaWw6Ci0JaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2d2dCA9IDA7CisJZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfZ3Z0ID0gMDsKIH0KIAogLyoqCkBA IC0xMDIsNyArMTAyLDcgQEAgaW50IGludGVsX2d2dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlpZiAoaTkxNV9pbmplY3RfcHJvYmVfZmFpbHVyZShkZXZfcHJpdikp CiAJCXJldHVybiAtRU5PREVWOwogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Z0KSB7 CisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9ndnQpIHsKIAkJZHJtX2RiZygmZGV2X3By aXYtPmRybSwKIAkJCSJHVlQtZyBpcyBkaXNhYmxlZCBieSBrZXJuZWwgcGFyYW1zXG4iKTsKIAkJ cmV0dXJuIDA7CkBAIC0xMjMsNyArMTIzLDcgQEAgaW50IGludGVsX2d2dF9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIAogYmFpbDoKLQlpOTE1X21v ZHBhcmFtcy5lbmFibGVfZ3Z0ID0gMDsKKwlkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9ndnQgPSAw OwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yZWdpb25fbG1lbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0u YwppbmRleCAxNGI1OWI4OTljOWIuLjQwZDhmMWE5NWRmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yZWdpb25fbG1lbS5jCkBAIC03Niw3ICs3Niw3IEBAIHJlZ2lvbl9sbWVtX2luaXQo c3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKIHsKIAlpbnQgcmV0OwogCi0JaWYgKGk5 MTVfbW9kcGFyYW1zLmZha2VfbG1lbV9zdGFydCkgeworCWlmIChtZW0tPmk5MTUtPnBhcmFtcy5m YWtlX2xtZW1fc3RhcnQpIHsKIAkJcmV0ID0gaW5pdF9mYWtlX2xtZW1fYmFyKG1lbSk7CiAJCUdF TV9CVUdfT04ocmV0KTsKIAl9CkBAIC0xMTEsMTIgKzExMSwxMiBAQCBpbnRlbF9zZXR1cF9mYWtl X2xtZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmVzb3VyY2Vfc2l6ZV90IHN0 YXJ0OwogCiAJR0VNX0JVR19PTihpOTE1X2dndHRfaGFzX2FwZXJ0dXJlKCZpOTE1LT5nZ3R0KSk7 Ci0JR0VNX0JVR19PTighaTkxNV9tb2RwYXJhbXMuZmFrZV9sbWVtX3N0YXJ0KTsKKwlHRU1fQlVH X09OKCFpOTE1LT5wYXJhbXMuZmFrZV9sbWVtX3N0YXJ0KTsKIAogCS8qIFlvdXIgbWFwcGFibGUg YXBlcnR1cmUgYmVsb25ncyB0byBtZSBub3chICovCiAJbWFwcGFibGVfZW5kID0gcGNpX3Jlc291 cmNlX2xlbihwZGV2LCAyKTsKIAlpb19zdGFydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAy KSwKLQlzdGFydCA9IGk5MTVfbW9kcGFyYW1zLmZha2VfbG1lbV9zdGFydDsKKwlzdGFydCA9IGk5 MTUtPnBhcmFtcy5mYWtlX2xtZW1fc3RhcnQ7CiAKIAltZW0gPSBpbnRlbF9tZW1vcnlfcmVnaW9u X2NyZWF0ZShpOTE1LAogCQkJCQkgc3RhcnQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5j CmluZGV4IDdkNmI5YWU3NDAzYy4uNTkyMzY0YWVkMmRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91bmNvcmUuYwpAQCAtMTE4NSw3ICsxMTg1LDcgQEAgX191bmNsYWltZWRfcmVnX2RlYnVnKHN0 cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAkJICAgICByZWFkID8gInJlYWQgZnJvbSIgOiAi d3JpdGUgdG8iLAogCQkgICAgIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZykpKQogCQkvKiBPbmx5 IHJlcG9ydCB0aGUgZmlyc3QgTiBmYWlsdXJlcyAqLwotCQlpOTE1X21vZHBhcmFtcy5tbWlvX2Rl YnVnLS07CisJCXVuY29yZS0+aTkxNS0+cGFyYW1zLm1taW9fZGVidWctLTsKIH0KIAogc3RhdGlj IGlubGluZSB2b2lkCkBAIC0xMTk0LDcgKzExOTQsNyBAQCB1bmNsYWltZWRfcmVnX2RlYnVnKHN0 cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSwKIAkJICAgIGNvbnN0IGJvb2wgcmVhZCwKIAkJICAg IGNvbnN0IGJvb2wgYmVmb3JlKQogewotCWlmIChsaWtlbHkoIWk5MTVfbW9kcGFyYW1zLm1taW9f ZGVidWcpKQorCWlmIChsaWtlbHkoIXVuY29yZS0+aTkxNS0+cGFyYW1zLm1taW9fZGVidWcpKQog CQlyZXR1cm47CiAKIAkvKiBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBhbmQgcmUtZW5hYmxlZCBh cm91bmQgdW5jb3JlLT5sb2NrIHVzYWdlICovCkBAIC0yMDkzLDEyICsyMDkzLDEyIEBAIGludGVs X3VuY29yZV9hcm1fdW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKHN0cnVjdCBpbnRlbF91bmNvcmUg KnVuY29yZSkKIAkJZ290byBvdXQ7CiAKIAlpZiAodW5saWtlbHkoY2hlY2tfZm9yX3VuY2xhaW1l ZF9tbWlvKHVuY29yZSkpKSB7Ci0JCWlmICghaTkxNV9tb2RwYXJhbXMubW1pb19kZWJ1Zykgewor CQlpZiAoIXVuY29yZS0+aTkxNS0+cGFyYW1zLm1taW9fZGVidWcpIHsKIAkJCWRybV9kYmcoJnVu Y29yZS0+aTkxNS0+ZHJtLAogCQkJCSJVbmNsYWltZWQgcmVnaXN0ZXIgZGV0ZWN0ZWQsICIKIAkJ CQkiZW5hYmxpbmcgb25lc2hvdCB1bmNsYWltZWQgcmVnaXN0ZXIgcmVwb3J0aW5nLiAiCiAJCQkJ IlBsZWFzZSB1c2UgaTkxNS5tbWlvX2RlYnVnPU4gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKTsK LQkJCWk5MTVfbW9kcGFyYW1zLm1taW9fZGVidWcrKzsKKwkJCXVuY29yZS0+aTkxNS0+cGFyYW1z Lm1taW9fZGVidWcrKzsKIAkJfQogCQl1bmNvcmUtPmRlYnVnLT51bmNsYWltZWRfbW1pb19jaGVj ay0tOwogCQlyZXQgPSB0cnVlOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK