From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: [PATCH i-g-t v3 3/3] Make igtrc configuration common, with configurable suspend/resume delay Date: Mon, 3 Jul 2017 15:01:13 +0300 Message-ID: <20170703120113.4506-3-paul.kocialkowski@linux.intel.com> References: <20170703120113.4506-1-paul.kocialkowski@linux.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 ESMTPS id 701B46E1F1 for ; Mon, 3 Jul 2017 12:01:44 +0000 (UTC) In-Reply-To: <20170703120113.4506-1-paul.kocialkowski@linux.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: Lyude List-Id: intel-gfx@lists.freedesktop.org VGhpcyBhZGRzIHN1cHBvcnQgZm9yIGNvbmZpZ3VyYWJsZSBzdXNwZW5kL3Jlc3VtZSBkZWxheSBh bmQgdGFrZXMgdGhlCm9jY2FzaW9uIHRvIG1vdmUgaWd0cmMgY29uZmlndWF0aW9uIGZyb20gaWd0 X2NoYW1lbGl1bSB0byBpZ3RfY29yZS4KVGhpcyB3YXksIHN1c3BlbmQvcmVzdW1lIGRlbGF5IGNv bmZpZ3VyYXRpb24gY2FuIGJlIHVzZWQgZm9yIGFsbCB0ZXN0cy4KClNpZ25lZC1vZmYtYnk6IFBh dWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBsaW51eC5pbnRlbC5jb20+Ci0tLQog bGliL01ha2VmaWxlLmFtICAgICB8ICAyICsrCiBsaWIvaWd0X2F1eC5jICAgICAgIHwgMjcgKysr KysrKysrKysrKysrKystLS0tCiBsaWIvaWd0X2F1eC5oICAgICAgIHwgIDEgKwogbGliL2lndF9j aGFtZWxpdW0uYyB8IDQ5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGxp Yi9pZ3RfY29yZS5jICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbGliL2lndF9jb3JlLmggICAgICB8ICAyICsrCiB0ZXN0cy9N YWtlZmlsZS5hbSAgIHwgIDQgKystLQogdGVzdHMvY2hhbWVsaXVtLmMgICB8IDExICsrKystLS0t LQogdG9vbHMvTWFrZWZpbGUuYW0gICB8ICA0ICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgMTE3IGlu c2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5h bSBiL2xpYi9NYWtlZmlsZS5hbQppbmRleCA5MWU3MmM0NC4uZDRmNDExMjggMTAwNjQ0Ci0tLSBh L2xpYi9NYWtlZmlsZS5hbQorKysgYi9saWIvTWFrZWZpbGUuYW0KQEAgLTQxLDYgKzQxLDcgQEAg QU1fQ0ZMQUdTID0gXAogCSAgICAkKFhNTFJQQ19DRkxBR1MpIFwKIAkgICAgJChMSUJVREVWX0NG TEFHUykgXAogCSAgICAkKFBJWE1BTl9DRkxBR1MpIFwKKwkgICAgJChHTElCX0NGTEFHUykgXAog CSAgICAkKFZBTEdSSU5EX0NGTEFHUykgXAogCSAgICAtRElHVF9TUkNESVI9XCIiJChhYnNfdG9w X3NyY2RpcikvdGVzdHMiXCIgXAogCSAgICAtRElHVF9EQVRBRElSPVwiIiQocGtnZGF0YWRpciki XCIgXApAQCAtNjEsNSArNjIsNiBAQCBsaWJpbnRlbF90b29sc19sYV9MSUJBREQgPSBcCiAJJChY TUxSUENfTElCUykgXAogCSQoTElCVURFVl9MSUJTKSBcCiAJJChQSVhNQU5fTElCUykgXAorCSQo R0xJQl9MSUJTKSBcCiAJLWxtCiAKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfYXV4LmMgYi9saWIvaWd0 X2F1eC5jCmluZGV4IDg4MmRiYTA2Li44NmEyMTNjMiAxMDA2NDQKLS0tIGEvbGliL2lndF9hdXgu YworKysgYi9saWIvaWd0X2F1eC5jCkBAIC03NDgsMTAgKzc0OCw3IEBAIHN0YXRpYyB2b2lkIHN1 c3BlbmRfdmlhX3J0Y3dha2UoZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBzdGF0ZSkKIAogCWlndF9h c3NlcnQoc3RhdGUgPCBTVVNQRU5EX1NUQVRFX05VTSk7CiAKLQlpZiAoYXV0b3Jlc3VtZV9kZWxh eSkKLQkJZGVsYXkgPSBhdXRvcmVzdW1lX2RlbGF5OwotCWVsc2UKLQkJZGVsYXkgPSBzdGF0ZSA9 PSBTVVNQRU5EX1NUQVRFX0RJU0sgPyAzMCA6IDE1OworCWRlbGF5ID0gaWd0X2dldF9hdXRvcmVz dW1lX2RlbGF5KHN0YXRlKTsKIAogCS8qCiAJICogU2tpcCBpZiBydGN3YWtlIHdvdWxkIGZhaWwg Zm9yIGEgcmVhc29uIG5vdCByZWxhdGVkIHRvIHRoZSBrZXJuZWwncwpAQCAtODk5LDYgKzg5Niwy OCBAQCB2b2lkIGlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheShpbnQgZGVsYXlfc2VjcykKIH0KIAog LyoqCisgKiBpZ3RfZ2V0X2F1dG9yZXN1bWVfZGVsYXk6CisgKiBAc3RhdGU6IGFuICNpZ3Rfc3Vz cGVuZF9zdGF0ZSwgdGhlIHRhcmdldCBzdXNwZW5kIHN0YXRlCisgKgorICogUmV0cmlldmVzIGhv dyBsb25nIHdlIHdhaXQgdG8gcmVzdW1lIHRoZSBzeXN0ZW0gYWZ0ZXIgc3VzcGVuZGluZyBpdC4K KyAqIFRoaXMgY2FuIGVpdGhlciBiZSBzZXQgdGhyb3VnaCBpZ3Rfc2V0X2F1dG9yZXN1bWVfZGVs YXkgb3IgYmUgYSBkZWZhdWx0CisgKiB2YWx1ZSB0aGF0IGRlcGVuZHMgb24gdGhlIHN1c3BlbmQg c3RhdGUuCisgKgorICogUmV0dXJuczogVGhlIGF1dG9yZXN1bWUgZGVsYXksIGluIHNlY29uZHMu CisgKi8KK2ludCBpZ3RfZ2V0X2F1dG9yZXN1bWVfZGVsYXkoZW51bSBpZ3Rfc3VzcGVuZF9zdGF0 ZSBzdGF0ZSkKK3sKKwlpbnQgZGVsYXk7CisKKwlpZiAoYXV0b3Jlc3VtZV9kZWxheSkKKwkJZGVs YXkgPSBhdXRvcmVzdW1lX2RlbGF5OworCWVsc2UKKwkJZGVsYXkgPSBzdGF0ZSA9PSBTVVNQRU5E X1NUQVRFX0RJU0sgPyAzMCA6IDE1OworCisJcmV0dXJuIGRlbGF5OworfQorCisvKioKICAqIGln dF9kcm9wX3Jvb3Q6CiAgKgogICogRHJvcCByb290IHByaXZpbGVnZXMgYW5kIG1ha2Ugc3VyZSBp dCBhY3R1YWxseSB3b3JrZWQuIFVzZWZ1bCBmb3IgdGVzdHMKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf YXV4LmggYi9saWIvaWd0X2F1eC5oCmluZGV4IDU0Yjk3MTY0Li40OTlhMTY3OSAxMDA2NDQKLS0t IGEvbGliL2lndF9hdXguaAorKysgYi9saWIvaWd0X2F1eC5oCkBAIC0xOTIsNiArMTkyLDcgQEAg ZW51bSBpZ3Rfc3VzcGVuZF90ZXN0IHsKIHZvaWQgaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1 bWUoZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBzdGF0ZSwKIAkJCQkgICBlbnVtIGlndF9zdXNwZW5k X3Rlc3QgdGVzdCk7CiB2b2lkIGlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheShpbnQgZGVsYXlfc2Vj cyk7CitpbnQgaWd0X2dldF9hdXRvcmVzdW1lX2RlbGF5KGVudW0gaWd0X3N1c3BlbmRfc3RhdGUg c3RhdGUpOwogCiAvKiBkcm9wcGluZyBwcml2aWxlZGdlcyAqLwogdm9pZCBpZ3RfZHJvcF9yb290 KHZvaWQpOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uYyBiL2xpYi9pZ3RfY2hhbWVs aXVtLmMKaW5kZXggNjI0ZjQ0OGIuLmJmZjA4YzBlIDEwMDY0NAotLS0gYS9saWIvaWd0X2NoYW1l bGl1bS5jCisrKyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKQEAgLTUxLDggKzUxLDggQEAKICAqIFtv biB0aGUgQ2hyb21lT1MgcHJvamVjdCBwYWdlXShodHRwczovL3d3dy5jaHJvbWl1bS5vcmcvY2hy b21pdW0tb3MvdGVzdGluZy9jaGFtZWxpdW0pLgogICoKICAqIEluIG9yZGVyIHRvIHJ1biB0ZXN0 cyB1c2luZyB0aGUgQ2hhbWVsaXVtLCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0IGJl Ci0gKiBwcmVzZW50LiAgVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBhIG5vcm1hbCBHbGliIGtl eWZpbGUgKHNpbWlsYXIgdG8gV2luZG93cwotICogSU5JKSBzdHJ1Y3R1cmVkIGxpa2Ugc286Cisg KiBwcmVzZW50LiBJdCBtdXN0IGNvbnRhaW4gQ2hhbWVsaXVtLXNwZWNpZmljIGtleXMgYXMgc2hv d24gd2l0aCB0aGUgZm9sbG93aW5nCisgKiBleGFtcGxlOgogICoKICAqIHxbPCEtLSBsYW5ndWFn ZT0icGxhaW4iIC0tPgogICoJW0NoYW1lbGl1bV0KQEAgLTcyLDggKzcyLDYgQEAKICAqCUNoYW1l bGl1bVBvcnRJRD0zCiAgKiBdfAogICoKLSAqIEJ5IGRlZmF1bHQsIHRoaXMgZmlsZSBpcyBleHBl Y3RlZCB0byBleGlzdCBpbiB+Ly5pZ3RyYyAuIFRoZSBkaXJlY3RvcnkgZm9yCi0gKiB0aGlzIGNh biBiZSBvdmVycmlkZW4gYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgJUlHVF9D T05GSUdfUEFUSC4KICAqLwogCiBzdHJ1Y3QgY2hhbWVsaXVtX2VkaWQgewpAQCAtMTAzNCw3ICsx MDMyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjaGFtZWxpdW1fZ2V0X3BvcnRfdHlwZShzdHJ1 Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sCiB9CiAKIHN0YXRpYyBib29sIGNoYW1lbGl1bV9yZWFk X3BvcnRfbWFwcGluZ3Moc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLAotCQkJCQkgaW50IGRy bV9mZCwgR0tleUZpbGUgKmtleV9maWxlKQorCQkJCQkgaW50IGRybV9mZCkKIHsKIAlkcm1Nb2Rl UmVzICpyZXM7CiAJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOwpAQCAtMTA0NSw3ICsxMDQz LDcgQEAgc3RhdGljIGJvb2wgY2hhbWVsaXVtX3JlYWRfcG9ydF9tYXBwaW5ncyhzdHJ1Y3QgY2hh bWVsaXVtICpjaGFtZWxpdW0sCiAJaW50IHBvcnRfaSwgaSwgajsKIAlib29sIHJldCA9IHRydWU7 CiAKLQlncm91cF9saXN0ID0gZ19rZXlfZmlsZV9nZXRfZ3JvdXBzKGtleV9maWxlLCBOVUxMKTsK Kwlncm91cF9saXN0ID0gZ19rZXlfZmlsZV9nZXRfZ3JvdXBzKGlndF9rZXlfZmlsZSwgTlVMTCk7 CiAKIAkvKiBDb3VudCBob3cgbWFueSBjb25uZWN0b3IgbWFwcGluZ3MgYXJlIHNwZWNpZmllZCBp biB0aGUgY29uZmlnICovCiAJZm9yIChpID0gMDsgZ3JvdXBfbGlzdFtpXSAhPSBOVUxMOyBpKysp IHsKQEAgLTEwNjgsNyArMTA2Niw3IEBAIHN0YXRpYyBib29sIGNoYW1lbGl1bV9yZWFkX3BvcnRf bWFwcGluZ3Moc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLAogCiAJCXBvcnQgPSAmY2hhbWVs aXVtLT5wb3J0c1twb3J0X2krK107CiAJCXBvcnQtPm5hbWUgPSBzdHJkdXAobWFwX25hbWUpOwot CQlwb3J0LT5pZCA9IGdfa2V5X2ZpbGVfZ2V0X2ludGVnZXIoa2V5X2ZpbGUsIGdyb3VwLAorCQlw b3J0LT5pZCA9IGdfa2V5X2ZpbGVfZ2V0X2ludGVnZXIoaWd0X2tleV9maWxlLCBncm91cCwKIAkJ CQkJCSAgIkNoYW1lbGl1bVBvcnRJRCIsCiAJCQkJCQkgICZlcnJvcik7CiAJCWlmICghcG9ydC0+ aWQpIHsKQEAgLTExMjUsNDcgKzExMjMsMjIgQEAgb3V0OgogCiBzdGF0aWMgYm9vbCBjaGFtZWxp dW1fcmVhZF9jb25maWcoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBpbnQgZHJtX2ZkKQog ewotCUdLZXlGaWxlICprZXlfZmlsZSA9IGdfa2V5X2ZpbGVfbmV3KCk7CiAJR0Vycm9yICplcnJv ciA9IE5VTEw7Ci0JY2hhciAqa2V5X2ZpbGVfbG9jLCAqa2V5X2ZpbGVfZW52OwotCWludCByYzsK LQlib29sIHJldCA9IHRydWU7CiAKLQlrZXlfZmlsZV9lbnYgPSBnZXRlbnYoIklHVF9DT05GSUdf UEFUSCIpOwotCWlmIChrZXlfZmlsZV9lbnYpIHsKLQkJa2V5X2ZpbGVfbG9jID0ga2V5X2ZpbGVf ZW52OwotCX0gZWxzZSB7Ci0JCWtleV9maWxlX2xvYyA9IG1hbGxvYygxMDApOwotCQlzbnByaW50 ZihrZXlfZmlsZV9sb2MsIDEwMCwgIiVzLy5pZ3RyYyIsIGdfZ2V0X2hvbWVfZGlyKCkpOworCWlm ICghaWd0X2tleV9maWxlKSB7CisJCWlndF93YXJuKCJObyBjb25maWd1cmF0aW9uIGZpbGUgYXZh aWxhYmxlIGZvciBjaGFtZWxpdW1cbiIpOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcmMgPSBn X2tleV9maWxlX2xvYWRfZnJvbV9maWxlKGtleV9maWxlLCBrZXlfZmlsZV9sb2MsCi0JCQkJICAg ICAgIEdfS0VZX0ZJTEVfTk9ORSwgJmVycm9yKTsKLQlpZiAoIXJjKSB7Ci0JCWlndF93YXJuKCJG YWlsZWQgdG8gcmVhZCBjaGFtZWxpdW0gY29uZmlndXJhdGlvbiBmaWxlOiAlc1xuIiwKLQkJCSBl cnJvci0+bWVzc2FnZSk7Ci0JCXJldCA9IGZhbHNlOwotCQlnb3RvIG91dDsKLQl9Ci0KLQljaGFt ZWxpdW0tPnVybCA9IGdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhrZXlfZmlsZSwgIkNoYW1lbGl1bSIs ICJVUkwiLAorCWNoYW1lbGl1bS0+dXJsID0gZ19rZXlfZmlsZV9nZXRfc3RyaW5nKGlndF9rZXlf ZmlsZSwgIkNoYW1lbGl1bSIsICJVUkwiLAogCQkJCQkgICAgICAgJmVycm9yKTsKIAlpZiAoIWNo YW1lbGl1bS0+dXJsKSB7CiAJCWlndF93YXJuKCJDb3VsZG4ndCByZWFkIGNoYW1lbGl1bSBVUkwg ZnJvbSBjb25maWcgZmlsZTogJXNcbiIsCiAJCQkgZXJyb3ItPm1lc3NhZ2UpOwotCQlyZXQgPSBm YWxzZTsKLQkJZ290byBvdXQ7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlyZXQgPSBjaGFtZWxp dW1fcmVhZF9wb3J0X21hcHBpbmdzKGNoYW1lbGl1bSwgZHJtX2ZkLCBrZXlfZmlsZSk7Ci0KLW91 dDoKLQlnX2tleV9maWxlX2ZyZWUoa2V5X2ZpbGUpOwotCi0JaWYgKCFrZXlfZmlsZV9lbnYpCi0J CWZyZWUoa2V5X2ZpbGVfbG9jKTsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIGNoYW1lbGl1bV9y ZWFkX3BvcnRfbWFwcGluZ3MoY2hhbWVsaXVtLCBkcm1fZmQpOwogfQogCiAvKioKZGlmZiAtLWdp dCBhL2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKaW5kZXggOWE1ZWQ0MGUuLjc2MDcy ODQ1IDEwMDY0NAotLS0gYS9saWIvaWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAt NTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgog I2luY2x1ZGUgPHV3aWxkbWF0L3V3aWxkbWF0Lmg+CisjaW5jbHVkZSA8Z2xpYi5oPgogCiAjaW5j bHVkZSAiZHJtdGVzdC5oIgogI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKQEAgLTIyNSw2ICsy MjYsMjMgQEAKICAqIC0gJ2Jhc2ljKixhZHZhbmNlZConIG1hdGNoIGFueSBzdWJ0ZXN0IHN0YXJ0 aW5nIGJhc2ljIG9yIGFkdmFuY2VkCiAgKiAtICcqLCFiYXNpYyonIG1hdGNoIGFueSBzdWJ0ZXN0 IG5vdCBzdGFydGluZyBiYXNpYwogICogLSAnYmFzaWMqLCFiYXNpYy1yZW5kZXIqJyBtYXRjaCBh bnkgc3VidGVzdCBzdGFydGluZyBiYXNpYyBidXQgbm90IHN0YXJ0aW5nIGJhc2ljLXJlbmRlcgor ICoKKyAqICMgQ29uZmlndXJhdGlvbgorICoKKyAqIFNvbWUgb2YgSUdUJ3MgYmVoYXZpb3IgY2Fu IGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCBhIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAqIEJ5IGRlZmF1 bHQsIHRoaXMgZmlsZSBpcyBleHBlY3RlZCB0byBleGlzdCBpbiB+Ly5pZ3RyYyAuIFRoZSBkaXJl Y3RvcnkgZm9yCisgKiB0aGlzIGNhbiBiZSBvdmVycmlkZW4gYnkgc2V0dGluZyB0aGUgZW52aXJv bm1lbnQgdmFyaWFibGUgJUlHVF9DT05GSUdfUEFUSC4KKyAqIEFuIGV4YW1wbGUgY29uZmlndXJh dGlvbiBmb2xsb3dzOgorICoKKyAqIHxbPCEtLSBsYW5ndWFnZT0icGxhaW4iIC0tPgorICoJIyBU aGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgdXNlZCBmb3IgY29uZmlndXJpbmcgdGhlIERldmljZSBV bmRlciBUZXN0LgorICoJIyBJdCBpcyBub3QgbWFuZGF0b3J5IGFuZCBhbGxvd3Mgb3ZlcnJpZGlu ZyBkZWZhdWx0IHZhbHVlcy4KKyAqCVtEVVRdCisgKglTdXNwZW5kUmVzdW1lRGVsYXk9MTAKKyAq IF18CisgKgorICogU29tZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWF5IGJlIHVz ZWQgYnkgc3BlY2lmaWMgcGFydHMgb2YgSUdULAorICogc3VjaCBhcyB0aG9zZSByZWxhdGVkIHRv IENoYW1lbGl1bSBzdXBwb3J0LgogICovCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZXhpdF9oYW5k bGVyX2NvdW50OwpAQCAtMjcxLDYgKzI4OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgewogfSBsb2dfYnVm ZmVyOwogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBsb2dfYnVmZmVyX211dGV4ID0gUFRIUkVBRF9N VVRFWF9JTklUSUFMSVpFUjsKIAorR0tleUZpbGUgKmlndF9rZXlfZmlsZTsKKwogY29uc3QgY2hh ciAqaWd0X3Rlc3RfbmFtZSh2b2lkKQogewogCXJldHVybiBjb21tYW5kX3N0cjsKQEAgLTU5Myw2 ICs2MTMsMjUgQEAgc3RhdGljIHZvaWQgb29tX2FkanVzdF9mb3JfZG9vbSh2b2lkKQogCiB9CiAK K3N0YXRpYyBpbnQgY29uZmlnX3BhcnNlKHZvaWQpCit7CisJR0Vycm9yICplcnJvciA9IE5VTEw7 CisJaW50IHJjOworCisJaWYgKCFpZ3Rfa2V5X2ZpbGUpCisJCXJldHVybiAwOworCisJcmMgPSBn X2tleV9maWxlX2dldF9pbnRlZ2VyKGlndF9rZXlfZmlsZSwgIkRVVCIsICJTdXNwZW5kUmVzdW1l RGVsYXkiLAorCQkJCSAgICAmZXJyb3IpOworCWlmIChlcnJvciA9PSBHX0tFWV9GSUxFX0VSUk9S X0lOVkFMSURfVkFMVUUpCisJCXJldHVybiAtMjsKKworCWlmIChyYyAhPSAwKQorCQlpZ3Rfc2V0 X2F1dG9yZXN1bWVfZGVsYXkocmMpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgY29t bW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJICAgICAgIGNvbnN0IGNoYXIgKmV4 dHJhX3Nob3J0X29wdHMsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpleHRyYV9sb25n X29wdHMsCkBAIC02MTYsNiArNjU1LDkgQEAgc3RhdGljIGludCBjb21tb25faW5pdChpbnQgKmFy Z2MsIGNoYXIgKiphcmd2LAogCWludCBleHRyYV9vcHRfY291bnQ7CiAJaW50IGFsbF9vcHRfY291 bnQ7CiAJaW50IHJldCA9IDA7CisJY2hhciAqa2V5X2ZpbGVfbG9jID0gTlVMTDsKKwljaGFyICpr ZXlfZmlsZV9lbnYgPSBOVUxMOworCUdFcnJvciAqZXJyb3IgPSBOVUxMOwogCWNvbnN0IGNoYXIg KmVudjsKIAogCWlmICghaXNhdHR5KFNURE9VVF9GSUxFTk8pIHx8IGdldGVudigiSUdUX1BMQUlO X09VVFBVVCIpKQpAQCAtNzM3LDcgKzc3OSwzMSBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGlu dCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCX0KIAl9CiAKKwlrZXlfZmlsZV9lbnYgPSBnZXRlbnYo IklHVF9DT05GSUdfUEFUSCIpOworCWlmIChrZXlfZmlsZV9lbnYpIHsKKwkJa2V5X2ZpbGVfbG9j ID0ga2V5X2ZpbGVfZW52OworCX0gZWxzZSB7CisJCWtleV9maWxlX2xvYyA9IG1hbGxvYygxMDAp OworCQlzbnByaW50ZihrZXlfZmlsZV9sb2MsIDEwMCwgIiVzLy5pZ3RyYyIsIGdfZ2V0X2hvbWVf ZGlyKCkpOworCX0KKworCWlndF9rZXlfZmlsZSA9IGdfa2V5X2ZpbGVfbmV3KCk7CisJcmV0ID0g Z19rZXlfZmlsZV9sb2FkX2Zyb21fZmlsZShpZ3Rfa2V5X2ZpbGUsIGtleV9maWxlX2xvYywKKwkJ CQkJR19LRVlfRklMRV9OT05FLCAmZXJyb3IpOworCWlmIChlcnJvciA9PSBHX0tFWV9GSUxFX0VS Uk9SKSB7CisJCWdfa2V5X2ZpbGVfZnJlZShpZ3Rfa2V5X2ZpbGUpOworCQlpZ3Rfa2V5X2ZpbGUg PSBOVUxMOworCQlyZXQgPSAtMjsKKworCQlnb3RvIG91dDsKKwl9CisKKwlyZXQgPSBjb25maWdf cGFyc2UoKTsKKwogb3V0OgorCWlmICgha2V5X2ZpbGVfZW52ICYmIGtleV9maWxlX2xvYykKKwkJ ZnJlZShrZXlfZmlsZV9sb2MpOworCiAJZnJlZShzaG9ydF9vcHRzKTsKIAlmcmVlKGNvbWJpbmVk X29wdHMpOwogCkBAIC0xMzQ1LDYgKzE0MTEsOSBAQCB2b2lkIGlndF9leGl0KHZvaWQpCiB7CiAJ aWd0X2V4aXRfY2FsbGVkID0gdHJ1ZTsKIAorCWlmIChpZ3Rfa2V5X2ZpbGUpCisJCWdfa2V5X2Zp bGVfZnJlZShpZ3Rfa2V5X2ZpbGUpOworCiAJaWYgKHJ1bl9zaW5nbGVfc3VidGVzdCAmJiAhcnVu X3NpbmdsZV9zdWJ0ZXN0X2ZvdW5kKSB7CiAJCWlndF93YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVz XG4iLCBydW5fc2luZ2xlX3N1YnRlc3QpOwogCQlleGl0KElHVF9FWElUX0lOVkFMSUQpOwpkaWZm IC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAppbmRleCBhMmVkOTcyMC4u MDczOWNhODMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29yZS5oCisrKyBiL2xpYi9pZ3RfY29yZS5o CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8Z2V0b3B0 Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgogCiAjaWZuZGVmIElH VF9MT0dfRE9NQUlOCiAjZGVmaW5lIElHVF9MT0dfRE9NQUlOIChOVUxMKQpAQCAtNDgsNiArNDks NyBAQAogCiBleHRlcm4gY29uc3QgY2hhciogX19pZ3RfdGVzdF9kZXNjcmlwdGlvbiBfX2F0dHJp YnV0ZV9fKCh3ZWFrKSk7CiBleHRlcm4gYm9vbCBfX2lndF9wbGFpbl9vdXRwdXQ7CitleHRlcm4g R0tleUZpbGUgKmlndF9rZXlfZmlsZTsKIAogCiAvKioKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2Vm aWxlLmFtIGIvdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggYjA1MTM2NGMuLmY5ZDExZTZjIDEwMDY0 NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtNzIs OSArNzIsOSBAQCBBTV9DRkxBR1MgPSAkKERSTV9DRkxBR1MpICQoQ1dBUk5GTEFHUykgLVduby11 bnVzZWQtcmVzdWx0ICQoREVCVUdfQ0ZMQUdTKVwKIAkkKExJQlVOV0lORF9DRkxBR1MpICQoV0VS Uk9SX0NGTEFHUykgXAogCSQoTlVMTCkKIAotTERBREQgPSAuLi9saWIvbGliaW50ZWxfdG9vbHMu bGEgJChHTElCX0xJQlMpICQoWE1MUlBDX0xJQlMpCitMREFERCA9IC4uL2xpYi9saWJpbnRlbF90 b29scy5sYSAkKFhNTFJQQ19MSUJTKQogCi1BTV9DRkxBR1MgKz0gJChDQUlST19DRkxBR1MpICQo TElCVURFVl9DRkxBR1MpICQoR0xJQl9DRkxBR1MpCitBTV9DRkxBR1MgKz0gJChDQUlST19DRkxB R1MpICQoTElCVURFVl9DRkxBR1MpCiBBTV9MREZMQUdTID0gLVdsLC0tYXMtbmVlZGVkCiAKIGRy bV9pbXBvcnRfZXhwb3J0X0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKFRIUkVBRF9DRkxBR1MpCmRp ZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0uYyBiL3Rlc3RzL2NoYW1lbGl1bS5jCmluZGV4IDYy NDdkNTM3Li5lMzA2NzY2NCAxMDA2NDQKLS0tIGEvdGVzdHMvY2hhbWVsaXVtLmMKKysrIGIvdGVz dHMvY2hhbWVsaXVtLmMKQEAgLTQyLDcgKzQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBkYXRh X3Q7CiAKICNkZWZpbmUgSE9UUExVR19USU1FT1VUIDIwIC8qIHNlY29uZHMgKi8KLSNkZWZpbmUg U1VTUEVORF9SRVNVTUVfREVMQVkgMjAgLyogc2Vjb25kcyAqLwogCiAjZGVmaW5lIEhQRF9TVE9S TV9QVUxTRV9JTlRFUlZBTF9EUCAxMDAgLyogbXMgKi8KICNkZWZpbmUgSFBEX1NUT1JNX1BVTFNF X0lOVEVSVkFMX0hETUkgMjAwIC8qIG1zICovCkBAIC0yMjUsMjEgKzIyNCwyMSBAQCB0cnlfc3Vz cGVuZF9yZXN1bWVfaHBkKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0 LAogCQkgICAgICAgZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBzdGF0ZSwgZW51bSBpZ3Rfc3VzcGVu ZF90ZXN0IHRlc3QsCiAJCSAgICAgICBzdHJ1Y3QgdWRldl9tb25pdG9yICptb24sIGJvb2wgY29u bmVjdGVkKQogeworCWludCBkZWxheTsKIAlpbnQgcDsKIAotCWlndF9zZXRfYXV0b3Jlc3VtZV9k ZWxheShTVVNQRU5EX1JFU1VNRV9ERUxBWSk7CiAJaWd0X2ZsdXNoX2hvdHBsdWdzKG1vbik7CiAK KwlkZWxheSA9IGlndF9nZXRfYXV0b3Jlc3VtZV9kZWxheShzdGF0ZSkgKiAxMDAwIC8gMjsKKwog CWlmIChwb3J0KSB7Ci0JCWNoYW1lbGl1bV9zY2hlZHVsZV9ocGRfdG9nZ2xlKGRhdGEtPmNoYW1l bGl1bSwgcG9ydCwKLQkJCQkJICAgICAgU1VTUEVORF9SRVNVTUVfREVMQVkgKiAxMDAwIC8gMiwK KwkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90b2dnbGUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCBk ZWxheSwKIAkJCQkJICAgICAgIWNvbm5lY3RlZCk7CiAJfSBlbHNlIHsKIAkJZm9yIChwID0gMDsg cCA8IGRhdGEtPnBvcnRfY291bnQ7IHArKykgewogCQkJcG9ydCA9IGRhdGEtPnBvcnRzW3BdOwog CQkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90b2dnbGUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAot CQkJCQkJICAgICAgU1VTUEVORF9SRVNVTUVfREVMQVkgKiAxMDAwIC8gMiwKLQkJCQkJCSAgICAg ICFjb25uZWN0ZWQpOworCQkJCQkJICAgICAgZGVsYXksICFjb25uZWN0ZWQpOwogCQl9CiAKIAkJ cG9ydCA9IE5VTEw7CmRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5hbSBiL3Rvb2xzL01ha2Vm aWxlLmFtCmluZGV4IDE4YTY3ZWZiLi5jNDBlNzVjNyAxMDA2NDQKLS0tIGEvdG9vbHMvTWFrZWZp bGUuYW0KKysrIGIvdG9vbHMvTWFrZWZpbGUuYW0KQEAgLTksOCArOSw4IEBAIGVuZGlmCiAKIGlm IEhBVkVfVURFVgogYmluX1BST0dSQU1TICs9IGludGVsX2RwX2NvbXBsaWFuY2UKLWludGVsX2Rw X2NvbXBsaWFuY2VfQ0ZMQUdTID0gJChBTV9DRkxBR1MpICQoR0xJQl9DRkxBR1MpCi1pbnRlbF9k cF9jb21wbGlhbmNlX0xEQUREID0gJCh0b3BfYnVpbGRkaXIpL2xpYi9saWJpbnRlbF90b29scy5s YSAkKEdMSUJfTElCUykKK2ludGVsX2RwX2NvbXBsaWFuY2VfQ0ZMQUdTID0gJChBTV9DRkxBR1Mp CitpbnRlbF9kcF9jb21wbGlhbmNlX0xEQUREID0gJCh0b3BfYnVpbGRkaXIpL2xpYi9saWJpbnRl bF90b29scy5sYQogZW5kaWYKIAogU1VCRElSUyA9IG51bGxfc3RhdGVfZ2VuIHJlZ2lzdGVycwot LSAKMi4xMy4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK