From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuehling Subject: [PATCH 07/19] drm/amdkfd: Change x==NULL/false references to !x Date: Fri, 11 Aug 2017 17:56:17 -0400 Message-ID: <1502488589-30272-8-git-send-email-Felix.Kuehling@amd.com> References: <1502488589-30272-1-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502488589-30272-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org> 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, oded.gabbay-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Felix Kuehling , Kent Russell RnJvbTogS2VudCBSdXNzZWxsIDxrZW50LnJ1c3NlbGxAYW1kLmNvbT4KClVwc3RyZWFtIHByZWZl cnMgdGhlICF4IG5vdGF0aW9uIHRvIHg9PU5VTEwgb3IgeD09ZmFsc2UuIEFsb25nIHRob3NlIGxp bmVzCmNoYW5nZSB0aGUgPT10cnVlIG9yICE9TlVMTCByZWZlcmVuY2VzIGFzIHdlbGwuIEFsc28g bWFrZSB0aGUgcmVmZXJlbmNlcwp0byAheCB0aGUgc2FtZSwgZXhjbHVkaW5nICgpIGZvciByZWFk YWJpbGl0eS4KClNpZ25lZC1vZmYtYnk6IEtlbnQgUnVzc2VsbCA8a2VudC5ydXNzZWxsQGFtZC5j b20+ClNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0BhbWQuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jaGFyZGV2LmMgICAgICAgICAg IHwgMjIgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5j ICAgICAgICAgICAgfCAyMCArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kYmdtZ3IuYyAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kZXZpY2UuYyAgICAgICAgICAgIHwgMTAgKystLS0KIC4uLi9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMgIHwgNTAgKysrKysrKysrKystLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rvb3JiZWxsLmMgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50cy5jICAgICAgICAgICAg fCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9mbGF0X21lbW9yeS5jICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUu YyAgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFn ZXJfY2lrLmMgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21h bmFnZXJfdmkuYyAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFj a2V0X21hbmFnZXIuYyAgICB8IDI2ICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcHJvY2Vzcy5jICAgICAgICAgICB8ICA2ICstLQogLi4uL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyLmMgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF90b3BvbG9neS5jICAgICAgICAgIHwgIDYgKy0tCiAxNSBmaWxlcyBj aGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCA4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX2NoYXJkZXYuYwppbmRleCA2MjQ0OTU4Li5jMjI0MDFlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jaGFyZGV2LmMKQEAgLTI2NSw3ICsyNjUsNyBAQCBz dGF0aWMgaW50IGtmZF9pb2N0bF9jcmVhdGVfcXVldWUoc3RydWN0IGZpbGUgKmZpbGVwLCBzdHJ1 Y3Qga2ZkX3Byb2Nlc3MgKnAsCiAKIAlwcl9kZWJ1ZygiTG9va2luZyBmb3IgZ3B1IGlkIDB4JXhc biIsIGFyZ3MtPmdwdV9pZCk7CiAJZGV2ID0ga2ZkX2RldmljZV9ieV9pZChhcmdzLT5ncHVfaWQp OwotCWlmIChkZXYgPT0gTlVMTCkgeworCWlmICghZGV2KSB7CiAJCXByX2RlYnVnKCJDb3VsZCBu b3QgZmluZCBncHUgaWQgMHgleFxuIiwgYXJncy0+Z3B1X2lkKTsKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQpAQCAtNDAwLDcgKzQwMCw3IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX3NldF9tZW1vcnlf cG9saWN5KHN0cnVjdCBmaWxlICpmaWxlcCwKIAl9CiAKIAlkZXYgPSBrZmRfZGV2aWNlX2J5X2lk KGFyZ3MtPmdwdV9pZCk7Ci0JaWYgKGRldiA9PSBOVUxMKQorCWlmICghZGV2KQogCQlyZXR1cm4g LUVJTlZBTDsKIAogCW11dGV4X2xvY2soJnAtPm11dGV4KTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBz dGF0aWMgaW50IGtmZF9pb2N0bF9kYmdfcmVnaXN0ZXIoc3RydWN0IGZpbGUgKmZpbGVwLAogCWxv bmcgc3RhdHVzID0gMDsKIAogCWRldiA9IGtmZF9kZXZpY2VfYnlfaWQoYXJncy0+Z3B1X2lkKTsK LQlpZiAoZGV2ID09IE5VTEwpCisJaWYgKCFkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYg KGRldi0+ZGV2aWNlX2luZm8tPmFzaWNfZmFtaWx5ID09IENISVBfQ0FSUklaTykgewpAQCAtNDY1 LDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX2RiZ19yZWdpc3RlcihzdHJ1Y3QgZmls ZSAqZmlsZXAsCiAJCXJldHVybiBQVFJfRVJSKHBkZCk7CiAJfQogCi0JaWYgKGRldi0+ZGJnbWdy ID09IE5VTEwpIHsKKwlpZiAoIWRldi0+ZGJnbWdyKSB7CiAJCS8qIEluIGNhc2Ugb2YgYSBsZWdh bCBjYWxsLCB3ZSBoYXZlIG5vIGRiZ21nciB5ZXQgKi8KIAkJY3JlYXRlX29rID0ga2ZkX2RiZ21n cl9jcmVhdGUoJmRiZ21ncl9wdHIsIGRldik7CiAJCWlmIChjcmVhdGVfb2spIHsKQEAgLTQ5NCw3 ICs0OTQsNyBAQCBzdGF0aWMgaW50IGtmZF9pb2N0bF9kYmdfdW5yZWdpc3RlcihzdHJ1Y3QgZmls ZSAqZmlsZXAsCiAJbG9uZyBzdGF0dXM7CiAKIAlkZXYgPSBrZmRfZGV2aWNlX2J5X2lkKGFyZ3Mt PmdwdV9pZCk7Ci0JaWYgKGRldiA9PSBOVUxMKQorCWlmICghZGV2KQogCQlyZXR1cm4gLUVJTlZB TDsKIAogCWlmIChkZXYtPmRldmljZV9pbmZvLT5hc2ljX2ZhbWlseSA9PSBDSElQX0NBUlJJWk8p IHsKQEAgLTUwNSw3ICs1MDUsNyBAQCBzdGF0aWMgaW50IGtmZF9pb2N0bF9kYmdfdW5yZWdpc3Rl cihzdHJ1Y3QgZmlsZSAqZmlsZXAsCiAJbXV0ZXhfbG9jayhrZmRfZ2V0X2RiZ21ncl9tdXRleCgp KTsKIAogCXN0YXR1cyA9IGtmZF9kYmdtZ3JfdW5yZWdpc3RlcihkZXYtPmRiZ21nciwgcCk7Ci0J aWYgKHN0YXR1cyA9PSAwKSB7CisJaWYgKCFzdGF0dXMpIHsKIAkJa2ZkX2RiZ21ncl9kZXN0cm95 KGRldi0+ZGJnbWdyKTsKIAkJZGV2LT5kYmdtZ3IgPSBOVUxMOwogCX0KQEAgLTUzOSw3ICs1Mzks NyBAQCBzdGF0aWMgaW50IGtmZF9pb2N0bF9kYmdfYWRkcmVzc193YXRjaChzdHJ1Y3QgZmlsZSAq ZmlsZXAsCiAJbWVtc2V0KCh2b2lkICopICZhd19pbmZvLCAwLCBzaXplb2Yoc3RydWN0IGRiZ19h ZGRyZXNzX3dhdGNoX2luZm8pKTsKIAogCWRldiA9IGtmZF9kZXZpY2VfYnlfaWQoYXJncy0+Z3B1 X2lkKTsKLQlpZiAoZGV2ID09IE5VTEwpCisJaWYgKCFkZXYpCiAJCXJldHVybiAtRUlOVkFMOwog CiAJaWYgKGRldi0+ZGV2aWNlX2luZm8tPmFzaWNfZmFtaWx5ID09IENISVBfQ0FSUklaTykgewpA QCAtNjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX2RiZ193YXZlX2NvbnRyb2wo c3RydWN0IGZpbGUgKmZpbGVwLAogCQkJCXNpemVvZih3YWNfaW5mby50cmFwSWQpOwogCiAJZGV2 ID0ga2ZkX2RldmljZV9ieV9pZChhcmdzLT5ncHVfaWQpOwotCWlmIChkZXYgPT0gTlVMTCkKKwlp ZiAoIWRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoZGV2LT5kZXZpY2VfaW5mby0+YXNp Y19mYW1pbHkgPT0gQ0hJUF9DQVJSSVpPKSB7CkBAIC03ODIsOSArNzgyLDkgQEAgc3RhdGljIGlu dCBrZmRfaW9jdGxfZ2V0X3Byb2Nlc3NfYXBlcnR1cmVzKHN0cnVjdCBmaWxlICpmaWxwLAogCQkJ CSJzY3JhdGNoX2xpbWl0ICVsbFhcbiIsIHBkZC0+c2NyYXRjaF9saW1pdCk7CiAKIAkJCWFyZ3Mt Pm51bV9vZl9ub2RlcysrOwotCQl9IHdoaWxlICgocGRkID0ga2ZkX2dldF9uZXh0X3Byb2Nlc3Nf ZGV2aWNlX2RhdGEocCwgcGRkKSkgIT0KLQkJCQlOVUxMICYmCi0JCQkJKGFyZ3MtPm51bV9vZl9u b2RlcyA8IE5VTV9PRl9TVVBQT1JURURfR1BVUykpOworCisJCQlwZGQgPSBrZmRfZ2V0X25leHRf cHJvY2Vzc19kZXZpY2VfZGF0YShwLCBwZGQpOworCQl9IHdoaWxlIChwZGQgJiYgKGFyZ3MtPm51 bV9vZl9ub2RlcyA8IE5VTV9PRl9TVVBQT1JURURfR1BVUykpOwogCX0KIAogCW11dGV4X3VubG9j aygmcC0+bXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X2RiZ2Rldi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5jCmluZGV4 IGJmOGVlMTkuLjBlZjkxMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kYmdkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnZGV2 LmMKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIGludCBkYmdkZXZfZGlxX3N1Ym1pdF9pYihzdHJ1 Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAogCXN0YXR1cyA9IGtxLT5vcHMuYWNxdWlyZV9wYWNrZXRf YnVmZmVyKGtxLAogCQkJCXBxX3BhY2tldHNfc2l6ZV9pbl9ieXRlcyAvIHNpemVvZih1aW50MzJf dCksCiAJCQkJJmliX3BhY2tldF9idWZmKTsKLQlpZiAoc3RhdHVzICE9IDApIHsKKwlpZiAoc3Rh dHVzKSB7CiAJCXByX2VycigiYWNxdWlyZV9wYWNrZXRfYnVmZmVyIGZhaWxlZFxuIik7CiAJCXJl dHVybiBzdGF0dXM7CiAJfQpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyBpbnQgZGJnZGV2X2Rp cV9zdWJtaXRfaWIoc3RydWN0IGtmZF9kYmdkZXYgKmRiZ2RldiwKIAlzdGF0dXMgPSBrZmRfZ3R0 X3NhX2FsbG9jYXRlKGRiZ2Rldi0+ZGV2LCBzaXplb2YodWludDY0X3QpLAogCQkJCQkmbWVtX29i aik7CiAKLQlpZiAoc3RhdHVzICE9IDApIHsKKwlpZiAoc3RhdHVzKSB7CiAJCXByX2VycigiRmFp bGVkIHRvIGFsbG9jYXRlIEdBUlQgbWVtb3J5XG4iKTsKIAkJa3EtPm9wcy5yb2xsYmFja19wYWNr ZXQoa3EpOwogCQlyZXR1cm4gc3RhdHVzOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyBpbnQg ZGJnZGV2X3JlZ2lzdGVyX2RpcShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2KQogCiAJa3EgPSBw cW1fZ2V0X2tlcm5lbF9xdWV1ZShkYmdkZXYtPnBxbSwgcWlkKTsKIAotCWlmIChrcSA9PSBOVUxM KSB7CisJaWYgKCFrcSkgewogCQlwcl9lcnIoIkVycm9yIGdldHRpbmcgRElRXG4iKTsKIAkJcHFt X2Rlc3Ryb3lfcXVldWUoZGJnZGV2LT5wcW0sIHFpZCk7CiAJCXJldHVybiAtRUZBVUxUOwpAQCAt MjUyLDcgKzI1Miw3IEBAIHN0YXRpYyB2b2lkIGRiZ2Rldl9hZGRyZXNzX3dhdGNoX3NldF9yZWdp c3RlcnMoCiAJYWRkckxvLT51MzJBbGwgPSAwOwogCWNudGwtPnUzMkFsbCA9IDA7CiAKLQlpZiAo YWR3X2luZm8tPndhdGNoX21hc2sgIT0gTlVMTCkKKwlpZiAoYWR3X2luZm8tPndhdGNoX21hc2sp CiAJCWNudGwtPmJpdGZpZWxkcy5tYXNrID0KIAkJCSh1aW50MzJfdCkgKGFkd19pbmZvLT53YXRj aF9tYXNrW2luZGV4XSAmCiAJCQkJCUFERFJFU1NfV0FUQ0hfUkVHX0NOVExfREVGQVVMVF9NQVNL KTsKQEAgLTMwNyw4ICszMDcsNyBAQCBzdGF0aWMgaW50IGRiZ2Rldl9hZGRyZXNzX3dhdGNoX25v ZGlxKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAot CWlmICgoYWR3X2luZm8tPndhdGNoX21vZGUgPT0gTlVMTCkgfHwKLQkJKGFkd19pbmZvLT53YXRj aF9hZGRyZXNzID09IE5VTEwpKSB7CisJaWYgKCFhZHdfaW5mby0+d2F0Y2hfbW9kZSB8fCAhYWR3 X2luZm8tPndhdGNoX2FkZHJlc3MpIHsKIAkJcHJfZXJyKCJhZHdfaW5mbyBmaWVsZHMgYXJlIG5v dCB2YWxpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTM3NSwxNSArMzc0LDE0IEBA IHN0YXRpYyBpbnQgZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfZGlxKHN0cnVjdCBrZmRfZGJnZGV2ICpk YmdkZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmICgoTlVMTCA9PSBhZHdfaW5mby0+ d2F0Y2hfbW9kZSkgfHwKLQkJCShOVUxMID09IGFkd19pbmZvLT53YXRjaF9hZGRyZXNzKSkgewor CWlmICghYWR3X2luZm8tPndhdGNoX21vZGUgfHwgIWFkd19pbmZvLT53YXRjaF9hZGRyZXNzKSB7 CiAJCXByX2VycigiYWR3X2luZm8gZmllbGRzIGFyZSBub3QgdmFsaWRcbiIpOwogCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKIAlzdGF0dXMgPSBrZmRfZ3R0X3NhX2FsbG9jYXRlKGRiZ2Rldi0+ZGV2 LCBpYl9zaXplLCAmbWVtX29iaik7CiAKLQlpZiAoc3RhdHVzICE9IDApIHsKKwlpZiAoc3RhdHVz KSB7CiAJCXByX2VycigiRmFpbGVkIHRvIGFsbG9jYXRlIEdBUlQgbWVtb3J5XG4iKTsKIAkJcmV0 dXJuIHN0YXR1czsKIAl9CkBAIC00OTAsNyArNDg4LDcgQEAgc3RhdGljIGludCBkYmdkZXZfYWRk cmVzc193YXRjaF9kaXEoc3RydWN0IGtmZF9kYmdkZXYgKmRiZ2RldiwKIAkJCQkJcGFja2V0X2J1 ZmZfdWludCwKIAkJCQkJaWJfc2l6ZSk7CiAKLQkJaWYgKHN0YXR1cyAhPSAwKSB7CisJCWlmIChz dGF0dXMpIHsKIAkJCXByX2VycigiRmFpbGVkIHRvIHN1Ym1pdCBJQiB0byBESVFcbiIpOwogCQkJ YnJlYWs7CiAJCX0KQEAgLTcxMSw3ICs3MDksNyBAQCBzdGF0aWMgaW50IGRiZ2Rldl93YXZlX2Nv bnRyb2xfZGlxKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYsCiAJCQlwYWNrZXRfYnVmZl91aW50 LAogCQkJaWJfc2l6ZSk7CiAKLQlpZiAoc3RhdHVzICE9IDApCisJaWYgKHN0YXR1cykKIAkJcHJf ZXJyKCJGYWlsZWQgdG8gc3VibWl0IElCIHRvIERJUVxuIik7CiAKIAlrZmRfZ3R0X3NhX2ZyZWUo ZGJnZGV2LT5kZXYsIG1lbV9vYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX2RiZ21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21n ci5jCmluZGV4IDcyMjU3ODkuLjIxMGJkYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9kYmdtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfZGJnbWdyLmMKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIHZvaWQga2ZkX2RiZ21ncl91bmlu aXRpYWxpemUoc3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IpCiAKIHZvaWQga2ZkX2RiZ21ncl9kZXN0 cm95KHN0cnVjdCBrZmRfZGJnbWdyICpwbWdyKQogewotCWlmIChwbWdyICE9IE5VTEwpIHsKKwlp ZiAocG1ncikgewogCQlrZmRfZGJnbWdyX3VuaW5pdGlhbGl6ZShwbWdyKTsKIAkJa2ZyZWUocG1n cik7CiAJfQpAQCAtNjYsNyArNjYsNyBAQCBib29sIGtmZF9kYmdtZ3JfY3JlYXRlKHN0cnVjdCBr ZmRfZGJnbWdyICoqcHBtZ3IsIHN0cnVjdCBrZmRfZGV2ICpwZGV2KQogCWVudW0gREJHREVWX1RZ UEUgdHlwZSA9IERCR0RFVl9UWVBFX0RJUTsKIAlzdHJ1Y3Qga2ZkX2RiZ21nciAqbmV3X2J1ZmY7 CiAKLQlCVUdfT04ocGRldiA9PSBOVUxMKTsKKwlCVUdfT04oIXBkZXYpOwogCUJVR19PTighcGRl di0+aW5pdF9jb21wbGV0ZSk7CiAKIAluZXdfYnVmZiA9IGtmZF9hbGxvY19zdHJ1Y3QobmV3X2J1 ZmYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCmluZGV4IDg3ZGY4YmYu LmQ5NjIzNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZp Y2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMKQEAgLTk4 LDcgKzk4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8gKmxvb2t1cF9k ZXZpY2VfaW5mbyh1bnNpZ25lZCBzaG9ydCBkaWQpCiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShzdXBwb3J0ZWRfZGV2aWNlcyk7IGkrKykgewogCQlpZiAoc3VwcG9ydGVkX2RldmljZXNb aV0uZGlkID09IGRpZCkgewotCQkJQlVHX09OKHN1cHBvcnRlZF9kZXZpY2VzW2ldLmRldmljZV9p bmZvID09IE5VTEwpOworCQkJQlVHX09OKCFzdXBwb3J0ZWRfZGV2aWNlc1tpXS5kZXZpY2VfaW5m byk7CiAJCQlyZXR1cm4gc3VwcG9ydGVkX2RldmljZXNbaV0uZGV2aWNlX2luZm87CiAJCX0KIAl9 CkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGljIGludCBpb21tdV9pbnZhbGlkX3Bwcl9jYihzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgaW50IHBhc2lkLAogCQkJZmxhZ3MpOwogCiAJZGV2ID0ga2ZkX2Rl dmljZV9ieV9wY2lfZGV2KHBkZXYpOwotCUJVR19PTihkZXYgPT0gTlVMTCk7CisJQlVHX09OKCFk ZXYpOwogCiAJa2ZkX3NpZ25hbF9pb21tdV9ldmVudChkZXYsIHBhc2lkLCBhZGRyZXNzLAogCQkJ ZmxhZ3MgJiBQUFJfRkFVTFRfV1JJVEUsIGZsYWdzICYgUFBSX0ZBVUxUX0VYRUMpOwpAQCAtMjYy LDcgKzI2Miw3IEBAIGJvb2wga2dkMmtmZF9kZXZpY2VfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqa2Zk LAogCiAJa2ZkX2Rvb3JiZWxsX2luaXQoa2ZkKTsKIAotCWlmIChrZmRfdG9wb2xvZ3lfYWRkX2Rl dmljZShrZmQpICE9IDApIHsKKwlpZiAoa2ZkX3RvcG9sb2d5X2FkZF9kZXZpY2Uoa2ZkKSkgewog CQlkZXZfZXJyKGtmZF9kZXZpY2UsICJFcnJvciBhZGRpbmcgZGV2aWNlIHRvIHRvcG9sb2d5XG4i KTsKIAkJZ290byBrZmRfdG9wb2xvZ3lfYWRkX2RldmljZV9lcnJvcjsKIAl9CkBAIC0yODgsNyAr Mjg4LDcgQEAgYm9vbCBrZ2Qya2ZkX2RldmljZV9pbml0KHN0cnVjdCBrZmRfZGV2ICprZmQsCiAJ CWdvdG8gZGV2aWNlX3F1ZXVlX21hbmFnZXJfZXJyb3I7CiAJfQogCi0JaWYgKGtmZC0+ZHFtLT5v cHMuc3RhcnQoa2ZkLT5kcW0pICE9IDApIHsKKwlpZiAoa2ZkLT5kcW0tPm9wcy5zdGFydChrZmQt PmRxbSkpIHsKIAkJZGV2X2VycihrZmRfZGV2aWNlLAogCQkJIkVycm9yIHN0YXJ0aW5nIHF1ZXVl IG1hbmFnZXIgZm9yIGRldmljZSAleDoleFxuIiwKIAkJCWtmZC0+cGRldi0+dmVuZG9yLCBrZmQt PnBkZXYtPmRldmljZSk7CkBAIC0zNDEsNyArMzQxLDcgQEAgdm9pZCBrZ2Qya2ZkX2RldmljZV9l eGl0KHN0cnVjdCBrZmRfZGV2ICprZmQpCiAKIHZvaWQga2dkMmtmZF9zdXNwZW5kKHN0cnVjdCBr ZmRfZGV2ICprZmQpCiB7Ci0JQlVHX09OKGtmZCA9PSBOVUxMKTsKKwlCVUdfT04oIWtmZCk7CiAK IAlpZiAoa2ZkLT5pbml0X2NvbXBsZXRlKSB7CiAJCWtmZC0+ZHFtLT5vcHMuc3RvcChrZmQtPmRx bSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1 ZXVlX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVl dWVfbWFuYWdlci5jCmluZGV4IDhiMTQ3ZTQuLmRmOTM1MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCkBAIC0xNjcs NyArMTY3LDcgQEAgc3RhdGljIGludCBjcmVhdGVfcXVldWVfbm9jcHNjaChzdHJ1Y3QgZGV2aWNl X3F1ZXVlX21hbmFnZXIgKmRxbSwKIAogCWlmIChsaXN0X2VtcHR5KCZxcGQtPnF1ZXVlc19saXN0 KSkgewogCQlyZXR2YWwgPSBhbGxvY2F0ZV92bWlkKGRxbSwgcXBkLCBxKTsKLQkJaWYgKHJldHZh bCAhPSAwKSB7CisJCWlmIChyZXR2YWwpIHsKIAkJCW11dGV4X3VubG9jaygmZHFtLT5sb2NrKTsK IAkJCXJldHVybiByZXR2YWw7CiAJCX0KQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgaW50IGNy ZWF0ZV9xdWV1ZV9ub2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCWlm IChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZEX1FVRVVFX1RZUEVfU0RNQSkKIAkJcmV0dmFsID0g Y3JlYXRlX3NkbWFfcXVldWVfbm9jcHNjaChkcW0sIHEsIHFwZCk7CiAKLQlpZiAocmV0dmFsICE9 IDApIHsKKwlpZiAocmV0dmFsKSB7CiAJCWlmIChsaXN0X2VtcHR5KCZxcGQtPnF1ZXVlc19saXN0 KSkgewogCQkJZGVhbGxvY2F0ZV92bWlkKGRxbSwgcXBkLCBxKTsKIAkJCSphbGxvY2F0ZWRfdm1p ZCA9IDA7CkBAIC0yNjIsMTYgKzI2MiwxNiBAQCBzdGF0aWMgaW50IGNyZWF0ZV9jb21wdXRlX3F1 ZXVlX25vY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJQlVHX09OKCFk cW0gfHwgIXEgfHwgIXFwZCk7CiAKIAltcWQgPSBkcW0tPm9wcy5nZXRfbXFkX21hbmFnZXIoZHFt LCBLRkRfTVFEX1RZUEVfQ09NUFVURSk7Ci0JaWYgKG1xZCA9PSBOVUxMKQorCWlmICghbXFkKQog CQlyZXR1cm4gLUVOT01FTTsKIAogCXJldHZhbCA9IGFsbG9jYXRlX2hxZChkcW0sIHEpOwotCWlm IChyZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCiAJcmV0dmFs ID0gbXFkLT5pbml0X21xZChtcWQsICZxLT5tcWQsICZxLT5tcWRfbWVtX29iaiwKIAkJCQkmcS0+ Z2FydF9tcWRfYWRkciwgJnEtPnByb3BlcnRpZXMpOwotCWlmIChyZXR2YWwgIT0gMCkgeworCWlm IChyZXR2YWwpIHsKIAkJZGVhbGxvY2F0ZV9ocWQoZHFtLCBxKTsKIAkJcmV0dXJuIHJldHZhbDsK IAl9CkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIGludCBjcmVhdGVfY29tcHV0ZV9xdWV1ZV9u b2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCiAJcmV0dmFsID0gbXFk LT5sb2FkX21xZChtcWQsIHEtPm1xZCwgcS0+cGlwZSwKIAkJCXEtPnF1ZXVlLCAodWludDMyX3Qg X191c2VyICopIHEtPnByb3BlcnRpZXMud3JpdGVfcHRyKTsKLQlpZiAocmV0dmFsICE9IDApIHsK KwlpZiAocmV0dmFsKSB7CiAJCWRlYWxsb2NhdGVfaHFkKGRxbSwgcSk7CiAJCW1xZC0+dW5pbml0 X21xZChtcWQsIHEtPm1xZCwgcS0+bXFkX21lbV9vYmopOwogCQlyZXR1cm4gcmV0dmFsOwpAQCAt MzMwLDcgKzMzMCw3IEBAIHN0YXRpYyBpbnQgZGVzdHJveV9xdWV1ZV9ub2Nwc2NoKHN0cnVjdCBk ZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCVFVRVVFX1BSRUVNUFRfREVGQVVMVF9USU1F T1VUX01TLAogCQkJCXEtPnBpcGUsIHEtPnF1ZXVlKTsKIAotCWlmIChyZXR2YWwgIT0gMCkKKwlp ZiAocmV0dmFsKQogCQlnb3RvIG91dDsKIAogCW1xZC0+dW5pbml0X21xZChtcWQsIHEtPm1xZCwg cS0+bXFkX21lbV9vYmopOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3F1 ZXVlKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCBzdHJ1Y3QgcXVldWUgKnEpCiAJ bXV0ZXhfbG9jaygmZHFtLT5sb2NrKTsKIAltcWQgPSBkcW0tPm9wcy5nZXRfbXFkX21hbmFnZXIo ZHFtLAogCQkJZ2V0X21xZF90eXBlX2Zyb21fcXVldWVfdHlwZShxLT5wcm9wZXJ0aWVzLnR5cGUp KTsKLQlpZiAobXFkID09IE5VTEwpIHsKKwlpZiAoIW1xZCkgewogCQltdXRleF91bmxvY2soJmRx bS0+bG9jayk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KQEAgLTM4MSw3ICszODEsNyBAQCBzdGF0 aWMgaW50IHVwZGF0ZV9xdWV1ZShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwgc3Ry dWN0IHF1ZXVlICpxKQogCXJldHZhbCA9IG1xZC0+dXBkYXRlX21xZChtcWQsIHEtPm1xZCwgJnEt PnByb3BlcnRpZXMpOwogCWlmICgocS0+cHJvcGVydGllcy5pc19hY3RpdmUpICYmICghcHJldl9h Y3RpdmUpKQogCQlkcW0tPnF1ZXVlX2NvdW50Kys7Ci0JZWxzZSBpZiAoKCFxLT5wcm9wZXJ0aWVz LmlzX2FjdGl2ZSkgJiYgKHByZXZfYWN0aXZlKSkKKwllbHNlIGlmICghcS0+cHJvcGVydGllcy5p c19hY3RpdmUgJiYgcHJldl9hY3RpdmUpCiAJCWRxbS0+cXVldWVfY291bnQtLTsKIAogCWlmIChz Y2hlZF9wb2xpY3kgIT0gS0ZEX1NDSEVEX1BPTElDWV9OT19IV1MpCkBAIC00MDMsNyArNDAzLDcg QEAgc3RhdGljIHN0cnVjdCBtcWRfbWFuYWdlciAqZ2V0X21xZF9tYW5hZ2VyX25vY3BzY2goCiAJ bXFkID0gZHFtLT5tcWRzW3R5cGVdOwogCWlmICghbXFkKSB7CiAJCW1xZCA9IG1xZF9tYW5hZ2Vy X2luaXQodHlwZSwgZHFtLT5kZXYpOwotCQlpZiAobXFkID09IE5VTEwpCisJCWlmICghbXFkKQog CQkJcHJfZXJyKCJtcWQgbWFuYWdlciBpcyBOVUxMIik7CiAJCWRxbS0+bXFkc1t0eXBlXSA9IG1x ZDsKIAl9CkBAIC00ODUsNyArNDg1LDcgQEAgc3RhdGljIHZvaWQgaW5pdF9pbnRlcnJ1cHRzKHN0 cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtKQogewogCXVuc2lnbmVkIGludCBpOwogCi0J QlVHX09OKGRxbSA9PSBOVUxMKTsKKwlCVUdfT04oIWRxbSk7CiAKIAlmb3IgKGkgPSAwIDsgaSA8 IGdldF9waXBlc19wZXJfbWVjKGRxbSkgOyBpKyspCiAJCWlmIChpc19waXBlX2VuYWJsZWQoZHFt LCAwLCBpKSkKQEAgLTU4OSw3ICs1ODksNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zZG1hX3F1ZXVl X25vY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJCXJldHVybiAtRU5P TUVNOwogCiAJcmV0dmFsID0gYWxsb2NhdGVfc2RtYV9xdWV1ZShkcW0sICZxLT5zZG1hX2lkKTsK LQlpZiAocmV0dmFsICE9IDApCisJaWYgKHJldHZhbCkKIAkJcmV0dXJuIHJldHZhbDsKIAogCXEt PnByb3BlcnRpZXMuc2RtYV9xdWV1ZV9pZCA9IHEtPnNkbWFfaWQgJSBDSUtfU0RNQV9RVUVVRVNf UEVSX0VOR0lORTsKQEAgLTYwMiwxNCArNjAyLDE0IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3NkbWFf cXVldWVfbm9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAlkcW0tPm9w c19hc2ljX3NwZWNpZmljLmluaXRfc2RtYV92bShkcW0sIHEsIHFwZCk7CiAJcmV0dmFsID0gbXFk LT5pbml0X21xZChtcWQsICZxLT5tcWQsICZxLT5tcWRfbWVtX29iaiwKIAkJCQkmcS0+Z2FydF9t cWRfYWRkciwgJnEtPnByb3BlcnRpZXMpOwotCWlmIChyZXR2YWwgIT0gMCkgeworCWlmIChyZXR2 YWwpIHsKIAkJZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKGRxbSwgcS0+c2RtYV9pZCk7CiAJCXJldHVy biByZXR2YWw7CiAJfQogCiAJcmV0dmFsID0gbXFkLT5sb2FkX21xZChtcWQsIHEtPm1xZCwgMCwK IAkJCQkwLCBOVUxMKTsKLQlpZiAocmV0dmFsICE9IDApIHsKKwlpZiAocmV0dmFsKSB7CiAJCWRl YWxsb2NhdGVfc2RtYV9xdWV1ZShkcW0sIHEtPnNkbWFfaWQpOwogCQltcWQtPnVuaW5pdF9tcWQo bXFkLCBxLT5tcWQsIHEtPm1xZF9tZW1fb2JqKTsKIAkJcmV0dXJuIHJldHZhbDsKQEAgLTY4MCw3 ICs2ODAsNyBAQCBzdGF0aWMgaW50IGluaXRpYWxpemVfY3BzY2goc3RydWN0IGRldmljZV9xdWV1 ZV9tYW5hZ2VyICpkcW0pCiAJZHFtLT5zZG1hX3F1ZXVlX2NvdW50ID0gMDsKIAlkcW0tPmFjdGl2 ZV9ydW5saXN0ID0gZmFsc2U7CiAJcmV0dmFsID0gZHFtLT5vcHNfYXNpY19zcGVjaWZpYy5pbml0 aWFsaXplKGRxbSk7Ci0JaWYgKHJldHZhbCAhPSAwKQorCWlmIChyZXR2YWwpCiAJCWdvdG8gZmFp bF9pbml0X3BpcGVsaW5lczsKIAogCXJldHVybiAwOwpAQCAtNzAwLDExICs3MDAsMTEgQEAgc3Rh dGljIGludCBzdGFydF9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSkKIAly ZXR2YWwgPSAwOwogCiAJcmV0dmFsID0gcG1faW5pdCgmZHFtLT5wYWNrZXRzLCBkcW0pOwotCWlm IChyZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlnb3RvIGZhaWxfcGFja2V0X21hbmFnZXJf aW5pdDsKIAogCXJldHZhbCA9IHNldF9zY2hlZF9yZXNvdXJjZXMoZHFtKTsKLQlpZiAocmV0dmFs ICE9IDApCisJaWYgKHJldHZhbCkKIAkJZ290byBmYWlsX3NldF9zY2hlZF9yZXNvdXJjZXM7CiAK IAlwcl9kZWJ1ZygiQWxsb2NhdGluZyBmZW5jZSBtZW1vcnlcbiIpOwpAQCAtNzEzLDcgKzcxMyw3 IEBAIHN0YXRpYyBpbnQgc3RhcnRfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpk cW0pCiAJcmV0dmFsID0ga2ZkX2d0dF9zYV9hbGxvY2F0ZShkcW0tPmRldiwgc2l6ZW9mKCpkcW0t PmZlbmNlX2FkZHIpLAogCQkJCQkmZHFtLT5mZW5jZV9tZW0pOwogCi0JaWYgKHJldHZhbCAhPSAw KQorCWlmIChyZXR2YWwpCiAJCWdvdG8gZmFpbF9hbGxvY2F0ZV92aWRtZW07CiAKIAlkcW0tPmZl bmNlX2FkZHIgPSBkcW0tPmZlbmNlX21lbS0+Y3B1X3B0cjsKQEAgLTg0NSw3ICs4NDUsNyBAQCBz dGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIg KmRxbSwgc3RydWN0IHF1ZXVlICpxLAogCW1xZCA9IGRxbS0+b3BzLmdldF9tcWRfbWFuYWdlcihk cW0sCiAJCQlnZXRfbXFkX3R5cGVfZnJvbV9xdWV1ZV90eXBlKHEtPnByb3BlcnRpZXMudHlwZSkp OwogCi0JaWYgKG1xZCA9PSBOVUxMKSB7CisJaWYgKCFtcWQpIHsKIAkJbXV0ZXhfdW5sb2NrKCZk cW0tPmxvY2spOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CkBAIC04NTMsNyArODUzLDcgQEAgc3Rh dGljIGludCBjcmVhdGVfcXVldWVfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpk cW0sIHN0cnVjdCBxdWV1ZSAqcSwKIAlkcW0tPm9wc19hc2ljX3NwZWNpZmljLmluaXRfc2RtYV92 bShkcW0sIHEsIHFwZCk7CiAJcmV0dmFsID0gbXFkLT5pbml0X21xZChtcWQsICZxLT5tcWQsICZx LT5tcWRfbWVtX29iaiwKIAkJCQkmcS0+Z2FydF9tcWRfYWRkciwgJnEtPnByb3BlcnRpZXMpOwot CWlmIChyZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlnb3RvIG91dDsKIAogCWxpc3RfYWRk KCZxLT5saXN0LCAmcXBkLT5xdWV1ZXNfbGlzdCk7CkBAIC05MzQsNyArOTM0LDcgQEAgc3RhdGlj IGludCBkZXN0cm95X3F1ZXVlc19jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRx bSwKIAogCXJldHZhbCA9IHBtX3NlbmRfdW5tYXBfcXVldWUoJmRxbS0+cGFja2V0cywgS0ZEX1FV RVVFX1RZUEVfQ09NUFVURSwKIAkJCXByZWVtcHRfdHlwZSwgMCwgZmFsc2UsIDApOwotCWlmIChy ZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlnb3RvIG91dDsKIAogCSpkcW0tPmZlbmNlX2Fk ZHIgPSBLRkRfRkVOQ0VfSU5JVDsKQEAgLTk0Myw3ICs5NDMsNyBAQCBzdGF0aWMgaW50IGRlc3Ry b3lfcXVldWVzX2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCS8qIHNo b3VsZCBiZSB0aW1lZCBvdXQgKi8KIAlyZXR2YWwgPSBhbWRrZmRfZmVuY2Vfd2FpdF90aW1lb3V0 KGRxbS0+ZmVuY2VfYWRkciwgS0ZEX0ZFTkNFX0NPTVBMRVRFRCwKIAkJCQlRVUVVRV9QUkVFTVBU X0RFRkFVTFRfVElNRU9VVF9NUyk7Ci0JaWYgKHJldHZhbCAhPSAwKSB7CisJaWYgKHJldHZhbCkg ewogCQlwZGQgPSBrZmRfZ2V0X3Byb2Nlc3NfZGV2aWNlX2RhdGEoZHFtLT5kZXYsCiAJCQkJa2Zk X2dldF9wcm9jZXNzKGN1cnJlbnQpKTsKIAkJcGRkLT5yZXNldF93YXZlZnJvbnRzID0gdHJ1ZTsK QEAgLTk2OCw3ICs5NjgsNyBAQCBzdGF0aWMgaW50IGV4ZWN1dGVfcXVldWVzX2Nwc2NoKHN0cnVj dCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCBib29sIGxvY2spCiAJCW11dGV4X2xvY2soJmRx bS0+bG9jayk7CiAKIAlyZXR2YWwgPSBkZXN0cm95X3F1ZXVlc19jcHNjaChkcW0sIGZhbHNlLCBm YWxzZSk7Ci0JaWYgKHJldHZhbCAhPSAwKSB7CisJaWYgKHJldHZhbCkgewogCQlwcl9lcnIoIlRo ZSBjcCBtaWdodCBiZSBpbiBhbiB1bnJlY292ZXJhYmxlIHN0YXRlIGR1ZSB0byBhbiB1bnN1Y2Nl c3NmdWwgcXVldWVzIHByZWVtcHRpb24iKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtOTg0LDcgKzk4 NCw3IEBAIHN0YXRpYyBpbnQgZXhlY3V0ZV9xdWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9xdWV1 ZV9tYW5hZ2VyICpkcW0sIGJvb2wgbG9jaykKIAl9CiAKIAlyZXR2YWwgPSBwbV9zZW5kX3J1bmxp c3QoJmRxbS0+cGFja2V0cywgJmRxbS0+cXVldWVzKTsKLQlpZiAocmV0dmFsICE9IDApIHsKKwlp ZiAocmV0dmFsKSB7CiAJCXByX2VycigiZmFpbGVkIHRvIGV4ZWN1dGUgcnVubGlzdCIpOwogCQln b3RvIG91dDsKIAl9CkBAIC0xMTkzLDcgKzExOTMsNyBAQCBzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21h bmFnZXIgKmRldmljZV9xdWV1ZV9tYW5hZ2VyX2luaXQoc3RydWN0IGtmZF9kZXYgKmRldikKIAkJ YnJlYWs7CiAJfQogCi0JaWYgKGRxbS0+b3BzLmluaXRpYWxpemUoZHFtKSAhPSAwKSB7CisJaWYg KGRxbS0+b3BzLmluaXRpYWxpemUoZHFtKSkgewogCQlrZnJlZShkcW0pOwogCQlyZXR1cm4gTlVM TDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZG9vcmJl bGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kb29yYmVsbC5jCmluZGV4IGNh MjE1MzguLjQ4MDE4YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kb29yYmVsbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kb29yYmVs bC5jCkBAIC0xMzEsNyArMTMxLDcgQEAgaW50IGtmZF9kb29yYmVsbF9tbWFwKHN0cnVjdCBrZmRf cHJvY2VzcyAqcHJvY2Vzcywgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAKIAkvKiBGaW5k IGtmZCBkZXZpY2UgYWNjb3JkaW5nIHRvIGdwdSBpZCAqLwogCWRldiA9IGtmZF9kZXZpY2VfYnlf aWQodm1hLT52bV9wZ29mZik7Ci0JaWYgKGRldiA9PSBOVUxMKQorCWlmICghZGV2KQogCQlyZXR1 cm4gLUVJTlZBTDsKIAogCS8qIENhbGN1bGF0ZSBwaHlzaWNhbCBhZGRyZXNzIG9mIGRvb3JiZWxs ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZXZlbnRzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZXZlbnRzLmMKaW5kZXggYWJkYWY5NS4u NTk3OTE1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2V2ZW50 cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVudHMuYwpAQCAtMjQ3 LDcgKzI0Nyw3IEBAIHN0YXRpYyB1MzIgbWFrZV9ub25zaWduYWxfZXZlbnRfaWQoc3RydWN0IGtm ZF9wcm9jZXNzICpwKQogCiAJZm9yIChpZCA9IHAtPm5leHRfbm9uc2lnbmFsX2V2ZW50X2lkOwog CQlpZCA8IEtGRF9MQVNUX05PTlNJR05BTF9FVkVOVF9JRCAmJgotCQlsb29rdXBfZXZlbnRfYnlf aWQocCwgaWQpICE9IE5VTEw7CisJCWxvb2t1cF9ldmVudF9ieV9pZChwLCBpZCk7CiAJCWlkKysp CiAJCTsKIApAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyB1MzIgbWFrZV9ub25zaWduYWxfZXZl bnRfaWQoc3RydWN0IGtmZF9wcm9jZXNzICpwKQogCiAJZm9yIChpZCA9IEtGRF9GSVJTVF9OT05T SUdOQUxfRVZFTlRfSUQ7CiAJCWlkIDwgS0ZEX0xBU1RfTk9OU0lHTkFMX0VWRU5UX0lEICYmCi0J CWxvb2t1cF9ldmVudF9ieV9pZChwLCBpZCkgIT0gTlVMTDsKKwkJbG9va3VwX2V2ZW50X2J5X2lk KHAsIGlkKTsKIAkJaWQrKykKIAkJOwogCkBAIC0zNDIsNyArMzQyLDcgQEAgdm9pZCBrZmRfZXZl bnRfaW5pdF9wcm9jZXNzKHN0cnVjdCBrZmRfcHJvY2VzcyAqcCkKIAogc3RhdGljIHZvaWQgZGVz dHJveV9ldmVudChzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsIHN0cnVjdCBrZmRfZXZlbnQgKmV2KQog ewotCWlmIChldi0+c2lnbmFsX3BhZ2UgIT0gTlVMTCkgeworCWlmIChldi0+c2lnbmFsX3BhZ2Up IHsKIAkJcmVsZWFzZV9ldmVudF9ub3RpZmljYXRpb25fc2xvdChldi0+c2lnbmFsX3BhZ2UsCiAJ CQkJCQlldi0+c2lnbmFsX3Nsb3RfaW5kZXgpOwogCQlwLT5zaWduYWxfZXZlbnRfY291bnQtLTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9mbGF0X21lbW9yeS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ZsYXRfbWVtb3J5LmMKaW5kZXggMmI2 NTUxMC4uYzU5Mzg0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X2ZsYXRfbWVtb3J5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ZsYXRf bWVtb3J5LmMKQEAgLTMwNCw3ICszMDQsNyBAQCBpbnQga2ZkX2luaXRfYXBlcnR1cmVzKHN0cnVj dCBrZmRfcHJvY2VzcyAqcHJvY2VzcykKIAkJaWQgPCBOVU1fT0ZfU1VQUE9SVEVEX0dQVVMpIHsK IAogCQlwZGQgPSBrZmRfY3JlYXRlX3Byb2Nlc3NfZGV2aWNlX2RhdGEoZGV2LCBwcm9jZXNzKTsK LQkJaWYgKHBkZCA9PSBOVUxMKSB7CisJCWlmICghcGRkKSB7CiAJCQlwcl9lcnIoIkZhaWxlZCB0 byBjcmVhdGUgcHJvY2VzcyBkZXZpY2UgZGF0YVxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYwppbmRleCBmODlk MzY2Li44ODQ0Nzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf a2VybmVsX3F1ZXVlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5l bF9xdWV1ZS5jCkBAIC02NywxMiArNjcsMTIgQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZShzdHJ1 Y3Qga2VybmVsX3F1ZXVlICprcSwgc3RydWN0IGtmZF9kZXYgKmRldiwKIAkJYnJlYWs7CiAJfQog Ci0JaWYgKGtxLT5tcWQgPT0gTlVMTCkKKwlpZiAoIWtxLT5tcWQpCiAJCXJldHVybiBmYWxzZTsK IAogCXByb3AuZG9vcmJlbGxfcHRyID0ga2ZkX2dldF9rZXJuZWxfZG9vcmJlbGwoZGV2LCAmcHJv cC5kb29yYmVsbF9vZmYpOwogCi0JaWYgKHByb3AuZG9vcmJlbGxfcHRyID09IE5VTEwpIHsKKwlp ZiAoIXByb3AuZG9vcmJlbGxfcHRyKSB7CiAJCXByX2VycigiRmFpbGVkIHRvIGluaXRpYWxpemUg ZG9vcmJlbGwiKTsKIAkJZ290byBlcnJfZ2V0X2tlcm5lbF9kb29yYmVsbDsKIAl9CkBAIC04Nyw3 ICs4Nyw3IEBAIHN0YXRpYyBib29sIGluaXRpYWxpemUoc3RydWN0IGtlcm5lbF9xdWV1ZSAqa3Es IHN0cnVjdCBrZmRfZGV2ICpkZXYsCiAJa3EtPnBxX2dwdV9hZGRyID0ga3EtPnBxLT5ncHVfYWRk cjsKIAogCXJldHZhbCA9IGtxLT5vcHNfYXNpY19zcGVjaWZpYy5pbml0aWFsaXplKGtxLCBkZXYs IHR5cGUsIHF1ZXVlX3NpemUpOwotCWlmIChyZXR2YWwgPT0gZmFsc2UpCisJaWYgKCFyZXR2YWwp CiAJCWdvdG8gZXJyX2VvcF9hbGxvY2F0ZV92aWRtZW07CiAKIAlyZXR2YWwgPSBrZmRfZ3R0X3Nh X2FsbG9jYXRlKGRldiwgc2l6ZW9mKCprcS0+cnB0cl9rZXJuZWwpLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX2Npay5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX2Npay5jCmluZGV4IDI3ZmQ5MzAuLjk5 MDgyMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFu YWdlcl9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFn ZXJfY2lrLmMKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGludCBpbml0X21xZChzdHJ1Y3QgbXFk X21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLAogCQltLT5jcF9ocWRfaXFfcnB0ciA9IEFRTF9FTkFC TEU7CiAKIAkqbXFkID0gbTsKLQlpZiAoZ2FydF9hZGRyICE9IE5VTEwpCisJaWYgKGdhcnRfYWRk cikKIAkJKmdhcnRfYWRkciA9IGFkZHI7CiAJcmV0dmFsID0gbW0tPnVwZGF0ZV9tcWQobW0sIG0s IHEpOwogCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIGludCBpbml0X21xZF9zZG1hKHN0cnVj dCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKiptcWQsCiAJbWVtc2V0KG0sIDAsIHNpemVvZihzdHJ1 Y3QgY2lrX3NkbWFfcmxjX3JlZ2lzdGVycykpOwogCiAJKm1xZCA9IG07Ci0JaWYgKGdhcnRfYWRk ciAhPSBOVUxMKQorCWlmIChnYXJ0X2FkZHIpCiAJCSpnYXJ0X2FkZHIgPSAoKm1xZF9tZW1fb2Jq KS0+Z3B1X2FkZHI7CiAKIAlyZXR2YWwgPSBtbS0+dXBkYXRlX21xZChtbSwgbSwgcSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdmkuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jCmluZGV4IDVk YzMwZjUuLjViYTNiNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9tcWRfbWFuYWdlcl92aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9t cWRfbWFuYWdlcl92aS5jCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9tcWQoc3Ry dWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAqKm1xZCwKIAkJbS0+Y3BfaHFkX2lxX3JwdHIgPSAx OwogCiAJKm1xZCA9IG07Ci0JaWYgKGdhcnRfYWRkciAhPSBOVUxMKQorCWlmIChnYXJ0X2FkZHIp CiAJCSpnYXJ0X2FkZHIgPSBhZGRyOwogCXJldHZhbCA9IG1tLT51cGRhdGVfbXFkKG1tLCBtLCBx KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3BhY2tldF9t YW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIu YwppbmRleCAzMWQ3ZDQ2Li5mM2I4Y2M4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYwpAQCAtOTgsMTQgKzk4LDE0IEBAIHN0YXRpYyBpbnQg cG1fYWxsb2NhdGVfcnVubGlzdF9pYihzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBtLAogCiAJQlVH X09OKCFwbSk7CiAJQlVHX09OKHBtLT5hbGxvY2F0ZWQpOwotCUJVR19PTihpc19vdmVyX3N1YnNj cmlwdGlvbiA9PSBOVUxMKTsKKwlCVUdfT04oIWlzX292ZXJfc3Vic2NyaXB0aW9uKTsKIAogCXBt X2NhbGNfcmxpYl9zaXplKHBtLCBybF9idWZmZXJfc2l6ZSwgaXNfb3Zlcl9zdWJzY3JpcHRpb24p OwogCiAJcmV0dmFsID0ga2ZkX2d0dF9zYV9hbGxvY2F0ZShwbS0+ZHFtLT5kZXYsICpybF9idWZm ZXJfc2l6ZSwKIAkJCQkJJnBtLT5pYl9idWZmZXJfb2JqKTsKIAotCWlmIChyZXR2YWwgIT0gMCkg eworCWlmIChyZXR2YWwpIHsKIAkJcHJfZXJyKCJGYWlsZWQgdG8gYWxsb2NhdGUgcnVubGlzdCBJ QlxuIik7CiAJCXJldHVybiByZXR2YWw7CiAJfQpAQCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyBp bnQgcG1fY3JlYXRlX3J1bmxpc3RfaWIoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKIAogCXJl dHZhbCA9IHBtX2FsbG9jYXRlX3J1bmxpc3RfaWIocG0sICZybF9idWZmZXIsIHJsX2dwdV9hZGRy LAogCQkJCSZhbGxvY19zaXplX2J5dGVzLCAmaXNfb3Zlcl9zdWJzY3JpcHRpb24pOwotCWlmIChy ZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCiAJKnJsX3NpemVf Ynl0ZXMgPSBhbGxvY19zaXplX2J5dGVzOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBpbnQg cG1fY3JlYXRlX3J1bmxpc3RfaWIoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKIAkJfQogCiAJ CXJldHZhbCA9IHBtX2NyZWF0ZV9tYXBfcHJvY2VzcyhwbSwgJnJsX2J1ZmZlcltybF93cHRyXSwg cXBkKTsKLQkJaWYgKHJldHZhbCAhPSAwKQorCQlpZiAocmV0dmFsKQogCQkJcmV0dXJuIHJldHZh bDsKIAogCQlwcm9jY2Vzc2VzX21hcHBlZCsrOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHN0YXRpYyBp bnQgcG1fY3JlYXRlX3J1bmxpc3RfaWIoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKIAkJCQkJ CSZybF9idWZmZXJbcmxfd3B0cl0sCiAJCQkJCQlrcS0+cXVldWUsCiAJCQkJCQlxcGQtPmlzX2Rl YnVnKTsKLQkJCWlmIChyZXR2YWwgIT0gMCkKKwkJCWlmIChyZXR2YWwpCiAJCQkJcmV0dXJuIHJl dHZhbDsKIAogCQkJaW5jX3dwdHIoJnJsX3dwdHIsCkBAIC0zOTIsNyArMzkyLDcgQEAgc3RhdGlj IGludCBwbV9jcmVhdGVfcnVubGlzdF9pYihzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBtLAogCQkJ CQkJcSwKIAkJCQkJCXFwZC0+aXNfZGVidWcpOwogCi0JCQlpZiAocmV0dmFsICE9IDApCisJCQlp ZiAocmV0dmFsKQogCQkJCXJldHVybiByZXR2YWw7CiAKIAkJCWluY193cHRyKCZybF93cHRyLApA QCAtNDIxLDcgKzQyMSw3IEBAIGludCBwbV9pbml0KHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0s IHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtKQogCXBtLT5kcW0gPSBkcW07CiAJbXV0 ZXhfaW5pdCgmcG0tPmxvY2spOwogCXBtLT5wcml2X3F1ZXVlID0ga2VybmVsX3F1ZXVlX2luaXQo ZHFtLT5kZXYsIEtGRF9RVUVVRV9UWVBFX0hJUSk7Ci0JaWYgKHBtLT5wcml2X3F1ZXVlID09IE5V TEwpIHsKKwlpZiAoIXBtLT5wcml2X3F1ZXVlKSB7CiAJCW11dGV4X2Rlc3Ryb3koJnBtLT5sb2Nr KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIGludCBwbV9zZW5k X3NldF9yZXNvdXJjZXMoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKIAlwbS0+cHJpdl9xdWV1 ZS0+b3BzLmFjcXVpcmVfcGFja2V0X2J1ZmZlcihwbS0+cHJpdl9xdWV1ZSwKIAkJCQkJc2l6ZW9m KCpwYWNrZXQpIC8gc2l6ZW9mKHVpbnQzMl90KSwKIAkJCQkJKHVuc2lnbmVkIGludCAqKikmcGFj a2V0KTsKLQlpZiAocGFja2V0ID09IE5VTEwpIHsKKwlpZiAoIXBhY2tldCkgewogCQltdXRleF91 bmxvY2soJnBtLT5sb2NrKTsKIAkJcHJfZXJyKCJGYWlsZWQgdG8gYWxsb2NhdGUgYnVmZmVyIG9u IGtlcm5lbCBxdWV1ZVxuIik7CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNDkxLDcgKzQ5MSw3IEBA IGludCBwbV9zZW5kX3J1bmxpc3Qoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgc3RydWN0IGxp c3RfaGVhZCAqZHFtX3F1ZXVlcykKIAogCXJldHZhbCA9IHBtX2NyZWF0ZV9ydW5saXN0X2liKHBt LCBkcW1fcXVldWVzLCAmcmxfZ3B1X2liX2FkZHIsCiAJCQkJCSZybF9pYl9zaXplKTsKLQlpZiAo cmV0dmFsICE9IDApCisJaWYgKHJldHZhbCkKIAkJZ290byBmYWlsX2NyZWF0ZV9ydW5saXN0X2li OwogCiAJcHJfZGVidWcoInJ1bmxpc3QgSUIgYWRkcmVzczogMHglbGxYXG4iLCBybF9ncHVfaWJf YWRkcik7CkBAIC01MDEsMTIgKzUwMSwxMiBAQCBpbnQgcG1fc2VuZF9ydW5saXN0KHN0cnVjdCBw YWNrZXRfbWFuYWdlciAqcG0sIHN0cnVjdCBsaXN0X2hlYWQgKmRxbV9xdWV1ZXMpCiAKIAlyZXR2 YWwgPSBwbS0+cHJpdl9xdWV1ZS0+b3BzLmFjcXVpcmVfcGFja2V0X2J1ZmZlcihwbS0+cHJpdl9x dWV1ZSwKIAkJCQkJcGFja2V0X3NpemVfZHdvcmRzLCAmcmxfYnVmZmVyKTsKLQlpZiAocmV0dmFs ICE9IDApCisJaWYgKHJldHZhbCkKIAkJZ290byBmYWlsX2FjcXVpcmVfcGFja2V0X2J1ZmZlcjsK IAogCXJldHZhbCA9IHBtX2NyZWF0ZV9ydW5saXN0KHBtLCBybF9idWZmZXIsIHJsX2dwdV9pYl9h ZGRyLAogCQkJCQlybF9pYl9zaXplIC8gc2l6ZW9mKHVpbnQzMl90KSwgZmFsc2UpOwotCWlmIChy ZXR2YWwgIT0gMCkKKwlpZiAocmV0dmFsKQogCQlnb3RvIGZhaWxfY3JlYXRlX3J1bmxpc3Q7CiAK IAlwbS0+cHJpdl9xdWV1ZS0+b3BzLnN1Ym1pdF9wYWNrZXQocG0tPnByaXZfcXVldWUpOwpAQCAt NTM3LDcgKzUzNyw3IEBAIGludCBwbV9zZW5kX3F1ZXJ5X3N0YXR1cyhzdHJ1Y3QgcGFja2V0X21h bmFnZXIgKnBtLCB1aW50NjRfdCBmZW5jZV9hZGRyZXNzLAogCQkJcG0tPnByaXZfcXVldWUsCiAJ CQlzaXplb2Yoc3RydWN0IHBtNF9xdWVyeV9zdGF0dXMpIC8gc2l6ZW9mKHVpbnQzMl90KSwKIAkJ CSh1bnNpZ25lZCBpbnQgKiopJnBhY2tldCk7Ci0JaWYgKHJldHZhbCAhPSAwKQorCWlmIChyZXR2 YWwpCiAJCWdvdG8gZmFpbF9hY3F1aXJlX3BhY2tldF9idWZmZXI7CiAKIAlwYWNrZXQtPmhlYWRl ci51MzJhbGwgPSBidWlsZF9wbTRfaGVhZGVyKElUX1FVRVJZX1NUQVRVUywKQEAgLTU4MCw3ICs1 ODAsNyBAQCBpbnQgcG1fc2VuZF91bm1hcF9xdWV1ZShzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBt LCBlbnVtIGtmZF9xdWV1ZV90eXBlIHR5cGUsCiAJCQlwbS0+cHJpdl9xdWV1ZSwKIAkJCXNpemVv ZihzdHJ1Y3QgcG00X3VubWFwX3F1ZXVlcykgLyBzaXplb2YodWludDMyX3QpLAogCQkJJmJ1ZmZl cik7Ci0JaWYgKHJldHZhbCAhPSAwKQorCWlmIChyZXR2YWwpCiAJCWdvdG8gZXJyX2FjcXVpcmVf cGFja2V0X2J1ZmZlcjsKIAogCXBhY2tldCA9IChzdHJ1Y3QgcG00X3VubWFwX3F1ZXVlcyAqKWJ1 ZmZlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNz LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzcy5jCmluZGV4IDg2MDMy YmQuLmQ4NzdjZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9w cm9jZXNzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3MuYwpA QCAtODEsNyArODEsNyBAQCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKmtmZF9jcmVhdGVfcHJvY2Vzcyhj b25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRocmVhZCkKIAogCUJVR19PTigha2ZkX3Byb2Nlc3Nf d3EpOwogCi0JaWYgKHRocmVhZC0+bW0gPT0gTlVMTCkKKwlpZiAoIXRocmVhZC0+bW0pCiAJCXJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJLyogT25seSB0aGUgcHRocmVhZHMgdGhyZWFkaW5n IG1vZGVsIGlzIHN1cHBvcnRlZC4gKi8KQEAgLTExNyw3ICsxMTcsNyBAQCBzdHJ1Y3Qga2ZkX3By b2Nlc3MgKmtmZF9nZXRfcHJvY2Vzcyhjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRocmVhZCkK IHsKIAlzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnByb2Nlc3M7CiAKLQlpZiAodGhyZWFkLT5tbSA9PSBO VUxMKQorCWlmICghdGhyZWFkLT5tbSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAkv KiBPbmx5IHRoZSBwdGhyZWFkcyB0aHJlYWRpbmcgbW9kZWwgaXMgc3VwcG9ydGVkLiAqLwpAQCAt NDA3LDcgKzQwNyw3IEBAIHZvaWQga2ZkX3VuYmluZF9wcm9jZXNzX2Zyb21fZGV2aWNlKHN0cnVj dCBrZmRfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBwYXNpZCkKIAlzdHJ1Y3Qga2ZkX3Byb2Nlc3Mg KnA7CiAJc3RydWN0IGtmZF9wcm9jZXNzX2RldmljZSAqcGRkOwogCi0JQlVHX09OKGRldiA9PSBO VUxMKTsKKwlCVUdfT04oIWRldik7CiAKIAkvKgogCSAqIExvb2sgZm9yIHRoZSBwcm9jZXNzIHRo YXQgbWF0Y2hlcyB0aGUgcGFzaWQuIElmIHRoZXJlIGlzIG5vIHN1Y2gKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYwppbmRl eCA5NDgyYTVhLi5kNGY4YmFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jCkBAIC03Niw3ICs3Niw3IEBAIGludCBw cW1faW5pdChzdHJ1Y3QgcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sIHN0cnVjdCBrZmRfcHJv Y2VzcyAqcCkKIAlwcW0tPnF1ZXVlX3Nsb3RfYml0bWFwID0KIAkJCWt6YWxsb2MoRElWX1JPVU5E X1VQKEtGRF9NQVhfTlVNX09GX1FVRVVFU19QRVJfUFJPQ0VTUywKIAkJCQkJQklUU19QRVJfQllU RSksIEdGUF9LRVJORUwpOwotCWlmIChwcW0tPnF1ZXVlX3Nsb3RfYml0bWFwID09IE5VTEwpCisJ aWYgKCFwcW0tPnF1ZXVlX3Nsb3RfYml0bWFwKQogCQlyZXR1cm4gLUVOT01FTTsKIAlwcW0tPnBy b2Nlc3MgPSBwOwogCkBAIC0yMjMsNyArMjIzLDcgQEAgaW50IHBxbV9jcmVhdGVfcXVldWUoc3Ry dWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAqcHFtLAogCQlicmVhazsKIAljYXNlIEtGRF9RVUVV RV9UWVBFX0RJUToKIAkJa3EgPSBrZXJuZWxfcXVldWVfaW5pdChkZXYsIEtGRF9RVUVVRV9UWVBF X0RJUSk7Ci0JCWlmIChrcSA9PSBOVUxMKSB7CisJCWlmICgha3EpIHsKIAkJCXJldHZhbCA9IC1F Tk9NRU07CiAJCQlnb3RvIGVycl9jcmVhdGVfcXVldWU7CiAJCX0KQEAgLTI3OSw3ICsyNzksNyBA QCBpbnQgcHFtX2Rlc3Ryb3lfcXVldWUoc3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAqcHFt LCB1bnNpZ25lZCBpbnQgcWlkKQogCXJldHZhbCA9IDA7CiAKIAlwcW4gPSBnZXRfcXVldWVfYnlf cWlkKHBxbSwgcWlkKTsKLQlpZiAocHFuID09IE5VTEwpIHsKKwlpZiAoIXBxbikgewogCQlwcl9l cnIoIlF1ZXVlIGlkIGRvZXMgbm90IG1hdGNoIGFueSBrbm93biBxdWV1ZVxuIik7CiAJCXJldHVy biAtRUlOVkFMOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF90b3BvbG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3RvcG9sb2d5LmMK aW5kZXggNzJkNTY2YS4uMTEzYzFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X3RvcG9sb2d5LmMKQEAgLTQxNiw3ICs0MTYsNyBAQCBzdGF0aWMgc3RydWN0IGtmZF90b3BvbG9n eV9kZXZpY2UgKmtmZF9jcmVhdGVfdG9wb2xvZ3lfZGV2aWNlKHZvaWQpCiAJc3RydWN0IGtmZF90 b3BvbG9neV9kZXZpY2UgKmRldjsKIAogCWRldiA9IGtmZF9hbGxvY19zdHJ1Y3QoZGV2KTsKLQlp ZiAoZGV2ID09IE5VTEwpIHsKKwlpZiAoIWRldikgewogCQlwcl9lcnIoIk5vIG1lbW9yeSB0byBh bGxvY2F0ZSBhIHRvcG9sb2d5IGRldmljZSIpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC05NTcs NyArOTU3LDcgQEAgc3RhdGljIGludCBrZmRfdG9wb2xvZ3lfdXBkYXRlX3N5c2ZzKHZvaWQpCiAJ aW50IHJldDsKIAogCXByX2luZm8oIkNyZWF0aW5nIHRvcG9sb2d5IFNZU0ZTIGVudHJpZXNcbiIp OwotCWlmIChzeXNfcHJvcHMua29ial90b3BvbG9neSA9PSBOVUxMKSB7CisJaWYgKCFzeXNfcHJv cHMua29ial90b3BvbG9neSkgewogCQlzeXNfcHJvcHMua29ial90b3BvbG9neSA9CiAJCQkJa2Zk X2FsbG9jX3N0cnVjdChzeXNfcHJvcHMua29ial90b3BvbG9neSk7CiAJCWlmICghc3lzX3Byb3Bz LmtvYmpfdG9wb2xvZ3kpCkBAIC0xMTIwLDcgKzExMjAsNyBAQCBzdGF0aWMgc3RydWN0IGtmZF90 b3BvbG9neV9kZXZpY2UgKmtmZF9hc3NpZ25fZ3B1KHN0cnVjdCBrZmRfZGV2ICpncHUpCiAJQlVH X09OKCFncHUpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZ0b3BvbG9neV9kZXZpY2Vf bGlzdCwgbGlzdCkKLQkJaWYgKGRldi0+Z3B1ID09IE5VTEwgJiYgZGV2LT5ub2RlX3Byb3BzLnNp bWRfY291bnQgPiAwKSB7CisJCWlmICghZGV2LT5ncHUgJiYgKGRldi0+bm9kZV9wcm9wcy5zaW1k X2NvdW50ID4gMCkpIHsKIAkJCWRldi0+Z3B1ID0gZ3B1OwogCQkJb3V0X2RldiA9IGRldjsKIAkJ CWJyZWFrOwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdm eAo=