From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH 2/2] drm/i915: Add a link training test Date: Tue, 15 Sep 2015 16:11:36 +0300 Message-ID: <1442322696-31286-2-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1442237891.2755.24.camel@gmail.com> <1442322696-31286-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 26AAC6E0A4 for ; Tue, 15 Sep 2015 06:11:48 -0700 (PDT) In-Reply-To: <1442322696-31286-1-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Ander Conselvan de Oliveira , thomas.wood@intel.com List-Id: intel-gfx@lists.freedesktop.org LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAg ICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg ICAgICAgICB8ICAgOCArCiAuLi4vZHJtL2k5MTUvdGVzdHMvdGVzdF9pbnRlbF9kcF9saW5rX3Ry YWluaW5nLmMgICB8IDQ2NyArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L3Rlc3RzL3Rlc3RzLmMgICAgICAgICAgICAgICAgIHwgICA3ICsKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3Rlc3RzL3Rlc3RzLmggICAgICAgICAgICAgICAgIHwgICA2ICsKIDcgZmlsZXMgY2hh bmdlZCwgNTA1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS90ZXN0cy90ZXN0X2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3Rlc3RzL3Rlc3RzLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS90ZXN0cy90ZXN0cy5oCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcK aW5kZXggMDUxZWFiMy4uZmI0MmE5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv S2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCkBAIC00NywzICs0Nywx MyBAQCBjb25maWcgRFJNX0k5MTVfUFJFTElNSU5BUllfSFdfU1VQUE9SVAogCSAgb3B0aW9uIGNo YW5nZXMgdGhlIGRlZmF1bHQgZm9yIHRoYXQgbW9kdWxlIG9wdGlvbi4KIAogCSAgSWYgaW4gZG91 YnQsIHNheSAiTiIuCisKK2NvbmZpZyBEUk1fSTkxNV9VTklUX1RFU1RTCisJYm9vbCAiRW5hYmxl IGV4ZWN1dGlvbiBvZiB1bml0IHRlc3RzIG9uIG1vZHVsZSBsb2FkIgorCWRlcGVuZHMgb24gRFJN X0k5MTUKKwlkZWZhdWx0IG4KKwloZWxwCisJICBDaG9vc2UgdGhpcyBvcHRpb24gdG8gcnVuIGEg c2VyaWVzIG9mIHVuaXQgdGVzdHMgd2hlbiB0aGUgaTkxNQorCSAgbW9kdWxlIGlzIGxvYWRlZC4K KworCSAgSWYgaW4gZG91YnQsIHNheSAiTiIuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDA4NTFk ZTA3Li5iZDdlMjgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtOTcsNiArOTcsMTEgQEAgaTkx NS15ICs9IGk5MTVfdmdwdS5vCiAjIGxlZ2FjeSBob3Jyb3JzCiBpOTE1LXkgKz0gaTkxNV9kbWEu bwogCisjIFVuaXQgdGVzdHMKK2k5MTUtJChDT05GSUdfRFJNX0k5MTVfVU5JVF9URVNUUykgKz0g XAorCXRlc3RzL3Rlc3RzLm8gXAorCXRlc3RzL3Rlc3RfaW50ZWxfZHBfbGlua190cmFpbmluZy5v CisKIG9iai0kKENPTkZJR19EUk1fSTkxNSkgICs9IGk5MTUubwogCiBDRkxBR1NfaTkxNV90cmFj ZV9wb2ludHMubyA6PSAtSSQoc3JjKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggYmRlYzY0 Yy4uMjQ5NDY2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0xNzA3LDYgKzE3MDcsOCBA QCBzdGF0aWMgaW50IF9faW5pdCBpOTE1X2luaXQodm9pZCkKIHsKIAlkcml2ZXIubnVtX2lvY3Rs cyA9IGk5MTVfbWF4X2lvY3RsOwogCisJaTkxNV9ydW5fdW5pdF90ZXN0cygpOworCiAJLyoKIAkg KiBFbmFibGUgS01TIGJ5IGRlZmF1bHQsIHVubGVzcyBleHBsaWNpdGx5IG92ZXJyaWRlbiBieQog CSAqIGVpdGhlciB0aGUgaTkxNS5tb2Rlc2V0IHByYXJhbWV0ZXIgb3IgYnkgdGhlCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAppbmRleCAzYmY4YTliLi4zOWM1OGQxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKQEAgLTM1MDIsNCArMzUwMiwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV90cmFj ZV9pcnFfZ2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCWk5MTVfZ2VtX3JlcXVl c3RfYXNzaWduKCZyaW5nLT50cmFjZV9pcnFfcmVxLCByZXEpOwogfQogCisjaWZkZWYgQ09ORklH X0RSTV9JOTE1X1VOSVRfVEVTVFMKK3ZvaWQgaTkxNV9ydW5fdW5pdF90ZXN0cyh2b2lkKTsKKyNl bHNlCitzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9ydW5fdW5pdF90ZXN0cyh2b2lkKQoreworfQor I2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvdGVzdHMv dGVzdF9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS90ZXN0 cy90ZXN0X2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hYjVkZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvdGVzdHMvdGVzdF9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKQEAgLTAsMCArMSw0NjcgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAg QW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFA aW50ZWwuY29tPgorICoKKyAqLworCisjaW5jbHVkZSAiLi4vaW50ZWxfZHJ2LmgiCisKKyNkZWZp bmUgYXNzZXJ0KHgpCVdBUk5fT04oISh4KSkKKworc3RydWN0IHNpbmtfZGV2aWNlIHsKKwlzc2l6 ZV90ICgqZHBjZF93cml0ZSkoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rLCB1bnNpZ25lZCBpbnQg b2Zmc2V0LAorCQkJICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CisJYm9vbCAoKmdl dF9saW5rX3N0YXR1cykoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rLAorCQkJCXVpbnQ4X3QgbGlu a19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pOworCisJc3RydWN0IHsKKwkJYm9vbCBsYW5l X2NvdW50X2FuZF9id19zZXQ7CisJCWJvb2wgdHJhaW5pbmdfcGF0dGVybl8xX3NldDsKKwkJYm9v bCBzdGFydGVkX3dpdGhfbm9uX3plcm9fbGV2ZWxzOworCQlib29sIGNyX2RvbmU7CisJCWJvb2wg Y2hhbm5lbF9lcV9kb25lOworCisJCXVpbnQ4X3QgZHBjZFsweDMwMDBdOworCX0gZGF0YTsKK307 CisKKy8qIEZha2Ugc2luayBkZXZpY2UgaW1wbGVtZW50YXRpb24gKi8KKworc3RhdGljIHVpbnQ4 X3QKK3NpbmtfZGV2aWNlX2xhbmVfY291bnQoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rKQorewor CXJldHVybiBzaW5rLT5kYXRhLmRwY2RbRFBfTEFORV9DT1VOVF9TRVRdOworfQorCitzdGF0aWMg dWludDhfdAorc2lua19kZXZpY2VfZ2V0X3RyYWluaW5nX3BhdHRlcm4oc3RydWN0IHNpbmtfZGV2 aWNlICpzaW5rKQoreworCXJldHVybiBzaW5rLT5kYXRhLmRwY2RbRFBfVFJBSU5JTkdfUEFUVEVS Tl9TRVRdICYgRFBfVFJBSU5JTkdfUEFUVEVSTl9NQVNLOworfQorCitzdGF0aWMgdWludDhfdAor c2lua19kZXZpY2VfZ2V0X3ZvbHRhZ2Vfc3dpbmcoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rLCBp bnQgbGFuZSkKK3sKKwlyZXR1cm4gc2luay0+ZGF0YS5kcGNkW0RQX1RSQUlOSU5HX0xBTkUwX1NF VCArIGxhbmVdICYKKwkJRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLOworfQorCitzdGF0aWMg dWludDhfdAorc2lua19kZXZpY2VfZ2V0X3ByZV9lbXBoYXNpc19sZXZlbChzdHJ1Y3Qgc2lua19k ZXZpY2UgKnNpbmssIGludCBsYW5lKQoreworCXJldHVybiAoc2luay0+ZGF0YS5kcGNkW0RQX1RS QUlOSU5HX0xBTkUwX1NFVCArIGxhbmVdICYKKwkJIERQX1RSQUlOX1BSRV9FTVBIQVNJU19NQVNL KSA+PiBEUF9UUkFJTl9QUkVfRU1QSEFTSVNfU0hJRlQ7Cit9CisKK3N0YXRpYyB2b2lkCitzaW5r X2RldmljZV9jaGVja19sYW5lX2NvdW50X2FuZF9idyhzdHJ1Y3Qgc2lua19kZXZpY2UgKnNpbmsp Cit7CisJaWYgKHNpbmstPmRhdGEubGFuZV9jb3VudF9hbmRfYndfc2V0KQorCQlyZXR1cm47CisK Kwlhc3NlcnQoc2luay0+ZGF0YS5kcGNkW0RQX1RSQUlOSU5HX1BBVFRFUk5fU0VUXSA9PSAwKTsK KworCWlmIChzaW5rLT5kYXRhLmRwY2RbRFBfTElOS19CV19TRVRdICE9IDAgJiYKKwkgICAgc2lu ay0+ZGF0YS5kcGNkW0RQX0xBTkVfQ09VTlRfU0VUXSAhPSAwKQorCQlzaW5rLT5kYXRhLmxhbmVf Y291bnRfYW5kX2J3X3NldCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCitzaW5rX2RldmljZV9j aGVja19wYXR0ZXJuXzFfc2V0KHN0cnVjdCBzaW5rX2RldmljZSAqc2luaykKK3sKKwlpbnQgbGFu ZTsKKworCWlmICghc2luay0+ZGF0YS5sYW5lX2NvdW50X2FuZF9id19zZXQgfHwKKwkgICAgc2lu ay0+ZGF0YS50cmFpbmluZ19wYXR0ZXJuXzFfc2V0KQorCQlyZXR1cm47CisKKwlhc3NlcnQoc2lu a19kZXZpY2VfZ2V0X3RyYWluaW5nX3BhdHRlcm4oc2luaykgPD0gRFBfVFJBSU5JTkdfUEFUVEVS Tl8xKTsKKworCWlmIChzaW5rX2RldmljZV9nZXRfdHJhaW5pbmdfcGF0dGVybihzaW5rKSAhPSBE UF9UUkFJTklOR19QQVRURVJOXzEpCisJCXJldHVybjsKKworCWFzc2VydChzaW5rLT5kYXRhLmRw Y2RbRFBfTElOS19CV19TRVRdID09IERQX0xJTktfQldfMV82MiB8fAorCSAgICAgICBzaW5rLT5k YXRhLmRwY2RbRFBfTElOS19CV19TRVRdID09IERQX0xJTktfQldfMl83KTsKKworCWFzc2VydChz aW5rLT5kYXRhLmRwY2RbRFBfTEFORV9DT1VOVF9TRVRdID09IDEgfHwKKwkJICAgc2luay0+ZGF0 YS5kcGNkW0RQX0xBTkVfQ09VTlRfU0VUXSA9PSAyIHx8CisJCSAgIHNpbmstPmRhdGEuZHBjZFtE UF9MQU5FX0NPVU5UX1NFVF0gPT0gNCk7CisKKwlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgc2lua19k ZXZpY2VfbGFuZV9jb3VudChzaW5rKTsgbGFuZSsrKSB7CisJCWlmIChzaW5rX2RldmljZV9nZXRf dm9sdGFnZV9zd2luZyhzaW5rLCBsYW5lKSAhPSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVM XzAgfHwKKwkJICAgIHNpbmtfZGV2aWNlX2dldF9wcmVfZW1waGFzaXNfbGV2ZWwoc2luaywgbGFu ZSkgIT0gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMCkKKwkJCXNpbmstPmRhdGEuc3RhcnRlZF93 aXRoX25vbl96ZXJvX2xldmVscyA9IHRydWU7CisJfQorCisJc2luay0+ZGF0YS50cmFpbmluZ19w YXR0ZXJuXzFfc2V0ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK3NpbmtfZGV2aWNlX2NoZWNr X3BhdHRlcm5fMl9zZXQoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rKQoreworCWlmICghc2luay0+ ZGF0YS5jcl9kb25lKQorCQlyZXR1cm47CisKKwlhc3NlcnQoc2lua19kZXZpY2VfZ2V0X3RyYWlu aW5nX3BhdHRlcm4oc2luaykgPT0gRFBfVFJBSU5JTkdfUEFUVEVSTl8yKTsKK30KKworc3RhdGlj IHZvaWQKK3NpbmtfZGV2aWNlX2NoZWNrX3BhdHRlcm5fZGlzYWJsZShzdHJ1Y3Qgc2lua19kZXZp Y2UgKnNpbmspCit7CisJaWYgKCFzaW5rLT5kYXRhLmNyX2RvbmUgfHwgISBzaW5rLT5kYXRhLmNo YW5uZWxfZXFfZG9uZSkKKwkJcmV0dXJuOworCisJYXNzZXJ0KHNpbmtfZGV2aWNlX2dldF90cmFp bmluZ19wYXR0ZXJuKHNpbmspID09IERQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7Cit9CisK K3N0YXRpYyBzc2l6ZV90CitzaW5rX2RldmljZV9kcGNkX3dyaXRlKHN0cnVjdCBzaW5rX2Rldmlj ZSAqc2luaywgdW5zaWduZWQgaW50IG9mZnNldCwKKwkJICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6 ZV90IHNpemUpCit7CisJbWVtY3B5KHNpbmstPmRhdGEuZHBjZCArIG9mZnNldCwgYnVmZmVyLCBz aXplKTsKKworCXNpbmtfZGV2aWNlX2NoZWNrX2xhbmVfY291bnRfYW5kX2J3KHNpbmspOworCisJ aWYgKCFzaW5rLT5kYXRhLmNyX2RvbmUpCisJCXNpbmtfZGV2aWNlX2NoZWNrX3BhdHRlcm5fMV9z ZXQoc2luayk7CisJZWxzZSBpZiAoIXNpbmstPmRhdGEuY2hhbm5lbF9lcV9kb25lKQorCQlzaW5r X2RldmljZV9jaGVja19wYXR0ZXJuXzJfc2V0KHNpbmspOworCWVsc2UKKwkJc2lua19kZXZpY2Vf Y2hlY2tfcGF0dGVybl9kaXNhYmxlKHNpbmspOworCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRp YyBib29sCitzaW5rX2RldmljZV9tYXhfdm9sdGFnZV9yZWFjaGVkKHN0cnVjdCBzaW5rX2Rldmlj ZSAqc2luaywgaW50IGxhbmUpCit7CisJcmV0dXJuIChzaW5rLT5kYXRhLmRwY2RbRFBfVFJBSU5J TkdfTEFORTBfU0VUICsgbGFuZV0gJiBEUF9UUkFJTl9NQVhfU1dJTkdfUkVBQ0hFRCkgPT0KKwkJ RFBfVFJBSU5fTUFYX1NXSU5HX1JFQUNIRUQ7Cit9CisKK3N0YXRpYyBib29sCitzaW5rX2Rldmlj ZV9tYXhfcHJlX2VtcGhhc2lzX3JlYWNoZWQoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rLCBpbnQg bGFuZSkKK3sKKwlyZXR1cm4gKHNpbmstPmRhdGEuZHBjZFtEUF9UUkFJTklOR19MQU5FMF9TRVQg KyBsYW5lXSAmIERQX1RSQUlOX01BWF9QUkVfRU1QSEFTSVNfUkVBQ0hFRCkgPT0KKwkJRFBfVFJB SU5fTUFYX1BSRV9FTVBIQVNJU19SRUFDSEVEOworfQorCitzdGF0aWMgdm9pZAorc2lua19kZXZp Y2Vfc2V0X2FkanVzdF92b2x0YWdlKHN0cnVjdCBzaW5rX2RldmljZSAqc2luaywKKwkJCSAgICAg ICBpbnQgbGFuZSwgdWludDhfdCBsZXZlbCkKK3sKKwlpbnQgc2hpZnQgPSBEUF9BREpVU1RfVk9M VEFHRV9TV0lOR19MQU5FMV9TSElGVCAqIChsYW5lICYgMSk7CisKKwlzaW5rLT5kYXRhLmRwY2Rb RFBfQURKVVNUX1JFUVVFU1RfTEFORTBfMSArIChsYW5lID4+IDEpXSAmPQorCQl+KERQX0FESlVT VF9WT0xUQUdFX1NXSU5HX0xBTkUwX01BU0sgPDwgc2hpZnQpOworCXNpbmstPmRhdGEuZHBjZFtE UF9BREpVU1RfUkVRVUVTVF9MQU5FMF8xICsgKGxhbmUgPj4gMSldIHw9CisJCWxldmVsIDw8IHNo aWZ0OworfQorCitzdGF0aWMgdm9pZAorc2lua19kZXZpY2Vfc2V0X2FkanVzdF9wcmVfZW1waGFz aXMoc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rLAorCQkJCSAgICBpbnQgbGFuZSwgdWludDhfdCBs ZXZlbCkKK3sKKwlpbnQgc2hpZnQgPSBEUF9BREpVU1RfVk9MVEFHRV9TV0lOR19MQU5FMV9TSElG VCAqIChsYW5lICYgMSk7CisKKwlzaW5rLT5kYXRhLmRwY2RbRFBfQURKVVNUX1JFUVVFU1RfTEFO RTBfMSArIChsYW5lID4+IDEpXSAmPQorCQl+KERQX0FESlVTVF9QUkVfRU1QSEFTSVNfTEFORTBf TUFTSyA8PCBzaGlmdCk7CisJc2luay0+ZGF0YS5kcGNkW0RQX0FESlVTVF9SRVFVRVNUX0xBTkUw XzEgKyAobGFuZSA+PiAxKV0gfD0KKwkJbGV2ZWwgPDwgKERQX0FESlVTVF9QUkVfRU1QSEFTSVNf TEFORTBfU0hJRlQgKyBzaGlmdCk7Cit9CisKK3N0YXRpYyBib29sCitzaW5rX2RldmljZV9yZXF1 ZXN0X2hpZ2hlcl92b2x0YWdlX3N3aW5nKHN0cnVjdCBzaW5rX2RldmljZSAqc2luaykKK3sKKwli b29sIG1heF9yZWFjaGVkID0gZmFsc2U7CisJaW50IGxhbmU7CisKKwlmb3IgKGxhbmUgPSAwOyBs YW5lIDwgc2lua19kZXZpY2VfbGFuZV9jb3VudChzaW5rKTsgbGFuZSsrKSB7CisJCWlmIChzaW5r X2RldmljZV9tYXhfdm9sdGFnZV9yZWFjaGVkKHNpbmssIGxhbmUpKSB7CisJCQltYXhfcmVhY2hl ZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChtYXhfcmVhY2hlZCkKKwkJcmV0 dXJuIGZhbHNlOworCisJZm9yIChsYW5lID0gMDsgbGFuZSA8IHNpbmtfZGV2aWNlX2xhbmVfY291 bnQoc2luayk7IGxhbmUrKykgeworCQl1aW50OF90IG5ld192b2x0YWdlID0KKwkJCXNpbmtfZGV2 aWNlX2dldF92b2x0YWdlX3N3aW5nKHNpbmssIGxhbmUpICsgMTsKKworCQlzaW5rX2RldmljZV9z ZXRfYWRqdXN0X3ZvbHRhZ2Uoc2luaywgbGFuZSwgbmV3X3ZvbHRhZ2UpOworCX0KKworCXJldHVy biB0cnVlOworfQorCitzdGF0aWMgYm9vbAorc2lua19kZXZpY2VfcmVxdWVzdF9oaWdoZXJfcHJl X2VtcGhhc2lzKHN0cnVjdCBzaW5rX2RldmljZSAqc2luaykKK3sKKwlib29sIG1heF9yZWFjaGVk ID0gZmFsc2U7CisJaW50IGxhbmU7CisKKwlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgc2lua19kZXZp Y2VfbGFuZV9jb3VudChzaW5rKTsgbGFuZSsrKSB7CisJCWlmIChzaW5rX2RldmljZV9tYXhfcHJl X2VtcGhhc2lzX3JlYWNoZWQoc2luaywgbGFuZSkpIHsKKwkJCW1heF9yZWFjaGVkID0gdHJ1ZTsK KwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKG1heF9yZWFjaGVkKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgc2lua19kZXZpY2VfbGFuZV9jb3VudChzaW5rKTsg bGFuZSsrKSB7CisJCXVpbnQ4X3QgbmV3X3ByZV9lbXBoYXNpcyA9CisJCQlzaW5rX2RldmljZV9n ZXRfcHJlX2VtcGhhc2lzX2xldmVsKHNpbmssIGxhbmUpICsgMTsKKworCQlzaW5rX2RldmljZV9z ZXRfYWRqdXN0X3ByZV9lbXBoYXNpcyhzaW5rLCBsYW5lLCBuZXdfcHJlX2VtcGhhc2lzKTsKKwl9 CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK3NpbmtfZGV2aWNlX21hcmtfY3Jf ZG9uZShzdHJ1Y3Qgc2lua19kZXZpY2UgKnNpbmspCit7CisJaW50IGxhbmU7CisKKwlmb3IgKGxh bmUgPSAwOyBsYW5lIDwgc2lua19kZXZpY2VfbGFuZV9jb3VudChzaW5rKTsgbGFuZSsrKQorCQlz aW5rLT5kYXRhLmRwY2RbRFBfTEFORTBfMV9TVEFUVVMgKyAobGFuZSA+PiAxKV0gfD0KKwkJCURQ X0xBTkVfQ1JfRE9ORSA8PCAoNCAqIChsYW5lICYgMSkpOworCisJc2luay0+ZGF0YS5jcl9kb25l ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK3NpbmtfZGV2aWNlX21hcmtfY2hhbm5lbF9lcV9k b25lKHN0cnVjdCBzaW5rX2RldmljZSAqc2luaykKK3sKKwlpbnQgbGFuZTsKKworCWZvciAobGFu ZSA9IDA7IGxhbmUgPCBzaW5rX2RldmljZV9sYW5lX2NvdW50KHNpbmspOyBsYW5lKyspIHsKKwkJ dWludDhfdCBtYXNrID0gKERQX0xBTkVfQ0hBTk5FTF9FUV9ET05FIHwgRFBfTEFORV9TWU1CT0xf TE9DS0VEKTsKKwkJc2luay0+ZGF0YS5kcGNkW0RQX0xBTkUwXzFfU1RBVFVTICsgKGxhbmUgPj4g MSldIHw9CisJCQltYXNrIDw8ICg0ICogKGxhbmUgJiAxKSk7CisJfQorCisJc2luay0+ZGF0YS5k cGNkW0RQX0xBTkVfQUxJR05fU1RBVFVTX1VQREFURURdIHw9IERQX0lOVEVSTEFORV9BTElHTl9E T05FOworCisJc2luay0+ZGF0YS5jaGFubmVsX2VxX2RvbmUgPSB0cnVlOworfQorCitzdGF0aWMg Ym9vbAorc2lua19kZXZpY2VfZ2V0X2xpbmtfc3RhdHVzKHN0cnVjdCBzaW5rX2RldmljZSAqc2lu aywKKwkJCSAgICB1aW50OF90IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKQorewor CWlmICghc2luay0+ZGF0YS5jcl9kb25lKSB7CisJCWlmICghc2lua19kZXZpY2VfcmVxdWVzdF9o aWdoZXJfdm9sdGFnZV9zd2luZyhzaW5rKSkKKwkJCXNpbmtfZGV2aWNlX21hcmtfY3JfZG9uZShz aW5rKTsKKwl9IGVsc2UgaWYgKCFzaW5rLT5kYXRhLmNoYW5uZWxfZXFfZG9uZSkgeworCQlpZiAo IXNpbmtfZGV2aWNlX3JlcXVlc3RfaGlnaGVyX3ByZV9lbXBoYXNpcyhzaW5rKSkKKwkJCXNpbmtf ZGV2aWNlX21hcmtfY2hhbm5lbF9lcV9kb25lKHNpbmspOworCX0KKworCW1lbWNweShsaW5rX3N0 YXR1cywgc2luay0+ZGF0YS5kcGNkICsgRFBfTEFORTBfMV9TVEFUVVMsCisJICAgICAgIERQX0xJ TktfU1RBVFVTX1NJWkUpOworCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCitzaW5r X2RldmljZV9yZXNldChzdHJ1Y3Qgc2lua19kZXZpY2UgKnNpbmssIGludCBsYW5lcywgdWludDhf dCBsaW5rX2J3KQoreworCW1lbXNldCgmc2luay0+ZGF0YSwgMCwgc2l6ZW9mIHNpbmstPmRhdGEp OworCXNpbmstPmRhdGEuZHBjZFtEUF9NQVhfTElOS19SQVRFXSA9IGxpbmtfYnc7CisJc2luay0+ ZGF0YS5kcGNkW0RQX01BWF9MQU5FX0NPVU5UXSA9IGxhbmVzOworfQorCitzdGF0aWMgc3RydWN0 IHNpbmtfZGV2aWNlIHNpbXBsZV9zaW5rID0geworCS5nZXRfbGlua19zdGF0dXMgPSBzaW5rX2Rl dmljZV9nZXRfbGlua19zdGF0dXMsCisJLmRwY2Rfd3JpdGUgPSBzaW5rX2RldmljZV9kcGNkX3dy aXRlLAorfTsKKworLyogR2x1ZSBjb2RlICovCisKK3N0cnVjdCB0ZXN0X2ludGVsX2RwIHsKKwlz dHJ1Y3QgaW50ZWxfZHAgZHA7CisJc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rOworCXVpbnQ4X3Qg bGlua19idzsKKworCXVpbnQ4X3QgbWF4X3ZvbHRhZ2U7CisJdWludDhfdCBtYXhfcHJlX2VtcGhh c2lzOworfTsKKworc3RhdGljIHN0cnVjdCB0ZXN0X2ludGVsX2RwICoKK3RvX3Rlc3RfaW50ZWxf ZHAoc3RydWN0IGludGVsX2RwICpkcCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGRwLCBzdHJ1 Y3QgdGVzdF9pbnRlbF9kcCwgZHApOworfQorCit2b2lkIHRlc3RfZHBfc2V0X2lkbGVfbGlua190 cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQoreworfQorCitib29sCit0ZXN0X2RwX2dl dF9saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IGxpbmtfc3Rh dHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKQoreworCXN0cnVjdCBzaW5rX2RldmljZSAqc2luayA9 IHRvX3Rlc3RfaW50ZWxfZHAoaW50ZWxfZHApLT5zaW5rOworCXJldHVybiBzaW5rLT5nZXRfbGlu a19zdGF0dXMoc2luaywgbGlua19zdGF0dXMpOworfQorCit2b2lkCit0ZXN0X2RwX3VwZGF0ZV9z aWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCit7Cit9CisKK3ZvaWQgdGVz dF9kcF9jb21wdXRlX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHBvcnRfY2xv Y2ssCisJCQkgICB1aW50OF90ICpsaW5rX2J3LCB1aW50OF90ICpyYXRlX3NlbGVjdCkKK3sKKwkq bGlua19idyA9IHRvX3Rlc3RfaW50ZWxfZHAoaW50ZWxfZHApLT5saW5rX2J3OworCSpyYXRlX3Nl bGVjdCA9IDA7Cit9CisKK3ZvaWQKK3Rlc3RfZHBfcHJvZ3JhbV9saW5rX3RyYWluaW5nX3BhdHRl cm4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkgICAgICAgdWludDhfdCBkcF90cmFp bl9wYXQpCit7Cit9CisKK3VpbnQ4X3QKK3Rlc3RfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKK3sKKwlyZXR1cm4gdG9fdGVzdF9pbnRlbF9kcChpbnRlbF9kcCktPm1h eF92b2x0YWdlIDw8CisJCURQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfU0hJRlQ7Cit9CisKK3VpbnQ4 X3QKK3Rlc3RfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1 aW50OF90IHZvbHRhZ2Vfc3dpbmcpCit7CisJcmV0dXJuIHRvX3Rlc3RfaW50ZWxfZHAoaW50ZWxf ZHApLT5tYXhfcHJlX2VtcGhhc2lzIDw8CisJCURQX1RSQUlOX1BSRV9FTVBIQVNJU19TSElGVDsK K30KKworc3NpemVfdCB0ZXN0X2RwX2RwY2Rfd3JpdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgdW5zaWduZWQgaW50IG9mZnNldCwKKwkJCSAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUp Cit7CisJc3RydWN0IHNpbmtfZGV2aWNlICpzaW5rID0gdG9fdGVzdF9pbnRlbF9kcChpbnRlbF9k cCktPnNpbms7CisJcmV0dXJuIHNpbmstPmRwY2Rfd3JpdGUoc2luaywgb2Zmc2V0LCBidWZmZXIs IHNpemUpOworfQorCitzdGF0aWMgYm9vbCB0ZXN0X2RwX3NvdXJjZV9zdXBwb3J0c19oYnIyKHN0 cnVjdCBpbnRlbF9kcCAqZHApCit7CisJcmV0dXJuIGZhbHNlOworfQorCisvKiAtLS0gKi8KKwor c3RhdGljIHN0cnVjdCB0ZXN0X2ludGVsX2RwIHRlc3RfZHA7CisKK3N0YXRpYyB2b2lkCitkb190 ZXN0KHN0cnVjdCBzaW5rX2RldmljZSAqc2luaywgaW50IGxhbmVzLCB1aW50OF90IGxpbmtfYncs CisJICAgICB1aW50OF90IG1heF92b2x0YWdlLCB1aW50OF90IG1heF9wcmVfZW1waGFzaXMpCit7 CisJaW50IGxhbmU7CisKKwltZW1zZXQoJnRlc3RfZHAsIDAsIHNpemVvZiB0ZXN0X2RwKTsKKwl0 ZXN0X2RwLmRwLmxhbmVfY291bnQgPSBsYW5lczsKKwl0ZXN0X2RwLmxpbmtfYncgPSBsaW5rX2J3 OworCXRlc3RfZHAuc2luayA9IHNpbms7CisJdGVzdF9kcC5tYXhfdm9sdGFnZSA9CisJCW1heF92 b2x0YWdlID4+IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfU0hJRlQ7CisJdGVzdF9kcC5tYXhfcHJl X2VtcGhhc2lzID0KKwkJbWF4X3ByZV9lbXBoYXNpcyA+PiBEUF9UUkFJTl9QUkVfRU1QSEFTSVNf U0hJRlQ7CisKKwl0ZXN0X2RwLmRwLmdldF9saW5rX3N0YXR1cyA9IHRlc3RfZHBfZ2V0X2xpbmtf c3RhdHVzOworCXRlc3RfZHAuZHAuc2V0X2lkbGVfbGlua190cmFpbiA9IHRlc3RfZHBfc2V0X2lk bGVfbGlua190cmFpbjsKKwl0ZXN0X2RwLmRwLnVwZGF0ZV9zaWduYWxfbGV2ZWxzID0gdGVzdF9k cF91cGRhdGVfc2lnbmFsX2xldmVsczsKKwl0ZXN0X2RwLmRwLmNvbXB1dGVfcmF0ZSA9IHRlc3Rf ZHBfY29tcHV0ZV9yYXRlOworCXRlc3RfZHAuZHAucHJvZ3JhbV9saW5rX3RyYWluaW5nX3BhdHRl cm4gPQorCQl0ZXN0X2RwX3Byb2dyYW1fbGlua190cmFpbmluZ19wYXR0ZXJuOworCXRlc3RfZHAu ZHAudm9sdGFnZV9tYXggPSB0ZXN0X2RwX3ZvbHRhZ2VfbWF4OworCXRlc3RfZHAuZHAucHJlX2Vt cGhhc2lzX21heCA9IHRlc3RfZHBfcHJlX2VtcGhhc2lzX21heDsKKwl0ZXN0X2RwLmRwLmRwY2Rf d3JpdGUgPSB0ZXN0X2RwX2RwY2Rfd3JpdGU7CisJdGVzdF9kcC5kcC5zb3VyY2Vfc3VwcG9ydHNf aGJyMiA9IHRlc3RfZHBfc291cmNlX3N1cHBvcnRzX2hicjI7CisKKwlzaW5rX2RldmljZV9yZXNl dChzaW5rLCBsYW5lcywgbGlua19idyk7CisKKwlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKCZ0 ZXN0X2RwLmRwKTsKKwlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oJnRlc3RfZHAuZHApOworCisJ YXNzZXJ0KHNpbmstPmRhdGEuY3JfZG9uZSk7CisJYXNzZXJ0KHNpbmstPmRhdGEuY2hhbm5lbF9l cV9kb25lKTsKKworCWZvciAobGFuZSA9IDA7IGxhbmUgPCB0ZXN0X2RwLmRwLmxhbmVfY291bnQ7 IGxhbmUrKykgeworCQl1aW50OF90IGN1cl92ID0gc2lua19kZXZpY2VfZ2V0X3ZvbHRhZ2Vfc3dp bmcoc2luaywgbGFuZSk7CisJCXVpbnQ4X3QgY3VyX3AgPSBzaW5rX2RldmljZV9nZXRfcHJlX2Vt cGhhc2lzX2xldmVsKHNpbmssIGxhbmUpOworCisJCWFzc2VydChjdXJfdiA9PSB0ZXN0X2RwLm1h eF92b2x0YWdlKTsKKwkJYXNzZXJ0KGN1cl9wID09IHRlc3RfZHAubWF4X3ByZV9lbXBoYXNpcyk7 CisJfQorfQorCitpbnQgdGVzdF9sYW5lc1tdID0geworCTEsIDIsIDQsCit9OworCit1aW50OF90 IHRlc3RfYndbXSA9IHsKKwlEUF9MSU5LX0JXXzFfNjIsCisJRFBfTElOS19CV18yXzcsCit9Owor Cit1aW50OF90IHRlc3RfbWF4X3ZvbHRhZ2VbXSA9IHsKKwlEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X0xFVkVMXzAsCisJRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xLAorCURQX1RSQUlOX1ZP TFRBR0VfU1dJTkdfTEVWRUxfMiwKKwlEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzMsCit9 OworCit1aW50OF90IHRlc3RfbWF4X3ByZV9lbXBoYXNpc1tdID0geworCURQX1RSQUlOX1BSRV9F TVBIX0xFVkVMXzAsCisJRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMSwKKwlEUF9UUkFJTl9QUkVf RU1QSF9MRVZFTF8yLAorCURQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzMsCit9OworCit2b2lkCity dW5fbGlua190cmFpbmluZ190ZXN0cyh2b2lkKQoreworCWludCBsYW5lLCBidywgdm9sdGFnZSwg ZW1waDsKKworCWZvciAobGFuZSA9IDA7IGxhbmUgPCBBUlJBWV9TSVpFKHRlc3RfbGFuZXMpOyBs YW5lKyspCisJZm9yIChidyA9IDA7IGJ3IDwgQVJSQVlfU0laRSh0ZXN0X2J3KTsgYncrKykKKwlm b3IgKHZvbHRhZ2UgPSAwOyB2b2x0YWdlIDwgQVJSQVlfU0laRSh0ZXN0X21heF92b2x0YWdlKTsg dm9sdGFnZSsrKQorCWZvciAoZW1waCA9IDA7IGVtcGggPCBBUlJBWV9TSVpFKHRlc3RfbWF4X3By ZV9lbXBoYXNpcyk7IGVtcGgrKykgeworCQlEUk1fREVCVUdfS01TKCJsJWQtYnclZC12JWQtcGUl ZCIsCisJCQkgICAgICB0ZXN0X2xhbmVzW2xhbmVdLAorCQkJICAgICAgdGVzdF9id1tid10sCisJ CQkgICAgICB0ZXN0X21heF92b2x0YWdlW3ZvbHRhZ2VdLAorCQkJICAgICAgdGVzdF9tYXhfcHJl X2VtcGhhc2lzW2VtcGhdKTsKKwkJZG9fdGVzdCgmc2ltcGxlX3NpbmssCisJCQl0ZXN0X2xhbmVz W2xhbmVdLAorCQkJdGVzdF9id1tid10sCisJCQl0ZXN0X21heF92b2x0YWdlW3ZvbHRhZ2VdLAor CQkJdGVzdF9tYXhfcHJlX2VtcGhhc2lzW2VtcGhdKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS90ZXN0cy90ZXN0cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvdGVz dHMvdGVzdHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTQzNDRhCi0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvdGVzdHMvdGVzdHMuYwpAQCAt MCwwICsxLDcgQEAKKyNpbmNsdWRlICJ0ZXN0cy5oIgorCit2b2lkCitpOTE1X3J1bl91bml0X3Rl c3RzKHZvaWQpCit7CisJcnVuX2xpbmtfdHJhaW5pbmdfdGVzdHMoKTsKK30KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Rlc3RzL3Rlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS90ZXN0cy90ZXN0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwMGI1 MjMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS90ZXN0cy90ZXN0cy5o CkBAIC0wLDAgKzEsNiBAQAorI2lmbmRlZiBfSTkxNV9URVNUU19IXworI2RlZmluZSBfSTkxNV9U RVNUU19IXworCit2b2lkIHJ1bl9saW5rX3RyYWluaW5nX3Rlc3RzKHZvaWQpOworCisjZW5kaWYg LyogX0k5MTVfVEVTVFNfSF8gKi8KLS0gCjIuNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=