From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 05/11] drm/amdkfd: Add wave control operation to debugger Date: Thu, 21 May 2015 00:29:02 +0300 Message-ID: <1432157348-26686-6-git-send-email-oded.gabbay@gmail.com> References: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTP id 329C46E75F for ; Wed, 20 May 2015 14:29:27 -0700 (PDT) Received: by wizk4 with SMTP id k4so169658880wiz.1 for ; Wed, 20 May 2015 14:29:26 -0700 (PDT) In-Reply-To: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KClRoZSB3YXZlIGNvbnRy b2wgb3BlcmF0aW9uIHN1cHBvcnRzIHNldmVyYWwgY29tbWFuZCB0eXBlcyBleGVjdXRlZCB1cG9u CmV4aXN0aW5nIHdhdmUgZnJvbnRzIHRoYXQgYmVsb25nIHRvIHRoZSBjdXJyZW50bHkgZGVidWdn ZWQgcHJvY2Vzcy4KClRoZSBhdmFpbGFibGUgY29tbWFuZHMgYXJlOgoKSEFMVCAgIC0gRnJlZXpl IHdhdmUgZnJvbnQocykgZXhlY3V0aW9uClJFU1VNRSAtIFJlc3VtZSBmcmVlemVkIHdhdmUgZnJv bnQocykgZXhlY3V0aW9uCktJTEwgICAtIEtpbGwgZXhpc3Rpbmcgd2F2ZSBmcm9udChzKQoKU2ln bmVkLW9mZi1ieTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KU2lnbmVkLW9m Zi1ieTogT2RlZCBHYWJiYXkgPG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnZGV2LmMgICAgICAgICAgICB8IDQwNSArKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuYyAgICAg ICAgICAgIHwgIDE2ICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuaCAg ICAgICAgICAgIHwgICA1ICstCiAuLi4vZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVl dWVfbWFuYWdlci5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3By aXYuaCAgICAgICAgICAgICAgfCAgIDQgKwogNSBmaWxlcyBjaGFuZ2VkLCA0MzAgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfZGJnZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnZGV2 LmMKaW5kZXggZWVkNGE4My4uZWUzM2I4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RiZ2Rldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kYmdkZXYuYwpAQCAtNDcsNiArNDcsMTI1IEBAIHN0YXRpYyB2b2lkIGRiZ2Rldl9hZGRyZXNz X3dhdGNoX2Rpc2FibGVfbm9kaXEoc3RydWN0IGtmZF9kZXYgKmRldikKIAlkZXYtPmtmZDJrZ2Qt PmFkZHJlc3Nfd2F0Y2hfZGlzYWJsZShkZXYtPmtnZCk7CiB9CiAKK3N0YXRpYyBpbnQgZGJnZGV2 X2RpcV9zdWJtaXRfaWIoc3RydWN0IGtmZF9kYmdkZXYgKmRiZ2RldiwKKwkJCQl1bnNpZ25lZCBp bnQgcGFzaWQsIHVpbnQ2NF90IHZtaWQwX2FkZHJlc3MsCisJCQkJdWludDMyX3QgKnBhY2tldF9i dWZmLCBzaXplX3Qgc2l6ZV9pbl9ieXRlcykKK3sKKwlzdHJ1Y3QgcG00X19yZWxlYXNlX21lbSAq cm1fcGFja2V0OworCXN0cnVjdCBwbTRfX2luZGlyZWN0X2J1ZmZlcl9wYXNpZCAqaWJfcGFja2V0 OworCXN0cnVjdCBrZmRfbWVtX29iaiAqbWVtX29iajsKKwlzaXplX3QgcHFfcGFja2V0c19zaXpl X2luX2J5dGVzOworCXVuaW9uIFVMQVJHRV9JTlRFR0VSICpsYXJnZXA7CisJdW5pb24gVUxBUkdF X0lOVEVHRVIgYWRkcjsKKwlzdHJ1Y3Qga2VybmVsX3F1ZXVlICprcTsKKwl1aW50NjRfdCAqcm1f c3RhdGU7CisJdW5zaWduZWQgaW50ICppYl9wYWNrZXRfYnVmZjsKKwlpbnQgc3RhdHVzOworCisJ QlVHX09OKCFkYmdkZXYgfHwgIWRiZ2Rldi0+a3EgfHwgIXBhY2tldF9idWZmIHx8ICFzaXplX2lu X2J5dGVzKTsKKworCWtxID0gZGJnZGV2LT5rcTsKKworCXBxX3BhY2tldHNfc2l6ZV9pbl9ieXRl cyA9IHNpemVvZihzdHJ1Y3QgcG00X19yZWxlYXNlX21lbSkgKworCQkJCXNpemVvZihzdHJ1Y3Qg cG00X19pbmRpcmVjdF9idWZmZXJfcGFzaWQpOworCisJLyoKKwkgKiBXZSBhY3F1aXJlIGEgYnVm ZmVyIGZyb20gRElRCisJICogVGhlIHJlY2VpdmUgcGFja2V0IGJ1ZmYgd2lsbCBiZSBzaXR0aW5n IG9uIHRoZSBJbmRpcmVjdCBCdWZmZXIKKwkgKiBhbmQgaW4gdGhlIFBRIHdlIHB1dCB0aGUgSUIg cGFja2V0ICsgc3luYyBwYWNrZXQocykuCisJICovCisJc3RhdHVzID0ga3EtPm9wcy5hY3F1aXJl X3BhY2tldF9idWZmZXIoa3EsCisJCQkJcHFfcGFja2V0c19zaXplX2luX2J5dGVzIC8gc2l6ZW9m KHVpbnQzMl90KSwKKwkJCQkmaWJfcGFja2V0X2J1ZmYpOworCWlmIChzdGF0dXMgIT0gMCkgewor CQlwcl9lcnIoImFtZGtmZDogYWNxdWlyZV9wYWNrZXRfYnVmZmVyIGZhaWxlZFxuIik7CisJCXJl dHVybiBzdGF0dXM7CisJfQorCisJbWVtc2V0KGliX3BhY2tldF9idWZmLCAwLCBwcV9wYWNrZXRz X3NpemVfaW5fYnl0ZXMpOworCisJaWJfcGFja2V0ID0gKHN0cnVjdCBwbTRfX2luZGlyZWN0X2J1 ZmZlcl9wYXNpZCAqKSAoaWJfcGFja2V0X2J1ZmYpOworCisJaWJfcGFja2V0LT5oZWFkZXIuY291 bnQgPSAzOworCWliX3BhY2tldC0+aGVhZGVyLm9wY29kZSA9IElUX0lORElSRUNUX0JVRkZFUl9Q QVNJRDsKKwlpYl9wYWNrZXQtPmhlYWRlci50eXBlID0gUE00X1RZUEVfMzsKKworCWxhcmdlcCA9 ICh1bmlvbiBVTEFSR0VfSU5URUdFUiAqKSAmdm1pZDBfYWRkcmVzczsKKworCWliX3BhY2tldC0+ Yml0ZmllbGRzMi5pYl9iYXNlX2xvID0gbGFyZ2VwLT51Lmxvd19wYXJ0ID4+IDI7CisJaWJfcGFj a2V0LT5iaXRmaWVsZHMzLmliX2Jhc2VfaGkgPSBsYXJnZXAtPnUuaGlnaF9wYXJ0OworCisJaWJf cGFja2V0LT5jb250cm9sID0gKDEgPDwgMjMpIHwgKDEgPDwgMzEpIHwKKwkJCSgoc2l6ZV9pbl9i eXRlcyAvIHNpemVvZih1aW50MzJfdCkpICYgMHhmZmZmZik7CisKKwlpYl9wYWNrZXQtPmJpdGZp ZWxkczUucGFzaWQgPSBwYXNpZDsKKworCS8qCisJICogZm9yIG5vdyB3ZSB1c2UgcmVsZWFzZSBt ZW0gZm9yIEdQVS1DUFUgc3luY2hyb25pemF0aW9uCisJICogQ29uc2lkZXIgV2FpdFJlZ01lbSAr IFdyaXRlRGF0YSBhcyBhIGJldHRlciBhbHRlcm5hdGl2ZQorCSAqIHdlIGdldCBhIEdBUlQgYWxs b2NhdGlvbnMgKCBncHUvY3B1IG1hcHBpbmcpLAorCSAqIGZvciB0aGUgc3luYyB2YXJpYWJsZSwg YW5kIHdhaXQgdW50aWw6CisJICogKGEpIFN5bmMgd2l0aCBIVworCSAqIChiKSBTeW5jIHZhciBp cyB3cml0dGVuIGJ5IENQIHRvIG1lbS4KKwkgKi8KKwlybV9wYWNrZXQgPSAoc3RydWN0IHBtNF9f cmVsZWFzZV9tZW0gKikgKGliX3BhY2tldF9idWZmICsKKwkJCShzaXplb2Yoc3RydWN0IHBtNF9f aW5kaXJlY3RfYnVmZmVyX3Bhc2lkKSAvCisJCQkJCXNpemVvZih1bnNpZ25lZCBpbnQpKSk7CisK KwlzdGF0dXMgPSBrZmRfZ3R0X3NhX2FsbG9jYXRlKGRiZ2Rldi0+ZGV2LCBzaXplb2YodWludDY0 X3QpLAorCQkJCQkmbWVtX29iaik7CisKKwlpZiAoc3RhdHVzICE9IDApIHsKKwkJcHJfZXJyKCJh bWRrZmQ6IEZhaWxlZCB0byBhbGxvY2F0ZSBHQVJUIG1lbW9yeVxuIik7CisJCWtxLT5vcHMucm9s bGJhY2tfcGFja2V0KGtxKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwlybV9zdGF0ZSA9ICh1 aW50NjRfdCAqKSBtZW1fb2JqLT5jcHVfcHRyOworCisJKnJtX3N0YXRlID0gUVVFVUVTVEFURV9f QUNUSVZFX0NPTVBMRVRJT05fUEVORElORzsKKworCXJtX3BhY2tldC0+aGVhZGVyLm9wY29kZSA9 IElUX1JFTEVBU0VfTUVNOworCXJtX3BhY2tldC0+aGVhZGVyLnR5cGUgPSBQTTRfVFlQRV8zOwor CXJtX3BhY2tldC0+aGVhZGVyLmNvdW50ID0gc2l6ZW9mKHN0cnVjdCBwbTRfX3JlbGVhc2VfbWVt KSAvCisJCQkJCXNpemVvZih1bnNpZ25lZCBpbnQpIC0gMjsKKworCXJtX3BhY2tldC0+Yml0Zmll bGRzMi5ldmVudF90eXBlID0gQ0FDSEVfRkxVU0hfQU5EX0lOVl9UU19FVkVOVDsKKwlybV9wYWNr ZXQtPmJpdGZpZWxkczIuZXZlbnRfaW5kZXggPQorCQkJCWV2ZW50X2luZGV4X19fcmVsZWFzZV9t ZW1fX2VuZF9vZl9waXBlOworCisJcm1fcGFja2V0LT5iaXRmaWVsZHMyLmNhY2hlX3BvbGljeSA9 IGNhY2hlX3BvbGljeV9fX3JlbGVhc2VfbWVtX19scnU7CisJcm1fcGFja2V0LT5iaXRmaWVsZHMy LmF0YyA9IDA7CisJcm1fcGFja2V0LT5iaXRmaWVsZHMyLnRjX3diX2FjdGlvbl9lbmEgPSAxOwor CisJYWRkci5xdWFkX3BhcnQgPSBtZW1fb2JqLT5ncHVfYWRkcjsKKworCXJtX3BhY2tldC0+Yml0 ZmllbGRzNC5hZGRyZXNzX2xvXzMyYiA9IGFkZHIudS5sb3dfcGFydCA+PiAyOworCXJtX3BhY2tl dC0+YWRkcmVzc19oaSA9IGFkZHIudS5oaWdoX3BhcnQ7CisKKwlybV9wYWNrZXQtPmJpdGZpZWxk czMuZGF0YV9zZWwgPQorCQkJCWRhdGFfc2VsX19fcmVsZWFzZV9tZW1fX3NlbmRfNjRfYml0X2Rh dGE7CisKKwlybV9wYWNrZXQtPmJpdGZpZWxkczMuaW50X3NlbCA9CisJCQlpbnRfc2VsX19fcmVs ZWFzZV9tZW1fX3NlbmRfZGF0YV9hZnRlcl93cml0ZV9jb25maXJtOworCisJcm1fcGFja2V0LT5i aXRmaWVsZHMzLmRzdF9zZWwgPQorCQkJZHN0X3NlbF9fX3JlbGVhc2VfbWVtX19tZW1vcnlfY29u dHJvbGxlcjsKKworCXJtX3BhY2tldC0+ZGF0YV9sbyA9IFFVRVVFU1RBVEVfX0FDVElWRTsKKwor CWtxLT5vcHMuc3VibWl0X3BhY2tldChrcSk7CisKKwkvKiBXYWl0IHRpbGwgQ1Agd3JpdGVzIHN5 bmMgY29kZTogKi8KKwlzdGF0dXMgPSBhbWRrZmRfZmVuY2Vfd2FpdF90aW1lb3V0KAorCQkJKHVu c2lnbmVkIGludCAqKSBybV9zdGF0ZSwKKwkJCVFVRVVFU1RBVEVfX0FDVElWRSwgMTUwMCk7CisK KwlrZmRfZ3R0X3NhX2ZyZWUoZGJnZGV2LT5kZXYsIG1lbV9vYmopOworCisJcmV0dXJuIHN0YXR1 czsKK30KKwogc3RhdGljIGludCBkYmdkZXZfcmVnaXN0ZXJfbm9kaXEoc3RydWN0IGtmZF9kYmdk ZXYgKmRiZ2RldikKIHsKIAlCVUdfT04oIWRiZ2Rldik7CkBAIC0xMTcsNiArMjM2LDI5MCBAQCBz dGF0aWMgaW50IGRiZ2Rldl91bnJlZ2lzdGVyX2RpcShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2 KQogCXJldHVybiBzdGF0dXM7CiB9CiAKK3N0YXRpYyBpbnQgZGJnZGV2X3dhdmVfY29udHJvbF9z ZXRfcmVnaXN0ZXJzKAorCQkJCXN0cnVjdCBkYmdfd2F2ZV9jb250cm9sX2luZm8gKndhY19pbmZv LAorCQkJCXVuaW9uIFNRX0NNRF9CSVRTICppbl9yZWdfc3FfY21kLAorCQkJCXVuaW9uIEdSQk1f R0ZYX0lOREVYX0JJVFMgKmluX3JlZ19nZnhfaW5kZXgpCit7CisJaW50IHN0YXR1czsKKwl1bmlv biBTUV9DTURfQklUUyByZWdfc3FfY21kOworCXVuaW9uIEdSQk1fR0ZYX0lOREVYX0JJVFMgcmVn X2dmeF9pbmRleDsKKwlzdHJ1Y3QgSHNhRGJnV2F2ZU1zZ0FNREdlbjIgKnBNc2c7CisKKwlCVUdf T04oIXdhY19pbmZvIHx8ICFpbl9yZWdfc3FfY21kIHx8ICFpbl9yZWdfZ2Z4X2luZGV4KTsKKwor CXJlZ19zcV9jbWQudTMyQWxsID0gMDsKKwlyZWdfZ2Z4X2luZGV4LnUzMkFsbCA9IDA7CisJcE1z ZyA9ICZ3YWNfaW5mby0+ZGJnV2F2ZV9tc2cuRGJnV2F2ZU1zZy5XYXZlTXNnSW5mb0dlbjI7CisK Kwlzd2l0Y2ggKHdhY19pbmZvLT5tb2RlKSB7CisJLyogU2VuZCBjb21tYW5kIHRvIHNpbmdsZSB3 YXZlICovCisJY2FzZSBIU0FfREJHX1dBVkVNT0RFX1NJTkdMRToKKwkJLyoKKwkJICogTGltaXQg YWNjZXNzIHRvIHRoZSBwcm9jZXNzIHdhdmVzIG9ubHksCisJCSAqIGJ5IHNldHRpbmcgdm1pZCBj aGVjaworCQkgKi8KKwkJcmVnX3NxX2NtZC5iaXRzLmNoZWNrX3ZtaWQgPSAxOworCQlyZWdfc3Ff Y21kLmJpdHMuc2ltZF9pZCA9IHBNc2ctPnVpMzIuU0lNRDsKKwkJcmVnX3NxX2NtZC5iaXRzLndh dmVfaWQgPSBwTXNnLT51aTMyLldhdmVJZDsKKwkJcmVnX3NxX2NtZC5iaXRzLm1vZGUgPSBTUV9J TkRfQ01EX01PREVfU0lOR0xFOworCisJCXJlZ19nZnhfaW5kZXguYml0cy5zaF9pbmRleCA9IHBN c2ctPnVpMzIuU2hhZGVyQXJyYXk7CisJCXJlZ19nZnhfaW5kZXguYml0cy5zZV9pbmRleCA9IHBN c2ctPnVpMzIuU2hhZGVyRW5naW5lOworCQlyZWdfZ2Z4X2luZGV4LmJpdHMuaW5zdGFuY2VfaW5k ZXggPSBwTXNnLT51aTMyLkhTQUNVOworCisJCWJyZWFrOworCisJLyogU2VuZCBjb21tYW5kIHRv IGFsbCB3YXZlcyB3aXRoIG1hdGNoaW5nIFZNSUQgKi8KKwljYXNlIEhTQV9EQkdfV0FWRU1PREVf QlJPQURDQVNUX1BST0NFU1M6CisKKwkJcmVnX2dmeF9pbmRleC5iaXRzLnNoX2Jyb2FkY2FzdF93 cml0ZXMgPSAxOworCQlyZWdfZ2Z4X2luZGV4LmJpdHMuc2VfYnJvYWRjYXN0X3dyaXRlcyA9IDE7 CisJCXJlZ19nZnhfaW5kZXguYml0cy5pbnN0YW5jZV9icm9hZGNhc3Rfd3JpdGVzID0gMTsKKwor CQlyZWdfc3FfY21kLmJpdHMubW9kZSA9IFNRX0lORF9DTURfTU9ERV9CUk9BRENBU1Q7CisKKwkJ YnJlYWs7CisKKwkvKiBTZW5kIGNvbW1hbmQgdG8gYWxsIENVIHdhdmVzIHdpdGggbWF0Y2hpbmcg Vk1JRCAqLworCWNhc2UgSFNBX0RCR19XQVZFTU9ERV9CUk9BRENBU1RfUFJPQ0VTU19DVToKKwor CQlyZWdfc3FfY21kLmJpdHMuY2hlY2tfdm1pZCA9IDE7CisJCXJlZ19zcV9jbWQuYml0cy5tb2Rl ID0gU1FfSU5EX0NNRF9NT0RFX0JST0FEQ0FTVDsKKworCQlyZWdfZ2Z4X2luZGV4LmJpdHMuc2hf aW5kZXggPSBwTXNnLT51aTMyLlNoYWRlckFycmF5OworCQlyZWdfZ2Z4X2luZGV4LmJpdHMuc2Vf aW5kZXggPSBwTXNnLT51aTMyLlNoYWRlckVuZ2luZTsKKwkJcmVnX2dmeF9pbmRleC5iaXRzLmlu c3RhbmNlX2luZGV4ID0gcE1zZy0+dWkzMi5IU0FDVTsKKworCQlicmVhazsKKworCWRlZmF1bHQ6 CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXN3aXRjaCAod2FjX2luZm8tPm9wZXJhbmQpIHsK KwljYXNlIEhTQV9EQkdfV0FWRU9QX0hBTFQ6CisJCXJlZ19zcV9jbWQuYml0cy5jbWQgPSBTUV9J TkRfQ01EX0NNRF9IQUxUOworCQlicmVhazsKKworCWNhc2UgSFNBX0RCR19XQVZFT1BfUkVTVU1F OgorCQlyZWdfc3FfY21kLmJpdHMuY21kID0gU1FfSU5EX0NNRF9DTURfUkVTVU1FOworCQlicmVh azsKKworCWNhc2UgSFNBX0RCR19XQVZFT1BfS0lMTDoKKwkJcmVnX3NxX2NtZC5iaXRzLmNtZCA9 IFNRX0lORF9DTURfQ01EX0tJTEw7CisJCWJyZWFrOworCisJY2FzZSBIU0FfREJHX1dBVkVPUF9E RUJVRzoKKwkJcmVnX3NxX2NtZC5iaXRzLmNtZCA9IFNRX0lORF9DTURfQ01EX0RFQlVHOworCQli cmVhazsKKworCWNhc2UgSFNBX0RCR19XQVZFT1BfVFJBUDoKKwkJaWYgKHdhY19pbmZvLT50cmFw SWQgPCBNQVhfVFJBUElEKSB7CisJCQlyZWdfc3FfY21kLmJpdHMuY21kID0gU1FfSU5EX0NNRF9D TURfVFJBUDsKKwkJCXJlZ19zcV9jbWQuYml0cy50cmFwX2lkID0gd2FjX2luZm8tPnRyYXBJZDsK KwkJfSBlbHNlIHsKKwkJCXN0YXR1cyA9IC1FSU5WQUw7CisJCX0KKwkJYnJlYWs7CisKKwlkZWZh dWx0OgorCQlzdGF0dXMgPSAtRUlOVkFMOworCQlicmVhazsKKwl9CisKKwlpZiAoc3RhdHVzID09 IDApIHsKKwkJKmluX3JlZ19zcV9jbWQgPSByZWdfc3FfY21kOworCQkqaW5fcmVnX2dmeF9pbmRl eCA9IHJlZ19nZnhfaW5kZXg7CisJfQorCisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGlu dCBkYmdkZXZfd2F2ZV9jb250cm9sX2RpcShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAorCQkJ CQlzdHJ1Y3QgZGJnX3dhdmVfY29udHJvbF9pbmZvICp3YWNfaW5mbykKK3sKKworCWludCBzdGF0 dXM7CisJdW5pb24gU1FfQ01EX0JJVFMgcmVnX3NxX2NtZDsKKwl1bmlvbiBHUkJNX0dGWF9JTkRF WF9CSVRTIHJlZ19nZnhfaW5kZXg7CisJc3RydWN0IGtmZF9tZW1fb2JqICptZW1fb2JqOworCXVp bnQzMl90ICpwYWNrZXRfYnVmZl91aW50OworCXN0cnVjdCBwbTRfX3NldF9jb25maWdfcmVnICpw YWNrZXRzX3ZlYzsKKwlzaXplX3QgaWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcG00X19zZXRfY29u ZmlnX3JlZykgKiAzOworCisJQlVHX09OKCFkYmdkZXYgfHwgIXdhY19pbmZvKTsKKworCXJlZ19z cV9jbWQudTMyQWxsID0gMDsKKworCXN0YXR1cyA9IGRiZ2Rldl93YXZlX2NvbnRyb2xfc2V0X3Jl Z2lzdGVycyh3YWNfaW5mbywgJnJlZ19zcV9jbWQsCisJCQkJCQkJJnJlZ19nZnhfaW5kZXgpOwor CWlmIChzdGF0dXMpIHsKKwkJcHJfZXJyKCJhbWRrZmQ6IEZhaWxlZCB0byBzZXQgd2F2ZSBjb250 cm9sIHJlZ2lzdGVyc1xuIik7CisJCXJldHVybiBzdGF0dXM7CisJfQorCisJLyogd2UgZG8gbm90 IGNvbnRyb2wgdGhlIFZNSUQgaW4gRElRLHNvIHJlc2V0IGl0IHRvIGEga25vd24gdmFsdWUgKi8K KwlyZWdfc3FfY21kLmJpdHMudm1faWQgPSAwOworCisJcHJfZGVidWcoIlx0XHQgJTMwc1xuIiwg IiogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqIik7CisKKwlwcl9kZWJ1ZygiXHRc dCBtb2RlICAgICAgaXM6ICV1XG4iLCB3YWNfaW5mby0+bW9kZSk7CisJcHJfZGVidWcoIlx0XHQg b3BlcmFuZCAgIGlzOiAldVxuIiwgd2FjX2luZm8tPm9wZXJhbmQpOworCXByX2RlYnVnKCJcdFx0 IHRyYXAgaWQgICBpczogJXVcbiIsIHdhY19pbmZvLT50cmFwSWQpOworCXByX2RlYnVnKCJcdFx0 IG1zZyB2YWx1ZSBpczogJXVcbiIsCisJCQl3YWNfaW5mby0+ZGJnV2F2ZV9tc2cuRGJnV2F2ZU1z Zy5XYXZlTXNnSW5mb0dlbjIuVmFsdWUpOworCXByX2RlYnVnKCJcdFx0IHZtaWQgICAgICBpczog Ti9BXG4iKTsKKworCXByX2RlYnVnKCJcdFx0IGNoa192bWlkICBpcyA6ICV1XG4iLCByZWdfc3Ff Y21kLmJpdGZpZWxkcy5jaGVja192bWlkKTsKKwlwcl9kZWJ1ZygiXHRcdCBjb21tYW5kICAgaXMg OiAldVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMuY21kKTsKKwlwcl9kZWJ1ZygiXHRcdCBxdWV1 ZSBpZCAgaXMgOiAldVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMucXVldWVfaWQpOworCXByX2Rl YnVnKCJcdFx0IHNpbWQgaWQgICBpcyA6ICV1XG4iLCByZWdfc3FfY21kLmJpdGZpZWxkcy5zaW1k X2lkKTsKKwlwcl9kZWJ1ZygiXHRcdCBtb2RlICAgICAgaXMgOiAldVxuIiwgcmVnX3NxX2NtZC5i aXRmaWVsZHMubW9kZSk7CisJcHJfZGVidWcoIlx0XHQgdm1faWQgICAgIGlzIDogJXVcbiIsIHJl Z19zcV9jbWQuYml0ZmllbGRzLnZtX2lkKTsKKwlwcl9kZWJ1ZygiXHRcdCB3YXZlX2lkICAgaXMg OiAldVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMud2F2ZV9pZCk7CisKKwlwcl9kZWJ1ZygiXHRc dCBpYncgICAgICAgaXMgOiAldVxuIiwKKwkJCXJlZ19nZnhfaW5kZXguYml0ZmllbGRzLmluc3Rh bmNlX2Jyb2FkY2FzdF93cml0ZXMpOworCXByX2RlYnVnKCJcdFx0IGlpICAgICAgICBpcyA6ICV1 XG4iLAorCQkJcmVnX2dmeF9pbmRleC5iaXRmaWVsZHMuaW5zdGFuY2VfaW5kZXgpOworCXByX2Rl YnVnKCJcdFx0IHNlYncgICAgICBpcyA6ICV1XG4iLAorCQkJcmVnX2dmeF9pbmRleC5iaXRmaWVs ZHMuc2VfYnJvYWRjYXN0X3dyaXRlcyk7CisJcHJfZGVidWcoIlx0XHQgc2VfaW5kICAgIGlzIDog JXVcbiIsIHJlZ19nZnhfaW5kZXguYml0ZmllbGRzLnNlX2luZGV4KTsKKwlwcl9kZWJ1ZygiXHRc dCBzaF9pbmQgICAgaXMgOiAldVxuIiwgcmVnX2dmeF9pbmRleC5iaXRmaWVsZHMuc2hfaW5kZXgp OworCXByX2RlYnVnKCJcdFx0IHNidyAgICAgICBpcyA6ICV1XG4iLAorCQkJcmVnX2dmeF9pbmRl eC5iaXRmaWVsZHMuc2hfYnJvYWRjYXN0X3dyaXRlcyk7CisKKwlwcl9kZWJ1ZygiXHRcdCAlMzBz XG4iLCAiKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoiKTsKKworCXN0YXR1cyA9 IGtmZF9ndHRfc2FfYWxsb2NhdGUoZGJnZGV2LT5kZXYsIGliX3NpemUsICZtZW1fb2JqKTsKKwor CWlmIChzdGF0dXMgIT0gMCkgeworCQlwcl9lcnIoImFtZGtmZDogRmFpbGVkIHRvIGFsbG9jYXRl IEdBUlQgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwlwYWNrZXRfYnVmZl91 aW50ID0gbWVtX29iai0+Y3B1X3B0cjsKKworCW1lbXNldChwYWNrZXRfYnVmZl91aW50LCAwLCBp Yl9zaXplKTsKKworCXBhY2tldHNfdmVjID0gIChzdHJ1Y3QgcG00X19zZXRfY29uZmlnX3JlZyAq KSBwYWNrZXRfYnVmZl91aW50OworCXBhY2tldHNfdmVjWzBdLmhlYWRlci5jb3VudCA9IDE7CisJ cGFja2V0c192ZWNbMF0uaGVhZGVyLm9wY29kZSA9IElUX1NFVF9VQ09ORklHX1JFRzsKKwlwYWNr ZXRzX3ZlY1swXS5oZWFkZXIudHlwZSA9IFBNNF9UWVBFXzM7CisJcGFja2V0c192ZWNbMF0uYml0 ZmllbGRzMi5yZWdfb2Zmc2V0ID0KKwkJCUdSQk1fR0ZYX0lOREVYIC8gKHNpemVvZih1aW50MzJf dCkpIC0KKwkJCQlVU0VSQ09ORklHX1JFR19CQVNFOworCisJcGFja2V0c192ZWNbMF0uYml0Zmll bGRzMi5pbnNlcnRfdm1pZCA9IDA7CisJcGFja2V0c192ZWNbMF0ucmVnX2RhdGFbMF0gPSByZWdf Z2Z4X2luZGV4LnUzMkFsbDsKKworCXBhY2tldHNfdmVjWzFdLmhlYWRlci5jb3VudCA9IDE7CisJ cGFja2V0c192ZWNbMV0uaGVhZGVyLm9wY29kZSA9IElUX1NFVF9DT05GSUdfUkVHOworCXBhY2tl dHNfdmVjWzFdLmhlYWRlci50eXBlID0gUE00X1RZUEVfMzsKKwlwYWNrZXRzX3ZlY1sxXS5iaXRm aWVsZHMyLnJlZ19vZmZzZXQgPSBTUV9DTUQgLyAoc2l6ZW9mKHVpbnQzMl90KSkgLQorCQkJCQkJ Q09ORklHX1JFR19CQVNFOworCisJcGFja2V0c192ZWNbMV0uYml0ZmllbGRzMi52bWlkX3NoaWZ0 ID0gU1FfQ01EX1ZNSURfT0ZGU0VUOworCXBhY2tldHNfdmVjWzFdLmJpdGZpZWxkczIuaW5zZXJ0 X3ZtaWQgPSAxOworCXBhY2tldHNfdmVjWzFdLnJlZ19kYXRhWzBdID0gcmVnX3NxX2NtZC51MzJB bGw7CisKKwkvKiBSZXN0b3JlIHRoZSBHUkJNX0dGWF9JTkRFWCByZWdpc3RlciAqLworCisJcmVn X2dmeF9pbmRleC51MzJBbGwgPSAwOworCXJlZ19nZnhfaW5kZXguYml0cy5zaF9icm9hZGNhc3Rf d3JpdGVzID0gMTsKKwlyZWdfZ2Z4X2luZGV4LmJpdHMuaW5zdGFuY2VfYnJvYWRjYXN0X3dyaXRl cyA9IDE7CisJcmVnX2dmeF9pbmRleC5iaXRzLnNlX2Jyb2FkY2FzdF93cml0ZXMgPSAxOworCisK KwlwYWNrZXRzX3ZlY1syXS5vcmRpbmFsMSA9IHBhY2tldHNfdmVjWzBdLm9yZGluYWwxOworCXBh Y2tldHNfdmVjWzJdLmJpdGZpZWxkczIucmVnX29mZnNldCA9CisJCQkJR1JCTV9HRlhfSU5ERVgg LyAoc2l6ZW9mKHVpbnQzMl90KSkgLQorCQkJCQlVU0VSQ09ORklHX1JFR19CQVNFOworCisJcGFj a2V0c192ZWNbMl0uYml0ZmllbGRzMi5pbnNlcnRfdm1pZCA9IDA7CisJcGFja2V0c192ZWNbMl0u cmVnX2RhdGFbMF0gPSByZWdfZ2Z4X2luZGV4LnUzMkFsbDsKKworCXN0YXR1cyA9IGRiZ2Rldl9k aXFfc3VibWl0X2liKAorCQkJZGJnZGV2LAorCQkJd2FjX2luZm8tPnByb2Nlc3MtPnBhc2lkLAor CQkJbWVtX29iai0+Z3B1X2FkZHIsCisJCQlwYWNrZXRfYnVmZl91aW50LAorCQkJaWJfc2l6ZSk7 CisKKwlpZiAoc3RhdHVzICE9IDApCisJCXByX2VycigiYW1ka2ZkOiBGYWlsZWQgdG8gc3VibWl0 IElCIHRvIERJUVxuIik7CisKKwlrZmRfZ3R0X3NhX2ZyZWUoZGJnZGV2LT5kZXYsIG1lbV9vYmop OworCisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGludCBkYmdkZXZfd2F2ZV9jb250cm9s X25vZGlxKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYsCisJCQkJCXN0cnVjdCBkYmdfd2F2ZV9j b250cm9sX2luZm8gKndhY19pbmZvKQoreworCWludCBzdGF0dXM7CisJdW5pb24gU1FfQ01EX0JJ VFMgcmVnX3NxX2NtZDsKKwl1bmlvbiBHUkJNX0dGWF9JTkRFWF9CSVRTIHJlZ19nZnhfaW5kZXg7 CisJc3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSAqcGRkOworCisJQlVHX09OKCFkYmdkZXYgfHwg IWRiZ2Rldi0+ZGV2IHx8ICF3YWNfaW5mbyk7CisKKwlyZWdfc3FfY21kLnUzMkFsbCA9IDA7CisK KwkvKiB0YWtpbmcgdGhlIFZNSUQgZm9yIHRoYXQgcHJvY2VzcyBvbiB0aGUgc2FmZSB3YXkgdXNp bmcgUEREICovCisJcGRkID0ga2ZkX2dldF9wcm9jZXNzX2RldmljZV9kYXRhKGRiZ2Rldi0+ZGV2 LCB3YWNfaW5mby0+cHJvY2Vzcyk7CisKKwlpZiAoIXBkZCkgeworCQlwcl9lcnIoImFtZGtmZDog RmFpbGVkIHRvIGdldCBwZGQgZm9yIHdhdmUgY29udHJvbCBubyBESVFcbiIpOworCQlyZXR1cm4g LUVGQVVMVDsKKwl9CisJc3RhdHVzID0gZGJnZGV2X3dhdmVfY29udHJvbF9zZXRfcmVnaXN0ZXJz KHdhY19pbmZvLCAmcmVnX3NxX2NtZCwKKwkJCQkJCQkmcmVnX2dmeF9pbmRleCk7CisJaWYgKHN0 YXR1cykgeworCQlwcl9lcnIoImFtZGtmZDogRmFpbGVkIHRvIHNldCB3YXZlIGNvbnRyb2wgcmVn aXN0ZXJzXG4iKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwkvKiBmb3Igbm9uIERJUSB3ZSBu ZWVkIHRvIHBhdGNoIHRoZSBWTUlEOiAqLworCisJcmVnX3NxX2NtZC5iaXRzLnZtX2lkID0gcGRk LT5xcGQudm1pZDsKKworCXByX2RlYnVnKCJcdFx0ICUzMHNcbiIsICIqICogKiAqICogKiAqICog KiAqICogKiAqICogKiAqICogKiIpOworCisJcHJfZGVidWcoIlx0XHQgbW9kZSAgICAgIGlzOiAl dVxuIiwgd2FjX2luZm8tPm1vZGUpOworCXByX2RlYnVnKCJcdFx0IG9wZXJhbmQgICBpczogJXVc biIsIHdhY19pbmZvLT5vcGVyYW5kKTsKKwlwcl9kZWJ1ZygiXHRcdCB0cmFwIGlkICAgaXM6ICV1 XG4iLCB3YWNfaW5mby0+dHJhcElkKTsKKwlwcl9kZWJ1ZygiXHRcdCBtc2cgdmFsdWUgaXM6ICV1 XG4iLAorCQkJd2FjX2luZm8tPmRiZ1dhdmVfbXNnLkRiZ1dhdmVNc2cuV2F2ZU1zZ0luZm9HZW4y LlZhbHVlKTsKKwlwcl9kZWJ1ZygiXHRcdCB2bWlkICAgICAgaXM6ICV1XG4iLCBwZGQtPnFwZC52 bWlkKTsKKworCXByX2RlYnVnKCJcdFx0IGNoa192bWlkICBpcyA6ICV1XG4iLCByZWdfc3FfY21k LmJpdGZpZWxkcy5jaGVja192bWlkKTsKKwlwcl9kZWJ1ZygiXHRcdCBjb21tYW5kICAgaXMgOiAl dVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMuY21kKTsKKwlwcl9kZWJ1ZygiXHRcdCBxdWV1ZSBp ZCAgaXMgOiAldVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMucXVldWVfaWQpOworCXByX2RlYnVn KCJcdFx0IHNpbWQgaWQgICBpcyA6ICV1XG4iLCByZWdfc3FfY21kLmJpdGZpZWxkcy5zaW1kX2lk KTsKKwlwcl9kZWJ1ZygiXHRcdCBtb2RlICAgICAgaXMgOiAldVxuIiwgcmVnX3NxX2NtZC5iaXRm aWVsZHMubW9kZSk7CisJcHJfZGVidWcoIlx0XHQgdm1faWQgICAgIGlzIDogJXVcbiIsIHJlZ19z cV9jbWQuYml0ZmllbGRzLnZtX2lkKTsKKwlwcl9kZWJ1ZygiXHRcdCB3YXZlX2lkICAgaXMgOiAl dVxuIiwgcmVnX3NxX2NtZC5iaXRmaWVsZHMud2F2ZV9pZCk7CisKKwlwcl9kZWJ1ZygiXHRcdCBp YncgICAgICAgaXMgOiAldVxuIiwKKwkJCXJlZ19nZnhfaW5kZXguYml0ZmllbGRzLmluc3RhbmNl X2Jyb2FkY2FzdF93cml0ZXMpOworCXByX2RlYnVnKCJcdFx0IGlpICAgICAgICBpcyA6ICV1XG4i LAorCQkJcmVnX2dmeF9pbmRleC5iaXRmaWVsZHMuaW5zdGFuY2VfaW5kZXgpOworCXByX2RlYnVn KCJcdFx0IHNlYncgICAgICBpcyA6ICV1XG4iLAorCQkJcmVnX2dmeF9pbmRleC5iaXRmaWVsZHMu c2VfYnJvYWRjYXN0X3dyaXRlcyk7CisJcHJfZGVidWcoIlx0XHQgc2VfaW5kICAgIGlzIDogJXVc biIsIHJlZ19nZnhfaW5kZXguYml0ZmllbGRzLnNlX2luZGV4KTsKKwlwcl9kZWJ1ZygiXHRcdCBz aF9pbmQgICAgaXMgOiAldVxuIiwgcmVnX2dmeF9pbmRleC5iaXRmaWVsZHMuc2hfaW5kZXgpOwor CXByX2RlYnVnKCJcdFx0IHNidyAgICAgICBpcyA6ICV1XG4iLAorCQkJcmVnX2dmeF9pbmRleC5i aXRmaWVsZHMuc2hfYnJvYWRjYXN0X3dyaXRlcyk7CisKKwlwcl9kZWJ1ZygiXHRcdCAlMzBzXG4i LCAiKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoiKTsKKworCXJldHVybiBkYmdk ZXYtPmRldi0+a2ZkMmtnZC0+d2F2ZV9jb250cm9sX2V4ZWN1dGUoZGJnZGV2LT5kZXYtPmtnZCwK KwkJCQkJCQlyZWdfZ2Z4X2luZGV4LnUzMkFsbCwKKwkJCQkJCQlyZWdfc3FfY21kLnUzMkFsbCk7 Cit9CisKIHZvaWQga2ZkX2RiZ2Rldl9pbml0KHN0cnVjdCBrZmRfZGJnZGV2ICpwZGJnZGV2LCBz dHJ1Y3Qga2ZkX2RldiAqcGRldiwKIAkJCWVudW0gREJHREVWX1RZUEUgdHlwZSkKIHsKQEAgLTEz MSwxMSArNTM0LDEzIEBAIHZvaWQga2ZkX2RiZ2Rldl9pbml0KHN0cnVjdCBrZmRfZGJnZGV2ICpw ZGJnZGV2LCBzdHJ1Y3Qga2ZkX2RldiAqcGRldiwKIAljYXNlIERCR0RFVl9UWVBFX05PRElROgog CQlwZGJnZGV2LT5kYmdkZXZfcmVnaXN0ZXIgPSBkYmdkZXZfcmVnaXN0ZXJfbm9kaXE7CiAJCXBk YmdkZXYtPmRiZ2Rldl91bnJlZ2lzdGVyID0gZGJnZGV2X3VucmVnaXN0ZXJfbm9kaXE7CisJCXBk YmdkZXYtPmRiZ2Rldl93YXZlX2NvbnRyb2wgPSBkYmdkZXZfd2F2ZV9jb250cm9sX25vZGlxOwog CQlicmVhazsKIAljYXNlIERCR0RFVl9UWVBFX0RJUToKIAlkZWZhdWx0OgogCQlwZGJnZGV2LT5k YmdkZXZfcmVnaXN0ZXIgPSBkYmdkZXZfcmVnaXN0ZXJfZGlxOwogCQlwZGJnZGV2LT5kYmdkZXZf dW5yZWdpc3RlciA9IGRiZ2Rldl91bnJlZ2lzdGVyX2RpcTsKKwkJcGRiZ2Rldi0+ZGJnZGV2X3dh dmVfY29udHJvbCA9ICBkYmdkZXZfd2F2ZV9jb250cm9sX2RpcTsKIAkJYnJlYWs7CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMKaW5kZXggZDhjNDVhMy4uMjNhYTU0 NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuYwpAQCAtMTMzLDMgKzEz MywxOSBAQCBsb25nIGtmZF9kYmdtZ3JfdW5yZWdpc3RlcihzdHJ1Y3Qga2ZkX2RiZ21nciAqcG1n ciwgc3RydWN0IGtmZF9wcm9jZXNzICpwKQogCiAJcmV0dXJuIDA7CiB9CisKK2xvbmcga2ZkX2Ri Z21ncl93YXZlX2NvbnRyb2woc3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IsCisJCQkJc3RydWN0IGRi Z193YXZlX2NvbnRyb2xfaW5mbyAqd2FjX2luZm8pCit7CisJQlVHX09OKCFwbWdyIHx8ICFwbWdy LT5kYmdkZXYgfHwgIXdhY19pbmZvKTsKKworCS8qIElzIHRoZSByZXF1ZXN0cyBjb21pbmcgZnJv bSB0aGUgYWxyZWFkeSByZWdpc3RlcmVkIHByb2Nlc3M/ICovCisJaWYgKHBtZ3ItPnBhc2lkICE9 IHdhY19pbmZvLT5wcm9jZXNzLT5wYXNpZCkgeworCQlwcl9kZWJ1ZygiSC9XIGRlYnVnZ2VyIHN1 cHBvcnQgd2FzIG5vdCByZWdpc3RlcmVkIGZvciByZXF1ZXN0ZXIgcGFzaWQgJWRcbiIsCisJCQkJ d2FjX2luZm8tPnByb2Nlc3MtPnBhc2lkKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0 dXJuIChsb25nKSBwbWdyLT5kYmdkZXYtPmRiZ2Rldl93YXZlX2NvbnRyb2wocG1nci0+ZGJnZGV2 LCB3YWNfaW5mbyk7Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kYmdtZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuaApp bmRleCA0ZWEzNjFjLi4xZTUwZTEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfZGJnbWdyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Ri Z21nci5oCkBAIC0yNjgsNiArMjY4LDggQEAgc3RydWN0IGtmZF9kYmdkZXYgewogCS8qIHZpcnR1 YWxpemVkIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIGRldmljZSBkYmcgKi8KIAlpbnQgKCpkYmdkZXZf cmVnaXN0ZXIpKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYpOwogCWludCAoKmRiZ2Rldl91bnJl Z2lzdGVyKShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2KTsKKwlpbnQgKCpkYmdkZXZfd2F2ZV9j b250cm9sKShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAorCQkJCXN0cnVjdCBkYmdfd2F2ZV9j b250cm9sX2luZm8gKndhY19pbmZvKTsKIAogfTsKIApAQCAtMjgzLDUgKzI4NSw2IEBAIHZvaWQg a2ZkX2RiZ21ncl9kZXN0cm95KHN0cnVjdCBrZmRfZGJnbWdyICpwbWdyKTsKIGJvb2wga2ZkX2Ri Z21ncl9jcmVhdGUoc3RydWN0IGtmZF9kYmdtZ3IgKipwcG1nciwgc3RydWN0IGtmZF9kZXYgKnBk ZXYpOwogbG9uZyBrZmRfZGJnbWdyX3JlZ2lzdGVyKHN0cnVjdCBrZmRfZGJnbWdyICpwbWdyLCBz dHJ1Y3Qga2ZkX3Byb2Nlc3MgKnApOwogbG9uZyBrZmRfZGJnbWdyX3VucmVnaXN0ZXIoc3RydWN0 IGtmZF9kYmdtZ3IgKnBtZ3IsIHN0cnVjdCBrZmRfcHJvY2VzcyAqcCk7Ci0KK2xvbmcga2ZkX2Ri Z21ncl93YXZlX2NvbnRyb2woc3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IsCisJCQkJc3RydWN0IGRi Z193YXZlX2NvbnRyb2xfaW5mbyAqd2FjX2luZm8pOwogI2VuZGlmIC8qIEtGRF9EQkdNR1JfSF8g Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVl dWVfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1 ZV9tYW5hZ2VyLmMKaW5kZXggYTVkYzgyMi4uYjA4ZWMwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMKQEAgLTkxNSw3 ICs5MTUsNyBAQCBvdXQ6CiAJcmV0dXJuIHJldHZhbDsKIH0KIAotc3RhdGljIGludCBhbWRrZmRf ZmVuY2Vfd2FpdF90aW1lb3V0KHVuc2lnbmVkIGludCAqZmVuY2VfYWRkciwKK2ludCBhbWRrZmRf ZmVuY2Vfd2FpdF90aW1lb3V0KHVuc2lnbmVkIGludCAqZmVuY2VfYWRkciwKIAkJCQl1bnNpZ25l ZCBpbnQgZmVuY2VfdmFsdWUsCiAJCQkJdW5zaWduZWQgbG9uZyB0aW1lb3V0KQogewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKaW5kZXggMTJhZDU4NS4uMzlhMmNmMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oCkBAIC02NTUsNiArNjU1LDEwIEBAIGludCBw cW1fdXBkYXRlX3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwgdW5zaWdu ZWQgaW50IHFpZCwKIHN0cnVjdCBrZXJuZWxfcXVldWUgKnBxbV9nZXRfa2VybmVsX3F1ZXVlKHN0 cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwKIAkJCQkJCXVuc2lnbmVkIGludCBxaWQp OwogCitpbnQgYW1ka2ZkX2ZlbmNlX3dhaXRfdGltZW91dCh1bnNpZ25lZCBpbnQgKmZlbmNlX2Fk ZHIsCisJCQkJdW5zaWduZWQgaW50IGZlbmNlX3ZhbHVlLAorCQkJCXVuc2lnbmVkIGxvbmcgdGlt ZW91dCk7CisKIC8qIFBhY2tldCBNYW5hZ2VyICovCiAKICNkZWZpbmUgS0ZEX0hJUV9USU1FT1VU ICg1MDApCi0tIAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK