From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH] drm/exynos: use driver internal struct Date: Wed, 04 Feb 2015 16:17:20 +0900 Message-ID: <54D1C780.3020302@samsung.com> References: <1422603782-29989-1-git-send-email-jy0922.shim@samsung.com> <1422603782-29989-2-git-send-email-jy0922.shim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTP id 7F4E46E683 for ; Tue, 3 Feb 2015 23:17:22 -0800 (PST) Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NJ800G1PK8XHR80@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 04 Feb 2015 16:17:21 +0900 (KST) In-reply-to: <1422603782-29989-2-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: Joonyoung Shim Cc: sw0312.kim@samsung.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMjAxNeuFhCAwMeyblCAzMOydvCAxNjo0MywgSm9vbnlvdW5nIFNoaW0gd3JvdGU6Cj4gVXNl IGRyaXZlciBpbnRlcm5hbCBzdHJ1Y3QgYXMgYXJndW1lbnQgaW5zdGVhZCBvZiBzdHJ1Y3QgZXh5 bm9zX2RybV9jcnRjCj4gZXhjZXB0IGZ1bmN0aW9ucyBvZiBleHlub3NfZHJtX2NydGNfb3BzIGFu ZCBpbnN0ZWFkIG9mIHN0cnVjdAo+IGV4eW5vc19kcm1fZGlzcGxheSBleGNlcHQgZnVuY3Rpb25z IG9mIGV4eW5vc19kcm1fZGlzcGxheV9vcHMuCgpBZ3JlZS4gUmVhc29uYWJsZSB0byB1c2UgYSBk cml2ZXIgY29udGV4dCBhcyBhbiBhcmd1bWVudCBpbiBjYXNlIG9mCmludGVybmFsIGZ1bmN0aW9u cy4gQXBwbGllZC4KClRoYW5rcywKSW5raSBEYWUKCj4gCj4gSXQgY2FuIHJlZHVjZSB1bm5lY2Vz c2FyeSB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKb29ueW91bmcg U2hpbSA8ankwOTIyLnNoaW1Ac2Ftc3VuZy5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RwX2NvcmUuYyAgfCAxNCArKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jIHwgNDMgKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYyB8IDE5 ICsrKysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyAg ICAgfCAxMiArKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIu YyAgICB8IDI2ICsrKysrKysrLS0tLS0tLS0tLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNl cnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHBfY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHBfY29yZS5jCj4gaW5kZXggMzRkNDZhYS4uMTFmZDg5MyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKPiBAQCAtMTA2NywxMCArMTA2Nyw4IEBAIHN0YXRp YyB2b2lkIGV4eW5vc19kcF9waHlfZXhpdChzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHApCj4g IAkJcGh5X3Bvd2VyX29mZihkcC0+cGh5KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZXh5bm9z X2RwX3Bvd2Vyb24oc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKPiArc3RhdGlj IHZvaWQgZXh5bm9zX2RwX3Bvd2Vyb24oc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwKQo+ICB7 Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAgPSBkaXNwbGF5X3RvX2RwKGRpc3BsYXkp Owo+IC0KPiAgCWlmIChkcC0+ZHBtc19tb2RlID09IERSTV9NT0RFX0RQTVNfT04pCj4gIAkJcmV0 dXJuOwo+ICAKPiBAQCAtMTA4NSwxMyArMTA4MywxMSBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHBf cG93ZXJvbihzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5KQo+ICAJZXh5bm9zX2Rw X3BoeV9pbml0KGRwKTsKPiAgCWV4eW5vc19kcF9pbml0X2RwKGRwKTsKPiAgCWVuYWJsZV9pcnEo ZHAtPmlycSk7Cj4gLQlleHlub3NfZHBfY29tbWl0KGRpc3BsYXkpOwo+ICsJZXh5bm9zX2RwX2Nv bW1pdCgmZHAtPmRpc3BsYXkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBleHlub3NfZHBfcG93 ZXJvZmYoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKPiArc3RhdGljIHZvaWQg ZXh5bm9zX2RwX3Bvd2Vyb2ZmKHN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCkKPiAgewo+IC0J c3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZGlzcGxheV90b19kcChkaXNwbGF5KTsKPiAt Cj4gIAlpZiAoZHAtPmRwbXNfbW9kZSAhPSBEUk1fTU9ERV9EUE1TX09OKQo+ICAJCXJldHVybjsK PiAgCj4gQEAgLTExMTksMTIgKzExMTUsMTIgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RwX2RwbXMo c3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwgaW50IG1vZGUpCj4gIAo+ICAJc3dp dGNoIChtb2RlKSB7Cj4gIAljYXNlIERSTV9NT0RFX0RQTVNfT046Cj4gLQkJZXh5bm9zX2RwX3Bv d2Vyb24oZGlzcGxheSk7Cj4gKwkJZXh5bm9zX2RwX3Bvd2Vyb24oZHApOwo+ICAJCWJyZWFrOwo+ ICAJY2FzZSBEUk1fTU9ERV9EUE1TX1NUQU5EQlk6Cj4gIAljYXNlIERSTV9NT0RFX0RQTVNfU1VT UEVORDoKPiAgCWNhc2UgRFJNX01PREVfRFBNU19PRkY6Cj4gLQkJZXh5bm9zX2RwX3Bvd2Vyb2Zm KGRpc3BsYXkpOwo+ICsJCWV4eW5vc19kcF9wb3dlcm9mZihkcCk7Cj4gIAkJYnJlYWs7Cj4gIAlk ZWZhdWx0Ogo+ICAJCWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZmltZC5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Zp bWQuYwo+IGluZGV4IDM5ZjdmYTcuLjkyNWZjNjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9maW1kLmMKPiBAQCAtMjUzLDkgKzI1Myw4IEBAIHN0YXRpYyB2b2lkIGZp bWRfZW5hYmxlX3NoYWRvd19jaGFubmVsX3BhdGgoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4LCBp bnQgd2luLAo+ICAJd3JpdGVsKHZhbCwgY3R4LT5yZWdzICsgU0hBRE9XQ09OKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgZmltZF9jbGVhcl9jaGFubmVsKHN0cnVjdCBleHlub3NfZHJtX2NydGMg KmNydGMpCj4gK3N0YXRpYyB2b2lkIGZpbWRfY2xlYXJfY2hhbm5lbChzdHJ1Y3QgZmltZF9jb250 ZXh0ICpjdHgpCj4gIHsKPiAtCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsK PiAgCWludCB3aW4sIGNoX2VuYWJsZWQgPSAwOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoIiVzXG4i LCBfX0ZJTEVfXyk7Cj4gQEAgLTI4MCw3ICsyNzksNyBAQCBzdGF0aWMgdm9pZCBmaW1kX2NsZWFy X2NoYW5uZWwoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgCQl1bnNpZ25lZCBpbnQg c3RhdGUgPSBjdHgtPnN1c3BlbmRlZDsKPiAgCj4gIAkJY3R4LT5zdXNwZW5kZWQgPSAwOwo+IC0J CWZpbWRfd2FpdF9mb3JfdmJsYW5rKGNydGMpOwo+ICsJCWZpbWRfd2FpdF9mb3JfdmJsYW5rKGN0 eC0+Y3J0Yyk7Cj4gIAkJY3R4LT5zdXNwZW5kZWQgPSBzdGF0ZTsKPiAgCX0KPiAgfQo+IEBAIC0z MDIsNyArMzAxLDcgQEAgc3RhdGljIGludCBmaW1kX2N0eF9pbml0aWFsaXplKHN0cnVjdCBmaW1k X2NvbnRleHQgKmN0eCwKPiAgCQkgKiBJZiBhbnkgY2hhbm5lbCBpcyBhbHJlYWR5IGFjdGl2ZSwg aW9tbXUgd2lsbCB0aHJvdwo+ICAJCSAqIGEgUEFHRSBGQVVMVCB3aGVuIGVuYWJsZWQuIFNvIGNs ZWFyIGFueSBjaGFubmVsIGlmIGVuYWJsZWQuCj4gIAkJICovCj4gLQkJZmltZF9jbGVhcl9jaGFu bmVsKGN0eC0+Y3J0Yyk7Cj4gKwkJZmltZF9jbGVhcl9jaGFubmVsKGN0eCk7Cj4gIAkJcmV0ID0g ZHJtX2lvbW11X2F0dGFjaF9kZXZpY2UoY3R4LT5kcm1fZGV2LCBjdHgtPmRldik7Cj4gIAkJaWYg KHJldCkgewo+ICAJCQlEUk1fRVJST1IoImRybV9pb21tdV9hdHRhY2ggZmFpbGVkLlxuIik7Cj4g QEAgLTgyMyw5ICs4MjIsOCBAQCBzdGF0aWMgdm9pZCBmaW1kX3dpbl9kaXNhYmxlKHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMsIGludCB6cG9zKQo+ICAJd2luX2RhdGEtPmVuYWJsZWQgPSBm YWxzZTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZmltZF93aW5kb3dfc3VzcGVuZChzdHJ1Y3Qg ZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBmaW1kX3dpbmRvd19zdXNwZW5k KHN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCkKPiAgewo+IC0Jc3RydWN0IGZpbWRfY29udGV4dCAq Y3R4ID0gY3J0Yy0+Y3R4Owo+ICAJc3RydWN0IGZpbWRfd2luX2RhdGEgKndpbl9kYXRhOwo+ICAJ aW50IGk7Cj4gIAo+IEBAIC04MzMsMTMgKzgzMSwxMiBAQCBzdGF0aWMgdm9pZCBmaW1kX3dpbmRv d19zdXNwZW5kKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gIAkJd2luX2RhdGEgPSAm Y3R4LT53aW5fZGF0YVtpXTsKPiAgCQl3aW5fZGF0YS0+cmVzdW1lID0gd2luX2RhdGEtPmVuYWJs ZWQ7Cj4gIAkJaWYgKHdpbl9kYXRhLT5lbmFibGVkKQo+IC0JCQlmaW1kX3dpbl9kaXNhYmxlKGNy dGMsIGkpOwo+ICsJCQlmaW1kX3dpbl9kaXNhYmxlKGN0eC0+Y3J0YywgaSk7Cj4gIAl9Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGZpbWRfd2luZG93X3Jlc3VtZShzdHJ1Y3QgZXh5bm9zX2RybV9j cnRjICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBmaW1kX3dpbmRvd19yZXN1bWUoc3RydWN0IGZpbWRf Y29udGV4dCAqY3R4KQo+ICB7Cj4gLQlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5j dHg7Cj4gIAlzdHJ1Y3QgZmltZF93aW5fZGF0YSAqd2luX2RhdGE7Cj4gIAlpbnQgaTsKPiAgCj4g QEAgLTg1MCwyNiArODQ3LDI0IEBAIHN0YXRpYyB2b2lkIGZpbWRfd2luZG93X3Jlc3VtZShzdHJ1 Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBm aW1kX2FwcGx5KHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gK3N0YXRpYyB2b2lkIGZp bWRfYXBwbHkoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQo+ICB7Cj4gLQlzdHJ1Y3QgZmltZF9j b250ZXh0ICpjdHggPSBjcnRjLT5jdHg7Cj4gIAlzdHJ1Y3QgZmltZF93aW5fZGF0YSAqd2luX2Rh dGE7Cj4gIAlpbnQgaTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKSB7 Cj4gIAkJd2luX2RhdGEgPSAmY3R4LT53aW5fZGF0YVtpXTsKPiAgCQlpZiAod2luX2RhdGEtPmVu YWJsZWQpCj4gLQkJCWZpbWRfd2luX2NvbW1pdChjcnRjLCBpKTsKPiArCQkJZmltZF93aW5fY29t bWl0KGN0eC0+Y3J0YywgaSk7Cj4gIAkJZWxzZQo+IC0JCQlmaW1kX3dpbl9kaXNhYmxlKGNydGMs IGkpOwo+ICsJCQlmaW1kX3dpbl9kaXNhYmxlKGN0eC0+Y3J0YywgaSk7Cj4gIAl9Cj4gIAo+IC0J ZmltZF9jb21taXQoY3J0Yyk7Cj4gKwlmaW1kX2NvbW1pdChjdHgtPmNydGMpOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgaW50IGZpbWRfcG93ZXJvbihzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ ICtzdGF0aWMgaW50IGZpbWRfcG93ZXJvbihzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgpCj4gIHsK PiAtCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKPiAgCWludCByZXQ7Cj4g IAo+ICAJaWYgKCFjdHgtPnN1c3BlbmRlZCkKPiBAQCAtODkzLDE2ICs4ODgsMTYgQEAgc3RhdGlj IGludCBmaW1kX3Bvd2Vyb24oc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgCj4gIAkv KiBpZiB2Ymxhbmsgd2FzIGVuYWJsZWQgc3RhdHVzLCBlbmFibGUgaXQgYWdhaW4uICovCj4gIAlp ZiAodGVzdF9hbmRfY2xlYXJfYml0KDAsICZjdHgtPmlycV9mbGFncykpIHsKPiAtCQlyZXQgPSBm aW1kX2VuYWJsZV92YmxhbmsoY3J0Yyk7Cj4gKwkJcmV0ID0gZmltZF9lbmFibGVfdmJsYW5rKGN0 eC0+Y3J0Yyk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZS1l bmFibGUgdmJsYW5rIFslZF1cbiIsIHJldCk7Cj4gIAkJCWdvdG8gZW5hYmxlX3ZibGFua19lcnI7 Cj4gIAkJfQo+ICAJfQo+ICAKPiAtCWZpbWRfd2luZG93X3Jlc3VtZShjcnRjKTsKPiArCWZpbWRf d2luZG93X3Jlc3VtZShjdHgpOwo+ICAKPiAtCWZpbWRfYXBwbHkoY3J0Yyk7Cj4gKwlmaW1kX2Fw cGx5KGN0eCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIAo+IEBAIC05MTUsMTAgKzkxMCw4IEBAIGJ1 c19jbGtfZXJyOgo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBmaW1kX3Bv d2Vyb2ZmKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gK3N0YXRpYyBpbnQgZmltZF9w b3dlcm9mZihzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgpCj4gIHsKPiAtCXN0cnVjdCBmaW1kX2Nv bnRleHQgKmN0eCA9IGNydGMtPmN0eDsKPiAtCj4gIAlpZiAoY3R4LT5zdXNwZW5kZWQpCj4gIAkJ cmV0dXJuIDA7Cj4gIAo+IEBAIC05MjcsNyArOTIwLDcgQEAgc3RhdGljIGludCBmaW1kX3Bvd2Vy b2ZmKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gIAkgKiBzdXNwZW5kIHRoYXQgY29u bmVjdG9yLiBPdGhlcndpc2Ugd2UgbWlnaHQgdHJ5IHRvIHNjYW4gZnJvbQo+ICAJICogYSBkZXN0 cm95ZWQgYnVmZmVyIGxhdGVyLgo+ICAJICovCj4gLQlmaW1kX3dpbmRvd19zdXNwZW5kKGNydGMp Owo+ICsJZmltZF93aW5kb3dfc3VzcGVuZChjdHgpOwo+ICAKPiAgCWNsa19kaXNhYmxlX3VucHJl cGFyZShjdHgtPmxjZF9jbGspOwo+ICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGN0eC0+YnVzX2Ns ayk7Cj4gQEAgLTk0NCwxMiArOTM3LDEyIEBAIHN0YXRpYyB2b2lkIGZpbWRfZHBtcyhzdHJ1Y3Qg ZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkKPiAgCj4gIAlzd2l0Y2ggKG1vZGUpIHsK PiAgCWNhc2UgRFJNX01PREVfRFBNU19PTjoKPiAtCQlmaW1kX3Bvd2Vyb24oY3J0Yyk7Cj4gKwkJ ZmltZF9wb3dlcm9uKGNydGMtPmN0eCk7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIERSTV9NT0RFX0RQ TVNfU1RBTkRCWToKPiAgCWNhc2UgRFJNX01PREVfRFBNU19TVVNQRU5EOgo+ICAJY2FzZSBEUk1f TU9ERV9EUE1TX09GRjoKPiAtCQlmaW1kX3Bvd2Vyb2ZmKGNydGMpOwo+ICsJCWZpbWRfcG93ZXJv ZmYoY3J0Yy0+Y3R4KTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJRFJNX0RFQlVHX0tN UygidW5zcGVjaWZpZWQgbW9kZSAlZFxuIiwgbW9kZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fdmlkaS5jCj4gaW5kZXggZmI2OGQzYy4uYjg4Njk3MiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYwo+IEBAIC05NywxNyArOTcsMTYgQEAg c3RhdGljIGNvbnN0IGNoYXIgZmFrZV9lZGlkX2luZm9bXSA9IHsKPiAgCTB4MDAsIDB4MDAsIDB4 MDAsIDB4MDYKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIHZpZGlfYXBwbHkoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YykKPiArc3RhdGljIHZvaWQgdmlkaV9hcHBseShzdHJ1Y3QgdmlkaV9j b250ZXh0ICpjdHgpCj4gIHsKPiAtCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0 eDsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzICpjcnRjX29wcyA9IGNydGMtPm9wczsK PiArCXN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzICpjcnRjX29wcyA9IGN0eC0+Y3J0Yy0+b3Bz Owo+ICAJc3RydWN0IHZpZGlfd2luX2RhdGEgKndpbl9kYXRhOwo+ICAJaW50IGk7Cj4gIAo+ICAJ Zm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykgewo+ICAJCXdpbl9kYXRhID0gJmN0eC0+ d2luX2RhdGFbaV07Cj4gIAkJaWYgKHdpbl9kYXRhLT5lbmFibGVkICYmIChjcnRjX29wcyAmJiBj cnRjX29wcy0+d2luX2NvbW1pdCkpCj4gLQkJCWNydGNfb3BzLT53aW5fY29tbWl0KGNydGMsIGkp Owo+ICsJCQljcnRjX29wcy0+d2luX2NvbW1pdChjdHgtPmNydGMsIGkpOwo+ICAJfQo+ICB9Cj4g IAo+IEBAIC0yNDAsMTAgKzIzOSw4IEBAIHN0YXRpYyB2b2lkIHZpZGlfd2luX2Rpc2FibGUoc3Ry dWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgaW50IHpwb3MpCj4gIAkvKiBUT0RPLiAqLwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IHZpZGlfcG93ZXJfb24oc3RydWN0IGV4eW5vc19kcm1fY3J0YyAq Y3J0YywgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyBpbnQgdmlkaV9wb3dlcl9vbihzdHJ1Y3Qgdmlk aV9jb250ZXh0ICpjdHgsIGJvb2wgZW5hYmxlKQo+ICB7Cj4gLQlzdHJ1Y3QgdmlkaV9jb250ZXh0 ICpjdHggPSBjcnRjLT5jdHg7Cj4gLQo+ICAJRFJNX0RFQlVHX0tNUygiJXNcbiIsIF9fRklMRV9f KTsKPiAgCj4gIAlpZiAoZW5hYmxlICE9IGZhbHNlICYmIGVuYWJsZSAhPSB0cnVlKQo+IEBAIC0y NTQsOSArMjUxLDkgQEAgc3RhdGljIGludCB2aWRpX3Bvd2VyX29uKHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQo+ICAKPiAgCQkvKiBpZiB2Ymxhbmsgd2FzIGVuYWJs ZWQgc3RhdHVzLCBlbmFibGUgaXQgYWdhaW4uICovCj4gIAkJaWYgKHRlc3RfYW5kX2NsZWFyX2Jp dCgwLCAmY3R4LT5pcnFfZmxhZ3MpKQo+IC0JCQl2aWRpX2VuYWJsZV92YmxhbmsoY3J0Yyk7Cj4g KwkJCXZpZGlfZW5hYmxlX3ZibGFuayhjdHgtPmNydGMpOwo+ICAKPiAtCQl2aWRpX2FwcGx5KGNy dGMpOwo+ICsJCXZpZGlfYXBwbHkoY3R4KTsKPiAgCX0gZWxzZSB7Cj4gIAkJY3R4LT5zdXNwZW5k ZWQgPSB0cnVlOwo+ICAJfQo+IEBAIC0yNzQsMTIgKzI3MSwxMiBAQCBzdGF0aWMgdm9pZCB2aWRp X2RwbXMoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgaW50IG1vZGUpCj4gIAo+ICAJc3dp dGNoIChtb2RlKSB7Cj4gIAljYXNlIERSTV9NT0RFX0RQTVNfT046Cj4gLQkJdmlkaV9wb3dlcl9v bihjcnRjLCB0cnVlKTsKPiArCQl2aWRpX3Bvd2VyX29uKGN0eCwgdHJ1ZSk7Cj4gIAkJYnJlYWs7 Cj4gIAljYXNlIERSTV9NT0RFX0RQTVNfU1RBTkRCWToKPiAgCWNhc2UgRFJNX01PREVfRFBNU19T VVNQRU5EOgo+ICAJY2FzZSBEUk1fTU9ERV9EUE1TX09GRjoKPiAtCQl2aWRpX3Bvd2VyX29uKGNy dGMsIGZhbHNlKTsKPiArCQl2aWRpX3Bvd2VyX29uKGN0eCwgZmFsc2UpOwo+ICAJCWJyZWFrOwo+ ICAJZGVmYXVsdDoKPiAgCQlEUk1fREVCVUdfS01TKCJ1bnNwZWNpZmllZCBtb2RlICVkXG4iLCBt b2RlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5j IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4gaW5kZXggOTgwNTFlOC4u MjI5YjM2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1p LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMKPiBAQCAtMjAz Miw5ICsyMDMyLDggQEAgc3RhdGljIHZvaWQgaGRtaV9jb21taXQoc3RydWN0IGV4eW5vc19kcm1f ZGlzcGxheSAqZGlzcGxheSkKPiAgCWhkbWlfY29uZl9hcHBseShoZGF0YSk7Cj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGhkbWlfcG93ZXJvbihzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNw bGF5KQo+ICtzdGF0aWMgdm9pZCBoZG1pX3Bvd2Vyb24oc3RydWN0IGhkbWlfY29udGV4dCAqaGRh dGEpCj4gIHsKPiAtCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0gZGlzcGxheV90b19oZG1p KGRpc3BsYXkpOwo+ICAJc3RydWN0IGhkbWlfcmVzb3VyY2VzICpyZXMgPSAmaGRhdGEtPnJlczsK PiAgCj4gIAltdXRleF9sb2NrKCZoZGF0YS0+aGRtaV9tdXRleCk7Cj4gQEAgLTIwNjAsMTIgKzIw NTksMTEgQEAgc3RhdGljIHZvaWQgaGRtaV9wb3dlcm9uKHN0cnVjdCBleHlub3NfZHJtX2Rpc3Bs YXkgKmRpc3BsYXkpCj4gIAljbGtfcHJlcGFyZV9lbmFibGUocmVzLT5zY2xrX2hkbWkpOwo+ICAK PiAgCWhkbWlwaHlfcG93ZXJvbihoZGF0YSk7Cj4gLQloZG1pX2NvbW1pdChkaXNwbGF5KTsKPiAr CWhkbWlfY29tbWl0KCZoZGF0YS0+ZGlzcGxheSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGhk bWlfcG93ZXJvZmYoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKPiArc3RhdGlj IHZvaWQgaGRtaV9wb3dlcm9mZihzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSkKPiAgewo+IC0J c3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEgPSBkaXNwbGF5X3RvX2hkbWkoZGlzcGxheSk7Cj4g IAlzdHJ1Y3QgaGRtaV9yZXNvdXJjZXMgKnJlcyA9ICZoZGF0YS0+cmVzOwo+ICAKPiAgCW11dGV4 X2xvY2soJmhkYXRhLT5oZG1pX211dGV4KTsKPiBAQCAtMjEwOSw3ICsyMTA3LDcgQEAgc3RhdGlj IHZvaWQgaGRtaV9kcG1zKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXksIGludCBt b2RlKQo+ICAKPiAgCXN3aXRjaCAobW9kZSkgewo+ICAJY2FzZSBEUk1fTU9ERV9EUE1TX09OOgo+ IC0JCWhkbWlfcG93ZXJvbihkaXNwbGF5KTsKPiArCQloZG1pX3Bvd2Vyb24oaGRhdGEpOwo+ICAJ CWJyZWFrOwo+ICAJY2FzZSBEUk1fTU9ERV9EUE1TX1NUQU5EQlk6Cj4gIAljYXNlIERSTV9NT0RF X0RQTVNfU1VTUEVORDoKPiBAQCAtMjEyOCw3ICsyMTI2LDcgQEAgc3RhdGljIHZvaWQgaGRtaV9k cG1zKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXksIGludCBtb2RlKQo+ICAJCWlm IChmdW5jcyAmJiBmdW5jcy0+ZHBtcykKPiAgCQkJKCpmdW5jcy0+ZHBtcykoY3J0YywgbW9kZSk7 Cj4gIAo+IC0JCWhkbWlfcG93ZXJvZmYoZGlzcGxheSk7Cj4gKwkJaGRtaV9wb3dlcm9mZihoZGF0 YSk7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCURSTV9ERUJVR19LTVMoInVua25vd24g ZHBtcyBtb2RlOiAlZFxuIiwgbW9kZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX21peGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhl ci5jCj4gaW5kZXggYTNhNWRiMy4uMzlkMzdkNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfbWl4ZXIuYwo+IEBAIC0xMDU0LDIzICsxMDU0LDIxIEBAIHN0YXRpYyB2b2lkIG1peGVy X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAJZHJtX3Zi bGFua19wdXQobWl4ZXJfY3R4LT5kcm1fZGV2LCBtaXhlcl9jdHgtPnBpcGUpOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCBtaXhlcl93aW5kb3dfc3VzcGVuZChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj ICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBtaXhlcl93aW5kb3dfc3VzcGVuZChzdHJ1Y3QgbWl4ZXJf Y29udGV4dCAqY3R4KQo+ICB7Cj4gLQlzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4ID0gY3J0Yy0+ Y3R4Owo+ICAJc3RydWN0IGhkbWlfd2luX2RhdGEgKndpbl9kYXRhOwo+ICAJaW50IGk7Cj4gIAo+ ICAJZm9yIChpID0gMDsgaSA8IE1JWEVSX1dJTl9OUjsgaSsrKSB7Cj4gIAkJd2luX2RhdGEgPSAm Y3R4LT53aW5fZGF0YVtpXTsKPiAgCQl3aW5fZGF0YS0+cmVzdW1lID0gd2luX2RhdGEtPmVuYWJs ZWQ7Cj4gLQkJbWl4ZXJfd2luX2Rpc2FibGUoY3J0YywgaSk7Cj4gKwkJbWl4ZXJfd2luX2Rpc2Fi bGUoY3R4LT5jcnRjLCBpKTsKPiAgCX0KPiAtCW1peGVyX3dhaXRfZm9yX3ZibGFuayhjcnRjKTsK PiArCW1peGVyX3dhaXRfZm9yX3ZibGFuayhjdHgtPmNydGMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBtaXhlcl93aW5kb3dfcmVzdW1lKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4g K3N0YXRpYyB2b2lkIG1peGVyX3dpbmRvd19yZXN1bWUoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0 eCkKPiAgewo+IC0Jc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKPiAgCXN0 cnVjdCBoZG1pX3dpbl9kYXRhICp3aW5fZGF0YTsKPiAgCWludCBpOwo+ICAKPiBAQCAtMTA3OSwx MyArMTA3NywxMiBAQCBzdGF0aWMgdm9pZCBtaXhlcl93aW5kb3dfcmVzdW1lKHN0cnVjdCBleHlu b3NfZHJtX2NydGMgKmNydGMpCj4gIAkJd2luX2RhdGEtPmVuYWJsZWQgPSB3aW5fZGF0YS0+cmVz dW1lOwo+ICAJCXdpbl9kYXRhLT5yZXN1bWUgPSBmYWxzZTsKPiAgCQlpZiAod2luX2RhdGEtPmVu YWJsZWQpCj4gLQkJCW1peGVyX3dpbl9jb21taXQoY3J0YywgaSk7Cj4gKwkJCW1peGVyX3dpbl9j b21taXQoY3R4LT5jcnRjLCBpKTsKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgbWl4ZXJf cG93ZXJvbihzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBtaXhl cl9wb3dlcm9uKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCj4gIHsKPiAtCXN0cnVjdCBtaXhl cl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7Cj4gIAlzdHJ1Y3QgbWl4ZXJfcmVzb3VyY2VzICpy ZXMgPSAmY3R4LT5taXhlcl9yZXM7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmY3R4LT5taXhlcl9tdXRl eCk7Cj4gQEAgLTExMTUsMTIgKzExMTIsMTEgQEAgc3RhdGljIHZvaWQgbWl4ZXJfcG93ZXJvbihz dHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAJbWl4ZXJfcmVnX3dyaXRlKHJlcywgTVhS X0lOVF9FTiwgY3R4LT5pbnRfZW4pOwo+ICAJbWl4ZXJfd2luX3Jlc2V0KGN0eCk7Cj4gIAo+IC0J bWl4ZXJfd2luZG93X3Jlc3VtZShjcnRjKTsKPiArCW1peGVyX3dpbmRvd19yZXN1bWUoY3R4KTsK PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgbWl4ZXJfcG93ZXJvZmYoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YykKPiArc3RhdGljIHZvaWQgbWl4ZXJfcG93ZXJvZmYoc3RydWN0IG1peGVyX2Nv bnRleHQgKmN0eCkKPiAgewo+IC0Jc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0 eDsKPiAgCXN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJlcyA9ICZjdHgtPm1peGVyX3JlczsKPiAg Cj4gIAltdXRleF9sb2NrKCZjdHgtPm1peGVyX211dGV4KTsKPiBAQCAtMTEzMSw3ICsxMTI3LDcg QEAgc3RhdGljIHZvaWQgbWl4ZXJfcG93ZXJvZmYoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0 YykKPiAgCW11dGV4X3VubG9jaygmY3R4LT5taXhlcl9tdXRleCk7Cj4gIAo+ICAJbWl4ZXJfc3Rv cChjdHgpOwo+IC0JbWl4ZXJfd2luZG93X3N1c3BlbmQoY3J0Yyk7Cj4gKwltaXhlcl93aW5kb3df c3VzcGVuZChjdHgpOwo+ICAKPiAgCWN0eC0+aW50X2VuID0gbWl4ZXJfcmVnX3JlYWQocmVzLCBN WFJfSU5UX0VOKTsKPiAgCj4gQEAgLTExNTQsMTIgKzExNTAsMTIgQEAgc3RhdGljIHZvaWQgbWl4 ZXJfZHBtcyhzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkKPiAgewo+ICAJ c3dpdGNoIChtb2RlKSB7Cj4gIAljYXNlIERSTV9NT0RFX0RQTVNfT046Cj4gLQkJbWl4ZXJfcG93 ZXJvbihjcnRjKTsKPiArCQltaXhlcl9wb3dlcm9uKGNydGMtPmN0eCk7Cj4gIAkJYnJlYWs7Cj4g IAljYXNlIERSTV9NT0RFX0RQTVNfU1RBTkRCWToKPiAgCWNhc2UgRFJNX01PREVfRFBNU19TVVNQ RU5EOgo+ICAJY2FzZSBEUk1fTU9ERV9EUE1TX09GRjoKPiAtCQltaXhlcl9wb3dlcm9mZihjcnRj KTsKPiArCQltaXhlcl9wb3dlcm9mZihjcnRjLT5jdHgpOwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVs dDoKPiAgCQlEUk1fREVCVUdfS01TKCJ1bmtub3duIGRwbXMgbW9kZTogJWRcbiIsIG1vZGUpOwo+ IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK