From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/2] drm/vkms: Compute CRC with Cursor Plane Date: Tue, 7 Aug 2018 18:33:36 +0200 Message-ID: <20180807163336.GA3008@phenom.ffwll.local> References: <44b546fedbcf65fd20f7a65d5443fbb50493cf32.1533526327.git.hamohammed.sa@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 842366E40E for ; Tue, 7 Aug 2018 16:43:04 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id r4-v6so7214529edp.9 for ; Tue, 07 Aug 2018 09:43:04 -0700 (PDT) Content-Disposition: inline In-Reply-To: <44b546fedbcf65fd20f7a65d5443fbb50493cf32.1533526327.git.hamohammed.sa@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Haneen Mohammed Cc: rodrigosiqueiramelo@gmail.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBBdWcgMDYsIDIwMTggYXQgMDY6NTg6MjlBTSArMDMwMCwgSGFuZWVuIE1vaGFtbWVk IHdyb3RlOgo+IFRoaXMgcGF0Y2ggY29tcHV0ZSBDUkMgZm9yIG91dHB1dCBmcmFtZSB3aXRoIGN1 cnNvciBhbmQgcHJpbWFyeSBwbGFuZS4KPiBCbGVuZCBjdXJzb3Igd2l0aCBwcmltYXJ5IHBsYW5l IGFuZCBjb21wdXRlIENSQyBvbiB0aGUgcmVzdWx0ZWQgZnJhbWUuCj4gCj4gU2lnbmVkLW9mZi1i eTogSGFuZWVuIE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4KCk5pY2UhCgpJIGFz c3VtZSB3aXRoIHRoaXMgeW91J3JlIHBhc3NpbmcgYWxsIHRoZSBjcmMgYmFzZWQgY3Vyc29yIHRl c3RzIGluIGlndD8KSWYgc28sIHBsZWFzZSBtZW50aW9uIHRoaXMgaW4gdGhlIGNvbW1pdCBtZXNz YWdlLCBzbyB0aGF0IHRoZXJlJ3MgYSByZWNvcmQKb2YgdGhlIHRlc3RpbmcgZG9uZSBvbiB0aGlz LgoKT25lIGZhaXJseSBodWdlIGdhcCB3ZSBpaXJjIGhhdmUgaW4gb3VyIGN1cnNvciB0ZXN0aW5n IGlzIHRoYXQgdGhlcmUncyBub3QKbXVjaCAoaWYgYW55PykgYWxwaGEgYmxlbmRpbmcgY292ZXJh Z2UuIFdlIGtpbmRhIG5lZWQgdGhhdCB0byBtYWtlIHN1cmUKdGhpcyBhbGwgd29ya3MgY29ycmVj dGx5LiBUaGUgdXN1YWwgdHJpY2sgaXMgdG8gb25seSBjaGVjayB0aGUgZXh0cmVtZQphbHBoYSB2 YWx1ZXMsIGkuZS4gZnVsbHkgb3BhcXVlIGFuZCBmdWxseSB0cmFuc3BhcmVudCwgc2luY2UgaW50 ZXJtZWRpYXRlCnZhbHVlcyBhcmUgYWZmZWN0ZWQgYnkgaHctc3BlY2lmaWMgcm91bmRpbmcgbW9k ZXMuCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgICB8IDE0OSArKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuaCAgIHwgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyB8ICAx MCArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMKPiBpbmRleCAzN2Q3MTdmMzhlM2MuLjQ4NTNh NzM5YWU1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYwo+IEBAIC0xLDM2ICsxLDEzNyBA QAo+ICAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICAjaW5jbHVkZSAidmtt c19kcnYuaCIKPiAgI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X2F0b21pYy5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gICNpbmNs dWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiAgCj4gLXN0YXRpYyB1aW50 MzJfdCBfdmttc19nZXRfY3JjKHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YSkKPiArLyoq Cj4gKyAqIGNvbXB1dGVfY3JjIC0gQ29tcHV0ZSBDUkMgdmFsdWUgb24gb3V0cHV0IGZyYW1lCj4g KyAqCj4gKyAqIEB2YWRkcl9vdXQ6IGFkZHJlc3MgdG8gZmluYWwgZnJhbWVidWZmZXIKPiArICog QGNyY19vdXQ6IGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiArICoKPiArICogcmV0dXJucyBDUkMg dmFsdWUgY29tcHV0ZWQgdXNpbmcgY3JjMzIgb24gdGhlIHZpc2libGUgcG9ydGlvbiBvZgo+ICsg KiB0aGUgZmluYWwgZnJhbWVidWZmZXIgYXQgdmFkZHJfb3V0Cj4gKyAqLwo+ICtzdGF0aWMgdWlu dDMyX3QgY29tcHV0ZV9jcmModm9pZCAqdmFkZHJfb3V0LCBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAq Y3JjX291dCkKPiAgewo+IC0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSAmY3JjX2RhdGEt PmZiOwo+ICsJaW50IGksIHNyY19vZmZzZXQ7Cj4gKwlpbnQgeF9zcmMgPSBjcmNfb3V0LT5zcmMu eDEgPj4gMTY7Cj4gKwlpbnQgeV9zcmMgPSBjcmNfb3V0LT5zcmMueTEgPj4gMTY7Cj4gKwlpbnQg aF9zcmMgPSBkcm1fcmVjdF9oZWlnaHQoJmNyY19vdXQtPnNyYykgPj4gMTY7Cj4gKwlpbnQgd19z cmMgPSBkcm1fcmVjdF93aWR0aCgmY3JjX291dC0+c3JjKSA+PiAxNjsKPiArCWludCBzaXplX2J5 dGUgPSB3X3NyYyAqIGNyY19vdXQtPmNwcDsKPiArCXUzMiBjcmMgPSAwOwo+ICsKPiArCWZvciAo aSA9IHlfc3JjOyBpIDwgeV9zcmMgKyBoX3NyYzsgaSsrKSB7Cj4gKwkJc3JjX29mZnNldCA9IGNy Y19vdXQtPm9mZnNldAo+ICsJCQkgICAgICsgKGkgKiBjcmNfb3V0LT5waXRjaCkKPiArCQkJICAg ICArICh4X3NyYyAqIGNyY19vdXQtPmNwcCk7Cj4gKwkJY3JjID0gY3JjMzJfbGUoY3JjLCB2YWRk cl9vdXQgKyBzcmNfb2Zmc2V0LCBzaXplX2J5dGUpOwo+ICsJfQo+ICsKPiArCXJldHVybiBjcmM7 Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBibGVuZCAtIGJlbG5kIHZhbHVlIGF0IHZhZGRyX3NyYyB3 aXRoIHZhbHVlIGF0IHZhZGRyX2RzdAo+ICsgKiBAdmFkZHJfZHN0OiBkZXN0aW5hdGlvbiBhZGRy ZXNzCj4gKyAqIEB2YWRkcl9zcmM6IHNvdXJjZSBhZGRyZXNzCj4gKyAqIEBjcmNfZHN0OiBkZXN0 aW5hdGlvbiBmcmFtZWJ1ZmZlcidzIG1ldGFkYXRhCj4gKyAqIEBjcmNfc3JjOiBzb3VyY2UgZnJh bWVidWZmZXIncyBtZXRhZGF0YQo+ICsgKgo+ICsgKiBCbGVuZCB2YWx1ZSBhdCB2YWRkcl9zcmMg d2l0aCB2YWx1ZSBhdCB2YWRkcl9kc3QuCj4gKyAqIEN1cnJlbnRseSwgdGhpcyBmdW5jdGlvbiB3 cml0ZSB2YWx1ZSBhdCB2YWRkcl9zcmMgb24gdmFsdWUKPiArICogYXQgdmFkZHJfZHN0IHVzaW5n IGJ1ZmZlcidzIG1ldGFkYXRhIHRvIGxvY2F0ZSB0aGUgbmV3IHZhbHVlcwo+ICsgKiBmcm9tIHZh ZGRyX3NyYyBhbmQgdGhlaXIgZGlzdGVuYXRpb24gYXQgdmFkZHJfZHN0Lgo+ICsgKgo+ICsgKiBU b2RvOiBVc2UgdGhlIGFscGhhIHZhbHVlIHRvIGJsZW5kIHZhZGRyX3NyYyB3aXRoIHZhZGRyX2Rz dAo+ICsgKgkgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyBpdC4KCkFub3RoZXIgdG9kbzogV2UgbXVz dCBjbGVhciB0aGUgYWxwaGEgY2hhbm5lbCBpbiB0aGUgcmVzdWx0IGFmdGVyCmJsZW5kaW5nLiBU aGlzIGFsc28gYXBwbGllcyB0byB0aGUgcHJpbWFyeSBwbGFuZSwgd2hlcmUgdGhlIFhSR0IgZm9y IHRoZQpwaXhlbCBmb3JtYXQgbWFuZGF0ZXMgdGhhdCB3ZSBlbnRpcmVseSBpZ25vcmUgdGhlIGFs cGhhIGNoYW5uZWwuCgpUaGlzIGlzIGFsc28gc29tZXRoaW5nIHdlIHNob3VsZCBwcm9iYWJseSBo YXZlIGFuIGlndCB0ZXN0Y2FzZSBmb3IuCgpTaW5jZSB0aGVyZSdzIGEgZmV3IG9wZW4gZW5kczog SG93IG1hbnkgd2Vla3MgYXJlIGxlZnQgaW4geW91ciBvdXRyZWFjaHkKaW50ZXJuc2hpcD8gV2Ug bmVlZCB0byBtYWtlIHN1cmUgdGhhdCBhdCBsZWFzdCBhbGwgdGhlIGlzc3VlcyBhcmUgY292ZXJl ZAppbiBhIHZrbXMgdG9kbyBmaWxlLiBXb3VsZCBiZSBncmVhdCB0byBhZGQgdGhhdCBpbgpEb2N1 bWVudGF0aW9uL2dwdS92a21zLnJzdCwgbGlrZSB3ZSBoYXZlIGZvciBvdGhlciBkcml2ZXJzLgot RGFuaWVsCgo+ICsgKi8KPiArc3RhdGljIHZvaWQgYmxlbmQodm9pZCAqdmFkZHJfZHN0LCB2b2lk ICp2YWRkcl9zcmMsCj4gKwkJICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX2RzdCwKPiArCQkg IHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfc3JjKQo+ICt7Cj4gKwlpbnQgaSwgaiwgal9kc3Qs IGlfZHN0Owo+ICsJaW50IG9mZnNldF9zcmMsIG9mZnNldF9kc3Q7Cj4gKwo+ICsJaW50IHhfc3Jj ID0gY3JjX3NyYy0+c3JjLngxID4+IDE2Owo+ICsJaW50IHlfc3JjID0gY3JjX3NyYy0+c3JjLnkx ID4+IDE2Owo+ICsKPiArCWludCB4X2RzdCA9IGNyY19zcmMtPmRzdC54MTsKPiArCWludCB5X2Rz dCA9IGNyY19zcmMtPmRzdC55MTsKPiArCWludCBoX2RzdCA9IGRybV9yZWN0X2hlaWdodCgmY3Jj X3NyYy0+ZHN0KTsKPiArCWludCB3X2RzdCA9IGRybV9yZWN0X3dpZHRoKCZjcmNfc3JjLT5kc3Qp Owo+ICsKPiArCWludCB5X2xpbWl0ID0geV9zcmMgKyBoX2RzdDsKPiArCWludCB4X2xpbWl0ID0g eF9zcmMgKyB3X2RzdDsKPiArCj4gKwlmb3IgKGkgPSB5X3NyYywgaV9kc3QgPSB5X2RzdDsgaSA8 IHlfbGltaXQ7ICsraSkgewo+ICsJCWZvciAoaiA9IHhfc3JjLCBqX2RzdCA9IHhfZHN0OyBqIDwg eF9saW1pdDsgKytqKSB7Cj4gKwkJCW9mZnNldF9kc3QgPSBjcmNfZHN0LT5vZmZzZXQKPiArCQkJ CSAgICAgKyAoaV9kc3QgKiBjcmNfZHN0LT5waXRjaCkKPiArCQkJCSAgICAgKyAoal9kc3QrKyAq IGNyY19kc3QtPmNwcCk7Cj4gKwkJCW9mZnNldF9zcmMgPSBjcmNfc3JjLT5vZmZzZXQKPiArCQkJ CSAgICAgKyAoaSAqIGNyY19zcmMtPnBpdGNoKQo+ICsJCQkJICAgICArIChqICogY3JjX3NyYy0+ Y3BwKTsKPiArCj4gKwkJCW1lbWNweSh2YWRkcl9kc3QgKyBvZmZzZXRfZHN0LAo+ICsJCQkgICAg ICAgdmFkZHJfc3JjICsgb2Zmc2V0X3NyYywgc2l6ZW9mKHUzMikpOwo+ICsJCX0KPiArCQlpX2Rz dCsrOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb21wb3NlX2N1cnNvcihzdHJ1Y3Qg dmttc19jcmNfZGF0YSAqY3Vyc29yX2NyYywKPiArCQkJICAgc3RydWN0IHZrbXNfY3JjX2RhdGEg KnByaW1hcnlfY3JjLCB2b2lkICp2YWRkcl9vdXQpCj4gK3sKPiArCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqY3Vyc29yX29iajsKPiArCXN0cnVjdCB2a21zX2dlbV9vYmplY3QgKmN1cnNvcl92a21z X29iajsKPiArCj4gKwljdXJzb3Jfb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKCZjdXJzb3JfY3Jj LT5mYiwgMCk7Cj4gKwljdXJzb3Jfdmttc19vYmogPSBkcm1fZ2VtX3RvX3ZrbXNfZ2VtKGN1cnNv cl9vYmopOwo+ICsKPiArCW11dGV4X2xvY2soJmN1cnNvcl92a21zX29iai0+cGFnZXNfbG9jayk7 Cj4gKwlpZiAoV0FSTl9PTighY3Vyc29yX3ZrbXNfb2JqLT52YWRkcikpCj4gKwkJZ290byBvdXQ7 Cj4gKwo+ICsJYmxlbmQodmFkZHJfb3V0LCBjdXJzb3Jfdmttc19vYmotPnZhZGRyLCBwcmltYXJ5 X2NyYywgY3Vyc29yX2NyYyk7Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91bmxvY2soJmN1cnNvcl92 a21zX29iai0+cGFnZXNfbG9jayk7Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50MzJfdCBfdmttc19n ZXRfY3JjKHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYywKPiArCQkJICAgICAgc3Ry dWN0IHZrbXNfY3JjX2RhdGEgKmN1cnNvcl9jcmMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gJnByaW1hcnlfY3JjLT5mYjsKPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAq Z2VtX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaihmYiwgMCk7Cj4gIAlzdHJ1Y3Qgdmttc19nZW1f b2JqZWN0ICp2a21zX29iaiA9IGRybV9nZW1fdG9fdmttc19nZW0oZ2VtX29iaik7Cj4gKwl2b2lk ICp2YWRkcl9vdXQgPSBremFsbG9jKHZrbXNfb2JqLT5nZW0uc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4g IAl1MzIgY3JjID0gMDsKPiAtCWludCBpID0gMDsKPiAtCXVuc2lnbmVkIGludCB4ID0gY3JjX2Rh dGEtPnNyYy54MSA+PiAxNjsKPiAtCXVuc2lnbmVkIGludCB5ID0gY3JjX2RhdGEtPnNyYy55MSA+ PiAxNjsKPiAtCXVuc2lnbmVkIGludCBoZWlnaHQgPSBkcm1fcmVjdF9oZWlnaHQoJmNyY19kYXRh LT5zcmMpID4+IDE2Owo+IC0JdW5zaWduZWQgaW50IHdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJmNy Y19kYXRhLT5zcmMpID4+IDE2Owo+IC0JdW5zaWduZWQgaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNw cFswXTsKPiAtCXVuc2lnbmVkIGludCBzcmNfb2Zmc2V0Owo+IC0JdW5zaWduZWQgaW50IHNpemVf Ynl0ZSA9IHdpZHRoICogY3BwOwo+IC0Jdm9pZCAqdmFkZHI7Cj4gIAo+IC0JbXV0ZXhfbG9jaygm dmttc19vYmotPnBhZ2VzX2xvY2spOwo+IC0JdmFkZHIgPSB2a21zX29iai0+dmFkZHI7Cj4gLQlp ZiAoV0FSTl9PTighdmFkZHIpKQo+IC0JCWdvdG8gb3V0Owo+ICsJaWYgKCF2YWRkcl9vdXQpIHsK PiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG91dHB1dCBmcmFt ZS4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiAgCj4gLQlmb3IgKGkgPSB5OyBpIDwgeSArIGhl aWdodDsgaSsrKSB7Cj4gLQkJc3JjX29mZnNldCA9IGZiLT5vZmZzZXRzWzBdICsgKGkgKiBmYi0+ cGl0Y2hlc1swXSkgKyAoeCAqIGNwcCk7Cj4gLQkJY3JjID0gY3JjMzJfbGUoY3JjLCB2YWRkciAr IHNyY19vZmZzZXQsIHNpemVfYnl0ZSk7Cj4gKwltdXRleF9sb2NrKCZ2a21zX29iai0+cGFnZXNf bG9jayk7Cj4gKwlpZiAoV0FSTl9PTighdmttc19vYmotPnZhZGRyKSkgewo+ICsJCW11dGV4X2xv Y2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiArCQlyZXR1cm4gY3JjOwo+ICAJfQo+ICAKPiAt b3V0Ogo+ICsJbWVtY3B5KHZhZGRyX291dCwgdmttc19vYmotPnZhZGRyLCB2a21zX29iai0+Z2Vt LnNpemUpOwo+ICAJbXV0ZXhfdW5sb2NrKCZ2a21zX29iai0+cGFnZXNfbG9jayk7Cj4gKwo+ICsJ aWYgKGN1cnNvcl9jcmMpCj4gKwkJY29tcG9zZV9jdXJzb3IoY3Vyc29yX2NyYywgcHJpbWFyeV9j cmMsIHZhZGRyX291dCk7Cj4gKwo+ICsJY3JjID0gY29tcHV0ZV9jcmModmFkZHJfb3V0LCBwcmlt YXJ5X2NyYyk7Cj4gKwo+ICsJa2ZyZWUodmFkZHJfb3V0KTsKPiArCj4gIAlyZXR1cm4gY3JjOwo+ ICB9Cj4gIAo+IEBAIC00NCw4ICsxNDUsOCBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCXN0cnVjdCB2a21zX2RldmljZSAqdmRldiA9IGNv bnRhaW5lcl9vZihvdXQsIHN0cnVjdCB2a21zX2RldmljZSwKPiAgCQkJCQkJb3V0cHV0KTsKPiAg CXN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYyA9IE5VTEw7Cj4gKwlzdHJ1Y3Qgdmtt c19jcmNfZGF0YSAqY3Vyc29yX2NyYyA9IE5VTEw7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZTsKPiAtCj4gIAl1MzIgY3JjMzIgPSAwOwo+ICAKPiAgCWRybV9mb3JfZWFjaF9wbGFuZShwbGFu ZSwgJnZkZXYtPmRybSkgewo+IEBAIC01OCwxNCArMTU5LDE0IEBAIHZvaWQgdmttc19jcmNfd29y a19oYW5kbGUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJCWlmIChkcm1fZnJhbWVidWZm ZXJfcmVhZF9yZWZjb3VudCgmY3JjX2RhdGEtPmZiKSA9PSAwKQo+ICAJCQljb250aW51ZTsKPiAg Cj4gLQkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsKPiArCQlp ZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiAgCQkJcHJpbWFyeV9j cmMgPSBjcmNfZGF0YTsKPiAtCQkJYnJlYWs7Cj4gLQkJfQo+ICsJCWVsc2UKPiArCQkJY3Vyc29y X2NyYyA9IGNyY19kYXRhOwo+ICAJfQo+ICAKPiAgCWlmIChwcmltYXJ5X2NyYykKPiAtCQljcmMz MiA9IF92a21zX2dldF9jcmMocHJpbWFyeV9jcmMpOwo+ICsJCWNyYzMyID0gX3ZrbXNfZ2V0X2Ny YyhwcmltYXJ5X2NyYywgY3Vyc29yX2NyYyk7Cj4gIAo+ICAJZHJtX2NydGNfYWRkX2NyY19lbnRy eShjcnRjLCB0cnVlLCBjcnRjX3N0YXRlLT5uX2ZyYW1lLCAmY3JjMzIpOwo+ICB9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX2Rydi5oCj4gaW5kZXggMzZlNTI0Zjc5MWZlLi4xNzM4NzVkYzM2MWUgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiBAQCAtMjUsOCArMjUsMTEgQEAgc3RhdGljIGNvbnN0 IHUzMiB2a21zX2N1cnNvcl9mb3JtYXRzW10gPSB7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3Qgdmttc19j cmNfZGF0YSB7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3Qgc3JjOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciBmYjsKPiArCXN0cnVjdCBkcm1fcmVjdCBzcmMsIGRzdDsKPiArCXVuc2lnbmVkIGludCBv ZmZzZXQ7Cj4gKwl1bnNpZ25lZCBpbnQgcGl0Y2g7Cj4gKwl1bnNpZ25lZCBpbnQgY3BwOwo+ICB9 Owo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxh bmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+IGluZGV4IDQyODI0N2Q0 MDNkYy4uNzA0MTAwNzM5NmFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+IEBA IC04NSwxNiArODUsMjIgQEAgc3RhdGljIHZvaWQgdmttc19wbGFuZV9hdG9taWNfdXBkYXRlKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpvbGRfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2a21zX3BsYW5l X3N0YXRlOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZS0+c3RhdGUtPmZi Owo+ICAJc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOwo+ICAKPiAtCWlmICghcGxhbmUt PnN0YXRlLT5jcnRjIHx8ICFwbGFuZS0+c3RhdGUtPmZiKQo+ICsJaWYgKCFwbGFuZS0+c3RhdGUt PmNydGMgfHwgIWZiKQo+ICAJCXJldHVybjsKPiAgCj4gIAl2a21zX3BsYW5lX3N0YXRlID0gdG9f dmttc19wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ICsKPiAgCWNyY19kYXRhID0gdmttc19w bGFuZV9zdGF0ZS0+Y3JjX2RhdGE7Cj4gIAltZW1jcHkoJmNyY19kYXRhLT5zcmMsICZwbGFuZS0+ c3RhdGUtPnNyYywgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwo+IC0JbWVtY3B5KCZjcmNfZGF0 YS0+ZmIsIHBsYW5lLT5zdGF0ZS0+ZmIsIHNpemVvZihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyKSk7 Cj4gKwltZW1jcHkoJmNyY19kYXRhLT5kc3QsICZwbGFuZS0+c3RhdGUtPmRzdCwgc2l6ZW9mKHN0 cnVjdCBkcm1fcmVjdCkpOwo+ICsJbWVtY3B5KCZjcmNfZGF0YS0+ZmIsIGZiLCBzaXplb2Yoc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+ICAJZHJtX2ZyYW1lYnVmZmVyX2dldCgmY3JjX2RhdGEt PmZiKTsKPiArCWNyY19kYXRhLT5vZmZzZXQgPSBmYi0+b2Zmc2V0c1swXTsKPiArCWNyY19kYXRh LT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOwo+ICsJY3JjX2RhdGEtPmNwcCA9IGZiLT5mb3JtYXQt PmNwcFswXTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCB2a21zX3BsYW5lX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAtLSAKPiAyLjE3LjEKPiAKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK