From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vivek Gautam Subject: Re: [PATCH 5/5] drm/msm/A6xx: Add support for using system cache(llc) Date: Thu, 5 Apr 2018 12:34:49 +0530 Message-ID: References: <1521789591-28628-1-git-send-email-smasetty@codeaurora.org> <1521789591-28628-6-git-send-email-smasetty@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1521789591-28628-6-git-send-email-smasetty-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sharat Masetty , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SGkgU2hhcmF0LAoKCk9uIDMvMjMvMjAxOCAxMjo0OSBQTSwgU2hhcmF0IE1hc2V0dHkgd3JvdGU6 Cj4gVGhlIGxhc3QgbGV2ZWwgc3lzdGVtIGNhY2hlIGNhbiBiZSBwYXJ0aXRpb25lZCB0byAzMgo+ IGRpZmZlcmVudCBzbGljZXMgb2Ygd2hpY2ggR1BVIGhhcyB0d28gc2xpY2VzIHByZWFsbG9jYXRl ZC4KPiBUaGUgImdwdSIgc2xpY2UgaXMgdXNlZCBmb3IgY2FjaGluZyBHUFUgYnVmZmVycyBhbmQK PiB0aGUgImdwdWh0dyIgc2xpY2UgaXMgdXNlZCBmb3IgY2FjaGluZyB0aGUgR1BVIFNNTVUKPiBw YWdldGFibGVzLiAgVGhpcyBwYXRjaCB0YWxrcyB0byB0aGUgY29yZSBzeXN0ZW0gY2FjaGUKPiBk cml2ZXIgdG8gYWNxdWlyZSB0aGUgc2xpY2UgaGFuZGxlcywgY29uZmlndXJlIHRoZSBTQ0lEJ3MK PiB0byB0aG9zZSBzbGljZXMgYW5kIGFjdGl2YXRlcyBhbmQgZGVhY3RpdmF0ZXMgdGhlIHNsaWNl cwo+IHVwb24gR1BVIHBvd2VyIGNvbGxhcHNlIGFuZCByZXN0b3JlLgo+Cj4gU29tZSBzdXBwb3J0 IGZyb20gdGhlIElPTU1VIGRyaXZlciBpcyBhbHNvIG5lZWRlZCB0bwo+IG1ha2UgdXNlIG9mIHRo ZSBzeXN0ZW0gY2FjaGUuIElPTU1VX1VQU1RSRUFNX0hJTlQgaXMKPiBhIGJ1ZmZlciBwcm90ZWN0 aW9uIGZsYWcgd2hpY2ggZW5hYmxlcyBjYWNoaW5nIEdQVSBkYXRhCj4gYnVmZmVycyBpbiB0aGUg c3lzdGVtIGNhY2hlIHdpdGggbWVtb3J5IGF0dHJpYnV0ZXMgc3VjaAo+IGFzIG91dGVyIGNhY2hl YWJsZSwgcmVhZC1hbGxvY2F0ZSwgd3JpdGUtYWxsb2NhdGUgZm9yIGJ1ZmZlcnMuCj4gVGhlIEdQ VSB0aGVuIGhhcyB0aGUgYWJpbGl0eSB0byBvdmVycmlkZSBhIGZldyBjYWNoZWFiaWxpdHkKPiBw YXJhbWV0ZXJzIHdoaWNoIGl0IGRvZXMgdG8gb3ZlcnJpZGUgd3JpdGUtYWxsb2NhdGUgdG8KPiB3 cml0ZS1uby1hbGxvY2F0ZSBhcyB0aGUgR1BVIGhhcmR3YXJlIGRvZXMgbm90IGJlbmVmaXQgbXVj aAo+IGZyb20gaXQuCj4gU2ltaWxhcmx5IERPTUFJTl9BVFRSX1VTRV9VUFNUUkVBTV9ISU5UIGlz IGFub3RoZXIgZG9tYWluIGxldmVsCj4gYXR0cmlidXRlIHVzZWQgYnkgdGhlIElPTU1VIGRyaXZl ciB0byBzZXQgdGhlIHJpZ2h0IGF0dHJpYnV0ZXMKPiB0byBjYWNoZSB0aGUgaGFyZHdhcmUgcGFn ZXRhYmxlcyBpbnRvIHRoZSBzeXN0ZW0gY2FjaGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFyYXQg TWFzZXR0eSA8c21hc2V0dHlAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCgpDb3VwbGUgb2YgbWlub3Ig bml0cy4gUGxlYXNlIHNlZSBjb21tZW50cyBpbmxpbmUgYmVsb3cuCgo+ICAgZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyB8IDE2MiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oIHwgICA5 ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jICAgICAgIHwgIDEzICsrKwo+ ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11LmggICAgICAgICB8ICAgMyArCj4gICA0IGZp bGVzIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmMKPiBpbmRleCBiZDUwNjc0Li5lNDU1NGViIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5jCj4gQEAgLTEzLDYgKzEzLDcgQEAK PiAgIAo+ICAgI2luY2x1ZGUgPGxpbnV4L3Fjb21fc2NtLmg+Cj4gICAjaW5jbHVkZSA8bGludXgv c29jL3Fjb20vbWR0X2xvYWRlci5oPgo+ICsjaW5jbHVkZSA8bGludXgvc29jL3Fjb20vbGxjYy1x Y29tLmg+Cj4gICAKPiAgICNpbmNsdWRlICJtc21fZ2VtLmgiCj4gICAjaW5jbHVkZSAibXNtX21t dS5oIgo+IEBAIC05MTMsNiArOTE0LDE1NCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYTZ4eF9pcnEo c3RydWN0IG1zbV9ncHUgKmdwdSkKPiAgIAl+MAo+ICAgfTsKPiAgIAo+ICsjZGVmaW5lIEE2WFhf TExDX05VTV9HUFVfU0NJRFMJCTUKPiArI2RlZmluZSBBNlhYX0dQVV9MTENfU0NJRF9OVU1fQklU Uwk1Cj4gKwo+ICsjZGVmaW5lIEE2WFhfR1BVX0xMQ19TQ0lEX01BU0sgXAo+ICsJKCgxIDw8IChB NlhYX0xMQ19OVU1fR1BVX1NDSURTICogQTZYWF9HUFVfTExDX1NDSURfTlVNX0JJVFMpKSAtIDEp Cj4gKwo+ICsjZGVmaW5lIEE2WFhfR1BVSFRXX0xMQ19TQ0lEX1NISUZUCTI1Cj4gKyNkZWZpbmUg QTZYWF9HUFVIVFdfTExDX1NDSURfTUFTSyBcCj4gKwkoKCgxIDw8IEE2WFhfR1BVX0xMQ19TQ0lE X05VTV9CSVRTKSAtIDEpIDw8IEE2WFhfR1BVSFRXX0xMQ19TQ0lEX1NISUZUKQo+ICsKPiArc3Rh dGljIGlubGluZSB2b2lkIGE2eHhfZ3B1X2N4X3JtdyhzdHJ1Y3QgYTZ4eF9sbGMgKmxsYywKPiAr CXUzMiByZWcsIHUzMiBtYXNrLCB1MzIgb3IpCj4gK3sKPiArCW1zbV9ybXcobGxjLT5tbWlvICsg KHJlZyA8PCAyKSwgbWFzaywgb3IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBhNnh4X2xsY19k ZWFjdGl2YXRlKHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gK3sKPiArCXN0cnVjdCBhZHJlbm9fZ3B1 ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShncHUpOwo+ICsJc3RydWN0IGE2eHhfZ3B1ICph Nnh4X2dwdSA9IHRvX2E2eHhfZ3B1KGFkcmVub19ncHUpOwo+ICsJc3RydWN0IGE2eHhfbGxjICps bGMgPSAmYTZ4eF9ncHUtPmxsYzsKPiArCj4gKwlsbGNjX3NsaWNlX2RlYWN0aXZhdGUobGxjLT5n cHVfbGxjX3NsaWNlKTsKPiArCWxsY2Nfc2xpY2VfZGVhY3RpdmF0ZShsbGMtPmdwdWh0d19sbGNf c2xpY2UpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBhNnh4X2xsY19hY3RpdmF0ZShzdHJ1Y3Qg bXNtX2dwdSAqZ3B1KQo+ICt7Cj4gKwlzdHJ1Y3QgYWRyZW5vX2dwdSAqYWRyZW5vX2dwdSA9IHRv X2FkcmVub19ncHUoZ3B1KTsKPiArCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19hNnh4 X2dwdShhZHJlbm9fZ3B1KTsKPiArCXN0cnVjdCBhNnh4X2xsYyAqbGxjID0gJmE2eHhfZ3B1LT5s bGM7Cj4gKwo+ICsJaWYgKCFsbGMtPm1taW8pCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmIChsbGMt PmdwdV9sbGNfc2xpY2UpCj4gKwkJaWYgKCFsbGNjX3NsaWNlX2FjdGl2YXRlKGxsYy0+Z3B1X2xs Y19zbGljZSkpCj4gKwkJCS8qIFByb2dyYW0gdGhlIHN1Yi1jYWNoZSBJRCBmb3IgYWxsIEdQVSBi bG9ja3MgKi8KPiArCQkJYTZ4eF9ncHVfY3hfcm13KGxsYywKPiArCQkJCVJFR19BNlhYX0dQVV9D WF9NSVNDX1NZU1RFTV9DQUNIRV9DTlRMXzEsCj4gKwkJCQlBNlhYX0dQVV9MTENfU0NJRF9NQVNL LAo+ICsJCQkJKGxsYy0+Y250bDFfcmVndmFsICYKPiArCQkJCQlBNlhYX0dQVV9MTENfU0NJRF9N QVNLKSk7Cj4gKwo+ICsJaWYgKGxsYy0+Z3B1aHR3X2xsY19zbGljZSkKPiArCQlpZiAoIWxsY2Nf c2xpY2VfYWN0aXZhdGUobGxjLT5ncHVodHdfbGxjX3NsaWNlKSkKPiArCQkJLyogUHJvZ3JhbSB0 aGUgc3ViLWNhY2hlIElEIGZvciBHUFUgcGFnZXRhYmxlcyAqLwo+ICsJCQlhNnh4X2dwdV9jeF9y bXcobGxjLAo+ICsJCQkJUkVHX0E2WFhfR1BVX0NYX01JU0NfU1lTVEVNX0NBQ0hFX0NOVExfMSwK PiArCQkJCUE2WFhfR1BVSFRXX0xMQ19TQ0lEX01BU0ssCj4gKwkJCQkobGxjLT5jbnRsMV9yZWd2 YWwgJgo+ICsJCQkJCUE2WFhfR1BVSFRXX0xMQ19TQ0lEX01BU0spKTsKPiArCj4gKwkvKiBQcm9n cmFtIGNhY2hlYWJpbGl0eSBvdmVycmlkZXMgKi8KPiArCWE2eHhfZ3B1X2N4X3JtdyhsbGMsIFJF R19BNlhYX0dQVV9DWF9NSVNDX1NZU1RFTV9DQUNIRV9DTlRMXzAsIDB4RiwKPiArCQlsbGMtPmNu dGwwX3JlZ3ZhbCk7Cj4gK30KPiArCj4gK3ZvaWQgYTZ4eF9sbGNfc2xpY2VzX2Rlc3Ryb3koc3Ry dWN0IGE2eHhfbGxjICpsbGMpCgpzdGF0aWM/Cgo+ICt7Cj4gKwlpZiAobGxjLT5tbWlvKSB7Cj4g KwkJaW91bm1hcChsbGMtPm1taW8pOwo+ICsJCWxsYy0+bW1pbyA9IE5VTEw7Cj4gKwl9Cj4gKwo+ ICsJbGxjY19zbGljZV9wdXRkKGxsYy0+Z3B1X2xsY19zbGljZSk7Cj4gKwlsbGMtPmdwdV9sbGNf c2xpY2UgPSBOVUxMOwo+ICsKPiArCWxsY2Nfc2xpY2VfcHV0ZChsbGMtPmdwdWh0d19sbGNfc2xp Y2UpOwo+ICsJbGxjLT5ncHVodHdfbGxjX3NsaWNlID0gTlVMTDsKPiArfQo+ICsKPiArc3RhdGlj IGludCBhNnh4X2xsY19zbGljZXNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ ICsJCXN0cnVjdCBhNnh4X2xsYyAqbGxjKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwkvKiBHZXQg dGhlIHN5c3RlbSBjYWNoZSBzbGljZSBkZXNjcmlwdG9yIGZvciBHUFUgYW5kIEdQVUhUV3MgKi8K PiArCWxsYy0+Z3B1X2xsY19zbGljZSA9IGxsY2Nfc2xpY2VfZ2V0ZCgmcGRldi0+ZGV2LCAiZ3B1 Iik7Cj4gKwlpZiAoSVNfRVJSKGxsYy0+Z3B1X2xsY19zbGljZSkpCj4gKwkJbGxjLT5ncHVfbGxj X3NsaWNlID0gTlVMTDsKPiArCj4gKwlsbGMtPmdwdWh0d19sbGNfc2xpY2UgPSBsbGNjX3NsaWNl X2dldGQoJnBkZXYtPmRldiwgImdwdWh0dyIpOwo+ICsJaWYgKElTX0VSUihsbGMtPmdwdWh0d19s bGNfc2xpY2UpKQo+ICsJCWxsYy0+Z3B1aHR3X2xsY19zbGljZSA9IE5VTEw7Cj4gKwo+ICsJaWYg KGxsYy0+Z3B1X2xsY19zbGljZSA9PSBOVUxMICYmIGxsYy0+Z3B1aHR3X2xsY19zbGljZSA9PSBO VUxMKQo+ICsJCXJldHVybiAtMTsKPiArCj4gKwkvKiBNYXAgcmVnaXN0ZXJzICovCj4gKwlsbGMt Pm1taW8gPSBtc21faW9yZW1hcChwZGV2LCAiY3hfbWVtIiwgImdwdV9jeCIpOwo+ICsJaWYgKElT X0VSUihsbGMtPm1taW8pKSB7Cj4gKwkJbGxjLT5tbWlvID0gTlVMTDsKPiArCQlhNnh4X2xsY19z bGljZXNfZGVzdHJveShsbGMpOwo+ICsJCXJldHVybiAtMTsKPiArCX0KCklmIHlvdSBtb3ZlIHRo aXMgaW9yZW1hcCB0byBzdGFydCBvZiB0aGUgZnVuY3Rpb24sIHRoZW4geW91IHdvdWxkbid0IG5l ZWQgdG8KY2FsbCBhNnh4X2xsY2Nfc2xpY2VzX2Rlc3Ryb3koKS4KCnJlZ2FyZHMKVml2ZWsKCj4g Kwo+ICsJLyoKPiArCSAqIFNldHVwIEdQVSBzeXN0ZW0gY2FjaGUgQ05UTDAgYW5kIENOVEwxIHJl Z2lzdGVyIHZhbHVlcy4KPiArCSAqIFRoZXNlIHZhbHVlcyB3aWxsIGJlIHByb2dyYW1tZWQgZXZl cnl0aW1lIEdQVSBjb21lcyBvdXQKPiArCSAqIG9mIHBvd2VyIGNvbGxhcHNlIGFzIHRoZXNlIGFy ZSBub24tcmV0ZW50aW9uIHJlZ2lzdGVycy4KPiArCSAqLwo+ICsKPiArCS8qCj4gKwkgKiBDTlRM MCBwcm92aWRlcyBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBzZXR0aW5ncyBmb3IgdGhlCj4gKwkg KiByZWFkIGFuZCB3cml0ZSBhbGxvY2F0aW9uIHBvbGljaWVzIGZvciB0aGUgTExDLiBUaGVzZQo+ ICsJICogb3ZlcnJpZGVzIGFyZSBnbG9iYWwgZm9yIGFsbCBtZW1vcnkgdHJhbnNhY3Rpb25zIGZy b20KPiArCSAqIHRoZSBHUFUuCj4gKwkgKgo+ICsJICogMHgzOiByZWFkLW5vLWFsbG9jLW92ZXJy aWRkZW4gPSAwCj4gKwkgKiAgICAgIHJlYWQtbm8tYWxsb2MgPSAwIC0gQWxsb2NhdGUgbGluZXMg b24gcmVhZCBtaXNzCj4gKwkgKiAgICAgIHdyaXRlLW5vLWFsbG9jLW92ZXJyaWRkZW4gPSAxCj4g KwkgKiAgICAgIHdyaXRlLW5vLWFsbG9jID0gMSAtIERvIG5vdCBhbGxvY2F0ZXMgbGluZXMgb24g d3JpdGUgbWlzcwo+ICsJICovCj4gKwlsbGMtPmNudGwwX3JlZ3ZhbCA9IDB4MDM7Cj4gKwo+ICsJ LyoKPiArCSAqIENOVEwxIGlzIHVzZWQgdG8gc3BlY2lmeSBTQ0lEIGZvciAoQ1AsIFRQLCBWRkQs IENDVSBhbmQgVUJXQwo+ICsJICogRkxBRyBjYWNoZSkgR1BVIGJsb2Nrcy4gVGhpcyB2YWx1ZSB3 aWxsIGJlIHBhc3NlZCBhbG9uZyB3aXRoCj4gKwkgKiB0aGUgYWRkcmVzcyBmb3IgYW55IG1lbW9y eSB0cmFuc2FjdGlvbiBmcm9tIEdQVSB0byBpZGVudGlmeQo+ICsJICogdGhlIHN1Yi1jYWNoZSBm b3IgdGhhdCB0cmFuc2FjdGlvbi4KPiArCSAqCj4gKwkgKiBDdXJyZW50bHkgdGhlcmUgaXMgb25s eSBvbmUgU0NJRCBhbGxvY2F0ZWQgZm9yIGFsbCBHUFUgYmxvY2tzCj4gKwkgKiBIZW5jZSBzZXQg c2FtZSBTQ0lEIGZvciBhbGwgdGhlIGJsb2Nrcy4KPiArCSAqLwo+ICsKPiArCWlmIChsbGMtPmdw dV9sbGNfc2xpY2UpIHsKPiArCQl1MzIgZ3B1X3NjaWQgPSBsbGNjX2dldF9zbGljZV9pZChsbGMt PmdwdV9sbGNfc2xpY2UpOwo+ICsKPiArCQlmb3IgKGkgPSAwOyBpIDwgQTZYWF9MTENfTlVNX0dQ VV9TQ0lEUzsgaSsrKQo+ICsJCQlsbGMtPmNudGwxX3JlZ3ZhbCB8PQo+ICsJCQkJZ3B1X3NjaWQg PDwgKEE2WFhfR1BVX0xMQ19TQ0lEX05VTV9CSVRTICogaSk7Cj4gKwl9Cj4gKwo+ICsJLyoKPiAr CSAqIFNldCBTQ0lEIGZvciBHUFUgSU9NTVUuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGFjY2Vzcwo+ ICsJICogcGFnZSB0YWJsZXMgdGhhdCBhcmUgY2FjaGVkIGluIExMQy4KPiArCSAqLwo+ICsJaWYg KGxsYy0+Z3B1aHR3X2xsY19zbGljZSkgewo+ICsJCXUzMiBncHVodHdfc2NpZCA9IGxsY2NfZ2V0 X3NsaWNlX2lkKGxsYy0+Z3B1aHR3X2xsY19zbGljZSk7Cj4gKwo+ICsJCWxsYy0+Y250bDFfcmVn dmFsIHw9Cj4gKwkJCWdwdWh0d19zY2lkIDw8IEE2WFhfR1BVSFRXX0xMQ19TQ0lEX1NISUZUOwo+ ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBhNnh4X3BtX3Jl c3VtZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICAgewo+ICAgCXN0cnVjdCBhZHJlbm9fZ3B1ICph ZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dwdShncHUpOwo+IEBAIC05MjMsNiArMTA3Miw5IEBAIHN0 YXRpYyBpbnQgYTZ4eF9wbV9yZXN1bWUoc3RydWN0IG1zbV9ncHUgKmdwdSkKPiAgIAo+ICAgCWdw dS0+bmVlZHNfaHdfaW5pdCA9IHRydWU7Cj4gICAKPiArCS8qIEFjdGl2YXRlIExMQyBzbGljZXMg Ki8KPiArCWE2eHhfbGxjX2FjdGl2YXRlKGdwdSk7Cj4gKwo+ICAgCXJldHVybiByZXQ7Cj4gICB9 Cj4gICAKPiBAQCAtOTMxLDYgKzEwODMsOSBAQCBzdGF0aWMgaW50IGE2eHhfcG1fc3VzcGVuZChz dHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICAgCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0g dG9fYWRyZW5vX2dwdShncHUpOwo+ICAgCXN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSB0b19h Nnh4X2dwdShhZHJlbm9fZ3B1KTsKPiAgIAo+ICsJLyogRGVhY3RpdmF0ZSBMTEMgc2xpY2VzICov Cj4gKwlhNnh4X2xsY19kZWFjdGl2YXRlKGdwdSk7Cj4gKwo+ICAgCS8qCj4gICAJICogTWFrZSBz dXJlIHRoZSBHTVUgaXMgaWRsZSBiZWZvcmUgY29udGludWluZyAoYmVjYXVzZSBzb21lIHRyYW5z aXRpb25zCj4gICAJICogbWF5IHVzZSBWQklGCj4gQEAgLTk5Myw2ICsxMTQ4LDggQEAgc3RhdGlj IHZvaWQgYTZ4eF9kZXN0cm95KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gICAJCWRybV9nZW1fb2Jq ZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGE2eHhfZ3B1LT5zcWVfYm8pOwo+ICAgCX0KPiAgIAo+ ICsJYTZ4eF9sbGNfc2xpY2VzX2Rlc3Ryb3koJmE2eHhfZ3B1LT5sbGMpOwo+ICsKPiAgIAlhNnh4 X2dtdV9yZW1vdmUoYTZ4eF9ncHUpOwo+ICAgCj4gICAJYWRyZW5vX2dwdV9jbGVhbnVwKGFkcmVu b19ncHUpOwo+IEBAIC0xMDQwLDcgKzExOTcsMTAgQEAgc3RydWN0IG1zbV9ncHUgKmE2eHhfZ3B1 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlhZHJlbm9fZ3B1LT5yZWdpc3RlcnMg PSBhNnh4X3JlZ2lzdGVyczsKPiAgIAlhZHJlbm9fZ3B1LT5yZWdfb2Zmc2V0cyA9IGE2eHhfcmVn aXN0ZXJfb2Zmc2V0czsKPiAgIAo+IC0JcmV0ID0gYWRyZW5vX2dwdV9pbml0KGRldiwgcGRldiwg YWRyZW5vX2dwdSwgJmZ1bmNzLCA0LCAwKTsKPiArCXJldCA9IGE2eHhfbGxjX3NsaWNlc19pbml0 KHBkZXYsICZhNnh4X2dwdS0+bGxjKTsKPiArCj4gKwlyZXQgPSBhZHJlbm9fZ3B1X2luaXQoZGV2 LCBwZGV2LCBhZHJlbm9fZ3B1LCAmZnVuY3MsIDQsCj4gKwkJCXJldCA/IDAgOiBNTVVfRkVBVFVS RV9VU0VfU1lTVEVNX0NBQ0hFKTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCWE2eHhfZGVzdHJveSgm KGE2eHhfZ3B1LT5iYXNlLmJhc2UpKTsKPiAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmgKPiBpbmRleCAyMWFiNzAxLi4zOTJjNDI2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oCj4gQEAgLTIxLDYgKzIxLDE0 IEBACj4gICAKPiAgIGV4dGVybiBib29sIGhhbmdfZGVidWc7Cj4gICAKPiArc3RydWN0IGE2eHhf bGxjIHsKPiArCXZvaWQgX19pb21lbSAqbW1pbzsKPiArCXZvaWQgKmdwdV9sbGNfc2xpY2U7Cj4g Kwl2b2lkICpncHVodHdfbGxjX3NsaWNlOwo+ICsJdTMyIGNudGwwX3JlZ3ZhbDsKPiArCXUzMiBj bnRsMV9yZWd2YWw7Cj4gK307Cj4gKwo+ICAgc3RydWN0IGE2eHhfZ3B1IHsKPiAgIAlzdHJ1Y3Qg YWRyZW5vX2dwdSBiYXNlOwo+ICAgCj4gQEAgLTQ2LDYgKzU0LDcgQEAgc3RydWN0IGE2eHhfZ3B1 IHsKPiAgIAl1aW50NjRfdCBzY3JhdGNoX2lvdmE7Cj4gICAKPiAgIAlzdHJ1Y3QgYTZ4eF9nbXUg Z211Owo+ICsJc3RydWN0IGE2eHhfbGxjIGxsYzsKPiAgIH07Cj4gICAKPiAgICNkZWZpbmUgdG9f YTZ4eF9ncHUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBhNnh4X2dwdSwgYmFzZSkKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2lvbW11LmMKPiBpbmRleCAxYWI2MjliLi42YzAzZWRhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9pb21tdS5jCj4gQEAgLTM5LDYgKzM5LDE2IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11 X2F0dGFjaChzdHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAo+ ICAgewo+ICAgCXN0cnVjdCBtc21faW9tbXUgKmlvbW11ID0gdG9fbXNtX2lvbW11KG1tdSk7Cj4g ICAJaW50IHJldDsKPiArCWludCBncHVfaHR3X2xsYyA9IDE7Cj4gKwo+ICsJLyoKPiArCSAqIFRo aXMgYWxsb3dzIEdQVSB0byBzZXQgdGhlIGJ1cyBhdHRyaWJ1dGVzIHJlcXVpcmVkCj4gKwkgKiB0 byB1c2Ugc3lzdGVtIGNhY2hlIG9uIGJlaGFsZiBvZiB0aGUgaW9tbXUgcGFnZSB0YWJsZQo+ICsJ ICogd2Fsa2VyLgo+ICsJICovCj4gKwlpZiAobXNtX21tdV9oYXNfZmVhdHVyZShtbXUsIE1NVV9G RUFUVVJFX1VTRV9TWVNURU1fQ0FDSEUpKQo+ICsJCWlvbW11X2RvbWFpbl9zZXRfYXR0cihpb21t dS0+ZG9tYWluLAo+ICsJCQkJRE9NQUlOX0FUVFJfVVNFX1VQU1RSRUFNX0hJTlQsICZncHVfaHR3 X2xsYyk7Cj4gICAKPiAgIAlwbV9ydW50aW1lX2dldF9zdXBwbGllcnMobW11LT5kZXYpOwo+ICAg CXJldCA9IGlvbW11X2F0dGFjaF9kZXZpY2UoaW9tbXUtPmRvbWFpbiwgbW11LT5kZXYpOwo+IEBA IC02Myw2ICs3Myw5IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11X21hcChzdHJ1Y3QgbXNtX21tdSAq bW11LCB1aW50NjRfdCBpb3ZhLAo+ICAgCXN0cnVjdCBtc21faW9tbXUgKmlvbW11ID0gdG9fbXNt X2lvbW11KG1tdSk7Cj4gICAJc2l6ZV90IHJldDsKPiAgIAo+ICsJaWYgKG1zbV9tbXVfaGFzX2Zl YXR1cmUobW11LCBNTVVfRkVBVFVSRV9VU0VfU1lTVEVNX0NBQ0hFKSkKPiArCQlwcm90IHw9IElP TU1VX1VTRV9VUFNUUkVBTV9ISU5UOwo+ICsKPiAgIAlwbV9ydW50aW1lX2dldF9zdXBwbGllcnMo bW11LT5kZXYpOwo+ICAgCXJldCA9IGlvbW11X21hcF9zZyhpb21tdS0+ZG9tYWluLCBpb3ZhLCBz Z3QtPnNnbCwgc2d0LT5uZW50cywgcHJvdCk7Cj4gICAJcG1fcnVudGltZV9wdXRfc3VwcGxpZXJz KG1tdS0+ZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAo+IGluZGV4IDg1ZGY3OGQuLjI1N2JkZWEg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAo+IEBAIC0zMCw2ICszMCw5IEBAIHN0cnVjdCBtc21f bW11X2Z1bmNzIHsKPiAgIAl2b2lkICgqZGVzdHJveSkoc3RydWN0IG1zbV9tbXUgKm1tdSk7Cj4g ICB9Owo+ICAgCj4gKy8qIE1NVSBmZWF0dXJlcyAqLwo+ICsjZGVmaW5lIE1NVV9GRUFUVVJFX1VT RV9TWVNURU1fQ0FDSEUgKDEgPDwgMCkKPiArCj4gICBzdHJ1Y3QgbXNtX21tdSB7Cj4gICAJY29u c3Qgc3RydWN0IG1zbV9tbXVfZnVuY3MgKmZ1bmNzOwo+ICAgCXN0cnVjdCBkZXZpY2UgKmRldjsK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVu byBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=