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 EDBD3C433E0 for ; Thu, 14 May 2020 15:40:33 +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 C46B720575 for ; Thu, 14 May 2020 15:40:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C46B720575 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 6CFBF6EB78; Thu, 14 May 2020 15:40:33 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id E2A806EB76 for ; Thu, 14 May 2020 15:40:31 +0000 (UTC) IronPort-SDR: 2cY6dBXUbh82cldDBS5cODfEYGszBBFlLy+Tboqd6cIDBdLcpi4Qb+Ad3vgmZyB2W7hXuZlmZl 9fjqvwH3MjwQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2020 08:40:31 -0700 IronPort-SDR: I+OkC8rhmagqcIrsDLSaQ/ooQ7PEucxfoZlmWIrEvcoh4/x1YmPy+WBZE/RzNKeWDFMowSMqFj 1vQLJsCs2PYw== X-IronPort-AV: E=Sophos;i="5.73,391,1583222400"; d="scan'208";a="464382504" Received: from oalgaze-mobl1.ger.corp.intel.com (HELO localhost) ([10.249.39.44]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2020 08:40:28 -0700 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Date: Thu, 14 May 2020 18:40:06 +0300 Message-Id: <20200514154006.4761-4-jani.nikula@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200514154006.4761-1-jani.nikula@intel.com> References: <20200514154006.4761-1-jani.nikula@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 4/4] 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+ ClNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgICAgIHwgIDYgKystLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgICAgICB8ICA0ICsrLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3NyLmMgICAgICB8ICA2ICsrLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAxMiArKysr Ky0tLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyAgfCAg MiArLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jICAgIHwgMTQg KysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAg ICAgfCAgOCArKysrLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xp Z2h0LmMgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5j ICAgICAgfCAxMiArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2x2ZHMuYyAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X29wcmVnaW9uLmMgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w YW5lbC5jICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w c3IuYyAgICAgIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9j b250ZXh0LmMgICB8ICA0ICsrLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hl YXJ0YmVhdC5jICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQu YyAgICAgICAgIHwgIDYgKystLS0KIC4uLi9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfaGVh cnRiZWF0LmMgICB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9n dWNfbG9nLmMgICAgfCAxNSArKysrKysrKy0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Y19zdWJtaXNzaW9uLmMgfCAgNCArKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF91Yy5jICAgICAgICAgfCAyMCArKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYyAgICAgIHwgMjIgKysrKysrKysrKy0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmc19wYXJhbXMuYyAgICB8ICA3ICstLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDkgKysr KysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICA1 ICsrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDQg KystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMgICAgICAgICAgICAgIHwgIDgg KysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAgICAgIHwg IDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jICAgICAgICAgICB8 ICA4ICsrKy0tLS0KIDMwIGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspLCAxMDEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwppbmRl eCA4MzkxMjQ2NDcyMDIuLmVjOGFmMmI3YmYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9iaW9zLmMKQEAgLTQ3OSw3ICs0NzksNyBAQCBwYXJzZV9zZHZvX3BhbmVsX2Rh dGEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpwYW5lbF9maXhlZF9tb2RlOwogCWludCBpbmRleDsKIAotCWluZGV4ID0gaTkxNV9t b2RwYXJhbXMudmJ0X3Nkdm9fcGFuZWxfdHlwZTsKKwlpbmRleCA9IGRldl9wcml2LT5wYXJhbXMu dmJ0X3Nkdm9fcGFuZWxfdHlwZTsKIAlpZiAoaW5kZXggPT0gLTIpIHsKIAkJZHJtX2RiZ19rbXMo JmRldl9wcml2LT5kcm0sCiAJCQkgICAgIklnbm9yZSBTRFZPIHBhbmVsIG1vZGUgZnJvbSBCSU9T IFZCVCB0YWJsZXMuXG4iKTsKQEAgLTgyOSw5ICs4MjksOSBAQCBwYXJzZV9lZHAoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQog CQl1OCB2c3dpbmc7CiAKIAkJLyogRG9uJ3QgcmVhZCBmcm9tIFZCVCBpZiBtb2R1bGUgcGFyYW1l dGVyIGhhcyB2YWxpZCB2YWx1ZSovCi0JCWlmIChpOTE1X21vZHBhcmFtcy5lZHBfdnN3aW5nKSB7 CisJCWlmIChkZXZfcHJpdi0+cGFyYW1zLmVkcF92c3dpbmcpIHsKIAkJCWRldl9wcml2LT52YnQu ZWRwLmxvd192c3dpbmcgPQotCQkJCWk5MTVfbW9kcGFyYW1zLmVkcF92c3dpbmcgPT0gMTsKKwkJ CQlkZXZfcHJpdi0+cGFyYW1zLmVkcF92c3dpbmcgPT0gMTsKIAkJfSBlbHNlIHsKIAkJCXZzd2lu ZyA9IChlZHAtPmVkcF92c3dpbmdfcHJlZW1waCA+PiAocGFuZWxfdHlwZSAqIDQpKSAmIDB4RjsK IAkJCWRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgPSB2c3dpbmcgPT0gMDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCmluZGV4IDJmNWI5YTRiYWFmZC4uNWI0NTEw Y2U1NjkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Ny dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKQEAgLTgz Myw3ICs4MzMsNyBAQCBpbnRlbF9jcnRfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCiAJCSAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSwKIAkJICAg IGZvcmNlKTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5sb2FkX2RldGVjdF90ZXN0KSB7CisJaWYg KGRldl9wcml2LT5wYXJhbXMubG9hZF9kZXRlY3RfdGVzdCkgewogCQl3YWtlcmVmID0gaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCiAJCQkJCQkgIGludGVsX2VuY29kZXItPnBvd2Vy X2RvbWFpbik7CiAJCWdvdG8gbG9hZF9kZXRlY3Q7CkBAIC04ODksNyArODg5LDcgQEAgaW50ZWxf Y3J0X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkKIAkJCXN0YXR1cyA9IGludGVsX2NydF9sb2FkX2RldGVj dChjcnQsCiAJCQkJdG9faW50ZWxfY3J0Yyhjb25uZWN0b3ItPnN0YXRlLT5jcnRjKS0+cGlwZSk7 Ci0JCWVsc2UgaWYgKGk5MTVfbW9kcGFyYW1zLmxvYWRfZGV0ZWN0X3Rlc3QpCisJCWVsc2UgaWYg KGRldl9wcml2LT5wYXJhbXMubG9hZF9kZXRlY3RfdGVzdCkKIAkJCXN0YXR1cyA9IGNvbm5lY3Rv cl9zdGF0dXNfZGlzY29ubmVjdGVkOwogCQllbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3Rh dHVzX3Vua25vd247CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Nzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jc3IuYwppbmRl eCAzMTEyNTcyY2ZiN2QuLjhjNDgxMjcwYTE2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9jc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Nzci5jCkBAIC03MTMsMTUgKzcxMywxNSBAQCB2b2lkIGludGVsX2Nzcl91Y29k ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJY3NyLT5tYXhfZndf c2l6ZSA9IEJYVF9DU1JfTUFYX0ZXX1NJWkU7CiAJfQogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmRt Y19maXJtd2FyZV9wYXRoKSB7Ci0JCWlmIChzdHJsZW4oaTkxNV9tb2RwYXJhbXMuZG1jX2Zpcm13 YXJlX3BhdGgpID09IDApIHsKKwlpZiAoZGV2X3ByaXYtPnBhcmFtcy5kbWNfZmlybXdhcmVfcGF0 aCkgeworCQlpZiAoc3RybGVuKGRldl9wcml2LT5wYXJhbXMuZG1jX2Zpcm13YXJlX3BhdGgpID09 IDApIHsKIAkJCWNzci0+ZndfcGF0aCA9IE5VTEw7CiAJCQlkcm1faW5mbygmZGV2X3ByaXYtPmRy bSwKIAkJCQkgIkRpc2FibGluZyBDU1IgZmlybXdhcmUgYW5kIHJ1bnRpbWUgUE1cbiIpOwogCQkJ cmV0dXJuOwogCQl9CiAKLQkJY3NyLT5md19wYXRoID0gaTkxNV9tb2RwYXJhbXMuZG1jX2Zpcm13 YXJlX3BhdGg7CisJCWNzci0+ZndfcGF0aCA9IGRldl9wcml2LT5wYXJhbXMuZG1jX2Zpcm13YXJl X3BhdGg7CiAJCS8qIEJ5cGFzcyB2ZXJzaW9uIGNoZWNrIGZvciBmaXJtd2FyZSBvdmVycmlkZS4g Ki8KIAkJY3NyLT5yZXF1aXJlZF92ZXJzaW9uID0gMDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGFiNjIxOTI2ZGVmMS4uNTA3YWI3OGI5 ZjNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpA QCAtNDg3OSw3ICs0ODc5LDcgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnQgcmV0OwogCiAJLyogcmVzZXQgZG9lc24ndCB0 b3VjaCB0aGUgZGlzcGxheSAqLwotCWlmICghaTkxNV9tb2RwYXJhbXMuZm9yY2VfcmVzZXRfbW9k ZXNldF90ZXN0ICYmCisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmZvcmNlX3Jlc2V0X21vZGVzZXRf dGVzdCAmJgogCSAgICAhZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkoZGV2X3ByaXYpKQogCQly ZXR1cm47CiAKQEAgLTc4NjksNyArNzg2OSw3IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2Nh cGFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFo c3dfY3J0Y19zdXBwb3J0c19pcHMoY3J0YykpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmICghaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2lwcykKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2lw cykKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwID4gMjQpCkBA IC04MTQwLDggKzgxNDAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wYW5lbF9zYW5pdGl6ZV9zc2Mo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgYm9vbCBpbnRlbF9w YW5lbF91c2Vfc3NjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAo aTkxNV9tb2RwYXJhbXMucGFuZWxfdXNlX3NzYyA+PSAwKQotCQlyZXR1cm4gaTkxNV9tb2RwYXJh bXMucGFuZWxfdXNlX3NzYyAhPSAwOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLnBhbmVsX3VzZV9z c2MgPj0gMCkKKwkJcmV0dXJuIGRldl9wcml2LT5wYXJhbXMucGFuZWxfdXNlX3NzYyAhPSAwOwog CXJldHVybiBkZXZfcHJpdi0+dmJ0Lmx2ZHNfdXNlX3NzYwogCQkmJiAhKGRldl9wcml2LT5xdWly a3MgJiBRVUlSS19MVkRTX1NTQ19ESVNBQkxFKTsKIH0KQEAgLTEzNTcxLDggKzEzNTcxLDggQEAg cGlwZV9jb25maWdfbWlzbWF0Y2goYm9vbCBmYXN0c2V0LCBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAogc3RhdGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKGk5MTVfbW9kcGFyYW1zLmZhc3Rib290ICE9IC0x KQotCQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMuZmFzdGJvb3Q7CisJaWYgKGRldl9wcml2LT5wYXJh bXMuZmFzdGJvb3QgIT0gLTEpCisJCXJldHVybiBkZXZfcHJpdi0+cGFyYW1zLmZhc3Rib290Owog CiAJLyogRW5hYmxlIGZhc3Rib290IGJ5IGRlZmF1bHQgb24gU2t5bGFrZSBhbmQgbmV3ZXIgKi8K IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMKaW5kZXggNzA1MjU2MjNiY2Rm Li44N2RiN2U5MDY2MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbnQg aTkxNV9pcHNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXdha2Vy ZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJc2Vx X3ByaW50ZihtLCAiRW5hYmxlZCBieSBrZXJuZWwgcGFyYW1ldGVyOiAlc1xuIiwKLQkJICAgeWVz bm8oaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2lwcykpOworCQkgICB5ZXNubyhkZXZfcHJpdi0+cGFy YW1zLmVuYWJsZV9pcHMpKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJ c2VxX3B1dHMobSwgIkN1cnJlbnRseTogdW5rbm93blxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCmluZGV4IDQ5OTk4OTA2Y2M2 MS4uYWQ2NzI5YmE5MGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfcG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwpAQCAtNDMyMiw3ICs0MzIyLDcgQEAgc3RhdGljIHUzMiBn ZXRfYWxsb3dlZF9kY19tYXNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJbWFzayA9IDA7CiAJfQogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX3Bvd2Vy X3dlbGwpCisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKIAkJbWF4 X2RjID0gMDsKIAogCWlmIChlbmFibGVfZGMgPj0gMCAmJiBlbmFibGVfZGMgPD0gbWF4X2RjKSB7 CkBAIC00NDA4LDExICs0NDA4LDExIEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFp bnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJaW50IGVycjsK IAotCWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCA9CisJZGV2X3ByaXYtPnBhcmFt cy5kaXNhYmxlX3Bvd2VyX3dlbGwgPQogCQlzYW5pdGl6ZV9kaXNhYmxlX3Bvd2VyX3dlbGxfb3B0 aW9uKGRldl9wcml2LAotCQkJCQkJICAgaTkxNV9tb2RwYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxs KTsKKwkJCQkJCSAgIGRldl9wcml2LT5wYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxsKTsKIAlkZXZf cHJpdi0+Y3NyLmFsbG93ZWRfZGNfbWFzayA9Ci0JCWdldF9hbGxvd2VkX2RjX21hc2soZGV2X3By aXYsIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9kYyk7CisJCWdldF9hbGxvd2VkX2RjX21hc2soZGV2 X3ByaXYsIGRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2RjKTsKIAogCWRldl9wcml2LT5jc3IudGFy Z2V0X2RjX3N0YXRlID0KIAkJc2FuaXRpemVfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19T VEFURV9FTl9VUFRPX0RDNik7CkBAIC01Mzc1LDcgKzUzNzUsNyBAQCB2b2lkIGludGVsX3Bvd2Vy X2RvbWFpbnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCByZXN1 bWUpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RPTUFJTl9JTklUKTsK IAogCS8qIERpc2FibGUgcG93ZXIgc3VwcG9ydCBpZiB0aGUgdXNlciBhc2tlZCBzby4gKi8KLQlp ZiAoIWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFt cy5kaXNhYmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBP V0VSX0RPTUFJTl9JTklUKTsKIAlpbnRlbF9wb3dlcl9kb21haW5zX3N5bmNfaHcoaTkxNSk7CiAK QEAgLTUzOTksNyArNTM5OSw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kcml2ZXJfcmVt b3ZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlmZXRjaF9hbmRfemVybygmaTkx NS0+cG93ZXJfZG9tYWlucy53YWtlcmVmKTsKIAogCS8qIFJlbW92ZSB0aGUgcmVmY291bnQgd2Ug dG9vayB0byBrZWVwIHBvd2VyIHdlbGwgc3VwcG9ydCBkaXNhYmxlZC4gKi8KLQlpZiAoIWk5MTVf bW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFtcy5kaXNhYmxl X3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChpOTE1LCBQ T1dFUl9ET01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2ZsdXNoX3dvcmtfc3lu YyhpOTE1KTsKQEAgLTU0ODgsNyArNTQ4OCw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19z dXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIEV2ZW4gaWYgcG93ZXIg d2VsbCBzdXBwb3J0IHdhcyBkaXNhYmxlZCB3ZSBzdGlsbCB3YW50IHRvIGRpc2FibGUKIAkgKiBw b3dlciB3ZWxscyBpZiBwb3dlciBkb21haW5zIG11c3QgYmUgZGVpbml0aWFsaXplZCBmb3Igc3Vz cGVuZC4KIAkgKi8KLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlp ZiAoIWk5MTUtPnBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0X3VuY2hlY2tlZChpOTE1LCBQT1dFUl9ET01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNw bGF5X3Bvd2VyX2ZsdXNoX3dvcmsoaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMKaW5kZXggNDA4YzNjMWM1ZTgxLi5kZWMwY2RjZTBlNjggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKQEAgLTQ3NDUsNyArNDc0NSw5IEBAIGludGVsX2Rw X3NpbmtfY2FuX21zdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogc3RhdGljIGJvb2wKIGlu dGVsX2RwX2Nhbl9tc3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKLQlyZXR1cm4gaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2RwX21zdCAmJgorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CisKKwlyZXR1cm4gaTkxNS0+cGFyYW1zLmVuYWJs ZV9kcF9tc3QgJiYKIAkJaW50ZWxfZHAtPmNhbl9tc3QgJiYKIAkJaW50ZWxfZHBfc2lua19jYW5f bXN0KGludGVsX2RwKTsKIH0KQEAgLTQ3NjIsMTMgKzQ3NjQsMTMgQEAgaW50ZWxfZHBfY29uZmln dXJlX21zdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQkgICAgIltFTkNPREVSOiVkOiVz XSBNU1Qgc3VwcG9ydDogcG9ydDogJXMsIHNpbms6ICVzLCBtb2RwYXJhbTogJXNcbiIsCiAJCSAg ICBlbmNvZGVyLT5iYXNlLmJhc2UuaWQsIGVuY29kZXItPmJhc2UubmFtZSwKIAkJICAgIHllc25v KGludGVsX2RwLT5jYW5fbXN0KSwgeWVzbm8oc2lua19jYW5fbXN0KSwKLQkJICAgIHllc25vKGk5 MTVfbW9kcGFyYW1zLmVuYWJsZV9kcF9tc3QpKTsKKwkJICAgIHllc25vKGk5MTUtPnBhcmFtcy5l bmFibGVfZHBfbXN0KSk7CiAKIAlpZiAoIWludGVsX2RwLT5jYW5fbXN0KQogCQlyZXR1cm47CiAK IAlpbnRlbF9kcC0+aXNfbXN0ID0gc2lua19jYW5fbXN0ICYmCi0JCWk5MTVfbW9kcGFyYW1zLmVu YWJsZV9kcF9tc3Q7CisJCWk5MTUtPnBhcmFtcy5lbmFibGVfZHBfbXN0OwogCiAJZHJtX2RwX21z dF90b3BvbG9neV9tZ3Jfc2V0X21zdCgmaW50ZWxfZHAtPm1zdF9tZ3IsCiAJCQkJCWludGVsX2Rw LT5pc19tc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcF9hdXhfYmFja2xpZ2h0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RwX2F1eF9iYWNrbGlnaHQuYwppbmRleCAwNzIyNTQwZDY0YWQuLmFjYmQ3ZWI2NmNiZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFja2xp Z2h0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9hdXhfYmFj a2xpZ2h0LmMKQEAgLTM0OCw3ICszNDgsNyBAQCBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xp Z2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGludGVsX2Nvbm5lY3Rvci0+ ZW5jb2Rlcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBkcF90b19pOTE1KGlu dGVsX2RwKTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPT0g MCB8fAorCWlmIChpOTE1LT5wYXJhbXMuZW5hYmxlX2RwY2RfYmFja2xpZ2h0ID09IDAgfHwKIAkg ICAgIWludGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShpbnRlbF9jb25uZWN0b3Ip KQogCQlyZXR1cm4gLUVOT0RFVjsKIApAQCAtMzU4LDcgKzM1OCw3IEBAIGludCBpbnRlbF9kcF9h dXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yKQogCSAqLwogCWlmIChpOTE1LT52YnQuYmFja2xpZ2h0LnR5cGUgIT0KIAkgICAgSU5U RUxfQkFDS0xJR0hUX1ZFU0FfRURQX0FVWF9JTlRFUkZBQ0UgJiYKLQkgICAgaTkxNV9tb2RwYXJh bXMuZW5hYmxlX2RwY2RfYmFja2xpZ2h0ICE9IDEgJiYKKwkgICAgaTkxNS0+cGFyYW1zLmVuYWJs ZV9kcGNkX2JhY2tsaWdodCAhPSAxICYmCiAJICAgICFkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9k cC0+ZGVzYywgaW50ZWxfZHAtPmVkaWRfcXVpcmtzLAogCQkJICAgICAgRFBfUVVJUktfRk9SQ0Vf RFBDRF9CQUNLTElHSFQpKSB7CiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYwppbmRleCAxYzI2NjczYWNiMmQuLjMwNjQ5ZTE3Y2Zi NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCkBAIC03NDAsNyAr NzQwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9lbmFibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaWYgKCFpOTE1X21v ZHBhcmFtcy5lbmFibGVfZmJjKSB7CisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9mYmMp IHsKIAkJZmJjLT5ub19mYmNfcmVhc29uID0gImRpc2FibGVkIHBlciBtb2R1bGUgcGFyYW0gb3Ig YnkgZGVmYXVsdCI7CiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBz dGF0aWMgdm9pZCBfX2ludGVsX2ZiY19wb3N0X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAogCWZiYy0+ZmxpcF9wZW5kaW5nID0gZmFsc2U7CiAKLQlpZiAoIWk5MTVfbW9kcGFyYW1z LmVuYWJsZV9mYmMpIHsKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2ZiYykgewogCQlp bnRlbF9mYmNfZGVhY3RpdmF0ZShkZXZfcHJpdiwgImRpc2FibGVkIGF0IHJ1bnRpbWUgcGVyIG1v ZHVsZSBwYXJhbSIpOwogCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsKIApAQCAtMTM3 MCw4ICsxMzcwLDggQEAgdm9pZCBpbnRlbF9mYmNfaGFuZGxlX2ZpZm9fdW5kZXJydW5faXJxKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogc3RhdGljIGludCBpbnRlbF9z YW5pdGl6ZV9mYmNfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyA+PSAwKQotCQlyZXR1cm4gISFpOTE1X21v ZHBhcmFtcy5lbmFibGVfZmJjOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9mYmMgPj0g MCkKKwkJcmV0dXJuICEhZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfZmJjOwogCiAJaWYgKCFIQVNf RkJDKGRldl9wcml2KSkKIAkJcmV0dXJuIDA7CkBAIC0xNDE1LDkgKzE0MTUsOSBAQCB2b2lkIGlu dGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAobmVl ZF9mYmNfdnRkX3dhKGRldl9wcml2KSkKIAkJbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdikt PmRpc3BsYXkuaGFzX2ZiYyA9IGZhbHNlOwogCi0JaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyA9 IGludGVsX3Nhbml0aXplX2ZiY19vcHRpb24oZGV2X3ByaXYpOworCWRldl9wcml2LT5wYXJhbXMu ZW5hYmxlX2ZiYyA9IGludGVsX3Nhbml0aXplX2ZiY19vcHRpb24oZGV2X3ByaXYpOwogCWRybV9k Ymdfa21zKCZkZXZfcHJpdi0+ZHJtLCAiU2FuaXRpemVkIGVuYWJsZV9mYmMgdmFsdWU6ICVkXG4i LAotCQkgICAgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2ZiYyk7CisJCSAgICBkZXZfcHJpdi0+cGFy YW1zLmVuYWJsZV9mYmMpOwogCiAJaWYgKCFIQVNfRkJDKGRldl9wcml2KSkgewogCQlmYmMtPm5v X2ZiY19yZWFzb24gPSAidW5zdXBwb3J0ZWQgYnkgdGhpcyBjaGlwc2V0IjsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKaW5kZXggODcyZjJhNDg5MzM5Li4xODg4NjEx MjQ0ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZk cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCkBAIC03 ODQsOCArNzg0LDggQEAgc3RhdGljIGJvb2wgY29tcHV0ZV9pc19kdWFsX2xpbmtfbHZkcyhzdHJ1 Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCiAJLyogdXNlIHRoZSBtb2R1bGUgb3B0 aW9uIHZhbHVlIGlmIHNwZWNpZmllZCAqLwotCWlmIChpOTE1X21vZHBhcmFtcy5sdmRzX2NoYW5u ZWxfbW9kZSA+IDApCi0JCXJldHVybiBpOTE1X21vZHBhcmFtcy5sdmRzX2NoYW5uZWxfbW9kZSA9 PSAyOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLmx2ZHNfY2hhbm5lbF9tb2RlID4gMCkKKwkJcmV0 dXJuIGRldl9wcml2LT5wYXJhbXMubHZkc19jaGFubmVsX21vZGUgPT0gMjsKIAogCS8qIHNpbmds ZSBjaGFubmVsIExWRFMgaXMgbGltaXRlZCB0byAxMTIgTUh6ICovCiAJaWYgKGx2ZHNfZW5jb2Rl ci0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT5jbG9jayA+IDExMjk5OSkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYwppbmRleCBj YzZiMDA5NTk1ODYuLmRlOTk1MzYyZjQyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfb3ByZWdpb24uYwpAQCAtODAxLDcgKzgwMSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfbG9hZF92YnRfZmlybXdhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewogCXN0cnVjdCBpbnRlbF9vcHJlZ2lvbiAqb3ByZWdpb24gPSAmZGV2X3ByaXYtPm9wcmVnaW9u OwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCWNvbnN0IGNoYXIgKm5hbWUg PSBpOTE1X21vZHBhcmFtcy52YnRfZmlybXdhcmU7CisJY29uc3QgY2hhciAqbmFtZSA9IGRldl9w cml2LT5wYXJhbXMudmJ0X2Zpcm13YXJlOwogCWludCByZXQ7CiAKIAlpZiAoIW5hbWUgfHwgISpu YW1lKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5l bC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jCmluZGV4IGFh OTMxZjlmMGQ2YS4uYzZkMTg3NmIzZThkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wYW5lbC5jCkBAIC01MzEsMTAgKzUzMSwxMCBAQCBzdGF0aWMgdTMyIGludGVsX3Bh bmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Is CiAKIAlkcm1fV0FSTl9PTigmZGV2X3ByaXYtPmRybSwgcGFuZWwtPmJhY2tsaWdodC5tYXggPT0g MCk7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMuaW52ZXJ0X2JyaWdodG5lc3MgPCAwKQorCWlmIChk ZXZfcHJpdi0+cGFyYW1zLmludmVydF9icmlnaHRuZXNzIDwgMCkKIAkJcmV0dXJuIHZhbDsKIAot CWlmIChpOTE1X21vZHBhcmFtcy5pbnZlcnRfYnJpZ2h0bmVzcyA+IDAgfHwKKwlpZiAoZGV2X3By aXYtPnBhcmFtcy5pbnZlcnRfYnJpZ2h0bmVzcyA+IDAgfHwKIAkgICAgZGV2X3ByaXYtPnF1aXJr cyAmIFFVSVJLX0lOVkVSVF9CUklHSFRORVNTKSB7CiAJCXJldHVybiBwYW5lbC0+YmFja2xpZ2h0 Lm1heCAtIHZhbCArIHBhbmVsLT5iYWNrbGlnaHQubWluOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Bzci5jCmluZGV4IGI3YTJjMTAyNjQ4YS4uYzg0YTJlZDE5ZjdiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKQEAgLTgzLDcgKzgzLDcg QEAgc3RhdGljIGJvb2wgcHNyX2dsb2JhbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogewogCXN3aXRjaCAoaTkxNS0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfTU9E RV9NQVNLKSB7CiAJY2FzZSBJOTE1X1BTUl9ERUJVR19ERUZBVUxUOgotCQlyZXR1cm4gaTkxNV9t b2RwYXJhbXMuZW5hYmxlX3BzcjsKKwkJcmV0dXJuIGk5MTUtPnBhcmFtcy5lbmFibGVfcHNyOwog CWNhc2UgSTkxNV9QU1JfREVCVUdfRElTQUJMRToKIAkJcmV0dXJuIGZhbHNlOwogCWRlZmF1bHQ6 CkBAIC0xNDUwLDkgKzE0NTAsOSBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAkJICovCiAJCWRldl9wcml2LT5oc3dfcHNyX21taW9fYWRq dXN0ID0gX1NSRF9DVExfRURQIC0gX0hTV19FRFBfUFNSX0JBU0U7CiAKLQlpZiAoaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX3BzciA9PSAtMSkKKwlpZiAoZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfcHNy ID09IC0xKQogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkgfHwgIWRldl9wcml2LT52YnQu cHNyLmVuYWJsZSkKLQkJCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IgPSAwOworCQkJZGV2X3By aXYtPnBhcmFtcy5lbmFibGVfcHNyID0gMDsKIAogCS8qIFNldCBsaW5rX3N0YW5kYnkgeCBsaW5r X29mZiBkZWZhdWx0cyAqLwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0 LmMKaW5kZXggOTAwZWE4YjdmYzhmLi4xZDk4MGRkNmIxODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyB2 b2lkIGNvbnRleHRfY2xvc2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkgKiBjb250 ZXh0IGNsb3NlLgogCSAqLwogCWlmICghaTkxNV9nZW1fY29udGV4dF9pc19wZXJzaXN0ZW50KGN0 eCkgfHwKLQkgICAgIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spCisJICAgICFjdHgt Pmk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrKQogCQlraWxsX2NvbnRleHQoY3R4KTsKIAog CWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7CkBAIC02NjcsNyArNjY3LDcgQEAgc3RhdGljIGlu dCBfX2NvbnRleHRfc2V0X3BlcnNpc3RlbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs IGJvb2wgc3RhdGUpCiAJCSAqIHJlc2V0XSBhcmUgYWxsb3dlZCB0byBzdXJ2aXZlIHBhc3QgdGVy bWluYXRpb24uIFdlIHJlcXVpcmUKIAkJICogaGFuZ2NoZWNrIHRvIGVuc3VyZSB0aGF0IHRoZSBw ZXJzaXN0ZW50IHJlcXVlc3RzIGFyZSBoZWFsdGh5LgogCQkgKi8KLQkJaWYgKCFpOTE1X21vZHBh cmFtcy5lbmFibGVfaGFuZ2NoZWNrKQorCQlpZiAoIWN0eC0+aTkxNS0+cGFyYW1zLmVuYWJsZV9o YW5nY2hlY2spCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQlpOTE1X2dlbV9jb250ZXh0X3NldF9w ZXJzaXN0ZW5jZShjdHgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX2hlYXJ0YmVhdC5jCmluZGV4IDUxMzZjOGJmMTEyZC4uMWVkNGM5NWIyZWE2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC00 LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KICAqLwog CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKIAogI2lu Y2x1ZGUgImludGVsX2NvbnRleHQuaCIKQEAgLTExNyw3ICsxMTgsNyBAQCBzdGF0aWMgdm9pZCBo ZWFydGJlYXQoc3RydWN0IHdvcmtfc3RydWN0ICp3cmspCiAJCWdvdG8gdW5sb2NrOwogCiAJaWRs ZV9wdWxzZShlbmdpbmUsIHJxKTsKLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVj aykKKwlpZiAoZW5naW5lLT5pOTE1LT5wYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKIAkJZW5naW5l LT5oZWFydGJlYXQuc3lzdG9sZSA9IGk5MTVfcmVxdWVzdF9nZXQocnEpOwogCiAJX19pOTE1X3Jl cXVlc3RfY29tbWl0KHJxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4 IDM5MDcwYjUxNGU2NS4uMDE1NmYxZjVjNzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yZXNldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3Jlc2V0LmMKQEAgLTYzOCw3ICs2MzgsNyBAQCBpbnQgX19pbnRlbF9ndF9yZXNldChzdHJ1Y3Qg aW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQogCiBib29sIGlu dGVsX2hhc19ncHVfcmVzZXQoY29uc3Qgc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlpZiAoIWk5 MTVfbW9kcGFyYW1zLnJlc2V0KQorCWlmICghZ3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJcmV0 dXJuIE5VTEw7CiAKIAlyZXR1cm4gaW50ZWxfZ2V0X2dwdV9yZXNldChndCk7CkBAIC02NDYsNyAr NjQ2LDcgQEAgYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9ndCAq Z3QpCiAKIGJvb2wgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShjb25zdCBzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0KQogewotCWlmIChpOTE1X21vZHBhcmFtcy5yZXNldCA8IDIpCisJaWYgKGd0LT5pOTE1LT5w YXJhbXMucmVzZXQgPCAyKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gSU5URUxfSU5GTyhn dC0+aTkxNSktPmhhc19yZXNldF9lbmdpbmU7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCB2b2lkIGlu dGVsX2d0X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJYXdha2UgPSByZXNldF9wcmVwYXJl KGd0KTsKIAogCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChndCkpIHsKLQkJaWYgKGk5MTVfbW9k cGFyYW1zLnJlc2V0KQorCQlpZiAoZ3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJCWRybV9lcnIo Jmd0LT5pOTE1LT5kcm0sICJHUFUgcmVzZXQgbm90IHN1cHBvcnRlZFxuIik7CiAJCWVsc2UKIAkJ CWRybV9kYmcoJmd0LT5pOTE1LT5kcm0sICJHUFUgcmVzZXQgZGlzYWJsZWRcbiIpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jCmlu ZGV4IDY5NzExNGRkMWY0Ny4uOWYwNGM1NGM0ZDBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfaGVhcnRiZWF0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC0zODYsMTEgKzM4Niwx MSBAQCBpbnQgaW50ZWxfaGVhcnRiZWF0X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQogCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0 dXJuIDA7CiAKLQlzYXZlZF9oYW5nY2hlY2sgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2No ZWNrOwotCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2sgPSBJTlRfTUFYOworCXNhdmVk X2hhbmdjaGVjayA9IGk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrOworCWk5MTUtPnBhcmFt cy5lbmFibGVfaGFuZ2NoZWNrID0gSU5UX01BWDsKIAogCWVyciA9IGludGVsX2d0X2xpdmVfc3Vi dGVzdHModGVzdHMsICZpOTE1LT5ndCk7CiAKLQlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2No ZWNrID0gc2F2ZWRfaGFuZ2NoZWNrOworCWk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0g c2F2ZWRfaGFuZ2NoZWNrOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF9ndWNfbG9nLmMKaW5kZXggZmIxMGYzNTk3ZWE1Li45YmJlOGE3OTVjYjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMKQEAgLTQyNCwyNSAr NDI0LDI4IEBAIHN0YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9n dWNfbG9nICpsb2cpCiAKIHN0YXRpYyB1MzIgX19nZXRfZGVmYXVsdF9sb2dfbGV2ZWwoc3RydWN0 IGludGVsX2d1Y19sb2cgKmxvZykKIHsKKwlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSBsb2dfdG9f Z3VjKGxvZyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3Vj KS0+aTkxNTsKKwogCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybS9jb25m aWcgZGVmYXVsdCIgKi8KLQlpZiAoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IDApIHsK KwlpZiAoaTkxNS0+cGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCAwKSB7CiAJCXJldHVybiAoSVNfRU5B QkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUcpIHx8CiAJCQlJU19FTkFCTEVEKENPTkZJR19EUk1f STkxNV9ERUJVR19HRU0pKSA/CiAJCQlHVUNfTE9HX0xFVkVMX01BWCA6IEdVQ19MT0dfTEVWRUxf Tk9OX1ZFUkJPU0U7CiAJfQogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPiBH VUNfTE9HX0xFVkVMX01BWCkgeworCWlmIChpOTE1LT5wYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdV Q19MT0dfTEVWRUxfTUFYKSB7CiAJCURSTV9XQVJOKCJJbmNvbXBhdGlibGUgb3B0aW9uIGRldGVj dGVkOiAlcz0lZCwgJXMhXG4iLAotCQkJICJndWNfbG9nX2xldmVsIiwgaTkxNV9tb2RwYXJhbXMu Z3VjX2xvZ19sZXZlbCwKKwkJCSAiZ3VjX2xvZ19sZXZlbCIsIGk5MTUtPnBhcmFtcy5ndWNfbG9n X2xldmVsLAogCQkJICJ2ZXJib3NpdHkgdG9vIGhpZ2giKTsKIAkJcmV0dXJuIChJU19FTkFCTEVE KENPTkZJR19EUk1fSTkxNV9ERUJVRykgfHwKIAkJCUlTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X0RFQlVHX0dFTSkpID8KIAkJCUdVQ19MT0dfTEVWRUxfTUFYIDogR1VDX0xPR19MRVZFTF9ESVNB QkxFRDsKIAl9CiAKLQlHRU1fQlVHX09OKGk5MTVfbW9kcGFyYW1zLmd1Y19sb2dfbGV2ZWwgPCBH VUNfTE9HX0xFVkVMX0RJU0FCTEVEKTsKLQlHRU1fQlVHX09OKGk5MTVfbW9kcGFyYW1zLmd1Y19s b2dfbGV2ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCk7Ci0JcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmd1 Y19sb2dfbGV2ZWw7CisJR0VNX0JVR19PTihpOTE1LT5wYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IEdV Q19MT0dfTEVWRUxfRElTQUJMRUQpOworCUdFTV9CVUdfT04oaTkxNS0+cGFyYW1zLmd1Y19sb2df bGV2ZWwgPiBHVUNfTE9HX0xFVkVMX01BWCk7CisJcmV0dXJuIGk5MTUtPnBhcmFtcy5ndWNfbG9n X2xldmVsOwogfQogCiBpbnQgaW50ZWxfZ3VjX2xvZ19jcmVhdGUoc3RydWN0IGludGVsX2d1Y19s b2cgKmxvZykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1 Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3Vi bWlzc2lvbi5jCmluZGV4IDk0ZWI2M2YzMDljZS4uZmRmZWI0YjliMGY1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKQEAgLTY2MCwx MCArNjYwLDEyIEBAIHZvaWQgaW50ZWxfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCiAKIHN0YXRpYyBib29sIF9fZ3VjX3N1Ym1pc3Npb25fc2VsZWN0ZWQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g Z3VjX3RvX2d0KGd1YyktPmk5MTU7CisKIAlpZiAoIWludGVsX2d1Y19zdWJtaXNzaW9uX2lzX3N1 cHBvcnRlZChndWMpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfU1VCTUlTU0lPTjsKKwlyZXR1cm4gaTkxNS0+cGFyYW1z LmVuYWJsZV9ndWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT047CiB9CiAKIHZvaWQgaW50ZWxfZ3Vj X3N1Ym1pc3Npb25faW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfdWMuYwppbmRleCBmNTE4ZmUwNWM2ZjkuLjFjMmQ2MzU4ODI2YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCkBAIC00NywxNSArNDcsMTUgQEAg c3RhdGljIHZvaWQgX19jb25maXJtX29wdGlvbnMoc3RydWN0IGludGVsX3VjICp1YykKIAogCWRy bV9kYmcoJmk5MTUtPmRybSwKIAkJImVuYWJsZV9ndWM9JWQgKGd1YzolcyBzdWJtaXNzaW9uOiVz IGh1YzolcylcbiIsCi0JCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsCisJCWk5MTUtPnBhcmFt cy5lbmFibGVfZ3VjLAogCQl5ZXNubyhpbnRlbF91Y193YW50c19ndWModWMpKSwKIAkJeWVzbm8o aW50ZWxfdWNfd2FudHNfZ3VjX3N1Ym1pc3Npb24odWMpKSwKIAkJeWVzbm8oaW50ZWxfdWNfd2Fu dHNfaHVjKHVjKSkpOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgPT0gLTEpCisJ aWYgKGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjID09IC0xKQogCQlyZXR1cm47CiAKLQlpZiAoaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA9PSAwKSB7CisJaWYgKGk5MTUtPnBhcmFtcy5lbmFibGVf Z3VjID09IDApIHsKIAkJR0VNX0JVR19PTihpbnRlbF91Y193YW50c19ndWModWMpKTsKIAkJR0VN X0JVR19PTihpbnRlbF91Y193YW50c19ndWNfc3VibWlzc2lvbih1YykpOwogCQlHRU1fQlVHX09O KGludGVsX3VjX3dhbnRzX2h1Yyh1YykpOwpAQCAtNjUsMjUgKzY1LDI1IEBAIHN0YXRpYyB2b2lk IF9fY29uZmlybV9vcHRpb25zKHN0cnVjdCBpbnRlbF91YyAqdWMpCiAJaWYgKCFpbnRlbF91Y19z dXBwb3J0c19ndWModWMpKQogCQlkcm1faW5mbygmaTkxNS0+ZHJtLAogCQkJICJJbmNvbXBhdGli bGUgb3B0aW9uIGVuYWJsZV9ndWM9JWQgLSAlc1xuIiwKLQkJCSBpOTE1X21vZHBhcmFtcy5lbmFi bGVfZ3VjLCAiR3VDIGlzIG5vdCBzdXBwb3J0ZWQhIik7CisJCQkgaTkxNS0+cGFyYW1zLmVuYWJs ZV9ndWMsICJHdUMgaXMgbm90IHN1cHBvcnRlZCEiKTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5l bmFibGVfZ3VjICYgRU5BQkxFX0dVQ19MT0FEX0hVQyAmJgorCWlmIChpOTE1LT5wYXJhbXMuZW5h YmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMgJiYKIAkgICAgIWludGVsX3VjX3N1cHBvcnRz X2h1Yyh1YykpCiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCiAJCQkgIkluY29tcGF0aWJsZSBvcHRp b24gZW5hYmxlX2d1Yz0lZCAtICVzXG4iLAotCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMs ICJIdUMgaXMgbm90IHN1cHBvcnRlZCEiKTsKKwkJCSBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1Yywg Ikh1QyBpcyBub3Qgc3VwcG9ydGVkISIpOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9n dWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT04gJiYKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJsZV9n dWMgJiBFTkFCTEVfR1VDX1NVQk1JU1NJT04gJiYKIAkgICAgIWludGVsX3VjX3N1cHBvcnRzX2d1 Y19zdWJtaXNzaW9uKHVjKSkKIAkJZHJtX2luZm8oJmk5MTUtPmRybSwKIAkJCSAiSW5jb21wYXRp YmxlIG9wdGlvbiBlbmFibGVfZ3VjPSVkIC0gJXNcbiIsCi0JCQkgaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2d1YywgIkd1QyBzdWJtaXNzaW9uIGlzIE4vQSIpOworCQkJIGk5MTUtPnBhcmFtcy5lbmFi bGVfZ3VjLCAiR3VDIHN1Ym1pc3Npb24gaXMgTi9BIik7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX2d1YyAmIH4oRU5BQkxFX0dVQ19TVUJNSVNTSU9OIHwKKwlpZiAoaTkxNS0+cGFyYW1z LmVuYWJsZV9ndWMgJiB+KEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8CiAJCQkJCSAgRU5BQkxFX0dV Q19MT0FEX0hVQykpCiAJCWRybV9pbmZvKCZpOTE1LT5kcm0sCiAJCQkgIkluY29tcGF0aWJsZSBv cHRpb24gZW5hYmxlX2d1Yz0lZCAtICVzXG4iLAotCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9n dWMsICJ1bmRvY3VtZW50ZWQgZmxhZyIpOworCQkJIGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjLCAi dW5kb2N1bWVudGVkIGZsYWciKTsKIH0KIAogdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVj dCBpbnRlbF91YyAqdWMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF91Y19mdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYwpp bmRleCBlMWNhYWU5Mzk5NmQuLmVmNzc3ZTIwN2Y1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC91Yy9pbnRlbF91Y19mdy5jCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RydWN0IF9fcGFja2VkIHVj X2Z3X3BsYXRmb3JtX3JlcXVpcmVtZW50IHsKIHN0YXRpYyB2b2lkCiBfX3VjX2Z3X2F1dG9fc2Vs ZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxfcGxhdGZvcm0gcCwgdTgg cmV2KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gX191Y19md190b19ndCh1 Y19mdyktPmk5MTU7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCB1Y19md19wbGF0Zm9ybV9yZXF1aXJl bWVudCBmd19ibG9ic1tdID0gewogCQlJTlRFTF9VQ19GSVJNV0FSRV9ERUZTKE1BS0VfRldfTElT VCwgR1VDX0ZXX0JMT0IsIEhVQ19GV19CTE9CKQogCX07CkBAIC0xNTEsMzUgKzE1MiwzNiBAQCBf X3VjX2Z3X2F1dG9fc2VsZWN0KHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncsIGVudW0gaW50ZWxf cGxhdGZvcm0gcCwgdTggcmV2KQogCX0KIAogCS8qIFdlIGRvbid0IHdhbnQgdG8gZW5hYmxlIEd1 Qy9IdUMgb24gcHJlLUdlbjExIGJ5IGRlZmF1bHQgKi8KLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2d1YyA9PSAtMSAmJiBwIDwgSU5URUxfSUNFTEFLRSkKKwlpZiAoaTkxNS0+cGFyYW1zLmVu YWJsZV9ndWMgPT0gLTEgJiYgcCA8IElOVEVMX0lDRUxBS0UpCiAJCXVjX2Z3LT5wYXRoID0gTlVM TDsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKl9fb3ZlcnJpZGVfZ3VjX2Zpcm13YXJlX3BhdGgo dm9pZCkKK3N0YXRpYyBjb25zdCBjaGFyICpfX292ZXJyaWRlX2d1Y19maXJtd2FyZV9wYXRoKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFi bGVfZ3VjICYgKEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8Ci0JCQkJCSBFTkFCTEVfR1VDX0xPQURf SFVDKSkKLQkJcmV0dXJuIGk5MTVfbW9kcGFyYW1zLmd1Y19maXJtd2FyZV9wYXRoOworCWlmIChp OTE1LT5wYXJhbXMuZW5hYmxlX2d1YyAmIChFTkFCTEVfR1VDX1NVQk1JU1NJT04gfAorCQkJCSAg ICAgICBFTkFCTEVfR1VDX0xPQURfSFVDKSkKKwkJcmV0dXJuIGk5MTUtPnBhcmFtcy5ndWNfZmly bXdhcmVfcGF0aDsKIAlyZXR1cm4gIiI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpfX292ZXJy aWRlX2h1Y19maXJtd2FyZV9wYXRoKHZvaWQpCitzdGF0aWMgY29uc3QgY2hhciAqX19vdmVycmlk ZV9odWNfZmlybXdhcmVfcGF0aChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlp ZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMpCi0JCXJl dHVybiBpOTE1X21vZHBhcmFtcy5odWNfZmlybXdhcmVfcGF0aDsKKwlpZiAoaTkxNS0+cGFyYW1z LmVuYWJsZV9ndWMgJiBFTkFCTEVfR1VDX0xPQURfSFVDKQorCQlyZXR1cm4gaTkxNS0+cGFyYW1z Lmh1Y19maXJtd2FyZV9wYXRoOwogCXJldHVybiAiIjsKIH0KIAogc3RhdGljIHZvaWQgX191Y19m d191c2VyX292ZXJyaWRlKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCiB7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBfX3VjX2Z3X3RvX2d0KHVjX2Z3KS0+aTkxNTsKIAljb25z dCBjaGFyICpwYXRoID0gTlVMTDsKIAogCXN3aXRjaCAodWNfZnctPnR5cGUpIHsKIAljYXNlIElO VEVMX1VDX0ZXX1RZUEVfR1VDOgotCQlwYXRoID0gX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0 aCgpOworCQlwYXRoID0gX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aChpOTE1KTsKIAkJYnJl YWs7CiAJY2FzZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoKLQkJcGF0aCA9IF9fb3ZlcnJpZGVfaHVj X2Zpcm13YXJlX3BhdGgoKTsKKwkJcGF0aCA9IF9fb3ZlcnJpZGVfaHVjX2Zpcm13YXJlX3BhdGgo aTkxNSk7CiAJCWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRl eCA4ZTk4ZGY2YTMwNDUuLjljMTkwYzdkOGY3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGludCBpOTE1X2NhcGFiaWxpdGllcyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJaW50ZWxfZHJpdmVyX2NhcHNfcHJpbnQoJmk5 MTUtPmNhcHMsICZwKTsKIAogCWtlcm5lbF9wYXJhbV9sb2NrKFRISVNfTU9EVUxFKTsKLQlpOTE1 X3BhcmFtc19kdW1wKCZpOTE1X21vZHBhcmFtcywgJnApOworCWk5MTVfcGFyYW1zX2R1bXAoJmk5 MTUtPnBhcmFtcywgJnApOwogCWtlcm5lbF9wYXJhbV91bmxvY2soVEhJU19NT0RVTEUpOwogCiAJ cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnNf cGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnNfcGFyYW1zLmMKaW5k ZXggNjJiMmM1ZjA0OTVkLi40ZTJiMDc3NjkyY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmc19wYXJhbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnNfcGFyYW1zLmMKQEAgLTEzOCw5ICsxMzgsNiBAQCBzdGF0aWMgc3NpemVfdCBp OTE1X3BhcmFtX2NoYXJwX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCWNoYXIgKipzID0gbS0+ cHJpdmF0ZTsKIAljaGFyICpuZXcsICpvbGQ7CiAKLQkvKiBGSVhNRTogcmVtb3ZlIGxvY2tpbmcg YWZ0ZXIgcGFyYW1zIGFyZW4ndCB0aGUgbW9kdWxlIHBhcmFtcyAqLwotCWtlcm5lbF9wYXJhbV9s b2NrKFRISVNfTU9EVUxFKTsKLQogCW9sZCA9ICpzOwogCW5ldyA9IHN0cm5kdXBfdXNlcih1YnVm LCBQQUdFX1NJWkUpOwogCWlmIChJU19FUlIobmV3KSkgewpAQCAtMTUyLDggKzE0OSw2IEBAIHN0 YXRpYyBzc2l6ZV90IGk5MTVfcGFyYW1fY2hhcnBfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAK IAlrZnJlZShvbGQpOwogb3V0OgotCWtlcm5lbF9wYXJhbV91bmxvY2soVEhJU19NT0RVTEUpOwot CiAJcmV0dXJuIGxlbjsKIH0KIApAQCAtMjI5LDcgKzIyNCw3IEBAIF9pOTE1X3BhcmFtX2NyZWF0 ZV9maWxlKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwKIHN0cnVjdCBk ZW50cnkgKmk5MTVfZGVidWdmc19wYXJhbXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CiB7CiAJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBpOTE1LT5kcm0ucHJpbWFyeTsKLQlzdHJ1 Y3QgaTkxNV9wYXJhbXMgKnBhcmFtcyA9ICZpOTE1X21vZHBhcmFtczsKKwlzdHJ1Y3QgaTkxNV9w YXJhbXMgKnBhcmFtcyA9ICZpOTE1LT5wYXJhbXM7CiAJc3RydWN0IGRlbnRyeSAqZGlyOwogCiAJ ZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKCJpOTE1X3BhcmFtcyIsIG1pbm9yLT5kZWJ1Z2ZzX3Jv b3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMzRlZTEyZjNmMDJkLi42NzEwMmRjMjZm Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNTAxLDYgKzUwMSw4IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZHJpdmVyX2xhdGVfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAKIAljcHVfbGF0ZW5jeV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldl9wcml2LT5zYl9x b3MpOwogCW11dGV4X2Rlc3Ryb3koJmRldl9wcml2LT5zYl9sb2NrKTsKKworCWk5MTVfcGFyYW1z X2ZyZWUoJmRldl9wcml2LT5wYXJhbXMpOwogfQogCiAvKioKQEAgLTkxNSw2ICs5MTcsOSBAQCBp OTE1X2RyaXZlcl9jcmVhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lf ZGV2aWNlX2lkICplbnQpCiAJaTkxNS0+ZHJtLnBkZXYgPSBwZGV2OwogCXBjaV9zZXRfZHJ2ZGF0 YShwZGV2LCBpOTE1KTsKIAorCS8qIERldmljZSBwYXJhbWV0ZXJzIHN0YXJ0IGFzIGEgY29weSBv ZiBtb2R1bGUgcGFyYW1ldGVycy4gKi8KKwlpOTE1X3BhcmFtc19jb3B5KCZpOTE1LT5wYXJhbXMs ICZpOTE1X21vZHBhcmFtcyk7CisKIAkvKiBTZXR1cCB0aGUgd3JpdGUtb25jZSAiY29uc3RhbnQi IGRldmljZSBpbmZvICovCiAJZGV2aWNlX2luZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGk5MTUp OwogCW1lbWNweShkZXZpY2VfaW5mbywgbWF0Y2hfaW5mbywgc2l6ZW9mKCpkZXZpY2VfaW5mbykp OwpAQCAtOTQ4LDcgKzk1Myw3IEBAIGludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAkJcmV0dXJuIFBUUl9F UlIoaTkxNSk7CiAKIAkvKiBEaXNhYmxlIG51Y2xlYXIgcGFnZWZsaXAgYnkgZGVmYXVsdCBvbiBw cmUtSUxLICovCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5udWNsZWFyX3BhZ2VmbGlwICYmIG1hdGNo X2luZm8tPmdlbiA8IDUpCisJaWYgKCFpOTE1LT5wYXJhbXMubnVjbGVhcl9wYWdlZmxpcCAmJiBt YXRjaF9pbmZvLT5nZW4gPCA1KQogCQlpOTE1LT5kcm0uZHJpdmVyX2ZlYXR1cmVzICY9IH5EUklW RVJfQVRPTUlDOwogCiAJLyoKQEAgLTk1OCw3ICs5NjMsNyBAQCBpbnQgaTkxNV9kcml2ZXJfcHJv YmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQp CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCiAJaWYgKElTX0VOQUJM RUQoQ09ORklHX0RSTV9JOTE1X1VOU1RBQkxFX0ZBS0VfTE1FTSkpIHsKIAkJaWYgKElOVEVMX0dF TihpOTE1KSA+PSA5ICYmIGk5MTVfc2VsZnRlc3QubGl2ZSA8IDAgJiYKLQkJICAgIGk5MTVfbW9k cGFyYW1zLmZha2VfbG1lbV9zdGFydCkgeworCQkgICAgaTkxNS0+cGFyYW1zLmZha2VfbG1lbV9z dGFydCkgewogCQkJbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+bWVtb3J5X3JlZ2lvbnMgPQog CQkJCVJFR0lPTl9TTUVNIHwgUkVHSU9OX0xNRU0gfCBSRUdJT05fU1RPTEVOOwogCQkJbWt3cml0 ZV9kZXZpY2VfaW5mbyhpOTE1KS0+aXNfZGdmeCA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCBhMzc4ZDUyMzQxZTYuLjMyZTg5OWM1MmVkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC04MjksNiArODI5LDkgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCS8qIEZJ WE1FOiBEZXZpY2UgcmVsZWFzZSBhY3Rpb25zIHNob3VsZCBhbGwgYmUgbW92ZWQgdG8gZHJtbV8g Ki8KIAlib29sIGRvX3JlbGVhc2U7CiAKKwkvKiBpOTE1IGRldmljZSBwYXJhbWV0ZXJzICovCisJ c3RydWN0IGk5MTVfcGFyYW1zIHBhcmFtczsKKwogCWNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2Vf aW5mbyBfX2luZm87IC8qIFVzZSBJTlRFTF9JTkZPKCkgdG8gYWNjZXNzLiAqLwogCXN0cnVjdCBp bnRlbF9ydW50aW1lX2luZm8gX19ydW50aW1lOyAvKiBVc2UgUlVOVElNRV9JTkZPKCkgdG8gYWNj ZXNzLiAqLwogCXN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyBjYXBzOwpAQCAtMTY1OCw3ICsxNjYx LDcgQEAgSVNfU1VCUExBVEZPUk0oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs CiAjZGVmaW5lIEhBU19ESVNQTEFZKGRldl9wcml2KSAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBp cGVfbWFzayAhPSAwKQogCiAvKiBPbmx5IHZhbGlkIHdoZW4gSEFTX0RJU1BMQVkoKSBpcyB0cnVl ICovCi0jZGVmaW5lIElOVEVMX0RJU1BMQVlfRU5BQkxFRChkZXZfcHJpdikgKFdBUk5fT04oIUhB U19ESVNQTEFZKGRldl9wcml2KSksICFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX2Rpc3BsYXkpCisj ZGVmaW5lIElOVEVMX0RJU1BMQVlfRU5BQkxFRChkZXZfcHJpdikgKFdBUk5fT04oIUhBU19ESVNQ TEFZKGRldl9wcml2KSksICFkZXZfcHJpdi0+cGFyYW1zLmRpc2FibGVfZGlzcGxheSkKIAogc3Rh dGljIGlubGluZSBib29sIGludGVsX3Z0ZF9hY3RpdmUodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2V0cGFyYW0uYwppbmRleCA1NGZjZTgxZDU3MjQuLmM0YTFmYWM5ZWI5MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYwpAQCAtODAsNyArODAsNyBAQCBpbnQgaTkxNV9n ZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJcmV0 dXJuIC1FTk9ERVY7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUOgot CQl2YWx1ZSA9IGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2sgJiYKKwkJdmFsdWUgPSBp OTE1LT5wYXJhbXMuZW5hYmxlX2hhbmdjaGVjayAmJgogCQkJaW50ZWxfaGFzX2dwdV9yZXNldCgm aTkxNS0+Z3QpOwogCQlpZiAodmFsdWUgJiYgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZSgmaTkxNS0+ Z3QpKQogCQkJdmFsdWUgPSAyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5k ZXggZWVjMjkyZDA2ZjExLi44NjYxNjZhZGExMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYwpAQCAtMTY5OCw3ICsxNjk4LDcgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV9nZW4o c3RydWN0IGk5MTVfZ3B1X2NvcmVkdW1wICplcnJvcikKIAllcnJvci0+cmVzZXRfY291bnQgPSBp OTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVfZXJyb3IpOwogCWVycm9yLT5zdXNwZW5kX2NvdW50 ID0gaTkxNS0+c3VzcGVuZF9jb3VudDsKIAotCWk5MTVfcGFyYW1zX2NvcHkoJmVycm9yLT5wYXJh bXMsICZpOTE1X21vZHBhcmFtcyk7CisJaTkxNV9wYXJhbXNfY29weSgmZXJyb3ItPnBhcmFtcywg Jmk5MTUtPnBhcmFtcyk7CiAJbWVtY3B5KCZlcnJvci0+ZGV2aWNlX2luZm8sCiAJICAgICAgIElO VEVMX0lORk8oaTkxNSksCiAJICAgICAgIHNpemVvZihlcnJvci0+ZGV2aWNlX2luZm8pKTsKQEAg LTE3MTMsNyArMTcxMyw3IEBAIGk5MTVfZ3B1X2NvcmVkdW1wX2FsbG9jKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LCBnZnBfdCBnZnApCiB7CiAJc3RydWN0IGk5MTVfZ3B1X2NvcmVkdW1w ICplcnJvcjsKIAotCWlmICghaTkxNV9tb2RwYXJhbXMuZXJyb3JfY2FwdHVyZSkKKwlpZiAoIWk5 MTUtPnBhcmFtcy5lcnJvcl9jYXB0dXJlKQogCQlyZXR1cm4gTlVMTDsKIAogCWVycm9yID0ga3ph bGxvYyhzaXplb2YoKmVycm9yKSwgZ2ZwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d2dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKaW5kZXgg MjFiOTEzMTNjYzVkLi5kOWJiOWE3NTk3NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d2dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCkBA IC02NCw3ICs2NCw3IEBAIHN0YXRpYyBib29sIGlzX3N1cHBvcnRlZF9kZXZpY2Uoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX2d2dF9zYW5pdGl6ZV9v cHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoIWk5MTVf bW9kcGFyYW1zLmVuYWJsZV9ndnQpCisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9ndnQp CiAJCXJldHVybjsKIAogCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikpIHsKQEAgLTgw LDcgKzgwLDcgQEAgdm9pZCBpbnRlbF9ndnRfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlyZXR1cm47CiBiYWlsOgotCWk5MTVfbW9kcGFyYW1z LmVuYWJsZV9ndnQgPSAwOworCWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2d2dCA9IDA7CiB9CiAK IC8qKgpAQCAtMTAwLDcgKzEwMCw3IEBAIGludCBpbnRlbF9ndnRfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUoZGV2 X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2d2dCkgeworCWlmICghZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfZ3Z0KSB7CiAJCWRybV9kYmco JmRldl9wcml2LT5kcm0sCiAJCQkiR1ZULWcgaXMgZGlzYWJsZWQgYnkga2VybmVsIHBhcmFtc1xu Iik7CiAJCXJldHVybiAwOwpAQCAtMTIxLDcgKzEyMSw3IEBAIGludCBpbnRlbF9ndnRfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiAKIGJhaWw6Ci0J aTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d2dCA9IDA7CisJZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVf Z3Z0ID0gMDsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lv bl9sbWVtLmMKaW5kZXggMTRiNTliODk5YzliLi40MGQ4ZjFhOTVkZjYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYwpAQCAtNzYsNyArNzYsNyBAQCByZWdpb25fbG1l bV9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pCiB7CiAJaW50IHJldDsKIAot CWlmIChpOTE1X21vZHBhcmFtcy5mYWtlX2xtZW1fc3RhcnQpIHsKKwlpZiAobWVtLT5pOTE1LT5w YXJhbXMuZmFrZV9sbWVtX3N0YXJ0KSB7CiAJCXJldCA9IGluaXRfZmFrZV9sbWVtX2JhcihtZW0p OwogCQlHRU1fQlVHX09OKHJldCk7CiAJfQpAQCAtMTExLDEyICsxMTEsMTIgQEAgaW50ZWxfc2V0 dXBfZmFrZV9sbWVtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCXJlc291cmNlX3Np emVfdCBzdGFydDsKIAogCUdFTV9CVUdfT04oaTkxNV9nZ3R0X2hhc19hcGVydHVyZSgmaTkxNS0+ Z2d0dCkpOwotCUdFTV9CVUdfT04oIWk5MTVfbW9kcGFyYW1zLmZha2VfbG1lbV9zdGFydCk7CisJ R0VNX0JVR19PTighaTkxNS0+cGFyYW1zLmZha2VfbG1lbV9zdGFydCk7CiAKIAkvKiBZb3VyIG1h cHBhYmxlIGFwZXJ0dXJlIGJlbG9uZ3MgdG8gbWUgbm93ISAqLwogCW1hcHBhYmxlX2VuZCA9IHBj aV9yZXNvdXJjZV9sZW4ocGRldiwgMik7CiAJaW9fc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQo cGRldiwgMiksCi0Jc3RhcnQgPSBpOTE1X21vZHBhcmFtcy5mYWtlX2xtZW1fc3RhcnQ7CisJc3Rh cnQgPSBpOTE1LT5wYXJhbXMuZmFrZV9sbWVtX3N0YXJ0OwogCiAJbWVtID0gaW50ZWxfbWVtb3J5 X3JlZ2lvbl9jcmVhdGUoaTkxNSwKIAkJCQkJIHN0YXJ0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYwppbmRleCBhNjFjYjhjYTRkNTAuLmZiMDhiMjRlOTJjOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTExODUsNyArMTE4NSw3IEBAIF9fdW5jbGFpbWVkX3JlZ19k ZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJCSAgICAgcmVhZCA/ICJyZWFkIGZy b20iIDogIndyaXRlIHRvIiwKIAkJICAgICBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKSkKIAkJ LyogT25seSByZXBvcnQgdGhlIGZpcnN0IE4gZmFpbHVyZXMgKi8KLQkJaTkxNV9tb2RwYXJhbXMu bW1pb19kZWJ1Zy0tOworCQl1bmNvcmUtPmk5MTUtPnBhcmFtcy5tbWlvX2RlYnVnLS07CiB9CiAK IHN0YXRpYyBpbmxpbmUgdm9pZApAQCAtMTE5NCw3ICsxMTk0LDcgQEAgdW5jbGFpbWVkX3JlZ19k ZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCiAJCSAgICBjb25zdCBib29sIHJlYWQs CiAJCSAgICBjb25zdCBib29sIGJlZm9yZSkKIHsKLQlpZiAobGlrZWx5KCFpOTE1X21vZHBhcmFt cy5tbWlvX2RlYnVnKSkKKwlpZiAobGlrZWx5KCF1bmNvcmUtPmk5MTUtPnBhcmFtcy5tbWlvX2Rl YnVnKSkKIAkJcmV0dXJuOwogCiAJLyogaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgYW5kIHJlLWVu YWJsZWQgYXJvdW5kIHVuY29yZS0+bG9jayB1c2FnZSAqLwpAQCAtMjA5MywxMiArMjA5MywxMiBA QCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3QgaW50ZWxf dW5jb3JlICp1bmNvcmUpCiAJCWdvdG8gb3V0OwogCiAJaWYgKHVubGlrZWx5KGNoZWNrX2Zvcl91 bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgewotCQlpZiAoIWk5MTVfbW9kcGFyYW1zLm1taW9fZGVi dWcpIHsKKwkJaWYgKCF1bmNvcmUtPmk5MTUtPnBhcmFtcy5tbWlvX2RlYnVnKSB7CiAJCQlkcm1f ZGJnKCZ1bmNvcmUtPmk5MTUtPmRybSwKIAkJCQkiVW5jbGFpbWVkIHJlZ2lzdGVyIGRldGVjdGVk LCAiCiAJCQkJImVuYWJsaW5nIG9uZXNob3QgdW5jbGFpbWVkIHJlZ2lzdGVyIHJlcG9ydGluZy4g IgogCQkJCSJQbGVhc2UgdXNlIGk5MTUubW1pb19kZWJ1Zz1OIGZvciBtb3JlIGluZm9ybWF0aW9u LlxuIik7Ci0JCQlpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnKys7CisJCQl1bmNvcmUtPmk5MTUt PnBhcmFtcy5tbWlvX2RlYnVnKys7CiAJCX0KIAkJdW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVkX21t aW9fY2hlY2stLTsKIAkJcmV0ID0gdHJ1ZTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==