From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 4/8] drm/i915: Add mechanism for forwarding async OA counter snapshots through perf Date: Mon, 22 Jun 2015 15:20:15 +0530 Message-ID: <1434966619-3979-5-git-send-email-sourab.gupta@intel.com> References: <1434966619-3979-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 3BE6F6E5CA for ; Mon, 22 Jun 2015 02:48:45 -0700 (PDT) In-Reply-To: <1434966619-3979-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 RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBh ZGRzIHRoZSBtZWNoYW5pc20gZm9yIGZvcndhcmRpbmcgdGhlIGFzeW5jaHJvbm91cyBPQSBzbmFw c2hvdHMKdGhyb3VnaCB0aGUgcGVyZiBldmVudCBpbnRlcmZhY2UuCgpFYWNoIG5vZGUgb2YgZGF0 YSBjb2xsZWN0ZWQgaXMgZm9yd2FyZGVkIGFzIGEgc2VwYXJhdGUgcGVyZiBzYW1wbGUuCkEgc2lu Z2xlIHNuYXBzaG90IHdpbGwgaGF2ZSB0d28gZmllbGRzLiBGaXJzdCBpcyB0aGUgcmF3IHJlcG9y dCBhbmQgc2Vjb25kCmZpZWxkIGlzIGEgZm9vdGVyIHdpdGggbWV0YWRhdGEgY29ycmVzcG9uZGlu ZyB0byBzbmFwc2hvdCBzdWNoIGFzIGN0eF9pZCwgcGlkLgpUaGUgc2l6ZSBvZiB0aGUgcmF3IHJl cG9ydCBpcyB0aGUgb25lIHNwZWNpZmllZCBkdXJpbmcgZXZlbnQgaW5pdC4KVGhlIHNhbXBsZXMg d2lsbCBiZSBmb3J3YXJkZWQgaW4gYSB3b3JrcXVldWUsIHdoaWNoIGlzIHNjaGVkdWxlZCB3aGVu IGhydGltZXIKdHJpZ2dlcnMuIEluIHRoZSB3b3JrcXVldWUsIGVhY2ggbm9kZSBvZiBkYXRhIGNv bGxlY3RlZCB3aWxsIGJlIGZvcndhcmRlZCBhcyBhCnNlcGFyYXRlIHBlcmYgc2FtcGxlLgoKU2ln bmVkLW9mZi1ieTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X29hX3BlcmYuYyB8IDE1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZGExNTBiYy4uZDczOGY3YSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xNjkxLDcgKzE2OTEsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVf b2FfYXN5bmNfcXVldWVfaGVhZGVyIHsKIHN0cnVjdCBkcm1faTkxNV9vYV9hc3luY19ub2RlX2lu Zm8gewogCV9fdTMyIHBpZDsKIAlfX3UzMiBjdHhfaWQ7Ci0JX191MzIgcGFkWzE0XTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKKwlfX3UzMiBwYWRbMTJdOwogfTsKIAogc3Ry dWN0IGRybV9pOTE1X29hX2FzeW5jX25vZGUgewpAQCAtMTk3NSw3ICsxOTc2LDkgQEAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgewogCQkJdTMyIHRhaWw7CiAJCQlpbnQgZm9ybWF0OwogCQkJaW50 IGZvcm1hdF9zaXplOworCQkJdTggKnNuYXBzaG90OwogCQl9IG9hX2FzeW5jX2J1ZmZlcjsKKwkJ c3RydWN0IHdvcmtfc3RydWN0IHdvcmtfdGltZXI7CiAJfSBvYV9wbXU7CiAjZW5kaWYKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYwppbmRleCA0MTliNmE1Li4zYmY0YzQ3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYwpAQCAtMjUsNiArMjUsMTI4IEBAIHN0YXRpYyBpbnQg aHN3X3BlcmZfZm9ybWF0X3NpemVzW10gPSB7CiAJNjQgICAvKiBDNF9COF9IU1cgKi8KIH07CiAK K3N0YXRpYyB2b2lkIGluaXRfb2FfYXN5bmNfYnVmX3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfcXVldWVfaGVhZGVy ICpoZHIgPQorCQkoc3RydWN0IGRybV9pOTE1X29hX2FzeW5jX3F1ZXVlX2hlYWRlciAqKQorCQlk ZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5hZGRyOworCXZvaWQgKmRhdGFfcHRyOwor CisJaGRyLT5zaXplX2luX2J5dGVzID0gZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIu b2JqLT5iYXNlLnNpemU7CisJLyogNjQgYml0IGFsaWdubWVudCBmb3IgT0Egbm9kZSBhZGRyZXNz ICovCisJZGF0YV9wdHIgPSBQVFJfQUxJR04oKHZvaWQgKikoaGRyICsgMSksIDY0KTsKKwloZHIt PmRhdGFfb2Zmc2V0ID0gKF9fdTY0KShkYXRhX3B0ciAtICh2b2lkICopaGRyKTsKKworCWhkci0+ bm9kZV9jb3VudCA9IDA7CisJaGRyLT53cmFwX2NvdW50ID0gMDsKK30KKworc3RhdGljIHZvaWQg Zm9yd2FyZF9vbmVfb2FfYXN5bmNfc2FtcGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKKwkJCQlzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfbm9kZSAqbm9kZSkKK3sKKwlzdHJ1 Y3QgcGVyZl9zYW1wbGVfZGF0YSBkYXRhOworCXN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCA9IGRl dl9wcml2LT5vYV9wbXUuZXhjbHVzaXZlX2V2ZW50OworCWludCBmb3JtYXRfc2l6ZSwgc25hcHNo b3Rfc2l6ZTsKKwl1OCAqc25hcHNob3Q7CisJc3RydWN0IHBlcmZfcmF3X3JlY29yZCByYXc7CisK Kwlmb3JtYXRfc2l6ZSA9IGRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLmZvcm1hdF9z aXplOworCXNuYXBzaG90X3NpemUgPSBmb3JtYXRfc2l6ZSArCisJCQlzaXplb2Yoc3RydWN0IGRy bV9pOTE1X29hX2FzeW5jX25vZGVfZm9vdGVyKTsKKwlzbmFwc2hvdCA9IGRldl9wcml2LT5vYV9w bXUub2FfYXN5bmNfYnVmZmVyLnNuYXBzaG90OworCisJbWVtY3B5KHNuYXBzaG90LCBub2RlLCBm b3JtYXRfc2l6ZSk7CisJbWVtY3B5KHNuYXBzaG90ICsgZm9ybWF0X3NpemUsICZub2RlLT5ub2Rl X2luZm8sCisJCQlzaXplb2Yoc3RydWN0IGRybV9pOTE1X29hX2FzeW5jX25vZGVfZm9vdGVyKSk7 CisKKwlwZXJmX3NhbXBsZV9kYXRhX2luaXQoJmRhdGEsIDAsIGV2ZW50LT5ody5sYXN0X3Blcmlv ZCk7CisKKwkvKiBOb3RlOiB0aGUgY29tYmluZWQgdTMyIHJhdy0+c2l6ZSBtZW1iZXIgKyByYXcg ZGF0YSBpdHNlbGYgbXVzdCBiZSA4CisJICogYnl0ZSBhbGlnbmVkLiAoU2VlIG5vdGUgaW4gaW5p dF9vYV9idWZmZXIgZm9yIG1vcmUgZGV0YWlscykgKi8KKwlyYXcuc2l6ZSA9IHNuYXBzaG90X3Np emUgKyA0OworCXJhdy5kYXRhID0gc25hcHNob3Q7CisKKwlkYXRhLnJhdyA9ICZyYXc7CisKKwlw ZXJmX2V2ZW50X292ZXJmbG93KGV2ZW50LCAmZGF0YSwgJmRldl9wcml2LT5vYV9wbXUuZHVtbXlf cmVncyk7Cit9CisKK3ZvaWQgaTkxNV9vYV9hc3luY193YWl0X2dwdShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGRybV9pOTE1X29hX2FzeW5jX3F1ZXVlX2hl YWRlciAqaGRyID0KKwkJKHN0cnVjdCBkcm1faTkxNV9vYV9hc3luY19xdWV1ZV9oZWFkZXIgKikK KwkJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuYWRkcjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfb2FfYXN5bmNfbm9kZSAqZmlyc3Rfbm9kZSwgKm5vZGU7CisJaW50IHJldCwgaGVhZCwgdGFp bCwgbnVtX25vZGVzOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOworCisJZmly c3Rfbm9kZSA9IChzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfbm9kZSAqKQorCQkJKChjaGFyICop aGRyICsgaGRyLT5kYXRhX29mZnNldCk7CisJbnVtX25vZGVzID0gKGhkci0+c2l6ZV9pbl9ieXRl cyAtIGhkci0+ZGF0YV9vZmZzZXQpIC8KKwkJCXNpemVvZigqbm9kZSk7CisKKworCXRhaWwgPSBo ZHItPm5vZGVfY291bnQ7CisJaGVhZCA9IGRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVy LmhlYWQ7CisKKwkvKiB3YWl0IGZvciBhbGwgcmVxdWVzdHMgdG8gY29tcGxldGUqLworCXdoaWxl ICgoaGVhZCAlIG51bV9ub2RlcykgIT0gKHRhaWwgJSBudW1fbm9kZXMpKSB7CisJCW5vZGUgPSAm Zmlyc3Rfbm9kZVtoZWFkICUgbnVtX25vZGVzXTsKKwkJcmVxID0gbm9kZS0+bm9kZV9pbmZvLnJl cTsKKwkJaWYgKHJlcSkgeworCQkJaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEs IHRydWUpKSB7CisJCQkJcmV0ID0gaTkxNV93YWl0X3JlcXVlc3QocmVxKTsKKwkJCQlpZiAocmV0 KQorCQkJCQlEUk1fREVCVUdfRFJJVkVSKAorCQkJCQkib2EgYXN5bmM6IGZhaWxlZCB0byB3YWl0 XG4iKTsKKwkJCX0KKwkJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZub2RlLT5ub2RlX2luZm8u cmVxLCBOVUxMKTsKKwkJfQorCQloZWFkKys7CisJfQorfQorCit2b2lkIGZvcndhcmRfb2FfYXN5 bmNfc25hcHNob3RzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KKwkJY29udGFpbmVyX29mKF9fd29yaywgdHlw ZW9mKCpkZXZfcHJpdiksCisJCQlvYV9wbXUud29ya190aW1lcik7CisJc3RydWN0IGRybV9pOTE1 X29hX2FzeW5jX3F1ZXVlX2hlYWRlciAqaGRyID0KKwkJKHN0cnVjdCBkcm1faTkxNV9vYV9hc3lu Y19xdWV1ZV9oZWFkZXIgKikKKwkJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuYWRk cjsKKwlzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfbm9kZSAqZmlyc3Rfbm9kZSwgKm5vZGU7CisJ aW50IHJldCwgaGVhZCwgdGFpbCwgbnVtX25vZGVzOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxOworCisJZmlyc3Rfbm9kZSA9IChzdHJ1Y3QgZHJtX2k5MTVfb2FfYXN5bmNfbm9k ZSAqKQorCQkJKChjaGFyICopaGRyICsgaGRyLT5kYXRhX29mZnNldCk7CisJbnVtX25vZGVzID0g KGhkci0+c2l6ZV9pbl9ieXRlcyAtIGhkci0+ZGF0YV9vZmZzZXQpIC8KKwkJCXNpemVvZigqbm9k ZSk7CisKKwlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXZfcHJpdi0+ZGV2 KTsKKwlpZiAocmV0KQorCQlyZXR1cm47CisKKwl0YWlsID0gaGRyLT5ub2RlX2NvdW50OworCWhl YWQgPSBkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5oZWFkOworCisJd2hpbGUgKCho ZWFkICUgbnVtX25vZGVzKSAhPSAodGFpbCAlIG51bV9ub2RlcykpIHsKKwkJbm9kZSA9ICZmaXJz dF9ub2RlW2hlYWQgJSBudW1fbm9kZXNdOworCQlyZXEgPSBub2RlLT5ub2RlX2luZm8ucmVxOwor CQlpZiAocmVxICYmIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSwgdHJ1ZSkpIHsKKwkJ CWZvcndhcmRfb25lX29hX2FzeW5jX3NhbXBsZShkZXZfcHJpdiwgbm9kZSk7CisJCQlpOTE1X2dl bV9yZXF1ZXN0X2Fzc2lnbigmbm9kZS0+bm9kZV9pbmZvLnJlcSwgTlVMTCk7CisJCQloZWFkKys7 CisJCX0gZWxzZQorCQkJYnJlYWs7CisJfQorCisJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19i dWZmZXIudGFpbCA9IHRhaWw7CisJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuaGVh ZCA9IGhlYWQ7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7 Cit9CisKIHN0YXRpYyB2b2lkIGZvcndhcmRfb25lX29hX3NuYXBzaG90X3RvX2V2ZW50KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJICAgICB1OCAqc25hcHNob3QsCiAJ CQkJCSAgICAgc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQpAQCAtNTgsNiArMTgwLDE0IEBAIHN0 YXRpYyB1MzIgZm9yd2FyZF9vYV9zbmFwc2hvdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCXU4ICpzbmFwc2hvdDsKIAl1MzIgdGFrZW47CiAKKwkvKgorCSAqIFNjaGVkdWxl IGEgd3EgdG8gZm9yd2FyZCB0aGUgYXN5bmMgc2FtcGxlcyBjb2xsZWN0ZWQuIFdlIHNjaGVkdWxl CisJICogd3EgaGVyZSwgc2luY2UgaXQgcmVxdWlyZXMgZGV2aWNlIG11dGV4IHRvIGJlIHRha2Vu IHdoaWNoIGNhbid0IGJlCisJICogZG9uZSBoZXJlIGJlY2F1c2Ugb2YgYXRvbWljIGNvbnRleHQK KwkgKi8KKwlpZiAoZGV2X3ByaXYtPm9hX3BtdS5hc3luY19zYW1wbGVfbW9kZSkKKwkJc2NoZWR1 bGVfd29yaygmZGV2X3ByaXYtPm9hX3BtdS53b3JrX3RpbWVyKTsKKwogCWhlYWQgLT0gZGV2X3By aXYtPm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldDsKIAl0YWlsIC09IGRldl9wcml2LT5vYV9w bXUub2FfYnVmZmVyLmd0dF9vZmZzZXQ7CiAKQEAgLTE3Niw2ICszMDYsOCBAQCBvYV9hc3luY19i dWZmZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWk5MTUtPm9h X3BtdS5vYV9hc3luY19idWZmZXIub2JqID0gTlVMTDsKIAlpOTE1LT5vYV9wbXUub2FfYXN5bmNf YnVmZmVyLmFkZHIgPSBOVUxMOworCWtmcmVlKGk5MTUtPm9hX3BtdS5vYV9hc3luY19idWZmZXIu c25hcHNob3QpOworCiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7CiB9 CiAKQEAgLTM1OCw3ICs0OTAsNyBAQCBzdGF0aWMgaW50IGluaXRfYXN5bmNfb2FfYnVmZmVyKHN0 cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPQogCQljb250YWluZXJfb2YoZXZlbnQtPnBtdSwgdHlwZW9mKCpkZXZfcHJpdiksIG9hX3Bt dS5wbXUpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKLQlpbnQgcmV0OworCWlu dCBzbmFwc2hvdF9zaXplLCByZXQ7CiAKIAlCVUdfT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYtPmRl dikpOwogCUJVR19PTihkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5vYmopOwpAQCAt Mzc0LDYgKzUwNiwxMiBAQCBzdGF0aWMgaW50IGluaXRfYXN5bmNfb2FfYnVmZmVyKHN0cnVjdCBw ZXJmX2V2ZW50ICpldmVudCkKIAlkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5vYmog PSBibzsKIAogCWRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLmFkZHIgPSB2bWFwX29h X2J1ZmZlcihibyk7CisJaW5pdF9vYV9hc3luY19idWZfcXVldWUoZGV2X3ByaXYpOworCisJc25h cHNob3Rfc2l6ZSA9IGRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLmZvcm1hdF9zaXpl ICsKKwkJCQlzaXplb2Yoc3RydWN0IGRybV9pOTE1X29hX2FzeW5jX25vZGVfZm9vdGVyKTsKKwlk ZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5zbmFwc2hvdCA9CisJCQlrbWFsbG9jKHNu YXBzaG90X3NpemUsIEdGUF9LRVJORUwpOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiT0EgQXN5bmMg QnVmZmVyIGluaXRpYWxpemVkLCB2YWRkciA9ICVwIiwKIAkJCSBkZXZfcHJpdi0+b2FfcG11Lm9h X2FzeW5jX2J1ZmZlci5hZGRyKTsKQEAgLTgxNCw2ICs5NTIsMTEgQEAgc3RhdGljIHZvaWQgaTkx NV9vYV9ldmVudF9zdG9wKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwgaW50IGZsYWdzKQogCQlm bHVzaF9vYV9zbmFwc2hvdHMoZGV2X3ByaXYsIGZhbHNlKTsKIAl9CiAKKwlpZiAoZGV2X3ByaXYt Pm9hX3BtdS5hc3luY19zYW1wbGVfbW9kZSkgeworCQlkZXZfcHJpdi0+b2FfcG11Lm9hX2FzeW5j X2J1ZmZlci50YWlsID0gMDsKKwkJZGV2X3ByaXYtPm9hX3BtdS5vYV9hc3luY19idWZmZXIuaGVh ZCA9IDA7CisJfQorCiAJZXZlbnQtPmh3LnN0YXRlID0gUEVSRl9IRVNfU1RPUFBFRDsKIH0KIApA QCAtODQ0LDcgKzk4NywxNSBAQCBzdGF0aWMgaW50IGk5MTVfb2FfZXZlbnRfZmx1c2goc3RydWN0 IHBlcmZfZXZlbnQgKmV2ZW50KQogCWlmIChldmVudC0+YXR0ci5zYW1wbGVfcGVyaW9kKSB7CiAJ CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0KIAkJCWNvbnRhaW5lcl9vZihldmVudC0+ cG11LCB0eXBlb2YoKmk5MTUpLCBvYV9wbXUucG11KTsKKwkJaW50IHJldDsKIAorCQlpZiAoaTkx NS0+b2FfcG11LmFzeW5jX3NhbXBsZV9tb2RlKSB7CisJCQlyZXQgPSBpOTE1X211dGV4X2xvY2tf aW50ZXJydXB0aWJsZShpOTE1LT5kZXYpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0Owor CQkJaTkxNV9vYV9hc3luY193YWl0X2dwdShpOTE1KTsKKwkJCW11dGV4X3VubG9jaygmaTkxNS0+ ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQl9CiAJCWZsdXNoX29hX3NuYXBzaG90cyhpOTE1LCB0cnVl KTsKIAl9CiAKQEAgLTk0MCw2ICsxMDkxLDggQEAgdm9pZCBpOTE1X29hX3BtdV9yZWdpc3Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWhydGltZXJfaW5pdCgmaTkxNS0+b2FfcG11LnRpbWVy LCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwogCWk5MTUtPm9hX3BtdS50aW1l ci5mdW5jdGlvbiA9IGhydGltZXJfc2FtcGxlOwogCisJSU5JVF9XT1JLKCZpOTE1LT5vYV9wbXUu d29ya190aW1lciwgZm9yd2FyZF9vYV9hc3luY19zbmFwc2hvdHNfd29yayk7CisKIAlzcGluX2xv Y2tfaW5pdCgmaTkxNS0+b2FfcG11LmxvY2spOwogCiAJaTkxNS0+b2FfcG11LnBtdS5jYXBhYmls aXRpZXMgID0gUEVSRl9QTVVfQ0FQX0lTX0RFVklDRTsKQEAgLTk2OSw2ICsxMTIyLDkgQEAgdm9p ZCBpOTE1X29hX3BtdV91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGk5 MTUtPm9hX3BtdS5wbXUuZXZlbnRfaW5pdCA9PSBOVUxMKQogCQlyZXR1cm47CiAKKwlpZiAoaTkx NS0+b2FfcG11LmFzeW5jX3NhbXBsZV9tb2RlKQorCQljYW5jZWxfd29ya19zeW5jKCZpOTE1LT5v YV9wbXUud29ya190aW1lcik7CisKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShpOTE1LT5vYV9w bXUuc3lzY3RsX2hlYWRlcik7CiAKIAlwZXJmX3BtdV91bnJlZ2lzdGVyKCZpOTE1LT5vYV9wbXUu cG11KTsKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==