From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 2/8] drm/i915: Introduce mode for capture of multi ctx OA reports synchronized with RCS Date: Wed, 15 Jul 2015 14:16:57 +0530 Message-ID: <1436950023-13940-3-git-send-email-sourab.gupta@intel.com> References: <1436950023-13940-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 4BC9B6EA73 for ; Wed, 15 Jul 2015 01:44:56 -0700 (PDT) In-Reply-To: <1436950023-13940-1-git-send-email-sourab.gupta@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: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBp bnRyb2R1Y2VzIGEgbW9kZSBvZiBjYXB0dXJpbmcgT0EgY291bnRlciByZXBvcnRzIGJlbG9uZ2lu ZyB0bwptdWx0aXBsZSBjb250ZXh0cywgd2hpY2ggY2FuIGJlIG1hcHBlZCBiYWNrIHRvIGluZGl2 aWR1YWwgY29udGV4dHMuIFRoZSBPQQpyZXBvcnRzIGNhcHR1cmVkIGluIHRoaXMgd2F5IGFyZSBz eW5jaHJvbml6ZWQgd2l0aCBSZW5kZXIgY29tbWFuZCBzdHJlYW0uCgpUaGVyZSBtYXkgYmUgdXNl Y2FzZXMgd2hlcmVpbiB3ZSBuZWVkIG1vcmUgdGhhbiBwZXJpb2RpYyBPQSBjYXB0dXJlIG1vZGUK d2hpY2ggaXMgc3VwcG9ydGVkIGJ5IHBlcmZfZXZlbnQgY3VycmVudGx5LiBXZSBtYXkgbmVlZCB0 byBpbnNlcnQgUkNTCnN5bmNocm9uaXplZCBjb21tYW5kcyB0byBjYXB0dXJlIHRoZSBPQSBjb3Vu dGVyIHNuYXBzaG90cy4KVGhpcyBtb2RlIGlzIHByaW1hcmlseSB1c2VkIGZvciB0d28gdXNlY2Fz ZXM6CiAgICAtIEFiaWxpdHkgdG8gY2FwdHVyZSBzeXN0ZW0gd2lkZSBtZXRyaWNzLCBhbG9uZ3dp dGggdGhlIGFiaWxpdHkgdG8gbWFwCiAgICAgIHRoZSByZXBvcnRzIGJhY2sgdG8gaW5kaXZpZHVh bCBjb250ZXh0cy4KICAgIC0gQWJpbGl0eSB0byBpbmplY3QgdGFncyBmb3Igd29yaywgaW50byB0 aGUgcmVwb3J0cy4gVGhpcyBwcm92aWRlcwogICAgICB2aXNpYmlsaXR5IGludG8gdGhlIG11bHRp cGxlIHN0YWdlcyBvZiB3b3JrIHdpdGhpbiBzaW5nbGUgY29udGV4dC4KClRoZSBPQSByZXBvcnRz IGdlbmVyYXRlZCBpbiB0aGlzIHdheSB3aWxsIGJlIGZvcndhcmRlZCB0byB1c2Vyc3BhY2UgYWZ0 ZXIKYXBwZW5kaW5nIGEgZm9vdGVyLCB3aGljaCB3aWxsIGhhdmUgdGhpcyBtZXRhZGF0YSBpbmZv cm1hdGlvbi4gVGhpcyB3aWxsCmVuYWJsZSB0aGUgdXNlY2FzZXMgbWVudGlvbmVkIGFib3ZlLgoK VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGFkZGl0aW9uYWwgZmllbGQgaW4gdGhlIG9hIGF0dHIg c3RydWN0dXJlIGZvcgpzdXBwb3J0aW5nIHRoaXMgY2FwdHVyZSBtb2RlLiBUaGUgZGF0YSB0aHVz IGNhcHR1cmVkIG5lZWRzIHRvIGJlIHN0b3JlZCBpbgphIHNlcGFyYXRlIGJ1ZmZlciwgd2hpY2gg d2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVmZmVyIHVzZWQgb3RoZXJ3aXNlCmZvciBwZXJp b2RpYyBPQSBjYXB0dXJlIG1vZGUuIEFnYWluIHRoaXMgYnVmZmVyIGFkZHJlc3Mgd2lsbCBub3Qg bmVlZCB0byBiZQptYXBwZWQgdG8gT0EgdW5pdCByZWdpc3RlciBhZGRyZXNzZXMgc3VjaCBhcyBP QVNUQVRVUzEsIE9BU1RBVFVTMiBhbmQKT0FCVUZGRVIuCgpUaGUgc3Vic2VxdWVudCBwYXRjaGVz IGludHJvZHVjZSB0aGUgIG1lY2hhbmlzbSBmb3IgZm9yd2FyZGluZyByZXBvcnRzIHRvCnVzZXJz cGFjZSwgaGFuZGxpbmcgdGhlIGNvbW1hbmQgc3luY2hyb25pemF0aW9uIGFuZCBtZWNoYW5pc20g Zm9yCmluc2VydGluZyBjb3JyZXNwb25kaW5nIGNvbW1hbmRzIGludG8gdGhlIHJpbmdidWZmZXIu CgpTaWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgIDkgKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jIHwgMTczICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgfCAgIDMg Ky0KIDMgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGJhYTAyMzQuLjc0MDE0OGQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaApAQCAtMTkzMCw2ICsxOTMwLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewogCQlib29sIGV2ZW50X2FjdGl2ZTsKIAogCQlib29sIHBlcmlvZGljOworCQlib29sIG11 bHRpcGxlX2N0eF9tb2RlOwogCQl1MzIgcGVyaW9kX2V4cG9uZW50OwogCiAJCXUzMiBtZXRyaWNz X3NldDsKQEAgLTE5NDQsNiArMTk0NSwxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJ CQlpbnQgZm9ybWF0X3NpemU7CiAJCQlzcGlubG9ja190IGZsdXNoX2xvY2s7CiAJCX0gb2FfYnVm ZmVyOworCisJCS8qIEZpZWxkcyBmb3IgbXVsdGlwbGUgY29udGV4dCBjYXB0dXJlIG1vZGUgKi8K KwkJc3RydWN0IHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJCQl1OCAq YWRkcjsKKwkJCWludCBmb3JtYXQ7CisJCQlpbnQgZm9ybWF0X3NpemU7CisJCX0gb2FfcmNzX2J1 ZmZlcjsKIAl9IG9hX3BtdTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5j CmluZGV4IGU3ZTBiMmIuLmI3OTU4MmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfb2FfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5j CkBAIC0xNjYsMTkgKzE2NiwzOSBAQCBzdGF0aWMgdm9pZCBmbHVzaF9vYV9zbmFwc2hvdHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiBzdGF0aWMgdm9pZAotb2FfYnVm ZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitvYV9yY3NfYnVmZmVy X2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CisJdW5zaWduZWQgbG9u ZyBsb2NrX2ZsYWdzOworCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwor CXZ1bm1hcChpOTE1LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5hZGRyKTsKKwlpOTE1X2dlbV9vYmpl Y3RfZ2d0dF91bnBpbihpOTE1LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5vYmopOworCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCZpOTE1LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5vYmotPmJhc2Up OworCW11dGV4X3VubG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCisJc3Bpbl9sb2Nr X2lycXNhdmUoJmk5MTUtPm9hX3BtdS5sb2NrLCBsb2NrX2ZsYWdzKTsKKwlpOTE1LT5vYV9wbXUu b2FfcmNzX2J1ZmZlci5vYmogPSBOVUxMOworCWk5MTUtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmFk ZHIgPSBOVUxMOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk5MTUtPm9hX3BtdS5sb2NrLCBs b2NrX2ZsYWdzKTsKK30KKworc3RhdGljIHZvaWQKK29hX2J1ZmZlcl9kZXN0cm95KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXVuc2lnbmVkIGxvbmcgbG9ja19mbGFnczsKKwor CW11dGV4X2xvY2soJmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKIAl2dW5tYXAoaTkxNS0+b2Ff cG11Lm9hX2J1ZmZlci5hZGRyKTsKIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihpOTE1LT5v YV9wbXUub2FfYnVmZmVyLm9iaik7CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmk5MTUt Pm9hX3BtdS5vYV9idWZmZXIub2JqLT5iYXNlKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRldi0+ c3RydWN0X211dGV4KTsKIAorCXNwaW5fbG9ja19pcnFzYXZlKCZpOTE1LT5vYV9wbXUubG9jaywg bG9ja19mbGFncyk7CiAJaTkxNS0+b2FfcG11Lm9hX2J1ZmZlci5vYmogPSBOVUxMOwogCWk5MTUt Pm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldCA9IDA7CiAJaTkxNS0+b2FfcG11Lm9hX2J1ZmZl ci5hZGRyID0gTlVMTDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpOTE1LT5vYV9wbXUubG9j aywgbG9ja19mbGFncyk7CiAKLQltdXRleF91bmxvY2soJmk5MTUtPmRldi0+c3RydWN0X211dGV4 KTsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9vYV9ldmVudF9kZXN0cm95KHN0cnVjdCBwZXJmX2V2 ZW50ICpldmVudCkKQEAgLTIwNyw2ICsyMjcsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X29hX2V2ZW50 X2Rlc3Ryb3koc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCUk5MTVfV1JJVEUoR0RUX0NISUNL RU5fQklUUywgKEk5MTVfUkVBRChHRFRfQ0hJQ0tFTl9CSVRTKSAmCiAJCQkJICAgICAgfkdUX05P QV9FTkFCTEUpKTsKIAorCWlmIChkZXZfcHJpdi0+b2FfcG11Lm11bHRpcGxlX2N0eF9tb2RlKQor CQlvYV9yY3NfYnVmZmVyX2Rlc3Ryb3koZGV2X3ByaXYpOworCiAJb2FfYnVmZmVyX2Rlc3Ryb3ko ZGV2X3ByaXYpOwogCiAJQlVHX09OKGRldl9wcml2LT5vYV9wbXUuZXhjbHVzaXZlX2V2ZW50ICE9 IGV2ZW50KTsKQEAgLTIxNiw2ICsyMzksNTkgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9ldmVudF9k ZXN0cm95KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChk ZXZfcHJpdik7CiB9CiAKK3N0YXRpYyBpbnQgYWxsb2Nfb2JqKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKm9iaikKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYm87CisJaW50IHJldDsKKworCS8qIE5COiBX ZSBvdmVyIGFsbG9jYXRlIHRoZSBPQSBidWZmZXIgZHVlIHRvIHRoZSB3YXkgcmF3IHNhbXBsZSBk YXRhCisJICogZ2V0cyBjb3BpZWQgZnJvbSB0aGUgZ3B1IG1hcHBlZCBjaXJjdWxhciBidWZmZXIg aW50byB0aGUgcGVyZgorCSAqIGNpcmN1bGFyIGJ1ZmZlciBzbyB0aGF0IG9ubHkgb25lIGNvcHkg aXMgcmVxdWlyZWQuCisJICoKKwkgKiBGb3IgZWFjaCBwZXJmIHNhbXBsZSAocmF3LT5zaXplICsg NCkgbmVlZHMgdG8gYmUgOCBieXRlIGFsaWduZWQsCisJICogd2hlcmUgdGhlIDQgY29ycmVzcG9u ZHMgdG8gdGhlIDMyYml0IHJhdy0+c2l6ZSBtZW1iZXIgdGhhdCdzCisJICogYWRkZWQgdG8gdGhl IHNhbXBsZSBoZWFkZXIgdGhhdCB1c2Vyc3BhY2Ugc2Vlcy4KKwkgKgorCSAqIER1ZSB0byB0aGUg KyA0IGZvciB0aGUgc2l6ZSBtZW1iZXI6IHdoZW4gd2UgY29weSBhIHJlcG9ydCB0byB0aGUKKwkg KiB1c2Vyc3BhY2UgZmFjaW5nIHBlcmYgYnVmZmVyIHdlIGFsd2F5cyBjb3B5IGFuIGFkZGl0aW9u YWwgNCBieXRlcworCSAqIGZyb20gdGhlIHN1YnNlcXVlbnQgcmVwb3J0IHRvIG1ha2UgdXAgZm9y IHRoZSBtaXNzIGFsaWdubWVudCwgYnV0CisJICogd2hlbiBhIHJlcG9ydCBpcyBhdCB0aGUgZW5k IG9mIHRoZSBncHUgbWFwcGVkIGJ1ZmZlciB3ZSBuZWVkIHRvCisJICogcmVhZCA0IGJ5dGVzIHBh c3QgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgorCSAqLworCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRl dl9wcml2KTsKKworCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldl9wcml2 LT5kZXYpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJYm8gPSBpOTE1X2dlbV9hbGxvY19v YmplY3QoZGV2X3ByaXYtPmRldiwgT0FfQlVGRkVSX1NJWkUgKyBQQUdFX1NJWkUpOworCWlmIChi byA9PSBOVUxMKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIE9BIGJ1ZmZlclxu Iik7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gdW5sb2NrOworCX0KKwlyZXQgPSBpOTE1X2dl bV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKGJvLCBJOTE1X0NBQ0hFX0xMQyk7CisJaWYgKHJldCkK KwkJZ290byBlcnJfdW5yZWY7CisKKwkvKiBQcmVIU1cgcmVxdWlyZWQgNTEySyBhbGlnbm1lbnQs IEhTVyByZXF1aXJlcyAxNk0gKi8KKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oYm8sIFNa XzE2TSwgMCk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfdW5yZWY7CisKKwkqb2JqID0gYm87CisJ Z290byB1bmxvY2s7CisKK2Vycl91bnJlZjoKKwlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm Ym8tPmJhc2UpOwordW5sb2NrOgorCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0 X211dGV4KTsKK291dDoKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisJcmV0dXJu IHJldDsKK30KKwogc3RhdGljIHZvaWQgKnZtYXBfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiB7CiAJaW50IGk7CkBAIC0yNTcsNDIgKzMzMywxMyBAQCBzdGF0aWMg aW50IGluaXRfb2FfYnVmZmVyKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlCVUdfT04oIUlT X0hBU1dFTEwoZGV2X3ByaXYtPmRldikpOwogCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX2J1 ZmZlci5vYmopOwogCi0JcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3By aXYtPmRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCXNwaW5fbG9ja19pbml0KCZk ZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5mbHVzaF9sb2NrKTsKIAotCS8qIE5COiBXZSBvdmVy IGFsbG9jYXRlIHRoZSBPQSBidWZmZXIgZHVlIHRvIHRoZSB3YXkgcmF3IHNhbXBsZSBkYXRhCi0J ICogZ2V0cyBjb3BpZWQgZnJvbSB0aGUgZ3B1IG1hcHBlZCBjaXJjdWxhciBidWZmZXIgaW50byB0 aGUgcGVyZgotCSAqIGNpcmN1bGFyIGJ1ZmZlciBzbyB0aGF0IG9ubHkgb25lIGNvcHkgaXMgcmVx dWlyZWQuCi0JICoKLQkgKiBGb3IgZWFjaCBwZXJmIHNhbXBsZSAocmF3LT5zaXplICsgNCkgbmVl ZHMgdG8gYmUgOCBieXRlIGFsaWduZWQsCi0JICogd2hlcmUgdGhlIDQgY29ycmVzcG9uZHMgdG8g dGhlIDMyYml0IHJhdy0+c2l6ZSBtZW1iZXIgdGhhdCdzCi0JICogYWRkZWQgdG8gdGhlIHNhbXBs ZSBoZWFkZXIgdGhhdCB1c2Vyc3BhY2Ugc2Vlcy4KLQkgKgotCSAqIER1ZSB0byB0aGUgKyA0IGZv ciB0aGUgc2l6ZSBtZW1iZXI6IHdoZW4gd2UgY29weSBhIHJlcG9ydCB0byB0aGUKLQkgKiB1c2Vy c3BhY2UgZmFjaW5nIHBlcmYgYnVmZmVyIHdlIGFsd2F5cyBjb3B5IGFuIGFkZGl0aW9uYWwgNCBi eXRlcwotCSAqIGZyb20gdGhlIHN1YnNlcXVlbnQgcmVwb3J0IHRvIG1ha2UgdXAgZm9yIHRoZSBt aXNzIGFsaWdubWVudCwgYnV0Ci0JICogd2hlbiBhIHJlcG9ydCBpcyBhdCB0aGUgZW5kIG9mIHRo ZSBncHUgbWFwcGVkIGJ1ZmZlciB3ZSBuZWVkIHRvCi0JICogcmVhZCA0IGJ5dGVzIHBhc3QgdGhl IGVuZCBvZiB0aGUgYnVmZmVyLgotCSAqLwotCWJvID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRl dl9wcml2LT5kZXYsIE9BX0JVRkZFUl9TSVpFICsgUEFHRV9TSVpFKTsKLQlpZiAoYm8gPT0gTlVM TCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBPQSBidWZmZXJcbiIpOwotCQly ZXQgPSAtRU5PTUVNOwotCQlnb3RvIHVubG9jazsKLQl9Ci0JZGV2X3ByaXYtPm9hX3BtdS5vYV9i dWZmZXIub2JqID0gYm87Ci0KLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVs KGJvLCBJOTE1X0NBQ0hFX0xMQyk7CisJcmV0ID0gYWxsb2Nfb2JqKGRldl9wcml2LCAmYm8pOwog CWlmIChyZXQpCi0JCWdvdG8gZXJyX3VucmVmOworCQlyZXR1cm4gcmV0OwogCi0JLyogUHJlSFNX IHJlcXVpcmVkIDUxMksgYWxpZ25tZW50LCBIU1cgcmVxdWlyZXMgMTZNICovCi0JcmV0ID0gaTkx NV9nZW1fb2JqX2dndHRfcGluKGJvLCBTWl8xNk0sIDApOwotCWlmIChyZXQpCi0JCWdvdG8gZXJy X3VucmVmOworCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLm9iaiA9IGJvOwogCiAJZGV2X3By aXYtPm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNl dChibyk7CiAJZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuYWRkciA9IHZtYXBfb2FfYnVmZmVy KGJvKTsKQEAgLTMwOSwxNCArMzU2LDMwIEBAIHN0YXRpYyBpbnQgaW5pdF9vYV9idWZmZXIoc3Ry dWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCQkJIGRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmd0 dF9vZmZzZXQsCiAJCQkgZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuYWRkcik7CiAKLQlnb3Rv IHVubG9jazsKKwlyZXR1cm4gMDsKK30KIAotZXJyX3VucmVmOgotCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlKCZiby0+YmFzZSk7CitzdGF0aWMgaW50IGluaXRfb2FfcmNzX2J1ZmZlcihzdHJ1 Y3QgcGVyZl9ldmVudCAqZXZlbnQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KKwkJY29udGFpbmVyX29mKGV2ZW50LT5wbXUsIHR5cGVvZigqZGV2X3ByaXYpLCBvYV9w bXUucG11KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYm87CisJaW50IHJldDsKIAot dW5sb2NrOgotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKLQly ZXR1cm4gcmV0OworCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIub2JqKTsK KworCXJldCA9IGFsbG9jX29iaihkZXZfcHJpdiwgJmJvKTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLm9iaiA9IGJvOworCisJZGV2 X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmFkZHIgPSB2bWFwX29hX2J1ZmZlcihibyk7CisK KwlEUk1fREVCVUdfRFJJVkVSKCJPQSBSQ1MgQnVmZmVyIGluaXRpYWxpemVkLCB2YWRkciA9ICVw IiwKKwkJCSBkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIuYWRkcik7CisKKwlyZXR1cm4g MDsKIH0KIAogc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGhydGltZXJfc2FtcGxlKHN0cnVj dCBocnRpbWVyICpocnRpbWVyKQpAQCAtNDI3LDYgKzQ5MCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9v YV9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJY29udGFpbmVyX29mKGV2 ZW50LT5wbXUsIHR5cGVvZigqZGV2X3ByaXYpLCBvYV9wbXUucG11KTsKIAlkcm1faTkxNV9vYV9h dHRyX3Qgb2FfYXR0cjsKIAl1NjQgcmVwb3J0X2Zvcm1hdDsKKwl1bnNpZ25lZCBsb25nIGxvY2tf ZmxhZ3M7CiAJaW50IHJldCA9IDA7CiAKIAlpZiAoZXZlbnQtPmF0dHIudHlwZSAhPSBldmVudC0+ cG11LT50eXBlKQpAQCAtNDM5LDExICs1MDMsMjggQEAgc3RhdGljIGludCBpOTE1X29hX2V2ZW50 X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCS8qIFRvIGF2b2lkIHRoZSBjb21wbGV4 aXR5IG9mIGhhdmluZyB0byBhY2N1cmF0ZWx5IGZpbHRlcgogCSAqIGNvdW50ZXIgc25hcHNob3Rz IGFuZCBtYXJzaGFsIHRvIHRoZSBhcHByb3ByaWF0ZSBjbGllbnQKIAkgKiB3ZSBjdXJyZW50bHkg b25seSBhbGxvdyBleGNsdXNpdmUgYWNjZXNzICovCi0JaWYgKGRldl9wcml2LT5vYV9wbXUub2Ff YnVmZmVyLm9iaikKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPm9hX3BtdS5sb2NrLCBs b2NrX2ZsYWdzKTsKKwlpZiAoZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIub2JqKSB7CisJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5vYV9wbXUubG9jaywgbG9ja19mbGFncyk7 CiAJCXJldHVybiAtRUJVU1k7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2 LT5vYV9wbXUubG9jaywgbG9ja19mbGFncyk7CisKKwkvKgorCSAqIEluIGNhc2Ugb2YgbXVsdGlw bGUgY29udGV4dCBtb2RlLCB3ZSBuZWVkIHRvIGNoZWNrIGZvcgorCSAqIENBUF9TWVNfQURNSU4g Y2FwYWJpbGl0eSBhcyB3ZSBuZWVkIHRvIHByb2ZpbGUgYWxsIHRoZSBydW5uaW5nCisJICogY29u dGV4dHMKKwkgKi8KKwlpZiAob2FfYXR0ci5tdWx0aXBsZV9jb250ZXh0X21vZGUpIHsKKwkJaWYg KCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQorCQkJcmV0dXJuIC1FQUNDRVM7CisJCWRldl9wcml2 LT5vYV9wbXUubXVsdGlwbGVfY3R4X21vZGUgPSB0cnVlOworCX0KIAogCXJlcG9ydF9mb3JtYXQg PSBvYV9hdHRyLmZvcm1hdDsKIAlkZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5mb3JtYXQgPSBy ZXBvcnRfZm9ybWF0OworCWlmIChvYV9hdHRyLm11bHRpcGxlX2NvbnRleHRfbW9kZSkKKwkJZGV2 X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmZvcm1hdCA9IHJlcG9ydF9mb3JtYXQ7CiAJZGV2 X3ByaXYtPm9hX3BtdS5tZXRyaWNzX3NldCA9IG9hX2F0dHIubWV0cmljc19zZXQ7CiAKIAlpZiAo SVNfSEFTV0VMTChkZXZfcHJpdi0+ZGV2KSkgewpAQCAtNDU3LDYgKzUzOCw5IEBAIHN0YXRpYyBp bnQgaTkxNV9vYV9ldmVudF9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJCXJldHVy biAtRUlOVkFMOwogCiAJCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmZvcm1hdF9zaXplID0g c25hcHNob3Rfc2l6ZTsKKwkJaWYgKG9hX2F0dHIubXVsdGlwbGVfY29udGV4dF9tb2RlKQorCQkJ ZGV2X3ByaXYtPm9hX3BtdS5vYV9yY3NfYnVmZmVyLmZvcm1hdF9zaXplID0KKwkJCQkJc25hcHNo b3Rfc2l6ZTsKIAogCQlpZiAob2FfYXR0ci5tZXRyaWNzX3NldCA+IEk5MTVfT0FfTUVUUklDU19T RVRfTUFYKQogCQkJcmV0dXJuIC1FSU5WQUw7CkBAIC00NjUsNiArNTQ5LDcgQEAgc3RhdGljIGlu dCBpOTE1X29hX2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCQlyZXR1cm4g LUVOT0RFVjsKIAl9CiAKKwogCS8qIFNpbmNlIHdlIGFyZSBsaW1pdGVkIHRvIGFuIGV4cG9uZW50 aWFsIHNjYWxlIGZvcgogCSAqIHByb2dyYW1taW5nIHRoZSBPQSBzYW1wbGluZyBwZXJpb2Qgd2Ug ZG9uJ3QgYWxsb3cgdXNlcnNwYWNlCiAJICogdG8gcGFzcyBhIHByZWNpc2UgYXR0ci5zYW1wbGVf cGVyaW9kLiAqLwpAQCAtNTI4LDYgKzYxMywxMiBAQCBzdGF0aWMgaW50IGk5MTVfb2FfZXZlbnRf aW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAorCWlmIChvYV9hdHRyLm11bHRpcGxlX2NvbnRleHRfbW9kZSkgeworCQlyZXQgPSBpbml0X29h X3Jjc19idWZmZXIoZXZlbnQpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlC VUdfT04oZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNpdmVfZXZlbnQpOwogCWRldl9wcml2LT5vYV9w bXUuZXhjbHVzaXZlX2V2ZW50ID0gZXZlbnQ7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCA5OTJlMWU5 Li5kY2Y3Yzg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC05Miw3ICs5Miw4IEBAIHR5cGVkZWYgc3Ry dWN0IF9kcm1faTkxNV9vYV9hdHRyIHsKIAlfX3UzMiBjdHhfaWQ7CiAKIAlfX3U2NCBzaW5nbGVf Y29udGV4dCA6IDEsCi0JICAgICAgX19yZXNlcnZlZF8xIDogNjM7CisJCW11bHRpcGxlX2NvbnRl eHRfbW9kZToxLAorCQlfX3Jlc2VydmVkXzE6NjI7CiB9IGRybV9pOTE1X29hX2F0dHJfdDsKIAog LyogSGVhZGVyIGZvciBQRVJGX1JFQ09SRF9ERVZJQ0UgdHlwZSBldmVudHMgKi8KLS0gCjEuOC41 LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==