From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonyoung Shim Subject: [PATCH v2 2/3] drm/exynos: remove chained calls to enable Date: Fri, 12 Jun 2015 17:27:15 +0900 Message-ID: <1434097636-10709-2-git-send-email-jy0922.shim@samsung.com> References: <1434097636-10709-1-git-send-email-jy0922.shim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1434097636-10709-1-git-send-email-jy0922.shim@samsung.com> 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 Cc: linux-samsung-soc@vger.kernel.org, sw0312.kim@samsung.com, a.hajda@samsung.com, gustavo.padovan@collabora.co.uk, m.szyprowski@samsung.com List-Id: linux-samsung-soc@vger.kernel.org V2l0aCBhdG9taWMgbW9kZXNldHRpbmcgYWxsIHRoZSBjb250cm9sIGZvciBDUlRDLCBQbGFuZXMs IEVuY29kZXJzIGFuZApDb25uZWN0b3JzIHNob3VsZCBjb21lIGZyb20gRFJNIGNvcmUsIHNvIHRo ZSBkcml2ZXIgaXMgbm90IGFsbG93ZWQgdG8KZW5hYmxlIG9yIGRpc2FibGUgcGxhbmVzIGZyb20g aW5zaWRlIHRoZSBjcnRjX2VuYWJsZSgpL2Rpc2FibGUoKSBjYWxsLgoKQnV0IGl0IG5lZWRzIHRv IGRpc2FibGUgcGxhbmVzIHdpdGggY3J0Y19kaXNhYmxlIGluIGV4eW5vcyBkcml2ZXIKaW50ZXJu YWxseS4gQmVjYXVzZSBjcnRjIGlzIGRpc2FibGVkIGJlZm9yZSBwbGFuZSBpcyBkaXNhYmxlZCwg aXQgbWVhbnMKcGxhbmVfZGlzYWJsZSBqdXN0IHJldHVybnMgd2l0aG91dCBhbnkgcmVnaXN0ZXIg Y2hhbmdlcywgdGhlbiB3ZSBjYW5ub3QKYmUgc3VyZSBzZXR0aW5nIHJlZ2lzdGVyIHRvIGRpc2Fi bGUgcGxhbmUgd2hlbiBjcnRjIGlzIGRpc2FibGUuCgpUaGlzIHBhdGNoIHJlbW92ZXMgdGhpcyBj aGFpbm5lZCBjYWxscyB0byBlbmFibGUgcGxhbmUgZnJvbSBleHlub3MgaHcKZHJpdmVycyBjb2Rl IGxldHRpbmcgb25seSBEUk0gY29yZSB0b3VjaCBwbGFuZXMgZXhjZXB0IHRvIGRpc2FibGUgcGxh bmUuCkFsc28gaXQgbGVhZHMgZWxpbWluYWJsZSBlbmFibGVkIGFuZCByZXN1bWUgb2Ygc3RydWN0 IGV4eW5vc19kcm1fcGxhbmUuCgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rh dm8ucGFkb3ZhbkBjb2xsYWJvcmEuY28udWs+ClNpZ25lZC1vZmYtYnk6IEpvb255b3VuZyBTaGlt IDxqeTA5MjIuc2hpbUBzYW1zdW5nLmNvbT4KVGVzdGVkLWJ5OiBNYXJlayBTenlwcm93c2tpIDxt LnN6eXByb3dza2lAc2Ftc3VuZy5jb20+Ci0tLQpUaGlzIHBhdGNoIHdhcyBtb2RpZmllZCBmcm9t IG9yaWdpbmFsIHBhdGNoIG9mIEd1c3Rhdm8gUGFkb3ZhbiAtIApodHRwOi8vd3d3LnNwaW5pY3Mu bmV0L2xpc3RzL2xpbnV4LXNhbXN1bmctc29jL21zZzQ1MzUxLmh0bWwKCnYyIGNoYW5nZXM6Ci0g YWRkIDEvMyBhZGRpdGlvbmFsIHBhdGNoIHRvIHJlbW92ZSB3YWl0aW5nIHZibGFuayBpbiBtaXhl ci4KLSByZWJhc2UgdGhpcyBmcm9tIDEvMyBwYXRjaC4KLSBhZGQgMy8zIGFkZGl0aW9uYWwgcGF0 Y2ggdG8gZml4IElPTU1VIHBhZ2UgZmF1bHQgb2YgZmltZC4KCiBkcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vczdfZHJtX2RlY29uLmMgfCA2MyArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaCAgICB8ICA1IC0tLQog ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyAgIHwgNjMgKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f dmlkaS5jICAgfCAyNyAtLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19taXhlci5jICAgICAgfCAzOCArKy0tLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwg MTYgaW5zZXJ0aW9ucygrKSwgMTgwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zN19kcm1fZGVjb24uYwppbmRleCBkNjU5YmEyLi5mNzNjZWFlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCkBAIC00MTAsMTEgKzQxMCw4IEBA IHN0YXRpYyB2b2lkIGRlY29uX3dpbl9jb21taXQoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0 YywgdW5zaWduZWQgaW50IHdpbikKIAogCXBsYW5lID0gJmN0eC0+cGxhbmVzW3dpbl07CiAKLQkv KiBJZiBzdXNwZW5kZWQsIGVuYWJsZSB0aGlzIG9uIHJlc3VtZSAqLwotCWlmIChjdHgtPnN1c3Bl bmRlZCkgewotCQlwbGFuZS0+cmVzdW1lID0gdHJ1ZTsKKwlpZiAoY3R4LT5zdXNwZW5kZWQpCiAJ CXJldHVybjsKLQl9CiAKIAkvKgogCSAqIFNIQURPV0NPTi9QUlRDT04gcmVnaXN0ZXIgaXMgdXNl ZCBmb3IgZW5hYmxpbmcgdGltaW5nLgpAQCAtNTA2LDggKzUwMyw2IEBAIHN0YXRpYyB2b2lkIGRl Y29uX3dpbl9jb21taXQoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50 IHdpbikKIAl2YWwgPSByZWFkbChjdHgtPnJlZ3MgKyBERUNPTl9VUERBVEUpOwogCXZhbCB8PSBE RUNPTl9VUERBVEVfU1RBTkRBTE9ORV9GOwogCXdyaXRlbCh2YWwsIGN0eC0+cmVncyArIERFQ09O X1VQREFURSk7Ci0KLQlwbGFuZS0+ZW5hYmxlZCA9IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGRl Y29uX3dpbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGlu dCB3aW4pCkBAIC01MjEsMTEgKzUxNiw4IEBAIHN0YXRpYyB2b2lkIGRlY29uX3dpbl9kaXNhYmxl KHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCiAKIAlwbGFu ZSA9ICZjdHgtPnBsYW5lc1t3aW5dOwogCi0JaWYgKGN0eC0+c3VzcGVuZGVkKSB7Ci0JCS8qIGRv IG5vdCByZXN1bWUgdGhpcyB3aW5kb3cqLwotCQlwbGFuZS0+cmVzdW1lID0gZmFsc2U7CisJaWYg KGN0eC0+c3VzcGVuZGVkKQogCQlyZXR1cm47Ci0JfQogCiAJLyogcHJvdGVjdCB3aW5kb3dzICov CiAJZGVjb25fc2hhZG93X3Byb3RlY3Rfd2luKGN0eCwgd2luLCB0cnVlKTsKQEAgLTU0MSw0OSAr NTMzLDYgQEAgc3RhdGljIHZvaWQgZGVjb25fd2luX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywgdW5zaWduZWQgaW50IHdpbikKIAl2YWwgPSByZWFkbChjdHgtPnJlZ3MgKyBE RUNPTl9VUERBVEUpOwogCXZhbCB8PSBERUNPTl9VUERBVEVfU1RBTkRBTE9ORV9GOwogCXdyaXRl bCh2YWwsIGN0eC0+cmVncyArIERFQ09OX1VQREFURSk7Ci0KLQlwbGFuZS0+ZW5hYmxlZCA9IGZh bHNlOwotfQotCi1zdGF0aWMgdm9pZCBkZWNvbl93aW5kb3dfc3VzcGVuZChzdHJ1Y3QgZGVjb25f Y29udGV4dCAqY3R4KQotewotCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZTsKLQlpbnQg aTsKLQotCWZvciAoaSA9IDA7IGkgPCBXSU5ET1dTX05SOyBpKyspIHsKLQkJcGxhbmUgPSAmY3R4 LT5wbGFuZXNbaV07Ci0JCXBsYW5lLT5yZXN1bWUgPSBwbGFuZS0+ZW5hYmxlZDsKLQkJaWYgKHBs YW5lLT5lbmFibGVkKQotCQkJZGVjb25fd2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsKLQl9Ci19 Ci0KLXN0YXRpYyB2b2lkIGRlY29uX3dpbmRvd19yZXN1bWUoc3RydWN0IGRlY29uX2NvbnRleHQg KmN0eCkKLXsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Ci0JaW50IGk7Ci0KLQlm b3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKSB7Ci0JCXBsYW5lID0gJmN0eC0+cGxhbmVz W2ldOwotCQlwbGFuZS0+ZW5hYmxlZCA9IHBsYW5lLT5yZXN1bWU7Ci0JCXBsYW5lLT5yZXN1bWUg PSBmYWxzZTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY29uX2FwcGx5KHN0cnVjdCBkZWNvbl9j b250ZXh0ICpjdHgpCi17Ci0Jc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwotCWludCBp OwotCi0JZm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykgewotCQlwbGFuZSA9ICZjdHgt PnBsYW5lc1tpXTsKLQkJaWYgKHBsYW5lLT5lbmFibGVkKQotCQkJZGVjb25fd2luX2NvbW1pdChj dHgtPmNydGMsIGkpOwotCQllbHNlCi0JCQlkZWNvbl93aW5fZGlzYWJsZShjdHgtPmNydGMsIGkp OwotCX0KLQotCWRlY29uX2NvbW1pdChjdHgtPmNydGMpOwogfQogCiBzdGF0aWMgdm9pZCBkZWNv bl9pbml0KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgpCkBAIC02MjUsMTQgKzU3NCwxMyBAQCBz dGF0aWMgdm9pZCBkZWNvbl9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAlp ZiAodGVzdF9hbmRfY2xlYXJfYml0KDAsICZjdHgtPmlycV9mbGFncykpCiAJCWRlY29uX2VuYWJs ZV92YmxhbmsoY3R4LT5jcnRjKTsKIAotCWRlY29uX3dpbmRvd19yZXN1bWUoY3R4KTsKLQotCWRl Y29uX2FwcGx5KGN0eCk7CisJZGVjb25fY29tbWl0KGN0eC0+Y3J0Yyk7CiB9CiAKIHN0YXRpYyB2 b2lkIGRlY29uX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1 Y3QgZGVjb25fY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4OworCWludCBpOwogCiAJaWYgKGN0eC0+ c3VzcGVuZGVkKQogCQlyZXR1cm47CkBAIC02NDIsNyArNTkwLDggQEAgc3RhdGljIHZvaWQgZGVj b25fZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogCSAqIHN1c3BlbmQgdGhh dCBjb25uZWN0b3IuIE90aGVyd2lzZSB3ZSBtaWdodCB0cnkgdG8gc2NhbiBmcm9tCiAJICogYSBk ZXN0cm95ZWQgYnVmZmVyIGxhdGVyLgogCSAqLwotCWRlY29uX3dpbmRvd19zdXNwZW5kKGN0eCk7 CisJZm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykKKwkJZGVjb25fd2luX2Rpc2FibGUo Y3J0YywgaSk7CiAKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT52Y2xrKTsKIAljbGtfZGlz YWJsZV91bnByZXBhcmUoY3R4LT5lY2xrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9kcnYuaAppbmRleCAxYzY2ZjY1Li4yOTFmMTMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2Rydi5oCkBAIC03MSw4ICs3MSw2IEBAIGVudW0gZXh5bm9zX2RybV9vdXRwdXRf dHlwZSB7CiAgKiBAZG1hX2FkZHI6IGFycmF5IG9mIGJ1cyhhY2Nlc3NlZCBieSBkbWEpIGFkZHJl c3MgdG8gdGhlIG1lbW9yeSByZWdpb24KICAqCSAgICAgIGFsbG9jYXRlZCBmb3IgYSBvdmVybGF5 LgogICogQHpwb3M6IG9yZGVyIG9mIG92ZXJsYXkgbGF5ZXIoeiBwb3NpdGlvbikuCi0gKiBAZW5h YmxlZDogZW5hYmxlZCBvciBub3QuCi0gKiBAcmVzdW1lOiB0byByZXN1bWUgb3Igbm90LgogICoK ICAqIHRoaXMgc3RydWN0dXJlIGlzIGNvbW1vbiB0byBleHlub3MgU29DIGFuZCBpdHMgY29udGVu dHMgd291bGQgYmUgY29waWVkCiAgKiB0byBoYXJkd2FyZSBzcGVjaWZpYyBvdmVybGF5IGluZm8u CkBAIC0xMDEsOSArOTksNiBAQCBzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSB7CiAJdWludDMyX3Qg cGl4ZWxfZm9ybWF0OwogCWRtYV9hZGRyX3QgZG1hX2FkZHJbTUFYX0ZCX0JVRkZFUl07CiAJdW5z aWduZWQgaW50IHpwb3M7Ci0KLQlib29sIGVuYWJsZWQ6MTsKLQlib29sIHJlc3VtZToxOwogfTsK IAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1k LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCmluZGV4IDk2NjE4 NTMuLmI0NWUwOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9maW1kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYwpA QCAtNjM0LDExICs2MzQsOCBAQCBzdGF0aWMgdm9pZCBmaW1kX3dpbl9jb21taXQoc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IHdpbikKIAogCXBsYW5lID0gJmN0eC0+ cGxhbmVzW3dpbl07CiAKLQkvKiBJZiBzdXNwZW5kZWQsIGVuYWJsZSB0aGlzIG9uIHJlc3VtZSAq LwotCWlmIChjdHgtPnN1c3BlbmRlZCkgewotCQlwbGFuZS0+cmVzdW1lID0gdHJ1ZTsKKwlpZiAo Y3R4LT5zdXNwZW5kZWQpCiAJCXJldHVybjsKLQl9CiAKIAkvKgogCSAqIFNIQURPV0NPTi9QUlRD T04gcmVnaXN0ZXIgaXMgdXNlZCBmb3IgZW5hYmxpbmcgdGltaW5nLgpAQCAtNzI4LDggKzcyNSw2 IEBAIHN0YXRpYyB2b2lkIGZpbWRfd2luX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpj cnRjLCB1bnNpZ25lZCBpbnQgd2luKQogCS8qIEVuYWJsZSBETUEgY2hhbm5lbCBhbmQgdW5wcm90 ZWN0IHdpbmRvd3MgKi8KIAlmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIHdpbiwgZmFsc2Up OwogCi0JcGxhbmUtPmVuYWJsZWQgPSB0cnVlOwotCiAJaWYgKGN0eC0+aTgwX2lmKQogCQlhdG9t aWNfc2V0KCZjdHgtPndpbl91cGRhdGVkLCAxKTsKIH0KQEAgLTc0NCwxMSArNzM5LDggQEAgc3Rh dGljIHZvaWQgZmltZF93aW5fZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCB1 bnNpZ25lZCBpbnQgd2luKQogCiAJcGxhbmUgPSAmY3R4LT5wbGFuZXNbd2luXTsKIAotCWlmIChj dHgtPnN1c3BlbmRlZCkgewotCQkvKiBkbyBub3QgcmVzdW1lIHRoaXMgd2luZG93Ki8KLQkJcGxh bmUtPnJlc3VtZSA9IGZhbHNlOworCWlmIChjdHgtPnN1c3BlbmRlZCkKIAkJcmV0dXJuOwotCX0K IAogCS8qIHByb3RlY3Qgd2luZG93cyAqLwogCWZpbWRfc2hhZG93X3Byb3RlY3Rfd2luKGN0eCwg d2luLCB0cnVlKTsKQEAgLTc2MCw0OSArNzUyLDYgQEAgc3RhdGljIHZvaWQgZmltZF93aW5fZGlz YWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBpbnQgd2luKQogCiAJ LyogdW5wcm90ZWN0IHdpbmRvd3MgKi8KIAlmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIHdp biwgZmFsc2UpOwotCi0JcGxhbmUtPmVuYWJsZWQgPSBmYWxzZTsKLX0KLQotc3RhdGljIHZvaWQg ZmltZF93aW5kb3dfc3VzcGVuZChzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgpCi17Ci0Jc3RydWN0 IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IFdJ TkRPV1NfTlI7IGkrKykgewotCQlwbGFuZSA9ICZjdHgtPnBsYW5lc1tpXTsKLQkJcGxhbmUtPnJl c3VtZSA9IHBsYW5lLT5lbmFibGVkOwotCQlpZiAocGxhbmUtPmVuYWJsZWQpCi0JCQlmaW1kX3dp bl9kaXNhYmxlKGN0eC0+Y3J0YywgaSk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBmaW1kX3dpbmRv d19yZXN1bWUoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQotewotCXN0cnVjdCBleHlub3NfZHJt X3BsYW5lICpwbGFuZTsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBXSU5ET1dTX05SOyBp KyspIHsKLQkJcGxhbmUgPSAmY3R4LT5wbGFuZXNbaV07Ci0JCXBsYW5lLT5lbmFibGVkID0gcGxh bmUtPnJlc3VtZTsKLQkJcGxhbmUtPnJlc3VtZSA9IGZhbHNlOwotCX0KLX0KLQotc3RhdGljIHZv aWQgZmltZF9hcHBseShzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgpCi17Ci0Jc3RydWN0IGV4eW5v c19kcm1fcGxhbmUgKnBsYW5lOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IFdJTkRPV1Nf TlI7IGkrKykgewotCQlwbGFuZSA9ICZjdHgtPnBsYW5lc1tpXTsKLQkJaWYgKHBsYW5lLT5lbmFi bGVkKQotCQkJZmltZF93aW5fY29tbWl0KGN0eC0+Y3J0YywgaSk7Ci0JCWVsc2UKLQkJCWZpbWRf d2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsKLQl9Ci0KLQlmaW1kX2NvbW1pdChjdHgtPmNydGMp OwogfQogCiBzdGF0aWMgdm9pZCBmaW1kX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpj cnRjKQpAQCAtODIzLDE0ICs3NzIsMTMgQEAgc3RhdGljIHZvaWQgZmltZF9lbmFibGUoc3RydWN0 IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KDAsICZjdHgt PmlycV9mbGFncykpCiAJCWZpbWRfZW5hYmxlX3ZibGFuayhjdHgtPmNydGMpOwogCi0JZmltZF93 aW5kb3dfcmVzdW1lKGN0eCk7Ci0KLQlmaW1kX2FwcGx5KGN0eCk7CisJZmltZF9jb21taXQoY3R4 LT5jcnRjKTsKIH0KIAogc3RhdGljIHZvaWQgZmltZF9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owor CWludCBpOwogCiAJaWYgKGN0eC0+c3VzcGVuZGVkKQogCQlyZXR1cm47CkBAIC04NDAsNyArNzg4 LDggQEAgc3RhdGljIHZvaWQgZmltZF9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNy dGMpCiAJICogc3VzcGVuZCB0aGF0IGNvbm5lY3Rvci4gT3RoZXJ3aXNlIHdlIG1pZ2h0IHRyeSB0 byBzY2FuIGZyb20KIAkgKiBhIGRlc3Ryb3llZCBidWZmZXIgbGF0ZXIuCiAJICovCi0JZmltZF93 aW5kb3dfc3VzcGVuZChjdHgpOworCWZvciAoaSA9IDA7IGkgPCBXSU5ET1dTX05SOyBpKyspCisJ CWZpbWRfd2luX2Rpc2FibGUoY3J0YywgaSk7CiAKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4 LT5sY2RfY2xrKTsKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5idXNfY2xrKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCmluZGV4IGFiZTRlZTAuLmU1NTE3NGYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYwpAQCAtMTMxLDMzICsx MzEsMTUgQEAgc3RhdGljIHZvaWQgdmlkaV93aW5fY29tbWl0KHN0cnVjdCBleHlub3NfZHJtX2Ny dGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCiAKIAlwbGFuZSA9ICZjdHgtPnBsYW5lc1t3aW5d OwogCi0JcGxhbmUtPmVuYWJsZWQgPSB0cnVlOwotCiAJRFJNX0RFQlVHX0tNUygiZG1hX2FkZHIg PSAlcGFkXG4iLCBwbGFuZS0+ZG1hX2FkZHIpOwogCiAJaWYgKGN0eC0+dmJsYW5rX29uKQogCQlz Y2hlZHVsZV93b3JrKCZjdHgtPndvcmspOwogfQogCi1zdGF0aWMgdm9pZCB2aWRpX3dpbl9kaXNh YmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCi17Ci0J c3RydWN0IHZpZGlfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4OwotCXN0cnVjdCBleHlub3NfZHJt X3BsYW5lICpwbGFuZTsKLQotCWlmICh3aW4gPCAwIHx8IHdpbiA+PSBXSU5ET1dTX05SKQotCQly ZXR1cm47Ci0KLQlwbGFuZSA9ICZjdHgtPnBsYW5lc1t3aW5dOwotCXBsYW5lLT5lbmFibGVkID0g ZmFsc2U7Ci0KLQkvKiBUT0RPLiAqLwotfQotCiBzdGF0aWMgdm9pZCB2aWRpX2VuYWJsZShzdHJ1 Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9 IGNydGMtPmN0eDsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Ci0JaW50IGk7CiAK IAltdXRleF9sb2NrKCZjdHgtPmxvY2spOwogCkBAIC0xNjcsMjAgKzE0OSwxMiBAQCBzdGF0aWMg dm9pZCB2aWRpX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogCWlmICh0ZXN0 X2FuZF9jbGVhcl9iaXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkKIAkJdmlkaV9lbmFibGVfdmJsYW5r KGN0eC0+Y3J0Yyk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKSB7Ci0JCXBs YW5lID0gJmN0eC0+cGxhbmVzW2ldOwotCQlpZiAocGxhbmUtPmVuYWJsZWQpCi0JCQl2aWRpX3dp bl9jb21taXQoY3R4LT5jcnRjLCBpKTsKLQl9Ci0KIAltdXRleF91bmxvY2soJmN0eC0+bG9jayk7 CiB9CiAKIHN0YXRpYyB2b2lkIHZpZGlfZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpj cnRjKQogewogCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKLQlzdHJ1Y3Qg ZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Ci0JaW50IGk7CiAKIAltdXRleF9sb2NrKCZjdHgtPmxv Y2spOwogCkBAIC0yMDYsNyArMTgwLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHlub3NfZHJt X2NydGNfb3BzIHZpZGlfY3J0Y19vcHMgPSB7CiAJLmVuYWJsZV92YmxhbmsgPSB2aWRpX2VuYWJs ZV92YmxhbmssCiAJLmRpc2FibGVfdmJsYW5rID0gdmlkaV9kaXNhYmxlX3ZibGFuaywKIAkud2lu X2NvbW1pdCA9IHZpZGlfd2luX2NvbW1pdCwKLQkud2luX2Rpc2FibGUgPSB2aWRpX3dpbl9kaXNh YmxlLAogfTsKIAogc3RhdGljIHZvaWQgdmlkaV9mYWtlX3ZibGFua19oYW5kbGVyKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX21peGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCmluZGV4 IGY5M2YwMzguLjk2NmNiZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX21peGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYwpA QCAtOTM3LDggKzkzNyw2IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dpbl9jb21taXQoc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IHdpbikKIAkJdnBfdmlkZW9fYnVmZmVy KG1peGVyX2N0eCwgd2luKTsKIAllbHNlCiAJCW1peGVyX2dyYXBoX2J1ZmZlcihtaXhlcl9jdHgs IHdpbik7Ci0KLQltaXhlcl9jdHgtPnBsYW5lc1t3aW5dLmVuYWJsZWQgPSB0cnVlOwogfQogCiBz dGF0aWMgdm9pZCBtaXhlcl93aW5fZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRj LCB1bnNpZ25lZCBpbnQgd2luKQpAQCAtOTUyLDcgKzk1MCw2IEBAIHN0YXRpYyB2b2lkIG1peGVy X3dpbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3 aW4pCiAJbXV0ZXhfbG9jaygmbWl4ZXJfY3R4LT5taXhlcl9tdXRleCk7CiAJaWYgKCFtaXhlcl9j dHgtPnBvd2VyZWQpIHsKIAkJbXV0ZXhfdW5sb2NrKCZtaXhlcl9jdHgtPm1peGVyX211dGV4KTsK LQkJbWl4ZXJfY3R4LT5wbGFuZXNbd2luXS5yZXN1bWUgPSBmYWxzZTsKIAkJcmV0dXJuOwogCX0K IAltdXRleF91bmxvY2soJm1peGVyX2N0eC0+bWl4ZXJfbXV0ZXgpOwpAQCAtOTY0LDggKzk2MSw2 IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dpbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMg KmNydGMsIHVuc2lnbmVkIGludCB3aW4pCiAKIAltaXhlcl92c3luY19zZXRfdXBkYXRlKG1peGVy X2N0eCwgdHJ1ZSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmVzLT5yZWdfc2xvY2ssIGZs YWdzKTsKLQotCW1peGVyX2N0eC0+cGxhbmVzW3dpbl0uZW5hYmxlZCA9IGZhbHNlOwogfQogCiBz dGF0aWMgdm9pZCBtaXhlcl93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAq Y3J0YykKQEAgLTEwMDAsMzIgKzk5NSw2IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dhaXRfZm9yX3Zi bGFuayhzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogCWRybV92YmxhbmtfcHV0KG1peGVy X2N0eC0+ZHJtX2RldiwgbWl4ZXJfY3R4LT5waXBlKTsKIH0KIAotc3RhdGljIHZvaWQgbWl4ZXJf d2luZG93X3N1c3BlbmQoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCkKLXsKLQlzdHJ1Y3QgZXh5 bm9zX2RybV9wbGFuZSAqcGxhbmU7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUlYRVJf V0lOX05SOyBpKyspIHsKLQkJcGxhbmUgPSAmY3R4LT5wbGFuZXNbaV07Ci0JCXBsYW5lLT5yZXN1 bWUgPSBwbGFuZS0+ZW5hYmxlZDsKLQkJbWl4ZXJfd2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsK LQl9Ci19Ci0KLXN0YXRpYyB2b2lkIG1peGVyX3dpbmRvd19yZXN1bWUoc3RydWN0IG1peGVyX2Nv bnRleHQgKmN0eCkKLXsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Ci0JaW50IGk7 Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUlYRVJfV0lOX05SOyBpKyspIHsKLQkJcGxhbmUgPSAmY3R4 LT5wbGFuZXNbaV07Ci0JCXBsYW5lLT5lbmFibGVkID0gcGxhbmUtPnJlc3VtZTsKLQkJcGxhbmUt PnJlc3VtZSA9IGZhbHNlOwotCQlpZiAocGxhbmUtPmVuYWJsZWQpCi0JCQltaXhlcl93aW5fY29t bWl0KGN0eC0+Y3J0YywgaSk7Ci0JfQotfQotCiBzdGF0aWMgdm9pZCBtaXhlcl9lbmFibGUoc3Ry dWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4 ID0gY3J0Yy0+Y3R4OwpAQCAtMTA1NywxNCArMTAyNiwxMyBAQCBzdGF0aWMgdm9pZCBtaXhlcl9l bmFibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAogCW1peGVyX3JlZ193cml0ZShy ZXMsIE1YUl9JTlRfRU4sIGN0eC0+aW50X2VuKTsKIAltaXhlcl93aW5fcmVzZXQoY3R4KTsKLQot CW1peGVyX3dpbmRvd19yZXN1bWUoY3R4KTsKIH0KIAogc3RhdGljIHZvaWQgbWl4ZXJfZGlzYWJs ZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBtaXhlcl9jb250ZXh0 ICpjdHggPSBjcnRjLT5jdHg7CiAJc3RydWN0IG1peGVyX3Jlc291cmNlcyAqcmVzID0gJmN0eC0+ bWl4ZXJfcmVzOworCWludCBpOwogCiAJbXV0ZXhfbG9jaygmY3R4LT5taXhlcl9tdXRleCk7CiAJ aWYgKCFjdHgtPnBvd2VyZWQpIHsKQEAgLTEwNzUsNyArMTA0Myw5IEBAIHN0YXRpYyB2b2lkIG1p eGVyX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAogCW1peGVyX3N0b3Ao Y3R4KTsKIAltaXhlcl9yZWdzX2R1bXAoY3R4KTsKLQltaXhlcl93aW5kb3dfc3VzcGVuZChjdHgp OworCisJZm9yIChpID0gMDsgaSA8IE1JWEVSX1dJTl9OUjsgaSsrKQorCQltaXhlcl93aW5fZGlz YWJsZShjcnRjLCBpKTsKIAogCWN0eC0+aW50X2VuID0gbWl4ZXJfcmVnX3JlYWQocmVzLCBNWFJf SU5UX0VOKTsKIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==