From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH v2 4/6] drm/msm: strip down custom event ioctl's Date: Thu, 19 Apr 2018 16:52:02 -0700 Message-ID: <1524181924-9123-5-git-send-email-jsanka@codeaurora.org> References: <1524181924-9123-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: <1524181924-9123-1-git-send-email-jsanka-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: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZlIGN1c3RvbSBpb2N0bCBzdXBwb3J0IGluIFNETTg0NSB3aGljaCBhbGxvd3MKdXNlciBz cGFjZSB0byByZWdpc3Rlci91bnJlZ2lzdGVyIGZvciBodyBldmVudHMuCgpjaGFuZ2VzIGluIHYy OgoJLSBub25lCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+ ClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5vcmc+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyB8IDIxOCArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5oIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuYyAgfCAgMzEgLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgICAgICAg ICAgfCAyMDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9tc21fa21zLmggICAgICAgICAgICB8ICAgMiAtCiA1IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCA0NTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMKaW5kZXggOGU0NjRmYS4uMzg3OTE5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC0zOSwzMSArMzksNiBAQAogI2luY2x1ZGUgImRwdV9jb3Jl X3BlcmYuaCIKICNpbmNsdWRlICJkcHVfdHJhY2UuaCIKIAotc3RydWN0IGRwdV9jcnRjX2lycV9p bmZvIHsKLQlzdHJ1Y3QgZHB1X2lycV9jYWxsYmFjayBpcnE7Ci0JdTMyIGV2ZW50OwotCWludCAo KmZ1bmMpKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbiwKLQkJCXN0cnVjdCBkcHVfaXJx X2NhbGxiYWNrICppcnEpOwotCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKLX07Ci0KLXN0cnVjdCBk cHVfY3J0Y19jdXN0b21fZXZlbnRzIHsKLQl1MzIgZXZlbnQ7Ci0JaW50ICgqZnVuYykoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBib29sIGVuLAotCQkJc3RydWN0IGRwdV9pcnFfY2FsbGJhY2sgKmly cSk7Ci19OwotCi1zdGF0aWMgaW50IGRwdV9jcnRjX3Bvd2VyX2ludGVycnVwdF9oYW5kbGVyKHN0 cnVjdCBkcm1fY3J0YyAqY3J0Y19kcm0sCi0JYm9vbCBlbiwgc3RydWN0IGRwdV9pcnFfY2FsbGJh Y2sgKmFkX2lycSk7Ci1zdGF0aWMgaW50IGRwdV9jcnRjX2lkbGVfaW50ZXJydXB0X2hhbmRsZXIo c3RydWN0IGRybV9jcnRjICpjcnRjX2RybSwKLQlib29sIGVuLCBzdHJ1Y3QgZHB1X2lycV9jYWxs YmFjayAqaWRsZV9pcnEpOwotCi1zdGF0aWMgc3RydWN0IGRwdV9jcnRjX2N1c3RvbV9ldmVudHMg Y3VzdG9tX2V2ZW50c1tdID0gewotCXtEUk1fRVZFTlRfQURfQkFDS0xJR0hULCBkcHVfY3BfYWRf aW50ZXJydXB0fSwKLQl7RFJNX0VWRU5UX0NSVENfUE9XRVIsIGRwdV9jcnRjX3Bvd2VyX2ludGVy cnVwdF9oYW5kbGVyfSwKLQl7RFJNX0VWRU5UX0lETEVfTk9USUZZLCBkcHVfY3J0Y19pZGxlX2lu dGVycnVwdF9oYW5kbGVyfQotfTsKLQogLyogbGF5ZXIgbWl4ZXIgaW5kZXggb24gZHB1X2NydGMg Ki8KICNkZWZpbmUgTEVGVF9NSVhFUiAwCiAjZGVmaW5lIFJJR0hUX01JWEVSIDEKQEAgLTI0NTUs OSArMjQzMCw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2hhbmRsZV9wb3dlcl9ldmVudCh1MzIg ZXZlbnRfdHlwZSwgdm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIAlz dHJ1Y3QgZHB1X2NydGNfbWl4ZXIgKm07CiAJdTMyIGksIG1pc3Jfc3RhdHVzOwotCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGRwdV9jcnRjX2lycV9pbmZvICpub2RlID0gTlVMTDsKLQlp bnQgcmV0ID0gMDsKIAogCWlmICghY3J0YykgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xu Iik7CkBAIC0yNDc5LDE3ICsyNDUxLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bv d2VyX2V2ZW50KHUzMiBldmVudF90eXBlLCB2b2lkICphcmcpCiAJCQlkcHVfZW5jb2Rlcl92aXJ0 X3Jlc3RvcmUoZW5jb2Rlcik7CiAJCX0KIAotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZHB1X2NydGMt PnNwaW5fbG9jaywgZmxhZ3MpOwotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZkcHVfY3J0 Yy0+dXNlcl9ldmVudF9saXN0LCBsaXN0KSB7Ci0JCQlyZXQgPSAwOwotCQkJaWYgKG5vZGUtPmZ1 bmMpCi0JCQkJcmV0ID0gbm9kZS0+ZnVuYyhjcnRjLCB0cnVlLCAmbm9kZS0+aXJxKTsKLQkJCWlm IChyZXQpCi0JCQkJRFBVX0VSUk9SKCIlcyBmYWlsZWQgdG8gZW5hYmxlIGV2ZW50ICV4XG4iLAot CQkJCQkJZHB1X2NydGMtPm5hbWUsIG5vZGUtPmV2ZW50KTsKLQkJfQotCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZkcHVfY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0KIAkJZHB1X2NwX2NydGNf cG9zdF9pcGMoY3J0Yyk7CiAKIAkJZm9yIChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJz OyArK2kpIHsKQEAgLTI1MTQsMTggKzI0NzUsNiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19oYW5k bGVfcG93ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFyZykKIAkJCQkJCQlkcHVfY3J0 Yy0+bWlzcl9kYXRhW2ldOwogCQl9CiAKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRwdV9jcnRjLT5z cGluX2xvY2ssIGZsYWdzKTsKLQkJbm9kZSA9IE5VTEw7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnko bm9kZSwgJmRwdV9jcnRjLT51c2VyX2V2ZW50X2xpc3QsIGxpc3QpIHsKLQkJCXJldCA9IDA7Ci0J CQlpZiAobm9kZS0+ZnVuYykKLQkJCQlyZXQgPSBub2RlLT5mdW5jKGNydGMsIGZhbHNlLCAmbm9k ZS0+aXJxKTsKLQkJCWlmIChyZXQpCi0JCQkJRFBVX0VSUk9SKCIlcyBmYWlsZWQgdG8gZGlzYWJs ZSBldmVudCAleFxuIiwKLQkJCQkJCWRwdV9jcnRjLT5uYW1lLCBub2RlLT5ldmVudCk7Ci0JCX0K LQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHB1X2NydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwot CiAJCWRwdV9jcF9jcnRjX3ByZV9pcGMoY3J0Yyk7CiAJCWJyZWFrOwogCWNhc2UgRFBVX1BPV0VS X0VWRU5UX1BPU1RfRElTQUJMRToKQEAgLTI1NTMsOCArMjUwMiw2IEBAIHN0YXRpYyB2b2lkIGRw dV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGRwdV9j cnRjX2lycV9pbmZvICpub2RlID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX2V2ZW50IGV2ZW50OwogCXUz MiBwb3dlcl9vbjsKIAlpbnQgcmV0OwpAQCAtMjYxNCwxNyArMjU2MSw2IEBAIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlhdG9taWNfc2V0KCZk cHVfY3J0Yy0+ZnJhbWVfcGVuZGluZywgMCk7CiAJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRw dV9jcnRjLT5zcGluX2xvY2ssIGZsYWdzKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZk cHVfY3J0Yy0+dXNlcl9ldmVudF9saXN0LCBsaXN0KSB7Ci0JCXJldCA9IDA7Ci0JCWlmIChub2Rl LT5mdW5jKQotCQkJcmV0ID0gbm9kZS0+ZnVuYyhjcnRjLCBmYWxzZSwgJm5vZGUtPmlycSk7Ci0J CWlmIChyZXQpCi0JCQlEUFVfRVJST1IoIiVzIGZhaWxlZCB0byBkaXNhYmxlIGV2ZW50ICV4XG4i LAotCQkJCQlkcHVfY3J0Yy0+bmFtZSwgbm9kZS0+ZXZlbnQpOwotCX0KLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZkcHVfY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0KIAlkcHVfY29yZV9wZXJm X2NydGNfdXBkYXRlKGNydGMsIDAsIHRydWUpOwogCiAJZHJtX2Zvcl9lYWNoX2VuY29kZXIoZW5j b2RlciwgY3J0Yy0+ZGV2KSB7CkBAIC0yNjU2LDggKzI1OTIsNiBAQCBzdGF0aWMgdm9pZCBkcHVf Y3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBkcHVfY3J0YyAqZHB1 X2NydGM7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXY7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlzdHJ1Y3QgZHB1X2NydGNfaXJx X2luZm8gKm5vZGUgPSBOVUxMOwogCXN0cnVjdCBkcm1fZXZlbnQgZXZlbnQ7CiAJdTMyIHBvd2Vy X29uOwogCWludCByZXQ7CkBAIC0yNzA5LDE3ICsyNjQzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2Ny dGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCW11dGV4X3VubG9jaygmZHB1X2Ny dGMtPmNydGNfbG9jayk7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZHB1X2NydGMtPnNwaW5fbG9j aywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnkobm9kZSwgJmRwdV9jcnRjLT51c2VyX2V2 ZW50X2xpc3QsIGxpc3QpIHsKLQkJcmV0ID0gMDsKLQkJaWYgKG5vZGUtPmZ1bmMpCi0JCQlyZXQg PSBub2RlLT5mdW5jKGNydGMsIHRydWUsICZub2RlLT5pcnEpOwotCQlpZiAocmV0KQotCQkJRFBV X0VSUk9SKCIlcyBmYWlsZWQgdG8gZW5hYmxlIGV2ZW50ICV4XG4iLAotCQkJCWRwdV9jcnRjLT5u YW1lLCBub2RlLT5ldmVudCk7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRwdV9jcnRj LT5zcGluX2xvY2ssIGZsYWdzKTsKLQogCWRwdV9jcnRjLT5wb3dlcl9ldmVudCA9IGRwdV9wb3dl cl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQoCiAJCSZwcml2LT5waGFuZGxlLAogCQlEUFVfUE9XRVJf RVZFTlRfUE9TVF9FTkFCTEUgfCBEUFVfUE9XRVJfRVZFTlRfUE9TVF9ESVNBQkxFIHwKQEAgLTM5 OTUsNyArMzkxOCw3IEBAIHN0cnVjdCBkcm1fY3J0YyAqZHB1X2NydGNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlpbml0X2NvbXBsZXRpb24o JmRwdV9jcnRjLT5mcmFtZV9kb25lX2NvbXApOwogCiAJSU5JVF9MSVNUX0hFQUQoJmRwdV9jcnRj LT5mcmFtZV9ldmVudF9saXN0KTsKLQlJTklUX0xJU1RfSEVBRCgmZHB1X2NydGMtPnVzZXJfZXZl bnRfbGlzdCk7CisKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkcHVfY3J0Yy0+ZnJhbWVf ZXZlbnRzKTsgaSsrKSB7CiAJCUlOSVRfTElTVF9IRUFEKCZkcHVfY3J0Yy0+ZnJhbWVfZXZlbnRz W2ldLmxpc3QpOwogCQlsaXN0X2FkZCgmZHB1X2NydGMtPmZyYW1lX2V2ZW50c1tpXS5saXN0LApA QCAtNDAzOSwxNDIgKzM5NjIsMyBAQCBzdHJ1Y3QgZHJtX2NydGMgKmRwdV9jcnRjX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJRFBVX0RFQlVH KCIlczogc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIGNydGNcbiIsIGRwdV9jcnRjLT5uYW1lKTsK IAlyZXR1cm4gY3J0YzsKIH0KLQotc3RhdGljIGludCBfZHB1X2NydGNfZXZlbnRfZW5hYmxlKHN0 cnVjdCBkcHVfa21zICprbXMsCi0JCXN0cnVjdCBkcm1fY3J0YyAqY3J0Y19kcm0sIHUzMiBldmVu dCkKLXsKLQlzdHJ1Y3QgZHB1X2NydGMgKmNydGMgPSBOVUxMOwotCXN0cnVjdCBkcHVfY3J0Y19p cnFfaW5mbyAqbm9kZTsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OwotCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Ci0JYm9vbCBmb3VuZCA9IGZhbHNlOwotCWludCByZXQsIGkgPSAwOwotCi0J Y3J0YyA9IHRvX2RwdV9jcnRjKGNydGNfZHJtKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY3J0Yy0+ c3Bpbl9sb2NrLCBmbGFncyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmY3J0Yy0+dXNl cl9ldmVudF9saXN0LCBsaXN0KSB7Ci0JCWlmIChub2RlLT5ldmVudCA9PSBldmVudCkgewotCQkJ Zm91bmQgPSB0cnVlOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0KLQkvKiBldmVudCBhbHJlYWR5IGVuYWJsZWQg Ki8KLQlpZiAoZm91bmQpCi0JCXJldHVybiAwOwotCi0Jbm9kZSA9IE5VTEw7Ci0JZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUoY3VzdG9tX2V2ZW50cyk7IGkrKykgewotCQlpZiAoY3VzdG9tX2V2 ZW50c1tpXS5ldmVudCA9PSBldmVudCAmJgotCQkJY3VzdG9tX2V2ZW50c1tpXS5mdW5jKSB7Ci0J CQlub2RlID0ga3phbGxvYyhzaXplb2YoKm5vZGUpLCBHRlBfS0VSTkVMKTsKLQkJCWlmICghbm9k ZSkKLQkJCQlyZXR1cm4gLUVOT01FTTsKLQkJCW5vZGUtPmV2ZW50ID0gZXZlbnQ7Ci0JCQlJTklU X0xJU1RfSEVBRCgmbm9kZS0+bGlzdCk7Ci0JCQlub2RlLT5mdW5jID0gY3VzdG9tX2V2ZW50c1tp XS5mdW5jOwotCQkJbm9kZS0+ZXZlbnQgPSBldmVudDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0J aWYgKCFub2RlKSB7Ci0JCURQVV9FUlJPUigidW5zdXBwb3J0ZWQgZXZlbnQgJXhcbiIsIGV2ZW50 KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcHJpdiA9IGttcy0+ZGV2LT5kZXZfcHJpdmF0 ZTsKLQlyZXQgPSAwOwotCWlmIChjcnRjX2RybS0+ZW5hYmxlZCkgewotCQlkcHVfcG93ZXJfcmVz b3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBrbXMtPmNvcmVfY2xpZW50LAotCQkJCXRydWUp OwotCQlJTklUX0xJU1RfSEVBRCgmbm9kZS0+aXJxLmxpc3QpOwotCQlyZXQgPSBub2RlLT5mdW5j KGNydGNfZHJtLCB0cnVlLCAmbm9kZS0+aXJxKTsKLQkJZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJs ZSgmcHJpdi0+cGhhbmRsZSwga21zLT5jb3JlX2NsaWVudCwKLQkJCQlmYWxzZSk7Ci0JfQotCi0J aWYgKCFyZXQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPnNwaW5fbG9jaywgZmxhZ3Mp OwotCQlsaXN0X2FkZF90YWlsKCZub2RlLT5saXN0LCAmY3J0Yy0+dXNlcl9ldmVudF9saXN0KTsK LQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3J0Yy0+c3Bpbl9sb2NrLCBmbGFncyk7Ci0JfSBl bHNlIHsKLQkJa2ZyZWUobm9kZSk7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGlu dCBfZHB1X2NydGNfZXZlbnRfZGlzYWJsZShzdHJ1Y3QgZHB1X2ttcyAqa21zLAotCQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGNfZHJtLCB1MzIgZXZlbnQpCi17Ci0Jc3RydWN0IGRwdV9jcnRjICpjcnRj ID0gTlVMTDsKLQlzdHJ1Y3QgZHB1X2NydGNfaXJxX2luZm8gKm5vZGUgPSBOVUxMOwotCXN0cnVj dCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlib29sIGZv dW5kID0gZmFsc2U7Ci0JaW50IHJldDsKLQotCWNydGMgPSB0b19kcHVfY3J0YyhjcnRjX2RybSk7 Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCWxpc3RfZm9y X2VhY2hfZW50cnkobm9kZSwgJmNydGMtPnVzZXJfZXZlbnRfbGlzdCwgbGlzdCkgewotCQlpZiAo bm9kZS0+ZXZlbnQgPT0gZXZlbnQpIHsKLQkJCWxpc3RfZGVsKCZub2RlLT5saXN0KTsKLQkJCWZv dW5kID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmNydGMtPnNwaW5fbG9jaywgZmxhZ3MpOwotCi0JLyogZXZlbnQgYWxyZWFkeSBkaXNhYmxlZCAq LwotCWlmICghZm91bmQpCi0JCXJldHVybiAwOwotCi0JLyoqCi0JICogY3J0YyBpcyBkaXNhYmxl ZCBpbnRlcnJ1cHRzIGFyZSBjbGVhcmVkIHJlbW92ZSBmcm9tIHRoZSBsaXN0LAotCSAqIG5vIG5l ZWQgdG8gZGlzYWJsZS9kZS1yZWdpc3Rlci4KLQkgKi8KLQlpZiAoIWNydGNfZHJtLT5lbmFibGVk KSB7Ci0JCWtmcmVlKG5vZGUpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcHJpdiA9IGttcy0+ZGV2LT5k ZXZfcHJpdmF0ZTsKLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBr bXMtPmNvcmVfY2xpZW50LCB0cnVlKTsKLQlyZXQgPSBub2RlLT5mdW5jKGNydGNfZHJtLCBmYWxz ZSwgJm5vZGUtPmlycSk7Ci0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRs ZSwga21zLT5jb3JlX2NsaWVudCwgZmFsc2UpOwotCXJldHVybiByZXQ7Ci19Ci0KLWludCBkcHVf Y3J0Y19yZWdpc3Rlcl9jdXN0b21fZXZlbnQoc3RydWN0IGRwdV9rbXMgKmttcywKLQkJc3RydWN0 IGRybV9jcnRjICpjcnRjX2RybSwgdTMyIGV2ZW50LCBib29sIGVuKQotewotCXN0cnVjdCBkcHVf Y3J0YyAqY3J0YyA9IE5VTEw7Ci0JaW50IHJldDsKLQotCWNydGMgPSB0b19kcHVfY3J0YyhjcnRj X2RybSk7Ci0JaWYgKCFjcnRjIHx8ICFrbXMgfHwgIWttcy0+ZGV2KSB7Ci0JCURSTV9FUlJPUigi aW52YWxpZCBkcHVfY3J0YyAlcEsga21zICVwSyBkZXYgJXBLXG4iLCBjcnRjLAotCQkJa21zLCAo KGttcykgPyAoa21zLT5kZXYpIDogTlVMTCkpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlp ZiAoZW4pCi0JCXJldCA9IF9kcHVfY3J0Y19ldmVudF9lbmFibGUoa21zLCBjcnRjX2RybSwgZXZl bnQpOwotCWVsc2UKLQkJcmV0ID0gX2RwdV9jcnRjX2V2ZW50X2Rpc2FibGUoa21zLCBjcnRjX2Ry bSwgZXZlbnQpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBkcHVfY3J0Y19wb3dl cl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGNfZHJtLAotCWJvb2wgZW4s IHN0cnVjdCBkcHVfaXJxX2NhbGxiYWNrICppcnEpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRp YyBpbnQgZHB1X2NydGNfaWRsZV9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1Y3QgZHJtX2NydGMgKmNy dGNfZHJtLAotCWJvb2wgZW4sIHN0cnVjdCBkcHVfaXJxX2NhbGxiYWNrICppcnEpCi17Ci0JcmV0 dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAppbmRleCA4 NzU2YjJiLi45MzA0MDU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmgKQEAgLTIyMyw3ICsyMjMsNiBAQCBzdHJ1Y3QgZHB1X2NydGMgewogCXN0cnVjdCBsaXN0X2hl YWQgZGlydHlfbGlzdDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGFkX2RpcnR5OwogCXN0cnVjdCBsaXN0 X2hlYWQgYWRfYWN0aXZlOwotCXN0cnVjdCBsaXN0X2hlYWQgdXNlcl9ldmVudF9saXN0OwogCiAJ c3RydWN0IG11dGV4IGNydGNfbG9jazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2ttcy5jCmluZGV4IGY2ZmVhMjEuLjU3ZDgwOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfa21zLmMKQEAgLTkwLDggKzkwLDYgQEAKIAogc3RhdGljIGludCBkcHVfa21zX2h3 X2luaXQoc3RydWN0IG1zbV9rbXMgKmttcyk7CiBzdGF0aWMgaW50IF9kcHVfa21zX21tdV9kZXN0 cm95KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKTsKLXN0YXRpYyBpbnQgX2RwdV9rbXNfcmVnaXN0 ZXJfZXZlbnRzKHN0cnVjdCBtc21fa21zICprbXMsCi0JCXN0cnVjdCBkcm1fbW9kZV9vYmplY3Qg Km9iaiwgdTMyIGV2ZW50LCBib29sIGVuKTsKIGJvb2wgZHB1X2lzX2N1c3RvbV9jbGllbnQodm9p ZCkKIHsKIAlyZXR1cm4gZHB1Y3VzdG9tOwpAQCAtMTc0NSw3ICsxNzQzLDYgQEAgc3RhdGljIGlu dCBkcHVfa21zX3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJLnBtX3N1c3BlbmQgICAg ICA9IGRwdV9rbXNfcG1fc3VzcGVuZCwKIAkucG1fcmVzdW1lICAgICAgID0gZHB1X2ttc19wbV9y ZXN1bWUsCiAJLmRlc3Ryb3kgICAgICAgICA9IGRwdV9rbXNfZGVzdHJveSwKLQkucmVnaXN0ZXJf ZXZlbnRzID0gX2RwdV9rbXNfcmVnaXN0ZXJfZXZlbnRzLAogCS5nZXRfYWRkcmVzc19zcGFjZSA9 IF9kcHVfa21zX2dldF9hZGRyZXNzX3NwYWNlLAogCS5wb3N0b3BlbiA9IF9kcHVfa21zX3Bvc3Rf b3BlbiwKIH07CkBAIC0yMTYyLDMxICsyMTU5LDMgQEAgc3RydWN0IG1zbV9rbXMgKmRwdV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiAmZHB1X2ttcy0+YmFzZTsKIH0K IAotc3RhdGljIGludCBfZHB1X2ttc19yZWdpc3Rlcl9ldmVudHMoc3RydWN0IG1zbV9rbXMgKmtt cywKLQkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLCB1MzIgZXZlbnQsIGJvb2wgZW4pCi17 Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKLQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubiA9IE5VTEw7Ci0Jc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSBO VUxMOwotCi0JaWYgKCFrbXMgfHwgIW9iaikgewotCQlEUFVfRVJST1IoImludmFsaWQgYXJndW1l bnQga21zICVwSyBvYmogJXBLXG4iLCBrbXMsIG9iaik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0K LQotCWRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7Ci0Jc3dpdGNoIChvYmotPnR5cGUpIHsKLQlj YXNlIERSTV9NT0RFX09CSkVDVF9DUlRDOgotCQljcnRjID0gb2JqX3RvX2NydGMob2JqKTsKLQkJ cmV0ID0gZHB1X2NydGNfcmVnaXN0ZXJfY3VzdG9tX2V2ZW50KGRwdV9rbXMsIGNydGMsIGV2ZW50 LCBlbik7Ci0JCWJyZWFrOwotCWNhc2UgRFJNX01PREVfT0JKRUNUX0NPTk5FQ1RPUjoKLQkJY29u biA9IG9ial90b19jb25uZWN0b3Iob2JqKTsKLQkJcmV0ID0gZHB1X2Nvbm5lY3Rvcl9yZWdpc3Rl cl9jdXN0b21fZXZlbnQoZHB1X2ttcywgY29ubiwgZXZlbnQsCi0JCQkJZW4pOwotCQlicmVhazsK LQl9Ci0KLQlyZXR1cm4gcmV0OwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwppbmRleCA1YjEyZTg3Li5h NzEwYjYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpAQCAtMTIyNiwxODAgKzEyMjYsNiBAQCBzdGF0 aWMgaW50IG1zbV9pb2N0bF9zdWJtaXRxdWV1ZV9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCXJldHVybiBtc21fc3VibWl0cXVldWVfcmVtb3ZlKGZpbGUtPmRyaXZl cl9wcml2LCBpZCk7CiB9CiAKLXN0YXRpYyBpbnQgbXNtX2RybV9vYmplY3Rfc3VwcG9ydHNfZXZl bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0IGRybV9tc21fZXZlbnRfcmVxICpy ZXEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKLXsKLQlpbnQgcmV0ID0gLUVJTlZBTDsKLQlzdHJ1 Y3QgZHJtX21vZGVfb2JqZWN0ICphcmdfb2JqOwotCi0JYXJnX29iaiA9IGRybV9tb2RlX29iamVj dF9maW5kKGRldiwgZmlsZSwgcmVxLT5vYmplY3RfaWQsIHJlcS0+b2JqZWN0X3R5cGUpOwotCWlm ICghYXJnX29iaikKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0KLQlzd2l0Y2ggKGFyZ19vYmotPnR5cGUp IHsKLQljYXNlIERSTV9NT0RFX09CSkVDVF9DUlRDOgotCWNhc2UgRFJNX01PREVfT0JKRUNUX0NP Tk5FQ1RPUjoKLQkJcmV0ID0gMDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0ID0gLUVPUE5P VFNVUFA7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgbXNt X3JlZ2lzdGVyX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0Jc3RydWN0IGRybV9tc21f ZXZlbnRfcmVxICpyZXEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgYm9vbCBlbikKLXsKLQlpbnQg cmV0ID0gLUVJTlZBTDsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQlzdHJ1Y3QgbXNtX2ttcyAqa21zID0gcHJpdi0+a21zOwotCXN0cnVjdCBkcm1f bW9kZV9vYmplY3QgKmFyZ19vYmo7Ci0KLQlhcmdfb2JqID0gZHJtX21vZGVfb2JqZWN0X2ZpbmQo ZGV2LCBmaWxlLCByZXEtPm9iamVjdF9pZCwgcmVxLT5vYmplY3RfdHlwZSk7Ci0JaWYgKCFhcmdf b2JqKQotCQlyZXR1cm4gLUVOT0VOVDsKLQotCXJldCA9IGttcy0+ZnVuY3MtPnJlZ2lzdGVyX2V2 ZW50cyhrbXMsIGFyZ19vYmosIHJlcS0+ZXZlbnQsIGVuKTsKLQlyZXR1cm4gcmV0OwotfQotCi1z dGF0aWMgaW50IG1zbV9ldmVudF9jbGllbnRfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK LQkJc3RydWN0IGRybV9tc21fZXZlbnRfcmVxICpyZXFfZXZlbnQsIGJvb2wgbG9ja2VkKQotewot CXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXVuc2ln bmVkIGxvbmcgZmxhZyA9IDA7Ci0Jc3RydWN0IG1zbV9kcm1fZXZlbnQgKm5vZGU7Ci0JaW50IGNv dW50ID0gMDsKLQotCWlmICghbG9ja2VkKQotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVu dF9sb2NrLCBmbGFnKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZwcml2LT5jbGllbnRf ZXZlbnRfbGlzdCwgYmFzZS5saW5rKSB7Ci0JCWlmIChub2RlLT5ldmVudC50eXBlID09IHJlcV9l dmVudC0+ZXZlbnQgJiYKLQkJCW5vZGUtPmluZm8ub2JqZWN0X2lkID09IHJlcV9ldmVudC0+b2Jq ZWN0X2lkKQotCQkJY291bnQrKzsKLQl9Ci0JaWYgKCFsb2NrZWQpCi0JCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZyk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0K LXN0YXRpYyBpbnQgbXNtX2lvY3RsX3JlZ2lzdGVyX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCi0JCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKLXsKLQlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJt X21zbV9ldmVudF9yZXEgKnJlcV9ldmVudCA9IGRhdGE7Ci0Jc3RydWN0IG1zbV9kcm1fZXZlbnQg KmNsaWVudCwgKm5vZGU7Ci0JdW5zaWduZWQgbG9uZyBmbGFnID0gMDsKLQlib29sIGR1cF9yZXF1 ZXN0ID0gZmFsc2U7Ci0JaW50IHJldCA9IDAsIGNvdW50ID0gMDsKLQotCXJldCA9IG1zbV9kcm1f b2JqZWN0X3N1cHBvcnRzX2V2ZW50KGRldiwgcmVxX2V2ZW50LCBmaWxlKTsKLQlpZiAocmV0KSB7 Ci0JCURSTV9FUlJPUigidW5zdXBwb3J0ZWQgZXZlbnQgJXggb2JqZWN0ICV4IG9iamVjdCBpZCAl ZFxuIiwKLQkJCXJlcV9ldmVudC0+ZXZlbnQsIHJlcV9ldmVudC0+b2JqZWN0X3R5cGUsCi0JCQly ZXFfZXZlbnQtPm9iamVjdF9pZCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0Jc3Bpbl9sb2NrX2ly cXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShub2Rl LCAmcHJpdi0+Y2xpZW50X2V2ZW50X2xpc3QsIGJhc2UubGluaykgewotCQlpZiAobm9kZS0+YmFz ZS5maWxlX3ByaXYgIT0gZmlsZSkKLQkJCWNvbnRpbnVlOwotCQlpZiAobm9kZS0+ZXZlbnQudHlw ZSA9PSByZXFfZXZlbnQtPmV2ZW50ICYmCi0JCQlub2RlLT5pbmZvLm9iamVjdF9pZCA9PSByZXFf ZXZlbnQtPm9iamVjdF9pZCkgewotCQkJRFJNX0RFQlVHKCJkdXBsaWNhdGUgcmVxdWVzdCBmb3Ig ZXZlbnQgJXggb2JqIGlkICVkXG4iLAotCQkJCW5vZGUtPmV2ZW50LnR5cGUsIG5vZGUtPmluZm8u b2JqZWN0X2lkKTsKLQkJCWR1cF9yZXF1ZXN0ID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQl9Ci0JfQot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZyk7Ci0KLQlpZiAo ZHVwX3JlcXVlc3QpCi0JCXJldHVybiAtRUFMUkVBRFk7Ci0KLQljbGllbnQgPSBremFsbG9jKHNp emVvZigqY2xpZW50KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjbGllbnQpCi0JCXJldHVybiAtRU5P TUVNOwotCi0JY2xpZW50LT5iYXNlLmZpbGVfcHJpdiA9IGZpbGU7Ci0JY2xpZW50LT5iYXNlLmV2 ZW50ID0gJmNsaWVudC0+ZXZlbnQ7Ci0JY2xpZW50LT5ldmVudC50eXBlID0gcmVxX2V2ZW50LT5l dmVudDsKLQltZW1jcHkoJmNsaWVudC0+aW5mbywgcmVxX2V2ZW50LCBzaXplb2YoY2xpZW50LT5p bmZvKSk7Ci0KLQkvKiBHZXQgdGhlIGNvdW50IG9mIGNsaWVudHMgdGhhdCBoYXZlIHJlZ2lzdGVy ZWQgZm9yIGV2ZW50LgotCSAqIEV2ZW50IHNob3VsZCBiZSBlbmFibGVkIGZvciBmaXJzdCBjbGll bnQsIGZvciBzdWJzZXF1ZW50IGVuYWJsZQotCSAqIGNhbGxzIGFkZCB0byBjbGllbnQgbGlzdCBh bmQgcmV0dXJuLgotCSAqLwotCWNvdW50ID0gbXNtX2V2ZW50X2NsaWVudF9jb3VudChkZXYsIHJl cV9ldmVudCwgZmFsc2UpOwotCS8qIEFkZCBjdXJyZW50IGNsaWVudCB0byBsaXN0ICovCi0Jc3Bp bl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZyk7Ci0JbGlzdF9hZGRfdGFpbCgm Y2xpZW50LT5iYXNlLmxpbmssICZwcml2LT5jbGllbnRfZXZlbnRfbGlzdCk7Ci0Jc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFnKTsKLQotCWlmIChjb3VudCkKLQkJ cmV0dXJuIDA7Ci0KLQlyZXQgPSBtc21fcmVnaXN0ZXJfZXZlbnQoZGV2LCByZXFfZXZlbnQsIGZp bGUsIHRydWUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIGV2 ZW50ICV4IG9iamVjdCAleCBvYmplY3QgaWQgJWRcbiIsCi0JCQlyZXFfZXZlbnQtPmV2ZW50LCBy ZXFfZXZlbnQtPm9iamVjdF90eXBlLAotCQkJcmVxX2V2ZW50LT5vYmplY3RfaWQpOwotCQlzcGlu X2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFnKTsKLQkJbGlzdF9kZWwoJmNsaWVu dC0+YmFzZS5saW5rKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2Nr LCBmbGFnKTsKLQkJa2ZyZWUoY2xpZW50KTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGlj IGludCBtc21faW9jdGxfZGVyZWdpc3Rlcl9ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAotCQkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKLXsKLQlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX21z bV9ldmVudF9yZXEgKnJlcV9ldmVudCA9IGRhdGE7Ci0Jc3RydWN0IG1zbV9kcm1fZXZlbnQgKmNs aWVudCA9IE5VTEwsICpub2RlLCAqdGVtcDsKLQl1bnNpZ25lZCBsb25nIGZsYWcgPSAwOwotCWlu dCBjb3VudCA9IDA7Ci0JYm9vbCBmb3VuZCA9IGZhbHNlOwotCWludCByZXQgPSAwOwotCi0JcmV0 ID0gbXNtX2RybV9vYmplY3Rfc3VwcG9ydHNfZXZlbnQoZGV2LCByZXFfZXZlbnQsIGZpbGUpOwot CWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJ1bnN1cHBvcnRlZCBldmVudCAleCBvYmplY3QgJXgg b2JqZWN0IGlkICVkXG4iLAotCQkJcmVxX2V2ZW50LT5ldmVudCwgcmVxX2V2ZW50LT5vYmplY3Rf dHlwZSwKLQkJCXJlcV9ldmVudC0+b2JqZWN0X2lkKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFnKTsKLQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUobm9kZSwgdGVtcCwgJnByaXYtPmNsaWVudF9ldmVudF9saXN0LAotCQkJYmFz ZS5saW5rKSB7Ci0JCWlmIChub2RlLT5ldmVudC50eXBlID09IHJlcV9ldmVudC0+ZXZlbnQgJiYK LQkJICAgIG5vZGUtPmluZm8ub2JqZWN0X2lkID09IHJlcV9ldmVudC0+b2JqZWN0X2lkICYmCi0J CSAgICBub2RlLT5iYXNlLmZpbGVfcHJpdiA9PSBmaWxlKSB7Ci0JCQljbGllbnQgPSBub2RlOwot CQkJbGlzdF9kZWwoJmNsaWVudC0+YmFzZS5saW5rKTsKLQkJCWZvdW5kID0gdHJ1ZTsKLQkJCWtm cmVlKGNsaWVudCk7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZkZXYtPmV2ZW50X2xvY2ssIGZsYWcpOwotCi0JaWYgKCFmb3VuZCkKLQkJcmV0dXJuIC1FTk9F TlQ7Ci0KLQljb3VudCA9IG1zbV9ldmVudF9jbGllbnRfY291bnQoZGV2LCByZXFfZXZlbnQsIGZh bHNlKTsKLQlpZiAoIWNvdW50KQotCQlyZXQgPSBtc21fcmVnaXN0ZXJfZXZlbnQoZGV2LCByZXFf ZXZlbnQsIGZpbGUsIGZhbHNlKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KIHZvaWQgbXNtX21vZGVf b2JqZWN0X2V2ZW50X25vdGlmeShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiAJCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZXZlbnQgKmV2ZW50LCB1OCAqcGF5bG9hZCkK IHsKQEAgLTE0NTIsMjkgKzEyNzgsNiBAQCB2b2lkIG1zbV9tb2RlX29iamVjdF9ldmVudF9ub3Rp Znkoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAogCiBzdGF0aWMgaW50IG1zbV9yZWxlYXNl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewotCXN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcm1fbWlub3Ig Km1pbm9yID0gZmlsZV9wcml2LT5taW5vcjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlu b3ItPmRldjsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgbXNtX2RybV9ldmVudCAqbm9kZSwgKnRlbXA7Ci0JdTMyIGNvdW50OwotCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2Nr LCBmbGFncyk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5vZGUsIHRlbXAsICZwcml2LT5j bGllbnRfZXZlbnRfbGlzdCwKLQkJCWJhc2UubGluaykgewotCQlpZiAobm9kZS0+YmFzZS5maWxl X3ByaXYgIT0gZmlsZV9wcml2KQotCQkJY29udGludWU7Ci0JCWxpc3RfZGVsKCZub2RlLT5iYXNl LmxpbmspOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdz KTsKLQkJY291bnQgPSBtc21fZXZlbnRfY2xpZW50X2NvdW50KGRldiwgJm5vZGUtPmluZm8sIHRy dWUpOwotCQlpZiAoIWNvdW50KQotCQkJbXNtX3JlZ2lzdGVyX2V2ZW50KGRldiwgJm5vZGUtPmlu Zm8sIGZpbGVfcHJpdiwgZmFsc2UpOwotCQlrZnJlZShub2RlKTsKLQkJc3Bpbl9sb2NrX2lycXNh dmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKLQogCXJldHVybiBkcm1fcmVsZWFzZShpbm9kZSwg ZmlscCk7CiB9CiAKQEAgLTE1OTUsMTAgKzEzOTgsNiBAQCBpbnQgbXNtX2lvY3RsX3JtZmIyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAjaWZkZWYgQ09ORklHX0RSTV9NU01f V1JJVEVCQUNLCiAJRFJNX0lPQ1RMX0RFRl9EUlYoRFBVX1dCX0NPTkZJRywgZHB1X3diX2NvbmZp ZywgRFJNX1VOTE9DS0VEfERSTV9BVVRIKSwKICNlbmRpZgotCURSTV9JT0NUTF9ERUZfRFJWKE1T TV9SRUdJU1RFUl9FVkVOVCwgIG1zbV9pb2N0bF9yZWdpc3Rlcl9ldmVudCwKLQkJCSAgRFJNX1VO TE9DS0VEfERSTV9DT05UUk9MX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihNU01fREVSRUdJ U1RFUl9FVkVOVCwgIG1zbV9pb2N0bF9kZXJlZ2lzdGVyX2V2ZW50LAotCQkJICBEUk1fVU5MT0NL RUR8RFJNX0NPTlRST0xfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKE1TTV9STUZCMiwgbXNt X2lvY3RsX3JtZmIyLAogCQkJICBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogfTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fa21zLmgKaW5kZXggMjU4MDBjMC4uMGFlMWRlYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f a21zLmgKQEAgLTk0LDggKzk0LDYgQEAgc3RydWN0IG1zbV9rbXNfZnVuY3MgewogCXZvaWQgKCpw cmVjbG9zZSkoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9maWxlICpmaWxlKTsKIAl2 b2lkICgqcG9zdGNsb3NlKShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpOwogCXZvaWQgKCpsYXN0Y2xvc2UpKHN0cnVjdCBtc21fa21zICprbXMpOwotCWludCAoKnJl Z2lzdGVyX2V2ZW50cykoc3RydWN0IG1zbV9rbXMgKmttcywKLQkJCXN0cnVjdCBkcm1fbW9kZV9v YmplY3QgKm9iaiwgdTMyIGV2ZW50LCBib29sIGVuKTsKIAl2b2lkICgqc2V0X2VuY29kZXJfbW9k ZSkoc3RydWN0IG1zbV9rbXMgKmttcywKIAkJCQkgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAogCQkJCSBib29sIGNtZF9tb2RlKTsKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91 bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZyZWVkcmVubwo=