From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [PATCH] drm/atomic: Unconfuse the old_state mess in commmit_tail Date: Tue, 22 Nov 2016 08:51:11 +0900 Message-ID: <20161121235111.GJ32746@joana> 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 bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFFA26E12B for ; Mon, 21 Nov 2016 23:51:24 +0000 (UTC) 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: Daniel Vetter Cc: Daniel Stone , Liviu Dudau , Russell King - ARM Linux , DRI Development , Tomeu Vizoso , Daniel Vetter , Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org MjAxNi0xMS0yMSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPjoKCj4gSSB0 b3RhbGx5IGJ1dGNoZXJkIHRoZSBqb2Igb24gdHlwaW5nIHRoZSBrZXJuZWwtZG9jIGZvciB0aGVz ZSwgYW5kIG5vCj4gb25lIHJlYWxpemVkLiBOb3RpY2VkIGJ5IFJ1c3NlbGwuIE1hYXJ0ZW4gaGFz IGEgbW9yZSBjb21wbGV0ZSBhcHByb2FjaAo+IHRvIHRoaXMgY29uZnVzaW9uLCBieSBtYWtpbmcg aXQgbW9yZSBleHBsaWNpdCB3aGF0IHRoZSBuZXcvb2xkIHN0YXRlCj4gaXMsIGluc3RlYWQgb2Yg dGhpcyBtYWdpYyBzd2l0Y2hpbmcgYmVoYXZpb3VyLgo+IAo+IHYyOgo+IC0gTGl2aXUgcG9pbnRl ZCBvdXQgdGhhdCB3YWl0X2Zvcl9mZW5jZXMgaXMgZXZlbiBtb3JlIG1hZ2ljLiBMZWF2ZQo+IHRo YXQgYXMgQHN0YXRlLCBhbmQgZG9jdW1lbnQgQHByZV9zd2FwIGJldHRlci4KPiAtIFdoaWxlIGF0 IGl0LCBwYXRjaCBpbiBoZWFkZXIgZm9yIHRoZSByZWZlcmVuY2Ugc2VjdGlvbi4KPiAtIEZpeCBz cGVsbGluZyBpc3N1ZXMgUnVzc2VsbCBub3RpY2VkLgo+IAo+IHYzOiBGaXggdXAgdGhlIEBwcmVf c3dhcCBub3RlIChMaXZpdSk6IEFsc28gcy9zeW5jaHJvbm91cy9ibG9ja2luZy8sCj4gc2luY2Ug YXN5bmMgZmxpcCBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIG5vbi1ibG9ja2luZy4KPiAKPiBDYzog TGl2aXUgRHVkYXUgPGxpdml1LmR1ZGF1QGFybS5jb20+Cj4gUmVwb3J0ZWQtYnk6IFJ1c3NlbGwg S2luZyAtIEFSTSBMaW51eCA8bGludXhAYXJtbGludXgub3JnLnVrPgo+IENjOiBSdXNzZWxsIEtp bmcgLSBBUk0gTGludXggPGxpbnV4QGFybWxpbnV4Lm9yZy51az4KPiBGaXhlczogOWYyYTc5NTBl NzdhICgiZHJtL2F0b21pYy1oZWxwZXI6IG5vbmJsb2NraW5nIGNvbW1pdCBzdXBwb3J0IikKPiBD YzogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgo+IENj OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ IENjOiBUb21ldSBWaXpvc28gPHRvbWV1LnZpem9zb0BnbWFpbC5jb20+Cj4gQ2M6IERhbmllbCBT dG9uZSA8ZGFuaWVsc0Bjb2xsYWJvcmEuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2dwdS9k cm0ta21zLWhlbHBlcnMucnN0ICAgIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMgICAgICB8IDc4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4g IGluY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmggfCAxMiArKystLQo+ICAz IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IGIvRG9jdW1l bnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAo+IGluZGV4IDRjYTc3ZjY3NTk2Ny4uMDMw NDBhYTE0ZmU4IDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVy cy5yc3QKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0Cj4gQEAg LTYzLDYgKzYzLDkgQEAgQXRvbWljIFN0YXRlIFJlc2V0IGFuZCBJbml0aWFsaXphdGlvbgo+ICAu LiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiAgICAg OmRvYzogYXRvbWljIHN0YXRlIHJlc2V0IGFuZCBpbml0aWFsaXphdGlvbgo+ICAKPiArSGVscGVy IEZ1bmN0aW9ucyBSZWZlcmVuY2UKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4g IC4uIGtlcm5lbC1kb2M6OiBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gICAgIDpp bnRlcm5hbDoKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCAwYjE2 NTg3Y2RjNjIuLjQ5NDY4MGM5MDU2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBl ci5jCj4gQEAgLTEwMDYsMTMgKzEwMDYsMjEgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKTsKPiAgICogZHJtX2F0b21pY19oZWxwZXJfd2Fp dF9mb3JfZmVuY2VzIC0gd2FpdCBmb3IgZmVuY2VzIHN0YXNoZWQgaW4gcGxhbmUgc3RhdGUKPiAg ICogQGRldjogRFJNIGRldmljZQo+ICAgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSBvYmplY3Qgd2l0 aCBvbGQgc3RhdGUgc3RydWN0dXJlcwo+IC0gKiBAcHJlX3N3YXA6IGlmIHRydWUsIGRvIGFuIGlu dGVycnVwdGlibGUgd2FpdAo+ICsgKiBAcHJlX3N3YXA6IElmIHRydWUsIGRvIGFuIGludGVycnVw dGlibGUgd2FpdCwgYW5kIEBzdGF0ZSBpcyB0aGUgbmV3IHN0YXRlLgo+ICsgKiAJT3RoZXJ3aXNl IEBzdGF0ZSBpcyB0aGUgb2xkIHN0YXRlLgo+ICAgKgo+ICAgKiBGb3IgaW1wbGljaXQgc3luYywg ZHJpdmVyIHNob3VsZCBmaXNoIHRoZSBleGNsdXNpdmUgZmVuY2Ugb3V0IGZyb20gdGhlCj4gICAq IGluY29taW5nIGZiJ3MgYW5kIHN0YXNoIGl0IGluIHRoZSBkcm1fcGxhbmVfc3RhdGUuICBUaGlz IGlzIGNhbGxlZCBhZnRlcgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKCkgc28g aXQgdXNlcyB0aGUgY3VycmVudCBwbGFuZSBzdGF0ZSAoYW5kCj4gICAqIGp1c3QgdXNlcyB0aGUg YXRvbWljIHN0YXRlIHRvIGZpbmQgdGhlIGNoYW5nZWQgcGxhbmVzKQo+ICAgKgo+ICsgKiBOb3Rl IHRoYXQgQHByZV9zd2FwIGlzIG5lZWRlZCBzaW5jZSB0aGUgcG9pbnQgd2hlcmUgd2UgYmxvY2sg Zm9yIGZlbmNlcyBtb3Zlcwo+ICsgKiBhcm91bmQgZGVwZW5kaW5nIHVwb24gd2hldGhlciBhbiBh dG9taWMgY29tbWl0IGlzIGJsb2NraW5nIG9yCj4gKyAqIG5vbi1ibG9ja2luZy4gRm9yIGFzeW5j IGNvbW1pdCBhbGwgd2FpdGluZyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIKPiArICogZHJtX2F0b21p Y19oZWxwZXJfc3dhcF9zdGF0ZSgpIGlzIGNhbGxlZCwgYnV0IGZvciBzeW5jaHJvbm91cyBjb21t aXRzIHdlIHdhbnQKPiArICogdG8gd2FpdCAqKmJlZm9yZSoqIHdlIGRvIGFueXRoaW5nIHRoYXQg Y2FuJ3QgYmUgZWFzaWx5IHJvbGxlZCBiYWNrLiBUaGF0IGlzCj4gKyAqIGJlZm9yZSB3ZSBjYWxs IGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoKS4KPiArICoKPiAgICogUmV0dXJucyB6ZXJv IGlmIHN1Y2Nlc3Mgb3IgPCAwIGlmIGRtYV9mZW5jZV93YWl0KCkgZmFpbHMuCj4gICAqLwo+ICBp bnQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gQEAgLTExNDcsNyArMTE1NSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfd2FpdF9mb3JfdmJsYW5rcyk7Cj4gIAo+ICAvKioKPiAgICogZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0X3RhaWwgLSBjb21taXQgYXRvbWljIHVwZGF0ZSB0byBoYXJkd2FyZQo+IC0gKiBAc3Rh dGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNvbW1pdHRlZAo+ICsgKiBAb2xkX3N0YXRlOiBh dG9taWMgc3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0YXRlIHN0cnVjdHVyZXMKPiAgICoKPiAgICog VGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbmF0aW9uIGZvciB0aGUgLT5hdG9taWNfY29tbWl0 X3RhaWwoKSBob29rIG9mIHRoZQo+ICAgKiAmZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2 dGFibGUuCj4gQEAgLTExNTgsNTMgKzExNjYsNTMgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWlj X2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKTsKPiAgICoKPiAgICogRm9yIGRyaXZlcnMgc3VwcG9y dGluZyBydW50aW1lIFBNIHRoZSByZWNvbW1lbmRlZCBzZXF1ZW5jZSBpcyBpbnN0ZWFkIDo6Cj4g ICAqCj4gLSAqICAgICBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhk ZXYsIHN0YXRlKTsKPiArICogICAgIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Rp c2FibGVzKGRldiwgb2xkX3N0YXRlKTsKPiAgICoKPiAtICogICAgIGRybV9hdG9taWNfaGVscGVy X2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoZGV2LCBzdGF0ZSk7Cj4gKyAqICAgICBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKGRldiwgb2xkX3N0YXRlKTsKPiAgICoKPiAt ICogICAgIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBzdGF0ZSwKPiArICog ICAgIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBvbGRfc3RhdGUsCj4gICAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9QTEFORV9DT01NSVRfQUNU SVZFX09OTFkpOwo+ICAgKgo+ICAgKiBmb3IgY29tbWl0dGluZyB0aGUgYXRvbWljIHVwZGF0ZSB0 byBoYXJkd2FyZS4gIFNlZSB0aGUga2VybmVsZG9jIGVudHJpZXMgZm9yCj4gICAqIHRoZXNlIHRo cmVlIGZ1bmN0aW9ucyBmb3IgbW9yZSBkZXRhaWxzLgo+ICAgKi8KPiAtdm9pZCBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3Zv aWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg Km9sZF9zdGF0ZSkKCkkgdGhvdWdodCB3ZSB3b3VsZCBjb21taXQgdGhlIG5ldyBzdGF0ZS4gV2h5 IHRoZSByZW5hbWUgdG8gb2xkX3N0YXRlPwoKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5k ZXY7Cj4gIAo+IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2 LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhk ZXYsIG9sZF9zdGF0ZSk7Cj4gIAo+IC0JZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lcyhk ZXYsIHN0YXRlLCAwKTsKPiArCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXMoZGV2LCBv bGRfc3RhdGUsIDApOwo+ICAKPiAtCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Vu YWJsZXMoZGV2LCBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9l bmFibGVzKGRldiwgb2xkX3N0YXRlKTsKPiAgCj4gLQlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf aHdfZG9uZShzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShvbGRf c3RhdGUpOwo+ICAKPiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBz dGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRldiwgb2xkX3N0 YXRlKTsKPiAgCj4gLQlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRl KTsKPiArCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgb2xkX3N0YXRlKTsK PiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsKTsKPiAg Cj4gLXN0YXRpYyB2b2lkIGNvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKPiArc3RhdGljIHZvaWQgY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9s ZF9zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJt X21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4gIAo+ICAJZnVuY3MgPSBkZXYtPm1v ZGVfY29uZmlnLmhlbHBlcl9wcml2YXRlOwo+ICAKPiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRf Zm9yX2ZlbmNlcyhkZXYsIHN0YXRlLCBmYWxzZSk7Cj4gKwlkcm1fYXRvbWljX2hlbHBlcl93YWl0 X2Zvcl9mZW5jZXMoZGV2LCBvbGRfc3RhdGUsIGZhbHNlKTsKPiAgCj4gLQlkcm1fYXRvbWljX2hl bHBlcl93YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RhdGUpOwo+ICsJZHJtX2F0b21pY19oZWxwZXJf d2FpdF9mb3JfZGVwZW5kZW5jaWVzKG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaWYgKGZ1bmNzICYmIGZ1 bmNzLT5hdG9taWNfY29tbWl0X3RhaWwpCj4gLQkJZnVuY3MtPmF0b21pY19jb21taXRfdGFpbChz dGF0ZSk7Cj4gKwkJZnVuY3MtPmF0b21pY19jb21taXRfdGFpbChvbGRfc3RhdGUpOwo+ICAJZWxz ZQo+IC0JCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF90YWlsKHN0YXRlKTsKPiArCQlkcm1fYXRv bWljX2hlbHBlcl9jb21taXRfdGFpbChvbGRfc3RhdGUpOwo+ICAKPiAtCWRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RhdGUpOwo+ICsJZHJtX2F0b21pY19oZWxwZXJfY29t bWl0X2NsZWFudXBfZG9uZShvbGRfc3RhdGUpOwo+ICAKPiAtCWRybV9hdG9taWNfc3RhdGVfcHV0 KHN0YXRlKTsKPiArCWRybV9hdG9taWNfc3RhdGVfcHV0KG9sZF9zdGF0ZSk7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIGNvbW1pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiBAQCAt MTQ5OCwxMCArMTUwNiwxMCBAQCBzdGF0aWMgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqcHJlY2Vl ZGluZ19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgLyoqCj4gICAqIGRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyAtIHdhaXQgZm9yIHJlcXVpcmVkIHBy ZWNlZWRpbmcgY29tbWl0cwo+IC0gKiBAc3RhdGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRvIGJlIGNv bW1pdHRlZAo+ICsgKiBAb2xkX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IHdpdGggb2xkIHN0 YXRlIHN0cnVjdHVyZXMKPiAgICoKPiAgICogVGhpcyBmdW5jdGlvbiB3YWl0cyBmb3IgYWxsIHBy ZWNlZWRpbmcgY29tbWl0cyB0aGF0IHRvdWNoIHRoZSBzYW1lIENSVEMgYXMKPiAtICogQHN0YXRl IHRvIGJvdGggYmUgY29tbWl0dGVkIHRvIHRoZSBoYXJkd2FyZSAoYXMgc2lnbmFsbGVkIGJ5Cj4g KyAqIEBvbGRfc3RhdGUgdG8gYm90aCBiZSBjb21taXR0ZWQgdG8gdGhlIGhhcmR3YXJlIChhcyBz aWduYWxsZWQgYnkKPiAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUpIGFuZCBl eGVjdXRlZCBieSB0aGUgaGFyZHdhcmUgKGFzIHNpZ25hbGxlZAo+ICAgKiBieSBjYWxsaW5nIGRy bV9jcnRjX3ZibGFua19zZW5kX2V2ZW50IG9uIHRoZSBldmVudCBtZW1iZXIgb2YKPiAgICogJmRy bV9jcnRjX3N0YXRlKS4KPiBAQCAtMTUwOSw3ICsxNTE3LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1f Y3J0Y19jb21taXQgKnByZWNlZWRpbmdfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAg ICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9taWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2Nr aW5nIGNvbW1pdHMsIHNlZQo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBm b3IgYW4gb3ZlcnZpZXcuCj4gICAqLwo+IC12b2lkIGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9y X2RlcGVuZGVuY2llcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3ZvaWQgZHJt X2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiBAQCAtMTUxNyw3ICsxNTI1LDcgQEAgdm9p ZCBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9kZXBlbmRlbmNpZXMoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICAJaW50IGk7Cj4gIAlsb25nIHJldDsKPiAgCj4gLQlmb3JfZWFj aF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwlmb3JfZWFj aF9jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICAJCXNw aW5fbG9jaygmY3J0Yy0+Y29tbWl0X2xvY2spOwo+ICAJCWNvbW1pdCA9IHByZWNlZWRpbmdfY29t bWl0KGNydGMpOwo+ICAJCWlmIChjb21taXQpCj4gQEAgLTE1NDgsNyArMTU1Niw3IEBAIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKPiAgCj4g IC8qKgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZSAtIHNldHVwIHBvc3Np YmxlIG5vbmJsb2NraW5nIGNvbW1pdAo+IC0gKiBAc3RhdGU6IG5ldyBtb2Rlc2V0IHN0YXRlIHRv IGJlIGNvbW1pdHRlZAo+ICsgKiBAb2xkX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IHdpdGgg b2xkIHN0YXRlIHN0cnVjdHVyZXMKPiAgICoKPiAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRv IHNpZ25hbCBjb21wbGV0aW9uIG9mIHRoZSBoYXJkd2FyZSBjb21taXQgc3RlcC4gQWZ0ZXIKPiAg ICogdGhpcyBzdGVwIHRoZSBkcml2ZXIgaXMgbm90IGFsbG93ZWQgdG8gcmVhZCBvciBjaGFuZ2Ug YW55IHBlcm1hbmVudCBzb2Z0d2FyZQo+IEBAIC0xNTYxLDE1ICsxNTY5LDE1IEBAIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKTsKPiAgICogVGhp cyBpcyBwYXJ0IG9mIHRoZSBhdG9taWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNv bW1pdHMsIHNlZQo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4g b3ZlcnZpZXcuCj4gICAqLwo+IC12b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25l KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfaHdfZG9uZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gIAlpbnQgaTsK PiAgCj4gLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBp KSB7Cj4gLQkJY29tbWl0ID0gc3RhdGUtPmNydGNzW2ldLmNvbW1pdDsKPiArCWZvcl9lYWNoX2Ny dGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwkJY29tbWl0 ID0gb2xkX3N0YXRlLT5jcnRjc1tpXS5jb21taXQ7Cj4gIAkJaWYgKCFjb21taXQpCj4gIAkJCWNv bnRpbnVlOwo+ICAKPiBAQCAtMTU4NCwxNiArMTU5MiwxNiBAQCBFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKTsKPiAgCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXRfY2xlYW51cF9kb25lIC0gc2lnbmFsIGNvbXBsZXRpb24gb2YgY29tbWl0 Cj4gLSAqIEBzdGF0ZTogbmV3IG1vZGVzZXQgc3RhdGUgdG8gYmUgY29tbWl0dGVkCj4gKyAqIEBv bGRfc3RhdGU6IGF0b21pYyBzdGF0ZSBvYmplY3Qgd2l0aCBvbGQgc3RhdGUgc3RydWN0dXJlcwo+ ICAgKgo+IC0gKiBUaGlzIHNpZ25hbHMgY29tcGxldGlvbiBvZiB0aGUgYXRvbWljIHVwZGF0ZSBA c3RhdGUsIGluY2x1ZGluZyBhbnkgY2xlYW51cAo+IC0gKiB3b3JrLiBJZiB1c2VkLCBpdCBtdXN0 IGJlIGNhbGxlZCByaWdodCBiZWZvcmUgY2FsbGluZwo+ICsgKiBUaGlzIHNpZ25hbHMgY29tcGxl dGlvbiBvZiB0aGUgYXRvbWljIHVwZGF0ZSBAb2xkX3N0YXRlLCBpbmNsdWRpbmcgYW55Cj4gKyAq IGNsZWFudXAgd29yay4gSWYgdXNlZCwgaXQgbXVzdCBiZSBjYWxsZWQgcmlnaHQgYmVmb3JlIGNh bGxpbmcKPiAgICogZHJtX2F0b21pY19zdGF0ZV9wdXQoKS4KPiAgICoKPiAgICogVGhpcyBpcyBw YXJ0IG9mIHRoZSBhdG9taWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMs IHNlZQo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4gb3ZlcnZp ZXcuCj4gICAqLwo+IC12b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt2b2lkIGRybV9hdG9taWNfaGVscGVy X2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkK PiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlOwo+IEBAIC0xNjAxLDggKzE2MDksOCBAQCB2b2lkIGRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ ICAJaW50IGk7Cj4gIAlsb25nIHJldDsKPiAgCj4gLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gLQkJY29tbWl0ID0gc3RhdGUtPmNydGNzW2ld LmNvbW1pdDsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBjcnRj X3N0YXRlLCBpKSB7Cj4gKwkJY29tbWl0ID0gb2xkX3N0YXRlLT5jcnRjc1tpXS5jb21taXQ7Cj4g IAkJaWYgKFdBUk5fT04oIWNvbW1pdCkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCBiL2luY2x1ZGUvZHJt L2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiBpbmRleCA3MjQ3OGNmODIxNDcuLjY5YzM5 NzRiZjEzMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRh Ymxlcy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+ IEBAIC05OTksMTAgKzk5OSwxNCBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5j cyB7Cj4gIAkgKiB0byBpbXBsZW1lbnQgYmxvY2tpbmcgYW5kIG5vbmJsb2NraW5nIGNvbW1pdHMg ZWFzaWx5LiBJdCBpcyBub3QgdXNlZAo+ICAJICogYnkgdGhlIGF0b21pYyBoZWxwZXJzCj4gIAkg Kgo+IC0JICogVGhpcyBob29rIHNob3VsZCBmaXJzdCBjb21taXQgdGhlIGdpdmVuIGF0b21pYyBz dGF0ZSB0byB0aGUgaGFyZHdhcmUuCj4gLQkgKiBCdXQgZHJpdmVycyBjYW4gYWRkIG1vcmUgd2Fp dGluZyBjYWxscyBhdCB0aGUgc3RhcnQgb2YgdGhlaXIKPiAtCSAqIGltcGxlbWVudGF0aW9uLCBl LmcuIHRvIHdhaXQgZm9yIGRyaXZlci1pbnRlcm5hbCByZXF1ZXN0IGZvciBpbXBsaWNpdAo+IC0J ICogc3luY2luZywgYmVmb3JlIHN0YXJ0aW5nIHRvIGNvbW1pdCB0aGUgdXBkYXRlIHRvIHRoZSBo YXJkd2FyZS4KPiArCSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIG5ldyBhdG9t aWMgc3RhdGUgaGFzIGFscmVhZHkgYmVlbgo+ICsJICogc3dhcHBlZCBpbnRvIHRoZSB2YXJpb3Vz IHN0YXRlIHBvaW50ZXJzLiBUaGUgcGFzc2VkIGluIHN0YXRlCgpEaWQgbWVhbiAnVGhlbicgaGVy ZT8gT3IgbWF5YmUgc29tZXRoaW5nIGVsc2U/CgoKPiArCSAqIHRoZXJlZm9yZSBjb250YWlucyBj b3BpZXMgb2YgdGhlIG9sZC9wcmV2aW91cyBzdGF0ZS4gVGhpcyBob29rIHNob3VsZAo+ICsJICog Y29tbWl0IHRoZSBuZXcgc3RhdGUgaW50byBoYXJkd2FyZS4gTm90ZSB0aGF0IHRoZSBoZWxwZXJz IGhhdmUKPiArCSAqIGFscmVhZHkgd2FpdGVkIGZvciBwcmVjZWVkaW5nIGF0b21pYyBjb21taXRz IGFuZCBmZW5jZXMsIGJ1dCBkcml2ZXJzCj4gKwkgKiBjYW4gYWRkIG1vcmUgd2FpdGluZyBjYWxs cyBhdCB0aGUgc3RhcnQgb2YgdGhlaXIgaW1wbGVtZW50YXRpb24sIGUuZy4KPiArCSAqIHRvIHdh aXQgZm9yIGRyaXZlci1pbnRlcm5hbCByZXF1ZXN0IGZvciBpbXBsaWNpdCBzeW5jaW5nLCBiZWZv cmUKPiArCSAqIHN0YXJ0aW5nIHRvIGNvbW1pdCB0aGUgdXBkYXRlIHRvIHRoZSBoYXJkd2FyZS4K PiAgCSAqCj4gIAkgKiBBZnRlciB0aGUgYXRvbWljIHVwZGF0ZSBpcyBjb21taXR0ZWQgdG8gdGhl IGhhcmR3YXJlIHRoaXMgaG9vayBuZWVkcwo+ICAJICogdG8gY2FsbCBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfaHdfZG9uZSgpLiBUaGVuIHdhaXQgZm9yIHRoZSB1cGF0ZQo+IC0tIAo+IDIuMTAu Mgo+IAoKCkd1c3Rhdm8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==