From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: [PATCH i-g-t v4 3/3] Make igtrc configuration common, with configurable suspend/resume delay Date: Tue, 4 Jul 2017 16:33:19 +0300 Message-ID: <20170704133319.5130-3-paul.kocialkowski@linux.intel.com> References: <20170704133319.5130-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 15E846E31E for ; Tue, 4 Jul 2017 13:33:28 +0000 (UTC) In-Reply-To: <20170704133319.5130-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 dCBhL2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKaW5kZXggOWE1ZWQ0MGUuLjFiYTc5 MzYxIDEwMDY0NAotLS0gYS9saWIvaWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAt 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 RGVsYXkiLAorCQkJCSAgICAmZXJyb3IpOworCWlmIChlcnJvciAmJiBlcnJvci0+Y29kZSA9PSBH X0tFWV9GSUxFX0VSUk9SX0lOVkFMSURfVkFMVUUpCisJCXJldHVybiAtMjsKKworCWlmIChyYyAh PSAwKQorCQlpZ3Rfc2V0X2F1dG9yZXN1bWVfZGVsYXkocmMpOworCisJcmV0dXJuIDA7Cit9CisK IHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJICAgICAg IGNvbnN0IGNoYXIgKmV4dHJhX3Nob3J0X29wdHMsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0 aW9uICpleHRyYV9sb25nX29wdHMsCkBAIC02MTYsNiArNjU1LDkgQEAgc3RhdGljIGludCBjb21t b25faW5pdChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LAogCWludCBleHRyYV9vcHRfY291bnQ7CiAJ aW50IGFsbF9vcHRfY291bnQ7CiAJaW50IHJldCA9IDA7CisJY2hhciAqa2V5X2ZpbGVfbG9jID0g TlVMTDsKKwljaGFyICprZXlfZmlsZV9lbnYgPSBOVUxMOworCUdFcnJvciAqZXJyb3IgPSBOVUxM OwogCWNvbnN0IGNoYXIgKmVudjsKIAogCWlmICghaXNhdHR5KFNURE9VVF9GSUxFTk8pIHx8IGdl dGVudigiSUdUX1BMQUlOX09VVFBVVCIpKQpAQCAtNzM3LDcgKzc3OSwzMSBAQCBzdGF0aWMgaW50 IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCX0KIAl9CiAKKwlrZXlfZmls ZV9lbnYgPSBnZXRlbnYoIklHVF9DT05GSUdfUEFUSCIpOworCWlmIChrZXlfZmlsZV9lbnYpIHsK KwkJa2V5X2ZpbGVfbG9jID0ga2V5X2ZpbGVfZW52OworCX0gZWxzZSB7CisJCWtleV9maWxlX2xv YyA9IG1hbGxvYygxMDApOworCQlzbnByaW50ZihrZXlfZmlsZV9sb2MsIDEwMCwgIiVzLy5pZ3Ry YyIsIGdfZ2V0X2hvbWVfZGlyKCkpOworCX0KKworCWlndF9rZXlfZmlsZSA9IGdfa2V5X2ZpbGVf bmV3KCk7CisJcmV0ID0gZ19rZXlfZmlsZV9sb2FkX2Zyb21fZmlsZShpZ3Rfa2V5X2ZpbGUsIGtl eV9maWxlX2xvYywKKwkJCQkJR19LRVlfRklMRV9OT05FLCAmZXJyb3IpOworCWlmIChlcnJvciAm JiBlcnJvci0+Y29kZSA9PSBHX0tFWV9GSUxFX0VSUk9SKSB7CisJCWdfa2V5X2ZpbGVfZnJlZShp Z3Rfa2V5X2ZpbGUpOworCQlpZ3Rfa2V5X2ZpbGUgPSBOVUxMOworCQlyZXQgPSAtMjsKKworCQln b3RvIG91dDsKKwl9CisKKwlyZXQgPSBjb25maWdfcGFyc2UoKTsKKwogb3V0OgorCWlmICgha2V5 X2ZpbGVfZW52ICYmIGtleV9maWxlX2xvYykKKwkJZnJlZShrZXlfZmlsZV9sb2MpOworCiAJZnJl ZShzaG9ydF9vcHRzKTsKIAlmcmVlKGNvbWJpbmVkX29wdHMpOwogCkBAIC0xMzQ1LDYgKzE0MTEs OSBAQCB2b2lkIGlndF9leGl0KHZvaWQpCiB7CiAJaWd0X2V4aXRfY2FsbGVkID0gdHJ1ZTsKIAor CWlmIChpZ3Rfa2V5X2ZpbGUpCisJCWdfa2V5X2ZpbGVfZnJlZShpZ3Rfa2V5X2ZpbGUpOworCiAJ aWYgKHJ1bl9zaW5nbGVfc3VidGVzdCAmJiAhcnVuX3NpbmdsZV9zdWJ0ZXN0X2ZvdW5kKSB7CiAJ CWlndF93YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVzXG4iLCBydW5fc2luZ2xlX3N1YnRlc3QpOwog CQlleGl0KElHVF9FWElUX0lOVkFMSUQpOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9s aWIvaWd0X2NvcmUuaAppbmRleCBhMmVkOTcyMC4uMDczOWNhODMgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfY29yZS5oCisrKyBiL2xpYi9pZ3RfY29yZS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk ZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Cisj aW5jbHVkZSA8Z2xpYi5oPgogCiAjaWZuZGVmIElHVF9MT0dfRE9NQUlOCiAjZGVmaW5lIElHVF9M T0dfRE9NQUlOIChOVUxMKQpAQCAtNDgsNiArNDksNyBAQAogCiBleHRlcm4gY29uc3QgY2hhciog X19pZ3RfdGVzdF9kZXNjcmlwdGlvbiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7CiBleHRlcm4gYm9v bCBfX2lndF9wbGFpbl9vdXRwdXQ7CitleHRlcm4gR0tleUZpbGUgKmlndF9rZXlfZmlsZTsKIAog CiAvKioKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLmFtIGIvdGVzdHMvTWFrZWZpbGUuYW0K aW5kZXggYjA1MTM2NGMuLmY5ZDExZTZjIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5hbQor KysgYi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtNzIsOSArNzIsOSBAQCBBTV9DRkxBR1MgPSAkKERS TV9DRkxBR1MpICQoQ1dBUk5GTEFHUykgLVduby11bnVzZWQtcmVzdWx0ICQoREVCVUdfQ0ZMQUdT KVwKIAkkKExJQlVOV0lORF9DRkxBR1MpICQoV0VSUk9SX0NGTEFHUykgXAogCSQoTlVMTCkKIAot TERBREQgPSAuLi9saWIvbGliaW50ZWxfdG9vbHMubGEgJChHTElCX0xJQlMpICQoWE1MUlBDX0xJ QlMpCitMREFERCA9IC4uL2xpYi9saWJpbnRlbF90b29scy5sYSAkKFhNTFJQQ19MSUJTKQogCi1B TV9DRkxBR1MgKz0gJChDQUlST19DRkxBR1MpICQoTElCVURFVl9DRkxBR1MpICQoR0xJQl9DRkxB R1MpCitBTV9DRkxBR1MgKz0gJChDQUlST19DRkxBR1MpICQoTElCVURFVl9DRkxBR1MpCiBBTV9M REZMQUdTID0gLVdsLC0tYXMtbmVlZGVkCiAKIGRybV9pbXBvcnRfZXhwb3J0X0NGTEFHUyA9ICQo QU1fQ0ZMQUdTKSAkKFRIUkVBRF9DRkxBR1MpCmRpZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0u YyBiL3Rlc3RzL2NoYW1lbGl1bS5jCmluZGV4IDYyNDdkNTM3Li5lMzA2NzY2NCAxMDA2NDQKLS0t IGEvdGVzdHMvY2hhbWVsaXVtLmMKKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKQEAgLTQyLDcgKzQy LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBkYXRhX3Q7CiAKICNkZWZpbmUgSE9UUExVR19USU1F T1VUIDIwIC8qIHNlY29uZHMgKi8KLSNkZWZpbmUgU1VTUEVORF9SRVNVTUVfREVMQVkgMjAgLyog c2Vjb25kcyAqLwogCiAjZGVmaW5lIEhQRF9TVE9STV9QVUxTRV9JTlRFUlZBTF9EUCAxMDAgLyog bXMgKi8KICNkZWZpbmUgSFBEX1NUT1JNX1BVTFNFX0lOVEVSVkFMX0hETUkgMjAwIC8qIG1zICov CkBAIC0yMjUsMjEgKzIyNCwyMSBAQCB0cnlfc3VzcGVuZF9yZXN1bWVfaHBkKGRhdGFfdCAqZGF0 YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAogCQkgICAgICAgZW51bSBpZ3Rfc3VzcGVu ZF9zdGF0ZSBzdGF0ZSwgZW51bSBpZ3Rfc3VzcGVuZF90ZXN0IHRlc3QsCiAJCSAgICAgICBzdHJ1 Y3QgdWRldl9tb25pdG9yICptb24sIGJvb2wgY29ubmVjdGVkKQogeworCWludCBkZWxheTsKIAlp bnQgcDsKIAotCWlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheShTVVNQRU5EX1JFU1VNRV9ERUxBWSk7 CiAJaWd0X2ZsdXNoX2hvdHBsdWdzKG1vbik7CiAKKwlkZWxheSA9IGlndF9nZXRfYXV0b3Jlc3Vt ZV9kZWxheShzdGF0ZSkgKiAxMDAwIC8gMjsKKwogCWlmIChwb3J0KSB7Ci0JCWNoYW1lbGl1bV9z Y2hlZHVsZV9ocGRfdG9nZ2xlKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwKLQkJCQkJICAgICAgU1VT UEVORF9SRVNVTUVfREVMQVkgKiAxMDAwIC8gMiwKKwkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90 b2dnbGUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCBkZWxheSwKIAkJCQkJICAgICAgIWNvbm5lY3Rl ZCk7CiAJfSBlbHNlIHsKIAkJZm9yIChwID0gMDsgcCA8IGRhdGEtPnBvcnRfY291bnQ7IHArKykg ewogCQkJcG9ydCA9IGRhdGEtPnBvcnRzW3BdOwogCQkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90 b2dnbGUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAotCQkJCQkJICAgICAgU1VTUEVORF9SRVNVTUVf REVMQVkgKiAxMDAwIC8gMiwKLQkJCQkJCSAgICAgICFjb25uZWN0ZWQpOworCQkJCQkJICAgICAg ZGVsYXksICFjb25uZWN0ZWQpOwogCQl9CiAKIAkJcG9ydCA9IE5VTEw7CmRpZmYgLS1naXQgYS90 b29scy9NYWtlZmlsZS5hbSBiL3Rvb2xzL01ha2VmaWxlLmFtCmluZGV4IDE4YTY3ZWZiLi5jNDBl NzVjNyAxMDA2NDQKLS0tIGEvdG9vbHMvTWFrZWZpbGUuYW0KKysrIGIvdG9vbHMvTWFrZWZpbGUu YW0KQEAgLTksOCArOSw4IEBAIGVuZGlmCiAKIGlmIEhBVkVfVURFVgogYmluX1BST0dSQU1TICs9 IGludGVsX2RwX2NvbXBsaWFuY2UKLWludGVsX2RwX2NvbXBsaWFuY2VfQ0ZMQUdTID0gJChBTV9D RkxBR1MpICQoR0xJQl9DRkxBR1MpCi1pbnRlbF9kcF9jb21wbGlhbmNlX0xEQUREID0gJCh0b3Bf YnVpbGRkaXIpL2xpYi9saWJpbnRlbF90b29scy5sYSAkKEdMSUJfTElCUykKK2ludGVsX2RwX2Nv bXBsaWFuY2VfQ0ZMQUdTID0gJChBTV9DRkxBR1MpCitpbnRlbF9kcF9jb21wbGlhbmNlX0xEQURE ID0gJCh0b3BfYnVpbGRkaXIpL2xpYi9saWJpbnRlbF90b29scy5sYQogZW5kaWYKIAogU1VCRElS UyA9IG51bGxfc3RhdGVfZ2VuIHJlZ2lzdGVycwotLSAKMi4xMy4yCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK