From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 05/11] drm/msm: get an iova from the address space instead of an id Date: Tue, 7 Mar 2017 09:58:14 -0700 Message-ID: <1488905900-6603-6-git-send-email-jcrouse@codeaurora.org> References: <1486402779-9024-1-git-send-email-jcrouse@codeaurora.org> <1488905900-6603-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488905900-6603-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SW4gdGhlIGZ1dHVyZSB3ZSB3b24ndCBoYXZlIGEgZml4ZWQgc2V0IG9mIGFkZHJlc3NlcyBzcGFj ZXMuCkluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGUgZWZmb3J0IG9mIGFzc2lnbmluZyBhIElE IGZvciBlYWNoCmFkZHJlc3Mgc3BhY2UganVzdCB1c2UgdGhlIGFkZHJlc3Mgc3BhY2UgaXRzZWxm IGFzIGEgdG9rZW4gZm9yCmdldHRpbmcgLyBwdXR0aW5nIGFuIGlvdmEuCgpUaGlzIGZvcmNlcyBh IGZldyBjaGFuZ2VzIGluIHRoZSBnZW0gb2JqZWN0IGhvd2V2ZXI6IGluc3RlYWQKb2YgdXNpbmcg YSBzaW1wbGUgaW5kZXggaW50byBhIGxpc3Qgb2YgZG9tYWlucywgd2UgbmVlZCB0bwptYWludGFp biBhIGxpc3Qgb2YgdGhlbS4gTHVja2lseSB0aGUgbGlzdCB3aWxsIGJlIHByZXR0eSBzbWFsbDsK ZXZlbiB3aXRoIGR5bmFtaWMgYWRkcmVzcyBzcGFjZXMgd2Ugd291bGRuJ3QgZXZlciBzZWUgbW9y ZSB0aGFuCnR3byBvciB0aHJlZS4KClNpZ25lZC1vZmYtYnk6IEpvcmRhbiBDcm91c2UgPGpjcm91 c2VAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9n cHUuYyAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfcG93ZXIu YyAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgICB8 ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYyAgICAgICAgfCAgMTUg KysrLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2NydGMuYyAgfCAgIDggKy0K IGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuYyAgIHwgIDE4ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuaCAgIHwgICA0IC0KIGRyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jIHwgIDEzICstLQogZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYyAgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9t c20vbWRwL21kcDUvbWRwNV9rbXMuYyAgIHwgIDExICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNS9tZHA1X2ttcy5oICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X3BsYW5lLmMgfCAgMTMgKy0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAg ICAgICAgICAgICB8ICAxNSArLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCAgICAg ICAgICAgICB8ICAyNSArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMgICAgICAg ICAgICAgIHwgIDE1ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiZGV2LmMgICAgICAg ICAgIHwgIDEwICsrLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgICAgICAgICAgICAg fCAxMzQgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uaCAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z2VtX3N1Ym1pdC5jICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5j ICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaCAgICAg ICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaCAgICAgICAgICAg ICB8ICAgMyArCiAyMiBmaWxlcyBjaGFuZ2VkLCAxOTQgaW5zZXJ0aW9ucygrKSwgMTM1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1 LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCmluZGV4IDVkM2M0ZmYu LjI1YWIxZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwpAQCAtNDE1LDcg KzQxNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmE1eHhfdWNvZGVfbG9hZF9i byhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LAogCX0KIAogCWlmIChpb3ZhKSB7Ci0JCWludCByZXQgPSBt c21fZ2VtX2dldF9pb3ZhKGJvLCBncHUtPmlkLCBpb3ZhKTsKKwkJaW50IHJldCA9IG1zbV9nZW1f Z2V0X2lvdmEoYm8sIGdwdS0+YXNwYWNlLCBpb3ZhKTsKIAogCQlpZiAocmV0KSB7CiAJCQlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChibyk7CkBAIC03NTcsMTkgKzc1NywxOSBA QCBzdGF0aWMgdm9pZCBhNXh4X2Rlc3Ryb3koc3RydWN0IG1zbV9ncHUgKmdwdSkKIAogCWlmIChh NXh4X2dwdS0+cG00X2JvKSB7CiAJCWlmIChhNXh4X2dwdS0+cG00X2lvdmEpCi0JCQltc21fZ2Vt X3B1dF9pb3ZhKGE1eHhfZ3B1LT5wbTRfYm8sIGdwdS0+aWQpOworCQkJbXNtX2dlbV9wdXRfaW92 YShhNXh4X2dwdS0+cG00X2JvLCBncHUtPmFzcGFjZSk7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlX3VubG9ja2VkKGE1eHhfZ3B1LT5wbTRfYm8pOwogCX0KIAogCWlmIChhNXh4X2dwdS0+ cGZwX2JvKSB7CiAJCWlmIChhNXh4X2dwdS0+cGZwX2lvdmEpCi0JCQltc21fZ2VtX3B1dF9pb3Zh KGE1eHhfZ3B1LT5wZnBfYm8sIGdwdS0+aWQpOworCQkJbXNtX2dlbV9wdXRfaW92YShhNXh4X2dw dS0+cGZwX2JvLCBncHUtPmFzcGFjZSk7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3Vu bG9ja2VkKGE1eHhfZ3B1LT5wZnBfYm8pOwogCX0KIAogCWlmIChhNXh4X2dwdS0+Z3BtdV9ibykg ewogCQlpZiAoYTV4eF9ncHUtPmdwbXVfaW92YSkKLQkJCW1zbV9nZW1fcHV0X2lvdmEoYTV4eF9n cHUtPmdwbXVfYm8sIGdwdS0+aWQpOworCQkJbXNtX2dlbV9wdXRfaW92YShhNXh4X2dwdS0+Z3Bt dV9ibywgZ3B1LT5hc3BhY2UpOwogCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tl ZChhNXh4X2dwdS0+Z3BtdV9ibyk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hNXh4X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4 X3Bvd2VyLmMKaW5kZXggZWQwODAyZS4uMmZkZWU0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTV4eF9wb3dlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2E1eHhfcG93ZXIuYwpAQCAtMzAxLDcgKzMwMSw4IEBAIHZvaWQgYTV4eF9ncG11X3Vjb2Rl X2luaXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlpZiAoSVNfRVJSKGE1eHhfZ3B1LT5ncG11X2Jv KSkKIAkJZ290byBlcnI7CiAKLQlpZiAobXNtX2dlbV9nZXRfaW92YShhNXh4X2dwdS0+Z3BtdV9i bywgZ3B1LT5pZCwgJmE1eHhfZ3B1LT5ncG11X2lvdmEpKQorCWlmIChtc21fZ2VtX2dldF9pb3Zh KGE1eHhfZ3B1LT5ncG11X2JvLCBncHUtPmFzcGFjZSwKKwkJJmE1eHhfZ3B1LT5ncG11X2lvdmEp KQogCQlnb3RvIGVycjsKIAogCXB0ciA9IG1zbV9nZW1fZ2V0X3ZhZGRyKGE1eHhfZ3B1LT5ncG11 X2JvKTsKQEAgLTMzMCw3ICszMzEsNyBAQCB2b2lkIGE1eHhfZ3BtdV91Y29kZV9pbml0KHN0cnVj dCBtc21fZ3B1ICpncHUpCiAKIGVycjoKIAlpZiAoYTV4eF9ncHUtPmdwbXVfaW92YSkKLQkJbXNt X2dlbV9wdXRfaW92YShhNXh4X2dwdS0+Z3BtdV9ibywgZ3B1LT5pZCk7CisJCW1zbV9nZW1fcHV0 X2lvdmEoYTV4eF9ncHUtPmdwbXVfYm8sIGdwdS0+YXNwYWNlKTsKIAlpZiAoYTV4eF9ncHUtPmdw bXVfYm8pCiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGE1eHhfZ3B1LT5n cG11X2JvKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5v X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCmluZGV4IDM1 YTY4NDkuLjk1OTg3NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2Fk cmVub19ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMK QEAgLTYxLDcgKzYxLDcgQEAgaW50IGFkcmVub19od19pbml0KHN0cnVjdCBtc21fZ3B1ICpncHUp CiAKIAlEQkcoIiVzIiwgZ3B1LT5uYW1lKTsKIAotCXJldCA9IG1zbV9nZW1fZ2V0X2lvdmEoZ3B1 LT5yYi0+Ym8sIGdwdS0+aWQsICZncHUtPnJiX2lvdmEpOworCXJldCA9IG1zbV9nZW1fZ2V0X2lv dmEoZ3B1LT5yYi0+Ym8sIGdwdS0+YXNwYWNlLCAmZ3B1LT5yYl9pb3ZhKTsKIAlpZiAocmV0KSB7 CiAJCWdwdS0+cmJfaW92YSA9IDA7CiAJCWRldl9lcnIoZ3B1LT5kZXYtPmRldiwgImNvdWxkIG5v dCBtYXAgcmluZ2J1ZmZlcjogJWRcbiIsIHJldCk7CkBAIC00MTAsNyArNDEwLDcgQEAgaW50IGFk cmVub19ncHVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LAogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLQlyZXQgPSBtc21fZ2VtX2dldF9p b3ZhKGFkcmVub19ncHUtPm1lbXB0cnNfYm8sIGdwdS0+aWQsCisJcmV0ID0gbXNtX2dlbV9nZXRf aW92YShhZHJlbm9fZ3B1LT5tZW1wdHJzX2JvLCBncHUtPmFzcGFjZSwKIAkJCSZhZHJlbm9fZ3B1 LT5tZW1wdHJzX2lvdmEpOwogCWlmIChyZXQpIHsKIAkJZGV2X2Vycihkcm0tPmRldiwgImNvdWxk IG5vdCBtYXAgbWVtcHRyczogJWRcbiIsIHJldCk7CkBAIC00MjksNyArNDI5LDcgQEAgdm9pZCBh ZHJlbm9fZ3B1X2NsZWFudXAoc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUpCiAJCQltc21f Z2VtX3B1dF92YWRkcihhZHJlbm9fZ3B1LT5tZW1wdHJzX2JvKTsKIAogCQlpZiAoYWRyZW5vX2dw dS0+bWVtcHRyc19pb3ZhKQotCQkJbXNtX2dlbV9wdXRfaW92YShhZHJlbm9fZ3B1LT5tZW1wdHJz X2JvLCBncHUtPmlkKTsKKwkJCW1zbV9nZW1fcHV0X2lvdmEoYWRyZW5vX2dwdS0+bWVtcHRyc19i bywgZ3B1LT5hc3BhY2UpOwogCiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2Vk KGFkcmVub19ncHUtPm1lbXB0cnNfYm8pOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHNpL2RzaV9ob3N0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5j CmluZGV4IDFmYzA3Y2UuLmU3NDcyZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZHNpL2RzaV9ob3N0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYwpA QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgogI2luY2x1ZGUgPHZp ZGVvL21pcGlfZGlzcGxheS5oPgogCisjaW5jbHVkZSAibXNtX2ttcy5oIgogI2luY2x1ZGUgImRz aS5oIgogI2luY2x1ZGUgImRzaS54bWwuaCIKICNpbmNsdWRlICJzZnBiLnhtbC5oIgpAQCAtOTc1 LDYgKzk3Niw3IEBAIHN0YXRpYyB2b2lkIGRzaV93YWl0NHZpZGVvX2VuZ19idXN5KHN0cnVjdCBt c21fZHNpX2hvc3QgKm1zbV9ob3N0KQogc3RhdGljIGludCBkc2lfdHhfYnVmX2FsbG9jKHN0cnVj dCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gbXNtX2hvc3QtPmRldjsKKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKIAljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFuZGxlciAqY2Zn X2huZCA9IG1zbV9ob3N0LT5jZmdfaG5kOwogCWludCByZXQ7CiAJdWludDY0X3QgaW92YTsKQEAg LTk5MSw3ICs5OTMsMTMgQEAgc3RhdGljIGludCBkc2lfdHhfYnVmX2FsbG9jKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgc2l6ZSkKIAkJCXJldHVybiByZXQ7CiAJCX0KIAotCQly ZXQgPSBtc21fZ2VtX2dldF9pb3ZhX2xvY2tlZChtc21faG9zdC0+dHhfZ2VtX29iaiwgMCwgJmlv dmEpOworCQlpZiAoIXByaXYtPmttcykgeworCQkJcHJfZXJyKCIlczogTm8gS01TIGlzIGluaXRh bGl6ZWRcbiIsIF9fZnVuY19fKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisKKwkJcmV0ID0g bXNtX2dlbV9nZXRfaW92YV9sb2NrZWQobXNtX2hvc3QtPnR4X2dlbV9vYmosCisJCQlwcml2LT5r bXMtPmFzcGFjZSwgJmlvdmEpOwogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK IAkJaWYgKHJldCkgewogCQkJcHJfZXJyKCIlczogZmFpbGVkIHRvIGdldCBpb3ZhLCAlZFxuIiwg X19mdW5jX18sIHJldCk7CkBAIC0xMDIzLDkgKzEwMzEsMTIgQEAgc3RhdGljIGludCBkc2lfdHhf YnVmX2FsbG9jKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgc2l6ZSkKIHN0YXRp YyB2b2lkIGRzaV90eF9idWZfZnJlZShzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbXNtX2hvc3QtPmRldjsKKwlzdHJ1Y3QgbXNtX2Ry bV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAogCWlmIChtc21faG9zdC0+dHhf Z2VtX29iaikgewotCQltc21fZ2VtX3B1dF9pb3ZhKG1zbV9ob3N0LT50eF9nZW1fb2JqLCAwKTsK KwkJaWYgKHByaXYtPmttcykKKwkJCW1zbV9nZW1fcHV0X2lvdmEobXNtX2hvc3QtPnR4X2dlbV9v YmosCisJCQkJcHJpdi0+a21zLT5hc3BhY2UpOwogCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CiAJCW1zbV9nZW1fZnJlZV9vYmplY3QobXNtX2hvc3QtPnR4X2dlbV9vYmopOwogCQlt c21faG9zdC0+dHhfZ2VtX29iaiA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA0L21kcDRfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9t ZHA0X2NydGMuYwppbmRleCAxYzI5NjE4Li4xZGZhZDkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA0L21kcDRfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDQvbWRwNF9jcnRjLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgdm9pZCB1bnJl Zl9jdXJzb3Jfd29ya2VyKHN0cnVjdCBkcm1fZmxpcF93b3JrICp3b3JrLCB2b2lkICp2YWwpCiAJ CWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWRwNF9jcnRjLCB1bnJlZl9jdXJzb3Jfd29yayk7 CiAJc3RydWN0IG1kcDRfa21zICptZHA0X2ttcyA9IGdldF9rbXMoJm1kcDRfY3J0Yy0+YmFzZSk7 CiAKLQltc21fZ2VtX3B1dF9pb3ZhKHZhbCwgbWRwNF9rbXMtPmlkKTsKKwltc21fZ2VtX3B1dF9p b3ZhKHZhbCwgbWRwNF9rbXMtPmJhc2UuYmFzZS5hc3BhY2UpOwogCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlX3VubG9ja2VkKHZhbCk7CiB9CiAKQEAgLTM3OCw3ICszNzgsOCBAQCBzdGF0aWMg dm9pZCB1cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJaWYgKG5leHRfYm8p IHsKIAkJCS8qIHRha2UgYSBvYmogcmVmICsgaW92YSByZWYgd2hlbiB3ZSBzdGFydCBzY2Fubmlu ZyBvdXQ6ICovCiAJCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UobmV4dF9ibyk7Ci0JCQltc21f Z2VtX2dldF9pb3ZhX2xvY2tlZChuZXh0X2JvLCBtZHA0X2ttcy0+aWQsICZpb3ZhKTsKKwkJCW1z bV9nZW1fZ2V0X2lvdmFfbG9ja2VkKG5leHRfYm8sCisJCQkJbWRwNF9rbXMtPmJhc2UuYmFzZS5h c3BhY2UsICZpb3ZhKTsKIAogCQkJLyogZW5hYmxlIGN1cnNvcjogKi8KIAkJCW1kcDRfd3JpdGUo bWRwNF9rbXMsIFJFR19NRFA0X0RNQV9DVVJTT1JfU0laRShkbWEpLApAQCAtNDM1LDcgKzQzNiw4 IEBAIHN0YXRpYyBpbnQgbWRwNF9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCX0KIAogCWlmIChjdXJzb3JfYm8pIHsKLQkJcmV0ID0gbXNtX2dlbV9nZXRfaW92YShjdXJz b3JfYm8sIG1kcDRfa21zLT5pZCwgJmlvdmEpOworCQlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKGN1 cnNvcl9ibywgbWRwNF9rbXMtPmJhc2UuYmFzZS5hc3BhY2UsCisJCQkmaW92YSk7CiAJCWlmIChy ZXQpCiAJCQlnb3RvIGZhaWw7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDQvbWRwNF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQv bWRwNF9rbXMuYwppbmRleCA0NGUwOTQyLi4yMzlhMjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNC9tZHA0X2ttcy5jCkBAIC0xNjAsNyArMTYwLDEwIEBAIHN0YXRpYyB2b2lkIG1kcDRf ZGVzdHJveShzdHJ1Y3QgbXNtX2ttcyAqa21zKQogewogCXN0cnVjdCBtZHA0X2ttcyAqbWRwNF9r bXMgPSB0b19tZHA0X2ttcyh0b19tZHBfa21zKGttcykpOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9 IG1kcDRfa21zLT5kZXYtPmRldjsKLQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3Bh Y2UgPSBtZHA0X2ttcy0+YXNwYWNlOworCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFz cGFjZSA9IGttcy0+YXNwYWNlOworCisJaWYgKG1kcDRfa21zLT5ibGFua19jdXJzb3JfaW92YSkK KwkJbXNtX2dlbV9wdXRfaW92YShtZHA0X2ttcy0+YmxhbmtfY3Vyc29yX2JvLCBhc3BhY2UpOwog CiAJaWYgKGFzcGFjZSkgewogCQlhc3BhY2UtPm1tdS0+ZnVuY3MtPmRldGFjaChhc3BhY2UtPm1t dSwKQEAgLTE2OCw4ICsxNzEsNiBAQCBzdGF0aWMgdm9pZCBtZHA0X2Rlc3Ryb3koc3RydWN0IG1z bV9rbXMgKmttcykKIAkJbXNtX2dlbV9hZGRyZXNzX3NwYWNlX2Rlc3Ryb3koYXNwYWNlKTsKIAl9 CiAKLQlpZiAobWRwNF9rbXMtPmJsYW5rX2N1cnNvcl9pb3ZhKQotCQltc21fZ2VtX3B1dF9pb3Zh KG1kcDRfa21zLT5ibGFua19jdXJzb3JfYm8sIG1kcDRfa21zLT5pZCk7CiAJZHJtX2dlbV9vYmpl Y3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQobWRwNF9rbXMtPmJsYW5rX2N1cnNvcl9ibyk7CiAKIAlp ZiAobWRwNF9rbXMtPnJwbV9lbmFibGVkKQpAQCAtNTM2LDcgKzUzNyw3IEBAIHN0cnVjdCBtc21f a21zICptZHA0X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlnb3RvIGZhaWw7 CiAJCX0KIAotCQltZHA0X2ttcy0+YXNwYWNlID0gYXNwYWNlOworCQlrbXMtPmFzcGFjZSA9IGFz cGFjZTsKIAogCQlyZXQgPSBhc3BhY2UtPm1tdS0+ZnVuY3MtPmF0dGFjaChhc3BhY2UtPm1tdSwg aW9tbXVfcG9ydHMsCiAJCQkJQVJSQVlfU0laRShpb21tdV9wb3J0cykpOwpAQCAtNTQ4LDEzICs1 NDksNiBAQCBzdHJ1Y3QgbXNtX2ttcyAqbWRwNF9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQlhc3BhY2UgPSBOVUxMOwogCX0KIAotCW1kcDRfa21zLT5pZCA9IG1zbV9yZWdpc3Rl cl9hZGRyZXNzX3NwYWNlKGRldiwgYXNwYWNlKTsKLQlpZiAobWRwNF9rbXMtPmlkIDwgMCkgewot CQlyZXQgPSBtZHA0X2ttcy0+aWQ7Ci0JCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVn aXN0ZXIgbWRwNCBpb21tdTogJWRcbiIsIHJldCk7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KIAlyZXQg PSBtb2Rlc2V0X2luaXQobWRwNF9rbXMpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYtPmRl diwgIm1vZGVzZXRfaW5pdCBmYWlsZWQ6ICVkXG4iLCByZXQpOwpAQCAtNTcxLDcgKzU2NSw3IEBA IHN0cnVjdCBtc21fa21zICptZHA0X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CWdvdG8gZmFpbDsKIAl9CiAKLQlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKG1kcDRfa21zLT5ibGFu a19jdXJzb3JfYm8sIG1kcDRfa21zLT5pZCwKKwlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKG1kcDRf a21zLT5ibGFua19jdXJzb3JfYm8sIGttcy0+YXNwYWNlLAogCQkJJm1kcDRfa21zLT5ibGFua19j dXJzb3JfaW92YSk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldi0+ZGV2LCAiY291bGQgbm90 IHBpbiBibGFuay1jdXJzb3IgYm86ICVkXG4iLCByZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAv bWRwNC9tZHA0X2ttcy5oCmluZGV4IDYyNzEyY2EuLjBlYWNhZjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA0L21kcDRfa21zLmgKQEAgLTMyLDkgKzMyLDYgQEAgc3RydWN0IG1kcDRfa21z IHsKIAogCWludCByZXY7CiAKLQkvKiBtYXBwZXItaWQgdXNlZCB0byByZXF1ZXN0IEdFTSBidWZm ZXIgbWFwcGVkIGZvciBzY2Fub3V0OiAqLwotCWludCBpZDsKLQogCXZvaWQgX19pb21lbSAqbW1p bzsKIAogCXN0cnVjdCByZWd1bGF0b3IgKnZkZDsKQEAgLTQzLDcgKzQwLDYgQEAgc3RydWN0IG1k cDRfa21zIHsKIAlzdHJ1Y3QgY2xrICpwY2xrOwogCXN0cnVjdCBjbGsgKmx1dF9jbGs7CiAJc3Ry dWN0IGNsayAqYXhpX2NsazsKLQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7 CiAKIAlzdHJ1Y3QgbWRwX2lycSBlcnJvcl9oYW5kbGVyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDQvbWRwNF9wbGFuZS5jCmluZGV4IDM5MDNkYmMuLjg4ZjNiODYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCkBAIC0xMDksNyArMTA5LDcgQEAgc3Rh dGljIGludCBtZHA0X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CXJldHVybiAwOwogCiAJREJHKCIlczogcHJlcGFyZTogRkJbJXVdIiwgbWRwNF9wbGFuZS0+bmFt ZSwgZmItPmJhc2UuaWQpOwotCXJldHVybiBtc21fZnJhbWVidWZmZXJfcHJlcGFyZShmYiwgbWRw NF9rbXMtPmlkKTsKKwlyZXR1cm4gbXNtX2ZyYW1lYnVmZmVyX3ByZXBhcmUoZmIsIG1kcDRfa21z LT5iYXNlLmJhc2UuYXNwYWNlKTsKIH0KIAogc3RhdGljIHZvaWQgbWRwNF9wbGFuZV9jbGVhbnVw X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLApAQCAtMTIzLDcgKzEyMyw3IEBAIHN0YXRpYyB2 b2lkIG1kcDRfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0 dXJuOwogCiAJREJHKCIlczogY2xlYW51cDogRkJbJXVdIiwgbWRwNF9wbGFuZS0+bmFtZSwgZmIt PmJhc2UuaWQpOwotCW1zbV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKGZiLCBtZHA0X2ttcy0+aWQpOwor CW1zbV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKGZiLCBtZHA0X2ttcy0+YmFzZS5iYXNlLmFzcGFjZSk7 CiB9CiAKIApAQCAtMTYxLDYgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIG1kcDRfcGxhbmVfc2V0X3Nj YW5vdXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiB7CiAJc3RydWN0IG1kcDRfcGxhbmUgKm1k cDRfcGxhbmUgPSB0b19tZHA0X3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgbWRwNF9rbXMgKm1kcDRf a21zID0gZ2V0X2ttcyhwbGFuZSk7CisJc3RydWN0IG1zbV9rbXMgKmttcyA9ICZtZHA0X2ttcy0+ YmFzZS5iYXNlOwogCWVudW0gbWRwNF9waXBlIHBpcGUgPSBtZHA0X3BsYW5lLT5waXBlOwogCiAJ bWRwNF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9TUkNfU1RSSURFX0EocGlwZSksCkBA IC0xNzIsMTMgKzE3MywxMyBAQCBzdGF0aWMgdm9pZCBtZHA0X3BsYW5lX3NldF9zY2Fub3V0KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJTURQNF9QSVBFX1NSQ19TVFJJREVfQl9QMyhmYi0+ cGl0Y2hlc1szXSkpOwogCiAJbWRwNF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9TUkNQ MF9CQVNFKHBpcGUpLAotCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIG1kcDRfa21zLT5pZCwg MCkpOworCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIGttcy0+YXNwYWNlLCAwKSk7CiAJbWRw NF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9TUkNQMV9CQVNFKHBpcGUpLAotCQkJbXNt X2ZyYW1lYnVmZmVyX2lvdmEoZmIsIG1kcDRfa21zLT5pZCwgMSkpOworCQkJbXNtX2ZyYW1lYnVm ZmVyX2lvdmEoZmIsIGttcy0+YXNwYWNlLCAxKSk7CiAJbWRwNF93cml0ZShtZHA0X2ttcywgUkVH X01EUDRfUElQRV9TUkNQMl9CQVNFKHBpcGUpLAotCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIs IG1kcDRfa21zLT5pZCwgMikpOworCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIGttcy0+YXNw YWNlLCAyKSk7CiAJbWRwNF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9TUkNQM19CQVNF KHBpcGUpLAotCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIG1kcDRfa21zLT5pZCwgMykpOwor CQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIGttcy0+YXNwYWNlLCAzKSk7CiAKIAlwbGFuZS0+ ZmIgPSBmYjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRw NV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jCmluZGV4 IGNlYjQ2NzMuLmY1YzQwNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2Ny dGMuYwpAQCAtMTY1LDcgKzE2NSw3IEBAIHN0YXRpYyB2b2lkIHVucmVmX2N1cnNvcl93b3JrZXIo c3RydWN0IGRybV9mbGlwX3dvcmsgKndvcmssIHZvaWQgKnZhbCkKIAkJY29udGFpbmVyX29mKHdv cmssIHN0cnVjdCBtZHA1X2NydGMsIHVucmVmX2N1cnNvcl93b3JrKTsKIAlzdHJ1Y3QgbWRwNV9r bXMgKm1kcDVfa21zID0gZ2V0X2ttcygmbWRwNV9jcnRjLT5iYXNlKTsKIAotCW1zbV9nZW1fcHV0 X2lvdmEodmFsLCBtZHA1X2ttcy0+aWQpOworCW1zbV9nZW1fcHV0X2lvdmEodmFsLCBtZHA1X2tt cy0+YmFzZS5iYXNlLmFzcGFjZSk7CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2Nr ZWQodmFsKTsKIH0KIApAQCAtNTYxLDcgKzU2MSw4IEBAIHN0YXRpYyBpbnQgbWRwNV9jcnRjX2N1 cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmICghY3Vyc29yX2JvKQogCQlyZXR1 cm4gLUVOT0VOVDsKIAotCXJldCA9IG1zbV9nZW1fZ2V0X2lvdmEoY3Vyc29yX2JvLCBtZHA1X2tt cy0+aWQsICZjdXJzb3JfYWRkcik7CisJcmV0ID0gbXNtX2dlbV9nZXRfaW92YShjdXJzb3JfYm8s IG1kcDVfa21zLT5iYXNlLmJhc2UuYXNwYWNlLAorCQkmY3Vyc29yX2FkZHIpOwogCWlmIChyZXQp CiAJCXJldHVybiAtRUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21k cC9tZHA1L21kcDVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21z LmMKaW5kZXggOWQyMTMxNy4uODg5ZGQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNS9tZHA1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUv bWRwNV9rbXMuYwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyB2b2lkIG1kcDVfc2V0X2VuY29k ZXJfbW9kZShzdHJ1Y3QgbXNtX2ttcyAqa21zLAogc3RhdGljIHZvaWQgbWRwNV9rbXNfZGVzdHJv eShzdHJ1Y3QgbXNtX2ttcyAqa21zKQogewogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0 b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOwotCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3Bh Y2UgKmFzcGFjZSA9IG1kcDVfa21zLT5hc3BhY2U7CisJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19z cGFjZSAqYXNwYWNlID0ga21zLT5hc3BhY2U7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg bWRwNV9rbXMtPm51bV9od3BpcGVzOyBpKyspCkBAIC03MzQsNyArNzM0LDcgQEAgc3RydWN0IG1z bV9rbXMgKm1kcDVfa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCWdvdG8gZmFp bDsKIAkJfQogCi0JCW1kcDVfa21zLT5hc3BhY2UgPSBhc3BhY2U7CisJCWttcy0+YXNwYWNlID0g YXNwYWNlOwogCiAJCXJldCA9IGFzcGFjZS0+bW11LT5mdW5jcy0+YXR0YWNoKGFzcGFjZS0+bW11 LCBpb21tdV9wb3J0cywKIAkJCQlBUlJBWV9TSVpFKGlvbW11X3BvcnRzKSk7CkBAIC03NDksMTMg Kzc0OSw2IEBAIHN0cnVjdCBtc21fa21zICptZHA1X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCWFzcGFjZSA9IE5VTEw7OwogCX0KIAotCW1kcDVfa21zLT5pZCA9IG1zbV9yZWdp c3Rlcl9hZGRyZXNzX3NwYWNlKGRldiwgYXNwYWNlKTsKLQlpZiAobWRwNV9rbXMtPmlkIDwgMCkg ewotCQlyZXQgPSBtZHA1X2ttcy0+aWQ7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0 byByZWdpc3RlciBtZHA1IGlvbW11OiAlZFxuIiwgcmV0KTsKLQkJZ290byBmYWlsOwotCX0KLQog CXJldCA9IG1vZGVzZXRfaW5pdChtZHA1X2ttcyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZw ZGV2LT5kZXYsICJtb2Rlc2V0X2luaXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAppbmRleCA4YmE2ZGQ4Li5jMGEwMzA0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oCkBAIC00OCwxMCArNDgsNiBAQCBzdHJ1 Y3QgbWRwNV9rbXMgewogCXN0cnVjdCBtZHA1X3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3QgZHJtX21v ZGVzZXRfbG9jayBzdGF0ZV9sb2NrOwogCi0JLyogbWFwcGVyLWlkIHVzZWQgdG8gcmVxdWVzdCBH RU0gYnVmZmVyIG1hcHBlZCBmb3Igc2Nhbm91dDogKi8KLQlpbnQgaWQ7Ci0Jc3RydWN0IG1zbV9n ZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlOwotCiAJc3RydWN0IG1kcDVfc21wICpzbXA7CiAJc3Ry dWN0IG1kcDVfY3RsX21hbmFnZXIgKmN0bG07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X3BsYW5lLmMKaW5kZXggMzIwNzFlMi4uOGEzNzQyMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0aWMgaW50 IG1kcDVfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0dXJu IDA7CiAKIAlEQkcoIiVzOiBwcmVwYXJlOiBGQlsldV0iLCBwbGFuZS0+bmFtZSwgZmItPmJhc2Uu aWQpOwotCXJldHVybiBtc21fZnJhbWVidWZmZXJfcHJlcGFyZShmYiwgbWRwNV9rbXMtPmlkKTsK KwlyZXR1cm4gbXNtX2ZyYW1lYnVmZmVyX3ByZXBhcmUoZmIsIG1kcDVfa21zLT5iYXNlLmJhc2Uu YXNwYWNlKTsKIH0KIAogc3RhdGljIHZvaWQgbWRwNV9wbGFuZV9jbGVhbnVwX2ZiKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLApAQCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyB2b2lkIG1kcDVfcGxh bmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0dXJuOwogCiAJREJH KCIlczogY2xlYW51cDogRkJbJXVdIiwgcGxhbmUtPm5hbWUsIGZiLT5iYXNlLmlkKTsKLQltc21f ZnJhbWVidWZmZXJfY2xlYW51cChmYiwgbWRwNV9rbXMtPmlkKTsKKwltc21fZnJhbWVidWZmZXJf Y2xlYW51cChmYiwgbWRwNV9rbXMtPmJhc2UuYmFzZS5hc3BhY2UpOwogfQogCiAjZGVmaW5lIEZS QUNfMTZfMTYobXVsdCwgZGl2KSAgICAoKChtdWx0KSA8PCAxNikgLyAoZGl2KSkKQEAgLTQ0Myw2 ICs0NDMsNyBAQCBzdGF0aWMgdm9pZCBzZXRfc2Nhbm91dF9sb2NrZWQoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewogCXN0cnVjdCBtZHA1 X2ttcyAqbWRwNV9rbXMgPSBnZXRfa21zKHBsYW5lKTsKKwlzdHJ1Y3QgbXNtX2ttcyAqa21zID0g Jm1kcDVfa21zLT5iYXNlLmJhc2U7CiAJc3RydWN0IG1kcDVfaHdfcGlwZSAqaHdwaXBlID0gdG9f bWRwNV9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpLT5od3BpcGU7CiAJZW51bSBtZHA1X3BpcGUg cGlwZSA9IGh3cGlwZS0+cGlwZTsKIApAQCAtNDU1LDEzICs0NTYsMTMgQEAgc3RhdGljIHZvaWQg c2V0X3NjYW5vdXRfbG9ja2VkKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJTURQNV9QSVBF X1NSQ19TVFJJREVfQl9QMyhmYi0+cGl0Y2hlc1szXSkpOwogCiAJbWRwNV93cml0ZShtZHA1X2tt cywgUkVHX01EUDVfUElQRV9TUkMwX0FERFIocGlwZSksCi0JCQltc21fZnJhbWVidWZmZXJfaW92 YShmYiwgbWRwNV9rbXMtPmlkLCAwKSk7CisJCQltc21fZnJhbWVidWZmZXJfaW92YShmYiwga21z LT5hc3BhY2UsIDApKTsKIAltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9QSVBFX1NSQzFf QUREUihwaXBlKSwKLQkJCW1zbV9mcmFtZWJ1ZmZlcl9pb3ZhKGZiLCBtZHA1X2ttcy0+aWQsIDEp KTsKKwkJCW1zbV9mcmFtZWJ1ZmZlcl9pb3ZhKGZiLCBrbXMtPmFzcGFjZSwgMSkpOwogCW1kcDVf d3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1BJUEVfU1JDMl9BRERSKHBpcGUpLAotCQkJbXNtX2Zy YW1lYnVmZmVyX2lvdmEoZmIsIG1kcDVfa21zLT5pZCwgMikpOworCQkJbXNtX2ZyYW1lYnVmZmVy X2lvdmEoZmIsIGttcy0+YXNwYWNlLCAyKSk7CiAJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01E UDVfUElQRV9TUkMzX0FERFIocGlwZSksCi0JCQltc21fZnJhbWVidWZmZXJfaW92YShmYiwgbWRw NV9rbXMtPmlkLCAzKSk7CisJCQltc21fZnJhbWVidWZmZXJfaW92YShmYiwga21zLT5hc3BhY2Us IDMpKTsKIAogCXBsYW5lLT5mYiA9IGZiOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwppbmRleCA5MjM3 NWFjLi5iMDNlNzg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpAQCAtNTEsMTkgKzUxLDYgQEAgc3Rh dGljIHZvaWQgbXNtX2ZiX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkuYXRvbWljX3N0YXRlX2ZyZWUgPSBtc21fYXRvbWljX3N0YXRlX2ZyZWUsCiB9OwogCi1p bnQgbXNtX3JlZ2lzdGVyX2FkZHJlc3Nfc3BhY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJ c3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlKQotewotCXN0cnVjdCBtc21fZHJt X3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JaWYgKFdBUk5fT04ocHJpdi0+ bnVtX2FzcGFjZXMgPj0gQVJSQVlfU0laRShwcml2LT5hc3BhY2UpKSkKLQkJcmV0dXJuIC1FSU5W QUw7Ci0KLQlwcml2LT5hc3BhY2VbcHJpdi0+bnVtX2FzcGFjZXNdID0gYXNwYWNlOwotCi0JcmV0 dXJuIHByaXYtPm51bV9hc3BhY2VzKys7Ci19Ci0KICNpZmRlZiBDT05GSUdfRFJNX01TTV9SRUdJ U1RFUl9MT0dHSU5HCiBzdGF0aWMgYm9vbCByZWdsb2cgPSBmYWxzZTsKIE1PRFVMRV9QQVJNX0RF U0MocmVnbG9nLCAiRW5hYmxlIHJlZ2lzdGVyIHJlYWQvd3JpdGUgbG9nZ2luZyIpOwpAQCAtNzAz LDcgKzY5MCw3IEBAIHN0YXRpYyBpbnQgbXNtX2lvY3RsX2dlbV9pbmZvX2lvdmEoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlpZiAoIXByaXYtPmdwdSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQly ZXR1cm4gbXNtX2dlbV9nZXRfaW92YShvYmosIHByaXYtPmdwdS0+aWQsIGlvdmEpOworCXJldHVy biBtc21fZ2VtX2dldF9pb3ZhKG9iaiwgcHJpdi0+Z3B1LT5hc3BhY2UsIGlvdmEpOwogfQogCiBz dGF0aWMgaW50IG1zbV9pb2N0bF9nZW1faW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAppbmRleCBjZGQ3YjJmLi45OTYyMjdjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9kcnYuaApAQCAtMTgzLDkgKzE4Myw2IEBAIGludCBtc21fYXRvbWljX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogdm9pZCBtc21fYXRvbWljX3N0YXRlX2NsZWFyKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiB2b2lkIG1zbV9hdG9taWNfc3RhdGVfZnJlZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCi1pbnQgbXNtX3JlZ2lzdGVyX2FkZHJl c3Nfc3BhY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IG1zbV9nZW1fYWRkcmVz c19zcGFjZSAqYXNwYWNlKTsKLQogdm9pZCBtc21fZ2VtX3VubWFwX3ZtYShzdHJ1Y3QgbXNtX2dl bV9hZGRyZXNzX3NwYWNlICphc3BhY2UsCiAJCXN0cnVjdCBtc21fZ2VtX3ZtYSAqdm1hLCBzdHJ1 Y3Qgc2dfdGFibGUgKnNndCk7CiBpbnQgbXNtX2dlbV9tYXBfdm1hKHN0cnVjdCBtc21fZ2VtX2Fk ZHJlc3Nfc3BhY2UgKmFzcGFjZSwKQEAgLTIwOCwxMyArMjA1LDE2IEBAIGludCBtc21fZ2VtX21t YXBfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogaW50IG1zbV9nZW1fbW1hcChzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogaW50IG1zbV9nZW1f ZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKTsK IHVpbnQ2NF90IG1zbV9nZW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmop OwotaW50IG1zbV9nZW1fZ2V0X2lvdmFfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq LCBpbnQgaWQsCi0JCXVpbnQ2NF90ICppb3ZhKTsKLWludCBtc21fZ2VtX2dldF9pb3ZhKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgaWQsIHVpbnQ2NF90ICppb3ZhKTsKLXVpbnQ2NF90 IG1zbV9nZW1faW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGlkKTsKK2ludCBt c21fZ2VtX2dldF9pb3ZhX2xvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJc3Ry dWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlLCB1aW50NjRfdCAqaW92YSk7CitpbnQg bXNtX2dlbV9nZXRfaW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJc3RydWN0IG1z bV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlLCB1aW50NjRfdCAqaW92YSk7Cit1aW50NjRfdCBt c21fZ2VtX2lvdmEoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCisJCXN0cnVjdCBtc21fZ2Vt X2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSk7CiBzdHJ1Y3QgcGFnZSAqKm1zbV9nZW1fZ2V0X3BhZ2Vz KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgbXNtX2dlbV9wdXRfcGFnZXMoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCBtc21fZ2VtX3B1dF9pb3ZhKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgaWQpOwordm9pZCBtc21fZ2VtX3B1dF9pb3ZhKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLAorCQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICph c3BhY2UpOwogaW50IG1zbV9nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLCBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFy Z3MpOwogaW50IG1zbV9nZW1fZHVtYl9tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwg c3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTI0OSw5ICsyNDksMTIgQEAgc3RydWN0IGRybV9n ZW1fb2JqZWN0ICptc21fZ2VtX25ldyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogc3RydWN0IGRy bV9nZW1fb2JqZWN0ICptc21fZ2VtX2ltcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlz dHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7CiAKLWludCBtc21f ZnJhbWVidWZmZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGlkKTsK LXZvaWQgbXNtX2ZyYW1lYnVmZmVyX2NsZWFudXAoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs IGludCBpZCk7Ci11aW50MzJfdCBtc21fZnJhbWVidWZmZXJfaW92YShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgaW50IGlkLCBpbnQgcGxhbmUpOworaW50IG1zbV9mcmFtZWJ1ZmZlcl9wcmVw YXJlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNz X3NwYWNlICphc3BhY2UpOwordm9pZCBtc21fZnJhbWVidWZmZXJfY2xlYW51cChzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKKwkJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNl KTsKK3VpbnQzMl90IG1zbV9mcmFtZWJ1ZmZlcl9pb3ZhKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAorCQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2UsIGludCBwbGFuZSk7 CiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm1zbV9mcmFtZWJ1ZmZlcl9ibyhzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwgaW50IHBsYW5lKTsKIGNvbnN0IHN0cnVjdCBtc21fZm9ybWF0ICptc21f ZnJhbWVidWZmZXJfZm9ybWF0KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKm1zbV9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZmIuYwppbmRleCA5YWNmNTQ0Li5jZWRhZGJmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2ZiLmMKQEAgLTg0LDE0ICs4NCwxNSBAQCB2b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXNjcmliZShz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgc3RydWN0IHNlcV9maWxlICptKQogICogc2hvdWxk IGJlIGZpbmUsIHNpbmNlIG9ubHkgdGhlIHNjYW5vdXQgKG1kcE4pIHNpZGUgb2YgdGhpbmdzIG5l ZWRzCiAgKiB0aGlzLCB0aGUgZ3B1IGRvZXNuJ3QgY2FyZSBhYm91dCBmYidzLgogICovCi1pbnQg bXNtX2ZyYW1lYnVmZmVyX3ByZXBhcmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBp ZCkKK2ludCBtc21fZnJhbWVidWZmZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwKKwkJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlKQogewogCXN0cnVjdCBt c21fZnJhbWVidWZmZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFtZWJ1ZmZlcihmYik7CiAJaW50IHJl dCwgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4ZWxfZm9ybWF0KTsKIAl1aW50 NjRfdCBpb3ZhOwogCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewotCQlyZXQgPSBtc21fZ2Vt X2dldF9pb3ZhKG1zbV9mYi0+cGxhbmVzW2ldLCBpZCwgJmlvdmEpOworCQlyZXQgPSBtc21fZ2Vt X2dldF9pb3ZhKG1zbV9mYi0+cGxhbmVzW2ldLCBhc3BhY2UsICZpb3ZhKTsKIAkJREJHKCJGQlsl dV06IGlvdmFbJWRdOiAlMDhsbHggKCVkKSIsIGZiLT5iYXNlLmlkLCBpLCBpb3ZhLCByZXQpOwog CQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTEwMCwyMSArMTAxLDIzIEBAIGludCBtc21f ZnJhbWVidWZmZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGlkKQog CXJldHVybiAwOwogfQogCi12b2lkIG1zbV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgaWQpCit2b2lkIG1zbV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNl ICphc3BhY2UpCiB7CiAJc3RydWN0IG1zbV9mcmFtZWJ1ZmZlciAqbXNtX2ZiID0gdG9fbXNtX2Zy YW1lYnVmZmVyKGZiKTsKIAlpbnQgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4 ZWxfZm9ybWF0KTsKIAogCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCi0JCW1zbV9nZW1fcHV0X2lv dmEobXNtX2ZiLT5wbGFuZXNbaV0sIGlkKTsKKwkJbXNtX2dlbV9wdXRfaW92YShtc21fZmItPnBs YW5lc1tpXSwgYXNwYWNlKTsKIH0KIAotdWludDMyX3QgbXNtX2ZyYW1lYnVmZmVyX2lvdmEoc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBpZCwgaW50IHBsYW5lKQordWludDMyX3QgbXNt X2ZyYW1lYnVmZmVyX2lvdmEoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCXN0cnVjdCBt c21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSwgaW50IHBsYW5lKQogewogCXN0cnVjdCBtc21f ZnJhbWVidWZmZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFtZWJ1ZmZlcihmYik7CiAJaWYgKCFtc21f ZmItPnBsYW5lc1twbGFuZV0pCiAJCXJldHVybiAwOwotCXJldHVybiBtc21fZ2VtX2lvdmEobXNt X2ZiLT5wbGFuZXNbcGxhbmVdLCBpZCkgKyBmYi0+b2Zmc2V0c1twbGFuZV07CisJcmV0dXJuIG1z bV9nZW1faW92YShtc21fZmItPnBsYW5lc1twbGFuZV0sIGFzcGFjZSkgKyBmYi0+b2Zmc2V0c1tw bGFuZV07CiB9CiAKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXNtX2ZyYW1lYnVmZmVyX2JvKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYu YwppbmRleCBlOGY0MWViLi4wYjViODM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiZGV2LmMKQEAgLTIw LDYgKzIwLDcgQEAKICNpbmNsdWRlICJkcm1fY3J0Yy5oIgogI2luY2x1ZGUgImRybV9mYl9oZWxw ZXIuaCIKICNpbmNsdWRlICJtc21fZ2VtLmgiCisjaW5jbHVkZSAibXNtX2ttcy5oIgogCiBleHRl cm4gaW50IG1zbV9nZW1fbW1hcF9vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJ CXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKQEAgLTc4LDYgKzc5LDcgQEAgc3RhdGljIGlu dCBtc21fZmJkZXZfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiB7CiAJc3Ry dWN0IG1zbV9mYmRldiAqZmJkZXYgPSB0b19tc21fZmJkZXYoaGVscGVyKTsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaGVscGVyLT5kZXY7CisJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBOVUxM OwogCXN0cnVjdCBmYl9pbmZvICpmYmkgPSBOVUxMOwogCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQy IG1vZGVfY21kID0gezB9OwpAQCAtMTI5LDcgKzEzMSwxMyBAQCBzdGF0aWMgaW50IG1zbV9mYmRl dl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkgKiBpbiBwYW5pYyAoaWUu IGxvY2stc2FmZSwgZXRjKSB3ZSBjb3VsZCBhdm9pZCBwaW5uaW5nIHRoZQogCSAqIGJ1ZmZlciBu b3c6CiAJICovCi0JcmV0ID0gbXNtX2dlbV9nZXRfaW92YV9sb2NrZWQoZmJkZXYtPmJvLCAwLCAm cGFkZHIpOworCisJaWYgKCFwcml2LT5rbXMpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBm YWlsX3VubG9jazsKKwl9CisKKwlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhX2xvY2tlZChmYmRldi0+ Ym8sIHByaXYtPmttcy0+YXNwYWNlLCAmcGFkZHIpOwogCWlmIChyZXQpIHsKIAkJZGV2X2Vycihk ZXYtPmRldiwgImZhaWxlZCB0byBnZXQgYnVmZmVyIG9iaiBpb3ZhOiAlZFxuIiwgcmV0KTsKIAkJ Z290byBmYWlsX3VubG9jazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dl bS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKaW5kZXggOGQ2ZjJlMi4uNGMzZTZl ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKQEAgLTI4NSwyMiArMjg1LDU3IEBAIHVpbnQ2NF90IG1z bV9nZW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJcmV0dXJuIG9m ZnNldDsKIH0KIAorc3RhdGljIHZvaWQgb2JqX3JlbW92ZV9kb21haW4oc3RydWN0IG1zbV9nZW1f dm1hICpkb21haW4pCit7CisJaWYgKGRvbWFpbikgeworCQlsaXN0X2RlbCgmZG9tYWluLT5saXN0 KTsKKwkJa2ZyZWUoZG9tYWluKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkCiBwdXRfaW92YShzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2Jq LT5kZXY7Ci0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IG9iai0+ZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsK LQlpbnQgaWQ7CisJc3RydWN0IG1zbV9nZW1fdm1hICpkb21haW4sICp0bXA7CiAKIAlXQVJOX09O KCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CiAKLQlmb3IgKGlkID0gMDsg aWQgPCBBUlJBWV9TSVpFKG1zbV9vYmotPmRvbWFpbik7IGlkKyspIHsKLQkJaWYgKCFwcml2LT5h c3BhY2VbaWRdKQotCQkJY29udGludWU7Ci0JCW1zbV9nZW1fdW5tYXBfdm1hKHByaXYtPmFzcGFj ZVtpZF0sCi0JCQkJJm1zbV9vYmotPmRvbWFpbltpZF0sIG1zbV9vYmotPnNndCk7CisJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKGRvbWFpbiwgdG1wLCAmbXNtX29iai0+ZG9tYWlucywgbGlzdCkg eworCQltc21fZ2VtX3VubWFwX3ZtYShkb21haW4tPmFzcGFjZSwgZG9tYWluLCBtc21fb2JqLT5z Z3QpOworCQlvYmpfcmVtb3ZlX2RvbWFpbihkb21haW4pOworCX0KK30KKworc3RhdGljIHN0cnVj dCBtc21fZ2VtX3ZtYSAqb2JqX2FkZF9kb21haW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmos CisJCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSkKK3sKKwlzdHJ1Y3QgbXNt X2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKKwlzdHJ1Y3QgbXNtX2dlbV92 bWEgKmRvbWFpbiA9IGt6YWxsb2Moc2l6ZW9mKCpkb21haW4pLCBHRlBfS0VSTkVMKTsKKworCWlm ICghZG9tYWluKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWRvbWFpbi0+YXNwYWNl ID0gYXNwYWNlOworCisJbGlzdF9hZGRfdGFpbCgmZG9tYWluLT5saXN0LCAmbXNtX29iai0+ZG9t YWlucyk7CisKKwlyZXR1cm4gZG9tYWluOworfQorCitzdGF0aWMgc3RydWN0IG1zbV9nZW1fdm1h ICpvYmpfZ2V0X2RvbWFpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJc3RydWN0IG1z bV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlKQoreworCXN0cnVjdCBtc21fZ2VtX29iamVjdCAq bXNtX29iaiA9IHRvX21zbV9ibyhvYmopOworCXN0cnVjdCBtc21fZ2VtX3ZtYSAqZG9tYWluOwor CisJbGlzdF9mb3JfZWFjaF9lbnRyeShkb21haW4sICZtc21fb2JqLT5kb21haW5zLCBsaXN0KSB7 CisJCWlmIChkb21haW4tPmFzcGFjZSA9PSBhc3BhY2UpCisJCQlyZXR1cm4gZG9tYWluOwogCX0K KworCXJldHVybiBOVUxMOwogfQogCiAvKiBzaG91bGQgYmUgY2FsbGVkIHVuZGVyIHN0cnVjdF9t dXRleC4uIGFsdGhvdWdoIGl0IGNhbiBiZSBjYWxsZWQKQEAgLTMxMCw0OSArMzQ1LDY0IEBAIHVp bnQ2NF90IG1zbV9nZW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAg KiBUaGF0IG1lYW5zIHdoZW4gSSBkbyBldmVudHVhbGx5IG5lZWQgdG8gYWRkIHN1cHBvcnQgZm9y IHVucGlubmluZwogICogdGhlIHJlZmNudCBjb3VudGVyIG5lZWRzIHRvIGJlIGF0b21pY190Lgog ICovCi1pbnQgbXNtX2dlbV9nZXRfaW92YV9sb2NrZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpv YmosIGludCBpZCwKLQkJdWludDY0X3QgKmlvdmEpCitpbnQgbXNtX2dlbV9nZXRfaW92YV9sb2Nr ZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCisJCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nf c3BhY2UgKmFzcGFjZSwgdWludDY0X3QgKmlvdmEpCiB7CiAJc3RydWN0IG1zbV9nZW1fb2JqZWN0 ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7CisJc3RydWN0IHBhZ2UgKipwYWdlczsKKwlzdHJ1 Y3QgbXNtX2dlbV92bWEgKmRvbWFpbjsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICghbXNtX29iai0+ ZG9tYWluW2lkXS5pb3ZhKSB7Ci0JCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBvYmot PmRldi0+ZGV2X3ByaXZhdGU7Ci0JCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBnZXRfcGFnZXMob2Jq KTsKKwlpZiAoIWlvbW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKSkgeworCQlwYWdlcyA9 IGdldF9wYWdlcyhvYmopOwogCiAJCWlmIChJU19FUlIocGFnZXMpKQogCQkJcmV0dXJuIFBUUl9F UlIocGFnZXMpOwogCi0JCWlmIChpb21tdV9wcmVzZW50KCZwbGF0Zm9ybV9idXNfdHlwZSkpIHsK LQkJCXJldCA9IG1zbV9nZW1fbWFwX3ZtYShwcml2LT5hc3BhY2VbaWRdLCAmbXNtX29iai0+ZG9t YWluW2lkXSwKLQkJCQkJbXNtX29iai0+c2d0LCBvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Ci0J CX0gZWxzZSB7Ci0JCQltc21fb2JqLT5kb21haW5baWRdLmlvdmEgPSBwaHlzYWRkcihvYmopOwor CQkqaW92YSA9IHBoeXNhZGRyKG9iaik7CisJCXJldHVybiAwOworCX0KKworCWRvbWFpbiA9IG9i al9nZXRfZG9tYWluKG9iaiwgYXNwYWNlKTsKKworCWlmICghZG9tYWluKSB7CisJCWRvbWFpbiA9 IG9ial9hZGRfZG9tYWluKG9iaiwgYXNwYWNlKTsKKwkJaWYgKElTX0VSUihkb21haW4pKQorCQkJ cmV0dXJuICBQVFJfRVJSKGRvbWFpbik7CisKKwkJcGFnZXMgPSBnZXRfcGFnZXMob2JqKTsKKwkJ aWYgKElTX0VSUihwYWdlcykpIHsKKwkJCW9ial9yZW1vdmVfZG9tYWluKGRvbWFpbik7CisJCQly ZXR1cm4gUFRSX0VSUihwYWdlcyk7CiAJCX0KKworCQlyZXQgPSBtc21fZ2VtX21hcF92bWEoYXNw YWNlLCBkb21haW4sIG1zbV9vYmotPnNndCwKKwkJCW9iai0+c2l6ZSA+PiBQQUdFX1NISUZUKTsK IAl9CiAKIAlpZiAoIXJldCkKLQkJKmlvdmEgPSBtc21fb2JqLT5kb21haW5baWRdLmlvdmE7CisJ CSppb3ZhID0gZG9tYWluLT5pb3ZhOworCWVsc2UKKwkJb2JqX3JlbW92ZV9kb21haW4oZG9tYWlu KTsKIAogCXJldHVybiByZXQ7CiB9CiAKIC8qIGdldCBpb3ZhLCB0YWtpbmcgYSByZWZlcmVuY2Uu ICBTaG91bGQgaGF2ZSBhIG1hdGNoaW5nIHB1dCAqLwotaW50IG1zbV9nZW1fZ2V0X2lvdmEoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBpZCwgdWludDY0X3QgKmlvdmEpCitpbnQgbXNt X2dlbV9nZXRfaW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJc3RydWN0IG1zbV9n ZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlLCB1aW50NjRfdCAqaW92YSkKIHsKLQlzdHJ1Y3QgbXNt X2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKKwlzdHJ1Y3QgbXNtX2dlbV92 bWEgKmRvbWFpbjsKIAlpbnQgcmV0OwogCi0JLyogdGhpcyBpcyBzYWZlIHJpZ2h0IG5vdyBiZWNh dXNlIHdlIGRvbid0IHVubWFwIHVudGlsIHRoZQotCSAqIGJvIGlzIGRlbGV0ZWQ6Ci0JICovCi0J aWYgKG1zbV9vYmotPmRvbWFpbltpZF0uaW92YSkgewotCQkqaW92YSA9IG1zbV9vYmotPmRvbWFp bltpZF0uaW92YTsKKwlkb21haW4gPSBvYmpfZ2V0X2RvbWFpbihvYmosIGFzcGFjZSk7CisJaWYg KGRvbWFpbikgeworCQkqaW92YSA9IGRvbWFpbi0+aW92YTsKIAkJcmV0dXJuIDA7CiAJfQogCiAJ bXV0ZXhfbG9jaygmb2JqLT5kZXYtPnN0cnVjdF9tdXRleCk7Ci0JcmV0ID0gbXNtX2dlbV9nZXRf aW92YV9sb2NrZWQob2JqLCBpZCwgaW92YSk7CisJcmV0ID0gbXNtX2dlbV9nZXRfaW92YV9sb2Nr ZWQob2JqLCBhc3BhY2UsIGlvdmEpOwogCW11dGV4X3VubG9jaygmb2JqLT5kZXYtPnN0cnVjdF9t dXRleCk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTM2MCwxNCArNDEwLDE4IEBAIGludCBtc21fZ2Vt X2dldF9pb3ZhKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgaWQsIHVpbnQ2NF90ICpp b3ZhKQogLyogZ2V0IGlvdmEgd2l0aG91dCB0YWtpbmcgYSByZWZlcmVuY2UsIHVzZWQgaW4gcGxh Y2VzIHdoZXJlIHlvdSBoYXZlCiAgKiBhbHJlYWR5IGRvbmUgYSAnbXNtX2dlbV9nZXRfaW92YSgp Jy4KICAqLwotdWludDY0X3QgbXNtX2dlbV9pb3ZhKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq LCBpbnQgaWQpCit1aW50NjRfdCBtc21fZ2VtX2lvdmEoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpv YmosCisJCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSkKIHsKLQlzdHJ1Y3Qg bXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKLQlXQVJOX09OKCFtc21f b2JqLT5kb21haW5baWRdLmlvdmEpOwotCXJldHVybiBtc21fb2JqLT5kb21haW5baWRdLmlvdmE7 CisJc3RydWN0IG1zbV9nZW1fdm1hICpkb21haW4gPSBvYmpfZ2V0X2RvbWFpbihvYmosIGFzcGFj ZSk7CisKKwlXQVJOX09OKCFkb21haW4pOworCisJcmV0dXJuIGRvbWFpbiA/IGRvbWFpbi0+aW92 YSA6IDA7CiB9CiAKLXZvaWQgbXNtX2dlbV9wdXRfaW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiwgaW50IGlkKQordm9pZCBtc21fZ2VtX3B1dF9pb3ZhKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqLAorCQlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2UpCiB7CiAJLy8g WFhYIFRPRE8gLi4KIAkvLyBOT1RFOiBwcm9iYWJseSBkb24ndCBuZWVkIGEgX2xvY2tlZCgpIHZl cnNpb24uLiB3ZSB3b3VsZG4ndApAQCAtNjIxLDExICs2NzUsMTAgQEAgdm9pZCBtc21fZ2VtX2Rl c2NyaWJlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAJ c3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7CiAJc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqcm9iaiA9IG1zbV9vYmotPnJlc3Y7CiAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYg PSBvYmotPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJdWlu dDY0X3Qgb2ZmID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZvYmotPnZtYV9ub2RlKTsKIAljb25zdCBj aGFyICptYWR2OwotCXVuc2lnbmVkIGlkOworCXN0cnVjdCBtc21fZ2VtX3ZtYSAqZG9tYWluOwog CiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZvYmotPmRldi0+c3RydWN0X211dGV4KSk7CiAK QEAgLTY0Nyw4ICs3MDAsOSBAQCB2b2lkIG1zbV9nZW1fZGVzY3JpYmUoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAkJCW9iai0+bmFtZSwgb2JqLT5yZWZj b3VudC5yZWZjb3VudC5jb3VudGVyLAogCQkJb2ZmLCBtc21fb2JqLT52YWRkcik7CiAKLQlmb3Ig KGlkID0gMDsgaWQgPCBwcml2LT5udW1fYXNwYWNlczsgaWQrKykKLQkJc2VxX3ByaW50ZihtLCAi ICUwOGxseCIsIG1zbV9vYmotPmRvbWFpbltpZF0uaW92YSk7CisJLyogRklYTUU6IHdlIG5lZWQg dG8gcHJpbnQgdGhlIGFkZHJlc3Mgc3BhY2UgaGVyZSB0b28gKi8KKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGRvbWFpbiwgJm1zbV9vYmotPmRvbWFpbnMsIGxpc3QpCisJCXNlcV9wcmludGYobSwgIiAl MDhsbHgiLCBkb21haW4tPmlvdmEpOwogCiAJc2VxX3ByaW50ZihtLCAiICV6dSVzXG4iLCBvYmot PnNpemUsIG1hZHYpOwogCkBAIC03ODMsOCArODM3LDEyIEBAIHN0YXRpYyBpbnQgbXNtX2dlbV9u ZXdfaW1wbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmICghbXNtX29iaikKIAkJcmV0dXJu IC1FTk9NRU07CiAKLQlpZiAodXNlX3ZyYW0pCi0JCW1zbV9vYmotPnZyYW1fbm9kZSA9ICZtc21f b2JqLT5kb21haW5bMF0ubm9kZTsKKwlpZiAodXNlX3ZyYW0pIHsKKwkJc3RydWN0IG1zbV9nZW1f dm1hICpkb21haW4gPSBvYmpfYWRkX2RvbWFpbigmbXNtX29iai0+YmFzZSwgMCk7CisJCS8qIEZJ WE1FOiBFcnJvciBoZXJlPyAqLworCQlpZiAoZG9tYWluKQorCQkJbXNtX29iai0+dnJhbV9ub2Rl ID0gJmRvbWFpbi0+bm9kZTsKKwl9CiAKIAltc21fb2JqLT5mbGFncyA9IGZsYWdzOwogCW1zbV9v YmotPm1hZHYgPSBNU01fTUFEVl9XSUxMTkVFRDsKQEAgLTc5Nyw2ICs4NTUsOCBAQCBzdGF0aWMg aW50IG1zbV9nZW1fbmV3X2ltcGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl9CiAKIAlJTklU X0xJU1RfSEVBRCgmbXNtX29iai0+c3VibWl0X2VudHJ5KTsKKwlJTklUX0xJU1RfSEVBRCgmbXNt X29iai0+ZG9tYWlucyk7CisKIAlsaXN0X2FkZF90YWlsKCZtc21fb2JqLT5tbV9saXN0LCAmcHJp di0+aW5hY3RpdmVfbGlzdCk7CiAKIAkqb2JqID0gJm1zbV9vYmotPmJhc2U7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dlbS5oCmluZGV4IDdkNTI5NTEuLjQwY2QwYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCkBAIC0z NSw3ICszNSw5IEBAIHN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgewogCiBzdHJ1Y3QgbXNt X2dlbV92bWEgewogCXN0cnVjdCBkcm1fbW1fbm9kZSBub2RlOworCXN0cnVjdCBtc21fZ2VtX2Fk ZHJlc3Nfc3BhY2UgKmFzcGFjZTsKIAl1aW50NjRfdCBpb3ZhOworCXN0cnVjdCBsaXN0X2hlYWQg bGlzdDsKIH07CiAKIHN0cnVjdCBtc21fZ2VtX29iamVjdCB7CkBAIC03NSw3ICs3Nyw3IEBAIHN0 cnVjdCBtc21fZ2VtX29iamVjdCB7CiAJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CiAJdm9pZCAqdmFk ZHI7CiAKLQlzdHJ1Y3QgbXNtX2dlbV92bWEgZG9tYWluW05VTV9ET01BSU5TXTsKKwlzdHJ1Y3Qg bGlzdF9oZWFkIGRvbWFpbnM7CiAKIAkvKiBub3JtYWxseSAocmVzdiA9PSAmX3Jlc3YpIGV4Y2Vw dCBmb3IgaW1wb3J0ZWQgYm8ncyAqLwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3Y7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKaW5kZXggMTE3MmZlNy4uODQxOTY4MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0 YXRpYyB2b2lkIHN1Ym1pdF91bmxvY2tfdW5waW5fYm8oc3RydWN0IG1zbV9nZW1fc3VibWl0ICpz dWJtaXQsIGludCBpKQogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHN1Ym1pdC0+ Ym9zW2ldLm9iajsKIAogCWlmIChzdWJtaXQtPmJvc1tpXS5mbGFncyAmIEJPX1BJTk5FRCkKLQkJ bXNtX2dlbV9wdXRfaW92YSgmbXNtX29iai0+YmFzZSwgc3VibWl0LT5ncHUtPmlkKTsKKwkJbXNt X2dlbV9wdXRfaW92YSgmbXNtX29iai0+YmFzZSwgc3VibWl0LT5ncHUtPmFzcGFjZSk7CiAKIAlp ZiAoc3VibWl0LT5ib3NbaV0uZmxhZ3MgJiBCT19MT0NLRUQpCiAJCXd3X211dGV4X3VubG9jaygm bXNtX29iai0+cmVzdi0+bG9jayk7CkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIGludCBzdWJt aXRfcGluX29iamVjdHMoc3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQpCiAKIAkJLyogaWYg bG9ja2luZyBzdWNjZWVkZWQsIHBpbiBibzogKi8KIAkJcmV0ID0gbXNtX2dlbV9nZXRfaW92YV9s b2NrZWQoJm1zbV9vYmotPmJhc2UsCi0JCQkJc3VibWl0LT5ncHUtPmlkLCAmaW92YSk7CisJCQkJ c3VibWl0LT5ncHUtPmFzcGFjZSwgJmlvdmEpOwogCiAJCWlmIChyZXQpCiAJCQlicmVhazsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ3B1LmMKaW5kZXggZTg5MDkzYy4uMTY2MTBlZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1 LmMKQEAgLTQ1OCw3ICs0NTgsNyBAQCBzdGF0aWMgdm9pZCByZXRpcmVfc3VibWl0KHN0cnVjdCBt c21fZ3B1ICpncHUsIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0KQogCQlzdHJ1Y3QgbXNt X2dlbV9vYmplY3QgKm1zbV9vYmogPSBzdWJtaXQtPmJvc1tpXS5vYmo7CiAJCS8qIG1vdmUgdG8g aW5hY3RpdmU6ICovCiAJCW1zbV9nZW1fbW92ZV90b19pbmFjdGl2ZSgmbXNtX29iai0+YmFzZSk7 Ci0JCW1zbV9nZW1fcHV0X2lvdmEoJm1zbV9vYmotPmJhc2UsIGdwdS0+aWQpOworCQltc21fZ2Vt X3B1dF9pb3ZhKCZtc21fb2JqLT5iYXNlLCBncHUtPmFzcGFjZSk7CiAJCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlKCZtc21fb2JqLT5iYXNlKTsKIAl9CiAKQEAgLTUzOSw3ICs1MzksNyBAQCB2 b2lkIG1zbV9ncHVfc3VibWl0KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBtc21fZ2VtX3N1 Ym1pdCAqc3VibWl0LAogCQkvKiBzdWJtaXQgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIGJvIGFu ZCBpb3ZhIHVudGlsIHJldGlyZWQ6ICovCiAJCWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmbXNt X29iai0+YmFzZSk7CiAJCW1zbV9nZW1fZ2V0X2lvdmFfbG9ja2VkKCZtc21fb2JqLT5iYXNlLAot CQkJCXN1Ym1pdC0+Z3B1LT5pZCwgJmlvdmEpOworCQkJCXN1Ym1pdC0+Z3B1LT5hc3BhY2UsICZp b3ZhKTsKIAogCQlpZiAoc3VibWl0LT5ib3NbaV0uZmxhZ3MgJiBNU01fU1VCTUlUX0JPX1dSSVRF KQogCQkJbXNtX2dlbV9tb3ZlX3RvX2FjdGl2ZSgmbXNtX29iai0+YmFzZSwgZ3B1LCB0cnVlLCBz dWJtaXQtPmZlbmNlKTsKQEAgLTY3NCw4ICs2NzQsNiBAQCBpbnQgbXNtX2dwdV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJfSBlbHNl IHsKIAkJZGV2X2luZm8oZHJtLT5kZXYsICIlczogbm8gSU9NTVUsIGZhbGxiYWNrIHRvIFZSQU0g Y2FydmVvdXQhXG4iLCBuYW1lKTsKIAl9Ci0JZ3B1LT5pZCA9IG1zbV9yZWdpc3Rlcl9hZGRyZXNz X3NwYWNlKGRybSwgZ3B1LT5hc3BhY2UpOwotCiAKIAkvKiBDcmVhdGUgcmluZ2J1ZmZlcjogKi8K IAltdXRleF9sb2NrKCZkcm0tPnN0cnVjdF9tdXRleCk7CkBAIC03MDYsNyArNzA0LDcgQEAgdm9p ZCBtc21fZ3B1X2NsZWFudXAoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAogCWlmIChncHUtPnJiKSB7 CiAJCWlmIChncHUtPnJiX2lvdmEpCi0JCQltc21fZ2VtX3B1dF9pb3ZhKGdwdS0+cmItPmJvLCBn cHUtPmlkKTsKKwkJCW1zbV9nZW1fcHV0X2lvdmEoZ3B1LT5yYi0+Ym8sIGdwdS0+YXNwYWNlKTsK IAkJbXNtX3JpbmdidWZmZXJfZGVzdHJveShncHUtPnJiKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1 LmgKaW5kZXggMjY3NzIzZi4uYWQ2ZDEzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTk4LDcg Kzk4LDYgQEAgc3RydWN0IG1zbV9ncHUgewogCWludCBpcnE7CiAKIAlzdHJ1Y3QgbXNtX2dlbV9h ZGRyZXNzX3NwYWNlICphc3BhY2U7Ci0JaW50IGlkOwogCiAJLyogUG93ZXIgQ29udHJvbDogKi8K IAlzdHJ1Y3QgcmVndWxhdG9yICpncHVfcmVnLCAqZ3B1X2N4OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaApp bmRleCAxMTc2MzVkMi4uMDg3NjBmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKQEAgLTczLDYgKzcz LDkgQEAgc3RydWN0IG1zbV9rbXMgewogCiAJLyogaXJxIG51bWJlciB0byBiZSBwYXNzZWQgb24g dG8gZHJtX2lycV9pbnN0YWxsICovCiAJaW50IGlycTsKKworCS8qIG1hcHBlci1pZCB1c2VkIHRv IHJlcXVlc3QgR0VNIGJ1ZmZlciBtYXBwZWQgZm9yIHNjYW5vdXQ6ICovCisJc3RydWN0IG1zbV9n ZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlOwogfTsKIAogLyoqCi0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcg bGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==