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, 5 Aug 2015 11:22:51 +0530 Message-ID: <1438753977-20335-3-git-send-email-sourab.gupta@intel.com> References: <1438753977-20335-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 12DE36E04C for ; Tue, 4 Aug 2015 22:50:47 -0700 (PDT) In-Reply-To: <1438753977-20335-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 Cgp2MjogRm9sbG93aW5nIGNoYW5nZXM6CiAgICAtIFNhdmUgdGhlIGd0dCBvZmZzZXQgd2hpbGUg cGlubmluZyB0aGUgYnVmZmVyLCB0byBiZSByZXRyaWV2ZWQgd2hlbgogICAgICByZXF1aXJlZC4K ICAgIC0gVXNlIHNwaW5fbG9jayBpbnN0ZWFkIG9mIHNwaW5fbG9ja19pcnFzYXZlCgpTaWduZWQt b2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgMTAgKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX3BlcmYuYyB8IDE3MCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgIHwgICAzICstCiAzIGZp bGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAppbmRleCAzNDM2ZjNiLi4wNTBiZGRhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKQEAgLTE5MzEsNiArMTkzMSw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJ Ym9vbCBldmVudF9hY3RpdmU7CiAKIAkJYm9vbCBwZXJpb2RpYzsKKwkJYm9vbCBtdWx0aXBsZV9j dHhfbW9kZTsKIAkJdTMyIHBlcmlvZF9leHBvbmVudDsKIAogCQl1MzIgbWV0cmljc19zZXQ7CkBA IC0xOTQ1LDYgKzE5NDYsMTUgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQkJaW50IGZv cm1hdF9zaXplOwogCQkJc3BpbmxvY2tfdCBmbHVzaF9sb2NrOwogCQl9IG9hX2J1ZmZlcjsKKwor CQkvKiBGaWVsZHMgZm9yIG11bHRpcGxlIGNvbnRleHQgY2FwdHVyZSBtb2RlICovCisJCXN0cnVj dCB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCQkJdTMyIGd0dF9vZmZz ZXQ7CisJCQl1OCAqYWRkcjsKKwkJCWludCBmb3JtYXQ7CisJCQlpbnQgZm9ybWF0X3NpemU7CisJ CX0gb2FfcmNzX2J1ZmZlcjsKIAl9IG9hX3BtdTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfcGVyZi5jCmluZGV4IGU3ZTBiMmIuLmZkMGMzYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfb2FfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfcGVyZi5jCkBAIC0xNjYsMTkgKzE2NiwzNiBAQCBzdGF0aWMgdm9pZCBmbHVzaF9vYV9z bmFwc2hvdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiBzdGF0aWMg dm9pZAotb2FfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitv YV9yY3NfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJ bXV0ZXhfbG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCXZ1bm1hcChpOTE1LT5vYV9w bXUub2FfcmNzX2J1ZmZlci5hZGRyKTsKKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihpOTE1 LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5vYmopOworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl KCZpOTE1LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5vYmotPmJhc2UpOworCW11dGV4X3VubG9jaygm aTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJc3Bpbl9sb2NrKCZpOTE1LT5vYV9wbXUubG9j ayk7CisJaTkxNS0+b2FfcG11Lm9hX3Jjc19idWZmZXIub2JqID0gTlVMTDsKKwlpOTE1LT5vYV9w bXUub2FfcmNzX2J1ZmZlci5ndHRfb2Zmc2V0ID0gMDsKKwlpOTE1LT5vYV9wbXUub2FfcmNzX2J1 ZmZlci5hZGRyID0gTlVMTDsKKwlzcGluX3VubG9jaygmaTkxNS0+b2FfcG11LmxvY2spOworfQog CitzdGF0aWMgdm9pZAorb2FfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCit7CisJbXV0ZXhfbG9jaygmaTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCXZ1bm1h cChpOTE1LT5vYV9wbXUub2FfYnVmZmVyLmFkZHIpOwogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3Vu cGluKGk5MTUtPm9hX3BtdS5vYV9idWZmZXIub2JqKTsKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZSgmaTkxNS0+b2FfcG11Lm9hX2J1ZmZlci5vYmotPmJhc2UpOworCW11dGV4X3VubG9jaygm aTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCisJc3Bpbl9sb2NrKCZpOTE1LT5vYV9wbXUubG9j ayk7CiAJaTkxNS0+b2FfcG11Lm9hX2J1ZmZlci5vYmogPSBOVUxMOwogCWk5MTUtPm9hX3BtdS5v YV9idWZmZXIuZ3R0X29mZnNldCA9IDA7CiAJaTkxNS0+b2FfcG11Lm9hX2J1ZmZlci5hZGRyID0g TlVMTDsKKwlzcGluX3VubG9jaygmaTkxNS0+b2FfcG11LmxvY2spOwogCi0JbXV0ZXhfdW5sb2Nr KCZpOTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfb2FfZXZl bnRfZGVzdHJveShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCkBAIC0yMDcsNiArMjI0LDkgQEAg c3RhdGljIHZvaWQgaTkxNV9vYV9ldmVudF9kZXN0cm95KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVu dCkKIAlJOTE1X1dSSVRFKEdEVF9DSElDS0VOX0JJVFMsIChJOTE1X1JFQUQoR0RUX0NISUNLRU5f QklUUykgJgogCQkJCSAgICAgIH5HVF9OT0FfRU5BQkxFKSk7CiAKKwlpZiAoZGV2X3ByaXYtPm9h X3BtdS5tdWx0aXBsZV9jdHhfbW9kZSkKKwkJb2FfcmNzX2J1ZmZlcl9kZXN0cm95KGRldl9wcml2 KTsKKwogCW9hX2J1ZmZlcl9kZXN0cm95KGRldl9wcml2KTsKIAogCUJVR19PTihkZXZfcHJpdi0+ b2FfcG11LmV4Y2x1c2l2ZV9ldmVudCAhPSBldmVudCk7CkBAIC0yMTYsNiArMjM2LDU5IEBAIHN0 YXRpYyB2b2lkIGk5MTVfb2FfZXZlbnRfZGVzdHJveShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQp CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwogfQogCitzdGF0aWMgaW50IGFsbG9j X29iaihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKipvYmopCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJv OworCWludCByZXQ7CisKKwkvKiBOQjogV2Ugb3ZlciBhbGxvY2F0ZSB0aGUgT0EgYnVmZmVyIGR1 ZSB0byB0aGUgd2F5IHJhdyBzYW1wbGUgZGF0YQorCSAqIGdldHMgY29waWVkIGZyb20gdGhlIGdw dSBtYXBwZWQgY2lyY3VsYXIgYnVmZmVyIGludG8gdGhlIHBlcmYKKwkgKiBjaXJjdWxhciBidWZm ZXIgc28gdGhhdCBvbmx5IG9uZSBjb3B5IGlzIHJlcXVpcmVkLgorCSAqCisJICogRm9yIGVhY2gg cGVyZiBzYW1wbGUgKHJhdy0+c2l6ZSArIDQpIG5lZWRzIHRvIGJlIDggYnl0ZSBhbGlnbmVkLAor CSAqIHdoZXJlIHRoZSA0IGNvcnJlc3BvbmRzIHRvIHRoZSAzMmJpdCByYXctPnNpemUgbWVtYmVy IHRoYXQncworCSAqIGFkZGVkIHRvIHRoZSBzYW1wbGUgaGVhZGVyIHRoYXQgdXNlcnNwYWNlIHNl ZXMuCisJICoKKwkgKiBEdWUgdG8gdGhlICsgNCBmb3IgdGhlIHNpemUgbWVtYmVyOiB3aGVuIHdl IGNvcHkgYSByZXBvcnQgdG8gdGhlCisJICogdXNlcnNwYWNlIGZhY2luZyBwZXJmIGJ1ZmZlciB3 ZSBhbHdheXMgY29weSBhbiBhZGRpdGlvbmFsIDQgYnl0ZXMKKwkgKiBmcm9tIHRoZSBzdWJzZXF1 ZW50IHJlcG9ydCB0byBtYWtlIHVwIGZvciB0aGUgbWlzcyBhbGlnbm1lbnQsIGJ1dAorCSAqIHdo ZW4gYSByZXBvcnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgZ3B1IG1hcHBlZCBidWZmZXIgd2UgbmVl ZCB0bworCSAqIHJlYWQgNCBieXRlcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KKwkgKi8K KwlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisKKwlyZXQgPSBpOTE1X211dGV4X2xv Y2tfaW50ZXJydXB0aWJsZShkZXZfcHJpdi0+ZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsK KworCWJvID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldl9wcml2LT5kZXYsIE9BX0JVRkZFUl9T SVpFICsgUEFHRV9TSVpFKTsKKwlpZiAoYm8gPT0gTlVMTCkgeworCQlEUk1fRVJST1IoIkZhaWxl ZCB0byBhbGxvY2F0ZSBPQSBidWZmZXJcbiIpOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIHVu bG9jazsKKwl9CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChibywgSTkx NV9DQUNIRV9MTEMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3VucmVmOworCisJLyogUHJlSFNX IHJlcXVpcmVkIDUxMksgYWxpZ25tZW50LCBIU1cgcmVxdWlyZXMgMTZNICovCisJcmV0ID0gaTkx NV9nZW1fb2JqX2dndHRfcGluKGJvLCBTWl8xNk0sIDApOworCWlmIChyZXQpCisJCWdvdG8gZXJy X3VucmVmOworCisJKm9iaiA9IGJvOworCWdvdG8gdW5sb2NrOworCitlcnJfdW5yZWY6CisJZHJt X2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmJvLT5iYXNlKTsKK3VubG9jazoKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CitvdXQ6CisJaW50ZWxfcnVudGltZV9w bV9wdXQoZGV2X3ByaXYpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyB2b2lkICp2bWFwX29h X2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCWludCBpOwpAQCAt MjU3LDQyICszMzAsMTMgQEAgc3RhdGljIGludCBpbml0X29hX2J1ZmZlcihzdHJ1Y3QgcGVyZl9l dmVudCAqZXZlbnQpCiAJQlVHX09OKCFJU19IQVNXRUxMKGRldl9wcml2LT5kZXYpKTsKIAlCVUdf T04oZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIub2JqKTsKIAotCXJldCA9IGk5MTVfbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKGRldl9wcml2LT5kZXYpOwotCWlmIChyZXQpCi0JCXJldHVybiBy ZXQ7Ci0KIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuZmx1c2hf bG9jayk7CiAKLQkvKiBOQjogV2Ugb3ZlciBhbGxvY2F0ZSB0aGUgT0EgYnVmZmVyIGR1ZSB0byB0 aGUgd2F5IHJhdyBzYW1wbGUgZGF0YQotCSAqIGdldHMgY29waWVkIGZyb20gdGhlIGdwdSBtYXBw ZWQgY2lyY3VsYXIgYnVmZmVyIGludG8gdGhlIHBlcmYKLQkgKiBjaXJjdWxhciBidWZmZXIgc28g dGhhdCBvbmx5IG9uZSBjb3B5IGlzIHJlcXVpcmVkLgotCSAqCi0JICogRm9yIGVhY2ggcGVyZiBz YW1wbGUgKHJhdy0+c2l6ZSArIDQpIG5lZWRzIHRvIGJlIDggYnl0ZSBhbGlnbmVkLAotCSAqIHdo ZXJlIHRoZSA0IGNvcnJlc3BvbmRzIHRvIHRoZSAzMmJpdCByYXctPnNpemUgbWVtYmVyIHRoYXQn cwotCSAqIGFkZGVkIHRvIHRoZSBzYW1wbGUgaGVhZGVyIHRoYXQgdXNlcnNwYWNlIHNlZXMuCi0J ICoKLQkgKiBEdWUgdG8gdGhlICsgNCBmb3IgdGhlIHNpemUgbWVtYmVyOiB3aGVuIHdlIGNvcHkg YSByZXBvcnQgdG8gdGhlCi0JICogdXNlcnNwYWNlIGZhY2luZyBwZXJmIGJ1ZmZlciB3ZSBhbHdh eXMgY29weSBhbiBhZGRpdGlvbmFsIDQgYnl0ZXMKLQkgKiBmcm9tIHRoZSBzdWJzZXF1ZW50IHJl cG9ydCB0byBtYWtlIHVwIGZvciB0aGUgbWlzcyBhbGlnbm1lbnQsIGJ1dAotCSAqIHdoZW4gYSBy ZXBvcnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgZ3B1IG1hcHBlZCBidWZmZXIgd2UgbmVlZCB0bwot CSAqIHJlYWQgNCBieXRlcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KLQkgKi8KLQlibyA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXZfcHJpdi0+ZGV2LCBPQV9CVUZGRVJfU0laRSArIFBB R0VfU0laRSk7Ci0JaWYgKGJvID09IE5VTEwpIHsKLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxs b2NhdGUgT0EgYnVmZmVyXG4iKTsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byB1bmxvY2s7Ci0J fQotCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLm9iaiA9IGJvOwotCi0JcmV0ID0gaTkxNV9n ZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChibywgSTkxNV9DQUNIRV9MTEMpOworCXJldCA9IGFs bG9jX29iaihkZXZfcHJpdiwgJmJvKTsKIAlpZiAocmV0KQotCQlnb3RvIGVycl91bnJlZjsKKwkJ cmV0dXJuIHJldDsKIAotCS8qIFByZUhTVyByZXF1aXJlZCA1MTJLIGFsaWdubWVudCwgSFNXIHJl cXVpcmVzIDE2TSAqLwotCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihibywgU1pfMTZNLCAw KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91bnJlZjsKKwlkZXZfcHJpdi0+b2FfcG11Lm9hX2J1 ZmZlci5vYmogPSBibzsKIAogCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmd0dF9vZmZzZXQg PSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoYm8pOwogCWRldl9wcml2LT5vYV9wbXUub2FfYnVm ZmVyLmFkZHIgPSB2bWFwX29hX2J1ZmZlcihibyk7CkBAIC0zMDksMTQgKzM1MywzMSBAQCBzdGF0 aWMgaW50IGluaXRfb2FfYnVmZmVyKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAkJCSBkZXZf cHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5ndHRfb2Zmc2V0LAogCQkJIGRldl9wcml2LT5vYV9wbXUu b2FfYnVmZmVyLmFkZHIpOwogCi0JZ290byB1bmxvY2s7CisJcmV0dXJuIDA7Cit9CiAKLWVycl91 bnJlZjoKLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmYm8tPmJhc2UpOworc3RhdGljIGlu dCBpbml0X29hX3Jjc19idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CisJCWNvbnRhaW5lcl9vZihldmVudC0+cG11 LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7CisJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmJvOworCWludCByZXQ7CiAKLXVubG9jazoKLQltdXRleF91bmxvY2soJmRldl9wcml2 LT5kZXYtPnN0cnVjdF9tdXRleCk7Ci0JcmV0dXJuIHJldDsKKwlCVUdfT04oZGV2X3ByaXYtPm9h X3BtdS5vYV9yY3NfYnVmZmVyLm9iaik7CisKKwlyZXQgPSBhbGxvY19vYmooZGV2X3ByaXYsICZi byk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWRldl9wcml2LT5vYV9wbXUub2FfcmNz X2J1ZmZlci5vYmogPSBibzsKKwlkZXZfcHJpdi0+b2FfcG11Lm9hX3Jjc19idWZmZXIuZ3R0X29m ZnNldCA9CisJCQkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGJvKTsKKwlkZXZfcHJpdi0+b2Ff cG11Lm9hX3Jjc19idWZmZXIuYWRkciA9IHZtYXBfb2FfYnVmZmVyKGJvKTsKKworCURSTV9ERUJV R19EUklWRVIoIk9BIFJDUyBCdWZmZXIgaW5pdGlhbGl6ZWQsIHZhZGRyID0gJXAiLAorCQkJIGRl dl9wcml2LT5vYV9wbXUub2FfcmNzX2J1ZmZlci5hZGRyKTsKKworCXJldHVybiAwOwogfQogCiBz dGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgaHJ0aW1lcl9zYW1wbGUoc3RydWN0IGhydGltZXIg KmhydGltZXIpCkBAIC00MzksMTEgKzUwMCwyOCBAQCBzdGF0aWMgaW50IGk5MTVfb2FfZXZlbnRf aW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJLyogVG8gYXZvaWQgdGhlIGNvbXBsZXhp dHkgb2YgaGF2aW5nIHRvIGFjY3VyYXRlbHkgZmlsdGVyCiAJICogY291bnRlciBzbmFwc2hvdHMg YW5kIG1hcnNoYWwgdG8gdGhlIGFwcHJvcHJpYXRlIGNsaWVudAogCSAqIHdlIGN1cnJlbnRseSBv bmx5IGFsbG93IGV4Y2x1c2l2ZSBhY2Nlc3MgKi8KLQlpZiAoZGV2X3ByaXYtPm9hX3BtdS5vYV9i dWZmZXIub2JqKQorCXNwaW5fbG9jaygmZGV2X3ByaXYtPm9hX3BtdS5sb2NrKTsKKwlpZiAoZGV2 X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIub2JqKSB7CisJCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+ b2FfcG11LmxvY2spOwogCQlyZXR1cm4gLUVCVVNZOworCX0KKwlzcGluX3VubG9jaygmZGV2X3By aXYtPm9hX3BtdS5sb2NrKTsKKworCS8qCisJICogSW4gY2FzZSBvZiBtdWx0aXBsZSBjb250ZXh0 IG1vZGUsIHdlIG5lZWQgdG8gY2hlY2sgZm9yCisJICogQ0FQX1NZU19BRE1JTiBjYXBhYmlsaXR5 IGFzIHdlIG5lZWQgdG8gcHJvZmlsZSBhbGwgdGhlIHJ1bm5pbmcKKwkgKiBjb250ZXh0cworCSAq LworCWlmIChvYV9hdHRyLm11bHRpcGxlX2NvbnRleHRfbW9kZSkgeworCQlpZiAoIWNhcGFibGUo Q0FQX1NZU19BRE1JTikpCisJCQlyZXR1cm4gLUVBQ0NFUzsKKwkJZGV2X3ByaXYtPm9hX3BtdS5t dWx0aXBsZV9jdHhfbW9kZSA9IHRydWU7CisJfQogCiAJcmVwb3J0X2Zvcm1hdCA9IG9hX2F0dHIu Zm9ybWF0OwogCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmZvcm1hdCA9IHJlcG9ydF9mb3Jt YXQ7CisJaWYgKG9hX2F0dHIubXVsdGlwbGVfY29udGV4dF9tb2RlKQorCQlkZXZfcHJpdi0+b2Ff cG11Lm9hX3Jjc19idWZmZXIuZm9ybWF0ID0gcmVwb3J0X2Zvcm1hdDsKIAlkZXZfcHJpdi0+b2Ff cG11Lm1ldHJpY3Nfc2V0ID0gb2FfYXR0ci5tZXRyaWNzX3NldDsKIAogCWlmIChJU19IQVNXRUxM KGRldl9wcml2LT5kZXYpKSB7CkBAIC00NTcsNiArNTM1LDkgQEAgc3RhdGljIGludCBpOTE1X29h X2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCQkJcmV0dXJuIC1FSU5WQUw7 CiAKIAkJZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuZm9ybWF0X3NpemUgPSBzbmFwc2hvdF9z aXplOworCQlpZiAob2FfYXR0ci5tdWx0aXBsZV9jb250ZXh0X21vZGUpCisJCQlkZXZfcHJpdi0+ b2FfcG11Lm9hX3Jjc19idWZmZXIuZm9ybWF0X3NpemUgPQorCQkJCQlzbmFwc2hvdF9zaXplOwog CiAJCWlmIChvYV9hdHRyLm1ldHJpY3Nfc2V0ID4gSTkxNV9PQV9NRVRSSUNTX1NFVF9NQVgpCiAJ CQlyZXR1cm4gLUVJTlZBTDsKQEAgLTQ2NSw2ICs1NDYsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ff ZXZlbnRfaW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJCXJldHVybiAtRU5PREVWOwog CX0KIAorCiAJLyogU2luY2Ugd2UgYXJlIGxpbWl0ZWQgdG8gYW4gZXhwb25lbnRpYWwgc2NhbGUg Zm9yCiAJICogcHJvZ3JhbW1pbmcgdGhlIE9BIHNhbXBsaW5nIHBlcmlvZCB3ZSBkb24ndCBhbGxv dyB1c2Vyc3BhY2UKIAkgKiB0byBwYXNzIGEgcHJlY2lzZSBhdHRyLnNhbXBsZV9wZXJpb2QuICov CkBAIC01MjgsNiArNjEwLDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9ldmVudF9pbml0KHN0cnVj dCBwZXJmX2V2ZW50ICpldmVudCkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJaWYgKG9h X2F0dHIubXVsdGlwbGVfY29udGV4dF9tb2RlKSB7CisJCXJldCA9IGluaXRfb2FfcmNzX2J1ZmZl cihldmVudCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwogCUJVR19PTihkZXZf cHJpdi0+b2FfcG11LmV4Y2x1c2l2ZV9ldmVudCk7CiAJZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNp dmVfZXZlbnQgPSBldmVudDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IDlkODY2ZTguLmRjZjdjODcg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKQEAgLTkyLDcgKzkyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9p OTE1X29hX2F0dHIgewogCV9fdTMyIGN0eF9pZDsKIAogCV9fdTY0IHNpbmdsZV9jb250ZXh0IDog MSwKLQkJX19yZXNlcnZlZF8xIDogNjM7CisJCW11bHRpcGxlX2NvbnRleHRfbW9kZToxLAorCQlf X3Jlc2VydmVkXzE6NjI7CiB9IGRybV9pOTE1X29hX2F0dHJfdDsKIAogLyogSGVhZGVyIGZvciBQ RVJGX1JFQ09SRF9ERVZJQ0UgdHlwZSBldmVudHMgKi8KLS0gCjEuOC41LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==