From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v3 5/5] drm/vkms: Implement CRC debugfs API Date: Mon, 23 Jul 2018 10:05:53 -0400 Message-ID: <20180723140553.GG20359@art_vandelay> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yb0-x242.google.com (mail-yb0-x242.google.com [IPv6:2607:f8b0:4002:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84A156E313 for ; Mon, 23 Jul 2018 14:05:55 +0000 (UTC) Received: by mail-yb0-x242.google.com with SMTP id r3-v6so274034ybo.4 for ; Mon, 23 Jul 2018 07:05:55 -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 T24gVGh1LCBKdWwgMTksIDIwMTggYXQgMDM6MjI6MTZBTSArMDMwMCwgSGFuZWVuIE1vaGFtbWVk IHdyb3RlOgo+IEltcGxlbWVudCB0aGUgc2V0X2NyY19zb3VyY2UoKSBjYWxsYmFjay4KPiBDb21w dXRlIENSQyB1c2luZyBjcmMzMiBvbiB0aGUgdmlzaWJsZSBwYXJ0IG9mIHRoZSBmcmFtZWJ1ZmZl ci4KPiBVc2Ugb3JkZXJlZCB3b3JrcXVldWUgdG8gY29tcHV0ZSBhbmQgYWRkIENSQyBhdCB0aGUg ZW5kIG9mIGEgdmJsYW5rLgo+IAo+IFVzZSBhcHByb3ByaWF0ZSBzeW5jaHJvbml6YXRpb24gbWV0 aG9kcyBzaW5jZSB0aGUgQ1JDIGNvbXB1dGF0aW9uIG11c3QKPiBiZSBhdG9taWMgd3J0IHRoZSBn ZW5lcmF0ZWQgdmJsYW5rIGV2ZW50IGZvciBhIGdpdmVuIGF0b21pYyB1cGRhdGUsIGJ5Cj4gdXNp bmcgc3BpbmxvY2sgYWNyb3NzIGF0b21pY19iZWdpbiBhbmQgYXRvbWljX2ZsdXNoIHRvIHdyYXAg dGhlIGV2ZW50Cj4gaGFuZGxpbmcgY29kZSBjb21wbGV0ZWx5IGFuZCBtYXRjaCB0aGUgZmxpcCBl dmVudCB3aXRoIHRoZSBDUkMuCj4gCj4gU2lnbmVkLW9mZi1ieTogSGFuZWVuIE1vaGFtbWVkIDxo YW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIGluIHYzOgo+IC0gZmx1c2gg d29yayBpdGVtIGluc3RlYWQgb2Ygd29ya3F1ZXVlCj4gLSBpbmNsdWRlIG1pc3Npbmcgdmttc19j cmMuYyBmaWxlCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlICAgICB8ICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgICB8IDY2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgIHwg NTggKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfZHJ2LmMgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCAgIHwg MjEgKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgfCAxMCAr KysrKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDE0OCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+IGluZGV4IDk4NjI5N2RhNTFiZi4uMzc5NjY5MTRmNzBi IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiBAQCAtMSwzICsxLDMgQEAKPiAtdmttcy15IDo9 IHZrbXNfZHJ2Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8gdmttc19jcnRjLm8gdmttc19n ZW0ubwo+ICt2a21zLXkgOj0gdmttc19kcnYubyB2a21zX3BsYW5lLm8gdmttc19vdXRwdXQubyB2 a21zX2NydGMubyB2a21zX2dlbS5vIHZrbXNfY3JjLm8KPiAgCj4gIG9iai0kKENPTkZJR19EUk1f VktNUykgKz0gdmttcy5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf Y3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjllOGJiNWM3ZmM4MAo+IC0tLSAvZGV2L251bGwK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gQEAgLTAsMCArMSw2NiBA QAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsjaW5jbHVkZSAidmtt c19kcnYuaCIKPiArI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiArCj4gK3N0YXRpYyB1aW50MzJfdCBfdmttc19n ZXRfY3JjKHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YSkKPiArewo+ICsJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIgPSAmY3JjX2RhdGEtPmZiOwo+ICsJc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpnZW1fb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKGZiLCAwKTsKPiArCXN0cnVjdCB2a21z X2dlbV9vYmplY3QgKnZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShnZW1fb2JqKTsKPiAr CXUzMiBjcmMgPSAwOwo+ICsJaW50IGkgPSAwOwo+ICsJdW5zaWduZWQgaW50IHggPSBjcmNfZGF0 YS0+c3JjLngxID4+IDE2Owo+ICsJdW5zaWduZWQgaW50IHkgPSBjcmNfZGF0YS0+c3JjLnkxID4+ IDE2Owo+ICsJdW5zaWduZWQgaW50IGhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmY3JjX2RhdGEt PnNyYykgPj4gMTY7Cj4gKwl1bnNpZ25lZCBpbnQgd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmY3Jj X2RhdGEtPnNyYykgPj4gMTY7Cj4gKwl1bnNpZ25lZCBpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3Bw WzBdOwo+ICsJdW5zaWduZWQgaW50IHNyY19vZmZzZXQ7Cj4gKwl1bnNpZ25lZCBpbnQgc2l6ZV9i eXRlID0gd2lkdGggKiBjcHA7Cj4gKwl2b2lkICp2YWRkciA9IHZrbXNfb2JqLT52YWRkcjsKCllv dSBzaG91bGQgaG9sZCB0aGUgbG9jayB3aGVuIGNvcHlpbmcgdGhlIGRhdGEgZnJvbSBjcmNfZGF0 YS4KCj4gKwo+ICsJaWYgKFdBUk5fT04oIXZhZGRyKSkKPiArCQlyZXR1cm4gY3JjOwo+ICsKPiAr CWZvciAoaSA9IHk7IGkgPCB5ICsgaGVpZ2h0OyBpKyspIHsKPiArCQlzcmNfb2Zmc2V0ID0gZmIt Pm9mZnNldHNbMF0gKyAoaSAqIGZiLT5waXRjaGVzWzBdKSArICh4ICogY3BwKTsKPiArCQljcmMg PSBjcmMzMl9sZShjcmMsIHZhZGRyICsgc3JjX29mZnNldCwgc2l6ZV9ieXRlKTsKPiArCX0KPiAr Cj4gKwlyZXR1cm4gY3JjOwo+ICt9Cj4gKwo+ICt2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSA9IGNvbnRhaW5lcl9vZih3b3JrLAo+ICsJCQkJCQlzdHJ1Y3Qgdmttc19jcnRj X3N0YXRlLAo+ICsJCQkJCQljcmNfd29yayk7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBj cnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9j cnRjX3RvX3ZrbXNfb3V0cHV0KGNydGMpOwo+ICsKPiArCWlmIChjcnRjX3N0YXRlICYmIG91dC0+ Y3JjX2VuYWJsZWQpIHsKPiArCQl1MzIgY3JjMzIgPSBfdmttc19nZXRfY3JjKCZjcnRjX3N0YXRl LT5kYXRhKTsKPiArCQl1bnNpZ25lZCBpbnQgbl9mcmFtZSA9IGNydGNfc3RhdGUtPm5fZnJhbWU7 Cj4gKwo+ICsJCWRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwgbl9mcmFtZSwgJmNy YzMyKTsKPiArCX0KPiArfQo+ICsKPiAraW50IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRy bV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSwKPiArCQkJc2l6ZV90ICp2YWx1ZXNf Y250KQo+ICt7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dCA9IGRybV9jcnRjX3RvX3ZrbXNf b3V0cHV0KGNydGMpOwo+ICsKCllvdSBzaG91bGQgaG9sZCB0aGUgbG9jayB3aGVuIGNoYW5naW5n IHRoaXMgdmFsdWUuCgo+ICsJaWYgKCFzcmNfbmFtZSkgewo+ICsJCW91dC0+Y3JjX2VuYWJsZWQg PSBmYWxzZTsKPiArCX0gZWxzZSBpZiAoc3RyY21wKHNyY19uYW1lLCAiYXV0byIpID09IDApIHsK PiArCQlvdXQtPmNyY19lbmFibGVkID0gdHJ1ZTsKPiArCX0gZWxzZSB7Cj4gKwkJb3V0LT5jcmNf ZW5hYmxlZCA9IGZhbHNlOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCSp2YWx1 ZXNfY250ID0gMTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0 Yy5jCj4gaW5kZXggMjZiYWJiODVjYTc3Li5hN2IzOTYyN2I1ODEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2NydGMuYwo+IEBAIC0xMCwxNyArMTAsMzIgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1f YXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ICAK PiAtc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHZrbXNfdmJsYW5rX3NpbXVsYXRlKHN0cnVj dCBocnRpbWVyICp0aW1lcikKPiArc3RhdGljIHZvaWQgX3ZibGFua19oYW5kbGUoc3RydWN0IHZr bXNfb3V0cHV0ICpvdXRwdXQpCj4gIHsKPiAtCXN0cnVjdCB2a21zX291dHB1dCAqb3V0cHV0ID0g Y29udGFpbmVyX29mKHRpbWVyLCBzdHJ1Y3Qgdmttc19vdXRwdXQsCj4gLQkJCQkJCSAgdmJsYW5r X2hydGltZXIpOwo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm91dHB1dC0+Y3J0YzsKPiAt CWludCByZXRfb3ZlcnJ1bjsKPiArCXN0cnVjdCB2a21zX2NydGNfc3RhdGUgKnN0YXRlID0gdG9f dmttc19jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiAgCWJvb2wgcmV0Owo+ICAKPiArCXNwaW5f bG9jaygmb3V0cHV0LT5sb2NrKTsKPiAgCXJldCA9IGRybV9jcnRjX2hhbmRsZV92YmxhbmsoY3J0 Yyk7Cj4gIAlpZiAoIXJldCkKPiAtCQlEUk1fRVJST1IoInZrbXMgZmFpbHVyZSBvbiBoYW5kbGlu ZyB2YmxhbmsiKTsKPiArCQlEUk1fRVJST1IoInZrbXMgZmFpbHVyZSBvbiBoYW5kbGluZyB2Ymxh bmtcbiIpOwo+ICsKPiArCWlmIChzdGF0ZSAmJiBvdXRwdXQtPmNyY19lbmFibGVkKSB7Cj4gKwkJ c3RhdGUtPm5fZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoY3J0Yyk7Cj4g KwkJcXVldWVfd29yayhvdXRwdXQtPmNyY193b3JrcSwgJnN0YXRlLT5jcmNfd29yayk7Cj4gKwl9 Cj4gKwo+ICsJc3Bpbl91bmxvY2soJm91dHB1dC0+bG9jayk7Cj4gK30KPiArCj4gK3N0YXRpYyBl bnVtIGhydGltZXJfcmVzdGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3QgaHJ0aW1lciAq dGltZXIpCj4gK3sKPiArCXN0cnVjdCB2a21zX291dHB1dCAqb3V0cHV0ID0gY29udGFpbmVyX29m KHRpbWVyLCBzdHJ1Y3Qgdmttc19vdXRwdXQsCj4gKwkJCQkJCSAgdmJsYW5rX2hydGltZXIpOwo+ ICsJaW50IHJldF9vdmVycnVuOwo+ICsKPiArCV92YmxhbmtfaGFuZGxlKG91dHB1dCk7Cj4gIAo+ ICAJcmV0X292ZXJydW4gPSBocnRpbWVyX2ZvcndhcmRfbm93KCZvdXRwdXQtPnZibGFua19ocnRp bWVyLAo+ICAJCQkJCSAgb3V0cHV0LT5wZXJpb2RfbnMpOwo+IEBAIC05Nyw2ICsxMTIsOCBAQCB2 a21zX2F0b21pY19jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAo+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmdmtt c19zdGF0ZS0+YmFzZSk7Cj4gIAo+ICsJSU5JVF9XT1JLKCZ2a21zX3N0YXRlLT5jcmNfd29yaywg dmttc19jcmNfd29ya19oYW5kbGUpOwo+ICsKPiAgCXJldHVybiAmdmttc19zdGF0ZS0+YmFzZTsK PiAgfQo+ICAKPiBAQCAtMTA4LDcgKzEyNSwxMyBAQCBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19j cnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJdmttc19zdGF0ZSA9 IHRvX3ZrbXNfY3J0Y19zdGF0ZShzdGF0ZSk7Cj4gIAo+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9j cnRjX2Rlc3Ryb3lfc3RhdGUoc3RhdGUpOwo+IC0Ja2ZyZWUodmttc19zdGF0ZSk7Cj4gKwo+ICsJ aWYgKHZrbXNfc3RhdGUpIHsKPiArCQlmbHVzaF93b3JrKCZ2a21zX3N0YXRlLT5jcmNfd29yayk7 Cj4gKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dCgmdmttc19zdGF0ZS0+ZGF0YS5mYik7CgpJdCdkIGJl IG5pY2UgdG8gbGVhdmUgYSBicmVhZGNydW1iIGV4cGxhaW5pbmcgd2hlcmUgdGhpcyByZWZlcmVu Y2UgaXMgYWNxdWlyZWQuCmllOiAvKiBkcm9wcGluZyB0aGUgcmVmZXJlbmNlIHdlIGFjcXVpcmVk IGluIHZrbXNfcHJpbWFyeV9wbGFuZV91cGRhdGUoKSAqLwoKPiArCQltZW1zZXQoJnZrbXNfc3Rh dGUtPmRhdGEsIDAsIHNpemVvZihzdHJ1Y3Qgdmttc19jcmNfZGF0YSkpOwo+ICsJCWtmcmVlKHZr bXNfc3RhdGUpOwo+ICsJfQo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRj X2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsKPiBAQCAtMTIwLDYgKzE0Myw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdmttc19jcnRjX2Z1bmNzID0gewo+ICAJLmF0b21p Y19kZXN0cm95X3N0YXRlICAgPSB2a21zX2F0b21pY19jcnRjX2Rlc3Ryb3lfc3RhdGUsCj4gIAku ZW5hYmxlX3ZibGFuawkJPSB2a21zX2VuYWJsZV92YmxhbmssCj4gIAkuZGlzYWJsZV92YmxhbmsJ CT0gdmttc19kaXNhYmxlX3ZibGFuaywKPiArCS5zZXRfY3JjX3NvdXJjZQkJPSB2a21zX3NldF9j cmNfc291cmNlLAo+ICB9Owo+ICAKPiAgc3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19lbmFi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IEBAIC0xMzQsMjYgKzE1OCwzNyBAQCBzdGF0aWMg dm9pZCB2a21zX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJ ZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgdmttc19j cnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRw dXQgKnZrbXNfb3V0cHV0ID0gZHJtX2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7Cj4gKwo+ICsJ c3Bpbl9sb2NrX2lycSgmdmttc19vdXRwdXQtPmxvY2spOwoKQ2FuIHlvdSBwbGVhc2UgYWRkIGEg Y29tbWVudCBleHBsYWluaW5nIHRoYXQgd2UncmUgaG9sZGluZyB0aGlzIGFjcm9zcyB0aGUKY29t bWl0IHRvIGJsb2NrIHRoZSB2YmxhbmsgdGltZXIsIGFuZCB3aHkuCgo+ICt9Cj4gKwo+ICBzdGF0 aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg CQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIHsKPiAtCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKnZrbXNfb3V0cHV0ID0g ZHJtX2NydGNfdG9fdmttc19vdXRwdXQoY3J0Yyk7Cj4gIAo+ICAJaWYgKGNydGMtPnN0YXRlLT5l dmVudCkgewo+IC0JCXNwaW5fbG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZs YWdzKTsKPiArCQlzcGluX2xvY2soJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CgpFaXRoZXIgZG9u J3QgY2hhbmdlIHRoaXMgKHNpbmNlIGl0J3MgYWx3YXlzIHNhZmUgdG8gY2FsbCBfaXJxc2F2ZSks IG9yIGFkZCBhCmNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGRvbid0IG5lZWQgdG8uCgo+ICAK PiAgCQlpZiAoZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKSAhPSAwKQo+ICAJCQlkcm1fY3J0Y19z ZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwo+ICAJCWVsc2UKPiAg CQkJZHJtX2NydGNfYXJtX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOwo+ ICAKPiAtCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZs YWdzKTsKPiArCQlzcGluX3VubG9jaygmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKPiAgCj4gIAkJ Y3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKPiAgCX0KPiArCj4gKwlzcGluX3VubG9ja19pcnEo JnZrbXNfb3V0cHV0LT5sb2NrKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f Y3J0Y19oZWxwZXJfZnVuY3Mgdmttc19jcnRjX2hlbHBlcl9mdW5jcyA9IHsKPiArCS5hdG9taWNf YmVnaW4JPSB2a21zX2NydGNfYXRvbWljX2JlZ2luLAo+ICAJLmF0b21pY19mbHVzaAk9IHZrbXNf Y3J0Y19hdG9taWNfZmx1c2gsCj4gIAkuYXRvbWljX2VuYWJsZQk9IHZrbXNfY3J0Y19hdG9taWNf ZW5hYmxlLAo+ICAJLmF0b21pY19kaXNhYmxlCT0gdmttc19jcnRjX2F0b21pY19kaXNhYmxlLAo+ IEBAIC0xNjIsNiArMTk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJf ZnVuY3Mgdmttc19jcnRjX2hlbHBlcl9mdW5jcyA9IHsKPiAgaW50IHZrbXNfY3J0Y19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkgICBzdHJ1 Y3QgZHJtX3BsYW5lICpwcmltYXJ5LCBzdHJ1Y3QgZHJtX3BsYW5lICpjdXJzb3IpCj4gIHsKPiAr CXN0cnVjdCB2a21zX291dHB1dCAqdmttc19vdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChj cnRjKTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5l cyhkZXYsIGNydGMsIHByaW1hcnksIGN1cnNvciwKPiBAQCAtMTczLDUgKzIwOSw5IEBAIGludCB2 a21zX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4gIAo+ICAJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAmdmttc19jcnRjX2hlbHBlcl9m dW5jcyk7Cj4gIAo+ICsJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5sb2NrKTsKPiArCj4gKwl2 a21zX291dC0+Y3JjX3dvcmtxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoInZrbXNfY3JjX3dv cmtxIiwgMCk7Cj4gKwo+ICAJcmV0dXJuIHJldDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYu Ywo+IGluZGV4IDM3YWEyZWYzM2IyMS4uNWQ3OGJkOTdlNjljIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2Rydi5jCj4gQEAgLTQ2LDYgKzQ2LDcgQEAgc3RhdGljIHZvaWQgdmttc19yZWxlYXNlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih2a21z LT5wbGF0Zm9ybSk7Cj4gIAlkcm1fbW9kZV9jb25maWdfY2xlYW51cCgmdmttcy0+ZHJtKTsKPiAg CWRybV9kZXZfZmluaSgmdmttcy0+ZHJtKTsKPiArCWRlc3Ryb3lfd29ya3F1ZXVlKHZrbXMtPm91 dHB1dC5jcmNfd29ya3EpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmtt c19kcml2ZXIgPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gaW5kZXggNzVlNTJkNjFlNjVk Li5hODAyODFhMTIwMTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiBAQCAtMjAsMTIg KzIwLDIzIEBAIHN0YXRpYyBjb25zdCB1MzIgdmttc19mb3JtYXRzW10gPSB7Cj4gIAlEUk1fRk9S TUFUX1hSR0I4ODg4LAo+ICB9Owo+ICAKPiArc3RydWN0IHZrbXNfY3JjX2RhdGEgewo+ICsJc3Ry dWN0IGRybV9yZWN0IHNyYzsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgZmI7Cj4gK307Cj4g Kwo+ICAvKioKPiAgICogdmttc19jcnRjX3N0YXRlIC0gRHJpdmVyIHNwZWNpZmljIENSVEMgc3Rh dGUKPiAgICogQGJhc2U6IGJhc2UgQ1JUQyBzdGF0ZQo+ICsgKiBAY3JjX3dvcms6IHdvcmsgc3Ry dWN0IHRvIGNvbXB1dGUgYW5kIGFkZCBDUkMgZW50cmllcwo+ICsgKiBAZGF0YTogZGF0YSByZXF1 aXJlZCBmb3IgQ1JDIGNvbXB1dGF0aW9uCj4gKyAqIEBuX2ZyYW1lOiBmcmFtZSBudW1iZXIgZm9y IGNvbXB1dGVkIENSQwo+ICAgKi8KPiAgc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSB7Cj4gIAlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBjcmNfd29yazsK PiArCXN0cnVjdCB2a21zX2NyY19kYXRhIGRhdGE7Cj4gKwl1bnNpZ25lZCBpbnQgbl9mcmFtZTsK PiAgfTsKPiAgCj4gIHN0cnVjdCB2a21zX291dHB1dCB7Cj4gQEAgLTM1LDYgKzQ2LDExIEBAIHN0 cnVjdCB2a21zX291dHB1dCB7Cj4gIAlzdHJ1Y3QgaHJ0aW1lciB2YmxhbmtfaHJ0aW1lcjsKPiAg CWt0aW1lX3QgcGVyaW9kX25zOwo+ICAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAq ZXZlbnQ7Cj4gKwlib29sIGNyY19lbmFibGVkOwo+ICsJLyogb3JkZXJlZCB3cSBmb3IgY3JjX3dv cmsgKi8KPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpjcmNfd29ya3E7Cj4gKwkvKiBwcm90 ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBjcmNfZGF0YSAqLwo+ICsJc3BpbmxvY2tfdCBsb2Nr Owo+ICB9Owo+ICAKPiAgc3RydWN0IHZrbXNfZGV2aWNlIHsKPiBAQCAtOTUsNCArMTExLDkgQEAg aW50IHZrbXNfZ2VtX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ICAKPiAgdm9p ZCB2a21zX2dlbV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ICAKPiArLyog Q1JDIFN1cHBvcnQgKi8KPiAraW50IHZrbXNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLCBjb25zdCBjaGFyICpzcmNfbmFtZSwKPiArCQkJc2l6ZV90ICp2YWx1ZXNfY250KTsK PiArdm9pZCB2a21zX2NyY193b3JrX2hhbmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ ICsKPiAgI2VuZGlmIC8qIF9WS01TX0RSVl9IXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmttcy92a21zX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5l LmMKPiBpbmRleCA1YjdjNWQ1OWYxMDMuLmIzMTZiMmFmODhlZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX3BsYW5lLmMKPiBAQCAtMjQsNiArMjQsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfZnVuY3Mgdmttc19wbGFuZV9mdW5jcyA9IHsKPiAgc3RhdGljIHZvaWQgdmttc19w cmltYXJ5X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJCSAgICAg IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgewo+ICsJc3RydWN0IHZrbXNf Y3J0Y19zdGF0ZSAqc3RhdGU7Cj4gKwo+ICsJaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMgfHwgIXBs YW5lLT5zdGF0ZS0+ZmIpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXN0YXRlID0gdG9fdmttc19jcnRj X3N0YXRlKHBsYW5lLT5zdGF0ZS0+Y3J0Yy0+c3RhdGUpOwo+ICsJbWVtY3B5KCZzdGF0ZS0+ZGF0 YS5zcmMsICZwbGFuZS0+c3RhdGUtPnNyYywgc2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwo+ICsJ bWVtY3B5KCZzdGF0ZS0+ZGF0YS5mYiwgcGxhbmUtPnN0YXRlLT5mYiwKPiArCSAgICAgICBzaXpl b2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+ICsJZHJtX2ZyYW1lYnVmZmVyX2dldCgmc3Rh dGUtPmRhdGEuZmIpOwoKU2ltaWxhcmx5IHRvIGFib3ZlLCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0 aGlzIGlzIHJlbGVhc2VkIGluIHN0YXRlX2Rlc3Ryb3kgd291bGQKYmUgaGVscGZ1bC4KCj4gIH0K PiAgCj4gIHN0YXRpYyBpbnQgdmttc19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gLS0gCj4gMi4xNy4xCj4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdp bmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==