From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [PATCH 2/2] drm/vkms: Compute CRC with Cursor Plane Date: Wed, 8 Aug 2018 06:53:17 +0300 Message-ID: <20180808035317.GA1708@haneenDRM> References: <44b546fedbcf65fd20f7a65d5443fbb50493cf32.1533526327.git.hamohammed.sa@gmail.com> <20180807163336.GA3008@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by gabe.freedesktop.org (Postfix) with ESMTPS id 395EB89F6D for ; Wed, 8 Aug 2018 03:53:24 +0000 (UTC) Received: by mail-pf1-x434.google.com with SMTP id j26-v6so432698pfi.10 for ; Tue, 07 Aug 2018 20:53:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180807163336.GA3008@phenom.ffwll.local> 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: rodrigosiqueiramelo@gmail.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMDcsIDIwMTggYXQgMDY6MzM6MzZQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBNb24sIEF1ZyAwNiwgMjAxOCBhdCAwNjo1ODoyOUFNICswMzAwLCBIYW5lZW4g TW9oYW1tZWQgd3JvdGU6Cj4gPiBUaGlzIHBhdGNoIGNvbXB1dGUgQ1JDIGZvciBvdXRwdXQgZnJh bWUgd2l0aCBjdXJzb3IgYW5kIHByaW1hcnkgcGxhbmUuCj4gPiBCbGVuZCBjdXJzb3Igd2l0aCBw cmltYXJ5IHBsYW5lIGFuZCBjb21wdXRlIENSQyBvbiB0aGUgcmVzdWx0ZWQgZnJhbWUuCj4gPiAK PiA+IFNpZ25lZC1vZmYtYnk6IEhhbmVlbiBNb2hhbW1lZCA8aGFtb2hhbW1lZC5zYUBnbWFpbC5j b20+Cj4gCj4gTmljZSEKPiAKPiBJIGFzc3VtZSB3aXRoIHRoaXMgeW91J3JlIHBhc3NpbmcgYWxs IHRoZSBjcmMgYmFzZWQgY3Vyc29yIHRlc3RzIGluIGlndD8KPiBJZiBzbywgcGxlYXNlIG1lbnRp b24gdGhpcyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UsIHNvIHRoYXQgdGhlcmUncyBhIHJlY29yZAo+ IG9mIHRoZSB0ZXN0aW5nIGRvbmUgb24gdGhpcy4KPiAKClN1cmUsIEknbGwgdXBkYXRlIHRoZSBj b21taXQgbWVzc2FnZS4KSXMgdGhlcmUgYW55IG90aGVyIGNoYW5nZSBJIHNob3VsZCBhZGQvZml4 IHRvIHRoaXMgcGF0Y2hzZXQ/Cgo+IE9uZSBmYWlybHkgaHVnZSBnYXAgd2UgaWlyYyBoYXZlIGlu IG91ciBjdXJzb3IgdGVzdGluZyBpcyB0aGF0IHRoZXJlJ3Mgbm90Cj4gbXVjaCAoaWYgYW55Pykg YWxwaGEgYmxlbmRpbmcgY292ZXJhZ2UuIFdlIGtpbmRhIG5lZWQgdGhhdCB0byBtYWtlIHN1cmUK PiB0aGlzIGFsbCB3b3JrcyBjb3JyZWN0bHkuIFRoZSB1c3VhbCB0cmljayBpcyB0byBvbmx5IGNo ZWNrIHRoZSBleHRyZW1lCj4gYWxwaGEgdmFsdWVzLCBpLmUuIGZ1bGx5IG9wYXF1ZSBhbmQgZnVs bHkgdHJhbnNwYXJlbnQsIHNpbmNlIGludGVybWVkaWF0ZQo+IHZhbHVlcyBhcmUgYWZmZWN0ZWQg YnkgaHctc3BlY2lmaWMgcm91bmRpbmcgbW9kZXMuCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2NyYy5jICAgfCAxNDkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCAgIHwgICA1ICstCj4gPiAgZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jIHwgIDEwICstCj4gPiAgMyBmaWxlcyBjaGFu Z2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcmMuYwo+ID4gaW5kZXggMzdkNzE3ZjM4ZTNjLi40ODUzYTczOWFlNWEgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiBAQCAtMSwzNiArMSwxMzcgQEAKPiA+ICAv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gICNpbmNsdWRlICJ2a21zX2Ry di5oIgo+ID4gICNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJt X2F0b21pYy5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ICAj aW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Cj4gPiAgCj4gPiAtc3Rh dGljIHVpbnQzMl90IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRh KQo+ID4gKy8qKgo+ID4gKyAqIGNvbXB1dGVfY3JjIC0gQ29tcHV0ZSBDUkMgdmFsdWUgb24gb3V0 cHV0IGZyYW1lCj4gPiArICoKPiA+ICsgKiBAdmFkZHJfb3V0OiBhZGRyZXNzIHRvIGZpbmFsIGZy YW1lYnVmZmVyCj4gPiArICogQGNyY19vdXQ6IGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiA+ICsg Kgo+ID4gKyAqIHJldHVybnMgQ1JDIHZhbHVlIGNvbXB1dGVkIHVzaW5nIGNyYzMyIG9uIHRoZSB2 aXNpYmxlIHBvcnRpb24gb2YKPiA+ICsgKiB0aGUgZmluYWwgZnJhbWVidWZmZXIgYXQgdmFkZHJf b3V0Cj4gPiArICovCj4gPiArc3RhdGljIHVpbnQzMl90IGNvbXB1dGVfY3JjKHZvaWQgKnZhZGRy X291dCwgc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19vdXQpCj4gPiAgewo+ID4gLQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZjcmNfZGF0YS0+ZmI7Cj4gPiArCWludCBpLCBzcmNfb2Zm c2V0Owo+ID4gKwlpbnQgeF9zcmMgPSBjcmNfb3V0LT5zcmMueDEgPj4gMTY7Cj4gPiArCWludCB5 X3NyYyA9IGNyY19vdXQtPnNyYy55MSA+PiAxNjsKPiA+ICsJaW50IGhfc3JjID0gZHJtX3JlY3Rf aGVpZ2h0KCZjcmNfb3V0LT5zcmMpID4+IDE2Owo+ID4gKwlpbnQgd19zcmMgPSBkcm1fcmVjdF93 aWR0aCgmY3JjX291dC0+c3JjKSA+PiAxNjsKPiA+ICsJaW50IHNpemVfYnl0ZSA9IHdfc3JjICog Y3JjX291dC0+Y3BwOwo+ID4gKwl1MzIgY3JjID0gMDsKPiA+ICsKPiA+ICsJZm9yIChpID0geV9z cmM7IGkgPCB5X3NyYyArIGhfc3JjOyBpKyspIHsKPiA+ICsJCXNyY19vZmZzZXQgPSBjcmNfb3V0 LT5vZmZzZXQKPiA+ICsJCQkgICAgICsgKGkgKiBjcmNfb3V0LT5waXRjaCkKPiA+ICsJCQkgICAg ICsgKHhfc3JjICogY3JjX291dC0+Y3BwKTsKPiA+ICsJCWNyYyA9IGNyYzMyX2xlKGNyYywgdmFk ZHJfb3V0ICsgc3JjX29mZnNldCwgc2l6ZV9ieXRlKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1 cm4gY3JjOwo+ID4gK30KPiA+ICsKPiA+ICsvKioKPiA+ICsgKiBibGVuZCAtIGJlbG5kIHZhbHVl IGF0IHZhZGRyX3NyYyB3aXRoIHZhbHVlIGF0IHZhZGRyX2RzdAo+ID4gKyAqIEB2YWRkcl9kc3Q6 IGRlc3RpbmF0aW9uIGFkZHJlc3MKPiA+ICsgKiBAdmFkZHJfc3JjOiBzb3VyY2UgYWRkcmVzcwo+ ID4gKyAqIEBjcmNfZHN0OiBkZXN0aW5hdGlvbiBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCj4gPiAr ICogQGNyY19zcmM6IHNvdXJjZSBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCj4gPiArICoKPiA+ICsg KiBCbGVuZCB2YWx1ZSBhdCB2YWRkcl9zcmMgd2l0aCB2YWx1ZSBhdCB2YWRkcl9kc3QuCj4gPiAr ICogQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uIHdyaXRlIHZhbHVlIGF0IHZhZGRyX3NyYyBvbiB2 YWx1ZQo+ID4gKyAqIGF0IHZhZGRyX2RzdCB1c2luZyBidWZmZXIncyBtZXRhZGF0YSB0byBsb2Nh dGUgdGhlIG5ldyB2YWx1ZXMKPiA+ICsgKiBmcm9tIHZhZGRyX3NyYyBhbmQgdGhlaXIgZGlzdGVu YXRpb24gYXQgdmFkZHJfZHN0Lgo+ID4gKyAqCj4gPiArICogVG9kbzogVXNlIHRoZSBhbHBoYSB2 YWx1ZSB0byBibGVuZCB2YWRkcl9zcmMgd2l0aCB2YWRkcl9kc3QKPiA+ICsgKgkgaW5zdGVhZCBv ZiBvdmVyd3JpdGluZyBpdC4KPiAKPiBBbm90aGVyIHRvZG86IFdlIG11c3QgY2xlYXIgdGhlIGFs cGhhIGNoYW5uZWwgaW4gdGhlIHJlc3VsdCBhZnRlcgo+IGJsZW5kaW5nLiBUaGlzIGFsc28gYXBw bGllcyB0byB0aGUgcHJpbWFyeSBwbGFuZSwgd2hlcmUgdGhlIFhSR0IgZm9yIHRoZQo+IHBpeGVs IGZvcm1hdCBtYW5kYXRlcyB0aGF0IHdlIGVudGlyZWx5IGlnbm9yZSB0aGUgYWxwaGEgY2hhbm5l bC4KPiAKPiBUaGlzIGlzIGFsc28gc29tZXRoaW5nIHdlIHNob3VsZCBwcm9iYWJseSBoYXZlIGFu IGlndCB0ZXN0Y2FzZSBmb3IuCj4gCj4gU2luY2UgdGhlcmUncyBhIGZldyBvcGVuIGVuZHM6IEhv dyBtYW55IHdlZWtzIGFyZSBsZWZ0IGluIHlvdXIgb3V0cmVhY2h5Cj4gaW50ZXJuc2hpcD8gV2Ug bmVlZCB0byBtYWtlIHN1cmUgdGhhdCBhdCBsZWFzdCBhbGwgdGhlIGlzc3VlcyBhcmUgY292ZXJl ZAo+IGluIGEgdmttcyB0b2RvIGZpbGUuIFdvdWxkIGJlIGdyZWF0IHRvIGFkZCB0aGF0IGluCj4g RG9jdW1lbnRhdGlvbi9ncHUvdmttcy5yc3QsIGxpa2Ugd2UgaGF2ZSBmb3Igb3RoZXIgZHJpdmVy cy4KPiAtRGFuaWVsCj4gCgpJJ3ZlIG9uZSBtb3JlIHdlZWshIEkgY2FuIHVzZSB0aGlzIHdlZWsg dG8gcHJlcGFyZSB0aGUgdG9kbyBmaWxlIGFuZApmaW5hbGl6ZSB0aGlzIHBhdGNoPwoKVGhhbmsg eW91LApIYW5lZW4KCj4gPiArICovCj4gPiArc3RhdGljIHZvaWQgYmxlbmQodm9pZCAqdmFkZHJf ZHN0LCB2b2lkICp2YWRkcl9zcmMsCj4gPiArCQkgIHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNf ZHN0LAo+ID4gKwkJICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX3NyYykKPiA+ICt7Cj4gPiAr CWludCBpLCBqLCBqX2RzdCwgaV9kc3Q7Cj4gPiArCWludCBvZmZzZXRfc3JjLCBvZmZzZXRfZHN0 Owo+ID4gKwo+ID4gKwlpbnQgeF9zcmMgPSBjcmNfc3JjLT5zcmMueDEgPj4gMTY7Cj4gPiArCWlu dCB5X3NyYyA9IGNyY19zcmMtPnNyYy55MSA+PiAxNjsKPiA+ICsKPiA+ICsJaW50IHhfZHN0ID0g Y3JjX3NyYy0+ZHN0LngxOwo+ID4gKwlpbnQgeV9kc3QgPSBjcmNfc3JjLT5kc3QueTE7Cj4gPiAr CWludCBoX2RzdCA9IGRybV9yZWN0X2hlaWdodCgmY3JjX3NyYy0+ZHN0KTsKPiA+ICsJaW50IHdf ZHN0ID0gZHJtX3JlY3Rfd2lkdGgoJmNyY19zcmMtPmRzdCk7Cj4gPiArCj4gPiArCWludCB5X2xp bWl0ID0geV9zcmMgKyBoX2RzdDsKPiA+ICsJaW50IHhfbGltaXQgPSB4X3NyYyArIHdfZHN0Owo+ ID4gKwo+ID4gKwlmb3IgKGkgPSB5X3NyYywgaV9kc3QgPSB5X2RzdDsgaSA8IHlfbGltaXQ7ICsr aSkgewo+ID4gKwkJZm9yIChqID0geF9zcmMsIGpfZHN0ID0geF9kc3Q7IGogPCB4X2xpbWl0OyAr K2opIHsKPiA+ICsJCQlvZmZzZXRfZHN0ID0gY3JjX2RzdC0+b2Zmc2V0Cj4gPiArCQkJCSAgICAg KyAoaV9kc3QgKiBjcmNfZHN0LT5waXRjaCkKPiA+ICsJCQkJICAgICArIChqX2RzdCsrICogY3Jj X2RzdC0+Y3BwKTsKPiA+ICsJCQlvZmZzZXRfc3JjID0gY3JjX3NyYy0+b2Zmc2V0Cj4gPiArCQkJ CSAgICAgKyAoaSAqIGNyY19zcmMtPnBpdGNoKQo+ID4gKwkJCQkgICAgICsgKGogKiBjcmNfc3Jj LT5jcHApOwo+ID4gKwo+ID4gKwkJCW1lbWNweSh2YWRkcl9kc3QgKyBvZmZzZXRfZHN0LAo+ID4g KwkJCSAgICAgICB2YWRkcl9zcmMgKyBvZmZzZXRfc3JjLCBzaXplb2YodTMyKSk7Cj4gPiArCQl9 Cj4gPiArCQlpX2RzdCsrOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGNv bXBvc2VfY3Vyc29yKHN0cnVjdCB2a21zX2NyY19kYXRhICpjdXJzb3JfY3JjLAo+ID4gKwkJCSAg IHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYywgdm9pZCAqdmFkZHJfb3V0KQo+ID4g K3sKPiA+ICsJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpjdXJzb3Jfb2JqOwo+ID4gKwlzdHJ1Y3Qg dmttc19nZW1fb2JqZWN0ICpjdXJzb3Jfdmttc19vYmo7Cj4gPiArCj4gPiArCWN1cnNvcl9vYmog PSBkcm1fZ2VtX2ZiX2dldF9vYmooJmN1cnNvcl9jcmMtPmZiLCAwKTsKPiA+ICsJY3Vyc29yX3Zr bXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShjdXJzb3Jfb2JqKTsKPiA+ICsKPiA+ICsJbXV0 ZXhfbG9jaygmY3Vyc29yX3ZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+ICsJaWYgKFdBUk5fT04o IWN1cnNvcl92a21zX29iai0+dmFkZHIpKQo+ID4gKwkJZ290byBvdXQ7Cj4gPiArCj4gPiArCWJs ZW5kKHZhZGRyX291dCwgY3Vyc29yX3ZrbXNfb2JqLT52YWRkciwgcHJpbWFyeV9jcmMsIGN1cnNv cl9jcmMpOwo+ID4gKwo+ID4gK291dDoKPiA+ICsJbXV0ZXhfdW5sb2NrKCZjdXJzb3Jfdmttc19v YmotPnBhZ2VzX2xvY2spOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdWludDMyX3QgX3ZrbXNf Z2V0X2NyYyhzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqcHJpbWFyeV9jcmMsCj4gPiArCQkJICAgICAg c3RydWN0IHZrbXNfY3JjX2RhdGEgKmN1cnNvcl9jcmMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9ICZwcmltYXJ5X2NyYy0+ZmI7Cj4gPiAgCXN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqZ2VtX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaihmYiwgMCk7Cj4gPiAgCXN0cnVj dCB2a21zX2dlbV9vYmplY3QgKnZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShnZW1fb2Jq KTsKPiA+ICsJdm9pZCAqdmFkZHJfb3V0ID0ga3phbGxvYyh2a21zX29iai0+Z2VtLnNpemUsIEdG UF9LRVJORUwpOwo+ID4gIAl1MzIgY3JjID0gMDsKPiA+IC0JaW50IGkgPSAwOwo+ID4gLQl1bnNp Z25lZCBpbnQgeCA9IGNyY19kYXRhLT5zcmMueDEgPj4gMTY7Cj4gPiAtCXVuc2lnbmVkIGludCB5 ID0gY3JjX2RhdGEtPnNyYy55MSA+PiAxNjsKPiA+IC0JdW5zaWduZWQgaW50IGhlaWdodCA9IGRy bV9yZWN0X2hlaWdodCgmY3JjX2RhdGEtPnNyYykgPj4gMTY7Cj4gPiAtCXVuc2lnbmVkIGludCB3 aWR0aCA9IGRybV9yZWN0X3dpZHRoKCZjcmNfZGF0YS0+c3JjKSA+PiAxNjsKPiA+IC0JdW5zaWdu ZWQgaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiA+IC0JdW5zaWduZWQgaW50IHNyY19v ZmZzZXQ7Cj4gPiAtCXVuc2lnbmVkIGludCBzaXplX2J5dGUgPSB3aWR0aCAqIGNwcDsKPiA+IC0J dm9pZCAqdmFkZHI7Cj4gPiAgCj4gPiAtCW11dGV4X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2Nr KTsKPiA+IC0JdmFkZHIgPSB2a21zX29iai0+dmFkZHI7Cj4gPiAtCWlmIChXQVJOX09OKCF2YWRk cikpCj4gPiAtCQlnb3RvIG91dDsKPiA+ICsJaWYgKCF2YWRkcl9vdXQpIHsKPiA+ICsJCURSTV9F UlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igb3V0cHV0IGZyYW1lLiIpOwo+ID4g KwkJcmV0dXJuIDA7Cj4gPiArCX0KPiA+ICAKPiA+IC0JZm9yIChpID0geTsgaSA8IHkgKyBoZWln aHQ7IGkrKykgewo+ID4gLQkJc3JjX29mZnNldCA9IGZiLT5vZmZzZXRzWzBdICsgKGkgKiBmYi0+ cGl0Y2hlc1swXSkgKyAoeCAqIGNwcCk7Cj4gPiAtCQljcmMgPSBjcmMzMl9sZShjcmMsIHZhZGRy ICsgc3JjX29mZnNldCwgc2l6ZV9ieXRlKTsKPiA+ICsJbXV0ZXhfbG9jaygmdmttc19vYmotPnBh Z2VzX2xvY2spOwo+ID4gKwlpZiAoV0FSTl9PTighdmttc19vYmotPnZhZGRyKSkgewo+ID4gKwkJ bXV0ZXhfbG9jaygmdmttc19vYmotPnBhZ2VzX2xvY2spOwo+ID4gKwkJcmV0dXJuIGNyYzsKPiA+ ICAJfQo+ID4gIAo+ID4gLW91dDoKPiA+ICsJbWVtY3B5KHZhZGRyX291dCwgdmttc19vYmotPnZh ZGRyLCB2a21zX29iai0+Z2VtLnNpemUpOwo+ID4gIAltdXRleF91bmxvY2soJnZrbXNfb2JqLT5w YWdlc19sb2NrKTsKPiA+ICsKPiA+ICsJaWYgKGN1cnNvcl9jcmMpCj4gPiArCQljb21wb3NlX2N1 cnNvcihjdXJzb3JfY3JjLCBwcmltYXJ5X2NyYywgdmFkZHJfb3V0KTsKPiA+ICsKPiA+ICsJY3Jj ID0gY29tcHV0ZV9jcmModmFkZHJfb3V0LCBwcmltYXJ5X2NyYyk7Cj4gPiArCj4gPiArCWtmcmVl KHZhZGRyX291dCk7Cj4gPiArCj4gPiAgCXJldHVybiBjcmM7Cj4gPiAgfQo+ID4gIAo+ID4gQEAg LTQ0LDggKzE0NSw4IEBAIHZvaWQgdmttc19jcmNfd29ya19oYW5kbGUoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ID4gIAlzdHJ1Y3Qgdmttc19kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2Yo b3V0LCBzdHJ1Y3Qgdmttc19kZXZpY2UsCj4gPiAgCQkJCQkJb3V0cHV0KTsKPiA+ICAJc3RydWN0 IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjID0gTlVMTDsKPiA+ICsJc3RydWN0IHZrbXNfY3Jj X2RhdGEgKmN1cnNvcl9jcmMgPSBOVUxMOwo+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsK PiA+IC0KPiA+ICAJdTMyIGNyYzMyID0gMDsKPiA+ICAKPiA+ICAJZHJtX2Zvcl9lYWNoX3BsYW5l KHBsYW5lLCAmdmRldi0+ZHJtKSB7Cj4gPiBAQCAtNTgsMTQgKzE1OSwxNCBAQCB2b2lkIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICAJCWlmIChkcm1f ZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgmY3JjX2RhdGEtPmZiKSA9PSAwKQo+ID4gIAkJCWNv bnRpbnVlOwo+ID4gIAo+ID4gLQkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BS SU1BUlkpIHsKPiA+ICsJCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZ KQo+ID4gIAkJCXByaW1hcnlfY3JjID0gY3JjX2RhdGE7Cj4gPiAtCQkJYnJlYWs7Cj4gPiAtCQl9 Cj4gPiArCQllbHNlCj4gPiArCQkJY3Vyc29yX2NyYyA9IGNyY19kYXRhOwo+ID4gIAl9Cj4gPiAg Cj4gPiAgCWlmIChwcmltYXJ5X2NyYykKPiA+IC0JCWNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmlt YXJ5X2NyYyk7Cj4gPiArCQljcmMzMiA9IF92a21zX2dldF9jcmMocHJpbWFyeV9jcmMsIGN1cnNv cl9jcmMpOwo+ID4gIAo+ID4gIAlkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KGNydGMsIHRydWUsIGNy dGNfc3RhdGUtPm5fZnJhbWUsICZjcmMzMik7Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Ry di5oCj4gPiBpbmRleCAzNmU1MjRmNzkxZmUuLjE3Mzg3NWRjMzYxZSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92a21zL3ZrbXNfZHJ2LmgKPiA+IEBAIC0yNSw4ICsyNSwxMSBAQCBzdGF0aWMgY29uc3QgdTMy IHZrbXNfY3Vyc29yX2Zvcm1hdHNbXSA9IHsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCB2a21z X2NyY19kYXRhIHsKPiA+IC0Jc3RydWN0IGRybV9yZWN0IHNyYzsKPiA+ICAJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciBmYjsKPiA+ICsJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0Owo+ID4gKwl1bnNp Z25lZCBpbnQgb2Zmc2V0Owo+ID4gKwl1bnNpZ25lZCBpbnQgcGl0Y2g7Cj4gPiArCXVuc2lnbmVk IGludCBjcHA7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3Bs YW5lLmMKPiA+IGluZGV4IDQyODI0N2Q0MDNkYy4uNzA0MTAwNzM5NmFlIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+IEBAIC04NSwxNiArODUsMjIgQEAgc3RhdGljIHZv aWQgdmttc19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4g IAkJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+ICB7Cj4gPiAg CXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2a21zX3BsYW5lX3N0YXRlOwo+ID4gKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lLT5zdGF0ZS0+ZmI7Cj4gPiAgCXN0cnVjdCB2a21z X2NyY19kYXRhICpjcmNfZGF0YTsKPiA+ICAKPiA+IC0JaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMg fHwgIXBsYW5lLT5zdGF0ZS0+ZmIpCj4gPiArCWlmICghcGxhbmUtPnN0YXRlLT5jcnRjIHx8ICFm YikKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+ICAJdmttc19wbGFuZV9zdGF0ZSA9IHRvX3ZrbXNf cGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiA+ICsKPiA+ICAJY3JjX2RhdGEgPSB2a21zX3Bs YW5lX3N0YXRlLT5jcmNfZGF0YTsKPiA+ICAJbWVtY3B5KCZjcmNfZGF0YS0+c3JjLCAmcGxhbmUt PnN0YXRlLT5zcmMsIHNpemVvZihzdHJ1Y3QgZHJtX3JlY3QpKTsKPiA+IC0JbWVtY3B5KCZjcmNf ZGF0YS0+ZmIsIHBsYW5lLT5zdGF0ZS0+ZmIsIHNpemVvZihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy KSk7Cj4gPiArCW1lbWNweSgmY3JjX2RhdGEtPmRzdCwgJnBsYW5lLT5zdGF0ZS0+ZHN0LCBzaXpl b2Yoc3RydWN0IGRybV9yZWN0KSk7Cj4gPiArCW1lbWNweSgmY3JjX2RhdGEtPmZiLCBmYiwgc2l6 ZW9mKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIpKTsKPiA+ICAJZHJtX2ZyYW1lYnVmZmVyX2dldCgm Y3JjX2RhdGEtPmZiKTsKPiA+ICsJY3JjX2RhdGEtPm9mZnNldCA9IGZiLT5vZmZzZXRzWzBdOwo+ ID4gKwljcmNfZGF0YS0+cGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKPiA+ICsJY3JjX2RhdGEtPmNw cCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludCB2a21z X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+IC0tIAo+ID4g Mi4xNy4xCj4gPiAKPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==