From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/atomic: Unconfuse the old_state mess in commmit_tail Date: Tue, 22 Nov 2016 11:12:31 +0100 Message-ID: <20161122101231.rogcap4ycv2eu6pf@phenom.ffwll.local> References: <20161121163520.20900-1-daniel.vetter@ffwll.ch> <20161121171802.24147-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA5376E284 for ; Tue, 22 Nov 2016 10:12:35 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id u144so2622995wmu.0 for ; Tue, 22 Nov 2016 02:12:35 -0800 (PST) Content-Disposition: inline In-Reply-To: <20161121171802.24147-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Stone , Daniel Vetter , Russell King - ARM Linux , Tomeu Vizoso , Daniel Vetter , Liviu Dudau , Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBOb3YgMjEsIDIwMTYgYXQgMDY6MTg6MDJQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBJIHRvdGFsbHkgYnV0Y2hlcmQgdGhlIGpvYiBvbiB0eXBpbmcgdGhlIGtlcm5lbC1k b2MgZm9yIHRoZXNlLCBhbmQgbm8KPiBvbmUgcmVhbGl6ZWQuIE5vdGljZWQgYnkgUnVzc2VsbC4g TWFhcnRlbiBoYXMgYSBtb3JlIGNvbXBsZXRlIGFwcHJvYWNoCj4gdG8gdGhpcyBjb25mdXNpb24s IGJ5IG1ha2luZyBpdCBtb3JlIGV4cGxpY2l0IHdoYXQgdGhlIG5ldy9vbGQgc3RhdGUKPiBpcywg aW5zdGVhZCBvZiB0aGlzIG1hZ2ljIHN3aXRjaGluZyBiZWhhdmlvdXIuCj4gCj4gdjI6Cj4gLSBM aXZpdSBwb2ludGVkIG91dCB0aGF0IHdhaXRfZm9yX2ZlbmNlcyBpcyBldmVuIG1vcmUgbWFnaWMu IExlYXZlCj4gdGhhdCBhcyBAc3RhdGUsIGFuZCBkb2N1bWVudCBAcHJlX3N3YXAgYmV0dGVyLgo+ IC0gV2hpbGUgYXQgaXQsIHBhdGNoIGluIGhlYWRlciBmb3IgdGhlIHJlZmVyZW5jZSBzZWN0aW9u Lgo+IC0gRml4IHNwZWxsaW5nIGlzc3VlcyBSdXNzZWxsIG5vdGljZWQuCj4gCj4gdjM6IEZpeCB1 cCB0aGUgQHByZV9zd2FwIG5vdGUgKExpdml1KTogQWxzbyBzL3N5bmNocm9ub3VzL2Jsb2NraW5n LywKPiBzaW5jZSBhc3luYyBmbGlwIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gbm9uLWJsb2NraW5n Lgo+IAo+IENjOiBMaXZpdSBEdWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNvbT4KPiBSZXBvcnRlZC1i eTogUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IDxsaW51eEBhcm1saW51eC5vcmcudWs+Cj4gQ2M6 IFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eCA8bGludXhAYXJtbGludXgub3JnLnVrPgo+IEZpeGVz OiA5ZjJhNzk1MGU3N2EgKCJkcm0vYXRvbWljLWhlbHBlcjogbm9uYmxvY2tpbmcgY29tbWl0IHN1 cHBvcnQiKQo+IENjOiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEu Y28udWs+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+Cj4gQ2M6IFRvbWV1IFZpem9zbyA8dG9tZXUudml6b3NvQGdtYWlsLmNvbT4KPiBD YzogRGFuaWVsIFN0b25lIDxkYW5pZWxzQGNvbGxhYm9yYS5jb20+Cj4gU2lnbmVkLW9mZi1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+CgpBcHBsaWVkIHdpdGggTGl2 aXUncyBpcmMtci1iLgotRGFuaWVsCgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0ICAgIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMgICAgICB8IDc4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIGluY2x1 ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmggfCAxMiArKystLQo+ICAzIGZpbGVz IGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IGIvRG9jdW1lbnRhdGlv bi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAo+IGluZGV4IDRjYTc3ZjY3NTk2Ny4uMDMwNDBhYTE0 ZmU4IDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QK PiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0Cj4gQEAgLTYzLDYg KzYzLDkgQEAgQXRvbWljIFN0YXRlIFJlc2V0IGFuZCBJbml0aWFsaXphdGlvbgo+ICAuLiBrZXJu ZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiAgICAgOmRvYzog YXRvbWljIHN0YXRlIHJlc2V0IGFuZCBpbml0aWFsaXphdGlvbgo+ICAKPiArSGVscGVyIEZ1bmN0 aW9ucyBSZWZlcmVuY2UKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gIC4uIGtl cm5lbC1kb2M6OiBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gICAgIDppbnRlcm5h bDoKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCAwYjE2NTg3Y2Rj NjIuLjQ5NDY4MGM5MDU2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4g QEAgLTEwMDYsMTMgKzEwMDYsMjEgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9j b21taXRfbW9kZXNldF9lbmFibGVzKTsKPiAgICogZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3Jf ZmVuY2VzIC0gd2FpdCBmb3IgZmVuY2VzIHN0YXNoZWQgaW4gcGxhbmUgc3RhdGUKPiAgICogQGRl djogRFJNIGRldmljZQo+ICAgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSBvYmplY3Qgd2l0aCBvbGQg c3RhdGUgc3RydWN0dXJlcwo+IC0gKiBAcHJlX3N3YXA6IGlmIHRydWUsIGRvIGFuIGludGVycnVw dGlibGUgd2FpdAo+ICsgKiBAcHJlX3N3YXA6IElmIHRydWUsIGRvIGFuIGludGVycnVwdGlibGUg d2FpdCwgYW5kIEBzdGF0ZSBpcyB0aGUgbmV3IHN0YXRlLgo+ICsgKiAJT3RoZXJ3aXNlIEBzdGF0 ZSBpcyB0aGUgb2xkIHN0YXRlLgo+ICAgKgo+ICAgKiBGb3IgaW1wbGljaXQgc3luYywgZHJpdmVy IHNob3VsZCBmaXNoIHRoZSBleGNsdXNpdmUgZmVuY2Ugb3V0IGZyb20gdGhlCj4gICAqIGluY29t aW5nIGZiJ3MgYW5kIHN0YXNoIGl0IGluIHRoZSBkcm1fcGxhbmVfc3RhdGUuICBUaGlzIGlzIGNh bGxlZCBhZnRlcgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKCkgc28gaXQgdXNl cyB0aGUgY3VycmVudCBwbGFuZSBzdGF0ZSAoYW5kCj4gICAqIGp1c3QgdXNlcyB0aGUgYXRvbWlj IHN0YXRlIHRvIGZpbmQgdGhlIGNoYW5nZWQgcGxhbmVzKQo+ICAgKgo+ICsgKiBOb3RlIHRoYXQg QHByZV9zd2FwIGlzIG5lZWRlZCBzaW5jZSB0aGUgcG9pbnQgd2hlcmUgd2UgYmxvY2sgZm9yIGZl bmNlcyBtb3Zlcwo+ICsgKiBhcm91bmQgZGVwZW5kaW5nIHVwb24gd2hldGhlciBhbiBhdG9taWMg Y29tbWl0IGlzIGJsb2NraW5nIG9yCj4gKyAqIG5vbi1ibG9ja2luZy4gRm9yIGFzeW5jIGNvbW1p dCBhbGwgd2FpdGluZyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIKPiArICogZHJtX2F0b21pY19oZWxw ZXJfc3dhcF9zdGF0ZSgpIGlzIGNhbGxlZCwgYnV0IGZvciBzeW5jaHJvbm91cyBjb21taXRzIHdl IHdhbnQKPiArICogdG8gd2FpdCAqKmJlZm9yZSoqIHdlIGRvIGFueXRoaW5nIHRoYXQgY2FuJ3Qg YmUgZWFzaWx5IHJvbGxlZCBiYWNrLiBUaGF0IGlzCj4gKyAqIGJlZm9yZSB3ZSBjYWxsIGRybV9h dG9taWNfaGVscGVyX3N3YXBfc3RhdGUoKS4KPiArICoKPiAgICogUmV0dXJucyB6ZXJvIGlmIHN1 Y2Nlc3Mgb3IgPCAwIGlmIGRtYV9mZW5jZV93YWl0KCkgZmFpbHMuCj4gICAqLwo+ICBpbnQgZHJt X2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g QEAgLTExNDcsNyArMTE1NSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfd2Fp dF9mb3JfdmJsYW5rcyk7Cj4gIAo+ICAvKioKPiAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0 X3RhaWwgLSBjb21taXQgYXRvbWljIHVwZGF0ZSB0byBoYXJkd2FyZQo+IC0gKiBAc3RhdGU6IG5l dyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNvbW1pdHRlZAo+ICsgKiBAb2xkX3N0YXRlOiBhdG9taWMg c3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMKPiAgICoKPiAgICogVGhpcyBp cyB0aGUgZGVmYXVsdCBpbXBsZW1lbmF0aW9uIGZvciB0aGUgLT5hdG9taWNfY29tbWl0X3RhaWwo KSBob29rIG9mIHRoZQo+ICAgKiAmZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2dGFibGUu Cj4gQEAgLTExNTgsNTMgKzExNjYsNTMgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBl cl93YWl0X2Zvcl92YmxhbmtzKTsKPiAgICoKPiAgICogRm9yIGRyaXZlcnMgc3VwcG9ydGluZyBy dW50aW1lIFBNIHRoZSByZWNvbW1lbmRlZCBzZXF1ZW5jZSBpcyBpbnN0ZWFkIDo6Cj4gICAqCj4g LSAqICAgICBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIHN0 YXRlKTsKPiArICogICAgIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVz KGRldiwgb2xkX3N0YXRlKTsKPiAgICoKPiAtICogICAgIGRybV9hdG9taWNfaGVscGVyX2NvbW1p dF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4gKyAqICAgICBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgb2xkX3N0YXRlKTsKPiAgICoKPiAtICogICAg IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBzdGF0ZSwKPiArICogICAgIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBvbGRfc3RhdGUsCj4gICAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9QTEFORV9DT01NSVRfQUNUSVZFX09O TFkpOwo+ICAgKgo+ICAgKiBmb3IgY29tbWl0dGluZyB0aGUgYXRvbWljIHVwZGF0ZSB0byBoYXJk d2FyZS4gIFNlZSB0aGUga2VybmVsZG9jIGVudHJpZXMgZm9yCj4gICAqIHRoZXNlIHRocmVlIGZ1 bmN0aW9ucyBmb3IgbW9yZSBkZXRhaWxzLgo+ICAgKi8KPiAtdm9pZCBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3ZvaWQgZHJt X2F0b21pY19oZWxwZXJfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9z dGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gIAo+IC0JZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7Cj4gKwlkcm1fYXRv bWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhkZXYsIG9sZF9zdGF0ZSk7Cj4gIAo+ IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhkZXYsIHN0YXRlLCAwKTsKPiArCWRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBvbGRfc3RhdGUsIDApOwo+ICAKPiAt CWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4g Kwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgb2xkX3N0YXRl KTsKPiAgCj4gLQlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShzdGF0ZSk7Cj4gKwlk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShvbGRfc3RhdGUpOwo+ICAKPiAtCWRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWlj X2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRldiwgb2xkX3N0YXRlKTsKPiAgCj4gLQlkcm1fYXRv bWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiArCWRybV9hdG9taWNfaGVs cGVyX2NsZWFudXBfcGxhbmVzKGRldiwgb2xkX3N0YXRlKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsKTsKPiAgCj4gLXN0YXRpYyB2b2lkIGNvbW1p dF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArc3RhdGljIHZvaWQgY29t bWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgewo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9m dW5jcyAqZnVuY3M7Cj4gIAo+ICAJZnVuY3MgPSBkZXYtPm1vZGVfY29uZmlnLmhlbHBlcl9wcml2 YXRlOwo+ICAKPiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhkZXYsIHN0YXRl LCBmYWxzZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoZGV2LCBvbGRf c3RhdGUsIGZhbHNlKTsKPiAgCj4gLQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9kZXBlbmRl bmNpZXMoc3RhdGUpOwo+ICsJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVz KG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaWYgKGZ1bmNzICYmIGZ1bmNzLT5hdG9taWNfY29tbWl0X3Rh aWwpCj4gLQkJZnVuY3MtPmF0b21pY19jb21taXRfdGFpbChzdGF0ZSk7Cj4gKwkJZnVuY3MtPmF0 b21pY19jb21taXRfdGFpbChvbGRfc3RhdGUpOwo+ICAJZWxzZQo+IC0JCWRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF90YWlsKHN0YXRlKTsKPiArCQlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfdGFp bChvbGRfc3RhdGUpOwo+ICAKPiAtCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2Rv bmUoc3RhdGUpOwo+ICsJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9uZShvbGRf c3RhdGUpOwo+ICAKPiAtCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiArCWRybV9hdG9t aWNfc3RhdGVfcHV0KG9sZF9zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGNvbW1pdF93 b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiBAQCAtMTQ5OCwxMCArMTUwNiwxMCBAQCBz dGF0aWMgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqcHJlY2VlZGluZ19jb21taXQoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICAKPiAgLyoqCj4gICAqIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9y X2RlcGVuZGVuY2llcyAtIHdhaXQgZm9yIHJlcXVpcmVkIHByZWNlZWRpbmcgY29tbWl0cwo+IC0g KiBAc3RhdGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNvbW1pdHRlZAo+ICsgKiBAb2xkX3N0 YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMKPiAgICoK PiAgICogVGhpcyBmdW5jdGlvbiB3YWl0cyBmb3IgYWxsIHByZWNlZWRpbmcgY29tbWl0cyB0aGF0 IHRvdWNoIHRoZSBzYW1lIENSVEMgYXMKPiAtICogQHN0YXRlIHRvIGJvdGggYmUgY29tbWl0dGVk IHRvIHRoZSBoYXJkd2FyZSAoYXMgc2lnbmFsbGVkIGJ5Cj4gKyAqIEBvbGRfc3RhdGUgdG8gYm90 aCBiZSBjb21taXR0ZWQgdG8gdGhlIGhhcmR3YXJlIChhcyBzaWduYWxsZWQgYnkKPiAgICogZHJt X2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUpIGFuZCBleGVjdXRlZCBieSB0aGUgaGFyZHdh cmUgKGFzIHNpZ25hbGxlZAo+ICAgKiBieSBjYWxsaW5nIGRybV9jcnRjX3ZibGFua19zZW5kX2V2 ZW50IG9uIHRoZSBldmVudCBtZW1iZXIgb2YKPiAgICogJmRybV9jcnRjX3N0YXRlKS4KPiBAQCAt MTUwOSw3ICsxNTE3LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19jb21taXQgKnByZWNlZWRp bmdfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgICogVGhpcyBpcyBwYXJ0IG9mIHRo ZSBhdG9taWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQo+ICAg KiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4gb3ZlcnZpZXcuCj4gICAq Lwo+IC12b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3ZvaWQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9m b3JfZGVwZW5kZW5jaWVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gIHsK PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKPiBAQCAtMTUxNyw3ICsxNTI1LDcgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl93 YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJ aW50IGk7Cj4gIAlsb25nIHJldDsKPiAgCj4gLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRl LCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKG9sZF9z dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICAJCXNwaW5fbG9jaygmY3J0Yy0+Y29tbWl0 X2xvY2spOwo+ICAJCWNvbW1pdCA9IHByZWNlZWRpbmdfY29tbWl0KGNydGMpOwo+ICAJCWlmIChj b21taXQpCj4gQEAgLTE1NDgsNyArMTU1Niw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19o ZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKPiAgCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfaHdfZG9uZSAtIHNldHVwIHBvc3NpYmxlIG5vbmJsb2NraW5nIGNvbW1p dAo+IC0gKiBAc3RhdGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNvbW1pdHRlZAo+ICsgKiBA b2xkX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMK PiAgICoKPiAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHNpZ25hbCBjb21wbGV0aW9uIG9m IHRoZSBoYXJkd2FyZSBjb21taXQgc3RlcC4gQWZ0ZXIKPiAgICogdGhpcyBzdGVwIHRoZSBkcml2 ZXIgaXMgbm90IGFsbG93ZWQgdG8gcmVhZCBvciBjaGFuZ2UgYW55IHBlcm1hbmVudCBzb2Z0d2Fy ZQo+IEBAIC0xNTYxLDE1ICsxNTY5LDE1IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKPiAgICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9t aWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQo+ICAgKiBkcm1f YXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4gb3ZlcnZpZXcuCj4gICAqLwo+IC12 b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMg KmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gIAlzdHJ1Y3Qg ZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gIAlpbnQgaTsKPiAgCj4gLQlmb3JfZWFjaF9jcnRj X2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gLQkJY29tbWl0ID0gc3Rh dGUtPmNydGNzW2ldLmNvbW1pdDsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUob2xkX3N0YXRl LCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwkJY29tbWl0ID0gb2xkX3N0YXRlLT5jcnRjc1tp XS5jb21taXQ7Cj4gIAkJaWYgKCFjb21taXQpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBAQCAtMTU4 NCwxNiArMTU5MiwxNiBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9o d19kb25lKTsKPiAgCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51 cF9kb25lIC0gc2lnbmFsIGNvbXBsZXRpb24gb2YgY29tbWl0Cj4gLSAqIEBzdGF0ZTogbmV3IG1v ZGVzZXQgc3RhdGUgdG8gYmUgY29tbWl0dGVkCj4gKyAqIEBvbGRfc3RhdGU6IGF0b21pYyBzdGF0 ZSBvYmplY3Qgd2l0aCBvbGQgc3RhdGUgc3RydWN0dXJlcwo+ICAgKgo+IC0gKiBUaGlzIHNpZ25h bHMgY29tcGxldGlvbiBvZiB0aGUgYXRvbWljIHVwZGF0ZSBAc3RhdGUsIGluY2x1ZGluZyBhbnkg Y2xlYW51cAo+IC0gKiB3b3JrLiBJZiB1c2VkLCBpdCBtdXN0IGJlIGNhbGxlZCByaWdodCBiZWZv cmUgY2FsbGluZwo+ICsgKiBUaGlzIHNpZ25hbHMgY29tcGxldGlvbiBvZiB0aGUgYXRvbWljIHVw ZGF0ZSBAb2xkX3N0YXRlLCBpbmNsdWRpbmcgYW55Cj4gKyAqIGNsZWFudXAgd29yay4gSWYgdXNl ZCwgaXQgbXVzdCBiZSBjYWxsZWQgcmlnaHQgYmVmb3JlIGNhbGxpbmcKPiAgICogZHJtX2F0b21p Y19zdGF0ZV9wdXQoKS4KPiAgICoKPiAgICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9taWMgaGVs cGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQo+ICAgKiBkcm1fYXRvbWlj X2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4gb3ZlcnZpZXcuCj4gICAqLwo+IC12b2lkIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+ICt2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9j cnRjICpjcnRjOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+IEBAIC0x NjAxLDggKzE2MDksOCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2Rv bmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJaW50IGk7Cj4gIAlsb25nIHJl dDsKPiAgCj4gLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRl LCBpKSB7Cj4gLQkJY29tbWl0ID0gc3RhdGUtPmNydGNzW2ldLmNvbW1pdDsKPiArCWZvcl9lYWNo X2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwkJY29t bWl0ID0gb2xkX3N0YXRlLT5jcnRjc1tpXS5jb21taXQ7Cj4gIAkJaWYgKFdBUk5fT04oIWNvbW1p dCkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21v ZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92 dGFibGVzLmgKPiBpbmRleCA3MjQ3OGNmODIxNDcuLjY5YzM5NzRiZjEzMyAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+IEBAIC05OTksMTAgKzk5OSwxNCBA QCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB7Cj4gIAkgKiB0byBpbXBsZW1l bnQgYmxvY2tpbmcgYW5kIG5vbmJsb2NraW5nIGNvbW1pdHMgZWFzaWx5LiBJdCBpcyBub3QgdXNl ZAo+ICAJICogYnkgdGhlIGF0b21pYyBoZWxwZXJzCj4gIAkgKgo+IC0JICogVGhpcyBob29rIHNo b3VsZCBmaXJzdCBjb21taXQgdGhlIGdpdmVuIGF0b21pYyBzdGF0ZSB0byB0aGUgaGFyZHdhcmUu Cj4gLQkgKiBCdXQgZHJpdmVycyBjYW4gYWRkIG1vcmUgd2FpdGluZyBjYWxscyBhdCB0aGUgc3Rh cnQgb2YgdGhlaXIKPiAtCSAqIGltcGxlbWVudGF0aW9uLCBlLmcuIHRvIHdhaXQgZm9yIGRyaXZl ci1pbnRlcm5hbCByZXF1ZXN0IGZvciBpbXBsaWNpdAo+IC0JICogc3luY2luZywgYmVmb3JlIHN0 YXJ0aW5nIHRvIGNvbW1pdCB0aGUgdXBkYXRlIHRvIHRoZSBoYXJkd2FyZS4KPiArCSAqIFRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIG5ldyBhdG9taWMgc3RhdGUgaGFzIGFscmVhZHkg YmVlbgo+ICsJICogc3dhcHBlZCBpbnRvIHRoZSB2YXJpb3VzIHN0YXRlIHBvaW50ZXJzLiBUaGUg cGFzc2VkIGluIHN0YXRlCj4gKwkgKiB0aGVyZWZvcmUgY29udGFpbnMgY29waWVzIG9mIHRoZSBv bGQvcHJldmlvdXMgc3RhdGUuIFRoaXMgaG9vayBzaG91bGQKPiArCSAqIGNvbW1pdCB0aGUgbmV3 IHN0YXRlIGludG8gaGFyZHdhcmUuIE5vdGUgdGhhdCB0aGUgaGVscGVycyBoYXZlCj4gKwkgKiBh bHJlYWR5IHdhaXRlZCBmb3IgcHJlY2VlZGluZyBhdG9taWMgY29tbWl0cyBhbmQgZmVuY2VzLCBi dXQgZHJpdmVycwo+ICsJICogY2FuIGFkZCBtb3JlIHdhaXRpbmcgY2FsbHMgYXQgdGhlIHN0YXJ0 IG9mIHRoZWlyIGltcGxlbWVudGF0aW9uLCBlLmcuCj4gKwkgKiB0byB3YWl0IGZvciBkcml2ZXIt aW50ZXJuYWwgcmVxdWVzdCBmb3IgaW1wbGljaXQgc3luY2luZywgYmVmb3JlCj4gKwkgKiBzdGFy dGluZyB0byBjb21taXQgdGhlIHVwZGF0ZSB0byB0aGUgaGFyZHdhcmUuCj4gIAkgKgo+ICAJICog QWZ0ZXIgdGhlIGF0b21pYyB1cGRhdGUgaXMgY29tbWl0dGVkIHRvIHRoZSBoYXJkd2FyZSB0aGlz IGhvb2sgbmVlZHMKPiAgCSAqIHRvIGNhbGwgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2Rv bmUoKS4gVGhlbiB3YWl0IGZvciB0aGUgdXBhdGUKPiAtLSAKPiAyLjEwLjIKPiAKCi0tIApEYW5p ZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxv Zy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK