From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 2/2] drm/vkms: Implement CRC debugfs API Date: Tue, 31 Jul 2018 14:01:27 -0400 Message-ID: <20180731180127.GH20303@art_vandelay> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yb0-x229.google.com (mail-yb0-x229.google.com [IPv6:2607:f8b0:4002:c09::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9019B89EB7 for ; Tue, 31 Jul 2018 18:01:30 +0000 (UTC) Received: by mail-yb0-x229.google.com with SMTP id c3-v6so6481641ybi.13 for ; Tue, 31 Jul 2018 11:01:30 -0700 (PDT) Content-Disposition: inline In-Reply-To: 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 T24gU2F0LCBKdWwgMjgsIDIwMTggYXQgMTI6MTE6NTNQTSArMDMwMCwgSGFuZWVuIE1vaGFtbWVk IHdyb3RlOgo+IFRoaXMgcGF0Y2ggaW1wbGVtZW50IHRoZSBuZWNlc3NhcnkgZnVuY3Rpb25zIHRv IGNvbXB1dGUgYW5kIGFkZCBDUkNzCj4gZW50cmllczoKPiAKPiAtIEltcGxlbWVudCB0aGUgc2V0 X2NyY19zb3VyY2UoKSBjYWxsYmFjay4KPiAtIENvbXB1dGUgQ1JDIHVzaW5nIGNyYzMyIG9uIHRo ZSB2aXNpYmxlIHBhcnQgb2YgdGhlIGZyYW1lYnVmZmVyLgo+IC0gVXNlIG9yZGVyZWQgd29ya3F1 ZXVlIHBlciBvdXRwdXQgdG8gY29tcHV0ZSBhbmQgYWRkIENSQyBhdCB0aGUgZW5kCj4gICBvZiBh IHZibGFuay4KPiAtIFVzZSBhcHByb3ByaWF0ZSBzeW5jaHJvbml6YXRpb24gbWV0aG9kcyBzaW5j ZSB0aGUgQ1JDIGNvbXB1dGF0aW9uIG11c3QKPiAgIGJlIGF0b21pYyB3cnQgdGhlIGdlbmVyYXRl ZCB2YmxhbmsgZXZlbnQgZm9yIGEgZ2l2ZW4gYXRvbWljIHVwZGF0ZSwgYnkKPiAgIHVzaW5nIHNw aW5sb2NrIGFjcm9zcyBhdG9taWNfYmVnaW4vYXRvbWljX2ZsdXNoIHRvIHdyYXAgdGhlIGV2ZW50 Cj4gICBoYW5kbGluZyBjb2RlIGNvbXBsZXRlbHkgYW5kIG1hdGNoIHRoZSBmbGlwIGV2ZW50IHdp dGggdGhlIENSQy4KPiAKPiBTaW5jZSB2a21zX2NyY193b3JrX2hhbmRsZSgpIGNhbiBzbGVlcCwg c3BpbmxvY2sgY2FuJ3QgYmUgYWNxdWlyZWQKPiB3aGlsZSBhY2Nlc3Npbmcgdmttc19vdXRwdXQt PnByaW1hcnlfY3JjIHRvIGNvbXB1dGUgQ1JDLgo+IFRvIG1ha2Ugc3VyZSB0aGUgZGF0YSBpcyB1 cGRhdGVkIGFuZCByZWxlYXNlZCB3aXRob3V0IGNvbmZsaWN0IHdpdGgKPiB0aGUgdmttc19jcmNf d29ya19oYW5kbGUoKSwgdGhlIHdvcmtfc3RydWN0IGlzIGZsdXNoZWQgQGNydGNfZGVzdHJveQo+ IGFuZCB0aGUgZGF0YSBpcyB1cGRhdGVkIGJlZm9yZSBzY2hlZHVsaW5nIHRoZSB3b3JrIGhhbmRs ZSBhZ2FpbiwgYXMKPiBmb2xsb3c6Cj4gCj4gKiBDUkMgZGF0YSB1cGRhdGU6Cj4gMS0gc3RvcmUg dmttc19jcmNfZGF0YSB7ZmIsIHNyY30gcGVyIHBsYW5lX3N0YXRlCj4gMi0gQHBsYW5lX2R1cGxp Y2F0ZV9zdGF0ZSAtPiBhbGxvY2F0ZSB2a21zX2NyY19kYXRhCj4gMy0gZHVyaW5nIGF0b21pYyBj b21taXQgKEBhdG9taWNfdXBkYXRlKSAtPgo+IAlhKSBjb3B5IHtmYiwgc3JjfSB0byBwbGFuZV9z dGF0ZS0+Y3JjX2RhdGEKPiAJYikgZ2V0IHJlZmVyZW5jZSB0byBmYiwKPiAzLSBAcGxhbmVfZGVz dHJveV9zdGF0ZSAtPiBhKSBpZiAoZmIgcmVmY291bnQpIHJlbW92ZSByZWZlcmVuY2UgdG8gZmIK PiAJCQkgICBiKSBkZWFsbG9jYXRlIGNyY19kYXRhCj4gCj4gKiBBdG9taWMgQ29tbWl0Ogo+IDEt IHZrbXNfcGxhbmVfYXRvbWljX2NoZWNrCj4gMi0gdmttc19wcmVwYXJlX2ZiIC0+IHZtYXAgdmtt c19nZW1fb2JqLT52YWRkcgo+IDMtIGF0b21pY19iZWdpbiAtPiBob2xkIGNyYyBzcGlubG9jawo+ IDQtIGF0b21pY19wbGFuZV91cGRhdGUgLT4gYSkgdXBkYXRlIHZrbXNfb3V0cHV0LT5wcmltYXJ5 X2NyYwo+IAkJCSAgYikgZ2V0IHJlZmVyZW5jZSB0byBmYgo+IDUtIGF0b21pY19mbHVzaCAtPiBh KSBzZW5kIHZibGFuayBldmVudCB3aGlsZSBob2xkaW5nIGV2ZW50X2xvY2sKPiAJCSAgIGIpIHJl bGVhc2UgY3JjIHNwaW5sb2NrCj4gCj4gKiBocnRpbWVyIHJlZ3VsYXIgY2FsbGJhY2s6Cj4gMS0g aG9sZCBjcmMgc3BpbmxvY2sKPiAyLSBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCkKPiAzLSBxdWV1 ZSB2a21zX2NyY193b3JrX2hhbmRsZQo+IDQtIHJlbGVhc2UgY3JjIHNwaW5sb2NrCj4gCj4gKiBj bGVhbnVwOgo+IDEtIEBjbGVhbnVwX2ZiIC0+dnVubWFwIHZrbXNfZ2VtX29iai0+dmFkZHIKPiAy LSBAY3J0Y19kZXN0cm95IC0+IGZsdXNoIHdvcmsgc3RydWN0Cj4gMy0gQHBsYW5lX2Rlc3Ryb3kg LT4gYSkgaWYgKGZiIHJlZmNvdW50KSByZW1vdmUgcmVmZXJlbmNlIHRvIGZiCj4gCQkgICAgIGIp IGRlYWxsb2NhdGUgY3JjX2RhdGEKPiAKPiBTaWduZWQtb2ZmLWJ5OiBIYW5lZW4gTW9oYW1tZWQg PGhhbW9oYW1tZWQuc2FAZ21haWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy9N YWtlZmlsZSAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jICAg fCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY3J0Yy5jICB8IDU2ICsrKysrKysrKysrKysrKysrKystLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmMgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaCAgIHwgMjIgKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf cGxhbmUuYyB8IDQ0ICsrKysrKysrKysrKysrKysrKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDE5MSBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmttcy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gaW5kZXgg OTg2Mjk3ZGE1MWJmLi4zNzk2NjkxNGY3MGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3ZrbXMvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+IEBA IC0xLDMgKzEsMyBAQAo+IC12a21zLXkgOj0gdmttc19kcnYubyB2a21zX3BsYW5lLm8gdmttc19v dXRwdXQubyB2a21zX2NydGMubyB2a21zX2dlbS5vCj4gK3ZrbXMteSA6PSB2a21zX2Rydi5vIHZr bXNfcGxhbmUubyB2a21zX291dHB1dC5vIHZrbXNfY3J0Yy5vIHZrbXNfZ2VtLm8gdmttc19jcmMu bwo+ICAKPiAgb2JqLSQoQ09ORklHX0RSTV9WS01TKSArPSB2a21zLm8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfY3JjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDRm OTRhYzkzMmE3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfY3JjLmMKPiBAQCAtMCwwICsxLDc1IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCj4gKyNpbmNsdWRlICJ2a21zX2Rydi5oIgo+ICsjaW5jbHVkZSA8bGludXgvY3Jj MzIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ICsK PiArc3RhdGljIHVpbnQzMl90IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNy Y19kYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZjcmNfZGF0YS0+ ZmI7Cj4gKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmogPSBkcm1fZ2VtX2ZiX2dldF9v YmooZmIsIDApOwo+ICsJc3RydWN0IHZrbXNfZ2VtX29iamVjdCAqdmttc19vYmogPSBkcm1fZ2Vt X3RvX3ZrbXNfZ2VtKGdlbV9vYmopOwo+ICsJdTMyIGNyYyA9IDA7Cj4gKwlpbnQgaSA9IDA7Cj4g Kwl1bnNpZ25lZCBpbnQgeCA9IGNyY19kYXRhLT5zcmMueDEgPj4gMTY7Cj4gKwl1bnNpZ25lZCBp bnQgeSA9IGNyY19kYXRhLT5zcmMueTEgPj4gMTY7Cj4gKwl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0g ZHJtX3JlY3RfaGVpZ2h0KCZjcmNfZGF0YS0+c3JjKSA+PiAxNjsKPiArCXVuc2lnbmVkIGludCB3 aWR0aCA9IGRybV9yZWN0X3dpZHRoKCZjcmNfZGF0YS0+c3JjKSA+PiAxNjsKPiArCXVuc2lnbmVk IGludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07Cj4gKwl1bnNpZ25lZCBpbnQgc3JjX29mZnNl dDsKPiArCXVuc2lnbmVkIGludCBzaXplX2J5dGUgPSB3aWR0aCAqIGNwcDsKPiArCXZvaWQgKnZh ZGRyOwo+ICsKPiArCW11dGV4X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiArCXZhZGRy ID0gdmttc19vYmotPnZhZGRyOwo+ICsJaWYgKFdBUk5fT04oIXZhZGRyKSkKPiArCQlyZXR1cm4g Y3JjOwo+ICsKPiArCWZvciAoaSA9IHk7IGkgPCB5ICsgaGVpZ2h0OyBpKyspIHsKPiArCQlzcmNf b2Zmc2V0ID0gZmItPm9mZnNldHNbMF0gKyAoaSAqIGZiLT5waXRjaGVzWzBdKSArICh4ICogY3Bw KTsKPiArCQljcmMgPSBjcmMzMl9sZShjcmMsIHZhZGRyICsgc3JjX29mZnNldCwgc2l6ZV9ieXRl KTsKPiArCX0KPiArCW11dGV4X3VubG9jaygmdmttc19vYmotPnBhZ2VzX2xvY2spOwo+ICsKPiAr CXJldHVybiBjcmM7Cj4gK30KPiArCj4gK3ZvaWQgdmttc19jcmNfd29ya19oYW5kbGUoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjcnRj X3N0YXRlID0gY29udGFpbmVyX29mKHdvcmssCj4gKwkJCQkJCXN0cnVjdCB2a21zX2NydGNfc3Rh dGUsCj4gKwkJCQkJCWNyY193b3JrKTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNf c3RhdGUtPmJhc2UuY3J0YzsKPiArCXN0cnVjdCB2a21zX291dHB1dCAqb3V0ID0gZHJtX2NydGNf dG9fdmttc19vdXRwdXQoY3J0Yyk7Cj4gKwo+ICsJaWYgKGNydGNfc3RhdGUgJiYgb3V0LT5jcmNf ZW5hYmxlZCkgewo+ICsJCXVuc2lnbmVkIGludCBuX2ZyYW1lID0gY3J0Y19zdGF0ZS0+bl9mcmFt ZTsKPiArCQl1MzIgY3JjMzIgPSAwOwo+ICsKPiArCQlpZiAob3V0LT5wcmltYXJ5X2NyYykKPiAr CQkJY3JjMzIgPSBfdmttc19nZXRfY3JjKG91dC0+cHJpbWFyeV9jcmMpOwo+ICsKPiArCQlkcm1f Y3J0Y19hZGRfY3JjX2VudHJ5KGNydGMsIHRydWUsIG5fZnJhbWUsICZjcmMzMik7Cj4gKwl9Cj4g K30KPiArCj4gK2ludCB2a21zX3NldF9jcmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg Y29uc3QgY2hhciAqc3JjX25hbWUsCj4gKwkJCXNpemVfdCAqdmFsdWVzX2NudCkKPiArewo+ICsJ c3RydWN0IHZrbXNfb3V0cHV0ICpvdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRjKTsK PiArCWJvb2wgZW5hYmxlZCA9IGZhbHNlOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCWlu dCByZXQgPSAwOwo+ICsKPiArCWlmIChzcmNfbmFtZSAmJiBzdHJjbXAoc3JjX25hbWUsICJhdXRv IikgPT0gMCkKPiArCQllbmFibGVkID0gdHJ1ZTsKPiArCWVsc2UgaWYgKHNyY19uYW1lKQo+ICsJ CXJldCA9IC1FSU5WQUw7Cj4gKwo+ICsJKnZhbHVlc19jbnQgPSAxOwo+ICsKPiArCXNwaW5fbG9j a19pcnFzYXZlKCZvdXQtPmxvY2ssIGZsYWdzKTsKPiArCW91dC0+Y3JjX2VuYWJsZWQgPSBlbmFi bGVkOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3V0LT5sb2NrLCBmbGFncyk7Cj4gKwo+ ICsJcmV0dXJuIHJldDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gaW5kZXggMjZi YWJiODVjYTc3Li5hNmMwODBkN2Y3YWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ IEBAIC0xMCwxOCArMTAsMzMgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5o Pgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ICAKPiAtc3RhdGljIGVudW0g aHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVjdCBocnRpbWVyICp0aW1l cikKPiArc3RhdGljIHZvaWQgX3ZibGFua19oYW5kbGUoc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRw dXQpCj4gIHsKPiAtCXN0cnVjdCB2a21zX291dHB1dCAqb3V0cHV0ID0gY29udGFpbmVyX29mKHRp bWVyLCBzdHJ1Y3Qgdmttc19vdXRwdXQsCj4gLQkJCQkJCSAgdmJsYW5rX2hydGltZXIpOwo+ICAJ c3RydWN0IGRybV9jcnRjICpjcnRjID0gJm91dHB1dC0+Y3J0YzsKPiAtCWludCByZXRfb3ZlcnJ1 bjsKPiArCXN0cnVjdCB2a21zX2NydGNfc3RhdGUgKnN0YXRlID0gdG9fdmttc19jcnRjX3N0YXRl KGNydGMtPnN0YXRlKTsKPiAgCWJvb2wgcmV0Owo+ICAKPiArCXNwaW5fbG9jaygmb3V0cHV0LT5s b2NrKTsKPiAgCXJldCA9IGRybV9jcnRjX2hhbmRsZV92YmxhbmsoY3J0Yyk7Cj4gIAlpZiAoIXJl dCkKPiAgCQlEUk1fRVJST1IoInZrbXMgZmFpbHVyZSBvbiBoYW5kbGluZyB2YmxhbmsiKTsKPiAg Cj4gKwlpZiAoc3RhdGUgJiYgb3V0cHV0LT5jcmNfZW5hYmxlZCkgewo+ICsJCXN0YXRlLT5uX2Zy YW1lID0gZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KGNydGMpOwo+ICsJCXF1ZXVlX3dv cmsob3V0cHV0LT5jcmNfd29ya3EsICZzdGF0ZS0+Y3JjX3dvcmspOwo+ICsJfQo+ICsKPiArCXNw aW5fdW5sb2NrKCZvdXRwdXQtPmxvY2spOwo+ICt9Cj4gKwo+ICtzdGF0aWMgZW51bSBocnRpbWVy X3Jlc3RhcnQgdmttc192Ymxhbmtfc2ltdWxhdGUoc3RydWN0IGhydGltZXIgKnRpbWVyKQo+ICt7 Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9IGNvbnRhaW5lcl9vZih0aW1lciwgc3Ry dWN0IHZrbXNfb3V0cHV0LAo+ICsJCQkJCQkgIHZibGFua19ocnRpbWVyKTsKPiArCWludCByZXRf b3ZlcnJ1bjsKPiArCj4gKwlfdmJsYW5rX2hhbmRsZShvdXRwdXQpOwo+ICsKPiAgCXJldF9vdmVy cnVuID0gaHJ0aW1lcl9mb3J3YXJkX25vdygmb3V0cHV0LT52YmxhbmtfaHJ0aW1lciwKPiAgCQkJ CQkgIG91dHB1dC0+cGVyaW9kX25zKTsKPiAgCj4gQEAgLTk3LDE4ICsxMTIsMjIgQEAgdmttc19h dG9taWNfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAg CV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJnZrbXNfc3Rh dGUtPmJhc2UpOwo+ICAKPiArCUlOSVRfV09SSygmdmttc19zdGF0ZS0+Y3JjX3dvcmssIHZrbXNf Y3JjX3dvcmtfaGFuZGxlKTsKPiArCj4gIAlyZXR1cm4gJnZrbXNfc3RhdGUtPmJhc2U7Cj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkIHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gIAkJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkK PiAgewo+IC0Jc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAqdmttc19zdGF0ZTsKPiAtCj4gLQl2a21z X3N0YXRlID0gdG9fdmttc19jcnRjX3N0YXRlKHN0YXRlKTsKPiArCXN0cnVjdCB2a21zX2NydGNf c3RhdGUgKnZrbXNfc3RhdGUgPSB0b192a21zX2NydGNfc3RhdGUoc3RhdGUpOwo+ICAKPiAgCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0YXRlKTsKPiAtCWtmcmVlKHZr bXNfc3RhdGUpOwo+ICsKPiArCWlmICh2a21zX3N0YXRlKSB7Cj4gKwkJZmx1c2hfd29yaygmdmtt c19zdGF0ZS0+Y3JjX3dvcmspOwo+ICsJCWtmcmVlKHZrbXNfc3RhdGUpOwo+ICsJfQo+ICB9Cj4g IAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9 IHsKPiBAQCAtMTIwLDYgKzEzOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVu Y3Mgdmttc19jcnRjX2Z1bmNzID0gewo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlICAgPSB2a21z X2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUsCj4gIAkuZW5hYmxlX3ZibGFuawkJPSB2a21zX2Vu YWJsZV92YmxhbmssCj4gIAkuZGlzYWJsZV92YmxhbmsJCT0gdmttc19kaXNhYmxlX3ZibGFuaywK PiArCS5zZXRfY3JjX3NvdXJjZQkJPSB2a21zX3NldF9jcmNfc291cmNlLAo+ICB9Owo+ICAKPiAg c3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+IEBAIC0xMzQsOSArMTU0LDIxIEBAIHN0YXRpYyB2b2lkIHZrbXNfY3J0Y19hdG9taWNfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMp Owo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiArCQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNf c3RhdGUpCj4gK3sKPiArCXN0cnVjdCB2a21zX291dHB1dCAqdmttc19vdXRwdXQgPSBkcm1fY3J0 Y190b192a21zX291dHB1dChjcnRjKTsKPiArCj4gKwkvKiBUaGlzIGxvY2sgaXMgaGVsZCBhY3Jv c3MgdGhlIGF0b21pYyBjb21taXQgdG8gYmxvY2sgdmJsYW1rIHRpbWVyCj4gKwkgKiBmcm9tIHNj aGVkdWxpbmcgdmttc19jcmNfd29ya19oYW5kbGUgdW50aWwgdGhlIGNyY19kYXRhIGlzIHVwZGF0 ZWQKPiArCSAqLwo+ICsJc3Bpbl9sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgCQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4g IHsKPiArCXN0cnVjdCB2a21zX291dHB1dCAqdmttc19vdXRwdXQgPSBkcm1fY3J0Y190b192a21z X291dHB1dChjcnRjKTsKPiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+ICAJaWYgKGNydGMt PnN0YXRlLT5ldmVudCkgewo+IEBAIC0xNTEsOSArMTgzLDEyIEBAIHN0YXRpYyB2b2lkIHZrbXNf Y3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAKPiAgCQljcnRjLT5z dGF0ZS0+ZXZlbnQgPSBOVUxMOwo+ICAJfQo+ICsKPiArCXNwaW5fdW5sb2NrX2lycSgmdmttc19v dXRwdXQtPmxvY2spOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hl bHBlcl9mdW5jcyB2a21zX2NydGNfaGVscGVyX2Z1bmNzID0gewo+ICsJLmF0b21pY19iZWdpbgk9 IHZrbXNfY3J0Y19hdG9taWNfYmVnaW4sCj4gIAkuYXRvbWljX2ZsdXNoCT0gdmttc19jcnRjX2F0 b21pY19mbHVzaCwKPiAgCS5hdG9taWNfZW5hYmxlCT0gdmttc19jcnRjX2F0b21pY19lbmFibGUs Cj4gIAkuYXRvbWljX2Rpc2FibGUJPSB2a21zX2NydGNfYXRvbWljX2Rpc2FibGUsCj4gQEAgLTE2 Miw2ICsxOTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2 a21zX2NydGNfaGVscGVyX2Z1bmNzID0gewo+ICBpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCSAgIHN0cnVjdCBkcm1f cGxhbmUgKnByaW1hcnksIHN0cnVjdCBkcm1fcGxhbmUgKmN1cnNvcikKPiAgewo+ICsJc3RydWN0 IHZrbXNfb3V0cHV0ICp2a21zX291dCA9IGRybV9jcnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ ICAJaW50IHJldDsKPiAgCj4gIAlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwg Y3J0YywgcHJpbWFyeSwgY3Vyc29yLAo+IEBAIC0xNzMsNSArMjA5LDkgQEAgaW50IHZrbXNfY3J0 Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg Cj4gIAlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2a21zX2NydGNfaGVscGVyX2Z1bmNzKTsK PiAgCj4gKwlzcGluX2xvY2tfaW5pdCgmdmttc19vdXQtPmxvY2spOwo+ICsKPiArCXZrbXNfb3V0 LT5jcmNfd29ya3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgidmttc19jcmNfd29ya3EiLCAw KTsKPiArCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92a21zL3ZrbXNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gaW5k ZXggMzdhYTJlZjMzYjIxLi41ZDc4YmQ5N2U2OWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmMKPiBAQCAtNDYsNiArNDYsNyBAQCBzdGF0aWMgdm9pZCB2a21zX3JlbGVhc2Uoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHZrbXMtPnBsYXRm b3JtKTsKPiAgCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCZ2a21zLT5kcm0pOwo+ICAJZHJtX2Rl dl9maW5pKCZ2a21zLT5kcm0pOwo+ICsJZGVzdHJveV93b3JrcXVldWUodmttcy0+b3V0cHV0LmNy Y193b3JrcSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2a21zX2RyaXZl ciA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiBpbmRleCBhYTI2MzJmZjVmMDYuLjllYjJk OGViMTcyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+IEBAIC0yMCwxOSArMjAsMzAg QEAgc3RhdGljIGNvbnN0IHUzMiB2a21zX2Zvcm1hdHNbXSA9IHsKPiAgCURSTV9GT1JNQVRfWFJH Qjg4ODgsCj4gIH07Cj4gIAo+ICtzdHJ1Y3Qgdmttc19jcmNfZGF0YSB7Cj4gKwlzdHJ1Y3QgZHJt X3JlY3Qgc3JjOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBmYjsKPiArfTsKPiArCj4gIC8q IHZrbXNfcGxhbmVfc3RhdGUgLSBEcml2ZXIgc3BlY2lmaWMgcGxhbmUgc3RhdGUKPiAgICogQGJh c2U6IGJhc2UgcGxhbmUgc3RhdGUKPiArICogQGNyY19kYXRhOiBkYXRhIHJlcXVpcmVkIGZvciBD UkMgY29tcHV0YXRpb24KPiAgICovCj4gIHN0cnVjdCB2a21zX3BsYW5lX3N0YXRlIHsKPiAgCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgYmFzZTsKPiArCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNf ZGF0YTsKPiAgfTsKPiAgCj4gIC8qKgo+ICAgKiB2a21zX2NydGNfc3RhdGUgLSBEcml2ZXIgc3Bl Y2lmaWMgQ1JUQyBzdGF0ZQo+ICAgKiBAYmFzZTogYmFzZSBDUlRDIHN0YXRlCj4gKyAqIEBjcmNf d29yazogd29yayBzdHJ1Y3QgdG8gY29tcHV0ZSBhbmQgYWRkIENSQyBlbnRyaWVzCj4gKyAqIEBu X2ZyYW1lOiBmcmFtZSBudW1iZXIgZm9yIGNvbXB1dGVkIENSQwo+ICAgKi8KPiAgc3RydWN0IHZr bXNfY3J0Y19zdGF0ZSB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKPiArCXN0cnVj dCB3b3JrX3N0cnVjdCBjcmNfd29yazsKPiArCXVuc2lnbmVkIGludCBuX2ZyYW1lOwo+ICB9Owo+ ICAKPiAgc3RydWN0IHZrbXNfb3V0cHV0IHsKPiBAQCAtNDIsNiArNTMsMTIgQEAgc3RydWN0IHZr bXNfb3V0cHV0IHsKPiAgCXN0cnVjdCBocnRpbWVyIHZibGFua19ocnRpbWVyOwo+ICAJa3RpbWVf dCBwZXJpb2RfbnM7Cj4gIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsK PiArCWJvb2wgY3JjX2VuYWJsZWQ7Cj4gKwkvKiBvcmRlcmVkIHdxIGZvciBjcmNfd29yayAqLwo+ ICsJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNyY193b3JrcTsKPiArCXN0cnVjdCB2a21zX2Ny Y19kYXRhICpwcmltYXJ5X2NyYzsKCkl0IGRvZXNuJ3Qgc2VlbSBsaWtlIHdlIG5lZWQgdGhpcy4g Q2FuJ3Qgd2UganVzdCBhY2Nlc3MgY3JjX2RhdGEgZnJvbSB0aGUKcGxhbmVfc3RhdGUgb2YgdGhl IHByaW1hcnkgcGxhbmU/IFRoaXMgd2lsbCBiZSBjbG9zZXIgdG8gdGhlIGZpbmFsIHNvbHV0aW9u CndoZXJlIHdlIGV2ZW50dWFsbHkgbmVlZCB0byBwcm92aWRlIGNyYyBkYXRhIGZvciBhbGwgcGxh bmVzLgoKU2VhbgoKCj4gKwkvKiBwcm90ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBjcmNfZGF0 YSAqLwo+ICsJc3BpbmxvY2tfdCBsb2NrOwo+ICB9Owo+ICAKPiAgc3RydWN0IHZrbXNfZGV2aWNl IHsKPiBAQCAtMTA1LDQgKzEyMiw5IEBAIGludCB2a21zX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKTsKPiAgCj4gIHZvaWQgdmttc19nZW1fdnVubWFwKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKTsKPiAgCj4gKy8qIENSQyBTdXBwb3J0ICovCj4gK2ludCB2a21zX3NldF9j cmNfc291cmNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc3JjX25hbWUsCj4g KwkJCXNpemVfdCAqdmFsdWVzX2NudCk7Cj4gK3ZvaWQgdmttc19jcmNfd29ya19oYW5kbGUoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKPiArCj4gICNlbmRpZiAvKiBfVktNU19EUlZfSF8gKi8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCj4gaW5kZXggNzBmY2EyMmJjNTFiLi5jMmU3ODNj NmU2MjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jCj4gQEAgLTE2LDExICsxNiwx OCBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqCj4gIHZrbXNfcGxhbmVfZHVwbGlj YXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICB7Cj4gIAlzdHJ1Y3Qgdmttc19w bGFuZV9zdGF0ZSAqdmttc19zdGF0ZTsKPiArCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0 YTsKPiAgCj4gIAl2a21zX3N0YXRlID0ga3phbGxvYyhzaXplb2YoKnZrbXNfc3RhdGUpLCBHRlBf S0VSTkVMKTsKPiAgCWlmICghdmttc19zdGF0ZSkKPiAgCQlyZXR1cm4gTlVMTDsKPiAgCj4gKwlj cmNfZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpjcmNfZGF0YSksIEdGUF9LRVJORUwpOwo+ICsJaWYg KFdBUk5fT04oIWNyY19kYXRhKSkKPiArCQlEUk1fSU5GTygiQ291bGRuJ3QgYWxsb2NhdGUgY3Jj X2RhdGEiKTsKPiArCj4gKwl2a21zX3N0YXRlLT5jcmNfZGF0YSA9IGNyY19kYXRhOwo+ICsKPiAg CV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lLAo+ICAJCQkJ CQkgICZ2a21zX3N0YXRlLT5iYXNlKTsKPiAgCj4gQEAgLTMxLDYgKzM4LDI3IEBAIHN0YXRpYyB2 b2lkIHZrbXNfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg CQkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1 Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmttc19zdGF0ZSA9IHRvX3ZrbXNfcGxhbmVfc3RhdGUob2xk X3N0YXRlKTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHZrbXNfc3RhdGUtPmJhc2UuY3J0 YzsKPiArCj4gKwlpZiAoY3J0Yykgewo+ICsJCXN0cnVjdCB2a21zX291dHB1dCAqb3V0ID0gZHJt X2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7Cj4gKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAr Cj4gKwkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsKPiArCQkJ c3Bpbl9sb2NrX2lycXNhdmUoJm91dC0+bG9jaywgZmxhZ3MpOwo+ICsJCQlvdXQtPnByaW1hcnlf Y3JjID0gTlVMTDsKPiArCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3V0LT5sb2NrLCBmbGFn cyk7Cj4gKwkJfQo+ICsKPiArCQkvKiBkcm9wcGluZyB0aGUgcmVmZXJlbmNlIHdlIGFjcXVpcmVk IGluCj4gKwkJICogdmttc19wcmltYXJ5X3BsYW5lX3VwZGF0ZSgpCj4gKwkJICovCj4gKwkJaWYg KGRybV9mcmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KCZ2a21zX3N0YXRlLT5jcmNfZGF0YS0+ZmIp KQo+ICsJCQlkcm1fZnJhbWVidWZmZXJfcHV0KCZ2a21zX3N0YXRlLT5jcmNfZGF0YS0+ZmIpOwo+ ICsJfQo+ICsKPiArCWtmcmVlKHZrbXNfc3RhdGUtPmNyY19kYXRhKTsKPiArCXZrbXNfc3RhdGUt PmNyY19kYXRhID0gTlVMTDsKPiAgCj4gIAlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ry b3lfc3RhdGUob2xkX3N0YXRlKTsKPiAgCWtmcmVlKHZrbXNfc3RhdGUpOwo+IEBAIC02NSw2ICs5 MywyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyB2a21zX3BsYW5lX2Z1 bmNzID0gewo+ICBzdGF0aWMgdm9pZCB2a21zX3ByaW1hcnlfcGxhbmVfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkJICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xk X3N0YXRlKQo+ICB7Cj4gKwlzdHJ1Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmttc19wbGFuZV9zdGF0 ZTsKPiArCXN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiArCXN0cnVjdCB2a21zX291 dHB1dCAqb3V0Owo+ICsKPiArCWlmICghcGxhbmUtPnN0YXRlLT5jcnRjIHx8ICFwbGFuZS0+c3Rh dGUtPmZiKQo+ICsJCXJldHVybjsKPiArCj4gKwl2a21zX3BsYW5lX3N0YXRlID0gdG9fdmttc19w bGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ICsJY3JjX2RhdGEgPSB2a21zX3BsYW5lX3N0YXRl LT5jcmNfZGF0YTsKPiArCW1lbWNweSgmY3JjX2RhdGEtPnNyYywgJnBsYW5lLT5zdGF0ZS0+c3Jj LCBzaXplb2Yoc3RydWN0IGRybV9yZWN0KSk7Cj4gKwltZW1jcHkoJmNyY19kYXRhLT5mYiwgcGxh bmUtPnN0YXRlLT5mYiwgc2l6ZW9mKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIpKTsKPiArCWRybV9m cmFtZWJ1ZmZlcl9nZXQoJmNyY19kYXRhLT5mYik7Cj4gKwo+ICsJb3V0ID0gZHJtX2NydGNfdG9f dmttc19vdXRwdXQocGxhbmUtPnN0YXRlLT5jcnRjKTsKPiArCWlmIChwbGFuZS0+dHlwZSA9PSBE Uk1fUExBTkVfVFlQRV9QUklNQVJZKQo+ICsJCW91dC0+cHJpbWFyeV9jcmMgPSBjcmNfZGF0YTsK PiAgfQo+ICAKPiAgc3RhdGljIGludCB2a21zX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAtLSAKPiAyLjE3LjEKPiAKCi0tIApTZWFuIFBhdWwsIFNvZnR3YXJl IEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK