From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 03/16] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Tue, 26 Mar 2019 21:48:22 +0100 Message-ID: <20190326204821.GT2665@phenom.ffwll.local> References: <20190326175546.18126-1-noralf@tronnes.org> <20190326175546.18126-4-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190326175546.18126-4-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: intel-gfx@lists.freedesktop.org, mstaudt@suse.de, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXIgMjYsIDIwMTkgYXQgMDY6NTU6MzNQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IFByZXBhcmUgZm9yIG1vdmluZyBkcm1fZmJfaGVscGVyIG1vZGVzZXR0aW5nIGNv ZGUgdG8gZHJtX2NsaWVudC4KPiBkcm1fY2xpZW50IHdpbGwgYmUgbGlua2VkIHRvIGRybS5rbywg c28gbW92ZQo+IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSgpIGFuZCBfX2RybV9h dG9taWNfaGVscGVyX3NldF9jb25maWcoKQo+IG91dCBvZiBkcm1fa21zX2hlbHBlci5rby4KPiAK PiBXaGlsZSBhdCBpdCwgZml4IHR3byBjaGVja3BhdGNoIGNvbXBsYWludHM6Cj4gLSBXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKPiAt IENIRUNLOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KClRyaWdnZXJz IGEgYml0IG15IG1pZGxheWVyIG9jZCwgYnV0IEkgY2FuJ3QgY29tZSB1cCB3aXRoIGEgYmV0dGVy IGlkZWEKZWl0aGVyLgoKUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8 IDE2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jIHwgMTY0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCB8ICAgNSArCj4gIGluY2x1ZGUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmggICAgIHwgICA0IC0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5z ZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4 IDVlYjQwMTMwZmFmYi4uYzNhOWZmYmYyMzEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAg LTExMzAsNiArMTEzMCwxNzQgQEAgaW50IGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0KHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfbm9uYmxvY2tpbmdfY29tbWl0KTsKPiAgCj4gKy8qIGp1c3QgdXNlZCBmcm9tIGRybS1j bGllbnQgYW5kIGF0b21pYy1oZWxwZXI6ICovCj4gK2ludCBfX2RybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkgICAgICBzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwly ZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7Cj4g KwlpZiAocmV0ICE9IDApCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlkcm1fYXRvbWljX3NldF9m Yl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOwo+ICsJcGxhbmVfc3RhdGUtPmNydGNfeCA9 IDA7Cj4gKwlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKPiArCXBsYW5lX3N0YXRlLT5jcnRjX3cg PSAwOwo+ICsJcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7Cj4gKwlwbGFuZV9zdGF0ZS0+c3JjX3gg PSAwOwo+ICsJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKPiArCXBsYW5lX3N0YXRlLT5zcmNfdyA9 IDA7Cj4gKwlwbGFuZV9zdGF0ZS0+c3JjX2ggPSAwOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g K0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKTsKPiArCj4g K3N0YXRpYyBpbnQgdXBkYXRlX291dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gK3sKPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQtPmNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ICsJaW50IHJldCwgaTsKPiArCj4gKwlyZXQgPSBkcm1f bW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsCj4gKwkJCSAg ICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCS8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMgb24gdGhlIHRhcmdldCBjcnRj LiAqLwo+ICsJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwg c2V0LT5jcnRjKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlmb3JfZWFj aF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG5ld19jb25uX3N0YXRl LCBpKSB7Cj4gKwkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjID09IHNldC0+Y3J0Yykgewo+ICsJ CQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5fc3RhdGUs Cj4gKwkJCQkJCQkJTlVMTCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsK PiArCQkJLyogTWFrZSBzdXJlIGxlZ2FjeSBzZXRDcnRjIGFsd2F5cyByZS10cmFpbnMgKi8KPiAr CQkJbmV3X2Nvbm5fc3RhdGUtPmxpbmtfc3RhdHVzID0gRFJNX0xJTktfU1RBVFVTX0dPT0Q7Cj4g KwkJfQo+ICsJfQo+ICsKPiArCS8qIFRoZW4gc2V0IGFsbCBjb25uZWN0b3JzIGZyb20gc2V0LT5j b25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAqLwo+ICsJZm9yIChpID0gMDsgaSA8IHNldC0+ bnVtX2Nvbm5lY3RvcnM7IGkrKykgewo+ICsJCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLAo+ICsJCQkJCQkJCXNldC0+Y29ubmVjdG9yc1tpXSk7 Cj4gKwkJaWYgKElTX0VSUihuZXdfY29ubl9zdGF0ZSkpCj4gKwkJCXJldHVybiBQVFJfRVJSKG5l d19jb25uX3N0YXRlKTsKPiArCj4gKwkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29u bmVjdG9yKG5ld19jb25uX3N0YXRlLAo+ICsJCQkJCQkJc2V0LT5jcnRjKTsKPiArCQlpZiAocmV0 KQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWZvcl9lYWNoX25ld19jcnRjX2luX3N0 YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ICsJCS8qCj4gKwkJICogRG9u J3QgdXBkYXRlIC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0X2NvbmZpZyByZXF1ZXN0 LAo+ICsJCSAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcgaW4gdGhlIHVw cGVyIGxheWVycy4KPiArCQkgKiBUaGUgYWN0dWFsIG1vZGVzZXQgY29kZSBsYXRlciBvbiB3aWxs IGNhdGNoIGFueQo+ICsJCSAqIGluY29uc2lzdGVuY2llcyBoZXJlLgo+ICsJCSAqLwo+ICsJCWlm IChjcnRjID09IHNldC0+Y3J0YykKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmICghbmV3X2Ny dGNfc3RhdGUtPmNvbm5lY3Rvcl9tYXNrKSB7Cj4gKwkJCXJldCA9IGRybV9hdG9taWNfc2V0X21v ZGVfcHJvcF9mb3JfY3J0YyhuZXdfY3J0Y19zdGF0ZSwKPiArCQkJCQkJCQlOVUxMKTsKPiArCQkJ aWYgKHJldCA8IDApCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsKPiArCQkJbmV3X2NydGNfc3RhdGUt PmFjdGl2ZSA9IGZhbHNlOwo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArLyoganVzdCB1c2VkIGZyb20gZHJtLWNsaWVudCBhbmQgYXRvbWljLWhlbHBlcjogKi8KPiAr aW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpz ZXQsCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnByaW1hcnlfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzZXQtPmNydGM7 Cj4gKwlpbnQgaGRpc3BsYXksIHZkaXNwbGF5Owo+ICsJaW50IHJldDsKPiArCj4gKwljcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwlpZiAoSVNf RVJSKGNydGNfc3RhdGUpKQo+ICsJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICsKPiAr CXByaW1hcnlfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Yy0+ cHJpbWFyeSk7Cj4gKwlpZiAoSVNfRVJSKHByaW1hcnlfc3RhdGUpKQo+ICsJCXJldHVybiBQVFJf RVJSKHByaW1hcnlfc3RhdGUpOwo+ICsKPiArCWlmICghc2V0LT5tb2RlKSB7Cj4gKwkJV0FSTl9P TihzZXQtPmZiKTsKPiArCQlXQVJOX09OKHNldC0+bnVtX2Nvbm5lY3RvcnMpOwo+ICsKPiArCQly ZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIE5VTEwpOwo+ICsJ CWlmIChyZXQgIT0gMCkKPiArCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJY3J0Y19zdGF0ZS0+YWN0 aXZlID0gZmFsc2U7Cj4gKwo+ICsJCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5l KHByaW1hcnlfc3RhdGUsIE5VTEwpOwo+ICsJCWlmIChyZXQgIT0gMCkKPiArCQkJcmV0dXJuIHJl dDsKPiArCj4gKwkJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIE5V TEwpOwo+ICsKPiArCQlnb3RvIGNvbW1pdDsKPiArCX0KPiArCj4gKwlXQVJOX09OKCFzZXQtPmZi KTsKPiArCVdBUk5fT04oIXNldC0+bnVtX2Nvbm5lY3RvcnMpOwo+ICsKPiArCXJldCA9IGRybV9h dG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKPiArCWlmIChy ZXQgIT0gMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWNydGNfc3RhdGUtPmFjdGl2ZSA9IHRy dWU7Cj4gKwo+ICsJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocHJpbWFyeV9z dGF0ZSwgY3J0Yyk7Cj4gKwlpZiAocmV0ICE9IDApCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlk cm1fbW9kZV9nZXRfaHZfdGltaW5nKHNldC0+bW9kZSwgJmhkaXNwbGF5LCAmdmRpc3BsYXkpOwo+ ICsKPiArCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBzZXQtPmZi KTsKPiArCXByaW1hcnlfc3RhdGUtPmNydGNfeCA9IDA7Cj4gKwlwcmltYXJ5X3N0YXRlLT5jcnRj X3kgPSAwOwo+ICsJcHJpbWFyeV9zdGF0ZS0+Y3J0Y193ID0gaGRpc3BsYXk7Cj4gKwlwcmltYXJ5 X3N0YXRlLT5jcnRjX2ggPSB2ZGlzcGxheTsKPiArCXByaW1hcnlfc3RhdGUtPnNyY194ID0gc2V0 LT54IDw8IDE2Owo+ICsJcHJpbWFyeV9zdGF0ZS0+c3JjX3kgPSBzZXQtPnkgPDwgMTY7Cj4gKwlp ZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwcmltYXJ5X3N0YXRlLT5yb3RhdGlvbikpIHsKPiAr CQlwcmltYXJ5X3N0YXRlLT5zcmNfdyA9IHZkaXNwbGF5IDw8IDE2Owo+ICsJCXByaW1hcnlfc3Rh dGUtPnNyY19oID0gaGRpc3BsYXkgPDwgMTY7Cj4gKwl9IGVsc2Ugewo+ICsJCXByaW1hcnlfc3Rh dGUtPnNyY193ID0gaGRpc3BsYXkgPDwgMTY7Cj4gKwkJcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSB2 ZGlzcGxheSA8PCAxNjsKPiArCX0KPiArCj4gK2NvbW1pdDoKPiArCXJldCA9IHVwZGF0ZV9vdXRw dXRfc3RhdGUoc3RhdGUsIHNldCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3Nl dF9jb25maWcpOwo+ICsKPiAgdm9pZCBkcm1fYXRvbWljX3ByaW50X3N0YXRlKGNvbnN0IHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9wcmludGVyIHAg PSBkcm1faW5mb19wcmludGVyKHN0YXRlLT5kZXYtPmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKPiBpbmRleCAyNDUzNjc4ZDExODYuLmIwZDk2MGRhNTNjYiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTI4MzEsOTUgKzI4MzEsNiBAQCBpbnQg ZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUpOwo+ ICAKPiAtLyoganVzdCB1c2VkIGZyb20gZmItaGVscGVyIGFuZCBhdG9taWMtaGVscGVyOiAqLwo+ IC1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+IC0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+IC17Cj4g LQlpbnQgcmV0Owo+IC0KPiAtCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHBs YW5lX3N0YXRlLCBOVUxMKTsKPiAtCWlmIChyZXQgIT0gMCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0K PiAtCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7Cj4gLQlw bGFuZV9zdGF0ZS0+Y3J0Y194ID0gMDsKPiAtCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSAwOwo+IC0J cGxhbmVfc3RhdGUtPmNydGNfdyA9IDA7Cj4gLQlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gMDsKPiAt CXBsYW5lX3N0YXRlLT5zcmNfeCA9IDA7Cj4gLQlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAwOwo+IC0J cGxhbmVfc3RhdGUtPnNyY193ID0gMDsKPiAtCXBsYW5lX3N0YXRlLT5zcmNfaCA9IDA7Cj4gLQo+ IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgdXBkYXRlX291dHB1dF9zdGF0ZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gLQkJCSAgICAgICBzdHJ1Y3QgZHJtX21v ZGVfc2V0ICpzZXQpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQtPmNydGMt PmRldjsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqbmV3X2NydGNfc3RhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ IC0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+IC0JaW50IHJl dCwgaTsKPiAtCj4gLQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNv bm5lY3Rpb25fbXV0ZXgsCj4gLQkJCSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+IC0JaWYg KHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCS8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5l Y3RvcnMgb24gdGhlIHRhcmdldCBjcnRjLiAqLwo+IC0JcmV0ID0gZHJtX2F0b21pY19hZGRfYWZm ZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwgc2V0LT5jcnRjKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0 dXJuIHJldDsKPiAtCj4gLQlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBj b25uZWN0b3IsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4gLQkJaWYgKG5ld19jb25uX3N0YXRlLT5j cnRjID09IHNldC0+Y3J0Yykgewo+IC0JCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9j b25uZWN0b3IobmV3X2Nvbm5fc3RhdGUsCj4gLQkJCQkJCQkJTlVMTCk7Cj4gLQkJCWlmIChyZXQp Cj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQkJLyogTWFrZSBzdXJlIGxlZ2FjeSBzZXRDcnRj IGFsd2F5cyByZS10cmFpbnMgKi8KPiAtCQkJbmV3X2Nvbm5fc3RhdGUtPmxpbmtfc3RhdHVzID0g RFJNX0xJTktfU1RBVFVTX0dPT0Q7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCS8qIFRoZW4gc2V0IGFs bCBjb25uZWN0b3JzIGZyb20gc2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAqLwo+ IC0JZm9yIChpID0gMDsgaSA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgewo+IC0JCW5ld19j b25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLAo+IC0JCQkJ CQkJICAgIHNldC0+Y29ubmVjdG9yc1tpXSk7Cj4gLQkJaWYgKElTX0VSUihuZXdfY29ubl9zdGF0 ZSkpCj4gLQkJCXJldHVybiBQVFJfRVJSKG5ld19jb25uX3N0YXRlKTsKPiAtCj4gLQkJcmV0ID0g ZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAo+IC0JCQkJ CQkJc2V0LT5jcnRjKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JfQo+IC0K PiAtCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0 ZSwgaSkgewo+IC0JCS8qIERvbid0IHVwZGF0ZSAtPmVuYWJsZSBmb3IgdGhlIENSVEMgaW4gdGhl IHNldF9jb25maWcgcmVxdWVzdCwKPiAtCQkgKiBzaW5jZSBhIG1pc21hdGNoIHdvdWxkIGluZGlj YXRlIGEgYnVnIGluIHRoZSB1cHBlciBsYXllcnMuCj4gLQkJICogVGhlIGFjdHVhbCBtb2Rlc2V0 IGNvZGUgbGF0ZXIgb24gd2lsbCBjYXRjaCBhbnkKPiAtCQkgKiBpbmNvbnNpc3RlbmNpZXMgaGVy ZS4gKi8KPiAtCQlpZiAoY3J0YyA9PSBzZXQtPmNydGMpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAt CQlpZiAoIW5ld19jcnRjX3N0YXRlLT5jb25uZWN0b3JfbWFzaykgewo+IC0JCQlyZXQgPSBkcm1f YXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2NydGMobmV3X2NydGNfc3RhdGUsCj4gLQkJCQkJCQkJ TlVMTCk7Cj4gLQkJCWlmIChyZXQgPCAwKQo+IC0JCQkJcmV0dXJuIHJldDsKPiAtCj4gLQkJCW5l d19jcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKPiAtCQl9Cj4gLQl9Cj4gLQo+IC0JcmV0dXJu IDA7Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnIC0g c2V0IGEgbmV3IGNvbmZpZyBmcm9tIHVzZXJzcGFjZQo+ICAgKiBAc2V0OiBtb2RlIHNldCBjb25m aWd1cmF0aW9uCj4gQEAgLTI5NjQsODEgKzI4NzUsNiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJf c2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4gIH0KPiAgRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKTsKPiAgCj4gLS8qIGp1c3QgdXNlZCBmcm9t IGZiLWhlbHBlciBhbmQgYXRvbWljLWhlbHBlcjogKi8KPiAtaW50IF9fZHJtX2F0b21pY19oZWxw ZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4gLQkJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGU7Cj4gLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwcmltYXJ5X3N0YXRlOwo+IC0Jc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gc2V0LT5jcnRjOwo+IC0JaW50IGhkaXNwbGF5LCB2ZGlzcGxh eTsKPiAtCWludCByZXQ7Cj4gLQo+IC0JY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNf c3RhdGUoc3RhdGUsIGNydGMpOwo+IC0JaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiAtCQlyZXR1 cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiAtCj4gLQlwcmltYXJ5X3N0YXRlID0gZHJtX2F0b21p Y19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOwo+IC0JaWYgKElTX0VSUihw cmltYXJ5X3N0YXRlKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5X3N0YXRlKTsKPiAtCj4g LQlpZiAoIXNldC0+bW9kZSkgewo+IC0JCVdBUk5fT04oc2V0LT5mYik7Cj4gLQkJV0FSTl9PTihz ZXQtPm51bV9jb25uZWN0b3JzKTsKPiAtCj4gLQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9m b3JfY3J0YyhjcnRjX3N0YXRlLCBOVUxMKTsKPiAtCQlpZiAocmV0ICE9IDApCj4gLQkJCXJldHVy biByZXQ7Cj4gLQo+IC0JCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwo+IC0KPiAtCQlyZXQg PSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxMKTsKPiAt CQlpZiAocmV0ICE9IDApCj4gLQkJCXJldHVybiByZXQ7Cj4gLQo+IC0JCWRybV9hdG9taWNfc2V0 X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxMKTsKPiAtCj4gLQkJZ290byBjb21taXQ7 Cj4gLQl9Cj4gLQo+IC0JV0FSTl9PTighc2V0LT5mYik7Cj4gLQlXQVJOX09OKCFzZXQtPm51bV9j b25uZWN0b3JzKTsKPiAtCj4gLQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKGNy dGNfc3RhdGUsIHNldC0+bW9kZSk7Cj4gLQlpZiAocmV0ICE9IDApCj4gLQkJcmV0dXJuIHJldDsK PiAtCj4gLQljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVlOwo+IC0KPiAtCXJldCA9IGRybV9hdG9t aWNfc2V0X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIGNydGMpOwo+IC0JaWYgKHJldCAh PSAwKQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhzZXQt Pm1vZGUsICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKPiAtCj4gLQlkcm1fYXRvbWljX3NldF9mYl9m b3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgc2V0LT5mYik7Cj4gLQlwcmltYXJ5X3N0YXRlLT5jcnRj X3ggPSAwOwo+IC0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y195ID0gMDsKPiAtCXByaW1hcnlfc3RhdGUt PmNydGNfdyA9IGhkaXNwbGF5Owo+IC0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y19oID0gdmRpc3BsYXk7 Cj4gLQlwcmltYXJ5X3N0YXRlLT5zcmNfeCA9IHNldC0+eCA8PCAxNjsKPiAtCXByaW1hcnlfc3Rh dGUtPnNyY195ID0gc2V0LT55IDw8IDE2Owo+IC0JaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAo cHJpbWFyeV9zdGF0ZS0+cm90YXRpb24pKSB7Cj4gLQkJcHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSB2 ZGlzcGxheSA8PCAxNjsKPiAtCQlwcmltYXJ5X3N0YXRlLT5zcmNfaCA9IGhkaXNwbGF5IDw8IDE2 Owo+IC0JfSBlbHNlIHsKPiAtCQlwcmltYXJ5X3N0YXRlLT5zcmNfdyA9IGhkaXNwbGF5IDw8IDE2 Owo+IC0JCXByaW1hcnlfc3RhdGUtPnNyY19oID0gdmRpc3BsYXkgPDwgMTY7Cj4gLQl9Cj4gLQo+ IC1jb21taXQ6Cj4gLQlyZXQgPSB1cGRhdGVfb3V0cHV0X3N0YXRlKHN0YXRlLCBzZXQpOwo+IC0J aWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+ICBz dGF0aWMgaW50IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCQkJCQkgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwK PiAgCQkJCQkgICBib29sIGNsZWFuX29sZF9mYnMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVy bmFsLmgKPiBpbmRleCAyMTZmMmE5ZWUzZDQuLjIyYTYzYTU0NGVjNyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Y19pbnRlcm5hbC5oCj4gQEAgLTIwNyw2ICsyMDcsMTEgQEAgc3RydWN0IGRybV9t aW5vcjsKPiAgaW50IGRybV9hdG9taWNfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1p bm9yKTsKPiAgI2VuZGlmCj4gIAo+ICtpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJICAgICAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICtpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29u ZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPiArCQkJCSAgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSk7Cj4gKwo+ICB2b2lkIGRybV9hdG9taWNfcHJpbnRfc3RhdGUoY29uc3Qg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAgCj4gIC8qIGRybV9hdG9taWNfdWFw aS5jICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggYi9p bmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gaW5kZXggNTgyMTRiZTNiZjNkLi5iZjRl MDcxNDFkODEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKPiBAQCAtMTE3LDEyICsxMTcs OCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICAJCQkJICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwo+ ICBpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4g LWludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gLQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+ICBpbnQg ZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4g IAkJCQkgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwo+IC1pbnQgX19kcm1f YXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPiAtCQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAKPiAgaW50IGRybV9hdG9taWNfaGVs cGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgIHN0cnVjdCBk cm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiAtLSAKPiAyLjIwLjEKPiAKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=