From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 15/18] drm: Remove transitional helpers Date: Wed, 3 Oct 2018 16:11:03 +0300 Message-ID: <20181003131103.GP9144@intel.com> References: <20181002133526.13685-1-daniel.vetter@ffwll.ch> <20181003091827.25276-1-daniel.vetter@ffwll.ch> <20181003091827.25276-3-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181003091827.25276-3-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 Vetter , Intel Graphics Development , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMDMsIDIwMTggYXQgMTE6MTg6MjRBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBXaXRoIGFybWFkYSB0aGUgbGFzdCBiaWdnZXIgZHJpdmVyIHRoYXQgcmVhbGlzdGlj YWxseSBuZWVkZWQgdGhlc2UgdG8KPiBjb252ZXJ0IGZyb20gbGVnYWN5IGttcyB0byBhdG9taWMg aXMgY29udmVydGVkLiBUaGVzZSBoZWxwZXJzIGhhdmUKPiBiZWVuIGJyb2tlbiBtb3JlIG9mdGVu IHRoYW4gbm90IHRoZSBwYXN0IDIgeWVhcnMsIGFuZCBhcyB0aGlzIGxpdHRsZQo+IHBhdGNoIHNl cmllcyBzaG93cywgdHJpY2tlZCBhIGJ1bmNoIG9mIHBlb3BsZSBpbnRvIHVzaW5nIHRoZSB3cm9u Zwo+IGhlbHBlcnMgZm9yIHRoZWlyIGZ1bmN0aW9ucy4KPiAKPiBBc2lkZTogSSB0aGluayBhIGxv dCBtb3JlIGRyaXZlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBkZXZpY2UtbGV2ZWwKPiBkcm1fYXRv bWljX2hlbHBlcl9zaHV0ZG93bi9zdXNwZW5kL3Jlc3VtZSBoZWxwZXJzIGFuZCByZWxhdGVkCj4g ZnVuY3Rpb25zLiBJbiBhbG1vc3QgYWxsIHRoZSBjYXNlcyB0aGV5IGdldCB0aGluZ3MgZXhhY3Rs eSByaWdodC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVy QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jICB8 IDExNSAtLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBl ci5jIHwgMTk3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2Ry bV9jcnRjX2hlbHBlci5oICAgICAgfCAgIDYgLQo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVs cGVyLmggICAgIHwgIDE0IC0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMzMyIGRlbGV0aW9ucygtKQoK UHJldHR5IG5pY2UgZGlmZnN0YXQuCgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIu Ywo+IGluZGV4IGNlNzVlOTUwNmU4NS4uYTNjODE4NTBlNzU1IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Y19oZWxwZXIuYwo+IEBAIC05ODQsMTE4ICs5ODQsMyBAQCB2b2lkIGRybV9oZWxwZXJfcmVz dW1lX2ZvcmNlX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWRybV9tb2Rlc2V0X3Vu bG9ja19hbGwoZGV2KTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9oZWxwZXJfcmVzdW1lX2Zv cmNlX21vZGUpOwo+IC0KPiAtLyoqCj4gLSAqIGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldCAtIG1v ZGVfc2V0IGltcGxlbWVudGF0aW9uIGZvciBhdG9taWMgcGxhbmUgaGVscGVycwo+IC0gKiBAY3J0 YzogRFJNIENSVEMKPiAtICogQG1vZGU6IERSTSBkaXNwbGF5IG1vZGUgd2hpY2ggdXNlcnNwYWNl IHJlcXVlc3RlZAo+IC0gKiBAYWRqdXN0ZWRfbW9kZTogRFJNIGRpc3BsYXkgbW9kZSBhZGp1c3Rl ZCBieSAtPm1vZGVfZml4dXAgY2FsbGJhY2tzCj4gLSAqIEB4OiB4IG9mZnNldCBvZiB0aGUgQ1JU QyBzY2Fub3V0IGFyZWEgb24gdGhlIHVuZGVybHlpbmcgZnJhbWVidWZmZXIKPiAtICogQHk6IHkg b2Zmc2V0IG9mIHRoZSBDUlRDIHNjYW5vdXQgYXJlYSBvbiB0aGUgdW5kZXJseWluZyBmcmFtZWJ1 ZmZlcgo+IC0gKiBAb2xkX2ZiOiBwcmV2aW91cyBmcmFtZWJ1ZmZlcgo+IC0gKgo+IC0gKiBUaGlz IGZ1bmN0aW9uIGltcGxlbWVudHMgYSBjYWxsYmFjayB1c2VhYmxlIGFzIHRoZSAtPm1vZGVfc2V0 IGNhbGxiYWNrCj4gLSAqIHJlcXVpcmVkIGJ5IHRoZSBDUlRDIGhlbHBlcnMuIEJlc2lkZXMgdGhl IGF0b21pYyBwbGFuZSBoZWxwZXIgZnVuY3Rpb25zIGZvcgo+IC0gKiB0aGUgcHJpbWFyeSBwbGFu ZSB0aGUgZHJpdmVyIG11c3QgYWxzbyBwcm92aWRlIHRoZSAtPm1vZGVfc2V0X25vZmIgY2FsbGJh Y2sKPiAtICogdG8gc2V0IHVwIHRoZSBDUlRDLgo+IC0gKgo+IC0gKiBUaGlzIGlzIGEgdHJhbnNp dGlvbmFsIGhlbHBlciB1c2VmdWwgZm9yIGNvbnZlcnRpbmcgZHJpdmVycyB0byB0aGUgYXRvbWlj Cj4gLSAqIGludGVyZmFjZXMuCj4gLSAqLwo+IC1pbnQgZHJtX2hlbHBlcl9jcnRjX21vZGVfc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g LQkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsIGludCB4LCBp bnQgeSwKPiAtCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIpCj4gLXsKPiAt CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1f Y3J0Y19oZWxwZXJfZnVuY3MgKmNydGNfZnVuY3MgPSBjcnRjLT5oZWxwZXJfcHJpdmF0ZTsKPiAt CWludCByZXQ7Cj4gLQo+IC0JaWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRl KQo+IC0JCWNydGNfc3RhdGUgPSBjcnRjLT5mdW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShj cnRjKTsKPiAtCWVsc2Ugewo+IC0JCWlmICghY3J0Yy0+c3RhdGUpCj4gLQkJCWRybV9hdG9taWNf aGVscGVyX2NydGNfcmVzZXQoY3J0Yyk7Cj4gLQo+IC0JCWNydGNfc3RhdGUgPSBkcm1fYXRvbWlj X2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjKTsKPiAtCX0KPiAtCj4gLQlpZiAoIWNy dGNfc3RhdGUpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0JY3J0Y19zdGF0ZS0+cGxhbmVz X2NoYW5nZWQgPSB0cnVlOwo+IC0JY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiAt CXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgbW9kZSk7Cj4g LQlpZiAocmV0KQo+IC0JCWdvdG8gb3V0Owo+IC0JZHJtX21vZGVfY29weSgmY3J0Y19zdGF0ZS0+ YWRqdXN0ZWRfbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4gLQo+IC0JaWYgKGNydGNfZnVuY3MtPmF0 b21pY19jaGVjaykgewo+IC0JCXJldCA9IGNydGNfZnVuY3MtPmF0b21pY19jaGVjayhjcnRjLCBj cnRjX3N0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4gLQlz d2FwKGNydGMtPnN0YXRlLCBjcnRjX3N0YXRlKTsKPiAtCj4gLQljcnRjX2Z1bmNzLT5tb2RlX3Nl dF9ub2ZiKGNydGMpOwo+IC0KPiAtCXJldCA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNl KGNydGMsIHgsIHksIG9sZF9mYik7Cj4gLQo+IC1vdXQ6Cj4gLQlpZiAoY3J0Y19zdGF0ZSkgewo+ IC0JCWlmIChjcnRjLT5mdW5jcy0+YXRvbWljX2Rlc3Ryb3lfc3RhdGUpCj4gLQkJCWNydGMtPmZ1 bmNzLT5hdG9taWNfZGVzdHJveV9zdGF0ZShjcnRjLCBjcnRjX3N0YXRlKTsKPiAtCQllbHNlCj4g LQkJCWRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBjcnRjX3N0YXRl KTsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gLUVYUE9SVF9TWU1CT0woZHJtX2hl bHBlcl9jcnRjX21vZGVfc2V0KTsKPiAtCj4gLS8qKgo+IC0gKiBkcm1faGVscGVyX2NydGNfbW9k ZV9zZXRfYmFzZSAtIG1vZGVfc2V0X2Jhc2UgaW1wbGVtZW50YXRpb24gZm9yIGF0b21pYyBwbGFu ZSBoZWxwZXJzCj4gLSAqIEBjcnRjOiBEUk0gQ1JUQwo+IC0gKiBAeDogeCBvZmZzZXQgb2YgdGhl IENSVEMgc2Nhbm91dCBhcmVhIG9uIHRoZSB1bmRlcmx5aW5nIGZyYW1lYnVmZmVyCj4gLSAqIEB5 OiB5IG9mZnNldCBvZiB0aGUgQ1JUQyBzY2Fub3V0IGFyZWEgb24gdGhlIHVuZGVybHlpbmcgZnJh bWVidWZmZXIKPiAtICogQG9sZF9mYjogcHJldmlvdXMgZnJhbWVidWZmZXIKPiAtICoKPiAtICog VGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGEgY2FsbGJhY2sgdXNlYWJsZSBhcyB0aGUgLT5tb2Rl X3NldF9iYXNlIHVzZWQKPiAtICogcmVxdWlyZWQgYnkgdGhlIENSVEMgaGVscGVycy4gVGhlIGRy aXZlciBtdXN0IHByb3ZpZGUgdGhlIGF0b21pYyBwbGFuZSBoZWxwZXIKPiAtICogZnVuY3Rpb25z IGZvciB0aGUgcHJpbWFyeSBwbGFuZS4KPiAtICoKPiAtICogVGhpcyBpcyBhIHRyYW5zaXRpb25h bCBoZWxwZXIgdXNlZnVsIGZvciBjb252ZXJ0aW5nIGRyaXZlcnMgdG8gdGhlIGF0b21pYwo+IC0g KiBpbnRlcmZhY2VzLgo+IC0gKi8KPiAtaW50IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHgsIGludCB5LAo+IC0JCQkJICBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpvbGRfZmIpCj4gLXsKPiAtCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlOwo+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ IC0KPiAtCWlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19kdXBsaWNhdGVfc3RhdGUpCj4gLQkJcGxh bmVfc3RhdGUgPSBwbGFuZS0+ZnVuY3MtPmF0b21pY19kdXBsaWNhdGVfc3RhdGUocGxhbmUpOwo+ IC0JZWxzZSB7Cj4gLQkJaWYgKCFwbGFuZS0+c3RhdGUpCj4gLQkJCWRybV9hdG9taWNfaGVscGVy X3BsYW5lX3Jlc2V0KHBsYW5lKTsKPiAtCj4gLQkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2hl bHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUocGxhbmUpOwo+IC0JfQo+IC0JaWYgKCFwbGFuZV9z dGF0ZSkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCXBsYW5lX3N0YXRlLT5wbGFuZSA9IHBsYW5l Owo+IC0KPiAtCXBsYW5lX3N0YXRlLT5jcnRjID0gY3J0YzsKPiAtCWRybV9hdG9taWNfc2V0X2Zi X2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgY3J0Yy0+cHJpbWFyeS0+ZmIpOwo+IC0JcGxhbmVfc3Rh dGUtPmNydGNfeCA9IDA7Cj4gLQlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKPiAtCXBsYW5lX3N0 YXRlLT5jcnRjX2ggPSBjcnRjLT5tb2RlLnZkaXNwbGF5Owo+IC0JcGxhbmVfc3RhdGUtPmNydGNf dyA9IGNydGMtPm1vZGUuaGRpc3BsYXk7Cj4gLQlwbGFuZV9zdGF0ZS0+c3JjX3ggPSB4IDw8IDE2 Owo+IC0JcGxhbmVfc3RhdGUtPnNyY195ID0geSA8PCAxNjsKPiAtCXBsYW5lX3N0YXRlLT5zcmNf aCA9IGNydGMtPm1vZGUudmRpc3BsYXkgPDwgMTY7Cj4gLQlwbGFuZV9zdGF0ZS0+c3JjX3cgPSBj cnRjLT5tb2RlLmhkaXNwbGF5IDw8IDE2Owo+IC0KPiAtCXJldHVybiBkcm1fcGxhbmVfaGVscGVy X2NvbW1pdChwbGFuZSwgcGxhbmVfc3RhdGUsIG9sZF9mYik7Cj4gLX0KPiAtRVhQT1JUX1NZTUJP TChkcm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hl bHBlci5jCj4gaW5kZXggYTM5Mzc1NmI2NjRlLi45NjUyODYyMzE2MDAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fcGxhbmVfaGVscGVyLmMKPiBAQCAtMzM2LDIwMCArMzM2LDMgQEAgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9mdW5jcyBkcm1fcHJpbWFyeV9oZWxwZXJfZnVuY3MgPSB7Cj4gIAkuZGVzdHJv eSA9IGRybV9wcmltYXJ5X2hlbHBlcl9kZXN0cm95LAo+ICB9Owo+ICBFWFBPUlRfU1lNQk9MKGRy bV9wcmltYXJ5X2hlbHBlcl9mdW5jcyk7Cj4gLQo+IC1pbnQgZHJtX3BsYW5lX2hlbHBlcl9jb21t aXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSwKPiAtCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9m YikKPiAtewo+IC0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKnBsYW5lX2Z1 bmNzOwo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjWzJdOwo+IC0JY29uc3Qgc3RydWN0IGRybV9j cnRjX2hlbHBlcl9mdW5jcyAqY3J0Y19mdW5jc1syXTsKPiAtCWludCBpLCByZXQgPSAwOwo+IC0K PiAtCXBsYW5lX2Z1bmNzID0gcGxhbmUtPmhlbHBlcl9wcml2YXRlOwo+IC0KPiAtCS8qIFNpbmNl IHRoaXMgaXMgYSB0cmFuc2l0aW9uYWwgaGVscGVyIHdlIGNhbid0IGFzc3VtZSB0aGF0IHBsYW5l LT5zdGF0ZQo+IC0JICogaXMgYWx3YXlzIHZhbGlkLiBIZW5jZSB3ZSBuZWVkIHRvIHVzZSBwbGFu ZS0+Y3J0YyBpbnN0ZWFkIG9mCj4gLQkgKiBwbGFuZS0+c3RhdGUtPmNydGMgYXMgdGhlIG9sZCBj cnRjLiAqLwo+IC0JY3J0Y1swXSA9IHBsYW5lLT5jcnRjOwo+IC0JY3J0Y1sxXSA9IGNydGNbMF0g IT0gcGxhbmVfc3RhdGUtPmNydGMgPyBwbGFuZV9zdGF0ZS0+Y3J0YyA6IE5VTEw7Cj4gLQo+IC0J Zm9yIChpID0gMDsgaSA8IDI7IGkrKykKPiAtCQljcnRjX2Z1bmNzW2ldID0gY3J0Y1tpXSA/IGNy dGNbaV0tPmhlbHBlcl9wcml2YXRlIDogTlVMTDsKPiAtCj4gLQlpZiAocGxhbmVfZnVuY3MtPmF0 b21pY19jaGVjaykgewo+IC0JCXJldCA9IHBsYW5lX2Z1bmNzLT5hdG9taWNfY2hlY2socGxhbmUs IHBsYW5lX3N0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4g LQlpZiAocGxhbmVfZnVuY3MtPnByZXBhcmVfZmIgJiYgcGxhbmVfc3RhdGUtPmZiICE9IG9sZF9m Yikgewo+IC0JCXJldCA9IHBsYW5lX2Z1bmNzLT5wcmVwYXJlX2ZiKHBsYW5lLAo+IC0JCQkJCSAg ICAgIHBsYW5lX3N0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIG91dDsKPiAtCX0KPiAt Cj4gLQkvKiBQb2ludCBvZiBubyByZXR1cm4sIGNvbW1pdCBzdyBzdGF0ZS4gKi8KPiAtCXN3YXAo cGxhbmUtPnN0YXRlLCBwbGFuZV9zdGF0ZSk7Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IDI7IGkr Kykgewo+IC0JCWlmIChjcnRjX2Z1bmNzW2ldICYmIGNydGNfZnVuY3NbaV0tPmF0b21pY19iZWdp bikKPiAtCQkJY3J0Y19mdW5jc1tpXS0+YXRvbWljX2JlZ2luKGNydGNbaV0sIGNydGNbaV0tPnN0 YXRlKTsKPiAtCX0KPiAtCj4gLQkvKgo+IC0JICogRHJpdmVycyBtYXkgb3B0aW9uYWxseSBpbXBs ZW1lbnQgdGhlIC0+YXRvbWljX2Rpc2FibGUgY2FsbGJhY2ssIHNvCj4gLQkgKiBzcGVjaWFsLWNh c2UgdGhhdCBoZXJlLgo+IC0JICovCj4gLQlpZiAoZHJtX2F0b21pY19wbGFuZV9kaXNhYmxpbmco cGxhbmVfc3RhdGUsIHBsYW5lLT5zdGF0ZSkgJiYKPiAtCSAgICBwbGFuZV9mdW5jcy0+YXRvbWlj X2Rpc2FibGUpCj4gLQkJcGxhbmVfZnVuY3MtPmF0b21pY19kaXNhYmxlKHBsYW5lLCBwbGFuZV9z dGF0ZSk7Cj4gLQllbHNlCj4gLQkJcGxhbmVfZnVuY3MtPmF0b21pY191cGRhdGUocGxhbmUsIHBs YW5lX3N0YXRlKTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7Cj4gLQkJaWYgKGNy dGNfZnVuY3NbaV0gJiYgY3J0Y19mdW5jc1tpXS0+YXRvbWljX2ZsdXNoKQo+IC0JCQljcnRjX2Z1 bmNzW2ldLT5hdG9taWNfZmx1c2goY3J0Y1tpXSwgY3J0Y1tpXS0+c3RhdGUpOwo+IC0JfQo+IC0K PiAtCS8qCj4gLQkgKiBJZiB3ZSBvbmx5IG1vdmVkIHRoZSBwbGFuZSBhbmQgZGlkbid0IGNoYW5n ZSBmYidzLCB0aGVyZSdzIG5vIG5lZWQgdG8KPiAtCSAqIHdhaXQgZm9yIHZibGFuay4KPiAtCSAq Lwo+IC0JaWYgKHBsYW5lLT5zdGF0ZS0+ZmIgPT0gb2xkX2ZiKQo+IC0JCWdvdG8gb3V0Owo+IC0K PiAtCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKPiAtCQlpZiAoIWNydGNbaV0pCj4gLQkJCWNv bnRpbnVlOwo+IC0KPiAtCQlpZiAoY3J0Y1tpXS0+Y3Vyc29yID09IHBsYW5lKQo+IC0JCQljb250 aW51ZTsKPiAtCj4gLQkJLyogVGhlcmUncyBubyBvdGhlciB3YXkgdG8gZmlndXJlIG91dCB3aGV0 aGVyIHRoZSBjcnRjIGlzIHJ1bm5pbmcuICovCj4gLQkJcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dl dChjcnRjW2ldKTsKPiAtCQlpZiAocmV0ID09IDApIHsKPiAtCQkJZHJtX2NydGNfd2FpdF9vbmVf dmJsYW5rKGNydGNbaV0pOwo+IC0JCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGNbaV0pOwo+IC0J CX0KPiAtCj4gLQkJcmV0ID0gMDsKPiAtCX0KPiAtCj4gLQlpZiAocGxhbmVfZnVuY3MtPmNsZWFu dXBfZmIpCj4gLQkJcGxhbmVfZnVuY3MtPmNsZWFudXBfZmIocGxhbmUsIHBsYW5lX3N0YXRlKTsK PiAtb3V0Ogo+IC0JaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2Rlc3Ryb3lfc3RhdGUpCj4gLQkJ cGxhbmUtPmZ1bmNzLT5hdG9taWNfZGVzdHJveV9zdGF0ZShwbGFuZSwgcGxhbmVfc3RhdGUpOwo+ IC0JZWxzZQo+IC0JCWRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUs IHBsYW5lX3N0YXRlKTsKPiAtCj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC0vKioKPiAtICog ZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUoKSAtIFRyYW5zaXRpb25hbCBoZWxwZXIgZm9yIHBsYW5l IHVwZGF0ZQo+IC0gKiBAcGxhbmU6IHBsYW5lIG9iamVjdCB0byB1cGRhdGUKPiAtICogQGNydGM6 IG93bmluZyBDUlRDIG9mIG93bmluZyBwbGFuZQo+IC0gKiBAZmI6IGZyYW1lYnVmZmVyIHRvIGZs aXAgb250byBwbGFuZQo+IC0gKiBAY3J0Y194OiB4IG9mZnNldCBvZiBwcmltYXJ5IHBsYW5lIG9u IGNydGMKPiAtICogQGNydGNfeTogeSBvZmZzZXQgb2YgcHJpbWFyeSBwbGFuZSBvbiBjcnRjCj4g LSAqIEBjcnRjX3c6IHdpZHRoIG9mIHByaW1hcnkgcGxhbmUgcmVjdGFuZ2xlIG9uIGNydGMKPiAt ICogQGNydGNfaDogaGVpZ2h0IG9mIHByaW1hcnkgcGxhbmUgcmVjdGFuZ2xlIG9uIGNydGMKPiAt ICogQHNyY194OiB4IG9mZnNldCBvZiBAZmIgZm9yIHBhbm5pbmcKPiAtICogQHNyY195OiB5IG9m ZnNldCBvZiBAZmIgZm9yIHBhbm5pbmcKPiAtICogQHNyY193OiB3aWR0aCBvZiBzb3VyY2UgcmVj dGFuZ2xlIGluIEBmYgo+IC0gKiBAc3JjX2g6IGhlaWdodCBvZiBzb3VyY2UgcmVjdGFuZ2xlIGlu IEBmYgo+IC0gKiBAY3R4OiBsb2NrIGFjcXVpcmUgY29udGV4dCwgbm90IHVzZWQgaGVyZQo+IC0g Kgo+IC0gKiBQcm92aWRlcyBhIGRlZmF1bHQgcGxhbmUgdXBkYXRlIGhhbmRsZXIgdXNpbmcgdGhl IGF0b21pYyBwbGFuZSB1cGRhdGUKPiAtICogZnVuY3Rpb25zLiBJdCBpcyBmdWxseSBsZWZ0IHRv IHRoZSBkcml2ZXIgdG8gY2hlY2sgcGxhbmUgY29uc3RyYWludHMgYW5kCj4gLSAqIGhhbmRsZSBj b3JuZXItY2FzZXMgbGlrZSBhIGZ1bGx5IG9jY2x1ZGVkIG9yIG90aGVyd2lzZSBpbnZpc2libGUg cGxhbmUuCj4gLSAqCj4gLSAqIFRoaXMgaXMgdXNlZnVsIGZvciBwaWVjZXdpc2UgdHJhbnNpdGlv bmluZyBvZiBhIGRyaXZlciB0byB0aGUgYXRvbWljIGhlbHBlcnMuCj4gLSAqCj4gLSAqIFJFVFVS TlM6Cj4gLSAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCj4gLSAqLwo+ IC1pbnQgZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi LAo+IC0JCQkgICAgaW50IGNydGNfeCwgaW50IGNydGNfeSwKPiAtCQkJICAgIHVuc2lnbmVkIGlu dCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gLQkJCSAgICB1aW50MzJfdCBzcmNfeCwg dWludDMyX3Qgc3JjX3ksCj4gLQkJCSAgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gs Cj4gLQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiAtewo+IC0J c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gLQo+IC0JaWYgKHBsYW5lLT5m dW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSkKPiAtCQlwbGFuZV9zdGF0ZSA9IHBsYW5lLT5m dW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7Cj4gLQllbHNlIHsKPiAtCQlpZiAo IXBsYW5lLT5zdGF0ZSkKPiAtCQkJZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQocGxhbmUp Owo+IC0KPiAtCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0 ZV9zdGF0ZShwbGFuZSk7Cj4gLQl9Cj4gLQlpZiAoIXBsYW5lX3N0YXRlKQo+IC0JCXJldHVybiAt RU5PTUVNOwo+IC0JcGxhbmVfc3RhdGUtPnBsYW5lID0gcGxhbmU7Cj4gLQo+IC0JcGxhbmVfc3Rh dGUtPmNydGMgPSBjcnRjOwo+IC0JZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0 YXRlLCBmYik7Cj4gLQlwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gY3J0Y194Owo+IC0JcGxhbmVfc3Rh dGUtPmNydGNfeSA9IGNydGNfeTsKPiAtCXBsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7Cj4g LQlwbGFuZV9zdGF0ZS0+Y3J0Y193ID0gY3J0Y193Owo+IC0JcGxhbmVfc3RhdGUtPnNyY194ID0g c3JjX3g7Cj4gLQlwbGFuZV9zdGF0ZS0+c3JjX3kgPSBzcmNfeTsKPiAtCXBsYW5lX3N0YXRlLT5z cmNfaCA9IHNyY19oOwo+IC0JcGxhbmVfc3RhdGUtPnNyY193ID0gc3JjX3c7Cj4gLQo+IC0JcmV0 dXJuIGRybV9wbGFuZV9oZWxwZXJfY29tbWl0KHBsYW5lLCBwbGFuZV9zdGF0ZSwgcGxhbmUtPmZi KTsKPiAtfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlKTsKPiAtCj4g LS8qKgo+IC0gKiBkcm1fcGxhbmVfaGVscGVyX2Rpc2FibGUoKSAtIFRyYW5zaXRpb25hbCBoZWxw ZXIgZm9yIHBsYW5lIGRpc2FibGUKPiAtICogQHBsYW5lOiBwbGFuZSB0byBkaXNhYmxlCj4gLSAq IEBjdHg6IGxvY2sgYWNxdWlyZSBjb250ZXh0LCBub3QgdXNlZCBoZXJlCj4gLSAqCj4gLSAqIFBy b3ZpZGVzIGEgZGVmYXVsdCBwbGFuZSBkaXNhYmxlIGhhbmRsZXIgdXNpbmcgdGhlIGF0b21pYyBw bGFuZSB1cGRhdGUKPiAtICogZnVuY3Rpb25zLiBJdCBpcyBmdWxseSBsZWZ0IHRvIHRoZSBkcml2 ZXIgdG8gY2hlY2sgcGxhbmUgY29uc3RyYWludHMgYW5kCj4gLSAqIGhhbmRsZSBjb3JuZXItY2Fz ZXMgbGlrZSBhIGZ1bGx5IG9jY2x1ZGVkIG9yIG90aGVyd2lzZSBpbnZpc2libGUgcGxhbmUuCj4g LSAqCj4gLSAqIFRoaXMgaXMgdXNlZnVsIGZvciBwaWVjZXdpc2UgdHJhbnNpdGlvbmluZyBvZiBh IGRyaXZlciB0byB0aGUgYXRvbWljIGhlbHBlcnMuCj4gLSAqCj4gLSAqIFJFVFVSTlM6Cj4gLSAq IFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCj4gLSAqLwo+IC1pbnQgZHJt X3BsYW5lX2hlbHBlcl9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCQkgICAg IHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+IC17Cj4gLQlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9s ZF9mYjsKPiAtCj4gLQkvKiBjcnRjIGhlbHBlcnMgbG92ZSB0byBjYWxsIGRpc2FibGUgZnVuY3Rp b25zIGZvciBhbHJlYWR5IGRpc2FibGVkIGh3Cj4gLQkgKiBmdW5jdGlvbnMuIFNvIGNvcGUgd2l0 aCB0aGF0LiAqLwo+IC0JaWYgKCFwbGFuZS0+Y3J0YykKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlp ZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKQo+IC0JCXBsYW5lX3N0YXRl ID0gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKPiAtCWVsc2Ug ewo+IC0JCWlmICghcGxhbmUtPnN0YXRlKQo+IC0JCQlkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9y ZXNldChwbGFuZSk7Cj4gLQo+IC0JCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfcGxh bmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKPiAtCX0KPiAtCWlmICghcGxhbmVfc3RhdGUpCj4g LQkJcmV0dXJuIC1FTk9NRU07Cj4gLQlwbGFuZV9zdGF0ZS0+cGxhbmUgPSBwbGFuZTsKPiAtCj4g LQlwbGFuZV9zdGF0ZS0+Y3J0YyA9IE5VTEw7Cj4gLQlvbGRfZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7 Cj4gLQlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOwo+IC0K PiAtCXJldHVybiBkcm1fcGxhbmVfaGVscGVyX2NvbW1pdChwbGFuZSwgcGxhbmVfc3RhdGUsIG9s ZF9mYik7Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfaGVscGVyX2Rpc2FibGUpOwo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Y19oZWxwZXIuaCBiL2luY2x1ZGUvZHJt L2RybV9jcnRjX2hlbHBlci5oCj4gaW5kZXggNjkxNDYzMzAzN2E1Li5kNjVmMDM0ODQzY2UgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fY3J0Y19oZWxwZXIuaAo+IEBAIC01NywxMiArNTcsNiBAQCBpbnQgZHJtX2hlbHBl cl9jb25uZWN0b3JfZHBtcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQgbW9k ZSk7Cj4gIAo+ICB2b2lkIGRybV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gIAo+IC1pbnQgZHJtX2hlbHBlcl9jcnRjX21vZGVfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCSAgICAg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsIGludCB4LCBpbnQgeSwKPiAt CQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIpOwo+IC1pbnQgZHJtX2hlbHBl cl9jcnRjX21vZGVfc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHks Cj4gLQkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYik7Cj4gLQo+ICAvKiBkcm1f cHJvYmVfaGVscGVyLmMgKi8KPiAgaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rv cl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ICAJCQkJCSAgICAqY29ubmVjdG9yLCB1aW50 MzJfdCBtYXhYLAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmgg Yi9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmgKPiBpbmRleCAyNmNlZTI5MzQ3ODEuLjE5 OTk3ODE3ODFjNyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmgK PiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmgKPiBAQCAtNjIsMTggKzYyLDQg QEAgaW50IGRybV9wcmltYXJ5X2hlbHBlcl9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ICB2b2lkIGRybV9wcmltYXJ5X2hlbHBlcl9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKTsKPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgZHJtX3ByaW1hcnlf aGVscGVyX2Z1bmNzOwo+ICAKPiAtaW50IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCSAgICBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJICAgIGludCBjcnRjX3gsIGludCBjcnRjX3ksCj4g LQkJCSAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAo+IC0JCQkg ICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAo+IC0JCQkgICAgdWludDMyX3Qgc3Jj X3csIHVpbnQzMl90IHNyY19oLAo+IC0JCQkgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgpOwo+IC1pbnQgZHJtX3BsYW5lX2hlbHBlcl9kaXNhYmxlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+IC0JCQkgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4 KTsKPiAtCj4gLS8qIEZvciB1c2UgYnkgZHJtX2NydGNfaGVscGVyLmMgKi8KPiAtaW50IGRybV9w bGFuZV9oZWxwZXJfY29tbWl0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCQkgICAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gLQkJCSAgICBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpvbGRfZmIpOwo+ICAjZW5kaWYKPiAtLSAKPiAyLjE5LjAucmMyCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=