From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH v4 4/6] drm/msm: strip down custom event ioctl's Date: Fri, 1 Jun 2018 10:45:51 -0700 Message-ID: <1527875153-27446-5-git-send-email-jsanka@codeaurora.org> References: <1527875153-27446-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1527875153-27446-1-git-send-email-jsanka@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: hoegsberg@google.com, Rajesh Yadav List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZlIGN1c3RvbSBpb2N0bCBzdXBwb3J0IGluIFNETTg0NSB3aGljaCBhbGxvd3MKdXNlciBz cGFjZSB0byByZWdpc3Rlci91bnJlZ2lzdGVyIGZvciBodyBldmVudHMuCgpjaGFuZ2VzIGluIHYy OgoJLSBub25lCmNoYW5nZXMgaW4gdjM6CgktIG5vbmUKY2hhbmdlcyBpbiB2NDoKCS0gbm9uZQoK UmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpTaWduZWQtb2Zm LWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgpTaWduZWQtb2Zm LWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KU2lnbmVkLW9mZi1ieTogUmFq ZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYyB8IDIxOCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oIHwgICAxIC0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyAgfCAgMzEgLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAgICAgICAgfCAyMDEgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggICAgICAgICAgICB8 ICAgMiAtCiA1IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0NTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKaW5kZXggZDU3MWFmMi4u YzBlODAzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Ny dGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC0z OSwzMSArMzksNiBAQAogI2luY2x1ZGUgImRwdV9jb3JlX3BlcmYuaCIKICNpbmNsdWRlICJkcHVf dHJhY2UuaCIKIAotc3RydWN0IGRwdV9jcnRjX2lycV9pbmZvIHsKLQlzdHJ1Y3QgZHB1X2lycV9j YWxsYmFjayBpcnE7Ci0JdTMyIGV2ZW50OwotCWludCAoKmZ1bmMpKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgYm9vbCBlbiwKLQkJCXN0cnVjdCBkcHVfaXJxX2NhbGxiYWNrICppcnEpOwotCXN0cnVj dCBsaXN0X2hlYWQgbGlzdDsKLX07Ci0KLXN0cnVjdCBkcHVfY3J0Y19jdXN0b21fZXZlbnRzIHsK LQl1MzIgZXZlbnQ7Ci0JaW50ICgqZnVuYykoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGVu LAotCQkJc3RydWN0IGRwdV9pcnFfY2FsbGJhY2sgKmlycSk7Ci19OwotCi1zdGF0aWMgaW50IGRw dV9jcnRjX3Bvd2VyX2ludGVycnVwdF9oYW5kbGVyKHN0cnVjdCBkcm1fY3J0YyAqY3J0Y19kcm0s Ci0JYm9vbCBlbiwgc3RydWN0IGRwdV9pcnFfY2FsbGJhY2sgKmFkX2lycSk7Ci1zdGF0aWMgaW50 IGRwdV9jcnRjX2lkbGVfaW50ZXJydXB0X2hhbmRsZXIoc3RydWN0IGRybV9jcnRjICpjcnRjX2Ry bSwKLQlib29sIGVuLCBzdHJ1Y3QgZHB1X2lycV9jYWxsYmFjayAqaWRsZV9pcnEpOwotCi1zdGF0 aWMgc3RydWN0IGRwdV9jcnRjX2N1c3RvbV9ldmVudHMgY3VzdG9tX2V2ZW50c1tdID0gewotCXtE Uk1fRVZFTlRfQURfQkFDS0xJR0hULCBkcHVfY3BfYWRfaW50ZXJydXB0fSwKLQl7RFJNX0VWRU5U X0NSVENfUE9XRVIsIGRwdV9jcnRjX3Bvd2VyX2ludGVycnVwdF9oYW5kbGVyfSwKLQl7RFJNX0VW RU5UX0lETEVfTk9USUZZLCBkcHVfY3J0Y19pZGxlX2ludGVycnVwdF9oYW5kbGVyfQotfTsKLQog LyogbGF5ZXIgbWl4ZXIgaW5kZXggb24gZHB1X2NydGMgKi8KICNkZWZpbmUgTEVGVF9NSVhFUiAw CiAjZGVmaW5lIFJJR0hUX01JWEVSIDEKQEAgLTI0NTUsOSArMjQzMCw2IEBAIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2hhbmRsZV9wb3dlcl9ldmVudCh1MzIgZXZlbnRfdHlwZSwgdm9pZCAqYXJnKQog CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgZHB1X2NydGNfbWl4ZXIgKm07 CiAJdTMyIGksIG1pc3Jfc3RhdHVzOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGRw dV9jcnRjX2lycV9pbmZvICpub2RlID0gTlVMTDsKLQlpbnQgcmV0ID0gMDsKIAogCWlmICghY3J0 YykgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7CkBAIC0yNDc5LDE3ICsyNDUxLDYg QEAgc3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2ZW50KHUzMiBldmVudF90eXBl LCB2b2lkICphcmcpCiAJCQlkcHVfZW5jb2Rlcl92aXJ0X3Jlc3RvcmUoZW5jb2Rlcik7CiAJCX0K IAotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZHB1X2NydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCQls aXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZkcHVfY3J0Yy0+dXNlcl9ldmVudF9saXN0LCBsaXN0 KSB7Ci0JCQlyZXQgPSAwOwotCQkJaWYgKG5vZGUtPmZ1bmMpCi0JCQkJcmV0ID0gbm9kZS0+ZnVu YyhjcnRjLCB0cnVlLCAmbm9kZS0+aXJxKTsKLQkJCWlmIChyZXQpCi0JCQkJRFBVX0VSUk9SKCIl cyBmYWlsZWQgdG8gZW5hYmxlIGV2ZW50ICV4XG4iLAotCQkJCQkJZHB1X2NydGMtPm5hbWUsIG5v ZGUtPmV2ZW50KTsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcHVfY3J0Yy0+c3Bp bl9sb2NrLCBmbGFncyk7Ci0KIAkJZHB1X2NwX2NydGNfcG9zdF9pcGMoY3J0Yyk7CiAKIAkJZm9y IChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsKQEAgLTI1MTQsMTggKzI0 NzUsNiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19oYW5kbGVfcG93ZXJfZXZlbnQodTMyIGV2ZW50 X3R5cGUsIHZvaWQgKmFyZykKIAkJCQkJCQlkcHVfY3J0Yy0+bWlzcl9kYXRhW2ldOwogCQl9CiAK LQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRwdV9jcnRjLT5zcGluX2xvY2ssIGZsYWdzKTsKLQkJbm9k ZSA9IE5VTEw7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgJmRwdV9jcnRjLT51c2VyX2V2 ZW50X2xpc3QsIGxpc3QpIHsKLQkJCXJldCA9IDA7Ci0JCQlpZiAobm9kZS0+ZnVuYykKLQkJCQly ZXQgPSBub2RlLT5mdW5jKGNydGMsIGZhbHNlLCAmbm9kZS0+aXJxKTsKLQkJCWlmIChyZXQpCi0J CQkJRFBVX0VSUk9SKCIlcyBmYWlsZWQgdG8gZGlzYWJsZSBldmVudCAleFxuIiwKLQkJCQkJCWRw dV9jcnRjLT5uYW1lLCBub2RlLT5ldmVudCk7Ci0JCX0KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZHB1X2NydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCiAJCWRwdV9jcF9jcnRjX3ByZV9pcGMo Y3J0Yyk7CiAJCWJyZWFrOwogCWNhc2UgRFBVX1BPV0VSX0VWRU5UX1BPU1RfRElTQUJMRToKQEAg LTI1NTMsOCArMjUwMiw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OwotCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGRwdV9jcnRjX2lycV9pbmZvICpub2RlID0gTlVM TDsKIAlzdHJ1Y3QgZHJtX2V2ZW50IGV2ZW50OwogCXUzMiBwb3dlcl9vbjsKIAlpbnQgcmV0OwpA QCAtMjYxNCwxNyArMjU2MSw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogCQlhdG9taWNfc2V0KCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZywg MCk7CiAJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRwdV9jcnRjLT5zcGluX2xvY2ssIGZsYWdz KTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZkcHVfY3J0Yy0+dXNlcl9ldmVudF9saXN0 LCBsaXN0KSB7Ci0JCXJldCA9IDA7Ci0JCWlmIChub2RlLT5mdW5jKQotCQkJcmV0ID0gbm9kZS0+ ZnVuYyhjcnRjLCBmYWxzZSwgJm5vZGUtPmlycSk7Ci0JCWlmIChyZXQpCi0JCQlEUFVfRVJST1Io IiVzIGZhaWxlZCB0byBkaXNhYmxlIGV2ZW50ICV4XG4iLAotCQkJCQlkcHVfY3J0Yy0+bmFtZSwg bm9kZS0+ZXZlbnQpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcHVfY3J0Yy0+c3Bp bl9sb2NrLCBmbGFncyk7Ci0KIAlkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKGNydGMsIDAsIHRy dWUpOwogCiAJZHJtX2Zvcl9lYWNoX2VuY29kZXIoZW5jb2RlciwgY3J0Yy0+ZGV2KSB7CkBAIC0y NjU2LDggKzI1OTIsNiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19lbmFibGUoc3RydWN0IGRybV9j cnRjICpjcnRjLAogCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7CiAJc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyOwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Ci0JdW5zaWduZWQg bG9uZyBmbGFnczsKLQlzdHJ1Y3QgZHB1X2NydGNfaXJxX2luZm8gKm5vZGUgPSBOVUxMOwogCXN0 cnVjdCBkcm1fZXZlbnQgZXZlbnQ7CiAJdTMyIHBvd2VyX29uOwogCWludCByZXQ7CkBAIC0yNzA5 LDE3ICsyNjQzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAogCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7CiAKLQlzcGlu X2xvY2tfaXJxc2F2ZSgmZHB1X2NydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2Vh Y2hfZW50cnkobm9kZSwgJmRwdV9jcnRjLT51c2VyX2V2ZW50X2xpc3QsIGxpc3QpIHsKLQkJcmV0 ID0gMDsKLQkJaWYgKG5vZGUtPmZ1bmMpCi0JCQlyZXQgPSBub2RlLT5mdW5jKGNydGMsIHRydWUs ICZub2RlLT5pcnEpOwotCQlpZiAocmV0KQotCQkJRFBVX0VSUk9SKCIlcyBmYWlsZWQgdG8gZW5h YmxlIGV2ZW50ICV4XG4iLAotCQkJCWRwdV9jcnRjLT5uYW1lLCBub2RlLT5ldmVudCk7Ci0JfQot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRwdV9jcnRjLT5zcGluX2xvY2ssIGZsYWdzKTsKLQog CWRwdV9jcnRjLT5wb3dlcl9ldmVudCA9IGRwdV9wb3dlcl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQo CiAJCSZwcml2LT5waGFuZGxlLAogCQlEUFVfUE9XRVJfRVZFTlRfUE9TVF9FTkFCTEUgfCBEUFVf UE9XRVJfRVZFTlRfUE9TVF9ESVNBQkxFIHwKQEAgLTM5ODMsNyArMzkwNiw3IEBAIHN0cnVjdCBk cm1fY3J0YyAqZHB1X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSkKIAlpbml0X2NvbXBsZXRpb24oJmRwdV9jcnRjLT5mcmFtZV9kb25lX2Nv bXApOwogCiAJSU5JVF9MSVNUX0hFQUQoJmRwdV9jcnRjLT5mcmFtZV9ldmVudF9saXN0KTsKLQlJ TklUX0xJU1RfSEVBRCgmZHB1X2NydGMtPnVzZXJfZXZlbnRfbGlzdCk7CisKIAlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShkcHVfY3J0Yy0+ZnJhbWVfZXZlbnRzKTsgaSsrKSB7CiAJCUlOSVRf TElTVF9IRUFEKCZkcHVfY3J0Yy0+ZnJhbWVfZXZlbnRzW2ldLmxpc3QpOwogCQlsaXN0X2FkZCgm ZHB1X2NydGMtPmZyYW1lX2V2ZW50c1tpXS5saXN0LApAQCAtNDAyNywxNDIgKzM5NTAsMyBAQCBz dHJ1Y3QgZHJtX2NydGMgKmRwdV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJRFBVX0RFQlVHKCIlczogc3VjY2Vzc2Z1bGx5IGluaXRp YWxpemVkIGNydGNcbiIsIGRwdV9jcnRjLT5uYW1lKTsKIAlyZXR1cm4gY3J0YzsKIH0KLQotc3Rh dGljIGludCBfZHB1X2NydGNfZXZlbnRfZW5hYmxlKHN0cnVjdCBkcHVfa21zICprbXMsCi0JCXN0 cnVjdCBkcm1fY3J0YyAqY3J0Y19kcm0sIHUzMiBldmVudCkKLXsKLQlzdHJ1Y3QgZHB1X2NydGMg KmNydGMgPSBOVUxMOwotCXN0cnVjdCBkcHVfY3J0Y19pcnFfaW5mbyAqbm9kZTsKLQlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JYm9vbCBmb3Vu ZCA9IGZhbHNlOwotCWludCByZXQsIGkgPSAwOwotCi0JY3J0YyA9IHRvX2RwdV9jcnRjKGNydGNf ZHJtKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0JbGlz dF9mb3JfZWFjaF9lbnRyeShub2RlLCAmY3J0Yy0+dXNlcl9ldmVudF9saXN0LCBsaXN0KSB7Ci0J CWlmIChub2RlLT5ldmVudCA9PSBldmVudCkgewotCQkJZm91bmQgPSB0cnVlOwotCQkJYnJlYWs7 Ci0JCX0KLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3J0Yy0+c3Bpbl9sb2NrLCBmbGFn cyk7Ci0KLQkvKiBldmVudCBhbHJlYWR5IGVuYWJsZWQgKi8KLQlpZiAoZm91bmQpCi0JCXJldHVy biAwOwotCi0Jbm9kZSA9IE5VTEw7Ci0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3VzdG9t X2V2ZW50cyk7IGkrKykgewotCQlpZiAoY3VzdG9tX2V2ZW50c1tpXS5ldmVudCA9PSBldmVudCAm JgotCQkJY3VzdG9tX2V2ZW50c1tpXS5mdW5jKSB7Ci0JCQlub2RlID0ga3phbGxvYyhzaXplb2Yo Km5vZGUpLCBHRlBfS0VSTkVMKTsKLQkJCWlmICghbm9kZSkKLQkJCQlyZXR1cm4gLUVOT01FTTsK LQkJCW5vZGUtPmV2ZW50ID0gZXZlbnQ7Ci0JCQlJTklUX0xJU1RfSEVBRCgmbm9kZS0+bGlzdCk7 Ci0JCQlub2RlLT5mdW5jID0gY3VzdG9tX2V2ZW50c1tpXS5mdW5jOwotCQkJbm9kZS0+ZXZlbnQg PSBldmVudDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JaWYgKCFub2RlKSB7Ci0JCURQVV9FUlJP UigidW5zdXBwb3J0ZWQgZXZlbnQgJXhcbiIsIGV2ZW50KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0J fQotCi0JcHJpdiA9IGttcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlyZXQgPSAwOwotCWlmIChjcnRj X2RybS0+ZW5hYmxlZCkgewotCQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFu ZGxlLCBrbXMtPmNvcmVfY2xpZW50LAotCQkJCXRydWUpOwotCQlJTklUX0xJU1RfSEVBRCgmbm9k ZS0+aXJxLmxpc3QpOwotCQlyZXQgPSBub2RlLT5mdW5jKGNydGNfZHJtLCB0cnVlLCAmbm9kZS0+ aXJxKTsKLQkJZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwga21zLT5j b3JlX2NsaWVudCwKLQkJCQlmYWxzZSk7Ci0JfQotCi0JaWYgKCFyZXQpIHsKLQkJc3Bpbl9sb2Nr X2lycXNhdmUoJmNydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCQlsaXN0X2FkZF90YWlsKCZub2Rl LT5saXN0LCAmY3J0Yy0+dXNlcl9ldmVudF9saXN0KTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0JfSBlbHNlIHsKLQkJa2ZyZWUobm9kZSk7Ci0J fQotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBfZHB1X2NydGNfZXZlbnRfZGlzYWJs ZShzdHJ1Y3QgZHB1X2ttcyAqa21zLAotCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGNfZHJtLCB1MzIg ZXZlbnQpCi17Ci0Jc3RydWN0IGRwdV9jcnRjICpjcnRjID0gTlVMTDsKLQlzdHJ1Y3QgZHB1X2Ny dGNfaXJxX2luZm8gKm5vZGUgPSBOVUxMOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7 Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlib29sIGZvdW5kID0gZmFsc2U7Ci0JaW50IHJldDsK LQotCWNydGMgPSB0b19kcHVfY3J0YyhjcnRjX2RybSk7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNy dGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgJmNydGMt PnVzZXJfZXZlbnRfbGlzdCwgbGlzdCkgewotCQlpZiAobm9kZS0+ZXZlbnQgPT0gZXZlbnQpIHsK LQkJCWxpc3RfZGVsKCZub2RlLT5saXN0KTsKLQkJCWZvdW5kID0gdHJ1ZTsKLQkJCWJyZWFrOwot CQl9Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPnNwaW5fbG9jaywgZmxhZ3Mp OwotCi0JLyogZXZlbnQgYWxyZWFkeSBkaXNhYmxlZCAqLwotCWlmICghZm91bmQpCi0JCXJldHVy biAwOwotCi0JLyoqCi0JICogY3J0YyBpcyBkaXNhYmxlZCBpbnRlcnJ1cHRzIGFyZSBjbGVhcmVk IHJlbW92ZSBmcm9tIHRoZSBsaXN0LAotCSAqIG5vIG5lZWQgdG8gZGlzYWJsZS9kZS1yZWdpc3Rl ci4KLQkgKi8KLQlpZiAoIWNydGNfZHJtLT5lbmFibGVkKSB7Ci0JCWtmcmVlKG5vZGUpOwotCQly ZXR1cm4gMDsKLQl9Ci0JcHJpdiA9IGttcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcHVfcG93ZXJf cmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBrbXMtPmNvcmVfY2xpZW50LCB0cnVlKTsK LQlyZXQgPSBub2RlLT5mdW5jKGNydGNfZHJtLCBmYWxzZSwgJm5vZGUtPmlycSk7Ci0JZHB1X3Bv d2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwga21zLT5jb3JlX2NsaWVudCwgZmFs c2UpOwotCXJldHVybiByZXQ7Ci19Ci0KLWludCBkcHVfY3J0Y19yZWdpc3Rlcl9jdXN0b21fZXZl bnQoc3RydWN0IGRwdV9rbXMgKmttcywKLQkJc3RydWN0IGRybV9jcnRjICpjcnRjX2RybSwgdTMy IGV2ZW50LCBib29sIGVuKQotewotCXN0cnVjdCBkcHVfY3J0YyAqY3J0YyA9IE5VTEw7Ci0JaW50 IHJldDsKLQotCWNydGMgPSB0b19kcHVfY3J0YyhjcnRjX2RybSk7Ci0JaWYgKCFjcnRjIHx8ICFr bXMgfHwgIWttcy0+ZGV2KSB7Ci0JCURSTV9FUlJPUigiaW52YWxpZCBkcHVfY3J0YyAlcEsga21z ICVwSyBkZXYgJXBLXG4iLCBjcnRjLAotCQkJa21zLCAoKGttcykgPyAoa21zLT5kZXYpIDogTlVM TCkpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoZW4pCi0JCXJldCA9IF9kcHVfY3J0 Y19ldmVudF9lbmFibGUoa21zLCBjcnRjX2RybSwgZXZlbnQpOwotCWVsc2UKLQkJcmV0ID0gX2Rw dV9jcnRjX2V2ZW50X2Rpc2FibGUoa21zLCBjcnRjX2RybSwgZXZlbnQpOwotCi0JcmV0dXJuIHJl dDsKLX0KLQotc3RhdGljIGludCBkcHVfY3J0Y19wb3dlcl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGNfZHJtLAotCWJvb2wgZW4sIHN0cnVjdCBkcHVfaXJxX2NhbGxiYWNr ICppcnEpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHB1X2NydGNfaWRsZV9pbnRl cnJ1cHRfaGFuZGxlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGNfZHJtLAotCWJvb2wgZW4sIHN0cnVj dCBkcHVfaXJxX2NhbGxiYWNrICppcnEpCi17Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAppbmRleCA4NzU2YjJiLi45MzA0MDU4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKQEAgLTIyMyw3ICsyMjMsNiBAQCBz dHJ1Y3QgZHB1X2NydGMgewogCXN0cnVjdCBsaXN0X2hlYWQgZGlydHlfbGlzdDsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIGFkX2RpcnR5OwogCXN0cnVjdCBsaXN0X2hlYWQgYWRfYWN0aXZlOwotCXN0cnVj dCBsaXN0X2hlYWQgdXNlcl9ldmVudF9saXN0OwogCiAJc3RydWN0IG11dGV4IGNydGNfbG9jazsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCmluZGV4IDZmYzBjMDQuLjBm YmViNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKQEAgLTkwLDgg KzkwLDYgQEAKIAogc3RhdGljIGludCBkcHVfa21zX2h3X2luaXQoc3RydWN0IG1zbV9rbXMgKmtt cyk7CiBzdGF0aWMgaW50IF9kcHVfa21zX21tdV9kZXN0cm95KHN0cnVjdCBkcHVfa21zICpkcHVf a21zKTsKLXN0YXRpYyBpbnQgX2RwdV9rbXNfcmVnaXN0ZXJfZXZlbnRzKHN0cnVjdCBtc21fa21z ICprbXMsCi0JCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwgdTMyIGV2ZW50LCBib29sIGVu KTsKIGJvb2wgZHB1X2lzX2N1c3RvbV9jbGllbnQodm9pZCkKIHsKIAlyZXR1cm4gZHB1Y3VzdG9t OwpAQCAtMTgxNCw3ICsxODEyLDYgQEAgc3RhdGljIGludCBkcHVfa21zX3BtX3Jlc3VtZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiAJLnBtX3N1c3BlbmQgICAgICA9IGRwdV9rbXNfcG1fc3VzcGVuZCwK IAkucG1fcmVzdW1lICAgICAgID0gZHB1X2ttc19wbV9yZXN1bWUsCiAJLmRlc3Ryb3kgICAgICAg ICA9IGRwdV9rbXNfZGVzdHJveSwKLQkucmVnaXN0ZXJfZXZlbnRzID0gX2RwdV9rbXNfcmVnaXN0 ZXJfZXZlbnRzLAogCS5nZXRfYWRkcmVzc19zcGFjZSA9IF9kcHVfa21zX2dldF9hZGRyZXNzX3Nw YWNlLAogCS5wb3N0b3BlbiA9IF9kcHVfa21zX3Bvc3Rfb3BlbiwKIH07CkBAIC0yMjI4LDMxICsy MjI1LDMgQEAgc3RydWN0IG1zbV9rbXMgKmRwdV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCXJldHVybiAmZHB1X2ttcy0+YmFzZTsKIH0KIAotc3RhdGljIGludCBfZHB1X2ttc19y ZWdpc3Rlcl9ldmVudHMoc3RydWN0IG1zbV9rbXMgKmttcywKLQkJc3RydWN0IGRybV9tb2RlX29i amVjdCAqb2JqLCB1MzIgZXZlbnQsIGJvb2wgZW4pCi17Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0 IGRybV9jcnRjICpjcnRjID0gTlVMTDsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiA9IE5V TEw7Ci0Jc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSBOVUxMOwotCi0JaWYgKCFrbXMgfHwgIW9i aikgewotCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1lbnQga21zICVwSyBvYmogJXBLXG4iLCBr bXMsIG9iaik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRwdV9rbXMgPSB0b19kcHVfa21z KGttcyk7Ci0Jc3dpdGNoIChvYmotPnR5cGUpIHsKLQljYXNlIERSTV9NT0RFX09CSkVDVF9DUlRD OgotCQljcnRjID0gb2JqX3RvX2NydGMob2JqKTsKLQkJcmV0ID0gZHB1X2NydGNfcmVnaXN0ZXJf Y3VzdG9tX2V2ZW50KGRwdV9rbXMsIGNydGMsIGV2ZW50LCBlbik7Ci0JCWJyZWFrOwotCWNhc2Ug RFJNX01PREVfT0JKRUNUX0NPTk5FQ1RPUjoKLQkJY29ubiA9IG9ial90b19jb25uZWN0b3Iob2Jq KTsKLQkJcmV0ID0gZHB1X2Nvbm5lY3Rvcl9yZWdpc3Rlcl9jdXN0b21fZXZlbnQoZHB1X2ttcywg Y29ubiwgZXZlbnQsCi0JCQkJZW4pOwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9kcnYuYwppbmRleCBiZDQ2NmQ1Li5hNmZlM2ExIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuYwpAQCAtMTEyOCwxODAgKzExMjgsNiBAQCBzdGF0aWMgaW50IG1zbV9pb2N0bF9zdWJtaXRx dWV1ZV9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXJldHVybiBt c21fc3VibWl0cXVldWVfcmVtb3ZlKGZpbGUtPmRyaXZlcl9wcml2LCBpZCk7CiB9CiAKLXN0YXRp YyBpbnQgbXNtX2RybV9vYmplY3Rfc3VwcG9ydHNfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKLQkJc3RydWN0IGRybV9tc21fZXZlbnRfcmVxICpyZXEsIHN0cnVjdCBkcm1fZmlsZSAqZmls ZSkKLXsKLQlpbnQgcmV0ID0gLUVJTlZBTDsKLQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICphcmdf b2JqOwotCi0JYXJnX29iaiA9IGRybV9tb2RlX29iamVjdF9maW5kKGRldiwgZmlsZSwgcmVxLT5v YmplY3RfaWQsIHJlcS0+b2JqZWN0X3R5cGUpOwotCWlmICghYXJnX29iaikKLQkJcmV0dXJuIC1F Tk9FTlQ7Ci0KLQlzd2l0Y2ggKGFyZ19vYmotPnR5cGUpIHsKLQljYXNlIERSTV9NT0RFX09CSkVD VF9DUlRDOgotCWNhc2UgRFJNX01PREVfT0JKRUNUX0NPTk5FQ1RPUjoKLQkJcmV0ID0gMDsKLQkJ YnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0ID0gLUVPUE5PVFNVUFA7Ci0JCWJyZWFrOwotCX0KLQot CXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgbXNtX3JlZ2lzdGVyX2V2ZW50KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCi0Jc3RydWN0IGRybV9tc21fZXZlbnRfcmVxICpyZXEsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwgYm9vbCBlbikKLXsKLQlpbnQgcmV0ID0gLUVJTlZBTDsKLQlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgbXNtX2tt cyAqa21zID0gcHJpdi0+a21zOwotCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmFyZ19vYmo7Ci0K LQlhcmdfb2JqID0gZHJtX21vZGVfb2JqZWN0X2ZpbmQoZGV2LCBmaWxlLCByZXEtPm9iamVjdF9p ZCwgcmVxLT5vYmplY3RfdHlwZSk7Ci0JaWYgKCFhcmdfb2JqKQotCQlyZXR1cm4gLUVOT0VOVDsK LQotCXJldCA9IGttcy0+ZnVuY3MtPnJlZ2lzdGVyX2V2ZW50cyhrbXMsIGFyZ19vYmosIHJlcS0+ ZXZlbnQsIGVuKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IG1zbV9ldmVudF9jbGll bnRfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IGRybV9tc21fZXZlbnRf cmVxICpyZXFfZXZlbnQsIGJvb2wgbG9ja2VkKQotewotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUg KnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcgZmxhZyA9IDA7Ci0Jc3Ry dWN0IG1zbV9kcm1fZXZlbnQgKm5vZGU7Ci0JaW50IGNvdW50ID0gMDsKLQotCWlmICghbG9ja2Vk KQotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFnKTsKLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KG5vZGUsICZwcml2LT5jbGllbnRfZXZlbnRfbGlzdCwgYmFzZS5saW5rKSB7 Ci0JCWlmIChub2RlLT5ldmVudC50eXBlID09IHJlcV9ldmVudC0+ZXZlbnQgJiYKLQkJCW5vZGUt PmluZm8ub2JqZWN0X2lkID09IHJlcV9ldmVudC0+b2JqZWN0X2lkKQotCQkJY291bnQrKzsKLQl9 Ci0JaWYgKCFsb2NrZWQpCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9j aywgZmxhZyk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0KLXN0YXRpYyBpbnQgbXNtX2lvY3RsX3Jl Z2lzdGVyX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJICAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKLXsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX21zbV9ldmVudF9yZXEgKnJlcV9ldmVu dCA9IGRhdGE7Ci0Jc3RydWN0IG1zbV9kcm1fZXZlbnQgKmNsaWVudCwgKm5vZGU7Ci0JdW5zaWdu ZWQgbG9uZyBmbGFnID0gMDsKLQlib29sIGR1cF9yZXF1ZXN0ID0gZmFsc2U7Ci0JaW50IHJldCA9 IDAsIGNvdW50ID0gMDsKLQotCXJldCA9IG1zbV9kcm1fb2JqZWN0X3N1cHBvcnRzX2V2ZW50KGRl diwgcmVxX2V2ZW50LCBmaWxlKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigidW5zdXBwb3J0 ZWQgZXZlbnQgJXggb2JqZWN0ICV4IG9iamVjdCBpZCAlZFxuIiwKLQkJCXJlcV9ldmVudC0+ZXZl bnQsIHJlcV9ldmVudC0+b2JqZWN0X3R5cGUsCi0JCQlyZXFfZXZlbnQtPm9iamVjdF9pZCk7Ci0J CXJldHVybiByZXQ7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywg ZmxhZyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmcHJpdi0+Y2xpZW50X2V2ZW50X2xp c3QsIGJhc2UubGluaykgewotCQlpZiAobm9kZS0+YmFzZS5maWxlX3ByaXYgIT0gZmlsZSkKLQkJ CWNvbnRpbnVlOwotCQlpZiAobm9kZS0+ZXZlbnQudHlwZSA9PSByZXFfZXZlbnQtPmV2ZW50ICYm Ci0JCQlub2RlLT5pbmZvLm9iamVjdF9pZCA9PSByZXFfZXZlbnQtPm9iamVjdF9pZCkgewotCQkJ RFJNX0RFQlVHKCJkdXBsaWNhdGUgcmVxdWVzdCBmb3IgZXZlbnQgJXggb2JqIGlkICVkXG4iLAot CQkJCW5vZGUtPmV2ZW50LnR5cGUsIG5vZGUtPmluZm8ub2JqZWN0X2lkKTsKLQkJCWR1cF9yZXF1 ZXN0ID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmRldi0+ZXZlbnRfbG9jaywgZmxhZyk7Ci0KLQlpZiAoZHVwX3JlcXVlc3QpCi0JCXJldHVybiAt RUFMUkVBRFk7Ci0KLQljbGllbnQgPSBremFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFjbGllbnQpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JY2xpZW50LT5iYXNlLmZp bGVfcHJpdiA9IGZpbGU7Ci0JY2xpZW50LT5iYXNlLmV2ZW50ID0gJmNsaWVudC0+ZXZlbnQ7Ci0J Y2xpZW50LT5ldmVudC50eXBlID0gcmVxX2V2ZW50LT5ldmVudDsKLQltZW1jcHkoJmNsaWVudC0+ aW5mbywgcmVxX2V2ZW50LCBzaXplb2YoY2xpZW50LT5pbmZvKSk7Ci0KLQkvKiBHZXQgdGhlIGNv dW50IG9mIGNsaWVudHMgdGhhdCBoYXZlIHJlZ2lzdGVyZWQgZm9yIGV2ZW50LgotCSAqIEV2ZW50 IHNob3VsZCBiZSBlbmFibGVkIGZvciBmaXJzdCBjbGllbnQsIGZvciBzdWJzZXF1ZW50IGVuYWJs ZQotCSAqIGNhbGxzIGFkZCB0byBjbGllbnQgbGlzdCBhbmQgcmV0dXJuLgotCSAqLwotCWNvdW50 ID0gbXNtX2V2ZW50X2NsaWVudF9jb3VudChkZXYsIHJlcV9ldmVudCwgZmFsc2UpOwotCS8qIEFk ZCBjdXJyZW50IGNsaWVudCB0byBsaXN0ICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZl bnRfbG9jaywgZmxhZyk7Ci0JbGlzdF9hZGRfdGFpbCgmY2xpZW50LT5iYXNlLmxpbmssICZwcml2 LT5jbGllbnRfZXZlbnRfbGlzdCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVu dF9sb2NrLCBmbGFnKTsKLQotCWlmIChjb3VudCkKLQkJcmV0dXJuIDA7Ci0KLQlyZXQgPSBtc21f cmVnaXN0ZXJfZXZlbnQoZGV2LCByZXFfZXZlbnQsIGZpbGUsIHRydWUpOwotCWlmIChyZXQpIHsK LQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIGV2ZW50ICV4IG9iamVjdCAleCBvYmplY3Qg aWQgJWRcbiIsCi0JCQlyZXFfZXZlbnQtPmV2ZW50LCByZXFfZXZlbnQtPm9iamVjdF90eXBlLAot CQkJcmVxX2V2ZW50LT5vYmplY3RfaWQpOwotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVu dF9sb2NrLCBmbGFnKTsKLQkJbGlzdF9kZWwoJmNsaWVudC0+YmFzZS5saW5rKTsKLQkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFnKTsKLQkJa2ZyZWUoY2xpZW50 KTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBtc21faW9jdGxfZGVyZWdpc3Rl cl9ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSAgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKLXsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX21zbV9ldmVudF9yZXEgKnJlcV9ldmVudCA9 IGRhdGE7Ci0Jc3RydWN0IG1zbV9kcm1fZXZlbnQgKmNsaWVudCA9IE5VTEwsICpub2RlLCAqdGVt cDsKLQl1bnNpZ25lZCBsb25nIGZsYWcgPSAwOwotCWludCBjb3VudCA9IDA7Ci0JYm9vbCBmb3Vu ZCA9IGZhbHNlOwotCWludCByZXQgPSAwOwotCi0JcmV0ID0gbXNtX2RybV9vYmplY3Rfc3VwcG9y dHNfZXZlbnQoZGV2LCByZXFfZXZlbnQsIGZpbGUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9S KCJ1bnN1cHBvcnRlZCBldmVudCAleCBvYmplY3QgJXggb2JqZWN0IGlkICVkXG4iLAotCQkJcmVx X2V2ZW50LT5ldmVudCwgcmVxX2V2ZW50LT5vYmplY3RfdHlwZSwKLQkJCXJlcV9ldmVudC0+b2Jq ZWN0X2lkKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5l dmVudF9sb2NrLCBmbGFnKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgdGVtcCwg JnByaXYtPmNsaWVudF9ldmVudF9saXN0LAotCQkJYmFzZS5saW5rKSB7Ci0JCWlmIChub2RlLT5l dmVudC50eXBlID09IHJlcV9ldmVudC0+ZXZlbnQgJiYKLQkJICAgIG5vZGUtPmluZm8ub2JqZWN0 X2lkID09IHJlcV9ldmVudC0+b2JqZWN0X2lkICYmCi0JCSAgICBub2RlLT5iYXNlLmZpbGVfcHJp diA9PSBmaWxlKSB7Ci0JCQljbGllbnQgPSBub2RlOwotCQkJbGlzdF9kZWwoJmNsaWVudC0+YmFz ZS5saW5rKTsKLQkJCWZvdW5kID0gdHJ1ZTsKLQkJCWtmcmVlKGNsaWVudCk7Ci0JCQlicmVhazsK LQkJfQotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWcp OwotCi0JaWYgKCFmb3VuZCkKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0KLQljb3VudCA9IG1zbV9ldmVu dF9jbGllbnRfY291bnQoZGV2LCByZXFfZXZlbnQsIGZhbHNlKTsKLQlpZiAoIWNvdW50KQotCQly ZXQgPSBtc21fcmVnaXN0ZXJfZXZlbnQoZGV2LCByZXFfZXZlbnQsIGZpbGUsIGZhbHNlKTsKLQot CXJldHVybiByZXQ7Ci19Ci0KIHZvaWQgbXNtX21vZGVfb2JqZWN0X2V2ZW50X25vdGlmeShzdHJ1 Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fZXZlbnQgKmV2ZW50LCB1OCAqcGF5bG9hZCkKIHsKQEAgLTEzNTQsMjkgKzExODAsNiBA QCB2b2lkIG1zbV9tb2RlX29iamVjdF9ldmVudF9ub3RpZnkoc3RydWN0IGRybV9tb2RlX29iamVj dCAqb2JqLAogCiBzdGF0aWMgaW50IG1zbV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmaWxlICpmaWxwKQogewotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+ cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yID0gZmlsZV9wcml2LT5taW5v cjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKLQlzdHJ1Y3QgbXNtX2Ry bV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgbXNtX2RybV9ldmVu dCAqbm9kZSwgKnRlbXA7Ci0JdTMyIGNvdW50OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0JbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKG5vZGUsIHRlbXAsICZwcml2LT5jbGllbnRfZXZlbnRfbGlzdCwKLQkJCWJh c2UubGluaykgewotCQlpZiAobm9kZS0+YmFzZS5maWxlX3ByaXYgIT0gZmlsZV9wcml2KQotCQkJ Y29udGludWU7Ci0JCWxpc3RfZGVsKCZub2RlLT5iYXNlLmxpbmspOwotCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKLQkJY291bnQgPSBtc21fZXZlbnRf Y2xpZW50X2NvdW50KGRldiwgJm5vZGUtPmluZm8sIHRydWUpOwotCQlpZiAoIWNvdW50KQotCQkJ bXNtX3JlZ2lzdGVyX2V2ZW50KGRldiwgJm5vZGUtPmluZm8sIGZpbGVfcHJpdiwgZmFsc2UpOwot CQlrZnJlZShub2RlKTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxh Z3MpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdz KTsKLQogCXJldHVybiBkcm1fcmVsZWFzZShpbm9kZSwgZmlscCk7CiB9CiAKQEAgLTE0OTcsMTAg KzEzMDAsNiBAQCBpbnQgbXNtX2lvY3RsX3JtZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAjaWZkZWYgQ09ORklHX0RSTV9NU01fV1JJVEVCQUNLCiAJRFJNX0lPQ1RMX0RF Rl9EUlYoRFBVX1dCX0NPTkZJRywgZHB1X3diX2NvbmZpZywgRFJNX1VOTE9DS0VEfERSTV9BVVRI KSwKICNlbmRpZgotCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9SRUdJU1RFUl9FVkVOVCwgIG1zbV9p b2N0bF9yZWdpc3Rlcl9ldmVudCwKLQkJCSAgRFJNX1VOTE9DS0VEfERSTV9DT05UUk9MX0FMTE9X KSwKLQlEUk1fSU9DVExfREVGX0RSVihNU01fREVSRUdJU1RFUl9FVkVOVCwgIG1zbV9pb2N0bF9k ZXJlZ2lzdGVyX2V2ZW50LAotCQkJICBEUk1fVU5MT0NLRUR8RFJNX0NPTlRST0xfQUxMT1cpLAog CURSTV9JT0NUTF9ERUZfRFJWKE1TTV9STUZCMiwgbXNtX2lvY3RsX3JtZmIyLAogCQkJICBEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKaW5kZXgg MzNlZGIyNS4uNWIwOWNlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21z LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKQEAgLTkyLDggKzkyLDYgQEAg c3RydWN0IG1zbV9rbXNfZnVuY3MgewogCXZvaWQgKCpwcmVjbG9zZSkoc3RydWN0IG1zbV9rbXMg Kmttcywgc3RydWN0IGRybV9maWxlICpmaWxlKTsKIAl2b2lkICgqcG9zdGNsb3NlKShzdHJ1Y3Qg bXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogCXZvaWQgKCpsYXN0Y2xvc2Up KHN0cnVjdCBtc21fa21zICprbXMpOwotCWludCAoKnJlZ2lzdGVyX2V2ZW50cykoc3RydWN0IG1z bV9rbXMgKmttcywKLQkJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwgdTMyIGV2ZW50LCBi b29sIGVuKTsKIAl2b2lkICgqc2V0X2VuY29kZXJfbW9kZSkoc3RydWN0IG1zbV9rbXMgKmttcywK IAkJCQkgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCSBib29sIGNtZF9tb2RlKTsK LS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0 aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFBy b2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=