From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH i-g-t v2 7/7] Make igtrc configuration common, with configurable suspend/resume delay Date: Tue, 27 Jun 2017 17:11:41 -0400 Message-ID: <1498597901.14811.1.camel@redhat.com> References: <20170627105311.28975-1-paul.kocialkowski@linux.intel.com> <20170627105311.28975-7-paul.kocialkowski@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 52CC76E0AA for ; Tue, 27 Jun 2017 21:11:45 +0000 (UTC) In-Reply-To: <20170627105311.28975-7-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: Paul Kocialkowski , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgoKT24gVHVlLCAyMDE3LTA2LTI3IGF0IDEzOjUzICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3 cm90ZToKPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgY29uZmlndXJhYmxlIHN1c3BlbmQvcmVzdW1l IGRlbGF5IGFuZCB0YWtlcyB0aGUKPiBvY2Nhc2lvbiB0byBtb3ZlIGlndHJjIGNvbmZpZ3VhdGlv biBmcm9tIGlndF9jaGFtZWxpdW0gdG8gaWd0X2NvcmUuCj4gVGhpcyB3YXksIHN1c3BlbmQvcmVz dW1lIGRlbGF5IGNvbmZpZ3VyYXRpb24gY2FuIGJlIHVzZWQgZm9yIGFsbAo+IHRlc3RzLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBsaW51 eC5pbnRlbC5jb20+Cj4gLS0tCj4gwqBsaWIvTWFrZWZpbGUuYW3CoMKgwqDCoMKgfMKgwqAyICsr Cj4gwqBsaWIvaWd0X2F1eC5jwqDCoMKgwqDCoMKgwqB8IDI3ICsrKysrKysrKysrKysrKysrKy0t LS0KPiDCoGxpYi9pZ3RfYXV4LmjCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBsaWIvaWd0X2No YW1lbGl1bS5jIHwgNDkgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ IMKgbGliL2lndF9jb3JlLmPCoMKgwqDCoMKgwqB8IDY0Cj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiDCoGxpYi9pZ3RfY29yZS5owqDCoMKg wqDCoMKgfMKgwqAyICsrCj4gwqB0ZXN0cy9NYWtlZmlsZS5hbcKgwqDCoHzCoMKgNCArKy0tCj4g wqB0ZXN0cy9jaGFtZWxpdW0uY8KgwqDCoHwgMTEgKysrKystLS0tCj4gwqB0b29scy9NYWtlZmls ZS5hbcKgwqDCoHzCoMKgNCArKy0tCj4gwqA5IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25z KCspLCA1MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLmFtIGIv bGliL01ha2VmaWxlLmFtCj4gaW5kZXggOTFlNzJjNDQuLmQ0ZjQxMTI4IDEwMDY0NAo+IC0tLSBh L2xpYi9NYWtlZmlsZS5hbQo+ICsrKyBiL2xpYi9NYWtlZmlsZS5hbQo+IEBAIC00MSw2ICs0MSw3 IEBAIEFNX0NGTEFHUyA9IFwKPiDCoAnCoMKgwqDCoCQoWE1MUlBDX0NGTEFHUykgXAo+IMKgCcKg wqDCoMKgJChMSUJVREVWX0NGTEFHUykgXAo+IMKgCcKgwqDCoMKgJChQSVhNQU5fQ0ZMQUdTKSBc Cj4gKwnCoMKgwqDCoCQoR0xJQl9DRkxBR1MpIFwKPiDCoAnCoMKgwqDCoCQoVkFMR1JJTkRfQ0ZM QUdTKSBcCj4gwqAJwqDCoMKgwqAtRElHVF9TUkNESVI9XCIiJChhYnNfdG9wX3NyY2RpcikvdGVz dHMiXCIgXAo+IMKgCcKgwqDCoMKgLURJR1RfREFUQURJUj1cIiIkKHBrZ2RhdGFkaXIpIlwiIFwK PiBAQCAtNjEsNSArNjIsNiBAQCBsaWJpbnRlbF90b29sc19sYV9MSUJBREQgPSBcCj4gwqAJJChY TUxSUENfTElCUykgXAo+IMKgCSQoTElCVURFVl9MSUJTKSBcCj4gwqAJJChQSVhNQU5fTElCUykg XAo+ICsJJChHTElCX0xJQlMpIFwKPiDCoAktbG0KPiDCoAo+IGRpZmYgLS1naXQgYS9saWIvaWd0 X2F1eC5jIGIvbGliL2lndF9hdXguYwo+IGluZGV4IDg4MmRiYTA2Li44NmEyMTNjMiAxMDA2NDQK PiAtLS0gYS9saWIvaWd0X2F1eC5jCj4gKysrIGIvbGliL2lndF9hdXguYwo+IEBAIC03NDgsMTAg Kzc0OCw3IEBAIHN0YXRpYyB2b2lkIHN1c3BlbmRfdmlhX3J0Y3dha2UoZW51bQo+IGlndF9zdXNw ZW5kX3N0YXRlIHN0YXRlKQo+IMKgCj4gwqAJaWd0X2Fzc2VydChzdGF0ZSA8IFNVU1BFTkRfU1RB VEVfTlVNKTsKPiDCoAo+IC0JaWYgKGF1dG9yZXN1bWVfZGVsYXkpCj4gLQkJZGVsYXkgPSBhdXRv cmVzdW1lX2RlbGF5Owo+IC0JZWxzZQo+IC0JCWRlbGF5ID0gc3RhdGUgPT0gU1VTUEVORF9TVEFU RV9ESVNLID8gMzAgOiAxNTsKPiArCWRlbGF5ID0gaWd0X2dldF9hdXRvcmVzdW1lX2RlbGF5KHN0 YXRlKTsKPiDCoAo+IMKgCS8qCj4gwqAJwqAqIFNraXAgaWYgcnRjd2FrZSB3b3VsZCBmYWlsIGZv ciBhIHJlYXNvbiBub3QgcmVsYXRlZCB0bwo+IHRoZSBrZXJuZWwncwo+IEBAIC04OTksNiArODk2 LDI4IEBAIHZvaWQgaWd0X3NldF9hdXRvcmVzdW1lX2RlbGF5KGludCBkZWxheV9zZWNzKQo+IMKg fQo+IMKgCj4gwqAvKioKPiArICogaWd0X2dldF9hdXRvcmVzdW1lX2RlbGF5Ogo+ICsgKiBAc3Rh dGU6IGFuICNpZ3Rfc3VzcGVuZF9zdGF0ZSwgdGhlIHRhcmdldCBzdXNwZW5kIHN0YXRlCj4gKyAq Cj4gKyAqIFJldHJpZXZlcyBob3cgbG9uZyB3ZSB3YWl0IHRvIHJlc3VtZSB0aGUgc3lzdGVtIGFm dGVyIHN1c3BlbmRpbmcKPiBpdC4KPiArICogVGhpcyBjYW4gZWl0aGVyIGJlIHNldCB0aHJvdWdo IGlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheSBvciBiZSBhCj4gZGVmYXVsdAo+ICsgKiB2YWx1ZSB0 aGF0IGRlcGVuZHMgb24gdGhlIHN1c3BlbmQgc3RhdGUuCj4gKyAqCj4gKyAqIFJldHVybnM6IFRo ZSBhdXRvcmVzdW1lIGRlbGF5LCBpbiBzZWNvbmRzLgo+ICsgKi8KPiAraW50IGlndF9nZXRfYXV0 b3Jlc3VtZV9kZWxheShlbnVtIGlndF9zdXNwZW5kX3N0YXRlIHN0YXRlKQo+ICt7Cj4gKwlpbnQg ZGVsYXk7Cj4gKwo+ICsJaWYgKGF1dG9yZXN1bWVfZGVsYXkpCj4gKwkJZGVsYXkgPSBhdXRvcmVz dW1lX2RlbGF5Owo+ICsJZWxzZQo+ICsJCWRlbGF5ID0gc3RhdGUgPT0gU1VTUEVORF9TVEFURV9E SVNLID8gMzAgOiAxNTsKPiArCj4gKwlyZXR1cm4gZGVsYXk7Cj4gK30KPiArCj4gKy8qKgo+IMKg ICogaWd0X2Ryb3Bfcm9vdDoKPiDCoCAqCj4gwqAgKiBEcm9wIHJvb3QgcHJpdmlsZWdlcyBhbmQg bWFrZSBzdXJlIGl0IGFjdHVhbGx5IHdvcmtlZC4gVXNlZnVsIGZvcgo+IHRlc3RzCj4gZGlmZiAt LWdpdCBhL2xpYi9pZ3RfYXV4LmggYi9saWIvaWd0X2F1eC5oCj4gaW5kZXggNTRiOTcxNjQuLjQ5 OWExNjc5IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfYXV4LmgKPiArKysgYi9saWIvaWd0X2F1eC5o Cj4gQEAgLTE5Miw2ICsxOTIsNyBAQCBlbnVtIGlndF9zdXNwZW5kX3Rlc3Qgewo+IMKgdm9pZCBp Z3Rfc3lzdGVtX3N1c3BlbmRfYXV0b3Jlc3VtZShlbnVtIGlndF9zdXNwZW5kX3N0YXRlIHN0YXRl LAo+IMKgCQkJCcKgwqDCoGVudW0gaWd0X3N1c3BlbmRfdGVzdCB0ZXN0KTsKPiDCoHZvaWQgaWd0 X3NldF9hdXRvcmVzdW1lX2RlbGF5KGludCBkZWxheV9zZWNzKTsKPiAraW50IGlndF9nZXRfYXV0 b3Jlc3VtZV9kZWxheShlbnVtIGlndF9zdXNwZW5kX3N0YXRlIHN0YXRlKTsKPiDCoAo+IMKgLyog ZHJvcHBpbmcgcHJpdmlsZWRnZXMgKi8KPiDCoHZvaWQgaWd0X2Ryb3Bfcm9vdCh2b2lkKTsKPiBk aWZmIC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uYyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiBp bmRleCAyMjVmOThjMy4uMzQ1YzQ0ZDYgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9jaGFtZWxpdW0u Ywo+ICsrKyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiBAQCAtNTEsOCArNTEsOCBAQAo+IMKgICog W29uIHRoZSBDaHJvbWVPUyBwcm9qZWN0IHBhZ2VdKGh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy9j aHJvbWl1bS0KPiBvcy90ZXN0aW5nL2NoYW1lbGl1bSkuCj4gwqAgKgo+IMKgICogSW4gb3JkZXIg dG8gcnVuIHRlc3RzIHVzaW5nIHRoZSBDaGFtZWxpdW0sIGEgdmFsaWQgY29uZmlndXJhdGlvbgo+ IGZpbGUgbXVzdCBiZQo+IC0gKiBwcmVzZW50LsKgwqBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlz IGEgbm9ybWFsIEdsaWIga2V5ZmlsZQo+IChzaW1pbGFyIHRvIFdpbmRvd3MKPiAtICogSU5JKSBz dHJ1Y3R1cmVkIGxpa2Ugc286Cj4gKyAqIHByZXNlbnQuIEl0IG11c3QgY29udGFpbiBDaGFtZWxp dW0tc3BlY2lmaWMga2V5cyBhcyBzaG93biB3aXRoCj4gdGhlIGZvbGxvd2luZwo+ICsgKiBleGFt cGxlOgo+IMKgICoKPiDCoCAqIHxbPCEtLSBsYW5ndWFnZT0icGxhaW4iIC0tPgo+IMKgICoJW0No YW1lbGl1bV0KPiBAQCAtNzIsOCArNzIsNiBAQAo+IMKgICoJQ2hhbWVsaXVtUG9ydElEPTMKPiDC oCAqIF18Cj4gwqAgKgo+IC0gKiBCeSBkZWZhdWx0LCB0aGlzIGZpbGUgaXMgZXhwZWN0ZWQgdG8g ZXhpc3QgaW4gfi8uaWd0cmMgLiBUaGUKPiBkaXJlY3RvcnkgZm9yCj4gLSAqIHRoaXMgY2FuIGJl IG92ZXJyaWRlbiBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQo+ICVJR1RfQ09O RklHX1BBVEguCj4gwqAgKi8KPiDCoAo+IMKgc3RydWN0IGNoYW1lbGl1bV9lZGlkIHsKPiBAQCAt MTAzNCw3ICsxMDMyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludAo+IGNoYW1lbGl1bV9nZXRfcG9y dF90eXBlKHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSwKPiDCoH0KPiDCoAo+IMKgc3RhdGlj IGJvb2wgY2hhbWVsaXVtX3JlYWRfcG9ydF9tYXBwaW5ncyhzdHJ1Y3QgY2hhbWVsaXVtCj4gKmNo YW1lbGl1bSwKPiAtCQkJCQnCoGludCBkcm1fZmQsIEdLZXlGaWxlCj4gKmtleV9maWxlKQo+ICsJ CQkJCcKgaW50IGRybV9mZCkKPiDCoHsKPiDCoAlkcm1Nb2RlUmVzICpyZXM7Cj4gwqAJZHJtTW9k ZUNvbm5lY3RvciAqY29ubmVjdG9yOwo+IEBAIC0xMDQ1LDcgKzEwNDMsNyBAQCBzdGF0aWMgYm9v bCBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdzKHN0cnVjdAo+IGNoYW1lbGl1bSAqY2hhbWVs aXVtLAo+IMKgCWludCBwb3J0X2ksIGksIGo7Cj4gwqAJYm9vbCByZXQgPSB0cnVlOwo+IMKgCj4g LQlncm91cF9saXN0ID0gZ19rZXlfZmlsZV9nZXRfZ3JvdXBzKGtleV9maWxlLCBOVUxMKTsKPiAr CWdyb3VwX2xpc3QgPSBnX2tleV9maWxlX2dldF9ncm91cHMoaWd0X2tleV9maWxlLCBOVUxMKTsK PiDCoAo+IMKgCS8qIENvdW50IGhvdyBtYW55IGNvbm5lY3RvciBtYXBwaW5ncyBhcmUgc3BlY2lm aWVkIGluIHRoZQo+IGNvbmZpZyAqLwo+IMKgCWZvciAoaSA9IDA7IGdyb3VwX2xpc3RbaV0gIT0g TlVMTDsgaSsrKSB7Cj4gQEAgLTEwNjgsNyArMTA2Niw3IEBAIHN0YXRpYyBib29sIGNoYW1lbGl1 bV9yZWFkX3BvcnRfbWFwcGluZ3Moc3RydWN0Cj4gY2hhbWVsaXVtICpjaGFtZWxpdW0sCj4gwqAK PiDCoAkJcG9ydCA9ICZjaGFtZWxpdW0tPnBvcnRzW3BvcnRfaSsrXTsKPiDCoAkJcG9ydC0+bmFt ZSA9IHN0cmR1cChtYXBfbmFtZSk7Cj4gLQkJcG9ydC0+aWQgPSBnX2tleV9maWxlX2dldF9pbnRl Z2VyKGtleV9maWxlLCBncm91cCwKPiArCQlwb3J0LT5pZCA9IGdfa2V5X2ZpbGVfZ2V0X2ludGVn ZXIoaWd0X2tleV9maWxlLAo+IGdyb3VwLAo+IMKgCQkJCQkJwqDCoCJDaGFtZWxpdW1Qb3J0SUQi LAo+IMKgCQkJCQkJwqDCoCZlcnJvcik7Cj4gwqAJCWlmICghcG9ydC0+aWQpIHsKPiBAQCAtMTEy NSw0NyArMTEyMywyMiBAQCBvdXQ6Cj4gwqAKPiDCoHN0YXRpYyBib29sIGNoYW1lbGl1bV9yZWFk X2NvbmZpZyhzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sIGludAo+IGRybV9mZCkKPiDCoHsK PiAtCUdLZXlGaWxlICprZXlfZmlsZSA9IGdfa2V5X2ZpbGVfbmV3KCk7Cj4gwqAJR0Vycm9yICpl cnJvciA9IE5VTEw7Cj4gLQljaGFyICprZXlfZmlsZV9sb2MsICprZXlfZmlsZV9lbnY7Cj4gLQlp bnQgcmM7Cj4gLQlib29sIHJldCA9IHRydWU7Cj4gwqAKPiAtCWtleV9maWxlX2VudiA9IGdldGVu digiSUdUX0NPTkZJR19QQVRIIik7Cj4gLQlpZiAoa2V5X2ZpbGVfZW52KSB7Cj4gLQkJa2V5X2Zp bGVfbG9jID0ga2V5X2ZpbGVfZW52Owo+IC0JfSBlbHNlIHsKPiAtCQlrZXlfZmlsZV9sb2MgPSBt YWxsb2MoMTAwKTsKPiAtCQlzbnByaW50ZihrZXlfZmlsZV9sb2MsIDEwMCwgIiVzLy5pZ3RyYyIs Cj4gZ19nZXRfaG9tZV9kaXIoKSk7Cj4gKwlpZiAoIWlndF9rZXlfZmlsZSkgewo+ICsJCWlndF93 YXJuKCJObyBjb25maWd1cmF0aW9uIGZpbGUgYXZhaWxhYmxlIGZvcgo+IGNoYW1lbGl1bVxuIik7 Cj4gKwkJcmV0dXJuIGZhbHNlOwo+IMKgCX0KPiDCoAo+IC0JcmMgPSBnX2tleV9maWxlX2xvYWRf ZnJvbV9maWxlKGtleV9maWxlLCBrZXlfZmlsZV9sb2MsCj4gLQkJCQnCoMKgwqDCoMKgwqDCoEdf S0VZX0ZJTEVfTk9ORSwgJmVycm9yKTsKPiAtCWlmICghcmMpIHsKPiAtCQlpZ3Rfd2FybigiRmFp bGVkIHRvIHJlYWQgY2hhbWVsaXVtIGNvbmZpZ3VyYXRpb24KPiBmaWxlOiAlc1xuIiwKPiAtCQkJ wqBlcnJvci0+bWVzc2FnZSk7Cj4gLQkJcmV0ID0gZmFsc2U7Cj4gLQkJZ290byBvdXQ7Cj4gLQl9 Cj4gLQo+IC0JY2hhbWVsaXVtLT51cmwgPSBnX2tleV9maWxlX2dldF9zdHJpbmcoa2V5X2ZpbGUs Cj4gIkNoYW1lbGl1bSIsICJVUkwiLAo+ICsJY2hhbWVsaXVtLT51cmwgPSBnX2tleV9maWxlX2dl dF9zdHJpbmcoaWd0X2tleV9maWxlLAo+ICJDaGFtZWxpdW0iLCAiVVJMIiwKPiDCoAkJCQkJwqDC oMKgwqDCoMKgwqAmZXJyb3IpOwo+IMKgCWlmICghY2hhbWVsaXVtLT51cmwpIHsKPiDCoAkJaWd0 X3dhcm4oIkNvdWxkbid0IHJlYWQgY2hhbWVsaXVtIFVSTCBmcm9tIGNvbmZpZwo+IGZpbGU6ICVz XG4iLAo+IMKgCQkJwqBlcnJvci0+bWVzc2FnZSk7Cj4gLQkJcmV0ID0gZmFsc2U7Cj4gLQkJZ290 byBvdXQ7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+IMKgCX0KPiDCoAo+IC0JcmV0ID0gY2hhbWVsaXVt X3JlYWRfcG9ydF9tYXBwaW5ncyhjaGFtZWxpdW0sIGRybV9mZCwKPiBrZXlfZmlsZSk7Cj4gLQo+ IC1vdXQ6Cj4gLQlnX2tleV9maWxlX2ZyZWUoa2V5X2ZpbGUpOwo+IC0KPiAtCWlmICgha2V5X2Zp bGVfZW52KQo+IC0JCWZyZWUoa2V5X2ZpbGVfbG9jKTsKPiAtCj4gLQlyZXR1cm4gcmV0Owo+ICsJ cmV0dXJuIGNoYW1lbGl1bV9yZWFkX3BvcnRfbWFwcGluZ3MoY2hhbWVsaXVtLCBkcm1fZmQpOwo+ IMKgfQo+IMKgCj4gwqAvKioKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMgYi9saWIvaWd0 X2NvcmUuYwo+IGluZGV4IDlhNWVkNDBlLi5iM2QxYzYwOCAxMDA2NDQKPiAtLS0gYS9saWIvaWd0 X2NvcmUuYwo+ICsrKyBiL2xpYi9pZ3RfY29yZS5jCj4gQEAgLTU3LDYgKzU3LDcgQEAKPiDCoCNp bmNsdWRlIDxsaW1pdHMuaD4KPiDCoCNpbmNsdWRlIDxsb2NhbGUuaD4KPiDCoCNpbmNsdWRlIDx1 d2lsZG1hdC91d2lsZG1hdC5oPgo+ICsjaW5jbHVkZSA8Z2xpYi5oPgo+IMKgCj4gwqAjaW5jbHVk ZSAiZHJtdGVzdC5oIgo+IMKgI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKPiBAQCAtMjI1LDYg KzIyNiwyMyBAQAo+IMKgICogLSAnYmFzaWMqLGFkdmFuY2VkKicgbWF0Y2ggYW55IHN1YnRlc3Qg c3RhcnRpbmcgYmFzaWMgb3IgYWR2YW5jZWQKPiDCoCAqIC0gJyosIWJhc2ljKicgbWF0Y2ggYW55 IHN1YnRlc3Qgbm90IHN0YXJ0aW5nIGJhc2ljCj4gwqAgKiAtICdiYXNpYyosIWJhc2ljLXJlbmRl cionIG1hdGNoIGFueSBzdWJ0ZXN0IHN0YXJ0aW5nIGJhc2ljIGJ1dAo+IG5vdCBzdGFydGluZyBi YXNpYy1yZW5kZXIKPiArICoKPiArICogIyBDb25maWd1cmF0aW9uCj4gKyAqCj4gKyAqIFNvbWUg b2YgSUdUJ3MgYmVoYXZpb3IgY2FuIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCBhIGNvbmZpZ3VyYXRp b24KPiBmaWxlLgo+ICsgKiBCeSBkZWZhdWx0LCB0aGlzIGZpbGUgaXMgZXhwZWN0ZWQgdG8gZXhp c3QgaW4gfi8uaWd0cmMgLiBUaGUKPiBkaXJlY3RvcnkgZm9yCj4gKyAqIHRoaXMgY2FuIGJlIG92 ZXJyaWRlbiBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQo+ICVJR1RfQ09ORklH X1BBVEguCj4gKyAqIEFuIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmb2xsb3dzOgo+ICsgKgo+ICsg KiB8WzwhLS0gbGFuZ3VhZ2U9InBsYWluIiAtLT4KPiArICoJIyBUaGUgZm9sbG93aW5nIHNlY3Rp b24gaXMgdXNlZCBmb3IgY29uZmlndXJpbmcgdGhlIERldmljZQo+IFVuZGVyIFRlc3QuCj4gKyAq CSMgSXQgaXMgbm90IG1hbmRhdG9yeSBhbmQgYWxsb3dzIG92ZXJyaWRpbmcgZGVmYXVsdAo+IHZh bHVlcy4KPiArICoJW0RVVF0KPiArICoJU3VzcGVuZFJlc3VtZURlbGF5PTEwCj4gKyAqIF18Cj4g KyAqCj4gKyAqIFNvbWUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIG1heSBiZSB1c2Vk IGJ5IHNwZWNpZmljIHBhcnRzCj4gb2YgSUdULAo+ICsgKiBzdWNoIGFzIHRob3NlIHJlbGF0ZWQg dG8gQ2hhbWVsaXVtIHN1cHBvcnQuCj4gwqAgKi8KPiDCoAo+IMKgc3RhdGljIHVuc2lnbmVkIGlu dCBleGl0X2hhbmRsZXJfY291bnQ7Cj4gQEAgLTI3MSw2ICsyODksOCBAQCBzdGF0aWMgc3RydWN0 IHsKPiDCoH0gbG9nX2J1ZmZlcjsKPiDCoHN0YXRpYyBwdGhyZWFkX211dGV4X3QgbG9nX2J1ZmZl cl9tdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7Cj4gwqAKPiArR0tleUZpbGUgKmln dF9rZXlfZmlsZTsKPiArCj4gwqBjb25zdCBjaGFyICppZ3RfdGVzdF9uYW1lKHZvaWQpCj4gwqB7 Cj4gwqAJcmV0dXJuIGNvbW1hbmRfc3RyOwo+IEBAIC01OTMsNiArNjEzLDIwIEBAIHN0YXRpYyB2 b2lkIG9vbV9hZGp1c3RfZm9yX2Rvb20odm9pZCkKPiDCoAo+IMKgfQo+IMKgCj4gK3N0YXRpYyB2 b2lkIGNvbmZpZ19wYXJzZSh2b2lkKQo+ICt7Cj4gKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKPiAr CWludCByYzsKPiArCj4gKwlpZiAoIWlndF9rZXlfZmlsZSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJ cmMgPSBnX2tleV9maWxlX2dldF9pbnRlZ2VyKGlndF9rZXlfZmlsZSwgIkRVVCIsICJTdXNwZW5k UmVzdW1lRGVsYXkiLAo+ICsJCQkJwqDCoMKgwqAmZXJyb3IpOwoKV2Ugc2hvdWxkIHByb2JhYmx5 IGF0IGxlYXN0IHRocm93IGFuIGVycm9yIGlmIHRoZSBrZXkgdmFsdWUgaGFwcGVucyB0bwpiZSB0 aGVyZSwgYnV0IHRoZSB2YWx1ZSBpcyBpbnZhbGlkIChzdWNoIGFzIHNvbWVvbmUgc3BlY2lmeWlu ZyAiZm9vIiBhcwp0aGUgU3VzcGVuZFJlc3VtZURlbGF5IHZhbHVlKS4gTWF5YmUgYWRkIGEgZnVu Y3Rpb24gbGlrZQoKc3RhdGljIGludAppZ3RfY29uZmlnX2dldF9pbnRlZ2VyKGNvbnN0IGNoYXIg KnNlY3Rpb24sIGNvbnN0IGNoYXIgKmtleV9uYW1lLCBpbnQgKnZhbHVlLCBpbnQgZGVmYXVsdCkK ClRoYXQgY2FsbHMgdGhlIGFwcHJvcHJpYXRlIGdsaWIgZnVuY3Rpb25zLCBhbmQgZmFpbHMgdGhl IGN1cnJlbnQgdGVzdAppZiBhbnkgaW52YWxpZCBub24tZGVmYXVsdCB2YWx1ZXMgYXJlIGdpdmVu Cgo+ICsJaWYgKHJjICE9IDApCj4gKwkJaWd0X3NldF9hdXRvcmVzdW1lX2RlbGF5KHJjKTsKPiAr fQo+ICsKPiDCoHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwK PiDCoAkJwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpleHRyYV9zaG9ydF9vcHRzLAo+IMKgCQnC oMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBvcHRpb24gKmV4dHJhX2xvbmdfb3B0cywKPiBAQCAt NjE2LDYgKzY1MCw5IEBAIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoq YXJndiwKPiDCoAlpbnQgZXh0cmFfb3B0X2NvdW50Owo+IMKgCWludCBhbGxfb3B0X2NvdW50Owo+ IMKgCWludCByZXQgPSAwOwo+ICsJY2hhciAqa2V5X2ZpbGVfbG9jID0gTlVMTDsKPiArCWNoYXIg KmtleV9maWxlX2VudiA9IE5VTEw7Cj4gKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKPiDCoAljb25z dCBjaGFyICplbnY7Cj4gwqAKPiDCoAlpZiAoIWlzYXR0eShTVERPVVRfRklMRU5PKSB8fCBnZXRl bnYoIklHVF9QTEFJTl9PVVRQVVQiKSkKPiBAQCAtNzM3LDcgKzc3NCwzMSBAQCBzdGF0aWMgaW50 IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gwqAJCX0KPiDCoAl9Cj4gwqAK PiArCWtleV9maWxlX2VudiA9IGdldGVudigiSUdUX0NPTkZJR19QQVRIIik7Cj4gKwlpZiAoa2V5 X2ZpbGVfZW52KSB7Cj4gKwkJa2V5X2ZpbGVfbG9jID0ga2V5X2ZpbGVfZW52Owo+ICsJfSBlbHNl IHsKPiArCQlrZXlfZmlsZV9sb2MgPSBtYWxsb2MoMTAwKTsKPiArCQlzbnByaW50ZihrZXlfZmls ZV9sb2MsIDEwMCwgIiVzLy5pZ3RyYyIsCj4gZ19nZXRfaG9tZV9kaXIoKSk7Cj4gKwl9Cj4gKwo+ ICsJaWd0X2tleV9maWxlID0gZ19rZXlfZmlsZV9uZXcoKTsKPiArCXJldCA9IGdfa2V5X2ZpbGVf bG9hZF9mcm9tX2ZpbGUoaWd0X2tleV9maWxlLCBrZXlfZmlsZV9sb2MsCj4gKwkJCQkJR19LRVlf RklMRV9OT05FLCAmZXJyb3IpOwo+ICsJaWYgKCFyZXQpIHsKPiArCQlnX2tleV9maWxlX2ZyZWUo aWd0X2tleV9maWxlKTsKPiArCQlpZ3Rfa2V5X2ZpbGUgPSBOVUxMOwo+ICsJCXJldCA9IC0xOwo+ ICsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwljb25maWdfcGFyc2UoKTsKPiArCj4gwqBv dXQ6Cj4gKwlpZiAoIWtleV9maWxlX2VudiAmJiBrZXlfZmlsZV9sb2MpCj4gKwkJZnJlZShrZXlf ZmlsZV9sb2MpOwo+ICsKPiDCoAlmcmVlKHNob3J0X29wdHMpOwo+IMKgCWZyZWUoY29tYmluZWRf b3B0cyk7Cj4gwqAKPiBAQCAtMTM0NSw2ICsxNDA2LDkgQEAgdm9pZCBpZ3RfZXhpdCh2b2lkKQo+ IMKgewo+IMKgCWlndF9leGl0X2NhbGxlZCA9IHRydWU7Cj4gwqAKPiArCWlmIChpZ3Rfa2V5X2Zp bGUpCj4gKwkJZ19rZXlfZmlsZV9mcmVlKGlndF9rZXlfZmlsZSk7Cj4gKwo+IMKgCWlmIChydW5f c2luZ2xlX3N1YnRlc3QgJiYgIXJ1bl9zaW5nbGVfc3VidGVzdF9mb3VuZCkgewo+IMKgCQlpZ3Rf d2FybigiVW5rbm93biBzdWJ0ZXN0OiAlc1xuIiwKPiBydW5fc2luZ2xlX3N1YnRlc3QpOwo+IMKg CQlleGl0KElHVF9FWElUX0lOVkFMSUQpOwo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2NvcmUuaCBi L2xpYi9pZ3RfY29yZS5oCj4gaW5kZXggYTJlZDk3MjAuLjA3MzljYTgzIDEwMDY0NAo+IC0tLSBh L2xpYi9pZ3RfY29yZS5oCj4gKysrIGIvbGliL2lndF9jb3JlLmgKPiBAQCAtNDAsNiArNDAsNyBA QAo+IMKgI2luY2x1ZGUgPHN0ZGFyZy5oPgo+IMKgI2luY2x1ZGUgPGdldG9wdC5oPgo+IMKgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgo+ICsjaW5jbHVkZSA8Z2xpYi5oPgo+IMKgCj4gwqAjaWZuZGVmIElH VF9MT0dfRE9NQUlOCj4gwqAjZGVmaW5lIElHVF9MT0dfRE9NQUlOIChOVUxMKQo+IEBAIC00OCw2 ICs0OSw3IEBACj4gwqAKPiDCoGV4dGVybiBjb25zdCBjaGFyKiBfX2lndF90ZXN0X2Rlc2NyaXB0 aW9uIF9fYXR0cmlidXRlX18oKHdlYWspKTsKPiDCoGV4dGVybiBib29sIF9faWd0X3BsYWluX291 dHB1dDsKPiArZXh0ZXJuIEdLZXlGaWxlICppZ3Rfa2V5X2ZpbGU7Cj4gwqAKPiDCoAo+IMKgLyoq Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLmFtIGIvdGVzdHMvTWFrZWZpbGUuYW0KPiBp bmRleCBiMDUxMzY0Yy4uZjlkMTFlNmMgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuYW0K PiArKysgYi90ZXN0cy9NYWtlZmlsZS5hbQo+IEBAIC03Miw5ICs3Miw5IEBAIEFNX0NGTEFHUyA9 ICQoRFJNX0NGTEFHUykgJChDV0FSTkZMQUdTKSAtV25vLQo+IHVudXNlZC1yZXN1bHQgJChERUJV R19DRkxBR1MpXAo+IMKgCSQoTElCVU5XSU5EX0NGTEFHUykgJChXRVJST1JfQ0ZMQUdTKSBcCj4g wqAJJChOVUxMKQo+IMKgCj4gLUxEQUREID0gLi4vbGliL2xpYmludGVsX3Rvb2xzLmxhICQoR0xJ Ql9MSUJTKSAkKFhNTFJQQ19MSUJTKQo+ICtMREFERCA9IC4uL2xpYi9saWJpbnRlbF90b29scy5s YSAkKFhNTFJQQ19MSUJTKQo+IMKgCj4gLUFNX0NGTEFHUyArPSAkKENBSVJPX0NGTEFHUykgJChM SUJVREVWX0NGTEFHUykgJChHTElCX0NGTEFHUykKPiArQU1fQ0ZMQUdTICs9ICQoQ0FJUk9fQ0ZM QUdTKSAkKExJQlVERVZfQ0ZMQUdTKQo+IMKgQU1fTERGTEFHUyA9IC1XbCwtLWFzLW5lZWRlZAo+ IMKgCj4gwqBkcm1faW1wb3J0X2V4cG9ydF9DRkxBR1MgPSAkKEFNX0NGTEFHUykgJChUSFJFQURf Q0ZMQUdTKQo+IGRpZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0uYyBiL3Rlc3RzL2NoYW1lbGl1 bS5jCj4gaW5kZXggNDFlMGU4OWIuLjg4YjBhOTRjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2NoYW1l bGl1bS5jCj4gKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiBAQCAtNDIsNyArNDIsNiBAQCB0eXBl ZGVmIHN0cnVjdCB7Cj4gwqB9IGRhdGFfdDsKPiDCoAo+IMKgI2RlZmluZSBIT1RQTFVHX1RJTUVP VVQgMjAgLyogc2Vjb25kcyAqLwo+IC0jZGVmaW5lIFNVU1BFTkRfUkVTVU1FX0RFTEFZIDIwIC8q IHNlY29uZHMgKi8KPiDCoAo+IMKgI2RlZmluZSBIUERfU1RPUk1fUFVMU0VfSU5URVJWQUxfRFAg MTAwIC8qIG1zICovCj4gwqAjZGVmaW5lIEhQRF9TVE9STV9QVUxTRV9JTlRFUlZBTF9IRE1JIDIw MCAvKiBtcyAqLwo+IEBAIC0yMjUsMjEgKzIyNCwyMSBAQCB0cnlfc3VzcGVuZF9yZXN1bWVfaHBk KGRhdGFfdCAqZGF0YSwgc3RydWN0Cj4gY2hhbWVsaXVtX3BvcnQgKnBvcnQsCj4gwqAJCcKgwqDC oMKgwqDCoMKgZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBzdGF0ZSwgZW51bQo+IGlndF9zdXNwZW5k X3Rlc3QgdGVzdCwKPiDCoAkJwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdWRldl9tb25pdG9yICptb24s IGJvb2wgY29ubmVjdGVkKQo+IMKgewo+ICsJaW50IGRlbGF5Owo+IMKgCWludCBwOwo+IMKgCj4g LQlpZ3Rfc2V0X2F1dG9yZXN1bWVfZGVsYXkoU1VTUEVORF9SRVNVTUVfREVMQVkpOwo+IMKgCWln dF9mbHVzaF9ob3RwbHVncyhtb24pOwo+IMKgCj4gKwlkZWxheSA9IGlndF9nZXRfYXV0b3Jlc3Vt ZV9kZWxheShzdGF0ZSkgKiAxMDAwIC8gMjsKPiArCj4gwqAJaWYgKHBvcnQpIHsKPiAtCQljaGFt ZWxpdW1fc2NoZWR1bGVfaHBkX3RvZ2dsZShkYXRhLT5jaGFtZWxpdW0sIHBvcnQsCj4gLQkJCQkJ wqDCoMKgwqDCoMKgU1VTUEVORF9SRVNVTUVfREVMQVkgKgo+IDEwMDAgLyAyLAo+ICsJCWNoYW1l bGl1bV9zY2hlZHVsZV9ocGRfdG9nZ2xlKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwKPiBkZWxheSwK PiDCoAkJCQkJwqDCoMKgwqDCoMKgIWNvbm5lY3RlZCk7Cj4gwqAJfSBlbHNlIHsKPiDCoAkJZm9y IChwID0gMDsgcCA8IGRhdGEtPnBvcnRfY291bnQ7IHArKykgewo+IMKgCQkJcG9ydCA9IGRhdGEt PnBvcnRzW3BdOwo+IMKgCQkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90b2dnbGUoZGF0YS0KPiA+ Y2hhbWVsaXVtLCBwb3J0LAo+IC0JCQkJCQnCoMKgwqDCoMKgwqBTVVNQRU5EX1JFU1VNRQo+IF9E RUxBWSAqIDEwMDAgLyAyLAo+IC0JCQkJCQnCoMKgwqDCoMKgwqAhY29ubmVjdGVkKTsKPiArCQkJ CQkJwqDCoMKgwqDCoMKgZGVsYXksCj4gIWNvbm5lY3RlZCk7Cj4gwqAJCX0KPiDCoAo+IMKgCQlw b3J0ID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUuYW0gYi90b29scy9NYWtl ZmlsZS5hbQo+IGluZGV4IDE4YTY3ZWZiLi5jNDBlNzVjNyAxMDA2NDQKPiAtLS0gYS90b29scy9N YWtlZmlsZS5hbQo+ICsrKyBiL3Rvb2xzL01ha2VmaWxlLmFtCj4gQEAgLTksOCArOSw4IEBAIGVu ZGlmCj4gwqAKPiDCoGlmIEhBVkVfVURFVgo+IMKgYmluX1BST0dSQU1TICs9IGludGVsX2RwX2Nv bXBsaWFuY2UKPiAtaW50ZWxfZHBfY29tcGxpYW5jZV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgJChH TElCX0NGTEFHUykKPiAtaW50ZWxfZHBfY29tcGxpYW5jZV9MREFERCA9ICQodG9wX2J1aWxkZGly KS9saWIvbGliaW50ZWxfdG9vbHMubGEKPiAkKEdMSUJfTElCUykKPiAraW50ZWxfZHBfY29tcGxp YW5jZV9DRkxBR1MgPSAkKEFNX0NGTEFHUykKPiAraW50ZWxfZHBfY29tcGxpYW5jZV9MREFERCA9 ICQodG9wX2J1aWxkZGlyKS9saWIvbGliaW50ZWxfdG9vbHMubGEKPiDCoGVuZGlmCj4gwqAKPiDC oFNVQkRJUlMgPSBudWxsX3N0YXRlX2dlbiByZWdpc3RlcnMKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==