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, 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 A11DCC433DF for ; Thu, 18 Jun 2020 15:04:17 +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 79C052075E for ; Thu, 18 Jun 2020 15:04:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 79C052075E 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 293636EB2E; Thu, 18 Jun 2020 15:04:17 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8FAE36EB2E for ; Thu, 18 Jun 2020 15:04:15 +0000 (UTC) IronPort-SDR: S1ZkbB1vgqs8G9tavccC/FHa5SEL80TDTuC0YS6g80SQZTnNY/3XuqL8B6lxzUkZYJBRHWzoMY vmUr5Eo5c5eg== X-IronPort-AV: E=McAfee;i="6000,8403,9655"; a="160707370" X-IronPort-AV: E=Sophos;i="5.75,251,1589266800"; d="scan'208";a="160707370" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2020 08:04:10 -0700 IronPort-SDR: c5fPXRyqgrOV/dvQfy+swa9/EbmcG38Al46NjuYJyjR2T4k2oj3NEtPKto4hYapeGe7dWng+6e B5r3zYTo27mg== X-IronPort-AV: E=Sophos;i="5.75,251,1589266800"; d="scan'208";a="450665544" Received: from ayarlagx-mobl.gar.corp.intel.com (HELO localhost) ([10.249.36.132]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2020 08:04:06 -0700 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Date: Thu, 18 Jun 2020 18:04:02 +0300 Message-Id: <20200618150402.14022-1-jani.nikula@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH] 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?Micha=C5=82=20Winiarski?= , =?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 ZWQgYnkgbm90IGV4cG9zaW5nIHRoZSBwYXJhbWV0ZXIgdmlhCiAgZGVidWdmcy4KCnYyOiBGaXgg dWMgaTkxNSBsb29rdXAgY29kZSAoTWljaGHFgiBXaW5pYXJza2kpCgpDYzogSnVoYS1QZWtrYSBI ZWlra2lsw6QgPGp1aGEtcGVra2EuaGVpa2tpbGFAaW50ZWwuY29tPgpDYzogVmVua2F0YSBTYW5k ZWVwIERoYW5hbGFrb3RhIDx2ZW5rYXRhLnMuZGhhbmFsYWtvdGFAaW50ZWwuY29tPgpDYzogTWlj aGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog Um9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYmlvcy5jICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY3J0LmMgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jc3IuYyAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgMTIgKysrLS0tLQogLi4uL2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMgIHwgIDIgKy0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyAgICB8IDE0ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAgOCArKystLQogLi4uL2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jICAgICAgfCAxMiArKystLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYyAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgICAgICB8IDEwICsrKy0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgIDQgKy0tCiAuLi4vZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuYyAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfcmVzZXQuYyAgICAgICAgIHwgIDYgKystLQogLi4uL2RybS9pOTE1L2d0L3Nl bGZ0ZXN0X2VuZ2luZV9oZWFydGJlYXQuYyAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jICAgIHwgMTUgKysrKystLS0tCiAuLi4vZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgfCAgNCArKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX3VjLmMgICAgICAgICB8IDIwICsrKysrKy0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYyAgICAgIHwgMzIgKysrKysrKysrLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmc19wYXJhbXMuYyAgICB8ICA3 ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICAgICB8ICA5 ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwg IDUgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDQg Ky0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYyAgICAgICAgICAgICAgfCAgOCAr Ky0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyAgICAgIHwgIDYg KystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICAgICAgIHwgIDgg KystLS0KIDMwIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAxMDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9z LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwppbmRleCBjOTc0 YzcxNmY4NTkuLjY1OTNlMmMzODA0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv 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 c3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IDc0NTc4MTNlZjI3My4uYTExYmI2NzVmOWIzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDg4 Niw3ICs0ODg2LDcgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlpbnQgcmV0OwogCiAJLyogcmVzZXQgZG9lc24ndCB0b3VjaCB0 aGUgZGlzcGxheSAqLwotCWlmICghaTkxNV9tb2RwYXJhbXMuZm9yY2VfcmVzZXRfbW9kZXNldF90 ZXN0ICYmCisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCAm JgogCSAgICAhZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkoZGV2X3ByaXYpKQogCQlyZXR1cm47 CiAKQEAgLTc4ODIsNyArNzg4Miw3IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFoc3dfY3J0 Y19zdXBwb3J0c19pcHMoY3J0YykpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmICghaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2lwcykKKwlpZiAoIWRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2lwcykKIAkJ cmV0dXJuIGZhbHNlOwogCiAJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwID4gMjQpCkBAIC04MTUz LDggKzgxNTMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wYW5lbF9zYW5pdGl6ZV9zc2Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgYm9vbCBpbnRlbF9wYW5lbF91 c2Vfc3NjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoaTkxNV9t b2RwYXJhbXMucGFuZWxfdXNlX3NzYyA+PSAwKQotCQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMucGFu ZWxfdXNlX3NzYyAhPSAwOworCWlmIChkZXZfcHJpdi0+cGFyYW1zLnBhbmVsX3VzZV9zc2MgPj0g MCkKKwkJcmV0dXJuIGRldl9wcml2LT5wYXJhbXMucGFuZWxfdXNlX3NzYyAhPSAwOwogCXJldHVy biBkZXZfcHJpdi0+dmJ0Lmx2ZHNfdXNlX3NzYwogCQkmJiAhKGRldl9wcml2LT5xdWlya3MgJiBR VUlSS19MVkRTX1NTQ19ESVNBQkxFKTsKIH0KQEAgLTEzNTgzLDggKzEzNTgzLDggQEAgcGlwZV9j b25maWdfbWlzbWF0Y2goYm9vbCBmYXN0c2V0LCBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAogc3RhdGljIGJvb2wgZmFzdGJvb3RfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKGk5MTVfbW9kcGFyYW1zLmZhc3Rib290ICE9IC0xKQotCQly ZXR1cm4gaTkxNV9tb2RwYXJhbXMuZmFzdGJvb3Q7CisJaWYgKGRldl9wcml2LT5wYXJhbXMuZmFz dGJvb3QgIT0gLTEpCisJCXJldHVybiBkZXZfcHJpdi0+cGFyYW1zLmZhc3Rib290OwogCiAJLyog RW5hYmxlIGZhc3Rib290IGJ5IGRlZmF1bHQgb24gU2t5bGFrZSBhbmQgbmV3ZXIgKi8KIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMKaW5kZXggMjhkZDcxN2U5NDNhLi5kMWNi NDhiM2Y0NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X2RlYnVnZnMuYwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9p cHNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJc2VxX3ByaW50 ZihtLCAiRW5hYmxlZCBieSBrZXJuZWwgcGFyYW1ldGVyOiAlc1xuIiwKLQkJICAgeWVzbm8oaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2lwcykpOworCQkgICB5ZXNubyhkZXZfcHJpdi0+cGFyYW1zLmVu YWJsZV9pcHMpKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJc2VxX3B1 dHMobSwgIkN1cnJlbnRseTogdW5rbm93blxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCmluZGV4IDI0YTJhYTFmZGM5Yy4uODM0 MTYyYmM1YTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuYwpAQCAtNDUxMyw3ICs0NTEzLDcgQEAgc3RhdGljIHUzMiBnZXRfYWxs b3dlZF9kY19tYXNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ bWFzayA9IDA7CiAJfQogCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwp CisJaWYgKCFkZXZfcHJpdi0+cGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKIAkJbWF4X2RjID0g MDsKIAogCWlmIChlbmFibGVfZGMgPj0gMCAmJiBlbmFibGVfZGMgPD0gbWF4X2RjKSB7CkBAIC00 NjAyLDExICs0NjAyLDExIEBAIGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBv d2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CiAJaW50IGVycjsKIAotCWk5 MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCA9CisJZGV2X3ByaXYtPnBhcmFtcy5kaXNh YmxlX3Bvd2VyX3dlbGwgPQogCQlzYW5pdGl6ZV9kaXNhYmxlX3Bvd2VyX3dlbGxfb3B0aW9uKGRl dl9wcml2LAotCQkJCQkJICAgaTkxNV9tb2RwYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxsKTsKKwkJ CQkJCSAgIGRldl9wcml2LT5wYXJhbXMuZGlzYWJsZV9wb3dlcl93ZWxsKTsKIAlkZXZfcHJpdi0+ Y3NyLmFsbG93ZWRfZGNfbWFzayA9Ci0JCWdldF9hbGxvd2VkX2RjX21hc2soZGV2X3ByaXYsIGk5 MTVfbW9kcGFyYW1zLmVuYWJsZV9kYyk7CisJCWdldF9hbGxvd2VkX2RjX21hc2soZGV2X3ByaXYs IGRldl9wcml2LT5wYXJhbXMuZW5hYmxlX2RjKTsKIAogCWRldl9wcml2LT5jc3IudGFyZ2V0X2Rj X3N0YXRlID0KIAkJc2FuaXRpemVfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9F Tl9VUFRPX0RDNik7CkBAIC01NTY4LDcgKzU1NjgsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCByZXN1bWUpCiAJ CWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RPTUFJTl9JTklUKTsKIAogCS8q IERpc2FibGUgcG93ZXIgc3VwcG9ydCBpZiB0aGUgdXNlciBhc2tlZCBzby4gKi8KLQlpZiAoIWk5 MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFtcy5kaXNh YmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGk5MTUsIFBPV0VSX0RP TUFJTl9JTklUKTsKIAlpbnRlbF9wb3dlcl9kb21haW5zX3N5bmNfaHcoaTkxNSk7CiAKQEAgLTU1 OTIsNyArNTU5Miw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kcml2ZXJfcmVtb3ZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlmZXRjaF9hbmRfemVybygmaTkxNS0+cG93 ZXJfZG9tYWlucy53YWtlcmVmKTsKIAogCS8qIFJlbW92ZSB0aGUgcmVmY291bnQgd2UgdG9vayB0 byBrZWVwIHBvd2VyIHdlbGwgc3VwcG9ydCBkaXNhYmxlZC4gKi8KLQlpZiAoIWk5MTVfbW9kcGFy YW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5MTUtPnBhcmFtcy5kaXNhYmxlX3Bvd2Vy X3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChpOTE1LCBQT1dFUl9E T01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2ZsdXNoX3dvcmtfc3luYyhpOTE1 KTsKQEAgLTU2ODEsNyArNTY4MSw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5k KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIEV2ZW4gaWYgcG93ZXIgd2VsbCBz dXBwb3J0IHdhcyBkaXNhYmxlZCB3ZSBzdGlsbCB3YW50IHRvIGRpc2FibGUKIAkgKiBwb3dlciB3 ZWxscyBpZiBwb3dlciBkb21haW5zIG11c3QgYmUgZGVpbml0aWFsaXplZCBmb3Igc3VzcGVuZC4K IAkgKi8KLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKKwlpZiAoIWk5 MTUtPnBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 X3VuY2hlY2tlZChpOTE1LCBQT1dFUl9ET01BSU5fSU5JVCk7CiAKIAlpbnRlbF9kaXNwbGF5X3Bv d2VyX2ZsdXNoX3dvcmsoaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmMKaW5kZXggNDI1ODljYWU3NjZkLi4xOTI2NzhiZDliNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv 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 bGF5L2ludGVsX3Bzci5jCmluZGV4IGFiMzgwZTZkYzY3NC4uODZiZjdhNzZmOTNkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKQEAgLTgzLDcgKzgzLDcgQEAgc3Rh dGljIGJvb2wgcHNyX2dsb2JhbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogewogCXN3aXRjaCAoaTkxNS0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfTU9ERV9NQVNL KSB7CiAJY2FzZSBJOTE1X1BTUl9ERUJVR19ERUZBVUxUOgotCQlyZXR1cm4gaTkxNV9tb2RwYXJh bXMuZW5hYmxlX3BzcjsKKwkJcmV0dXJuIGk5MTUtPnBhcmFtcy5lbmFibGVfcHNyOwogCWNhc2Ug STkxNV9QU1JfREVCVUdfRElTQUJMRToKIAkJcmV0dXJuIGZhbHNlOwogCWRlZmF1bHQ6CkBAIC00 MjYsNyArNDI2LDcgQEAgc3RhdGljIHUzMiBpbnRlbF9wc3IxX2dldF90cF90aW1lKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCiAJCXZh bCB8PSBFRFBfUFNSX1RQNF9USU1FXzBVUzsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5wc3Jfc2Fm ZXN0X3BhcmFtcykgeworCWlmIChkZXZfcHJpdi0+cGFyYW1zLnBzcl9zYWZlc3RfcGFyYW1zKSB7 CiAJCXZhbCB8PSBFRFBfUFNSX1RQMV9USU1FXzI1MDB1czsKIAkJdmFsIHw9IEVEUF9QU1JfVFAy X1RQM19USU1FXzI1MDB1czsKIAkJZ290byBjaGVja190cDNfc2VsOwpAQCAtNTA3LDcgKzUwNyw3 IEBAIHN0YXRpYyB1MzIgaW50ZWxfcHNyMl9nZXRfdHBfdGltZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUo aW50ZWxfZHApOwogCXUzMiB2YWwgPSAwOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLnBzcl9zYWZl c3RfcGFyYW1zKQorCWlmIChkZXZfcHJpdi0+cGFyYW1zLnBzcl9zYWZlc3RfcGFyYW1zKQogCQly ZXR1cm4gRURQX1BTUjJfVFAyX1RJTUVfMjUwMHVzOwogCiAJaWYgKGRldl9wcml2LT52YnQucHNy LnBzcjJfdHAyX3RwM193YWtldXBfdGltZV91cyA+PSAwICYmCkBAIC0xNTAwLDkgKzE1MDAsOSBA QCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJICovCiAJCWRldl9wcml2LT5oc3dfcHNyX21taW9fYWRqdXN0ID0gX1NSRF9DVExfRURQIC0g X0hTV19FRFBfUFNSX0JBU0U7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX3BzciA9PSAt MSkKKwlpZiAoZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfcHNyID09IC0xKQogCQlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDkgfHwgIWRldl9wcml2LT52YnQucHNyLmVuYWJsZSkKLQkJCWk5MTVf bW9kcGFyYW1zLmVuYWJsZV9wc3IgPSAwOworCQkJZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfcHNy ID0gMDsKIAogCS8qIFNldCBsaW5rX3N0YW5kYnkgeCBsaW5rX29mZiBkZWZhdWx0cyAqLwogCWlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggMzBjMjI5ZmNiNDA0 Li41YzEzODA5ZGMzYzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2Nv bnRleHQuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyB2b2lkIGNvbnRleHRfY2xvc2Uoc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkgKiBjb250ZXh0IGNsb3NlLgogCSAqLwogCWlm ICghaTkxNV9nZW1fY29udGV4dF9pc19wZXJzaXN0ZW50KGN0eCkgfHwKLQkgICAgIWk5MTVfbW9k cGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spCisJICAgICFjdHgtPmk5MTUtPnBhcmFtcy5lbmFibGVf aGFuZ2NoZWNrKQogCQlraWxsX2NvbnRleHQoY3R4KTsKIAogCWk5MTVfZ2VtX2NvbnRleHRfcHV0 KGN0eCk7CkBAIC02NjcsNyArNjY3LDcgQEAgc3RhdGljIGludCBfX2NvbnRleHRfc2V0X3BlcnNp c3RlbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIGJvb2wgc3RhdGUpCiAJCSAqIHJl c2V0XSBhcmUgYWxsb3dlZCB0byBzdXJ2aXZlIHBhc3QgdGVybWluYXRpb24uIFdlIHJlcXVpcmUK IAkJICogaGFuZ2NoZWNrIHRvIGVuc3VyZSB0aGF0IHRoZSBwZXJzaXN0ZW50IHJlcXVlc3RzIGFy ZSBoZWFsdGh5LgogCQkgKi8KLQkJaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNr KQorCQlpZiAoIWN0eC0+aTkxNS0+cGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spCiAJCQlyZXR1cm4g LUVJTlZBTDsKIAogCQlpOTE1X2dlbV9jb250ZXh0X3NldF9wZXJzaXN0ZW5jZShjdHgpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCmluZGV4 IGNkMjBmYjU0OWIzOC4uOGRiN2U5M2FiZGU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJp Z2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KICAqLwogCisjaW5jbHVkZSAiaTkxNV9kcnYu aCIKICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKIAogI2luY2x1ZGUgImludGVsX2NvbnRleHQu aCIKQEAgLTEzMyw3ICsxMzQsNyBAQCBzdGF0aWMgdm9pZCBoZWFydGJlYXQoc3RydWN0IHdvcmtf c3RydWN0ICp3cmspCiAJCWdvdG8gdW5sb2NrOwogCiAJaWRsZV9wdWxzZShlbmdpbmUsIHJxKTsK LQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKKwlpZiAoZW5naW5lLT5pOTE1 LT5wYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKIAkJZW5naW5lLT5oZWFydGJlYXQuc3lzdG9sZSA9 IGk5MTVfcmVxdWVzdF9nZXQocnEpOwogCiAJX19pOTE1X3JlcXVlc3RfY29tbWl0KHJxKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4IDM5MDcwYjUxNGU2NS4uMDE1NmYx ZjVjNzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKQEAgLTYzOCw3ICs2 MzgsNyBAQCBpbnQgX19pbnRlbF9ndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRlbF9l bmdpbmVfbWFza190IGVuZ2luZV9tYXNrKQogCiBib29sIGludGVsX2hhc19ncHVfcmVzZXQoY29u c3Qgc3RydWN0IGludGVsX2d0ICpndCkKIHsKLQlpZiAoIWk5MTVfbW9kcGFyYW1zLnJlc2V0KQor CWlmICghZ3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4g aW50ZWxfZ2V0X2dwdV9yZXNldChndCk7CkBAIC02NDYsNyArNjQ2LDcgQEAgYm9vbCBpbnRlbF9o YXNfZ3B1X3Jlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAKIGJvb2wgaW50ZWxfaGFz X3Jlc2V0X2VuZ2luZShjb25zdCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewotCWlmIChpOTE1X21v ZHBhcmFtcy5yZXNldCA8IDIpCisJaWYgKGd0LT5pOTE1LT5wYXJhbXMucmVzZXQgPCAyKQogCQly ZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gSU5URUxfSU5GTyhndC0+aTkxNSktPmhhc19yZXNldF9l bmdpbmU7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCB2b2lkIGludGVsX2d0X3Jlc2V0KHN0cnVjdCBp bnRlbF9ndCAqZ3QsCiAJYXdha2UgPSByZXNldF9wcmVwYXJlKGd0KTsKIAogCWlmICghaW50ZWxf aGFzX2dwdV9yZXNldChndCkpIHsKLQkJaWYgKGk5MTVfbW9kcGFyYW1zLnJlc2V0KQorCQlpZiAo Z3QtPmk5MTUtPnBhcmFtcy5yZXNldCkKIAkJCWRybV9lcnIoJmd0LT5pOTE1LT5kcm0sICJHUFUg cmVzZXQgbm90IHN1cHBvcnRlZFxuIik7CiAJCWVsc2UKIAkJCWRybV9kYmcoJmd0LT5pOTE1LT5k cm0sICJHUFUgcmVzZXQgZGlzYWJsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX2hlYXJ0YmVhdC5jCmluZGV4IGYzMDM0YzYxM2JjMC4uNzMy NDNiYTU5YzdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9l bmdpbmVfaGVhcnRiZWF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf ZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC0zNjUsMTIgKzM2NSwxMiBAQCBpbnQgaW50ZWxfaGVhcnRi ZWF0X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWlmIChp bnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKIAkJcmV0dXJuIDA7CiAKLQlzYXZlZF9oYW5n Y2hlY2sgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrOwotCWk5MTVfbW9kcGFyYW1z LmVuYWJsZV9oYW5nY2hlY2sgPSBJTlRfTUFYOworCXNhdmVkX2hhbmdjaGVjayA9IGk5MTUtPnBh cmFtcy5lbmFibGVfaGFuZ2NoZWNrOworCWk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0g SU5UX01BWDsKIAogCWVyciA9IGludGVsX2d0X2xpdmVfc3VidGVzdHModGVzdHMsICZpOTE1LT5n dCk7CiAKLQlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0gc2F2ZWRfaGFuZ2NoZWNr OworCWk5MTUtPnBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0gc2F2ZWRfaGFuZ2NoZWNrOwogCXJl dHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cu YwppbmRleCBmYjEwZjM1OTdlYTUuLjliYmU4YTc5NWNiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2xvZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYwpAQCAtNDI0LDI1ICs0MjQsMjggQEAgc3RhdGljIHZv aWQgZ3VjX2xvZ19jYXB0dXJlX2xvZ3Moc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKIAogc3Rh dGljIHUzMiBfX2dldF9kZWZhdWx0X2xvZ19sZXZlbChzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9n KQogeworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9IGxvZ190b19ndWMobG9nKTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd1Y190b19ndChndWMpLT5pOTE1OworCiAJLyogQSBu ZWdhdGl2ZSB2YWx1ZSBtZWFucyAidXNlIHBsYXRmb3JtL2NvbmZpZyBkZWZhdWx0IiAqLwotCWlm IChpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsIDwgMCkgeworCWlmIChpOTE1LT5wYXJhbXMu Z3VjX2xvZ19sZXZlbCA8IDApIHsKIAkJcmV0dXJuIChJU19FTkFCTEVEKENPTkZJR19EUk1fSTkx NV9ERUJVRykgfHwKIAkJCUlTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkpID8K IAkJCUdVQ19MT0dfTEVWRUxfTUFYIDogR1VDX0xPR19MRVZFTF9OT05fVkVSQk9TRTsKIAl9CiAK LQlpZiAoaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdVQ19MT0dfTEVWRUxfTUFYKSB7 CisJaWYgKGk5MTUtPnBhcmFtcy5ndWNfbG9nX2xldmVsID4gR1VDX0xPR19MRVZFTF9NQVgpIHsK IAkJRFJNX1dBUk4oIkluY29tcGF0aWJsZSBvcHRpb24gZGV0ZWN0ZWQ6ICVzPSVkLCAlcyFcbiIs Ci0JCQkgImd1Y19sb2dfbGV2ZWwiLCBpOTE1X21vZHBhcmFtcy5ndWNfbG9nX2xldmVsLAorCQkJ ICJndWNfbG9nX2xldmVsIiwgaTkxNS0+cGFyYW1zLmd1Y19sb2dfbGV2ZWwsCiAJCQkgInZlcmJv c2l0eSB0b28gaGlnaCIpOwogCQlyZXR1cm4gKElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RF QlVHKSB8fAogCQkJSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkgPwogCQkJ R1VDX0xPR19MRVZFTF9NQVggOiBHVUNfTE9HX0xFVkVMX0RJU0FCTEVEOwogCX0KIAotCUdFTV9C VUdfT04oaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IEdVQ19MT0dfTEVWRUxfRElTQUJM RUQpOwotCUdFTV9CVUdfT04oaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdVQ19MT0df TEVWRUxfTUFYKTsKLQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbDsKKwlHRU1f QlVHX09OKGk5MTUtPnBhcmFtcy5ndWNfbG9nX2xldmVsIDwgR1VDX0xPR19MRVZFTF9ESVNBQkxF RCk7CisJR0VNX0JVR19PTihpOTE1LT5wYXJhbXMuZ3VjX2xvZ19sZXZlbCA+IEdVQ19MT0dfTEVW RUxfTUFYKTsKKwlyZXR1cm4gaTkxNS0+cGFyYW1zLmd1Y19sb2dfbGV2ZWw7CiB9CiAKIGludCBp bnRlbF9ndWNfbG9nX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9nKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggOTRl YjYzZjMwOWNlLi5mZGZlYjRiOWIwZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtNjYwLDEwICs2NjAsMTIgQEAgdm9pZCBp bnRlbF9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAogc3Rh dGljIGJvb2wgX19ndWNfc3VibWlzc2lvbl9zZWxlY3RlZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp CiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9fZ3QoZ3VjKS0+aTkx NTsKKwogCWlmICghaW50ZWxfZ3VjX3N1Ym1pc3Npb25faXNfc3VwcG9ydGVkKGd1YykpCiAJCXJl dHVybiBmYWxzZTsKIAotCXJldHVybiBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgRU5BQkxF X0dVQ19TVUJNSVNTSU9OOworCXJldHVybiBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJM RV9HVUNfU1VCTUlTU0lPTjsKIH0KIAogdm9pZCBpbnRlbF9ndWNfc3VibWlzc2lvbl9pbml0X2Vh cmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX3VjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91 Yy5jCmluZGV4IGY1MThmZTA1YzZmOS4uMWMyZDYzNTg4MjZjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX3VjLmMKQEAgLTQ3LDE1ICs0NywxNSBAQCBzdGF0aWMgdm9pZCBfX2NvbmZp cm1fb3B0aW9ucyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQogCiAJZHJtX2RiZygmaTkxNS0+ZHJtLAog CQkiZW5hYmxlX2d1Yz0lZCAoZ3VjOiVzIHN1Ym1pc3Npb246JXMgaHVjOiVzKVxuIiwKLQkJaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2d1YywKKwkJaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMsCiAJCXll c25vKGludGVsX3VjX3dhbnRzX2d1Yyh1YykpLAogCQl5ZXNubyhpbnRlbF91Y193YW50c19ndWNf c3VibWlzc2lvbih1YykpLAogCQl5ZXNubyhpbnRlbF91Y193YW50c19odWModWMpKSk7CiAKLQlp ZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyA9PSAtMSkKKwlpZiAoaTkxNS0+cGFyYW1zLmVu YWJsZV9ndWMgPT0gLTEpCiAJCXJldHVybjsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVf Z3VjID09IDApIHsKKwlpZiAoaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMgPT0gMCkgewogCQlHRU1f QlVHX09OKGludGVsX3VjX3dhbnRzX2d1Yyh1YykpOwogCQlHRU1fQlVHX09OKGludGVsX3VjX3dh bnRzX2d1Y19zdWJtaXNzaW9uKHVjKSk7CiAJCUdFTV9CVUdfT04oaW50ZWxfdWNfd2FudHNfaHVj KHVjKSk7CkBAIC02NSwyNSArNjUsMjUgQEAgc3RhdGljIHZvaWQgX19jb25maXJtX29wdGlvbnMo c3RydWN0IGludGVsX3VjICp1YykKIAlpZiAoIWludGVsX3VjX3N1cHBvcnRzX2d1Yyh1YykpCiAJ CWRybV9pbmZvKCZpOTE1LT5kcm0sCiAJCQkgIkluY29tcGF0aWJsZSBvcHRpb24gZW5hYmxlX2d1 Yz0lZCAtICVzXG4iLAotCQkJIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMsICJHdUMgaXMgbm90 IHN1cHBvcnRlZCEiKTsKKwkJCSBpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YywgIkd1QyBpcyBub3Qg c3VwcG9ydGVkISIpOwogCi0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWMgJiBFTkFCTEVf R1VDX0xPQURfSFVDICYmCisJaWYgKGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjICYgRU5BQkxFX0dV Q19MT0FEX0hVQyAmJgogCSAgICAhaW50ZWxfdWNfc3VwcG9ydHNfaHVjKHVjKSkKIAkJZHJtX2lu Zm8oJmk5MTUtPmRybSwKIAkJCSAiSW5jb21wYXRpYmxlIG9wdGlvbiBlbmFibGVfZ3VjPSVkIC0g JXNcbiIsCi0JCQkgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YywgIkh1QyBpcyBub3Qgc3VwcG9y dGVkISIpOworCQkJIGk5MTUtPnBhcmFtcy5lbmFibGVfZ3VjLCAiSHVDIGlzIG5vdCBzdXBwb3J0 ZWQhIik7CiAKLQlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfU1VC TUlTU0lPTiAmJgorCWlmIChpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfU1VC TUlTU0lPTiAmJgogCSAgICAhaW50ZWxfdWNfc3VwcG9ydHNfZ3VjX3N1Ym1pc3Npb24odWMpKQog CQlkcm1faW5mbygmaTkxNS0+ZHJtLAogCQkJICJJbmNvbXBhdGlibGUgb3B0aW9uIGVuYWJsZV9n dWM9JWQgLSAlc1xuIiwKLQkJCSBpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjLCAiR3VDIHN1Ym1p c3Npb24gaXMgTi9BIik7CisJCQkgaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMsICJHdUMgc3VibWlz c2lvbiBpcyBOL0EiKTsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgfihFTkFC TEVfR1VDX1NVQk1JU1NJT04gfAorCWlmIChpOTE1LT5wYXJhbXMuZW5hYmxlX2d1YyAmIH4oRU5B QkxFX0dVQ19TVUJNSVNTSU9OIHwKIAkJCQkJICBFTkFCTEVfR1VDX0xPQURfSFVDKSkKIAkJZHJt X2luZm8oJmk5MTUtPmRybSwKIAkJCSAiSW5jb21wYXRpYmxlIG9wdGlvbiBlbmFibGVfZ3VjPSVk IC0gJXNcbiIsCi0JCQkgaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d1YywgInVuZG9jdW1lbnRlZCBm bGFnIik7CisJCQkgaTkxNS0+cGFyYW1zLmVuYWJsZV9ndWMsICJ1bmRvY3VtZW50ZWQgZmxhZyIp OwogfQogCiB2b2lkIGludGVsX3VjX2luaXRfZWFybHkoc3RydWN0IGludGVsX3VjICp1YykKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCmluZGV4IGU3NWJlMzk5OTM1OC4u NTliMjdhYmExNWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRl bF91Y19mdy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMK QEAgLTExNSwxMSArMTE1LDEzIEBAIHN0cnVjdCBfX3BhY2tlZCB1Y19md19wbGF0Zm9ybV9yZXF1 aXJlbWVudCB7CiB9LAogCiBzdGF0aWMgdm9pZAotX191Y19md19hdXRvX3NlbGVjdChzdHJ1Y3Qg aW50ZWxfdWNfZncgKnVjX2Z3LCBlbnVtIGludGVsX3BsYXRmb3JtIHAsIHU4IHJldikKK19fdWNf ZndfYXV0b19zZWxlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpbnRl bF91Y19mdyAqdWNfZncpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCB1Y19md19wbGF0Zm9ybV9y ZXF1aXJlbWVudCBmd19ibG9ic1tdID0gewogCQlJTlRFTF9VQ19GSVJNV0FSRV9ERUZTKE1BS0Vf RldfTElTVCwgR1VDX0ZXX0JMT0IsIEhVQ19GV19CTE9CKQogCX07CisJZW51bSBpbnRlbF9wbGF0 Zm9ybSBwID0gSU5URUxfSU5GTyhpOTE1KS0+cGxhdGZvcm07CisJdTggcmV2ID0gSU5URUxfUkVW SUQoaTkxNSk7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShmd19ibG9i cykgJiYgcCA8PSBmd19ibG9ic1tpXS5wOyBpKyspIHsKQEAgLTE1NCwzNSArMTU2LDM1IEBAIF9f dWNfZndfYXV0b19zZWxlY3Qoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywgZW51bSBpbnRlbF9w bGF0Zm9ybSBwLCB1OCByZXYpCiAJfQogCiAJLyogV2UgZG9uJ3Qgd2FudCB0byBlbmFibGUgR3VD L0h1QyBvbiBwcmUtR2VuMTEgYnkgZGVmYXVsdCAqLwotCWlmIChpOTE1X21vZHBhcmFtcy5lbmFi bGVfZ3VjID09IC0xICYmIHAgPCBJTlRFTF9JQ0VMQUtFKQorCWlmIChpOTE1LT5wYXJhbXMuZW5h YmxlX2d1YyA9PSAtMSAmJiBwIDwgSU5URUxfSUNFTEFLRSkKIAkJdWNfZnctPnBhdGggPSBOVUxM OwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aCh2 b2lkKQorc3RhdGljIGNvbnN0IGNoYXIgKl9fb3ZlcnJpZGVfZ3VjX2Zpcm13YXJlX3BhdGgoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9ndWMgJiAoRU5BQkxFX0dVQ19TVUJNSVNTSU9OIHwKLQkJCQkJIEVOQUJMRV9HVUNfTE9BRF9I VUMpKQotCQlyZXR1cm4gaTkxNV9tb2RwYXJhbXMuZ3VjX2Zpcm13YXJlX3BhdGg7CisJaWYgKGk5 MTUtPnBhcmFtcy5lbmFibGVfZ3VjICYgKEVOQUJMRV9HVUNfU1VCTUlTU0lPTiB8CisJCQkJICAg ICAgIEVOQUJMRV9HVUNfTE9BRF9IVUMpKQorCQlyZXR1cm4gaTkxNS0+cGFyYW1zLmd1Y19maXJt d2FyZV9wYXRoOwogCXJldHVybiAiIjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKl9fb3ZlcnJp ZGVfaHVjX2Zpcm13YXJlX3BhdGgodm9pZCkKK3N0YXRpYyBjb25zdCBjaGFyICpfX292ZXJyaWRl X2h1Y19maXJtd2FyZV9wYXRoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCWlm IChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjICYgRU5BQkxFX0dVQ19MT0FEX0hVQykKLQkJcmV0 dXJuIGk5MTVfbW9kcGFyYW1zLmh1Y19maXJtd2FyZV9wYXRoOworCWlmIChpOTE1LT5wYXJhbXMu ZW5hYmxlX2d1YyAmIEVOQUJMRV9HVUNfTE9BRF9IVUMpCisJCXJldHVybiBpOTE1LT5wYXJhbXMu aHVjX2Zpcm13YXJlX3BhdGg7CiAJcmV0dXJuICIiOwogfQogCi1zdGF0aWMgdm9pZCBfX3VjX2Z3 X3VzZXJfb3ZlcnJpZGUoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdykKK3N0YXRpYyB2b2lkIF9f dWNfZndfdXNlcl9vdmVycmlkZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0 IGludGVsX3VjX2Z3ICp1Y19mdykKIHsKIAljb25zdCBjaGFyICpwYXRoID0gTlVMTDsKIAogCXN3 aXRjaCAodWNfZnctPnR5cGUpIHsKIAljYXNlIElOVEVMX1VDX0ZXX1RZUEVfR1VDOgotCQlwYXRo ID0gX19vdmVycmlkZV9ndWNfZmlybXdhcmVfcGF0aCgpOworCQlwYXRoID0gX19vdmVycmlkZV9n dWNfZmlybXdhcmVfcGF0aChpOTE1KTsKIAkJYnJlYWs7CiAJY2FzZSBJTlRFTF9VQ19GV19UWVBF X0hVQzoKLQkJcGF0aCA9IF9fb3ZlcnJpZGVfaHVjX2Zpcm13YXJlX3BhdGgoKTsKKwkJcGF0aCA9 IF9fb3ZlcnJpZGVfaHVjX2Zpcm13YXJlX3BhdGgoaTkxNSk7CiAJCWJyZWFrOwogCX0KIApAQCAt MjE2LDEwICsyMTgsOCBAQCB2b2lkIGludGVsX3VjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVs X3VjX2Z3ICp1Y19mdywKIAl1Y19mdy0+dHlwZSA9IHR5cGU7CiAKIAlpZiAoSEFTX0dUX1VDKGk5 MTUpKSB7Ci0JCV9fdWNfZndfYXV0b19zZWxlY3QodWNfZncsCi0JCQkJICAgIElOVEVMX0lORk8o aTkxNSktPnBsYXRmb3JtLAotCQkJCSAgICBJTlRFTF9SRVZJRChpOTE1KSk7Ci0JCV9fdWNfZndf dXNlcl9vdmVycmlkZSh1Y19mdyk7CisJCV9fdWNfZndfYXV0b19zZWxlY3QoaTkxNSwgdWNfZncp OworCQlfX3VjX2Z3X3VzZXJfb3ZlcnJpZGUoaTkxNSwgdWNfZncpOwogCX0KIAogCWludGVsX3Vj X2Z3X2NoYW5nZV9zdGF0dXModWNfZncsIHVjX2Z3LT5wYXRoID8gKnVjX2Z3LT5wYXRoID8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggYmNhMDM2YWM2NjIxLi44NTk0YThlZjA4 Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC02NCw3ICs2NCw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9jYXBhYmlsaXRpZXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQogCWludGVsX2RyaXZlcl9jYXBzX3ByaW50KCZpOTE1LT5jYXBzLCAmcCk7CiAKIAlrZXJuZWxf cGFyYW1fbG9jayhUSElTX01PRFVMRSk7Ci0JaTkxNV9wYXJhbXNfZHVtcCgmaTkxNV9tb2RwYXJh bXMsICZwKTsKKwlpOTE1X3BhcmFtc19kdW1wKCZpOTE1LT5wYXJhbXMsICZwKTsKIAlrZXJuZWxf cGFyYW1fdW5sb2NrKFRISVNfTU9EVUxFKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzX3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzX3BhcmFtcy5jCmluZGV4IDYyYjJjNWYwNDk1ZC4uNGUyYjA3NzY5 MmNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnNfcGFyYW1z LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzX3BhcmFtcy5jCkBAIC0x MzgsOSArMTM4LDYgQEAgc3RhdGljIHNzaXplX3QgaTkxNV9wYXJhbV9jaGFycF93cml0ZShzdHJ1 Y3QgZmlsZSAqZmlsZSwKIAljaGFyICoqcyA9IG0tPnByaXZhdGU7CiAJY2hhciAqbmV3LCAqb2xk OwogCi0JLyogRklYTUU6IHJlbW92ZSBsb2NraW5nIGFmdGVyIHBhcmFtcyBhcmVuJ3QgdGhlIG1v ZHVsZSBwYXJhbXMgKi8KLQlrZXJuZWxfcGFyYW1fbG9jayhUSElTX01PRFVMRSk7Ci0KIAlvbGQg PSAqczsKIAluZXcgPSBzdHJuZHVwX3VzZXIodWJ1ZiwgUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJS KG5ldykpIHsKQEAgLTE1Miw4ICsxNDksNiBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X3BhcmFtX2No YXJwX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCiAJa2ZyZWUob2xkKTsKIG91dDoKLQlrZXJu ZWxfcGFyYW1fdW5sb2NrKFRISVNfTU9EVUxFKTsKLQogCXJldHVybiBsZW47CiB9CiAKQEAgLTIy OSw3ICsyMjQsNyBAQCBfaTkxNV9wYXJhbV9jcmVhdGVfZmlsZShzdHJ1Y3QgZGVudHJ5ICpwYXJl bnQsIGNvbnN0IGNoYXIgKm5hbWUsCiBzdHJ1Y3QgZGVudHJ5ICppOTE1X2RlYnVnZnNfcGFyYW1z KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0cnVjdCBkcm1fbWlub3IgKm1p bm9yID0gaTkxNS0+ZHJtLnByaW1hcnk7Ci0Jc3RydWN0IGk5MTVfcGFyYW1zICpwYXJhbXMgPSAm aTkxNV9tb2RwYXJhbXM7CisJc3RydWN0IGk5MTVfcGFyYW1zICpwYXJhbXMgPSAmaTkxNS0+cGFy YW1zOwogCXN0cnVjdCBkZW50cnkgKmRpcjsKIAogCWRpciA9IGRlYnVnZnNfY3JlYXRlX2Rpcigi aTkxNV9wYXJhbXMiLCBtaW5vci0+ZGVidWdmc19yb290KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CmluZGV4IDM0ZWUxMmYzZjAyZC4uNjcxMDJkYzI2ZmNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKQEAgLTUwMSw2ICs1MDEsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9sYXRlX3JlbGVh c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJY3B1X2xhdGVuY3lfcW9z X3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+c2JfcW9zKTsKIAltdXRleF9kZXN0cm95KCZkZXZf cHJpdi0+c2JfbG9jayk7CisKKwlpOTE1X3BhcmFtc19mcmVlKCZkZXZfcHJpdi0+cGFyYW1zKTsK IH0KIAogLyoqCkBAIC05MTUsNiArOTE3LDkgQEAgaTkxNV9kcml2ZXJfY3JlYXRlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCWk5MTUtPmRy bS5wZGV2ID0gcGRldjsKIAlwY2lfc2V0X2RydmRhdGEocGRldiwgaTkxNSk7CiAKKwkvKiBEZXZp Y2UgcGFyYW1ldGVycyBzdGFydCBhcyBhIGNvcHkgb2YgbW9kdWxlIHBhcmFtZXRlcnMuICovCisJ aTkxNV9wYXJhbXNfY29weSgmaTkxNS0+cGFyYW1zLCAmaTkxNV9tb2RwYXJhbXMpOworCiAJLyog U2V0dXAgdGhlIHdyaXRlLW9uY2UgImNvbnN0YW50IiBkZXZpY2UgaW5mbyAqLwogCWRldmljZV9p bmZvID0gbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KTsKIAltZW1jcHkoZGV2aWNlX2luZm8sIG1h dGNoX2luZm8sIHNpemVvZigqZGV2aWNlX2luZm8pKTsKQEAgLTk0OCw3ICs5NTMsNyBAQCBpbnQg aTkxNV9kcml2ZXJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lf ZGV2aWNlX2lkICplbnQpCiAJCXJldHVybiBQVFJfRVJSKGk5MTUpOwogCiAJLyogRGlzYWJsZSBu dWNsZWFyIHBhZ2VmbGlwIGJ5IGRlZmF1bHQgb24gcHJlLUlMSyAqLwotCWlmICghaTkxNV9tb2Rw YXJhbXMubnVjbGVhcl9wYWdlZmxpcCAmJiBtYXRjaF9pbmZvLT5nZW4gPCA1KQorCWlmICghaTkx NS0+cGFyYW1zLm51Y2xlYXJfcGFnZWZsaXAgJiYgbWF0Y2hfaW5mby0+Z2VuIDwgNSkKIAkJaTkx NS0+ZHJtLmRyaXZlcl9mZWF0dXJlcyAmPSB+RFJJVkVSX0FUT01JQzsKIAogCS8qCkBAIC05NTgs NyArOTYzLDcgQEAgaW50IGk5MTVfZHJpdmVyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBj b25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RS TV9JOTE1X1NFTEZURVNUKQogCWlmIChJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9VTlNUQUJM RV9GQUtFX0xNRU0pKSB7CiAJCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOSAmJiBpOTE1X3NlbGZ0 ZXN0LmxpdmUgPCAwICYmCi0JCSAgICBpOTE1X21vZHBhcmFtcy5mYWtlX2xtZW1fc3RhcnQpIHsK KwkJICAgIGk5MTUtPnBhcmFtcy5mYWtlX2xtZW1fc3RhcnQpIHsKIAkJCW1rd3JpdGVfZGV2aWNl X2luZm8oaTkxNSktPm1lbW9yeV9yZWdpb25zID0KIAkJCQlSRUdJT05fU01FTSB8IFJFR0lPTl9M TUVNIHwgUkVHSU9OX1NUT0xFTjsKIAkJCW1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSktPmlzX2Rn ZnggPSB0cnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNTY0OWY4ZTUwMmZlLi45YWFk M2VjOTc5YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODMwLDYgKzgzMCw5IEBAIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkvKiBGSVhNRTogRGV2aWNlIHJlbGVhc2UgYWN0aW9u cyBzaG91bGQgYWxsIGJlIG1vdmVkIHRvIGRybW1fICovCiAJYm9vbCBkb19yZWxlYXNlOwogCisJ LyogaTkxNSBkZXZpY2UgcGFyYW1ldGVycyAqLworCXN0cnVjdCBpOTE1X3BhcmFtcyBwYXJhbXM7 CisKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gX19pbmZvOyAvKiBVc2UgSU5URUxf SU5GTygpIHRvIGFjY2Vzcy4gKi8KIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvIF9fcnVudGlt ZTsgLyogVXNlIFJVTlRJTUVfSU5GTygpIHRvIGFjY2Vzcy4gKi8KIAlzdHJ1Y3QgaW50ZWxfZHJp dmVyX2NhcHMgY2FwczsKQEAgLTE2OTEsNyArMTY5NCw3IEBAIElTX1NVQlBMQVRGT1JNKGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAvKiBPbmx5IHZhbGlkIHdoZW4gSEFT X0RJU1BMQVkoKSBpcyB0cnVlICovCiAjZGVmaW5lIElOVEVMX0RJU1BMQVlfRU5BQkxFRChkZXZf cHJpdikgXAotCQkoZHJtX1dBUk5fT04oJihkZXZfcHJpdiktPmRybSwgIUhBU19ESVNQTEFZKGRl dl9wcml2KSksICFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX2Rpc3BsYXkpCisJKGRybV9XQVJOX09O KCYoZGV2X3ByaXYpLT5kcm0sICFIQVNfRElTUExBWShkZXZfcHJpdikpLCAhKGRldl9wcml2KS0+ cGFyYW1zLmRpc2FibGVfZGlzcGxheSkKIAogc3RhdGljIGlubGluZSBib29sIGludGVsX3Z0ZF9h Y3RpdmUodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0 cGFyYW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYwppbmRleCBkMDQy NjQ0YjljZDIuLjQwMzkwYjIzNTJiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZXRwYXJhbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0u YwpAQCAtODAsNyArODAsNyBAQCBpbnQgaTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCWJyZWFrOwogCWNh c2UgSTkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUOgotCQl2YWx1ZSA9IGk5MTVfbW9kcGFyYW1zLmVu YWJsZV9oYW5nY2hlY2sgJiYKKwkJdmFsdWUgPSBpOTE1LT5wYXJhbXMuZW5hYmxlX2hhbmdjaGVj ayAmJgogCQkJaW50ZWxfaGFzX2dwdV9yZXNldCgmaTkxNS0+Z3QpOwogCQlpZiAodmFsdWUgJiYg aW50ZWxfaGFzX3Jlc2V0X2VuZ2luZSgmaTkxNS0+Z3QpKQogCQkJdmFsdWUgPSAyOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggZWVjMjkyZDA2ZjExLi44NjYxNjZhZGEx MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtMTY5OCw3ICsxNjk4 LDcgQEAgc3RhdGljIHZvaWQgY2FwdHVyZV9nZW4oc3RydWN0IGk5MTVfZ3B1X2NvcmVkdW1wICpl cnJvcikKIAllcnJvci0+cmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZpOTE1LT5ncHVf ZXJyb3IpOwogCWVycm9yLT5zdXNwZW5kX2NvdW50ID0gaTkxNS0+c3VzcGVuZF9jb3VudDsKIAot CWk5MTVfcGFyYW1zX2NvcHkoJmVycm9yLT5wYXJhbXMsICZpOTE1X21vZHBhcmFtcyk7CisJaTkx NV9wYXJhbXNfY29weSgmZXJyb3ItPnBhcmFtcywgJmk5MTUtPnBhcmFtcyk7CiAJbWVtY3B5KCZl cnJvci0+ZGV2aWNlX2luZm8sCiAJICAgICAgIElOVEVMX0lORk8oaTkxNSksCiAJICAgICAgIHNp emVvZihlcnJvci0+ZGV2aWNlX2luZm8pKTsKQEAgLTE3MTMsNyArMTcxMyw3IEBAIGk5MTVfZ3B1 X2NvcmVkdW1wX2FsbG9jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBnZnBfdCBnZnAp CiB7CiAJc3RydWN0IGk5MTVfZ3B1X2NvcmVkdW1wICplcnJvcjsKIAotCWlmICghaTkxNV9tb2Rw YXJhbXMuZXJyb3JfY2FwdHVyZSkKKwlpZiAoIWk5MTUtPnBhcmFtcy5lcnJvcl9jYXB0dXJlKQog CQlyZXR1cm4gTlVMTDsKIAogCWVycm9yID0ga3phbGxvYyhzaXplb2YoKmVycm9yKSwgZ2ZwKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKaW5kZXggZGQ4OTgxMzQwZDZlLi45OWZlOGFlZjFjNjcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBib29s IGlzX3N1cHBvcnRlZF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ICovCiB2b2lkIGludGVsX2d2dF9zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndnQpCisJaWYg KCFkZXZfcHJpdi0+cGFyYW1zLmVuYWJsZV9ndnQpCiAJCXJldHVybjsKIAogCWlmIChpbnRlbF92 Z3B1X2FjdGl2ZShkZXZfcHJpdikpIHsKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBpbnRlbF9ndnRf c2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAly ZXR1cm47CiBiYWlsOgotCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndnQgPSAwOworCWRldl9wcml2 LT5wYXJhbXMuZW5hYmxlX2d2dCA9IDA7CiB9CiAKIC8qKgpAQCAtMTAyLDcgKzEwMiw3IEBAIGlu dCBpbnRlbF9ndnRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYg KGk5MTVfaW5qZWN0X3Byb2JlX2ZhaWx1cmUoZGV2X3ByaXYpKQogCQlyZXR1cm4gLUVOT0RFVjsK IAotCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d2dCkgeworCWlmICghZGV2X3ByaXYtPnBh cmFtcy5lbmFibGVfZ3Z0KSB7CiAJCWRybV9kYmcoJmRldl9wcml2LT5kcm0sCiAJCQkiR1ZULWcg aXMgZGlzYWJsZWQgYnkga2VybmVsIHBhcmFtc1xuIik7CiAJCXJldHVybiAwOwpAQCAtMTIzLDcg KzEyMyw3IEBAIGludCBpbnRlbF9ndnRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJcmV0dXJuIDA7CiAKIGJhaWw6Ci0JaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d2dCA9 IDA7CisJZGV2X3ByaXYtPnBhcmFtcy5lbmFibGVfZ3Z0ID0gMDsKIAlyZXR1cm4gMDsKIH0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmMKaW5kZXggMTRiNTliODk5Yzli Li40MGQ4ZjFhOTVkZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jl Z2lvbl9sbWVtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVnaW9uX2xtZW0u YwpAQCAtNzYsNyArNzYsNyBAQCByZWdpb25fbG1lbV9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlf cmVnaW9uICptZW0pCiB7CiAJaW50IHJldDsKIAotCWlmIChpOTE1X21vZHBhcmFtcy5mYWtlX2xt ZW1fc3RhcnQpIHsKKwlpZiAobWVtLT5pOTE1LT5wYXJhbXMuZmFrZV9sbWVtX3N0YXJ0KSB7CiAJ CXJldCA9IGluaXRfZmFrZV9sbWVtX2JhcihtZW0pOwogCQlHRU1fQlVHX09OKHJldCk7CiAJfQpA QCAtMTExLDEyICsxMTEsMTIgQEAgaW50ZWxfc2V0dXBfZmFrZV9sbWVtKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQogCXJlc291cmNlX3NpemVfdCBzdGFydDsKIAogCUdFTV9CVUdfT04o aTkxNV9nZ3R0X2hhc19hcGVydHVyZSgmaTkxNS0+Z2d0dCkpOwotCUdFTV9CVUdfT04oIWk5MTVf bW9kcGFyYW1zLmZha2VfbG1lbV9zdGFydCk7CisJR0VNX0JVR19PTighaTkxNS0+cGFyYW1zLmZh a2VfbG1lbV9zdGFydCk7CiAKIAkvKiBZb3VyIG1hcHBhYmxlIGFwZXJ0dXJlIGJlbG9uZ3MgdG8g bWUgbm93ISAqLwogCW1hcHBhYmxlX2VuZCA9IHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMik7CiAJ aW9fc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMiksCi0Jc3RhcnQgPSBpOTE1X21v ZHBhcmFtcy5mYWtlX2xtZW1fc3RhcnQ7CisJc3RhcnQgPSBpOTE1LT5wYXJhbXMuZmFrZV9sbWVt X3N0YXJ0OwogCiAJbWVtID0gaW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoaTkxNSwKIAkJCQkJ IHN0YXJ0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCA3ZDZiOWFlNzQwM2Mu LjU5MjM2NGFlZDJkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5j b3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTExODUs NyArMTE4NSw3IEBAIF9fdW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUsCiAJCSAgICAgcmVhZCA/ICJyZWFkIGZyb20iIDogIndyaXRlIHRvIiwKIAkJICAgICBp OTE1X21taW9fcmVnX29mZnNldChyZWcpKSkKIAkJLyogT25seSByZXBvcnQgdGhlIGZpcnN0IE4g ZmFpbHVyZXMgKi8KLQkJaTkxNV9tb2RwYXJhbXMubW1pb19kZWJ1Zy0tOworCQl1bmNvcmUtPmk5 MTUtPnBhcmFtcy5tbWlvX2RlYnVnLS07CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZApAQCAtMTE5 NCw3ICsxMTk0LDcgQEAgdW5jbGFpbWVkX3JlZ19kZWJ1ZyhzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUsCiAJCSAgICBjb25zdCBib29sIHJlYWQsCiAJCSAgICBjb25zdCBib29sIGJlZm9yZSkK IHsKLQlpZiAobGlrZWx5KCFpOTE1X21vZHBhcmFtcy5tbWlvX2RlYnVnKSkKKwlpZiAobGlrZWx5 KCF1bmNvcmUtPmk5MTUtPnBhcmFtcy5tbWlvX2RlYnVnKSkKIAkJcmV0dXJuOwogCiAJLyogaW50 ZXJydXB0cyBhcmUgZGlzYWJsZWQgYW5kIHJlLWVuYWJsZWQgYXJvdW5kIHVuY29yZS0+bG9jayB1 c2FnZSAqLwpAQCAtMjA5MywxMiArMjA5MywxMiBAQCBpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1l ZF9tbWlvX2RldGVjdGlvbihzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCiAJCWdvdG8gb3V0 OwogCiAJaWYgKHVubGlrZWx5KGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyh1bmNvcmUpKSkgewot CQlpZiAoIWk5MTVfbW9kcGFyYW1zLm1taW9fZGVidWcpIHsKKwkJaWYgKCF1bmNvcmUtPmk5MTUt PnBhcmFtcy5tbWlvX2RlYnVnKSB7CiAJCQlkcm1fZGJnKCZ1bmNvcmUtPmk5MTUtPmRybSwKIAkJ CQkiVW5jbGFpbWVkIHJlZ2lzdGVyIGRldGVjdGVkLCAiCiAJCQkJImVuYWJsaW5nIG9uZXNob3Qg dW5jbGFpbWVkIHJlZ2lzdGVyIHJlcG9ydGluZy4gIgogCQkJCSJQbGVhc2UgdXNlIGk5MTUubW1p b19kZWJ1Zz1OIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIik7Ci0JCQlpOTE1X21vZHBhcmFtcy5t bWlvX2RlYnVnKys7CisJCQl1bmNvcmUtPmk5MTUtPnBhcmFtcy5tbWlvX2RlYnVnKys7CiAJCX0K IAkJdW5jb3JlLT5kZWJ1Zy0+dW5jbGFpbWVkX21taW9fY2hlY2stLTsKIAkJcmV0ID0gdHJ1ZTsK LS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==