From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 08/14] drm/exynos: atomic phase 1: add atomic_begin()/atomic_flush() Date: Wed, 4 Feb 2015 15:30:52 +0100 Message-ID: <20150204143052.GI14009@phenom.ffwll.local> References: <1422990871-21355-1-git-send-email-gustavo@padovan.org> <1422990871-21355-9-git-send-email-gustavo@padovan.org> <54D1CF05.8000804@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <54D1CF05.8000804@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: linux-samsung-soc@vger.kernel.org, Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: linux-samsung-soc@vger.kernel.org T24gV2VkLCBGZWIgMDQsIDIwMTUgYXQgMDQ6NDk6MjVQTSArMDkwMCwgSm9vbnlvdW5nIFNoaW0g d3JvdGU6Cj4gSGksCj4gCj4gT24gMDIvMDQvMjAxNSAwNDoxNCBBTSwgR3VzdGF2byBQYWRvdmFu IHdyb3RlOgo+ID4gRnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFi b3JhLmNvLnVrPgo+ID4gCj4gPiBBZGQgQ1JUQyBjYWxsYmFja3MgLmF0b21pY19iZWdpbigpIC5h dG9taWNfZmx1c2goKS4gT24gZXh5bm9zIHRoZXkKPiA+IHVucHJvdGVjdCB0aGUgd2luZG93cyBi ZWZvcmUgdGhlIGNvbW1pdCBhbmQgcHJvdGVjdHMgaXQgYWZ0ZXIgYmFzZWQgb24KPiA+IGEgcGxh bmUgbWFzayB0aGEgc3RvcmUgd2hpY2ggcGxhbmUgd2lsbCBiZSB1cGRhdGVkLgo+ID4gCj4gCj4g SSBkb24ndCB0aGluayB0aGV5IG5lZWQgbm93LgoKVGhpcyBkb2VzIGV4YWN0bHkgd2hhdCBJIHdh bnRlZCB0byBkbyBpbiBteSBhdG9taWMgcG9jIGJ1dCBjb3VsZG4ndApiZWNhdXNlIG9mIHRoZSBt YXNzaXZlIGxheWVyIGhlbGwgdGhhdCB3YXMgc3RpbGwgYXJvdW5kIGluIGF0b21pYy4gSGF2ZW4n dApsb29rZWQgaW50byB0aGUgcGF0Y2ggaW4gZGV0YWlscywgc28gbm8gZnVsbCByLWIgYnV0IGdv b2QgZW5vdWdoIGZvciBhbgoKQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+CgpBc2lkZTogSWYgeW91IHRoaW5rIHNvbWV0aGluZyBkb2Vzbid0IG5lZWQgdG8g YmUgZG9uZSBwbGVhc2UgZXhwbGFpbiB3aGF0CnlvdSBtZWFuIG9yIGF0IGxlYXN0IGFzayBhYm91 dCB3aGF0IHlvdSBkb24ndCB1bmRlcnN0YW5kIGluIGEgcGF0Y2guIEFzLWlzCnlvdXIgcmV2aWV3 IGlzIHByZXR0eSBtdWNoIHVuYWN0aW9uYWJsZS4KCkNoZWVycywgRGFuaWVsCgo+IAo+IFRoYW5r cy4KPiAKPiA+IEZvciB0aGF0IHdlIGNyZWF0ZSB0d28gbmV3IGV4eW5vc19jcnRjIGNhbGxiYWNr czogLndpbl9wcm90ZWN0KCkgYW5kCj4gPiAud2luX3VucHJvdGVjdCgpLiBUaGUgb25seSBkcml2 ZXIgdGhhdCBpbXBsZW1lbnQgdGhvc2Ugbm93IGlzIEZJTUQuCj4gPiAKPiA+IFNpZ25lZC1vZmYt Ynk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9yYS5jby51az4KPiA+ IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMgIHwgMzQg KysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2Rydi5oICAgfCAgNCArKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f ZmltZC5jICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYyB8ICA0ICsrKwo+ID4gIDQgZmlsZXMg Y2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYwo+ID4gaW5kZXggMDlkNDc4MC4uYmUz NmNjYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9j cnRjLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMK PiA+IEBAIC0xNDcsNiArMTQ3LDM4IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kcm1fY3J0Y19kaXNh YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0 aWMgdm9pZCBleHlub3NfY3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ID4gK3sKPiA+ICsJc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqZXh5bm9zX2NydGMgPSB0b19leHlu b3NfY3J0YyhjcnRjKTsKPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPiArCWludCBp bmRleCA9IDA7Cj4gPiArCj4gPiArCWxpc3RfZm9yX2VhY2hfZW50cnkocGxhbmUsICZjcnRjLT5k ZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpIHsKPiA+ICsJCWlmIChleHlub3NfY3J0 Yy0+b3BzLT53aW5fcHJvdGVjdCAmJgo+ID4gKwkJICAgIGV4eW5vc19jcnRjLT5wbGFuZV9tYXNr ICYgKDB4MDEgPDwgaW5kZXgpKQo+ID4gKwkJCWV4eW5vc19jcnRjLT5vcHMtPndpbl9wcm90ZWN0 KGV4eW5vc19jcnRjLCBpbmRleCk7Cj4gPiArCj4gPiArCQlpbmRleCsrOwo+ID4gKwl9Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGV4eW5vc19jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpleHlu b3NfY3J0YyA9IHRvX2V4eW5vc19jcnRjKGNydGMpOwo+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZTsKPiA+ICsJaW50IGluZGV4ID0gMDsKPiA+ICsKPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShwbGFuZSwgJmNydGMtPmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCwgaGVhZCkgewo+ID4g KwkJaWYgKGV4eW5vc19jcnRjLT5vcHMtPndpbl91bnByb3RlY3QgJiYKPiA+ICsJCSAgICBleHlu b3NfY3J0Yy0+cGxhbmVfbWFzayAmICgweDAxIDw8IGluZGV4KSkKPiA+ICsJCQlleHlub3NfY3J0 Yy0+b3BzLT53aW5fdW5wcm90ZWN0KGV4eW5vc19jcnRjLCBpbmRleCk7Cj4gPiArCj4gPiArCQlp bmRleCsrOwo+ID4gKwl9Cj4gPiArCj4gPiArCWV4eW5vc19jcnRjLT5wbGFuZV9tYXNrID0gMDsK PiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgZXh5 bm9zX2NydGNfaGVscGVyX2Z1bmNzID0gewo+ID4gIAkuZHBtcwkJPSBleHlub3NfZHJtX2NydGNf ZHBtcywKPiA+ICAJLnByZXBhcmUJPSBleHlub3NfZHJtX2NydGNfcHJlcGFyZSwKPiA+IEBAIC0x NTUsNiArMTg3LDggQEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgZXh5bm9z X2NydGNfaGVscGVyX2Z1bmNzID0gewo+ID4gIAkubW9kZV9zZXQJPSBleHlub3NfZHJtX2NydGNf bW9kZV9zZXQsCj4gPiAgCS5tb2RlX3NldF9iYXNlCT0gZXh5bm9zX2RybV9jcnRjX21vZGVfc2V0 X2Jhc2UsCj4gPiAgCS5kaXNhYmxlCT0gZXh5bm9zX2RybV9jcnRjX2Rpc2FibGUsCj4gPiArCS5h dG9taWNfYmVnaW4JPSBleHlub3NfY3J0Y19hdG9taWNfYmVnaW4sCj4gPiArCS5hdG9taWNfZmx1 c2gJPSBleHlub3NfY3J0Y19hdG9taWNfZmx1c2gsCj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMg aW50IGV4eW5vc19kcm1fY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ID4gaW5kZXggY2FkNTRlNy4u NDNlZmQ5ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5o Cj4gPiBAQCAtMTk0LDYgKzE5NCw4IEBAIHN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzIHsKPiA+ ICAJdm9pZCAoKndpbl9lbmFibGUpKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIGludCB6 cG9zKTsKPiA+ICAJdm9pZCAoKndpbl9kaXNhYmxlKShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpj cnRjLCBpbnQgenBvcyk7Cj4gPiAgCXZvaWQgKCp0ZV9oYW5kbGVyKShzdHJ1Y3QgZXh5bm9zX2Ry bV9jcnRjICpjcnRjKTsKPiA+ICsJdm9pZCAoKndpbl9wcm90ZWN0KShzdHJ1Y3QgZXh5bm9zX2Ry bV9jcnRjICpjcnRjLCBpbnQgenBvcyk7Cj4gPiArCXZvaWQgKCp3aW5fdW5wcm90ZWN0KShzdHJ1 Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQgenBvcyk7Cj4gPiAgfTsKPiA+ICAKPiA+ICBl bnVtIGV4eW5vc19jcnRjX21vZGUgewo+ID4gQEAgLTIxNCw2ICsyMTYsNyBAQCBlbnVtIGV4eW5v c19jcnRjX21vZGUgewo+ID4gICAqCXdlIGNhbiByZWZlciB0byB0aGUgY3J0YyB0byBjdXJyZW50 IGhhcmR3YXJlIGludGVycnVwdCBvY2N1cnJlZCB0aHJvdWdoCj4gPiAgICoJdGhpcyBwaXBlIHZh bHVlLgo+ID4gICAqIEBkcG1zOiBzdG9yZSB0aGUgY3J0YyBkcG1zIHZhbHVlCj4gPiArICogQHBs YW5lX21hc2s6IHN0b3JlIHBsYW5lcyB0byBiZSB1cGRhdGVkIG9uIGF0b21pYyBtb2Rlc2V0dGlu Zwo+ID4gICAqIEBtb2RlOiBzdG9yZSB0aGUgY3J0YyBtb2RlIHZhbHVlCj4gPiAgICogQGV2ZW50 OiB2YmxhbmsgZXZlbnQgdGhhdCBpcyBjdXJyZW50bHkgcXVldWVkIGZvciBmbGlwCj4gPiAgICog QG9wczogcG9pbnRlciB0byBjYWxsYmFja3MgZm9yIGV4eW5vcyBkcm0gc3BlY2lmaWMgZnVuY3Rp b25hbGl0eQo+ID4gQEAgLTIyNCw2ICsyMjcsNyBAQCBzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjIHsK PiA+ICAJZW51bSBleHlub3NfZHJtX291dHB1dF90eXBlCXR5cGU7Cj4gPiAgCXVuc2lnbmVkIGlu dAkJCXBpcGU7Cj4gPiAgCXVuc2lnbmVkIGludAkJCWRwbXM7Cj4gPiArCXVuc2lnbmVkIGludAkJ CXBsYW5lX21hc2s7Cj4gPiAgCWVudW0gZXh5bm9zX2NydGNfbW9kZQkJbW9kZTsKPiA+ICAJd2Fp dF9xdWV1ZV9oZWFkX3QJCXBlbmRpbmdfZmxpcF9xdWV1ZTsKPiA+ICAJc3RydWN0IGRybV9wZW5k aW5nX3ZibGFua19ldmVudAkqZXZlbnQ7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9maW1kLmMKPiA+IGluZGV4IGViYjRjZGMuLmY0OThkODYgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCj4gPiBAQCAtNTg1LDYgKzU4NSwxNiBA QCBzdGF0aWMgdm9pZCBmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihzdHJ1Y3QgZmltZF9jb250ZXh0 ICpjdHgsCj4gPiAgewo+ID4gIAl1MzIgcmVnLCBiaXRzLCB2YWw7Cj4gPiAgCj4gPiArCS8qCj4g PiArCSAqIFNIQURPV0NPTi9QUlRDT04gcmVnaXN0ZXIgaXMgdXNlZCBmb3IgZW5hYmxpbmcgdGlt aW5nLgo+ID4gKwkgKgo+ID4gKwkgKiBmb3IgZXhhbXBsZSwgb25jZSBvbmx5IHdpZHRoIHZhbHVl IG9mIGEgcmVnaXN0ZXIgaXMgc2V0LAo+ID4gKwkgKiBpZiB0aGUgZG1hIGlzIHN0YXJ0ZWQgdGhl biBmaW1kIGhhcmR3YXJlIGNvdWxkIG1hbGZ1bmN0aW9uIHNvCj4gPiArCSAqIHdpdGggcHJvdGVj dCB3aW5kb3cgc2V0dGluZywgdGhlIHJlZ2lzdGVyIGZpZWxkcyB3aXRoIHByZWZpeCAnX0YnCj4g PiArCSAqIHdvdWxkbid0IGJlIHVwZGF0ZWQgYXQgdnN5bmMgYWxzbyBidXQgdXBkYXRlZCBvbmNl IHVucHJvdGVjdCB3aW5kb3cKPiA+ICsJICogaXMgc2V0Lgo+ID4gKwkgKi8KPiA+ICsKPiA+ICAJ aWYgKGN0eC0+ZHJpdmVyX2RhdGEtPmhhc19zaGFkb3djb24pIHsKPiA+ICAJCXJlZyA9IFNIQURP V0NPTjsKPiA+ICAJCWJpdHMgPSBTSEFET1dDT05fV0lOeF9QUk9URUNUKHdpbik7Cj4gPiBAQCAt NjI3LDIwICs2MzcsNiBAQCBzdGF0aWMgdm9pZCBmaW1kX3dpbl9jb21taXQoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YywgaW50IHpwb3MpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCX0KPiA+ICAK PiA+IC0JLyoKPiA+IC0JICogU0hBRE9XQ09OL1BSVENPTiByZWdpc3RlciBpcyB1c2VkIGZvciBl bmFibGluZyB0aW1pbmcuCj4gPiAtCSAqCj4gPiAtCSAqIGZvciBleGFtcGxlLCBvbmNlIG9ubHkg d2lkdGggdmFsdWUgb2YgYSByZWdpc3RlciBpcyBzZXQsCj4gPiAtCSAqIGlmIHRoZSBkbWEgaXMg c3RhcnRlZCB0aGVuIGZpbWQgaGFyZHdhcmUgY291bGQgbWFsZnVuY3Rpb24gc28KPiA+IC0JICog d2l0aCBwcm90ZWN0IHdpbmRvdyBzZXR0aW5nLCB0aGUgcmVnaXN0ZXIgZmllbGRzIHdpdGggcHJl Zml4ICdfRicKPiA+IC0JICogd291bGRuJ3QgYmUgdXBkYXRlZCBhdCB2c3luYyBhbHNvIGJ1dCB1 cGRhdGVkIG9uY2UgdW5wcm90ZWN0IHdpbmRvdwo+ID4gLQkgKiBpcyBzZXQuCj4gPiAtCSAqLwo+ ID4gLQo+ID4gLQkvKiBwcm90ZWN0IHdpbmRvd3MgKi8KPiA+IC0JZmltZF9zaGFkb3dfcHJvdGVj dF93aW4oY3R4LCB3aW4sIHRydWUpOwo+ID4gLQo+ID4gLQo+ID4gIAlvZmZzZXQgPSBwbGFuZS0+ ZmJfeCAqIChwbGFuZS0+YnBwID4+IDMpOwo+ID4gIAlvZmZzZXQgKz0gcGxhbmUtPmZiX3kgKiBw bGFuZS0+cGl0Y2g7Cj4gPiAgCj4gPiBAQCAtNzIyLDkgKzcxOCw2IEBAIHN0YXRpYyB2b2lkIGZp bWRfd2luX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQgenBvcykKPiA+ ICAJaWYgKGN0eC0+ZHJpdmVyX2RhdGEtPmhhc19zaGFkb3djb24pCj4gPiAgCQlmaW1kX2VuYWJs ZV9zaGFkb3dfY2hhbm5lbF9wYXRoKGN0eCwgd2luLCB0cnVlKTsKPiA+ICAKPiA+IC0JLyogRW5h YmxlIERNQSBjaGFubmVsIGFuZCB1bnByb3RlY3Qgd2luZG93cyAqLwo+ID4gLQlmaW1kX3NoYWRv d19wcm90ZWN0X3dpbihjdHgsIHdpbiwgZmFsc2UpOwo+ID4gLQo+ID4gIAlwbGFuZS0+ZW5hYmxl ZCA9IHRydWU7Cj4gPiAgCj4gPiAgCWlmIChjdHgtPmk4MF9pZikKPiA+IEBAIC05NDcsNiArOTQw LDM0IEBAIHN0YXRpYyB2b2lkIGZpbWRfdGVfaGFuZGxlcihzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj ICpjcnRjKQo+ID4gIAkJZHJtX2hhbmRsZV92YmxhbmsoY3R4LT5kcm1fZGV2LCBjdHgtPnBpcGUp Owo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBmaW1kX3dpbl9wcm90ZWN0KHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMsIGludCB6cG9zKQo+ID4gK3sKPiA+ICsJc3RydWN0IGZpbWRf Y29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owo+ID4gKwlpbnQgd2luID0genBvczsKPiA+ICsKPiA+ ICsJaWYgKHdpbiA9PSBERUZBVUxUX1pQT1MpCj4gPiArCQl3aW4gPSBjdHgtPmRlZmF1bHRfd2lu Owo+ID4gKwo+ID4gKwlpZiAod2luIDwgMCB8fCB3aW4gPj0gV0lORE9XU19OUikKPiA+ICsJCXJl dHVybjsKPiA+ICsKPiA+ICsJZmltZF9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3aW4sIHRydWUp Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBmaW1kX3dpbl91bnByb3RlY3Qoc3RydWN0 IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgaW50IHpwb3MpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZmlt ZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7Cj4gPiArCWludCB3aW4gPSB6cG9zOwo+ID4gKwo+ ID4gKwlpZiAod2luID09IERFRkFVTFRfWlBPUykKPiA+ICsJCXdpbiA9IGN0eC0+ZGVmYXVsdF93 aW47Cj4gPiArCj4gPiArCWlmICh3aW4gPCAwIHx8IHdpbiA+PSBXSU5ET1dTX05SKQo+ID4gKwkJ cmV0dXJuOwo+ID4gKwo+ID4gKwlmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIHdpbiwgZmFs c2UpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMg ZmltZF9jcnRjX29wcyA9IHsKPiA+ICAJLmRwbXMgPSBmaW1kX2RwbXMsCj4gPiAgCS5tb2RlX2Zp eHVwID0gZmltZF9tb2RlX2ZpeHVwLAo+ID4gQEAgLTk1Nyw2ICs5NzgsOCBAQCBzdGF0aWMgc3Ry dWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgZmltZF9jcnRjX29wcyA9IHsKPiA+ICAJLndpbl9jb21t aXQgPSBmaW1kX3dpbl9jb21taXQsCj4gPiAgCS53aW5fZGlzYWJsZSA9IGZpbWRfd2luX2Rpc2Fi bGUsCj4gPiAgCS50ZV9oYW5kbGVyID0gZmltZF90ZV9oYW5kbGVyLAo+ID4gKwkud2luX3Byb3Rl Y3QgPSBmaW1kX3dpbl9wcm90ZWN0LAo+ID4gKwkud2luX3VucHJvdGVjdCA9IGZpbWRfd2luX3Vu cHJvdGVjdCwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBpcnFyZXR1cm5fdCBmaW1kX2lycV9o YW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9wbGFuZS5jCj4gPiBpbmRleCBhM2IwNjg3Li4zNjNkNTlkIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3BsYW5lLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9wbGFuZS5jCj4gPiBAQCAtNjUsNiAr NjUsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19wbGFuZV9nZXRfc2l6ZShpbnQgc3RhcnQsIHVuc2ln bmVkIGxlbmd0aCwgdW5zaWduZWQgbGFzdCkKPiA+ICBpbnQgZXh5bm9zX2NoZWNrX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpleHlub3NfcGxhbmUgPSB0b19leHlub3Nf cGxhbmUocGxhbmUpOwo+ID4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpleHlub3NfY3J0YyA9 IHRvX2V4eW5vc19jcnRjKHBsYW5lLT5jcnRjKTsKPiA+ICAJaW50IG5yOwo+ID4gIAlpbnQgaTsK PiA+ICAKPiA+IEBAIC04Myw2ICs4NCw5IEBAIGludCBleHlub3NfY2hlY2tfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ID4gIAkJCQlp LCAodW5zaWduZWQgbG9uZylleHlub3NfcGxhbmUtPmRtYV9hZGRyW2ldKTsKPiA+ICAJfQo+ID4g IAo+ID4gKwlpZiAoZXh5bm9zX2NydGMpCj4gPiArCQlleHlub3NfY3J0Yy0+cGxhbmVfbWFzayAr PSAxIDw8IGV4eW5vc19wbGFuZS0+enBvczsKPiA+ICsKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ ID4gIAo+ID4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgorNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==