From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC v4 06/25] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Mon, 16 Apr 2018 10:30:08 +0200 Message-ID: <20180416083008.GL31310@phenom.ffwll.local> References: <20180414115318.14500-1-noralf@tronnes.org> <20180414115318.14500-7-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: <20180414115318.14500-7-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, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBBcHIgMTQsIDIwMTggYXQgMDE6NTI6NTlQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IFByZXBhcmUgZm9yIG1vdmluZyBkcm1fZmJfaGVscGVyIG1vZGVzZXR0aW5nIGNv ZGUgdG8gZHJtX2NsaWVudC4KPiBkcm1fY2xpZW50IHdpbGwgYmUgbGlua2VkIHRvIGRybS5rbywg c28gbW92ZQo+IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSgpIGFuZCBfX2RybV9h dG9taWNfaGVscGVyX3NldF9jb25maWcoKQo+IG91dCBvZiBkcm1fa21zX2hlbHBlci5rby4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAxNjggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIHwgMTY4ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgICB8ICAgOCArLQo+ICBpbmNsdWRlL2Ry bS9kcm1fYXRvbWljLmggICAgICAgICAgICB8ICAgNSArKwo+ICBpbmNsdWRlL2RybS9kcm1fYXRv bWljX2hlbHBlci5oICAgICB8ICAgNCAtCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTc5IGluc2VydGlv bnMoKyksIDE3NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBpbmRleCA3ZDI1 YzQyZjIyZGIuLjFmYjYwMmI2YzhiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IEBAIC0yMDYw LDYgKzIwNjAsMTc0IEBAIHZvaWQgZHJtX2F0b21pY19jbGVhbl9vbGRfZmIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfY2xlYW5fb2xkX2Zi KTsKPiAgCj4gKy8qIGp1c3QgdXNlZCBmcm9tIGRybV9jbGllbnQgYW5kIGF0b21pYy1oZWxwZXI6 ICovCgpJbiB0aGF0IGNhc2UgcGxlYXNlIHB1dCB0aGUgcHJvdG90eXBlIGZvciB0aGVzZSBpbnRv IHRoZSBpbnRlcm5hbCBoZWFkZXIKZHJtX2NydGNfaW50ZXJuYWwuaC4gSnVzdCB0byBhdm9pZCBk cml2ZXJzIGFidXNpbmcgdGhpcyAodGhleSByZWFsbHkKc2hvdWxkbid0KS4KLURhbmllbAoKPiAr aW50IGRybV9hdG9taWNfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAr CQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiArewo+ICsJaW50 IHJldDsKPiArCj4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9z dGF0ZSwgTlVMTCk7Cj4gKwlpZiAocmV0ICE9IDApCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlk cm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOwo+ICsJcGxhbmVf c3RhdGUtPmNydGNfeCA9IDA7Cj4gKwlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKPiArCXBsYW5l X3N0YXRlLT5jcnRjX3cgPSAwOwo+ICsJcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7Cj4gKwlwbGFu ZV9zdGF0ZS0+c3JjX3ggPSAwOwo+ICsJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKPiArCXBsYW5l X3N0YXRlLT5zcmNfdyA9IDA7Cj4gKwlwbGFuZV9zdGF0ZS0+c3JjX2ggPSAwOwo+ICsKPiArCXJl dHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19kaXNhYmxlX3BsYW5lKTsK PiArCj4gK3N0YXRpYyBpbnQgdXBkYXRlX291dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gK3sK PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQtPmNydGMtPmRldjsKPiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ICsJaW50IHJldCwgaTsKPiArCj4gKwlyZXQg PSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsCj4g KwkJCSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4g cmV0Owo+ICsKPiArCS8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMgb24gdGhlIHRhcmdl dCBjcnRjLiAqLwo+ICsJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhz dGF0ZSwgc2V0LT5jcnRjKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlm b3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG5ld19jb25u X3N0YXRlLCBpKSB7Cj4gKwkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjID09IHNldC0+Y3J0Yykg ewo+ICsJCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5f c3RhdGUsCj4gKwkJCQkJCQkJTlVMTCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0 Owo+ICsKPiArCQkJLyogTWFrZSBzdXJlIGxlZ2FjeSBzZXRDcnRjIGFsd2F5cyByZS10cmFpbnMg Ki8KPiArCQkJbmV3X2Nvbm5fc3RhdGUtPmxpbmtfc3RhdHVzID0gRFJNX0xJTktfU1RBVFVTX0dP T0Q7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCS8qIFRoZW4gc2V0IGFsbCBjb25uZWN0b3JzIGZyb20g c2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAqLwo+ICsJZm9yIChpID0gMDsgaSA8 IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgewo+ICsJCW5ld19jb25uX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLAo+ICsJCQkJCQkJICAgIHNldC0+Y29ubmVj dG9yc1tpXSk7Cj4gKwkJaWYgKElTX0VSUihuZXdfY29ubl9zdGF0ZSkpCj4gKwkJCXJldHVybiBQ VFJfRVJSKG5ld19jb25uX3N0YXRlKTsKPiArCj4gKwkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0 Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAo+ICsJCQkJCQkJc2V0LT5jcnRjKTsKPiAr CQlpZiAocmV0KQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWZvcl9lYWNoX25ld19j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ICsJCS8qCj4g KwkJICogRG9uJ3QgdXBkYXRlIC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0X2NvbmZp ZyByZXF1ZXN0LAo+ICsJCSAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcg aW4gdGhlIHVwcGVyIGxheWVycy4KPiArCQkgKiBUaGUgYWN0dWFsIG1vZGVzZXQgY29kZSBsYXRl ciBvbiB3aWxsIGNhdGNoIGFueQo+ICsJCSAqIGluY29uc2lzdGVuY2llcyBoZXJlLgo+ICsJCSAq Lwo+ICsJCWlmIChjcnRjID09IHNldC0+Y3J0YykKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlm ICghbmV3X2NydGNfc3RhdGUtPmNvbm5lY3Rvcl9tYXNrKSB7Cj4gKwkJCXJldCA9IGRybV9hdG9t aWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0YyhuZXdfY3J0Y19zdGF0ZSwKPiArCQkJCQkJCQlOVUxM KTsKPiArCQkJaWYgKHJldCA8IDApCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsKPiArCQkJbmV3X2Ny dGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArLyoganVzdCB1c2VkIGZyb20gZHJtX2NsaWVudCBhbmQgYXRvbWljLWhlbHBl cjogKi8KPiAraW50IGRybV9hdG9taWNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpz ZXQsCj4gKwkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpwcmltYXJ5X3N0YXRlOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc2V0LT5jcnRjOwo+ ICsJaW50IGhkaXNwbGF5LCB2ZGlzcGxheTsKPiArCWludCByZXQ7Cj4gKwo+ICsJY3J0Y19zdGF0 ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJaWYgKElTX0VS UihjcnRjX3N0YXRlKSkKPiArCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiArCj4gKwlw cmltYXJ5X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnBy aW1hcnkpOwo+ICsJaWYgKElTX0VSUihwcmltYXJ5X3N0YXRlKSkKPiArCQlyZXR1cm4gUFRSX0VS UihwcmltYXJ5X3N0YXRlKTsKPiArCj4gKwlpZiAoIXNldC0+bW9kZSkgewo+ICsJCVdBUk5fT04o c2V0LT5mYik7Cj4gKwkJV0FSTl9PTihzZXQtPm51bV9jb25uZWN0b3JzKTsKPiArCj4gKwkJcmV0 ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRjX3N0YXRlLCBOVUxMKTsKPiArCQlp ZiAocmV0ICE9IDApCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCWNydGNfc3RhdGUtPmFjdGl2 ZSA9IGZhbHNlOwo+ICsKPiArCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShw cmltYXJ5X3N0YXRlLCBOVUxMKTsKPiArCQlpZiAocmV0ICE9IDApCj4gKwkJCXJldHVybiByZXQ7 Cj4gKwo+ICsJCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxM KTsKPiArCj4gKwkJZ290byBjb21taXQ7Cj4gKwl9Cj4gKwo+ICsJV0FSTl9PTighc2V0LT5mYik7 Cj4gKwlXQVJOX09OKCFzZXQtPm51bV9jb25uZWN0b3JzKTsKPiArCj4gKwlyZXQgPSBkcm1fYXRv bWljX3NldF9tb2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIHNldC0+bW9kZSk7Cj4gKwlpZiAocmV0 ICE9IDApCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVl Owo+ICsKPiArCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3Rh dGUsIGNydGMpOwo+ICsJaWYgKHJldCAhPSAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJZHJt X21vZGVfZ2V0X2h2X3RpbWluZyhzZXQtPm1vZGUsICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKPiAr Cj4gKwlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgc2V0LT5mYik7 Cj4gKwlwcmltYXJ5X3N0YXRlLT5jcnRjX3ggPSAwOwo+ICsJcHJpbWFyeV9zdGF0ZS0+Y3J0Y195 ID0gMDsKPiArCXByaW1hcnlfc3RhdGUtPmNydGNfdyA9IGhkaXNwbGF5Owo+ICsJcHJpbWFyeV9z dGF0ZS0+Y3J0Y19oID0gdmRpc3BsYXk7Cj4gKwlwcmltYXJ5X3N0YXRlLT5zcmNfeCA9IHNldC0+ eCA8PCAxNjsKPiArCXByaW1hcnlfc3RhdGUtPnNyY195ID0gc2V0LT55IDw8IDE2Owo+ICsJaWYg KGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHJpbWFyeV9zdGF0ZS0+cm90YXRpb24pKSB7Cj4gKwkJ cHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSB2ZGlzcGxheSA8PCAxNjsKPiArCQlwcmltYXJ5X3N0YXRl LT5zcmNfaCA9IGhkaXNwbGF5IDw8IDE2Owo+ICsJfSBlbHNlIHsKPiArCQlwcmltYXJ5X3N0YXRl LT5zcmNfdyA9IGhkaXNwbGF5IDw8IDE2Owo+ICsJCXByaW1hcnlfc3RhdGUtPnNyY19oID0gdmRp c3BsYXkgPDwgMTY7Cj4gKwl9Cj4gKwo+ICtjb21taXQ6Cj4gKwlyZXQgPSB1cGRhdGVfb3V0cHV0 X3N0YXRlKHN0YXRlLCBzZXQpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zZXRfY29uZmlnKTsK PiArCj4gIC8qKgo+ICAgKiBET0M6IGV4cGxpY2l0IGZlbmNpbmcgcHJvcGVydGllcwo+ICAgKgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggZWUwM2MxZWQyNTIxLi40ZjIw ZWI1OGRkNGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IEBAIC0yNjcz LDcgKzI2NzMsNyBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCWlmIChwbGFuZV9zdGF0ZS0+Y3J0YyAmJiBwbGFuZV9zdGF0 ZS0+Y3J0Yy0+Y3Vyc29yID09IHBsYW5lKQo+ICAJCXBsYW5lX3N0YXRlLT5zdGF0ZS0+bGVnYWN5 X2N1cnNvcl91cGRhdGUgPSB0cnVlOwo+ICAKPiAtCXJldCA9IF9fZHJtX2F0b21pY19oZWxwZXJf ZGlzYWJsZV9wbGFuZShwbGFuZSwgcGxhbmVfc3RhdGUpOwo+ICsJcmV0ID0gZHJtX2F0b21pY19k aXNhYmxlX3BsYW5lKHBsYW5lLCBwbGFuZV9zdGF0ZSk7Cj4gIAlpZiAocmV0ICE9IDApCj4gIAkJ Z290byBmYWlsOwo+ICAKPiBAQCAtMjY4NCw5NSArMjY4NCw2IEBAIGludCBkcm1fYXRvbWljX2hl bHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICB9Cj4gIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSk7Cj4gIAo+IC0vKiBqdXN0 IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0b21pYy1oZWxwZXI6ICovCj4gLWludCBfX2RybV9h dG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQkJ c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gLXsKPiAtCWludCByZXQ7Cj4g LQo+IC0JcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5V TEwpOwo+IC0JaWYgKHJldCAhPSAwKQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JZHJtX2F0b21p Y19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKPiAtCXBsYW5lX3N0YXRlLT5j cnRjX3ggPSAwOwo+IC0JcGxhbmVfc3RhdGUtPmNydGNfeSA9IDA7Cj4gLQlwbGFuZV9zdGF0ZS0+ Y3J0Y193ID0gMDsKPiAtCXBsYW5lX3N0YXRlLT5jcnRjX2ggPSAwOwo+IC0JcGxhbmVfc3RhdGUt PnNyY194ID0gMDsKPiAtCXBsYW5lX3N0YXRlLT5zcmNfeSA9IDA7Cj4gLQlwbGFuZV9zdGF0ZS0+ c3JjX3cgPSAwOwo+IC0JcGxhbmVfc3RhdGUtPnNyY19oID0gMDsKPiAtCj4gLQlyZXR1cm4gMDsK PiAtfQo+IC0KPiAtc3RhdGljIGludCB1cGRhdGVfb3V0cHV0X3N0YXRlKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSwKPiAtCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkK PiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHNldC0+Y3J0Yy0+ZGV2Owo+IC0Jc3Ry dWN0IGRybV9jcnRjICpjcnRjOwo+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19z dGF0ZTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gLQlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGU7Cj4gLQlpbnQgcmV0LCBpOwo+IC0KPiAt CXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCwKPiAtCQkJICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJl dHVybiByZXQ7Cj4gLQo+IC0JLyogRmlyc3QgZGlzYWJsZSBhbGwgY29ubmVjdG9ycyBvbiB0aGUg dGFyZ2V0IGNydGMuICovCj4gLQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0 b3JzKHN0YXRlLCBzZXQtPmNydGMpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0K PiAtCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgbmV3 X2Nvbm5fc3RhdGUsIGkpIHsKPiAtCQlpZiAobmV3X2Nvbm5fc3RhdGUtPmNydGMgPT0gc2V0LT5j cnRjKSB7Cj4gLQkJCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdf Y29ubl9zdGF0ZSwKPiAtCQkJCQkJCQlOVUxMKTsKPiAtCQkJaWYgKHJldCkKPiAtCQkJCXJldHVy biByZXQ7Cj4gLQo+IC0JCQkvKiBNYWtlIHN1cmUgbGVnYWN5IHNldENydGMgYWx3YXlzIHJlLXRy YWlucyAqLwo+IC0JCQluZXdfY29ubl9zdGF0ZS0+bGlua19zdGF0dXMgPSBEUk1fTElOS19TVEFU VVNfR09PRDsKPiAtCQl9Cj4gLQl9Cj4gLQo+IC0JLyogVGhlbiBzZXQgYWxsIGNvbm5lY3RvcnMg ZnJvbSBzZXQtPmNvbm5lY3RvcnMgb24gdGhlIHRhcmdldCBjcnRjICovCj4gLQlmb3IgKGkgPSAw OyBpIDwgc2V0LT5udW1fY29ubmVjdG9yczsgaSsrKSB7Cj4gLQkJbmV3X2Nvbm5fc3RhdGUgPSBk cm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gLQkJCQkJCQkgICAgc2V0LT5j b25uZWN0b3JzW2ldKTsKPiAtCQlpZiAoSVNfRVJSKG5ld19jb25uX3N0YXRlKSkKPiAtCQkJcmV0 dXJuIFBUUl9FUlIobmV3X2Nvbm5fc3RhdGUpOwo+IC0KPiAtCQlyZXQgPSBkcm1fYXRvbWljX3Nl dF9jcnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5fc3RhdGUsCj4gLQkJCQkJCQlzZXQtPmNydGMp Owo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JZm9yX2VhY2hf bmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gLQkJ LyogRG9uJ3QgdXBkYXRlIC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0X2NvbmZpZyBy ZXF1ZXN0LAo+IC0JCSAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcgaW4g dGhlIHVwcGVyIGxheWVycy4KPiAtCQkgKiBUaGUgYWN0dWFsIG1vZGVzZXQgY29kZSBsYXRlciBv biB3aWxsIGNhdGNoIGFueQo+IC0JCSAqIGluY29uc2lzdGVuY2llcyBoZXJlLiAqLwo+IC0JCWlm IChjcnRjID09IHNldC0+Y3J0YykKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWlmICghbmV3X2Ny dGNfc3RhdGUtPmNvbm5lY3Rvcl9tYXNrKSB7Cj4gLQkJCXJldCA9IGRybV9hdG9taWNfc2V0X21v ZGVfcHJvcF9mb3JfY3J0YyhuZXdfY3J0Y19zdGF0ZSwKPiAtCQkJCQkJCQlOVUxMKTsKPiAtCQkJ aWYgKHJldCA8IDApCj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQkJbmV3X2NydGNfc3RhdGUt PmFjdGl2ZSA9IGZhbHNlOwo+IC0JCX0KPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0K PiAgLyoqCj4gICAqIGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcgLSBzZXQgYSBuZXcgY29u ZmlnIGZyb20gdXNlcnNwYWNlCj4gICAqIEBzZXQ6IG1vZGUgc2V0IGNvbmZpZ3VyYXRpb24KPiBA QCAtMjgwMSw3ICsyNzEyLDcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3Ry dWN0IGRybV9tb2RlX3NldCAqc2V0LAo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCXN0YXRl LT5hY3F1aXJlX2N0eCA9IGN0eDsKPiAtCXJldCA9IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2Nv bmZpZyhzZXQsIHN0YXRlKTsKPiArCXJldCA9IGRybV9hdG9taWNfc2V0X2NvbmZpZyhzZXQsIHN0 YXRlKTsKPiAgCWlmIChyZXQgIT0gMCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IEBAIC0yODE3LDgx ICsyNzI4LDYgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9t b2RlX3NldCAqc2V0LAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfc2V0 X2NvbmZpZyk7Cj4gIAo+IC0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0b21pYy1o ZWxwZXI6ICovCj4gLWludCBfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRy bV9tb2RlX3NldCAqc2V0LAo+IC0JCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAt ewo+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+IC0Jc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcHJpbWFyeV9zdGF0ZTsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHNl dC0+Y3J0YzsKPiAtCWludCBoZGlzcGxheSwgdmRpc3BsYXk7Cj4gLQlpbnQgcmV0Owo+IC0KPiAt CWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAt CWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCj4gLQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7 Cj4gLQo+IC0JcHJpbWFyeV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRl LCBjcnRjLT5wcmltYXJ5KTsKPiAtCWlmIChJU19FUlIocHJpbWFyeV9zdGF0ZSkpCj4gLQkJcmV0 dXJuIFBUUl9FUlIocHJpbWFyeV9zdGF0ZSk7Cj4gLQo+IC0JaWYgKCFzZXQtPm1vZGUpIHsKPiAt CQlXQVJOX09OKHNldC0+ZmIpOwo+IC0JCVdBUk5fT04oc2V0LT5udW1fY29ubmVjdG9ycyk7Cj4g LQo+IC0JCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgTlVM TCk7Cj4gLQkJaWYgKHJldCAhPSAwKQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQljcnRjX3N0 YXRlLT5hY3RpdmUgPSBmYWxzZTsKPiAtCj4gLQkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19m b3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgTlVMTCk7Cj4gLQkJaWYgKHJldCAhPSAwKQo+IC0JCQly ZXR1cm4gcmV0Owo+IC0KPiAtCQlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocHJpbWFyeV9z dGF0ZSwgTlVMTCk7Cj4gLQo+IC0JCWdvdG8gY29tbWl0Owo+IC0JfQo+IC0KPiAtCVdBUk5fT04o IXNldC0+ZmIpOwo+IC0JV0FSTl9PTighc2V0LT5udW1fY29ubmVjdG9ycyk7Cj4gLQo+IC0JcmV0 ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRjX3N0YXRlLCBzZXQtPm1vZGUpOwo+ IC0JaWYgKHJldCAhPSAwKQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JY3J0Y19zdGF0ZS0+YWN0 aXZlID0gdHJ1ZTsKPiAtCj4gLQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShw cmltYXJ5X3N0YXRlLCBjcnRjKTsKPiAtCWlmIChyZXQgIT0gMCkKPiAtCQlyZXR1cm4gcmV0Owo+ IC0KPiAtCWRybV9tb2RlX2dldF9odl90aW1pbmcoc2V0LT5tb2RlLCAmaGRpc3BsYXksICZ2ZGlz cGxheSk7Cj4gLQo+IC0JZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUs IHNldC0+ZmIpOwo+IC0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y194ID0gMDsKPiAtCXByaW1hcnlfc3Rh dGUtPmNydGNfeSA9IDA7Cj4gLQlwcmltYXJ5X3N0YXRlLT5jcnRjX3cgPSBoZGlzcGxheTsKPiAt CXByaW1hcnlfc3RhdGUtPmNydGNfaCA9IHZkaXNwbGF5Owo+IC0JcHJpbWFyeV9zdGF0ZS0+c3Jj X3ggPSBzZXQtPnggPDwgMTY7Cj4gLQlwcmltYXJ5X3N0YXRlLT5zcmNfeSA9IHNldC0+eSA8PCAx NjsKPiAtCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHByaW1hcnlfc3RhdGUtPnJvdGF0aW9u KSkgewo+IC0JCXByaW1hcnlfc3RhdGUtPnNyY193ID0gdmRpc3BsYXkgPDwgMTY7Cj4gLQkJcHJp bWFyeV9zdGF0ZS0+c3JjX2ggPSBoZGlzcGxheSA8PCAxNjsKPiAtCX0gZWxzZSB7Cj4gLQkJcHJp bWFyeV9zdGF0ZS0+c3JjX3cgPSBoZGlzcGxheSA8PCAxNjsKPiAtCQlwcmltYXJ5X3N0YXRlLT5z cmNfaCA9IHZkaXNwbGF5IDw8IDE2Owo+IC0JfQo+IC0KPiAtY29tbWl0Ogo+IC0JcmV0ID0gdXBk YXRlX291dHB1dF9zdGF0ZShzdGF0ZSwgc2V0KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJl dDsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBfX2RybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCj4gIAkJCQkJICAgYm9vbCBjbGVhbl9v bGRfZmJzKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IGluZGV4IGQwOTM2NjcxYTlhNi4uMmVl ZjI0ZGIyMWY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gQEAgLTM1OCw3ICszNTgs NyBAQCBzdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZV9hdG9taWMoc3RydWN0IGRybV9mYl9o ZWxwZXIgKmZiX2hlbHBlciwgYm9vbCBhY3Rpdgo+ICAJCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1f UExBTkVfVFlQRV9QUklNQVJZKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJcmV0ID0gX19kcm1f YXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHBsYW5lLCBwbGFuZV9zdGF0ZSk7Cj4gKwkJcmV0 ID0gZHJtX2F0b21pY19kaXNhYmxlX3BsYW5lKHBsYW5lLCBwbGFuZV9zdGF0ZSk7Cj4gIAkJaWYg KHJldCAhPSAwKQo+ICAJCQlnb3RvIG91dF9zdGF0ZTsKPiAgCX0KPiBAQCAtMzc0LDEzICszNzQs MTMgQEAgc3RhdGljIGludCByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIsIGJvb2wgYWN0aXYKPiAgCQkJcGxhbmVfc3RhdGUtPnJvdGF0aW9u ID0gcm90YXRpb247Cj4gIAkJfQo+ICAKPiAtCQlyZXQgPSBfX2RybV9hdG9taWNfaGVscGVyX3Nl dF9jb25maWcobW9kZV9zZXQsIHN0YXRlKTsKPiArCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jb25m aWcobW9kZV9zZXQsIHN0YXRlKTsKPiAgCQlpZiAocmV0ICE9IDApCj4gIAkJCWdvdG8gb3V0X3N0 YXRlOwo+ICAKPiAgCQkvKgo+IC0JCSAqIF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZygp IHNldHMgYWN0aXZlIHdoZW4gYQo+IC0JCSAqIG1vZGUgaXMgc2V0LCB1bmNvbmRpdGlvbmFsbHkg Y2xlYXIgaXQgaWYgd2UgZm9yY2UgRFBNUyBvZmYKPiArCQkgKiBkcm1fYXRvbWljX3NldF9jb25m aWcoKSBzZXRzIGFjdGl2ZSB3aGVuIGEgbW9kZSBpcyBzZXQsCj4gKwkJICogdW5jb25kaXRpb25h bGx5IGNsZWFyIGl0IGlmIHdlIGZvcmNlIERQTVMgb2ZmCj4gIAkJICovCj4gIAkJaWYgKCFhY3Rp dmUpIHsKPiAgCQkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbW9kZV9zZXQtPmNydGM7Cj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9t aWMuaAo+IGluZGV4IGE1N2E4YWE5MGZmYi4uMGIwODI3ZmYyMTY5IDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAo+ IEBAIC02MDQsNiArNjA0LDExIEBAIGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIHZvaWQKPiAgZHJtX2F0b21pY19jbGVhbl9v bGRfZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgcGxhbmVfbWFzaywgaW50IHJl dCk7Cj4gIAo+ICtpbnQgZHJtX2F0b21pY19kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICsJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsK PiAraW50IGRybV9hdG9taWNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4g KwkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArCj4gIGludCBfX211c3Rf Y2hlY2sgZHJtX2F0b21pY19jaGVja19vbmx5KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSk7Cj4gIGludCBfX211c3RfY2hlY2sgZHJtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKTsKPiAgaW50IF9fbXVzdF9jaGVjayBkcm1fYXRvbWljX25vbmJsb2Nr aW5nX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuaAo+IGluZGV4IDI2YWFiYTU4ZDZjZS4uOGQ4OGE4YjJhZDUyIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oCj4gQEAgLTExNCwxMiArMTE0LDggQEAgaW50IGRybV9hdG9taWNf aGVscGVyX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJCSAgIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiAgaW50IGRybV9hdG9taWNfaGVs cGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCQkgICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwo+IC1pbnQgX19kcm1fYXRvbWljX2hl bHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAgaW50IGRybV9hdG9taWNfaGVscGVyX3Nl dF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAo+ICAJCQkJIHN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiAtaW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2Nv bmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4gLQkJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKTsKPiAgCj4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggKmN0eCk7Cj4gLS0gCj4gMi4xNS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==