From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH v3 1/2] drm/msm/dsi-staging: remove support for partial update Date: Thu, 1 Mar 2018 16:52:34 -0800 Message-ID: <1519951955-27068-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: jeykumar-jfJNa2p1gH1BDgjK7y7TUQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Jeykumar Sankaran List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZlIHN1cHBvcnQgcGFydGlhbCB1cGRhdGUgYW5kIHJlbGF0ZWQgY2hhbmdlcyBmcm9tIGRz aS1zdGFnaW5nCnNpbmNlIHRoZSBEUFUgZGVwZW5kZW5jaWVzIGFyZSBnZXR0aW5nIGNsZWFuZWQg dXAuCgpjaGFuZ2VzIHNpbmNlIHYxOgoJLSByZW1vdmUgdW51c2VkIGNvZGUgY2hhbmdlcyBpbnN0 ZWFkIG9mIGhpZGluZyB1bmRlciBjb21waWxhdGlvbiBmbGFnCgktIHJlbW92ZSBhbGwgcmVmZXJl bmNlcyB0byBwYXJ0aWFsIFJPSS4KCmNoYW5nZXMgc2luY2UgdjI6CgktIGNsZWFudXAgcGFydGlh bCB1cGRhdGUgUk9JIGluIHBhbmVsIGZpbGVzCgpTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5r YXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNp LXN0YWdpbmcvZHNpX2N0cmwuYyAgICB8ICAyMCAtLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNp LXN0YWdpbmcvZHNpX2N0cmwuaCAgICB8ICAxMiAtLQogZHJpdmVycy9ncHUvZHJtL21zbS9kc2kt c3RhZ2luZy9kc2lfZGVmcy5oICAgIHwgICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0 YWdpbmcvZHNpX2Rpc3BsYXkuYyB8IDEwNCArLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L21zbS9kc2ktc3RhZ2luZy9kc2lfZGlzcGxheS5oIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0v bXNtL2RzaS1zdGFnaW5nL2RzaV9kcm0uYyAgICAgfCAgMjYgKy0tLQogZHJpdmVycy9ncHUvZHJt L21zbS9kc2ktc3RhZ2luZy9kc2lfZHJtLmggICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v bXNtL2RzaS1zdGFnaW5nL2RzaV9wYW5lbC5jICAgfCAyMDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcvZHNpX3BhbmVsLmggICB8ICAg NSAtCiA5IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMzcxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcvZHNpX2N0cmwuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcvZHNpX2N0cmwuYwppbmRleCA1YWFkYmU1 Li4xNzk4ZjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2Rz aV9jdHJsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfY3RybC5j CkBAIC0xODA5LDI2ICsxODA5LDYgQEAgaW50IGRzaV9jdHJsX3NldHVwKHN0cnVjdCBkc2lfY3Ry bCAqZHNpX2N0cmwpCiAJcmV0dXJuIHJjOwogfQogCi1pbnQgZHNpX2N0cmxfc2V0X3JvaShzdHJ1 Y3QgZHNpX2N0cmwgKmRzaV9jdHJsLCBzdHJ1Y3QgZHNpX3JlY3QgKnJvaSwKLQkJYm9vbCAqY2hh bmdlZCkKLXsKLQlpbnQgcmMgPSAwOwotCi0JaWYgKCFkc2lfY3RybCB8fCAhcm9pIHx8ICFjaGFu Z2VkKSB7Ci0JCXByX2VycigiSW52YWxpZCBwYXJhbXNcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsK LQl9Ci0KLQltdXRleF9sb2NrKCZkc2lfY3RybC0+Y3RybF9sb2NrKTsKLQlpZiAoIWRzaV9yZWN0 X2lzX2VxdWFsKCZkc2lfY3RybC0+cm9pLCByb2kpKSB7Ci0JCSpjaGFuZ2VkID0gdHJ1ZTsKLQkJ bWVtY3B5KCZkc2lfY3RybC0+cm9pLCByb2ksIHNpemVvZihkc2lfY3RybC0+cm9pKSk7Ci0JfSBl bHNlCi0JCSpjaGFuZ2VkID0gZmFsc2U7Ci0JbXV0ZXhfdW5sb2NrKCZkc2lfY3RybC0+Y3RybF9s b2NrKTsKLQlyZXR1cm4gcmM7Ci19Ci0KIC8qKgogICogZHNpX2N0cmxfcGh5X3Jlc2V0X2NvbmZp ZygpIC0gTWFzay91bm1hc2sgcHJvcGFnYXRpb24gb2YgYWhiIHJlc2V0IHNpZ25hbAogICoJdG8g RFNJIFBIWSBoYXJkd2FyZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0 YWdpbmcvZHNpX2N0cmwuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcvZHNpX2N0 cmwuaAppbmRleCAzMGI0ZGFiLi4xODI2MzcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2RzaS1zdGFnaW5nL2RzaV9jdHJsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kt c3RhZ2luZy9kc2lfY3RybC5oCkBAIC00MzYsMTggKzQzNiw2IEBAIGludCBkc2lfY3RybF9hc3lu Y190aW1pbmdfdXBkYXRlKHN0cnVjdCBkc2lfY3RybCAqZHNpX2N0cmwsCiBpbnQgZHNpX2N0cmxf c2V0dXAoc3RydWN0IGRzaV9jdHJsICpkc2lfY3RybCk7CiAKIC8qKgotICogZHNpX2N0cmxfc2V0 X3JvaSgpIC0gU2V0IERTSSBjb250cm9sbGVyJ3MgcmVnaW9uIG9mIGludGVyZXN0Ci0gKiBAZHNp X2N0cmw6ICAgICAgICBEU0kgY29udHJvbGxlciBoYW5kbGUuCi0gKiBAcm9pOiAgICAgICAgICAg ICBSZWdpb24gb2YgaW50ZXJlc3QgcmVjdGFuZ2xlLCBtdXN0IGJlIGxlc3MgdGhhbiBtb2RlIGJv dW5kcwotICogQGNoYW5nZWQ6ICAgICAgICAgT3V0cHV0IHBhcmFtZXRlciwgc2V0IHRvIHRydWUg b2YgdGhlIGNvbnRyb2xsZXIncyBST0kgd2FzCi0gKiAgICAgICAgICAgICAgICAgICBkaXJ0aWVk IGJ5IHNldHRpbmcgdGhlIG5ldyBST0ksIGFuZCBEQ1MgY21kIHVwZGF0ZSBuZWVkZWQKLSAqCi0g KiBSZXR1cm46IGVycm9yIGNvZGUuCi0gKi8KLWludCBkc2lfY3RybF9zZXRfcm9pKHN0cnVjdCBk c2lfY3RybCAqZHNpX2N0cmwsIHN0cnVjdCBkc2lfcmVjdCAqcm9pLAotCQlib29sICpjaGFuZ2Vk KTsKLQotLyoqCiAgKiBkc2lfY3RybF9zZXRfdHBnX3N0YXRlKCkgLSBlbmFibGUvZGlzYWJsZSB0 ZXN0IHBhdHRlcm4gb24gdGhlIGNvbnRyb2xsZXIKICAqIEBkc2lfY3RybDogICAgICAgICAgRFNJ IGNvbnRyb2xsZXIgaGFuZGxlLgogICogQG9uOiAgICAgICAgICAgICAgICBlbmFibGUvZGlzYWJs ZSB0ZXN0IHBhdHRlcm4uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFn aW5nL2RzaV9kZWZzLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kZWZz LmgKaW5kZXggOTM4NWNjZS4uMDJjOGQ3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kc2ktc3RhZ2luZy9kc2lfZGVmcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0 YWdpbmcvZHNpX2RlZnMuaApAQCAtMjM5LDcgKzIzOSw2IEBAIGVudW0gZHNpX2RmcHNfdHlwZSB7 CiAgKiBARFNJX0NNRF9TRVRfTFAyOiAgICAgICAgICAgICAgICAgICAgICAgTG93IHBvd2VyIG1v ZGUgMgogICogQERTSV9DTURfU0VUX05PTFA6ICAgICAgICAgICAgICAgICAgICAgIExvdyBwb3dl ciBtb2RlIGRpc2FibGUKICAqIEBEU0lfQ01EX1NFVF9QUFM6ICAgICAgICAgICAgICAgICAgICAg ICBEU0MgUFBTIGNvbW1hbmQKLSAqIEBEU0lfQ01EX1NFVF9ST0k6CQkJICAgUGFuZWwgUk9JIHVw ZGF0ZQogICogQERTSV9DTURfU0VUX1RJTUlOR19TV0lUQ0g6ICAgICAgICAgICAgIFRpbWluZyBz d2l0Y2gKICAqIEBEU0lfQ01EX1NFVF9QT1NUX1RJTUlOR19TV0lUQ0g6ICAgICAgICBQb3N0IHRp bWluZyBzd2l0Y2gKICAqIEBEU0lfQ01EX1NFVF9NQVgKQEAgLTI2Myw3ICsyNjIsNiBAQCBlbnVt IGRzaV9jbWRfc2V0X3R5cGUgewogCURTSV9DTURfU0VUX0xQMiwKIAlEU0lfQ01EX1NFVF9OT0xQ LAogCURTSV9DTURfU0VUX1BQUywKLQlEU0lfQ01EX1NFVF9ST0ksCiAJRFNJX0NNRF9TRVRfVElN SU5HX1NXSVRDSCwKIAlEU0lfQ01EX1NFVF9QT1NUX1RJTUlOR19TV0lUQ0gsCiAJRFNJX0NNRF9T RVRfTUFYCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kaXNwbGF5LmMK aW5kZXggNzIwNTVkYy4uMzFiN2Q3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k c2ktc3RhZ2luZy9kc2lfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0 YWdpbmcvZHNpX2Rpc3BsYXkuYwpAQCAtMzQxNCw5ICszNDE0LDYgQEAgaW50IGRzaV9kaXNwbGF5 X2dldF9pbmZvKHN0cnVjdCBtc21fZGlzcGxheV9pbmZvICppbmZvLCB2b2lkICpkaXNwKQogCQli cmVhazsKIAl9CiAKLQltZW1jcHkoJmluZm8tPnJvaV9jYXBzLCAmZGlzcGxheS0+cGFuZWwtPnJv aV9jYXBzLAotCQkJc2l6ZW9mKGluZm8tPnJvaV9jYXBzKSk7Ci0KIGVycm9yOgogCW11dGV4X3Vu bG9jaygmZGlzcGxheS0+ZGlzcGxheV9sb2NrKTsKIAlyZXR1cm4gcmM7CkBAIC0zOTQxLDEwNCAr MzkzOCw3IEBAIGludCBkc2lfZGlzcGxheV9wcmVwYXJlKHN0cnVjdCBkc2lfZGlzcGxheSAqZGlz cGxheSkKIAlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgZHNpX2Rpc3BsYXlfY2FsY19jdHJs X3JvaShjb25zdCBzdHJ1Y3QgZHNpX2Rpc3BsYXkgKmRpc3BsYXksCi0JCWNvbnN0IHN0cnVjdCBk c2lfZGlzcGxheV9jdHJsICpjdHJsLAotCQljb25zdCBzdHJ1Y3QgbXNtX3JvaV9saXN0ICpyZXFf cm9pcywKLQkJc3RydWN0IGRzaV9yZWN0ICpvdXRfcm9pKQotewotCWNvbnN0IHN0cnVjdCBkc2lf cmVjdCAqYm91bmRzID0gJmN0cmwtPmN0cmwtPm1vZGVfYm91bmRzOwotCXN0cnVjdCBkc2lfcmVj dCByZXFfcm9pID0geyAwIH07Ci0JaW50IHJjID0gMDsKLQotCWlmIChyZXFfcm9pcy0+bnVtX3Jl Y3RzID4gZGlzcGxheS0+cGFuZWwtPnJvaV9jYXBzLm51bV9yb2kpIHsKLQkJcHJfZXJyKCJyZXF1 ZXN0IGZvciAlZCByb2lzIGdyZWF0ZXIgdGhhbiBtYXggJWRcbiIsCi0JCQkJcmVxX3JvaXMtPm51 bV9yZWN0cywKLQkJCQlkaXNwbGF5LT5wYW5lbC0+cm9pX2NhcHMubnVtX3JvaSk7Ci0JCXJjID0g LUVJTlZBTDsKLQkJZ290byBleGl0OwotCX0KLQotCS8qKgotCSAqIGlmIG5vIHJvaXMsIHVzZXIg d2FudHMgdG8gcmVzZXQgYmFjayB0byBmdWxsIHJlc29sdXRpb24KLQkgKiBub3RlOiBoX2FjdGl2 ZSBpcyBhbHJlYWR5IGRpdmlkZWQgYnkgY3RybF9jb3VudAotCSAqLwotCWlmICghcmVxX3JvaXMt Pm51bV9yZWN0cykgewotCQkqb3V0X3JvaSA9ICpib3VuZHM7Ci0JCWdvdG8gZXhpdDsKLQl9Ci0K LQkvKiBpbnRlcnNlY3Qgd2l0aCB0aGUgYm91bmRzICovCi0JcmVxX3JvaS54ID0gcmVxX3JvaXMt PnJvaVswXS54MTsKLQlyZXFfcm9pLnkgPSByZXFfcm9pcy0+cm9pWzBdLnkxOwotCXJlcV9yb2ku dyA9IHJlcV9yb2lzLT5yb2lbMF0ueDIgLSByZXFfcm9pcy0+cm9pWzBdLngxOwotCXJlcV9yb2ku aCA9IHJlcV9yb2lzLT5yb2lbMF0ueTIgLSByZXFfcm9pcy0+cm9pWzBdLnkxOwotCWRzaV9yZWN0 X2ludGVyc2VjdCgmcmVxX3JvaSwgYm91bmRzLCBvdXRfcm9pKTsKLQotZXhpdDoKLQkvKiBhZGp1 c3QgdGhlIGN0cmwgb3JpZ2luIHRvIGJlIHRvcCBsZWZ0IHdpdGhpbiB0aGUgY3RybCAqLwotCW91 dF9yb2ktPnggPSBvdXRfcm9pLT54IC0gYm91bmRzLT54OwotCi0JcHJfZGVidWcoImN0cmwlZDol ZDogcmVxICglZCwlZCwlZCwlZCkgYm5kICglZCwlZCwlZCwlZCkgb3V0ICglZCwlZCwlZCwlZClc biIsCi0JCQljdHJsLT5kc2lfY3RybF9pZHgsIGN0cmwtPmN0cmwtPmNlbGxfaW5kZXgsCi0JCQly ZXFfcm9pLngsIHJlcV9yb2kueSwgcmVxX3JvaS53LCByZXFfcm9pLmgsCi0JCQlib3VuZHMtPngs IGJvdW5kcy0+eSwgYm91bmRzLT53LCBib3VuZHMtPmgsCi0JCQlvdXRfcm9pLT54LCBvdXRfcm9p LT55LCBvdXRfcm9pLT53LCBvdXRfcm9pLT5oKTsKLQotCXJldHVybiByYzsKLX0KLQotc3RhdGlj IGludCBkc2lfZGlzcGxheV9zZXRfcm9pKHN0cnVjdCBkc2lfZGlzcGxheSAqZGlzcGxheSwKLQkJ c3RydWN0IG1zbV9yb2lfbGlzdCAqcm9pcykKLXsKLQlpbnQgcmMgPSAwOwotCWludCBpOwotCi0J aWYgKCFkaXNwbGF5IHx8ICFyb2lzIHx8ICFkaXNwbGF5LT5wYW5lbCkKLQkJcmV0dXJuIC1FSU5W QUw7Ci0KLQlpZiAoIWRpc3BsYXktPnBhbmVsLT5yb2lfY2Fwcy5lbmFibGVkKQotCQlyZXR1cm4g MDsKLQotCWZvciAoaSA9IDA7IGkgPCBkaXNwbGF5LT5jdHJsX2NvdW50OyBpKyspIHsKLQkJc3Ry dWN0IGRzaV9kaXNwbGF5X2N0cmwgKmN0cmwgPSAmZGlzcGxheS0+Y3RybFtpXTsKLQkJc3RydWN0 IGRzaV9yZWN0IGN0cmxfcm9pOwotCQlib29sIGNoYW5nZWQgPSBmYWxzZTsKLQotCQlyYyA9IGRz aV9kaXNwbGF5X2NhbGNfY3RybF9yb2koZGlzcGxheSwgY3RybCwgcm9pcywgJmN0cmxfcm9pKTsK LQkJaWYgKHJjKSB7Ci0JCQlwcl9lcnIoImRzaV9kaXNwbGF5X2NhbGNfY3RybF9yb2kgZmFpbGVk IHJjICVkXG4iLCByYyk7Ci0JCQlyZXR1cm4gcmM7Ci0JCX0KLQotCQlyYyA9IGRzaV9jdHJsX3Nl dF9yb2koY3RybC0+Y3RybCwgJmN0cmxfcm9pLCAmY2hhbmdlZCk7Ci0JCWlmIChyYykgewotCQkJ cHJfZXJyKCJkc2lfY3RybF9zZXRfcm9pIGZhaWxlZCByYyAlZFxuIiwgcmMpOwotCQkJcmV0dXJu IHJjOwotCQl9Ci0KLQkJaWYgKCFjaGFuZ2VkKQotCQkJY29udGludWU7Ci0KLQkJLyogc2VuZCB0 aGUgbmV3IHJvaSB0byB0aGUgcGFuZWwgdmlhIGRjcyBjb21tYW5kcyAqLwotCQlyYyA9IGRzaV9w YW5lbF9zZW5kX3JvaV9kY3MoZGlzcGxheS0+cGFuZWwsIGksICZjdHJsX3JvaSk7Ci0JCWlmIChy YykgewotCQkJcHJfZXJyKCJkc2lfcGFuZWxfc2V0X3JvaSBmYWlsZWQgcmMgJWRcbiIsIHJjKTsK LQkJCXJldHVybiByYzsKLQkJfQotCi0JCS8qIHJlLXByb2dyYW0gdGhlIGN0cmwgd2l0aCB0aGUg dGltaW5nIGJhc2VkIG9uIHRoZSBuZXcgcm9pICovCi0JCXJjID0gZHNpX2N0cmxfc2V0dXAoY3Ry bC0+Y3RybCk7Ci0JCWlmIChyYykgewotCQkJcHJfZXJyKCJkc2lfY3RybF9zZXR1cCBmYWlsZWQg cmMgJWRcbiIsIHJjKTsKLQkJCXJldHVybiByYzsKLQkJfQotCX0KLQotCXJldHVybiByYzsKLX0K LQotaW50IGRzaV9kaXNwbGF5X3ByZV9raWNrb2ZmKHN0cnVjdCBkc2lfZGlzcGxheSAqZGlzcGxh eSwKLQkJc3RydWN0IG1zbV9kaXNwbGF5X2tpY2tvZmZfcGFyYW1zICpwYXJhbXMpCitpbnQgZHNp X2Rpc3BsYXlfcHJlX2tpY2tvZmYoc3RydWN0IGRzaV9kaXNwbGF5ICpkaXNwbGF5KQogewogCWlu dCByYyA9IDA7CiAKQEAgLTQwNDYsOCArMzk0Niw2IEBAIGludCBkc2lfZGlzcGxheV9wcmVfa2lj a29mZihzdHJ1Y3QgZHNpX2Rpc3BsYXkgKmRpc3BsYXksCiAJaWYgKGRpc3BsYXktPm1pc3JfZW5h YmxlKQogCQlfZHNpX2Rpc3BsYXlfc2V0dXBfbWlzcihkaXNwbGF5KTsKIAotCXJjID0gZHNpX2Rp c3BsYXlfc2V0X3JvaShkaXNwbGF5LCBwYXJhbXMtPnJvaXMpOwotCiAJcmV0dXJuIHJjOwogfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kaXNwbGF5 LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kaXNwbGF5LmgKaW5kZXgg YjIzYTg0ZC4uYTBmOWNjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2ktc3Rh Z2luZy9kc2lfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcv ZHNpX2Rpc3BsYXkuaApAQCAtNTI0LDExICs1MjQsMTAgQEAgaW50IGRzaV9kaXNwbGF5X3NldF9w b3dlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogLyoKICAqIGRzaV9kaXNwbGF5 X3ByZV9raWNrb2ZmIC0gcHJvZ3JhbSBraWNrb2ZmLXRpbWUgZmVhdHVyZXMKICAqIEBkaXNwbGF5 OiBQb2ludGVyIHRvIHByaXZhdGUgZGlzcGxheSBzdHJ1Y3R1cmUKLSAqIEBwYXJhbXM6IFBhcmFt ZXRlcnMgZm9yIGtpY2tvZmYtdGltZSBwcm9ncmFtbWluZwogICogUmV0dXJuczogWmVybyBvbiBz dWNjZXNzCiAgKi8KLWludCBkc2lfZGlzcGxheV9wcmVfa2lja29mZihzdHJ1Y3QgZHNpX2Rpc3Bs YXkgKmRpc3BsYXksCi0JCXN0cnVjdCBtc21fZGlzcGxheV9raWNrb2ZmX3BhcmFtcyAqcGFyYW1z KTsKK2ludCBkc2lfZGlzcGxheV9wcmVfa2lja29mZihzdHJ1Y3QgZHNpX2Rpc3BsYXkgKmRpc3Bs YXkpOworCiAvKioKICAqIGRzaV9kaXNwbGF5X2dldF9kc3RfZm9ybWF0KCkgLSBnZXQgZHN0X2Zv cm1hdCBmcm9tIERTSSBkaXNwbGF5CiAgKiBAZGlzcGxheTogICAgICAgICBIYW5kbGUgdG8gZGlz cGxheQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfZHJt LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kcm0uYwppbmRleCA2ODQ3 YzUzLi4wMTdmODgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5n L2RzaV9kcm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kcm0u YwpAQCAtNDQzLDI1ICs0NDMsNiBAQCBpbnQgZHNpX2Nvbm5fcG9zdF9pbml0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWJyZWFrOwogCX0KIAotCWlmIChwYW5lbC0+cm9pX2Nh cHMuZW5hYmxlZCkgewotCQlkcHVfa21zX2luZm9fYWRkX2tleWludChpbmZvLCAicGFydGlhbF91 cGRhdGVfbnVtX3JvaSIsCi0JCQkJcGFuZWwtPnJvaV9jYXBzLm51bV9yb2kpOwotCQlkcHVfa21z X2luZm9fYWRkX2tleWludChpbmZvLCAicGFydGlhbF91cGRhdGVfeHN0YXJ0IiwKLQkJCQlwYW5l bC0+cm9pX2NhcHMuYWxpZ24ueHN0YXJ0X3BpeF9hbGlnbik7Ci0JCWRwdV9rbXNfaW5mb19hZGRf a2V5aW50KGluZm8sICJwYXJ0aWFsX3VwZGF0ZV93YWxpZ24iLAotCQkJCXBhbmVsLT5yb2lfY2Fw cy5hbGlnbi53aWR0aF9waXhfYWxpZ24pOwotCQlkcHVfa21zX2luZm9fYWRkX2tleWludChpbmZv LCAicGFydGlhbF91cGRhdGVfd21pbiIsCi0JCQkJcGFuZWwtPnJvaV9jYXBzLmFsaWduLm1pbl93 aWR0aCk7Ci0JCWRwdV9rbXNfaW5mb19hZGRfa2V5aW50KGluZm8sICJwYXJ0aWFsX3VwZGF0ZV95 c3RhcnQiLAotCQkJCXBhbmVsLT5yb2lfY2Fwcy5hbGlnbi55c3RhcnRfcGl4X2FsaWduKTsKLQkJ ZHB1X2ttc19pbmZvX2FkZF9rZXlpbnQoaW5mbywgInBhcnRpYWxfdXBkYXRlX2hhbGlnbiIsCi0J CQkJcGFuZWwtPnJvaV9jYXBzLmFsaWduLmhlaWdodF9waXhfYWxpZ24pOwotCQlkcHVfa21zX2lu Zm9fYWRkX2tleWludChpbmZvLCAicGFydGlhbF91cGRhdGVfaG1pbiIsCi0JCQkJcGFuZWwtPnJv aV9jYXBzLmFsaWduLm1pbl9oZWlnaHQpOwotCQlkcHVfa21zX2luZm9fYWRkX2tleWludChpbmZv LCAicGFydGlhbF91cGRhdGVfcm9pbWVyZ2UiLAotCQkJCXBhbmVsLT5yb2lfY2Fwcy5tZXJnZV9y b2lzKTsKLQl9Ci0KIGVuZDoKIAlyZXR1cm4gMDsKIH0KQEAgLTU5OCwxNSArNTc5LDE0IEBAIGVu dW0gZHJtX21vZGVfc3RhdHVzIGRzaV9jb25uX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIH0KIAogaW50IGRzaV9jb25uX3ByZV9raWNrb2ZmKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCi0JCXZvaWQgKmRpc3BsYXksCi0JCXN0cnVjdCBtc21fZGlz cGxheV9raWNrb2ZmX3BhcmFtcyAqcGFyYW1zKQorCQl2b2lkICpkaXNwbGF5KQogewotCWlmICgh Y29ubmVjdG9yIHx8ICFkaXNwbGF5IHx8ICFwYXJhbXMpIHsKKwlpZiAoIWNvbm5lY3RvciB8fCAh ZGlzcGxheSkgewogCQlwcl9lcnIoIkludmFsaWQgcGFyYW1zXG4iKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCi0JcmV0dXJuIGRzaV9kaXNwbGF5X3ByZV9raWNrb2ZmKGRpc3BsYXksIHBhcmFt cyk7CisJcmV0dXJuIGRzaV9kaXNwbGF5X3ByZV9raWNrb2ZmKGRpc3BsYXkpOwogfQogCiB2b2lk IGRzaV9jb25uX2VuYWJsZV9ldmVudChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfZHJtLmggYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kcm0uaAppbmRleCBmNDI3MzQwLi4z OGRlMzNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9k cm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9kcm0uaApAQCAt MTEyLDEyICsxMTIsMTAgQEAgc3RydWN0IGRzaV9icmlkZ2UgKmRzaV9kcm1fYnJpZGdlX2luaXQo c3RydWN0IGRzaV9kaXNwbGF5ICpkaXNwbGF5LAogICogZHNpX2Rpc3BsYXlfcHJlX2tpY2tvZmYg LSBwcm9ncmFtIGtpY2tvZmYtdGltZSBmZWF0dXJlcwogICogQGNvbm5lY3RvcjogUG9pbnRlciB0 byBkcm0gY29ubmVjdG9yIHN0cnVjdHVyZQogICogQGRpc3BsYXk6IFBvaW50ZXIgdG8gcHJpdmF0 ZSBkaXNwbGF5IHN0cnVjdHVyZQotICogQHBhcmFtczogUGFyYW1ldGVycyBmb3Iga2lja29mZi10 aW1lIHByb2dyYW1taW5nCiAgKiBSZXR1cm5zOiBaZXJvIG9uIHN1Y2Nlc3MKICAqLwogaW50IGRz aV9jb25uX3ByZV9raWNrb2ZmKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCi0JCXZv aWQgKmRpc3BsYXksCi0JCXN0cnVjdCBtc21fZGlzcGxheV9raWNrb2ZmX3BhcmFtcyAqcGFyYW1z KTsKKwkJdm9pZCAqZGlzcGxheSk7CiAKIC8qKgogICogZHNpX2Rpc3BsYXlfcG9zdF9raWNrb2Zm IC0gcHJvZ3JhbSBwb3N0IGtpY2tvZmYtdGltZSBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpLXN0YWdpbmcvZHNpX3BhbmVsLmMKaW5kZXggMmQ5NGU1Zi4uMmU3NzdmOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfcGFuZWwuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFnaW5nL2RzaV9wYW5lbC5jCkBAIC0xMzU0LDcgKzEz NTQsNiBAQCBzdGF0aWMgaW50IGRzaV9wYW5lbF9wYXJzZV9waHlfcHJvcHMoc3RydWN0IGRzaV9w YW5lbF9waHlfcHJvcHMgKnByb3BzLAogCSJxY29tLG1kc3MtZHNpLWxwMi1jb21tYW5kIiwKIAki cWNvbSxtZHNzLWRzaS1ub2xwLWNvbW1hbmQiLAogCSJQUFMgbm90IHBhcnNlZCBmcm9tIERUU0ks IGdlbmVyYXRlZCBkeW5hbWljYWxseSIsCi0JIlJPSSBub3QgcGFyc2VkIGZyb20gRFRTSSwgZ2Vu ZXJhdGVkIGR5bmFtaWNhbGx5IiwKIAkicWNvbSxtZHNzLWRzaS10aW1pbmctc3dpdGNoLWNvbW1h bmQiLAogCSJxY29tLG1kc3MtZHNpLXBvc3QtbW9kZS1zd2l0Y2gtb24tY29tbWFuZCIsCiB9OwpA QCAtMTM3OCw3ICsxMzc3LDYgQEAgc3RhdGljIGludCBkc2lfcGFuZWxfcGFyc2VfcGh5X3Byb3Bz KHN0cnVjdCBkc2lfcGFuZWxfcGh5X3Byb3BzICpwcm9wcywKIAkicWNvbSxtZHNzLWRzaS1scDIt Y29tbWFuZC1zdGF0ZSIsCiAJInFjb20sbWRzcy1kc2ktbm9scC1jb21tYW5kLXN0YXRlIiwKIAki UFBTIG5vdCBwYXJzZWQgZnJvbSBEVFNJLCBnZW5lcmF0ZWQgZHluYW1pY2FsbHkiLAotCSJST0kg bm90IHBhcnNlZCBmcm9tIERUU0ksIGdlbmVyYXRlZCBkeW5hbWljYWxseSIsCiAJInFjb20sbWRz cy1kc2ktdGltaW5nLXN3aXRjaC1jb21tYW5kLXN0YXRlIiwKIAkicWNvbSxtZHNzLWRzaS1wb3N0 LW1vZGUtc3dpdGNoLW9uLWNvbW1hbmQtc3RhdGUiLAogfTsKQEAgLTIzMzEsODcgKzIzMjksNiBA QCBzdGF0aWMgaW50IGRzaV9wYW5lbF9wYXJzZV90b3BvbG9neSgKIAlyZXR1cm4gcmM7CiB9CiAK LXN0YXRpYyBpbnQgZHNpX3BhbmVsX3BhcnNlX3JvaV9hbGlnbm1lbnQoc3RydWN0IGRldmljZV9u b2RlICpvZl9ub2RlLAotCQkJCQkgc3RydWN0IG1zbV9yb2lfYWxpZ25tZW50ICphbGlnbikKLXsK LQlpbnQgbGVuID0gMCwgcmMgPSAwOwotCXUzMiB2YWx1ZVs2XTsKLQlzdHJ1Y3QgcHJvcGVydHkg KmRhdGE7Ci0KLQlpZiAoIWFsaWduIHx8ICFvZl9ub2RlKQotCQlyZXR1cm4gLUVJTlZBTDsKLQot CW1lbXNldChhbGlnbiwgMCwgc2l6ZW9mKCphbGlnbikpOwotCi0JZGF0YSA9IG9mX2ZpbmRfcHJv cGVydHkob2Zfbm9kZSwgInFjb20scGFuZWwtcm9pLWFsaWdubWVudCIsICZsZW4pOwotCWxlbiAv PSBzaXplb2YodTMyKTsKLQlpZiAoIWRhdGEpIHsKLQkJcHJfZXJyKCJwYW5lbCByb2kgYWxpZ25t ZW50IG5vdCBmb3VuZFxuIik7Ci0JCXJjID0gLUVJTlZBTDsKLQl9IGVsc2UgaWYgKGxlbiAhPSA2 KSB7Ci0JCXByX2VycigiaW5jb3JyZWN0IHJvaSBhbGlnbm1lbnQgbGVuICVkXG4iLCBsZW4pOwot CQlyYyA9IC1FSU5WQUw7Ci0JfSBlbHNlIHsKLQkJcmMgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9h cnJheShvZl9ub2RlLAotCQkJCSJxY29tLHBhbmVsLXJvaS1hbGlnbm1lbnQiLCB2YWx1ZSwgbGVu KTsKLQkJaWYgKHJjKQotCQkJcHJfZGVidWcoImVycm9yIHJlYWRpbmcgcGFuZWwgcm9pIGFsaWdu bWVudCB2YWx1ZXNcbiIpOwotCQllbHNlIHsKLQkJCWFsaWduLT54c3RhcnRfcGl4X2FsaWduID0g dmFsdWVbMF07Ci0JCQlhbGlnbi0+eXN0YXJ0X3BpeF9hbGlnbiA9IHZhbHVlWzFdOwotCQkJYWxp Z24tPndpZHRoX3BpeF9hbGlnbiA9IHZhbHVlWzJdOwotCQkJYWxpZ24tPmhlaWdodF9waXhfYWxp Z24gPSB2YWx1ZVszXTsKLQkJCWFsaWduLT5taW5fd2lkdGggPSB2YWx1ZVs0XTsKLQkJCWFsaWdu LT5taW5faGVpZ2h0ID0gdmFsdWVbNV07Ci0JCX0KLQotCQlwcl9pbmZvKCJyb2kgYWxpZ25tZW50 OiBbJWQsICVkLCAlZCwgJWQsICVkLCAlZF1cbiIsCi0JCQlhbGlnbi0+eHN0YXJ0X3BpeF9hbGln biwKLQkJCWFsaWduLT53aWR0aF9waXhfYWxpZ24sCi0JCQlhbGlnbi0+eXN0YXJ0X3BpeF9hbGln biwKLQkJCWFsaWduLT5oZWlnaHRfcGl4X2FsaWduLAotCQkJYWxpZ24tPm1pbl93aWR0aCwKLQkJ CWFsaWduLT5taW5faGVpZ2h0KTsKLQl9Ci0KLQlyZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBpbnQg ZHNpX3BhbmVsX3BhcnNlX3BhcnRpYWxfdXBkYXRlX2NhcHMoc3RydWN0IGRzaV9wYW5lbCAqcGFu ZWwsCi0JCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUpCi17Ci0Jc3RydWN0 IG1zbV9yb2lfY2FwcyAqcm9pX2NhcHMgPSAmcGFuZWwtPnJvaV9jYXBzOwotCWNvbnN0IGNoYXIg KmRhdGE7Ci0JaW50IHJjID0gMDsKLQotCW1lbXNldChyb2lfY2FwcywgMCwgc2l6ZW9mKCpyb2lf Y2FwcykpOwotCi0JZGF0YSA9IG9mX2dldF9wcm9wZXJ0eShvZl9ub2RlLCAicWNvbSxwYXJ0aWFs LXVwZGF0ZS1lbmFibGVkIiwgTlVMTCk7Ci0JaWYgKGRhdGEpIHsKLQkJaWYgKCFzdHJjbXAoZGF0 YSwgImR1YWxfcm9pIikpCi0JCQlyb2lfY2Fwcy0+bnVtX3JvaSA9IDI7Ci0JCWVsc2UKLQkJCXJv aV9jYXBzLT5udW1fcm9pID0gMTsKLQl9Ci0KLQlyb2lfY2Fwcy0+bWVyZ2Vfcm9pcyA9IG9mX3By b3BlcnR5X3JlYWRfYm9vbChvZl9ub2RlLAotCQkJInFjb20scGFydGlhbC11cGRhdGUtcm9pLW1l cmdlIik7Ci0KLQlyb2lfY2Fwcy0+ZW5hYmxlZCA9IHJvaV9jYXBzLT5udW1fcm9pID4gMDsKLQot CXByX2luZm8oInBhcnRpYWwgdXBkYXRlIG51bV9yb2lzPSVkIGVuYWJsZWQ9JWRcbiIsIHJvaV9j YXBzLT5udW1fcm9pLAotCQkJcm9pX2NhcHMtPmVuYWJsZWQpOwotCi0JaWYgKHJvaV9jYXBzLT5l bmFibGVkKQotCQlyYyA9IGRzaV9wYW5lbF9wYXJzZV9yb2lfYWxpZ25tZW50KG9mX25vZGUsCi0J CQkJJnBhbmVsLT5yb2lfY2Fwcy5hbGlnbik7Ci0KLQlpZiAocmMpCi0JCW1lbXNldChyb2lfY2Fw cywgMCwgc2l6ZW9mKCpyb2lfY2FwcykpOwotCi0JcmV0dXJuIHJjOwotfQotCiBzdGF0aWMgaW50 IGRzaV9wYW5lbF9wYXJzZV9kbXNfaW5mbyhzdHJ1Y3QgZHNpX3BhbmVsICpwYW5lbCwKIAlzdHJ1 Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUpCiB7CkBAIC0yNzAzLDEwICsyNjIwLDYgQEAgc3RydWN0 IGRzaV9wYW5lbCAqZHNpX3BhbmVsX2dldChzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAJaWYgKHJj KQogCQlwcl9lcnIoImZhaWxlZCB0byBwYXJzZSBoZHIgY29uZmlnLCByYz0lZFxuIiwgcmMpOwog Ci0JcmMgPSBkc2lfcGFuZWxfcGFyc2VfcGFydGlhbF91cGRhdGVfY2FwcyhwYW5lbCwgb2Zfbm9k ZSk7Ci0JaWYgKHJjKQotCQlwcl9kZWJ1ZygiZmFpbGVkIHRvIHBhcnRpYWwgdXBkYXRlIGNhcHMs IHJjPSVkXG4iLCByYyk7Ci0KIAlyYyA9IGRzaV9wYW5lbF9nZXRfbW9kZV9jb3VudChwYW5lbCwg b2Zfbm9kZSk7CiAJaWYgKHJjKSB7CiAJCXByX2VycigiZmFpbGVkIHRvIGdldCBtb2RlIGNvdW50 LCByYz0lZFxuIiwgcmMpOwpAQCAtMzIyMiwxMTkgKzMxMzUsNiBAQCBpbnQgZHNpX3BhbmVsX3By ZXBhcmUoc3RydWN0IGRzaV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMg aW50IGRzaV9wYW5lbF9yb2lfcHJlcGFyZV9kY3NfY21kcyhzdHJ1Y3QgZHNpX3BhbmVsX2NtZF9z ZXQgKnNldCwKLQkJc3RydWN0IGRzaV9yZWN0ICpyb2ksIGludCBjdHJsX2lkeCwgaW50IHVuaWNh c3QpCi17Ci0Jc3RhdGljIGNvbnN0IGludCBST0lfQ01EX0xFTiA9IDU7Ci0KLQlpbnQgcmMgPSAw OwotCi0JLyogRFRZUEVfRENTX0xXUklURSAqLwotCXN0YXRpYyBjaGFyICpjYXNldCwgKnBhc2V0 OwotCi0Jc2V0LT5jbWRzID0gTlVMTDsKLQotCWNhc2V0ID0ga3phbGxvYyhST0lfQ01EX0xFTiwg R0ZQX0tFUk5FTCk7Ci0JaWYgKCFjYXNldCkgewotCQlyYyA9IC1FTk9NRU07Ci0JCWdvdG8gZXhp dDsKLQl9Ci0JY2FzZXRbMF0gPSAweDJhOwotCWNhc2V0WzFdID0gKHJvaS0+eCAmIDB4RkYwMCkg Pj4gODsKLQljYXNldFsyXSA9IHJvaS0+eCAmIDB4RkY7Ci0JY2FzZXRbM10gPSAoKHJvaS0+eCAt IDEgKyByb2ktPncpICYgMHhGRjAwKSA+PiA4OwotCWNhc2V0WzRdID0gKHJvaS0+eCAtIDEgKyBy b2ktPncpICYgMHhGRjsKLQotCXBhc2V0ID0ga3phbGxvYyhST0lfQ01EX0xFTiwgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFwYXNldCkgewotCQlyYyA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyb3JfZnJlZV9t ZW07Ci0JfQotCXBhc2V0WzBdID0gMHgyYjsKLQlwYXNldFsxXSA9IChyb2ktPnkgJiAweEZGMDAp ID4+IDg7Ci0JcGFzZXRbMl0gPSByb2ktPnkgJiAweEZGOwotCXBhc2V0WzNdID0gKChyb2ktPnkg LSAxICsgcm9pLT5oKSAmIDB4RkYwMCkgPj4gODsKLQlwYXNldFs0XSA9IChyb2ktPnkgLSAxICsg cm9pLT5oKSAmIDB4RkY7Ci0KLQlzZXQtPnR5cGUgPSBEU0lfQ01EX1NFVF9ST0k7Ci0Jc2V0LT5z dGF0ZSA9IERTSV9DTURfU0VUX1NUQVRFX0xQOwotCXNldC0+Y291bnQgPSAyOyAvKiBzZW5kIGNh c2V0ICsgcGFzZXQgdG9nZXRoZXIgKi8KLQlzZXQtPmNtZHMgPSBrY2FsbG9jKHNldC0+Y291bnQs IHNpemVvZigqc2V0LT5jbWRzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzZXQtPmNtZHMpIHsKLQkJ cmMgPSAtRU5PTUVNOwotCQlnb3RvIGVycm9yX2ZyZWVfbWVtOwotCX0KLQlzZXQtPmNtZHNbMF0u bXNnLmNoYW5uZWwgPSAwOwotCXNldC0+Y21kc1swXS5tc2cudHlwZSA9IE1JUElfRFNJX0RDU19M T05HX1dSSVRFOwotCXNldC0+Y21kc1swXS5tc2cuZmxhZ3MgPSB1bmljYXN0ID8gTUlQSV9EU0lf TVNHX1VOSUNBU1QgOiAwOwotCXNldC0+Y21kc1swXS5tc2cuY3RybCA9IHVuaWNhc3QgPyBjdHJs X2lkeCA6IDA7Ci0Jc2V0LT5jbWRzWzBdLm1zZy50eF9sZW4gPSBST0lfQ01EX0xFTjsKLQlzZXQt PmNtZHNbMF0ubXNnLnR4X2J1ZiA9IGNhc2V0OwotCXNldC0+Y21kc1swXS5tc2cucnhfbGVuID0g MDsKLQlzZXQtPmNtZHNbMF0ubXNnLnJ4X2J1ZiA9IDA7Ci0Jc2V0LT5jbWRzWzBdLmxhc3RfY29t bWFuZCA9IDA7Ci0Jc2V0LT5jbWRzWzBdLnBvc3Rfd2FpdF9tcyA9IDE7Ci0KLQlzZXQtPmNtZHNb MV0ubXNnLmNoYW5uZWwgPSAwOwotCXNldC0+Y21kc1sxXS5tc2cudHlwZSA9IE1JUElfRFNJX0RD U19MT05HX1dSSVRFOwotCXNldC0+Y21kc1sxXS5tc2cuZmxhZ3MgPSB1bmljYXN0ID8gTUlQSV9E U0lfTVNHX1VOSUNBU1QgOiAwOwotCXNldC0+Y21kc1sxXS5tc2cuY3RybCA9IHVuaWNhc3QgPyBj dHJsX2lkeCA6IDA7Ci0Jc2V0LT5jbWRzWzFdLm1zZy50eF9sZW4gPSBST0lfQ01EX0xFTjsKLQlz ZXQtPmNtZHNbMV0ubXNnLnR4X2J1ZiA9IHBhc2V0OwotCXNldC0+Y21kc1sxXS5tc2cucnhfbGVu ID0gMDsKLQlzZXQtPmNtZHNbMV0ubXNnLnJ4X2J1ZiA9IDA7Ci0Jc2V0LT5jbWRzWzFdLmxhc3Rf Y29tbWFuZCA9IDE7Ci0Jc2V0LT5jbWRzWzFdLnBvc3Rfd2FpdF9tcyA9IDE7Ci0KLQlnb3RvIGV4 aXQ7Ci0KLWVycm9yX2ZyZWVfbWVtOgotCWtmcmVlKGNhc2V0KTsKLQlrZnJlZShwYXNldCk7Ci0J a2ZyZWUoc2V0LT5jbWRzKTsKLQotZXhpdDoKLQlyZXR1cm4gcmM7Ci19Ci0KLWludCBkc2lfcGFu ZWxfc2VuZF9yb2lfZGNzKHN0cnVjdCBkc2lfcGFuZWwgKnBhbmVsLCBpbnQgY3RybF9pZHgsCi0J CXN0cnVjdCBkc2lfcmVjdCAqcm9pKQotewotCWludCByYyA9IDA7Ci0Jc3RydWN0IGRzaV9wYW5l bF9jbWRfc2V0ICpzZXQ7Ci0Jc3RydWN0IGRzaV9kaXNwbGF5X21vZGVfcHJpdl9pbmZvICpwcml2 X2luZm87Ci0KLQlpZiAoIXBhbmVsIHx8ICFwYW5lbC0+Y3VyX21vZGUpIHsKLQkJcHJfZXJyKCJJ bnZhbGlkIHBhcmFtc1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXByaXZfaW5mbyA9 IHBhbmVsLT5jdXJfbW9kZS0+cHJpdl9pbmZvOwotCXNldCA9ICZwcml2X2luZm8tPmNtZF9zZXRz W0RTSV9DTURfU0VUX1JPSV07Ci0KLQlyYyA9IGRzaV9wYW5lbF9yb2lfcHJlcGFyZV9kY3NfY21k cyhzZXQsIHJvaSwgY3RybF9pZHgsIHRydWUpOwotCWlmIChyYykgewotCQlwcl9lcnIoIlslc10g ZmFpbGVkIHRvIHByZXBhcmUgRFNJX0NNRF9TRVRfUk9JIGNtZHMsIHJjPSVkXG4iLAotCQkJCXBh bmVsLT5uYW1lLCByYyk7Ci0JCXJldHVybiByYzsKLQl9Ci0JcHJfZGVidWcoIlslc10gc2VuZCBy b2kgeCAlZCB5ICVkIHcgJWQgaCAlZFxuIiwgcGFuZWwtPm5hbWUsCi0JCQlyb2ktPngsIHJvaS0+ eSwgcm9pLT53LCByb2ktPmgpOwotCi0JbXV0ZXhfbG9jaygmcGFuZWwtPnBhbmVsX2xvY2spOwot Ci0JcmMgPSBkc2lfcGFuZWxfdHhfY21kX3NldChwYW5lbCwgRFNJX0NNRF9TRVRfUk9JKTsKLQlp ZiAocmMpCi0JCXByX2VycigiWyVzXSBmYWlsZWQgdG8gc2VuZCBEU0lfQ01EX1NFVF9ST0kgY21k cywgcmM9JWRcbiIsCi0JCQkJcGFuZWwtPm5hbWUsIHJjKTsKLQotCW11dGV4X3VubG9jaygmcGFu ZWwtPnBhbmVsX2xvY2spOwotCi0JZHNpX3BhbmVsX2Rlc3Ryb3lfY21kX3BhY2tldHMoc2V0KTsK LQotCXJldHVybiByYzsKLX0KLQogaW50IGRzaV9wYW5lbF9zd2l0Y2goc3RydWN0IGRzaV9wYW5l bCAqcGFuZWwpCiB7CiAJaW50IHJjID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpLXN0YWdpbmcvZHNpX3BhbmVsLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS1zdGFn aW5nL2RzaV9wYW5lbC5oCmluZGV4IGMyNmE1ZGIuLjJlZjMyMjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZHNpLXN0YWdpbmcvZHNpX3BhbmVsLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kc2ktc3RhZ2luZy9kc2lfcGFuZWwuaApAQCAtMTU1LDggKzE1NSw2IEBAIHN0cnVj dCBkc2lfcGFuZWwgewogCWVudW0gZHNpX29wX21vZGUgcGFuZWxfbW9kZTsKIAogCXN0cnVjdCBk c2lfZGZwc19jYXBhYmlsaXRpZXMgZGZwc19jYXBzOwotCXN0cnVjdCBtc21fcm9pX2NhcHMgcm9p X2NhcHM7Ci0KIAlzdHJ1Y3QgZHNpX3BhbmVsX3BoeV9wcm9wcyBwaHlfcHJvcHM7CiAKIAlzdHJ1 Y3QgZHNpX2Rpc3BsYXlfbW9kZSAqY3VyX21vZGU7CkBAIC0yNTAsOSArMjQ4LDYgQEAgaW50IGRz aV9wYW5lbF9nZXRfZGZwc19jYXBzKHN0cnVjdCBkc2lfcGFuZWwgKnBhbmVsLAogCiBpbnQgZHNp X3BhbmVsX3VwZGF0ZV9wcHMoc3RydWN0IGRzaV9wYW5lbCAqcGFuZWwpOwogCi1pbnQgZHNpX3Bh bmVsX3NlbmRfcm9pX2RjcyhzdHJ1Y3QgZHNpX3BhbmVsICpwYW5lbCwgaW50IGN0cmxfaWR4LAot CQlzdHJ1Y3QgZHNpX3JlY3QgKnJvaSk7Ci0KIGludCBkc2lfcGFuZWxfc3dpdGNoKHN0cnVjdCBk c2lfcGFuZWwgKnBhbmVsKTsKIAogaW50IGRzaV9wYW5lbF9wb3N0X3N3aXRjaChzdHJ1Y3QgZHNp X3BhbmVsICpwYW5lbCk7Ci0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4g aXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24g Q29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9mcmVlZHJlbm8K