From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: Re: [PATCH 03/10] drm/msm/gpu: Capture the state of the GPU Date: Tue, 22 May 2018 17:12:39 +0530 Message-ID: <7a0cf4b0-2ba8-d91a-a19d-37f1110eaee4@codeaurora.org> References: <20180417224441.32355-1-jcrouse@codeaurora.org> <20180417224441.32355-4-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180417224441.32355-4-jcrouse@codeaurora.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jordan Crouse , freedreno@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org QSBmZXcgbml0cwoKT24gNC8xOC8yMDE4IDQ6MTQgQU0sIEpvcmRhbiBDcm91c2Ugd3JvdGU6Cj4g QWRkIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBjYXB0dXJlIHRoZSBzdGF0ZSBjdXJyZW50IHN0YXRl IG9mIHRoZQpyZW1vdmUgZXh0cmEgc3RhdGUKPiBHUFUgYW5kIHN0b3JlIGl0IGluIG1lbW9yeS4g IFRoaXMgaXMgdXNlZnVsIGZvciBzdG9yaW5nIHRoZSBzdGF0ZQo+IG9mIGEgaHVuZyBHUFUgc28g aXQgY2FuIGJlIGR1bXBlZCBsYXRlci4KPiAKPiBGb3Igbm93IGdyYWIgdGhlIHNhbWUgYmFzaWMg cmluZ2J1ZmZlciBpbmZvcm1hdGlvbiBhbmQgcmVnaXN0ZXJzCj4gdGhhdCBhcmUgcHJvdmlkZWQg YnkgdGhlIGRlYnVnZnMgJ2dwdScgbm9kZSBidXQgb2J2aW91c2x5IHRoaXMgY2FuCj4gYmUgZXh0 ZW5kZWQgdG8gY2FwdHVyZSBhIG11Y2ggbGFyZ2VyIHNldCBvZiBHUFUgaW5mb3JtYXRpb24uCj4g Cj4gU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4K PiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMgICB8IDE1ICsr KysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMgICB8IDE0ICsr KysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgICB8IDIyICsr KysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYyB8IDU0 ICsrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2FkcmVub19ncHUuaCB8ICAzICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaCAg ICAgICAgICAgfCAxOSArKysrKysrKysKPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlv bnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9n cHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMKPiBpbmRleCAzZWJi ZWIzYTliNjguLmI3MDdiNWJjYTlhYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2FkcmVuby9hM3h4X2dwdS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4 eF9ncHUuYwo+IEBAIC00MjcsNiArNDI3LDE5IEBAIHN0YXRpYyB2b2lkIGEzeHhfZHVtcChzdHJ1 Y3QgbXNtX2dwdSAqZ3B1KQo+ICAgCQkJZ3B1X3JlYWQoZ3B1LCBSRUdfQTNYWF9SQkJNX1NUQVRV UykpOwo+ICAgCWFkcmVub19kdW1wKGdwdSk7Cj4gICB9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IG1z bV9ncHVfc3RhdGUgKmEzeHhfZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICt7 Cj4gKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBhZHJlbm9fZ3B1X3N0YXRlX2dldChn cHUpOwo+ICsKPiArCWlmIChJU19FUlIoc3RhdGUpKQo+ICsJCXJldHVybiBzdGF0ZTsKPiArCj4g KwlzdGF0ZS0+cmJibV9zdGF0dXMgPSBncHVfcmVhZChncHUsIFJFR19BM1hYX1JCQk1fU1RBVFVT KTsKPiArCj4gKwlyZXR1cm4gc3RhdGU7Cj4gK30KPiArCj4gICAvKiBSZWdpc3RlciBvZmZzZXQg ZGVmaW5lcyBmb3IgQTNYWCAqLwo+ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBhM3h4X3Jl Z2lzdGVyX29mZnNldHNbUkVHX0FEUkVOT19SRUdJU1RFUl9NQVhdID0gewo+ICAgCVJFR19BRFJF Tk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfUkJfQkFTRSwgUkVHX0FYWFhfQ1BfUkJfQkFTRSksCj4g QEAgLTQ1Myw2ICs0NjYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19ncHVfZnVuY3Mg ZnVuY3MgPSB7Cj4gICAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gICAJCS5zaG93ID0gYTN4eF9z aG93LAo+ICAgI2VuZGlmCj4gKwkJLmdwdV9zdGF0ZV9nZXQgPSBhM3h4X2dwdV9zdGF0ZV9nZXQs Cj4gKwkJLmdwdV9zdGF0ZV9wdXQgPSBhZHJlbm9fZ3B1X3N0YXRlX3B1dCwKPiAgIAl9LAo+ICAg fTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dw dS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwo+IGluZGV4IDE2ZDNk NTk2NjM4ZS4uMTdlOTdlYmMxMDc3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2E0eHhfZ3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4 X2dwdS5jCj4gQEAgLTQ2NSw2ICs0NjUsMTggQEAgc3RhdGljIHZvaWQgYTR4eF9zaG93KHN0cnVj dCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAgIH0KPiAgICNlbmRpZgo+ICAg Cj4gK3N0YXRpYyBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqYTR4eF9ncHVfc3RhdGVfZ2V0KHN0cnVj dCBtc21fZ3B1ICpncHUpCj4gK3sKPiArCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IGFk cmVub19ncHVfc3RhdGVfZ2V0KGdwdSk7Cj4gKwo+ICsJaWYgKElTX0VSUihzdGF0ZSkpCj4gKwkJ cmV0dXJuIHN0YXRlOwo+ICsKPiArCXN0YXRlLT5yYmJtX3N0YXR1cyA9IGdwdV9yZWFkKGdwdSwg UkVHX0E0WFhfUkJCTV9TVEFUVVMpOwo+ICsKPiArCXJldHVybiBzdGF0ZTsKPiArfQo+ICsKPiAg IC8qIFJlZ2lzdGVyIG9mZnNldCBkZWZpbmVzIGZvciBBNFhYLCBpbiBvcmRlciBvZiBlbnVtIGFk cmVub19yZWdzICovCj4gICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGE0eHhfcmVnaXN0ZXJf b2Zmc2V0c1tSRUdfQURSRU5PX1JFR0lTVEVSX01BWF0gPSB7Cj4gICAJUkVHX0FEUkVOT19ERUZJ TkUoUkVHX0FEUkVOT19DUF9SQl9CQVNFLCBSRUdfQTRYWF9DUF9SQl9CQVNFKSwKPiBAQCAtNTQx LDYgKzU1Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5jcyA9 IHsKPiAgICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiAgIAkJLnNob3cgPSBhNHh4X3Nob3csCj4g ICAjZW5kaWYKPiArCQkuZ3B1X3N0YXRlX2dldCA9IGE0eHhfZ3B1X3N0YXRlX2dldCwKPiArCQku Z3B1X3N0YXRlX3B1dCA9IGFkcmVub19ncHVfc3RhdGVfcHV0LAo+ICAgCX0sCj4gICAJLmdldF90 aW1lc3RhbXAgPSBhNHh4X2dldF90aW1lc3RhbXAsCj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYTV4eF9ncHUuYwo+IGluZGV4IGE0ZjY4YWZmYzEzYi4uMDhmMjU3OThhYmRiIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCj4gQEAgLTExOTUsNiArMTE5NSwy NiBAQCBzdGF0aWMgaW50IGE1eHhfZ2V0X3RpbWVzdGFtcChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCB1 aW50NjRfdCAqdmFsdWUpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiArc3RhdGljIHN0cnVj dCBtc21fZ3B1X3N0YXRlICphNXh4X2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSkK PiArewo+ICsJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlOwo+ICsKPiArCS8qCj4gKwkgKiBU ZW1wb3JhcmlseSBkaXNhYmxlIGhhcmR3YXJlIGNsb2NrIGdhdGluZyBiZWZvcmUgZ29pbmcgaW50 bwo+ICsJICogYWRyZW5vX3Nob3cgdG8gYXZvaWQgaXNzdWVzIHdoaWxlIHJlYWRpbmcgdGhlIHJl Z2lzdGVycwo+ICsJICovCj4gKwlhNXh4X3NldF9od2NnKGdwdSwgZmFsc2UpOwo+ICsKPiArCXN0 YXRlID0gYWRyZW5vX2dwdV9zdGF0ZV9nZXQoZ3B1KTsKPiArCj4gKwlpZiAoIUlTX0VSUihzdGF0 ZSkpCj4gKwkJc3RhdGUtPnJiYm1fc3RhdHVzID0gZ3B1X3JlYWQoZ3B1LCBSRUdfQTVYWF9SQkJN X1NUQVRVUyk7Cj4gKwo+ICsJYTV4eF9zZXRfaHdjZyhncHUsIHRydWUpOwo+ICsKPiArCXJldHVy biBzdGF0ZTsKPiArfQo+ICsKPiAgICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiAgIHN0YXRpYyB2 b2lkIGE1eHhfc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4g ICB7Cj4gQEAgLTEyNDQsNiArMTI2NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dw dV9mdW5jcyBmdW5jcyA9IHsKPiAgIAkJLmRlYnVnZnNfaW5pdCA9IGE1eHhfZGVidWdmc19pbml0 LAo+ICAgI2VuZGlmCj4gICAJCS5ncHVfYnVzeSA9IGE1eHhfZ3B1X2J1c3ksCj4gKwkJLmdwdV9z dGF0ZV9nZXQgPSBhNXh4X2dwdV9zdGF0ZV9nZXQsCj4gKwkJLmdwdV9zdGF0ZV9wdXQgPSBhZHJl bm9fZ3B1X3N0YXRlX3B1dCwKPiAgIAl9LAo+ICAgCS5nZXRfdGltZXN0YW1wID0gYTV4eF9nZXRf dGltZXN0YW1wLAo+ICAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYWRyZW5vX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5j Cj4gaW5kZXggMTdkMDUwNmQwNThjLi5iMmNjYWYyNTc2N2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCj4gQEAgLTM2OCw2ICszNjgsNjAgQEAgYm9vbCBhZHJl bm9faWRsZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKnJpbmcp Cj4gICAJcmV0dXJuIGZhbHNlOwo+ICAgfQo+ICAgCj4gK3N0cnVjdCBtc21fZ3B1X3N0YXRlICph ZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICt7Cj4gKwlzdHJ1Y3Qg YWRyZW5vX2dwdSAqYWRyZW5vX2dwdSA9IHRvX2FkcmVub19ncHUoZ3B1KTsKPiArCXN0cnVjdCBt c21fZ3B1X3N0YXRlICpzdGF0ZTsKPiArCWludCBpLCBjb3VudCA9IDA7Cj4gKwo+ICsJc3RhdGUg PSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghc3RhdGUpCj4g KwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gKwo+ICsJZG9fZ2V0dGltZW9mZGF5KCZzdGF0 ZS0+dGltZSk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGdwdS0+bnJfcmluZ3M7IGkrKykgewo+ ICsJCXN0YXRlLT5yaW5nW2ldLmZlbmNlID0gZ3B1LT5yYltpXS0+bWVtcHRycy0+ZmVuY2U7Cj4g KwkJc3RhdGUtPnJpbmdbaV0uc2Vxbm8gPSBncHUtPnJiW2ldLT5zZXFubzsKPiArCQlzdGF0ZS0+ cmluZ1tpXS5ycHRyID0gZ2V0X3JwdHIoYWRyZW5vX2dwdSwgZ3B1LT5yYltpXSk7Cj4gKwkJc3Rh dGUtPnJpbmdbaV0ud3B0ciA9IGdldF93cHRyKGdwdS0+cmJbaV0pOwo+ICsJfQo+ICsKPiArCS8q IENvdW50IHRoZSBudW1iZXIgb2YgcmVnaXN0ZXJzICovCj4gKwlmb3IgKGkgPSAwOyBhZHJlbm9f Z3B1LT5yZWdpc3RlcnNbaV0gIT0gfjA7IGkgKz0gMikKPiArCQljb3VudCArPSBhZHJlbm9fZ3B1 LT5yZWdpc3RlcnNbaSArIDFdIC0KPiArCQkJYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2ldICsgMTsK PiArCj4gKwlzdGF0ZS0+cmVnaXN0ZXJzID0ga2NhbGxvYyhjb3VudCAqIDIsIHNpemVvZih1MzIp LCBHRlBfS0VSTkVMKTsKPiArCWlmIChzdGF0ZS0+cmVnaXN0ZXJzKSB7Cj4gKwkJaW50IHBvcyA9 IDA7Cj4gKwo+ICsJCWZvciAoaSA9IDA7IGFkcmVub19ncHUtPnJlZ2lzdGVyc1tpXSAhPSB+MDsg aSArPSAyKSB7Cj4gKwkJCXVpbnQzMl90IHN0YXJ0ID0gYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2ld Owo+ICsJCQl1aW50MzJfdCBlbmQgICA9IGFkcmVub19ncHUtPnJlZ2lzdGVyc1tpKzFdOwpOZWVk cyBzcGFjaW5nIGFyb3VuZCB0aGUgJysnIG9wZXJhbmQKPiArCQkJdWludDMyX3QgYWRkcjsKV2h5 IG5vdCBqdXN0IHVzZSB1MzIgYXMgYWJvdmU/Cj4gKwo+ICsJCQlmb3IgKGFkZHIgPSBzdGFydDsg YWRkciA8PSBlbmQ7IGFkZHIrKykgewo+ICsJCQkJc3RhdGUtPnJlZ2lzdGVyc1twb3MrK10gPSBh ZGRyOwo+ICsJCQkJc3RhdGUtPnJlZ2lzdGVyc1twb3MrK10gPSBncHVfcmVhZChncHUsIGFkZHIp Owo+ICsJCQl9Cj4gKwkJfQo+ICsKPiArCQlzdGF0ZS0+bnJfcmVnaXN0ZXJzID0gY291bnQ7Cj4g Kwl9Cj4gKwo+ICsJcmV0dXJuIHN0YXRlOwo+ICt9Cj4gKwo+ICt2b2lkIGFkcmVub19ncHVfc3Rh dGVfcHV0KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSkKPiArewo+ICsJaWYgKElTX0VSUl9P Ul9OVUxMKHN0YXRlKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJa2ZyZWUoc3RhdGUtPnJlZ2lzdGVy cyk7Cj4gKwlrZnJlZShzdGF0ZSk7Cj4gK30KPiArCj4gICAjaWZkZWYgQ09ORklHX0RFQlVHX0ZT Cj4gICB2b2lkIGFkcmVub19zaG93KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmls ZSAqbSkKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRy ZW5vX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4gaW5k ZXggZDZiMGU3YjgxM2Y0Li4wYmViMDc4ZWI2NTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYWRyZW5vX2dwdS5oCj4gQEAgLTIyOCw2ICsyMjgsOSBAQCBpbnQgYWRyZW5vX2dwdV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gICB2b2lkIGFkcmVub19ncHVfY2xlYW51cChzdHJ1Y3QgYWRyZW5vX2dwdSAqZ3B1KTsKPiAg IAo+ICAgCj4gK3N0cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1 Y3QgbXNtX2dwdSAqZ3B1KTsKPiArdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3QgbXNt X2dwdV9zdGF0ZSAqc3RhdGUpOwo+ICsKPiAgIC8qIHJpbmdidWZmZXIgaGVscGVycyAodGhlIHBh cnRzIHRoYXQgYXJlIGFkcmVubyBzcGVjaWZpYykgKi8KPiAgIAo+ICAgc3RhdGljIGlubGluZSB2 b2lkCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKPiBpbmRleCBiODI0MTE3OTE3NWEuLjRiZTcyYTYxMmJl YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCj4gQEAgLTI3LDYgKzI3LDcgQEAKPiAgIAo+ICAg c3RydWN0IG1zbV9nZW1fc3VibWl0Owo+ICAgc3RydWN0IG1zbV9ncHVfcGVyZmNudHI7Cj4gK3N0 cnVjdCBtc21fZ3B1X3N0YXRlOwo+ICAgCj4gICBzdHJ1Y3QgbXNtX2dwdV9jb25maWcgewo+ICAg CWNvbnN0IGNoYXIgKmlvbmFtZTsKPiBAQCAtNjksNiArNzAsOCBAQCBzdHJ1Y3QgbXNtX2dwdV9m dW5jcyB7Cj4gICAJaW50ICgqZGVidWdmc19pbml0KShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1 Y3QgZHJtX21pbm9yICptaW5vcik7Cj4gICAjZW5kaWYKPiAgIAlpbnQgKCpncHVfYnVzeSkoc3Ry dWN0IG1zbV9ncHUgKmdwdSwgdWludDY0X3QgKnZhbHVlKTsKPiArCXN0cnVjdCBtc21fZ3B1X3N0 YXRlICooKmdwdV9zdGF0ZV9nZXQpKHN0cnVjdCBtc21fZ3B1ICpncHUpOwo+ICsJdm9pZCAoKmdw dV9zdGF0ZV9wdXQpKHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7Cj4gICB9Owo+ICAgCj4g ICBzdHJ1Y3QgbXNtX2dwdSB7Cj4gQEAgLTE3NSw2ICsxNzgsMjIgQEAgc3RydWN0IG1zbV9ncHVf c3VibWl0cXVldWUgewo+ICAgCXN0cnVjdCBrcmVmIHJlZjsKPiAgIH07Cj4gICAKPiArc3RydWN0 IG1zbV9ncHVfc3RhdGUgewo+ICsJc3RydWN0IHRpbWV2YWwgdGltZTsKPiArCj4gKwlzdHJ1Y3Qg ewo+ICsJCXUzMiBmZW5jZTsKPiArCQl1MzIgc2Vxbm87Cj4gKwkJdTMyIHJwdHI7Cj4gKwkJdTMy IHdwdHI7Cj4gKwl9IHJpbmdbTVNNX0dQVV9NQVhfUklOR1NdOwo+ICsKPiArCWludCBucl9yZWdp c3RlcnM7Cj4gKwl1MzIgKnJlZ2lzdGVyczsKPiArCj4gKwl1MzIgcmJibV9zdGF0dXM7Cj4gK307 Cj4gKwo+ICAgc3RhdGljIGlubGluZSB2b2lkIGdwdV93cml0ZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1 LCB1MzIgcmVnLCB1MzIgZGF0YSkKPiAgIHsKPiAgIAltc21fd3JpdGVsKGRhdGEsIGdwdS0+bW1p byArIChyZWcgPDwgMikpOwo+IAoKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwg SW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCkxpbnV4IEZvdW5kYXRp b24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=