From: "Lin, Amber" Subject: [PATCH 1/3] drm/amdkfd: Simplify kfd2kgd interface Date: Thu, 18 Oct 2018 21:15:09 +0000 Message-ID: <1539897297-12082-1-git-send-email-Amber.Lin@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Lin, Amber" QWZ0ZXIgYW1ka2ZkIG1vZHVsZSBpcyBtZXJnZWQgaW50byBhbWRncHUsIEtGRCBjYW4gY2FsbCBh bWRncHUgZGlyZWN0bHkKYW5kIG5vIGxvbmdlciBuZWVkcyB0byB1c2UgdGhlIGZ1bmN0aW9uIHBv aW50ZXIuIFJlcGxhY2UgdGhvc2UgZnVuY3Rpb24KcG9pbnRlcnMgd2l0aCBmdW5jdGlvbnMgaWYg dGhleSBhcmUgbm90IEFTSUMgZGVwZW5kZW50LgoKU2lnbmVkLW9mZi1ieTogQW1iZXIgTGluIDxB bWJlci5MaW5AYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jaWtfZXZl bnRfaW50ZXJydXB0LmMgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf Y2hhcmRldi5jICAgICAgICAgICB8IDIxICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9jcmF0LmMgICAgICAgICAgICAgIHwgIDUgKystLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jICAgICAgICAgICAgfCAgNyArKystLQogLi4uL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYyAgfCAxNSArKysrKy0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYyAgICAgICB8 ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYyAg ICB8ICA1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYXNpZC5jICAgICAg ICAgICAgIHwgIDUgKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3Mu YyAgICAgICAgICAgfCAzNCArKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfdG9wb2xvZ3kuYyAgICAgICAgICB8IDEwICsrKy0tLS0KIDEwIGZpbGVz IGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2Npa19ldmVudF9pbnRlcnJ1cHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2Npa19ldmVudF9pbnRlcnJ1cHQuYwppbmRleCA1ZDI0NzVk Li4xNzdkMWU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9jaWtfZXZl bnRfaW50ZXJydXB0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvY2lrX2V2ZW50 X2ludGVycnVwdC5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAia2ZkX3ByaXYuaCIKICNp bmNsdWRlICJrZmRfZXZlbnRzLmgiCiAjaW5jbHVkZSAiY2lrX2ludC5oIgorI2luY2x1ZGUgImFt ZGdwdV9hbWRrZmQuaCIKIAogc3RhdGljIGJvb2wgY2lrX2V2ZW50X2ludGVycnVwdF9pc3Ioc3Ry dWN0IGtmZF9kZXYgKmRldiwKIAkJCQkJY29uc3QgdWludDMyX3QgKmloX3JpbmdfZW50cnksCkBA IC0xMDcsNyArMTA4LDcgQEAgc3RhdGljIHZvaWQgY2lrX2V2ZW50X2ludGVycnVwdF93cShzdHJ1 Y3Qga2ZkX2RldiAqZGV2LAogCQlrZmRfcHJvY2Vzc192bV9mYXVsdChkZXYtPmRxbSwgcGFzaWQp OwogCiAJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsKLQkJZGV2LT5rZmQya2dkLT5n ZXRfdm1fZmF1bHRfaW5mbyhkZXYtPmtnZCwgJmluZm8pOworCQlhbWRncHVfYW1ka2ZkX2dwdXZt X2dldF92bV9mYXVsdF9pbmZvKGRldi0+a2dkLCAmaW5mbyk7CiAJCWlmICghaW5mby5wYWdlX2Fk ZHIgJiYgIWluZm8uc3RhdHVzKQogCQkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2NoYXJkZXYuYwppbmRleCAxNGQ1YjVmLi44NWU4MzNkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9jaGFyZGV2LmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJr ZmRfcHJpdi5oIgogI2luY2x1ZGUgImtmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5oIgogI2luY2x1 ZGUgImtmZF9kYmdtZ3IuaCIKKyNpbmNsdWRlICJhbWRncHVfYW1ka2ZkLmgiCiAKIHN0YXRpYyBs b25nIGtmZF9pb2N0bChzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcp Owogc3RhdGljIGludCBrZmRfb3BlbihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CkBA IC04MzQsOCArODM1LDcgQEAgc3RhdGljIGludCBrZmRfaW9jdGxfZ2V0X2Nsb2NrX2NvdW50ZXJz KHN0cnVjdCBmaWxlICpmaWxlcCwKIAlkZXYgPSBrZmRfZGV2aWNlX2J5X2lkKGFyZ3MtPmdwdV9p ZCk7CiAJaWYgKGRldikKIAkJLyogUmVhZGluZyBHUFUgY2xvY2sgY291bnRlciBmcm9tIEtHRCAq LwotCQlhcmdzLT5ncHVfY2xvY2tfY291bnRlciA9Ci0JCQlkZXYtPmtmZDJrZ2QtPmdldF9ncHVf Y2xvY2tfY291bnRlcihkZXYtPmtnZCk7CisJCWFyZ3MtPmdwdV9jbG9ja19jb3VudGVyID0gZ2V0 X2dwdV9jbG9ja19jb3VudGVyKGRldi0+a2dkKTsKIAllbHNlCiAJCS8qIE5vZGUgd2l0aG91dCBH UFUgcmVzb3VyY2UgKi8KIAkJYXJncy0+Z3B1X2Nsb2NrX2NvdW50ZXIgPSAwOwpAQCAtMTA0Miw3 ICsxMDQyLDcgQEAgc3RhdGljIGludCBrZmRfaW9jdGxfY3JlYXRlX2V2ZW50KHN0cnVjdCBmaWxl ICpmaWxwLCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsCiAJCX0KIAkJbXV0ZXhfdW5sb2NrKCZwLT5t dXRleCk7CiAKLQkJZXJyID0ga2ZkLT5rZmQya2dkLT5tYXBfZ3R0X2JvX3RvX2tlcm5lbChrZmQt PmtnZCwKKwkJZXJyID0gYW1kZ3B1X2FtZGtmZF9ncHV2bV9tYXBfZ3R0X2JvX3RvX2tlcm5lbChr ZmQtPmtnZCwKIAkJCQkJCW1lbSwgJmtlcm5fYWRkciwgJnNpemUpOwogCQlpZiAoZXJyKSB7CiAJ CQlwcl9lcnIoIkZhaWxlZCB0byBtYXAgZXZlbnQgcGFnZSB0byBrZXJuZWxcbiIpOwpAQCAtMTI0 MCw3ICsxMjQwLDcgQEAgYm9vbCBrZmRfZGV2X2lzX2xhcmdlX2JhcihzdHJ1Y3Qga2ZkX2RldiAq ZGV2KQogCWlmIChkZXYtPmRldmljZV9pbmZvLT5uZWVkc19pb21tdV9kZXZpY2UpCiAJCXJldHVy biBmYWxzZTsKIAotCWRldi0+a2ZkMmtnZC0+Z2V0X2xvY2FsX21lbV9pbmZvKGRldi0+a2dkLCAm bWVtX2luZm8pOworCWdldF9sb2NhbF9tZW1faW5mbyhkZXYtPmtnZCwgJm1lbV9pbmZvKTsKIAlp ZiAobWVtX2luZm8ubG9jYWxfbWVtX3NpemVfcHJpdmF0ZSA9PSAwICYmCiAJCQltZW1faW5mby5s b2NhbF9tZW1fc2l6ZV9wdWJsaWMgPiAwKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTEyODEsNyArMTI4 MSw3IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX2FsbG9jX21lbW9yeV9vZl9ncHUoc3RydWN0IGZp bGUgKmZpbGVwLAogCQlnb3RvIGVycl91bmxvY2s7CiAJfQogCi0JZXJyID0gZGV2LT5rZmQya2dk LT5hbGxvY19tZW1vcnlfb2ZfZ3B1KAorCWVyciA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fYWxsb2Nf bWVtb3J5X29mX2dwdSgKIAkJZGV2LT5rZ2QsIGFyZ3MtPnZhX2FkZHIsIGFyZ3MtPnNpemUsCiAJ CXBkZC0+dm0sIChzdHJ1Y3Qga2dkX21lbSAqKikgJm1lbSwgJm9mZnNldCwKIAkJZmxhZ3MpOwpA QCAtMTMwMyw3ICsxMzAzLDcgQEAgc3RhdGljIGludCBrZmRfaW9jdGxfYWxsb2NfbWVtb3J5X29m X2dwdShzdHJ1Y3QgZmlsZSAqZmlsZXAsCiAJcmV0dXJuIDA7CiAKIGVycl9mcmVlOgotCWRldi0+ a2ZkMmtnZC0+ZnJlZV9tZW1vcnlfb2ZfZ3B1KGRldi0+a2dkLCAoc3RydWN0IGtnZF9tZW0gKilt ZW0pOworCWFtZGdwdV9hbWRrZmRfZ3B1dm1fZnJlZV9tZW1vcnlfb2ZfZ3B1KGRldi0+a2dkLCAo c3RydWN0IGtnZF9tZW0gKiltZW0pOwogZXJyX3VubG9jazoKIAltdXRleF91bmxvY2soJnAtPm11 dGV4KTsKIAlyZXR1cm4gZXJyOwpAQCAtMTMzOCw3ICsxMzM4LDggQEAgc3RhdGljIGludCBrZmRf aW9jdGxfZnJlZV9tZW1vcnlfb2ZfZ3B1KHN0cnVjdCBmaWxlICpmaWxlcCwKIAkJZ290byBlcnJf dW5sb2NrOwogCX0KIAotCXJldCA9IGRldi0+a2ZkMmtnZC0+ZnJlZV9tZW1vcnlfb2ZfZ3B1KGRl di0+a2dkLCAoc3RydWN0IGtnZF9tZW0gKiltZW0pOworCXJldCA9IGFtZGdwdV9hbWRrZmRfZ3B1 dm1fZnJlZV9tZW1vcnlfb2ZfZ3B1KGRldi0+a2dkLAorCQkJCQkJKHN0cnVjdCBrZ2RfbWVtICop bWVtKTsKIAogCS8qIElmIGZyZWVpbmcgdGhlIGJ1ZmZlciBmYWlsZWQsIGxlYXZlIHRoZSBoYW5k bGUgaW4gcGxhY2UgZm9yCiAJICogY2xlYW4tdXAgZHVyaW5nIHByb2Nlc3MgdGVhci1kb3duLgpA QCAtMTQxOCw3ICsxNDE5LDcgQEAgc3RhdGljIGludCBrZmRfaW9jdGxfbWFwX21lbW9yeV90b19n cHUoc3RydWN0IGZpbGUgKmZpbGVwLAogCQkJZXJyID0gUFRSX0VSUihwZWVyX3BkZCk7CiAJCQln b3RvIGdldF9tZW1fb2JqX2Zyb21faGFuZGxlX2ZhaWxlZDsKIAkJfQotCQllcnIgPSBwZWVyLT5r ZmQya2dkLT5tYXBfbWVtb3J5X3RvX2dwdSgKKwkJZXJyID0gYW1kZ3B1X2FtZGtmZF9ncHV2bV9t YXBfbWVtb3J5X3RvX2dwdSgKIAkJCXBlZXItPmtnZCwgKHN0cnVjdCBrZ2RfbWVtICopbWVtLCBw ZWVyX3BkZC0+dm0pOwogCQlpZiAoZXJyKSB7CiAJCQlwcl9lcnIoIkZhaWxlZCB0byBtYXAgdG8g Z3B1ICVkLyVkXG4iLApAQCAtMTQzMCw3ICsxNDMxLDcgQEAgc3RhdGljIGludCBrZmRfaW9jdGxf bWFwX21lbW9yeV90b19ncHUoc3RydWN0IGZpbGUgKmZpbGVwLAogCiAJbXV0ZXhfdW5sb2NrKCZw LT5tdXRleCk7CiAKLQllcnIgPSBkZXYtPmtmZDJrZ2QtPnN5bmNfbWVtb3J5KGRldi0+a2dkLCAo c3RydWN0IGtnZF9tZW0gKikgbWVtLCB0cnVlKTsKKwllcnIgPSBhbWRncHVfYW1ka2ZkX2dwdXZt X3N5bmNfbWVtb3J5KGRldi0+a2dkLCAoc3RydWN0IGtnZF9tZW0gKikgbWVtLCB0cnVlKTsKIAlp ZiAoZXJyKSB7CiAJCXByX2RlYnVnKCJTeW5jIG1lbW9yeSBmYWlsZWQsIHdhaXQgaW50ZXJydXB0 ZWQgYnkgdXNlciBzaWduYWxcbiIpOwogCQlnb3RvIHN5bmNfbWVtb3J5X2ZhaWxlZDsKQEAgLTE1 MjUsNyArMTUyNiw3IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX3VubWFwX21lbW9yeV9mcm9tX2dw dShzdHJ1Y3QgZmlsZSAqZmlsZXAsCiAJCQllcnIgPSAtRU5PREVWOwogCQkJZ290byBnZXRfbWVt X29ial9mcm9tX2hhbmRsZV9mYWlsZWQ7CiAJCX0KLQkJZXJyID0gZGV2LT5rZmQya2dkLT51bm1h cF9tZW1vcnlfdG9fZ3B1KAorCQllcnIgPSBhbWRncHVfYW1ka2ZkX2dwdXZtX3VubWFwX21lbW9y eV9mcm9tX2dwdSgKIAkJCXBlZXItPmtnZCwgKHN0cnVjdCBrZ2RfbWVtICopbWVtLCBwZWVyX3Bk ZC0+dm0pOwogCQlpZiAoZXJyKSB7CiAJCQlwcl9lcnIoIkZhaWxlZCB0byB1bm1hcCBmcm9tIGdw dSAlZC8lZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9j cmF0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY3JhdC5jCmluZGV4IGRkNGYz YmQuLmE0OGJlOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9j cmF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2NyYXQuYwpAQCAtMjYs NiArMjYsNyBAQAogI2luY2x1ZGUgImtmZF9wcml2LmgiCiAjaW5jbHVkZSAia2ZkX3RvcG9sb2d5 LmgiCiAjaW5jbHVkZSAia2ZkX2lvbW11LmgiCisjaW5jbHVkZSAiYW1kZ3B1X2FtZGtmZC5oIgog CiAvKiBHUFUgUHJvY2Vzc29yIElEIGJhc2UgZm9yIGRHUFVzIGZvciB3aGljaCBWQ1JBVCBuZWVk cyB0byBiZSBjcmVhdGVkLgogICogR1BVIHByb2Nlc3NvciBJRCBhcmUgZXhwcmVzc2VkIHdpdGgg Qml0WzMxXT0xLgpAQCAtMTE1OSw3ICsxMTYwLDcgQEAgc3RhdGljIGludCBrZmRfY3JlYXRlX3Zj cmF0X2ltYWdlX2dwdSh2b2lkICpwY3JhdF9pbWFnZSwKIAljdS0+ZmxhZ3MgfD0gQ1JBVF9DVV9G TEFHU19HUFVfUFJFU0VOVDsKIAljdS0+cHJveGltaXR5X2RvbWFpbiA9IHByb3hpbWl0eV9kb21h aW47CiAKLQlrZGV2LT5rZmQya2dkLT5nZXRfY3VfaW5mbyhrZGV2LT5rZ2QsICZjdV9pbmZvKTsK KwlnZXRfY3VfaW5mbyhrZGV2LT5rZ2QsICZjdV9pbmZvKTsKIAljdS0+bnVtX3NpbWRfcGVyX2N1 ID0gY3VfaW5mby5zaW1kX3Blcl9jdTsKIAljdS0+bnVtX3NpbWRfY29yZXMgPSBjdV9pbmZvLnNp bWRfcGVyX2N1ICogY3VfaW5mby5jdV9hY3RpdmVfbnVtYmVyOwogCWN1LT5tYXhfd2F2ZXNfc2lt ZCA9IGN1X2luZm8ubWF4X3dhdmVzX3Blcl9zaW1kOwpAQCAtMTE5MCw3ICsxMTkxLDcgQEAgc3Rh dGljIGludCBrZmRfY3JlYXRlX3ZjcmF0X2ltYWdlX2dwdSh2b2lkICpwY3JhdF9pbWFnZSwKIAkg KiByZXBvcnQgdGhlIHRvdGFsIEZCIHNpemUgKHB1YmxpYytwcml2YXRlKSBhcyBhIHNpbmdsZQog CSAqIHByaXZhdGUgaGVhcC4KIAkgKi8KLQlrZGV2LT5rZmQya2dkLT5nZXRfbG9jYWxfbWVtX2lu Zm8oa2Rldi0+a2dkLCAmbG9jYWxfbWVtX2luZm8pOworCWdldF9sb2NhbF9tZW1faW5mbyhrZGV2 LT5rZ2QsICZsb2NhbF9tZW1faW5mbyk7CiAJc3ViX3R5cGVfaGRyID0gKHR5cGVvZihzdWJfdHlw ZV9oZHIpKSgoY2hhciAqKXN1Yl90eXBlX2hkciArCiAJCQlzdWJfdHlwZV9oZHItPmxlbmd0aCk7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwppbmRleCBhOWYxOGVhLi5l ZWI0MmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCkBAIC0yOCw2 ICsyOCw3IEBACiAjaW5jbHVkZSAia2ZkX3BtNF9oZWFkZXJzX3ZpLmgiCiAjaW5jbHVkZSAiY3dz cl90cmFwX2hhbmRsZXIuaCIKICNpbmNsdWRlICJrZmRfaW9tbXUuaCIKKyNpbmNsdWRlICJhbWRn cHVfYW1ka2ZkLmgiCiAKICNkZWZpbmUgTVFEX1NJWkVfQUxJR05FRCA3NjgKIApAQCAtNDc4LDcg KzQ3OSw3IEBAIGJvb2wga2dkMmtmZF9kZXZpY2VfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLAog CS8qIGFkZCBhbm90aGVyIDUxMktCIGZvciBhbGwgb3RoZXIgYWxsb2NhdGlvbnMgb24gZ2FydCAo SFBELCBmZW5jZXMpICovCiAJc2l6ZSArPSA1MTIgKiAxMDI0OwogCi0JaWYgKGtmZC0+a2ZkMmtn ZC0+aW5pdF9ndHRfbWVtX2FsbG9jYXRpb24oCisJaWYgKGFsbG9jX2d0dF9tZW0oCiAJCQlrZmQt PmtnZCwgc2l6ZSwgJmtmZC0+Z3R0X21lbSwKIAkJCSZrZmQtPmd0dF9zdGFydF9ncHVfYWRkciwg JmtmZC0+Z3R0X3N0YXJ0X2NwdV9wdHIsCiAJCQlmYWxzZSkpIHsKQEAgLTU1Miw3ICs1NTMsNyBA QCBib29sIGtnZDJrZmRfZGV2aWNlX2luaXQoc3RydWN0IGtmZF9kZXYgKmtmZCwKIGtmZF9kb29y YmVsbF9lcnJvcjoKIAlrZmRfZ3R0X3NhX2Zpbmkoa2ZkKTsKIGtmZF9ndHRfc2FfaW5pdF9lcnJv cjoKLQlrZmQtPmtmZDJrZ2QtPmZyZWVfZ3R0X21lbShrZmQtPmtnZCwga2ZkLT5ndHRfbWVtKTsK KwlmcmVlX2d0dF9tZW0oa2ZkLT5rZ2QsIGtmZC0+Z3R0X21lbSk7CiAJZGV2X2VycihrZmRfZGV2 aWNlLAogCQkiZGV2aWNlICV4OiV4IE5PVCBhZGRlZCBkdWUgdG8gZXJyb3JzXG4iLAogCQlrZmQt PnBkZXYtPnZlbmRvciwga2ZkLT5wZGV2LT5kZXZpY2UpOwpAQCAtNTY5LDcgKzU3MCw3IEBAIHZv aWQga2dkMmtmZF9kZXZpY2VfZXhpdChzdHJ1Y3Qga2ZkX2RldiAqa2ZkKQogCQlrZmRfdG9wb2xv Z3lfcmVtb3ZlX2RldmljZShrZmQpOwogCQlrZmRfZG9vcmJlbGxfZmluaShrZmQpOwogCQlrZmRf Z3R0X3NhX2Zpbmkoa2ZkKTsKLQkJa2ZkLT5rZmQya2dkLT5mcmVlX2d0dF9tZW0oa2ZkLT5rZ2Qs IGtmZC0+Z3R0X21lbSk7CisJCWZyZWVfZ3R0X21lbShrZmQtPmtnZCwga2ZkLT5ndHRfbWVtKTsK IAl9CiAKIAlrZnJlZShrZmQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwppbmRleCBhM2I5MzM5Li5kZmQ4ZjllNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5h Z2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9t YW5hZ2VyLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJrZmRfbXFkX21hbmFnZXIuaCIK ICNpbmNsdWRlICJjaWtfcmVncy5oIgogI2luY2x1ZGUgImtmZF9rZXJuZWxfcXVldWUuaCIKKyNp bmNsdWRlICJhbWRncHVfYW1ka2ZkLmgiCiAKIC8qIFNpemUgb2YgdGhlIHBlci1waXBlIEVPUCBx dWV1ZSAqLwogI2RlZmluZSBDSUtfSFBEX0VPUF9CWVRFU19MT0cyIDExCkBAIC0yMTksNyArMjIw LDcgQEAgc3RhdGljIGludCBmbHVzaF90ZXh0dXJlX2NhY2hlX25vY3BzY2goc3RydWN0IGtmZF9k ZXYgKmtkZXYsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldHVybiBrZGV2LT5rZmQy a2dkLT5zdWJtaXRfaWIoa2Rldi0+a2dkLCBLR0RfRU5HSU5FX01FQzEsIHFwZC0+dm1pZCwKKwly ZXR1cm4gYW1kZ3B1X2FtZGtmZF9zdWJtaXRfaWIoa2Rldi0+a2dkLCBLR0RfRU5HSU5FX01FQzEs IHFwZC0+dm1pZCwKIAkJCQlxcGQtPmliX2Jhc2UsICh1aW50MzJfdCAqKXFwZC0+aWJfa2FkZHIs CiAJCQkJcG1mLT5yZWxlYXNlX21lbV9zaXplIC8gc2l6ZW9mKHVpbnQzMl90KSk7CiB9CkBAIC02 NzIsNyArNjczLDcgQEAgc3RhdGljIGludCByZXN0b3JlX3Byb2Nlc3NfcXVldWVzX25vY3BzY2go c3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAKIAlwZGQgPSBxcGRfdG9fcGRkKHFw ZCk7CiAJLyogUmV0cmlldmUgUEQgYmFzZSAqLwotCXBkX2Jhc2UgPSBkcW0tPmRldi0+a2ZkMmtn ZC0+Z2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRkLT52bSk7CisJcGRfYmFzZSA9IGFtZGdwdV9hbWRr ZmRfZ3B1dm1fZ2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRkLT52bSk7CiAKIAlkcW1fbG9jayhkcW0p OwogCWlmIChXQVJOX09OX09OQ0UoIXFwZC0+ZXZpY3RlZCkpIC8qIGFscmVhZHkgcmVzdG9yZWQs IGRvIG5vdGhpbmcgKi8KQEAgLTc0Myw3ICs3NDQsNyBAQCBzdGF0aWMgaW50IHJlc3RvcmVfcHJv Y2Vzc19xdWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAKIAlw ZGQgPSBxcGRfdG9fcGRkKHFwZCk7CiAJLyogUmV0cmlldmUgUEQgYmFzZSAqLwotCXBkX2Jhc2Ug PSBkcW0tPmRldi0+a2ZkMmtnZC0+Z2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRkLT52bSk7CisJcGRf YmFzZSA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fZ2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRkLT52bSk7 CiAKIAlkcW1fbG9jayhkcW0pOwogCWlmIChXQVJOX09OX09OQ0UoIXFwZC0+ZXZpY3RlZCkpIC8q IGFscmVhZHkgcmVzdG9yZWQsIGRvIG5vdGhpbmcgKi8KQEAgLTc5Myw3ICs3OTQsNyBAQCBzdGF0 aWMgaW50IHJlZ2lzdGVyX3Byb2Nlc3Moc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0s CiAKIAlwZGQgPSBxcGRfdG9fcGRkKHFwZCk7CiAJLyogUmV0cmlldmUgUEQgYmFzZSAqLwotCXBk X2Jhc2UgPSBkcW0tPmRldi0+a2ZkMmtnZC0+Z2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRkLT52bSk7 CisJcGRfYmFzZSA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fZ2V0X3Byb2Nlc3NfcGFnZV9kaXIocGRk LT52bSk7CiAKIAlkcW1fbG9jayhkcW0pOwogCWxpc3RfYWRkKCZuLT5saXN0LCAmZHFtLT5xdWV1 ZXMpOwpAQCAtODA1LDcgKzgwNiw3IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfcHJvY2VzcyhzdHJ1 Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAlyZXR2YWwgPSBkcW0tPmFzaWNfb3BzLnVw ZGF0ZV9xcGQoZHFtLCBxcGQpOwogCiAJaWYgKGRxbS0+cHJvY2Vzc2VzX2NvdW50KysgPT0gMCkK LQkJZHFtLT5kZXYtPmtmZDJrZ2QtPnNldF9jb21wdXRlX2lkbGUoZHFtLT5kZXYtPmtnZCwgZmFs c2UpOworCQlhbWRncHVfYW1ka2ZkX3NldF9jb21wdXRlX2lkbGUoZHFtLT5kZXYtPmtnZCwgZmFs c2UpOwogCiAJZHFtX3VubG9jayhkcW0pOwogCkBAIC04MjksNyArODMwLDcgQEAgc3RhdGljIGlu dCB1bnJlZ2lzdGVyX3Byb2Nlc3Moc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJ CQlsaXN0X2RlbCgmY3VyLT5saXN0KTsKIAkJCWtmcmVlKGN1cik7CiAJCQlpZiAoLS1kcW0tPnBy b2Nlc3Nlc19jb3VudCA9PSAwKQotCQkJCWRxbS0+ZGV2LT5rZmQya2dkLT5zZXRfY29tcHV0ZV9p ZGxlKAorCQkJCWFtZGdwdV9hbWRrZmRfc2V0X2NvbXB1dGVfaWRsZSgKIAkJCQkJZHFtLT5kZXYt PmtnZCwgdHJ1ZSk7CiAJCQlnb3RvIG91dDsKIAkJfQpAQCAtMTc5Niw3ICsxNzk3LDcgQEAgc3Rh dGljIHZvaWQga2ZkX3Byb2Nlc3NfaHdfZXhjZXB0aW9uKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIHsKIAlzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSA9IGNvbnRhaW5lcl9vZih3 b3JrLAogCQkJc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyLCBod19leGNlcHRpb25fd29yayk7 Ci0JZHFtLT5kZXYtPmtmZDJrZ2QtPmdwdV9yZWNvdmVyKGRxbS0+ZGV2LT5rZ2QpOworCWFtZGdw dV9hbWRrZmRfZ3B1X3Jlc2V0KGRxbS0+ZGV2LT5rZ2QpOwogfQogCiAjaWYgZGVmaW5lZChDT05G SUdfREVCVUdfRlMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf bXFkX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdl ci5jCmluZGV4IGUzMzAxOWEuLjI3MDgwNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9tcWRfbWFuYWdlci5jCkBAIC0yMiw2ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUg ImtmZF9tcWRfbWFuYWdlci5oIgorI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIKIAogc3RydWN0 IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdlcl9pbml0KGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsCiAJ CQkJCXN0cnVjdCBrZmRfZGV2ICpkZXYpCkBAIC01OCw3ICs1OSw3IEBAIHZvaWQgbXFkX3N5bW1l dHJpY2FsbHlfbWFwX2N1X21hc2soc3RydWN0IG1xZF9tYW5hZ2VyICptbSwKIAl1aW50MzJfdCBj dV9wZXJfc2hbNF0gPSB7MH07CiAJaW50IGksIHNlLCBjdSA9IDA7CiAKLQltbS0+ZGV2LT5rZmQy a2dkLT5nZXRfY3VfaW5mbyhtbS0+ZGV2LT5rZ2QsICZjdV9pbmZvKTsKKwlnZXRfY3VfaW5mbyht bS0+ZGV2LT5rZ2QsICZjdV9pbmZvKTsKIAogCWlmIChjdV9tYXNrX2NvdW50ID4gY3VfaW5mby5j dV9hY3RpdmVfbnVtYmVyKQogCQljdV9tYXNrX2NvdW50ID0gY3VfaW5mby5jdV9hY3RpdmVfbnVt YmVyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5h Z2VyX3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjku YwppbmRleCBmMzgxYzFjLi5kYjNiMTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImdj L2djXzlfMF9vZmZzZXQuaCIKICNpbmNsdWRlICJnYy9nY185XzBfc2hfbWFzay5oIgogI2luY2x1 ZGUgInNkbWEwL3NkbWEwXzRfMF9zaF9tYXNrLmgiCisjaW5jbHVkZSAiYW1kZ3B1X2FtZGtmZC5o IgogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2OV9tcWQgKmdldF9tcWQodm9pZCAqbXFkKQogewpA QCAtODMsNyArODQsNyBAQCBzdGF0aWMgaW50IGluaXRfbXFkKHN0cnVjdCBtcWRfbWFuYWdlciAq bW0sIHZvaWQgKiptcWQsCiAJCSptcWRfbWVtX29iaiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBr ZmRfbWVtX29iaiksIEdGUF9LRVJORUwpOwogCQlpZiAoISptcWRfbWVtX29iaikKIAkJCXJldHVy biAtRU5PTUVNOwotCQlyZXR2YWwgPSBrZmQtPmtmZDJrZ2QtPmluaXRfZ3R0X21lbV9hbGxvY2F0 aW9uKGtmZC0+a2dkLAorCQlyZXR2YWwgPSBhbGxvY19ndHRfbWVtKGtmZC0+a2dkLAogCQkJQUxJ R04ocS0+Y3RsX3N0YWNrX3NpemUsIFBBR0VfU0laRSkgKwogCQkJCUFMSUdOKHNpemVvZihzdHJ1 Y3QgdjlfbXFkKSwgUEFHRV9TSVpFKSwKIAkJCSYoKCptcWRfbWVtX29iaiktPmd0dF9tZW0pLApA QCAtMjUwLDcgKzI1MSw3IEBAIHN0YXRpYyB2b2lkIHVuaW5pdF9tcWQoc3RydWN0IG1xZF9tYW5h Z2VyICptbSwgdm9pZCAqbXFkLAogCXN0cnVjdCBrZmRfZGV2ICprZmQgPSBtbS0+ZGV2OwogCiAJ aWYgKG1xZF9tZW1fb2JqLT5ndHRfbWVtKSB7Ci0JCWtmZC0+a2ZkMmtnZC0+ZnJlZV9ndHRfbWVt KGtmZC0+a2dkLCBtcWRfbWVtX29iai0+Z3R0X21lbSk7CisJCWZyZWVfZ3R0X21lbShrZmQtPmtn ZCwgbXFkX21lbV9vYmotPmd0dF9tZW0pOwogCQlrZnJlZShtcWRfbWVtX29iaik7CiAJfSBlbHNl IHsKIAkJa2ZkX2d0dF9zYV9mcmVlKG1tLT5kZXYsIG1xZF9tZW1fb2JqKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYXNpZC5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX3Bhc2lkLmMKaW5kZXggMTVmZmY0NC4uMzNiMDhmZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Bhc2lkLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Bhc2lkLmMKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSAia2ZkX3ByaXYuaCIKKyNpbmNsdWRlICJhbWRn cHVfaWRzLmgiCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFzaWRfYml0cyA9IDE2Owogc3RhdGlj IGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICprZmQya2dkOwpAQCAtNzEsNyArNzIsNyBAQCB1 bnNpZ25lZCBpbnQga2ZkX3Bhc2lkX2FsbG9jKHZvaWQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQog Ci0JciA9IGtmZDJrZ2QtPmFsbG9jX3Bhc2lkKHBhc2lkX2JpdHMpOworCXIgPSBhbWRncHVfcGFz aWRfYWxsb2MocGFzaWRfYml0cyk7CiAKIAlyZXR1cm4gciA+IDAgPyByIDogMDsKIH0KQEAgLTc5 LDUgKzgwLDUgQEAgdW5zaWduZWQgaW50IGtmZF9wYXNpZF9hbGxvYyh2b2lkKQogdm9pZCBrZmRf cGFzaWRfZnJlZSh1bnNpZ25lZCBpbnQgcGFzaWQpCiB7CiAJaWYgKGtmZDJrZ2QpCi0JCWtmZDJr Z2QtPmZyZWVfcGFzaWQocGFzaWQpOworCQlhbWRncHVfcGFzaWRfZnJlZShwYXNpZCk7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzcy5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3MuYwppbmRleCAwMDM5ZTQ1Li44MGIz NmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzcy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzLmMKQEAgLTMxLDYg KzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KICNpbmNsdWRlIDxsaW51eC9tbWFu Lmg+CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgorI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIK IAogc3RydWN0IG1tX3N0cnVjdDsKIApAQCAtMTAwLDggKzEwMSw4IEBAIHN0YXRpYyB2b2lkIGtm ZF9wcm9jZXNzX2ZyZWVfZ3B1dm0oc3RydWN0IGtnZF9tZW0gKm1lbSwKIHsKIAlzdHJ1Y3Qga2Zk X2RldiAqZGV2ID0gcGRkLT5kZXY7CiAKLQlkZXYtPmtmZDJrZ2QtPnVubWFwX21lbW9yeV90b19n cHUoZGV2LT5rZ2QsIG1lbSwgcGRkLT52bSk7Ci0JZGV2LT5rZmQya2dkLT5mcmVlX21lbW9yeV9v Zl9ncHUoZGV2LT5rZ2QsIG1lbSk7CisJYW1kZ3B1X2FtZGtmZF9ncHV2bV91bm1hcF9tZW1vcnlf ZnJvbV9ncHUoZGV2LT5rZ2QsIG1lbSwgcGRkLT52bSk7CisJYW1kZ3B1X2FtZGtmZF9ncHV2bV9m cmVlX21lbW9yeV9vZl9ncHUoZGV2LT5rZ2QsIG1lbSk7CiB9CiAKIC8qIGtmZF9wcm9jZXNzX2Fs bG9jX2dwdXZtIC0gQWxsb2NhdGUgR1BVIFZNIGZvciB0aGUgS0ZEIHByb2Nlc3MKQEAgLTExOSwx NiArMTIwLDE2IEBAIHN0YXRpYyBpbnQga2ZkX3Byb2Nlc3NfYWxsb2NfZ3B1dm0oc3RydWN0IGtm ZF9wcm9jZXNzX2RldmljZSAqcGRkLAogCWludCBoYW5kbGU7CiAJaW50IGVycjsKIAotCWVyciA9 IGtkZXYtPmtmZDJrZ2QtPmFsbG9jX21lbW9yeV9vZl9ncHUoa2Rldi0+a2dkLCBncHVfdmEsIHNp emUsCisJZXJyID0gYW1kZ3B1X2FtZGtmZF9ncHV2bV9hbGxvY19tZW1vcnlfb2ZfZ3B1KGtkZXYt PmtnZCwgZ3B1X3ZhLCBzaXplLAogCQkJCQkJIHBkZC0+dm0sICZtZW0sIE5VTEwsIGZsYWdzKTsK IAlpZiAoZXJyKQogCQlnb3RvIGVycl9hbGxvY19tZW07CiAKLQllcnIgPSBrZGV2LT5rZmQya2dk LT5tYXBfbWVtb3J5X3RvX2dwdShrZGV2LT5rZ2QsIG1lbSwgcGRkLT52bSk7CisJZXJyID0gYW1k Z3B1X2FtZGtmZF9ncHV2bV9tYXBfbWVtb3J5X3RvX2dwdShrZGV2LT5rZ2QsIG1lbSwgcGRkLT52 bSk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfbWFwX21lbTsKIAotCWVyciA9IGtkZXYtPmtmZDJr Z2QtPnN5bmNfbWVtb3J5KGtkZXYtPmtnZCwgbWVtLCB0cnVlKTsKKwllcnIgPSBhbWRncHVfYW1k a2ZkX2dwdXZtX3N5bmNfbWVtb3J5KGtkZXYtPmtnZCwgbWVtLCB0cnVlKTsKIAlpZiAoZXJyKSB7 CiAJCXByX2RlYnVnKCJTeW5jIG1lbW9yeSBmYWlsZWQsIHdhaXQgaW50ZXJydXB0ZWQgYnkgdXNl ciBzaWduYWxcbiIpOwogCQlnb3RvIHN5bmNfbWVtb3J5X2ZhaWxlZDsKQEAgLTE0Nyw3ICsxNDgs NyBAQCBzdGF0aWMgaW50IGtmZF9wcm9jZXNzX2FsbG9jX2dwdXZtKHN0cnVjdCBrZmRfcHJvY2Vz c19kZXZpY2UgKnBkZCwKIAl9CiAKIAlpZiAoa3B0cikgewotCQllcnIgPSBrZGV2LT5rZmQya2dk LT5tYXBfZ3R0X2JvX3RvX2tlcm5lbChrZGV2LT5rZ2QsCisJCWVyciA9IGFtZGdwdV9hbWRrZmRf Z3B1dm1fbWFwX2d0dF9ib190b19rZXJuZWwoa2Rldi0+a2dkLAogCQkJCShzdHJ1Y3Qga2dkX21l bSAqKW1lbSwga3B0ciwgTlVMTCk7CiAJCWlmIChlcnIpIHsKIAkJCXByX2RlYnVnKCJNYXAgR1RU IEJPIHRvIGtlcm5lbCBmYWlsZWRcbiIpOwpAQCAtMTY1LDcgKzE2Niw3IEBAIHN0YXRpYyBpbnQg a2ZkX3Byb2Nlc3NfYWxsb2NfZ3B1dm0oc3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSAqcGRkLAog CXJldHVybiBlcnI7CiAKIGVycl9tYXBfbWVtOgotCWtkZXYtPmtmZDJrZ2QtPmZyZWVfbWVtb3J5 X29mX2dwdShrZGV2LT5rZ2QsIG1lbSk7CisJYW1kZ3B1X2FtZGtmZF9ncHV2bV9mcmVlX21lbW9y eV9vZl9ncHUoa2Rldi0+a2dkLCBtZW0pOwogZXJyX2FsbG9jX21lbToKIAkqa3B0ciA9IE5VTEw7 CiAJcmV0dXJuIGVycjsKQEAgLTI5NiwxMSArMjk3LDExIEBAIHN0YXRpYyB2b2lkIGtmZF9wcm9j ZXNzX2RldmljZV9mcmVlX2JvcyhzdHJ1Y3Qga2ZkX3Byb2Nlc3NfZGV2aWNlICpwZGQpCiAJCQkJ ICAgIHBlcl9kZXZpY2VfbGlzdCkgewogCQkJaWYgKCFwZWVyX3BkZC0+dm0pCiAJCQkJY29udGlu dWU7Ci0JCQlwZWVyX3BkZC0+ZGV2LT5rZmQya2dkLT51bm1hcF9tZW1vcnlfdG9fZ3B1KAorCQkJ YW1kZ3B1X2FtZGtmZF9ncHV2bV91bm1hcF9tZW1vcnlfZnJvbV9ncHUoCiAJCQkJcGVlcl9wZGQt PmRldi0+a2dkLCBtZW0sIHBlZXJfcGRkLT52bSk7CiAJCX0KIAotCQlwZGQtPmRldi0+a2ZkMmtn ZC0+ZnJlZV9tZW1vcnlfb2ZfZ3B1KHBkZC0+ZGV2LT5rZ2QsIG1lbSk7CisJCWFtZGdwdV9hbWRr ZmRfZ3B1dm1fZnJlZV9tZW1vcnlfb2ZfZ3B1KHBkZC0+ZGV2LT5rZ2QsIG1lbSk7CiAJCWtmZF9w cm9jZXNzX2RldmljZV9yZW1vdmVfb2JqX2hhbmRsZShwZGQsIGlkKTsKIAl9CiB9CkBAIC0zMjMs MTEgKzMyNCwxMiBAQCBzdGF0aWMgdm9pZCBrZmRfcHJvY2Vzc19kZXN0cm95X3BkZHMoc3RydWN0 IGtmZF9wcm9jZXNzICpwKQogCQkJCXBkZC0+ZGV2LT5pZCwgcC0+cGFzaWQpOwogCiAJCWlmIChw ZGQtPmRybV9maWxlKSB7Ci0JCQlwZGQtPmRldi0+a2ZkMmtnZC0+cmVsZWFzZV9wcm9jZXNzX3Zt KHBkZC0+ZGV2LT5rZ2QsIHBkZC0+dm0pOworCQkJYW1kZ3B1X2FtZGtmZF9ncHV2bV9yZWxlYXNl X3Byb2Nlc3Nfdm0oCisJCQkJCXBkZC0+ZGV2LT5rZ2QsIHBkZC0+dm0pOwogCQkJZnB1dChwZGQt PmRybV9maWxlKTsKIAkJfQogCQllbHNlIGlmIChwZGQtPnZtKQotCQkJcGRkLT5kZXYtPmtmZDJr Z2QtPmRlc3Ryb3lfcHJvY2Vzc192bSgKKwkJCWFtZGdwdV9hbWRrZmRfZ3B1dm1fZGVzdHJveV9w cm9jZXNzX3ZtKAogCQkJCXBkZC0+ZGV2LT5rZ2QsIHBkZC0+dm0pOwogCiAJCWxpc3RfZGVsKCZw ZGQtPnBlcl9kZXZpY2VfbGlzdCk7CkBAIC02ODgsMTIgKzY5MCwxMiBAQCBpbnQga2ZkX3Byb2Nl c3NfZGV2aWNlX2luaXRfdm0oc3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSAqcGRkLAogCWRldiA9 IHBkZC0+ZGV2OwogCiAJaWYgKGRybV9maWxlKQotCQlyZXQgPSBkZXYtPmtmZDJrZ2QtPmFjcXVp cmVfcHJvY2Vzc192bSgKKwkJcmV0ID0gYW1kZ3B1X2FtZGtmZF9ncHV2bV9hY3F1aXJlX3Byb2Nl c3Nfdm0oCiAJCQlkZXYtPmtnZCwgZHJtX2ZpbGUsIHAtPnBhc2lkLAogCQkJJnBkZC0+dm0sICZw LT5rZ2RfcHJvY2Vzc19pbmZvLCAmcC0+ZWYpOwogCWVsc2UKLQkJcmV0ID0gZGV2LT5rZmQya2dk LT5jcmVhdGVfcHJvY2Vzc192bSgKLQkJCWRldi0+a2dkLCBwLT5wYXNpZCwgJnBkZC0+dm0sICZw LT5rZ2RfcHJvY2Vzc19pbmZvLCAmcC0+ZWYpOworCQlyZXQgPSBhbWRncHVfYW1ka2ZkX2dwdXZt X2NyZWF0ZV9wcm9jZXNzX3ZtKGRldi0+a2dkLCBwLT5wYXNpZCwKKwkJCSZwZGQtPnZtLCAmcC0+ a2dkX3Byb2Nlc3NfaW5mbywgJnAtPmVmKTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiRmFpbGVk IHRvIGNyZWF0ZSBwcm9jZXNzIFZNIG9iamVjdFxuIik7CiAJCXJldHVybiByZXQ7CkBAIC03MTQs NyArNzE2LDcgQEAgaW50IGtmZF9wcm9jZXNzX2RldmljZV9pbml0X3ZtKHN0cnVjdCBrZmRfcHJv Y2Vzc19kZXZpY2UgKnBkZCwKIGVycl9yZXNlcnZlX2liX21lbToKIAlrZmRfcHJvY2Vzc19kZXZp Y2VfZnJlZV9ib3MocGRkKTsKIAlpZiAoIWRybV9maWxlKQotCQlkZXYtPmtmZDJrZ2QtPmRlc3Ry b3lfcHJvY2Vzc192bShkZXYtPmtnZCwgcGRkLT52bSk7CisJCWFtZGdwdV9hbWRrZmRfZ3B1dm1f ZGVzdHJveV9wcm9jZXNzX3ZtKGRldi0+a2dkLCBwZGQtPnZtKTsKIAlwZGQtPnZtID0gTlVMTDsK IAogCXJldHVybiByZXQ7CkBAIC05NzIsNyArOTc0LDcgQEAgc3RhdGljIHZvaWQgcmVzdG9yZV9w cm9jZXNzX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICovCiAKIAlwLT5sYXN0 X3Jlc3RvcmVfdGltZXN0YW1wID0gZ2V0X2ppZmZpZXNfNjQoKTsKLQlyZXQgPSBwZGQtPmRldi0+ a2ZkMmtnZC0+cmVzdG9yZV9wcm9jZXNzX2JvcyhwLT5rZ2RfcHJvY2Vzc19pbmZvLAorCXJldCA9 IGFtZGdwdV9hbWRrZmRfZ3B1dm1fcmVzdG9yZV9wcm9jZXNzX2JvcyhwLT5rZ2RfcHJvY2Vzc19p bmZvLAogCQkJCQkJICAgICAmcC0+ZWYpOwogCWlmIChyZXQpIHsKIAkJcHJfZGVidWcoIkZhaWxl ZCB0byByZXN0b3JlIEJPcyBvZiBwYXNpZCAlZCwgcmV0cnkgYWZ0ZXIgJWQgbXNcbiIsCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfdG9wb2xvZ3kuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jCmluZGV4IGUzODQzYzUuLjZmNzMx MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jCkBAIC0zNiw2 ICszNiw3IEBACiAjaW5jbHVkZSAia2ZkX3RvcG9sb2d5LmgiCiAjaW5jbHVkZSAia2ZkX2Rldmlj ZV9xdWV1ZV9tYW5hZ2VyLmgiCiAjaW5jbHVkZSAia2ZkX2lvbW11LmgiCisjaW5jbHVkZSAiYW1k Z3B1X2FtZGtmZC5oIgogCiAvKiB0b3BvbG9neV9kZXZpY2VfbGlzdCAtIE1hc3RlciBsaXN0IG9m IGFsbCB0b3BvbG9neSBkZXZpY2VzICovCiBzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCB0b3BvbG9n eV9kZXZpY2VfbGlzdDsKQEAgLTEwNTIsNyArMTA1Myw3IEBAIHN0YXRpYyB1aW50MzJfdCBrZmRf Z2VuZXJhdGVfZ3B1X2lkKHN0cnVjdCBrZmRfZGV2ICpncHUpCiAJaWYgKCFncHUpCiAJCXJldHVy biAwOwogCi0JZ3B1LT5rZmQya2dkLT5nZXRfbG9jYWxfbWVtX2luZm8oZ3B1LT5rZ2QsICZsb2Nh bF9tZW1faW5mbyk7CisJZ2V0X2xvY2FsX21lbV9pbmZvKGdwdS0+a2dkLCAmbG9jYWxfbWVtX2lu Zm8pOwogCiAJbG9jYWxfbWVtX3NpemUgPSBsb2NhbF9tZW1faW5mby5sb2NhbF9tZW1fc2l6ZV9w cml2YXRlICsKIAkJCWxvY2FsX21lbV9pbmZvLmxvY2FsX21lbV9zaXplX3B1YmxpYzsKQEAgLTEx MTgsOCArMTExOSw3IEBAIHN0YXRpYyB2b2lkIGtmZF9maWxsX21lbV9jbGtfbWF4X2luZm8oc3Ry dWN0IGtmZF90b3BvbG9neV9kZXZpY2UgKmRldikKIAkgKiBmb3IgQVBVcyAtIElmIENSQVQgZnJv bSBBQ1BJIHJlcG9ydHMgbW9yZSB0aGFuIG9uZSBiYW5rLCB0aGVuCiAJICoJYWxsIHRoZSBiYW5r cyB3aWxsIHJlcG9ydCB0aGUgc2FtZSBtZW1fY2xrX21heCBpbmZvcm1hdGlvbgogCSAqLwotCWRl di0+Z3B1LT5rZmQya2dkLT5nZXRfbG9jYWxfbWVtX2luZm8oZGV2LT5ncHUtPmtnZCwKLQkJJmxv Y2FsX21lbV9pbmZvKTsKKwlnZXRfbG9jYWxfbWVtX2luZm8oZGV2LT5ncHUtPmtnZCwgJmxvY2Fs X21lbV9pbmZvKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkobWVtLCAmZGV2LT5tZW1fcHJvcHMs IGxpc3QpCiAJCW1lbS0+bWVtX2Nsa19tYXggPSBsb2NhbF9tZW1faW5mby5tZW1fY2xrX21heDsK QEAgLTEyNDAsNyArMTI0MCw3IEBAIGludCBrZmRfdG9wb2xvZ3lfYWRkX2RldmljZShzdHJ1Y3Qg a2ZkX2RldiAqZ3B1KQogCSAqIG5lZWRlZCBmb3IgdGhlIHRvcG9sb2d5CiAJICovCiAKLQlkZXYt PmdwdS0+a2ZkMmtnZC0+Z2V0X2N1X2luZm8oZGV2LT5ncHUtPmtnZCwgJmN1X2luZm8pOworCWdl dF9jdV9pbmZvKGRldi0+Z3B1LT5rZ2QsICZjdV9pbmZvKTsKIAlkZXYtPm5vZGVfcHJvcHMuc2lt ZF9hcnJheXNfcGVyX2VuZ2luZSA9CiAJCWN1X2luZm8ubnVtX3NoYWRlcl9hcnJheXNfcGVyX2Vu Z2luZTsKIApAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgaW50IGtmZF90b3BvbG9neV9hZGRfZGV2aWNl KHN0cnVjdCBrZmRfZGV2ICpncHUpCiAJZGV2LT5ub2RlX3Byb3BzLmxvY2F0aW9uX2lkID0gUENJ X0RFVklEKGdwdS0+cGRldi0+YnVzLT5udW1iZXIsCiAJCWdwdS0+cGRldi0+ZGV2Zm4pOwogCWRl di0+bm9kZV9wcm9wcy5tYXhfZW5naW5lX2Nsa19mY29tcHV0ZSA9Ci0JCWRldi0+Z3B1LT5rZmQy a2dkLT5nZXRfbWF4X2VuZ2luZV9jbG9ja19pbl9taHooZGV2LT5ncHUtPmtnZCk7CisJCWdldF9t YXhfZW5naW5lX2Nsb2NrX2luX21oeihkZXYtPmdwdS0+a2dkKTsKIAlkZXYtPm5vZGVfcHJvcHMu bWF4X2VuZ2luZV9jbGtfY2NvbXB1dGUgPQogCQljcHVmcmVxX3F1aWNrX2dldF9tYXgoMCkgLyAx MDAwOwogCWRldi0+bm9kZV9wcm9wcy5kcm1fcmVuZGVyX21pbm9yID0KLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxp bmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK