From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH v4 2/2] drm/amdgpu: Free VGA stolen memory as soon as possible. Date: Thu, 12 Apr 2018 09:33:30 -0400 Message-ID: References: <1523506110-14002-1-git-send-email-andrey.grodzovsky@amd.com> <1523506110-14002-2-git-send-email-andrey.grodzovsky@amd.com> <9abad4d7-8ca7-30fa-6bb7-cadb4ae01799@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <9abad4d7-8ca7-30fa-6bb7-cadb4ae01799-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Andrey Grodzovsky Cc: Alex Deucher , "Ranjbar, Ramin" , Huang Rui , Christian Koenig , amd-gfx list T24gVGh1LCBBcHIgMTIsIDIwMTggYXQgNzoxNyBBTSwgQW5kcmV5IEdyb2R6b3Zza3kKPEFuZHJl eS5Hcm9kem92c2t5QGFtZC5jb20+IHdyb3RlOgo+Cj4KPiBPbiAwNC8xMi8yMDE4IDEyOjMyIEFN LCBBbGV4IERldWNoZXIgd3JvdGU6Cj4+Cj4+IE9uIFRodSwgQXByIDEyLCAyMDE4IGF0IDEyOjA4 IEFNLCBBbmRyZXkgR3JvZHpvdnNreQo+PiA8YW5kcmV5Lmdyb2R6b3Zza3lAYW1kLmNvbT4gd3Jv dGU6Cj4+Pgo+Pj4gUmVzZXJ2ZWQgVlJBTSBpcyB1c2VkIHRvIGF2b2lkIG92ZXJyaWRpbmcgcHJl IE9TIEZCLgo+Pj4gT25jZSBvdXIgZGlzcGxheSBzdGFjayB0YWtlcyBvdmVyIHdlIGRvbid0IG5l ZWQgdGhlIHJlc2VydmVkCj4+PiBWUkFNIGFueW1vcmUuCj4+Pgo+Pj4gdjI6Cj4+PiBSZW1vdmUg Y29tbWVudCwgd2Uga25vdyBhY3R1YWxseSB3aHkgd2UgbmVlZCB0byByZXNlcnZlIHRoZSBzdG9s ZW4gVlJBTS4KPj4+IEZpeCByZXR1cm4gdHlwZSBmb3IgYW1kZ3B1X3R0bV9sYXRlX2luaXQuCj4+ PiB2MzoKPj4+IFJldHVybiAwIGluIGFtZGdwdV9ib19sYXRlX2luaXQsIHJlYmFzZSBvbiBjaGFu Z2VzIHRvIHByZXZpb3VzIHBhdGNoCj4+PiB2NDoKPj4+IERvbid0IHJlbGVhc2Ugc3RvbGVuIG1l bW9yeSBmb3IgR01DOSBBU0lDcyB1bnRpbGwgR0FSVCBjb3JydXB0aW9uCj4+PiBvbiBTMyByZXN1 bWUgaXMgcmVzb2x2ZWQuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kg PGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERldWNo ZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4+Cj4+IExvb2tzIGxpa2UgeW91IHVzZWQg dGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBwYXRjaCBhcyB3ZWxsLgo+PiBVcGRhdGVkIHZl cnNpb24gaGVyZToKPj4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzIx NTU2Ny8KPj4gbW9yZSBjb21tZW50cyBiZWxvdy4KPj4KPj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgfCAgNyArKysrKysrCj4+PiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCB8ICAxICsKPj4+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgIHwgIDggKysrKysrLS0KPj4+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oICAgIHwgIDEgKwo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jICAgICAgfCAgMiArKwo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jICAgICAgfCAgMiArKwo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jICAgICAgfCAgMiArKwo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICAgfCAxNCArKysrKysrKysr LS0tLQo+Pj4gICA4IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0 LmMKPj4+IGluZGV4IDllMjNkNmYuLmExNjBlZjAgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4gQEAgLTg1Miw2ICs4NTIsMTMgQEAgaW50 IGFtZGdwdV9ib19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4gICAgICAgICAg cmV0dXJuIGFtZGdwdV90dG1faW5pdChhZGV2KTsKPj4+ICAgfQo+Pj4KPj4+ICtpbnQgYW1kZ3B1 X2JvX2xhdGVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4+ICt7Cj4+PiArICAg ICAgIGFtZGdwdV90dG1fbGF0ZV9pbml0KGFkZXYpOwo+Pj4gKwo+Pj4gKyAgICAgICByZXR1cm4g MDsKPj4+ICt9Cj4+PiArCj4+PiAgIHZvaWQgYW1kZ3B1X2JvX2Zpbmkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCj4+PiAgIHsKPj4+ICAgICAgICAgIGFtZGdwdV90dG1fZmluaShhZGV2KTsK Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0 LmgKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4+PiBp bmRleCAzYmVlMTMzLi4xZTlmZTg1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfb2JqZWN0LmgKPj4+IEBAIC0yNTEsNiArMjUxLDcgQEAgaW50IGFtZGdwdV9i b19waW5fcmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+IHUzMiBkb21haW4sCj4+ PiAgIGludCBhbWRncHVfYm9fdW5waW4oc3RydWN0IGFtZGdwdV9ibyAqYm8pOwo+Pj4gICBpbnQg YW1kZ3B1X2JvX2V2aWN0X3ZyYW0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+Pj4gICBp bnQgYW1kZ3B1X2JvX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+Pj4gK2ludCBh bWRncHVfYm9fbGF0ZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPj4+ICAgdm9p ZCBhbWRncHVfYm9fZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+PiAgIGludCBh bWRncHVfYm9fZmJkZXZfbW1hcChzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+PiBpbmRleCAwNTU1ODIx Li43YTYwOGNmIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3R0bS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmMKPj4+IEBAIC0xNTE3LDE0ICsxNTE3LDE4IEBAIGludCBhbWRncHVfdHRtX2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+PiAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4K Pj4+ICt2b2lkIGFtZGdwdV90dG1fbGF0ZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQo+Pj4gK3sKPj4+ICsgICAgICAgaWYgKGFkZXYtPmdtYy5zdG9sZW5fc2l6ZSkKPj4KPj4gbm8g bmVlZCB0byBjaGVjayBmb3IgTlVMTCBoZXJlLiAgYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCkgd2ls bCBkbyB0aGUKPj4gcmlnaHQgdGhpbmcgZXZlbiBpZiBzdG9sZW5fdmdhX21lbW9yeSBpcyBOVUxM Lgo+Pgo+Pj4gKyAgICAgICAgICAgICAgIGFtZGdwdV9ib19mcmVlX2tlcm5lbCgmYWRldi0+c3Rv bGVuX3ZnYV9tZW1vcnksIE5VTEwsCj4+PiBOVUxMKTsKPj4+ICt9Cj4+PiArCj4+PiAgIHZvaWQg YW1kZ3B1X3R0bV9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4gICB7Cj4+PiAg ICAgICAgICBpZiAoIWFkZXYtPm1tYW4uaW5pdGlhbGl6ZWQpCj4+PiAgICAgICAgICAgICAgICAg IHJldHVybjsKPj4+Cj4+PiAgICAgICAgICBhbWRncHVfdHRtX2RlYnVnZnNfZmluaShhZGV2KTsK Pj4+IC0gICAgICAgaWYgKGFkZXYtPmdtYy5zdG9sZW5fc2l6ZSkKPj4+IC0gICAgICAgICAgICAg ICBhbWRncHVfYm9fZnJlZV9rZXJuZWwoJmFkZXYtPnN0b2xlbl92Z2FfbWVtb3J5LCBOVUxMLAo+ Pj4gTlVMTCk7Cj4+PiAgICAgICAgICBhbWRncHVfdHRtX2Z3X3Jlc2VydmVfdnJhbV9maW5pKGFk ZXYpOwo+Pj4gICAgICAgICAgaWYgKGFkZXYtPm1tYW4uYXBlcl9iYXNlX2thZGRyKQo+Pj4gICAg ICAgICAgICAgICAgICBpb3VubWFwKGFkZXYtPm1tYW4uYXBlcl9iYXNlX2thZGRyKTsKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCj4+PiBpbmRleCA2ZWE3ZGU4 Li5lOTY5Yzg3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3R0bS5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmgKPj4+IEBAIC03Nyw2ICs3Nyw3IEBAIHVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShz dHJ1Y3QKPj4+IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwo+Pj4gICB1aW50NjRfdCBhbWRn cHVfdnJhbV9tZ3JfdmlzX3VzYWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKTsK Pj4+Cj4+PiAgIGludCBhbWRncHVfdHRtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Owo+Pj4gK3ZvaWQgYW1kZ3B1X3R0bV9sYXRlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpOwo+Pj4gICB2b2lkIGFtZGdwdV90dG1fZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7Cj4+PiAgIHZvaWQgYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBlbmFibGUpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192Nl8wLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y2XzAuYwo+Pj4gaW5kZXggNjNmMGI2NS4uNGE4ZjliZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKPj4+IEBAIC04MTksNiArODE5LDggQEAgc3RhdGljIGlu dCBnbWNfdjZfMF9sYXRlX2luaXQodm9pZCAqaGFuZGxlKQo+Pj4gICB7Cj4+PiAgICAgICAgICBz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRs ZTsKPj4+Cj4+PiArICAgICAgIGFtZGdwdV9ib19sYXRlX2luaXQoYWRldik7Cj4+PiArCj4+PiAg ICAgICAgICBpZiAoYW1kZ3B1X3ZtX2ZhdWx0X3N0b3AgIT0gQU1ER1BVX1ZNX0ZBVUxUX1NUT1Bf QUxXQVlTKQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gYW1kZ3B1X2lycV9nZXQoYWRldiwg JmFkZXYtPmdtYy52bV9mYXVsdCwgMCk7Cj4+PiAgICAgICAgICBlbHNlCj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+PiBpbmRleCAyZGViNWM5Li4xODlmZGY5IDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+Pj4gQEAgLTk1OCw2 ICs5NTgsOCBAQCBzdGF0aWMgaW50IGdtY192N18wX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCj4+ PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOwo+Pj4KPj4+ICsgICAgICAgYW1kZ3B1X2JvX2xhdGVfaW5p dChhZGV2KTsKPj4+ICsKPj4+ICAgICAgICAgIGlmIChhbWRncHVfdm1fZmF1bHRfc3RvcCAhPSBB TURHUFVfVk1fRkFVTFRfU1RPUF9BTFdBWVMpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVybiBh bWRncHVfaXJxX2dldChhZGV2LCAmYWRldi0+Z21jLnZtX2ZhdWx0LCAwKTsKPj4+ICAgICAgICAg IGVsc2UKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhf MC5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPj4+IGluZGV4 IDA0YjAwZGYuLjE5ZTE1M2YgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjhfMC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djhfMC5jCj4+PiBAQCAtMTA0OSw2ICsxMDQ5LDggQEAgc3RhdGljIGludCBnbWNfdjhfMF9sYXRl X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4gICB7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4+Cj4+PiArICAg ICAgIGFtZGdwdV9ib19sYXRlX2luaXQoYWRldik7Cj4+PiArCj4+PiAgICAgICAgICBpZiAoYW1k Z3B1X3ZtX2ZhdWx0X3N0b3AgIT0gQU1ER1BVX1ZNX0ZBVUxUX1NUT1BfQUxXQVlTKQo+Pj4gICAg ICAgICAgICAgICAgICByZXR1cm4gYW1kZ3B1X2lycV9nZXQoYWRldiwgJmFkZXYtPmdtYy52bV9m YXVsdCwgMCk7Cj4+PiAgICAgICAgICBlbHNlCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjlfMC5jCj4+PiBpbmRleCAyNTJhNmM2OS4uMDk5ZTNjZTUgMTAwNjQ0Cj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+PiBAQCAtNjU5LDYgKzY1OSwxNiBAQCBz dGF0aWMgaW50IGdtY192OV8wX2xhdGVfaW5pdCh2b2lkICpoYW5kbGUpCj4+PiAgICAgICAgICB1 bnNpZ25lZCBpOwo+Pj4gICAgICAgICAgaW50IHI7Cj4+Pgo+Pj4gKyAgICAgICAvKgo+Pj4gKyAg ICAgICAgKiBUT0RPOgo+Pj4gKyAgICAgICAgKiBDdXJyZW50bHkgdGhlcmUgaXMgYSBidWcgd2hl cmUgc29tZSBtZW1vcnkgY2xpZW50IG91dHNpZGUKPj4+ICsgICAgICAgICogb2YgdGhlIGRyaXZl ciB3cml0ZXMgdG8gZmlyc3QgOE0gb2YgVlJBTSBvbiBTMyByZXN1bWUsCj4+PiArICAgICAgICAq IHRoaXMgb3ZlcnJpZGVzIEdBUlQgd2hpY2ggYnkgZGVmYXVsdCBnZXRzIHBsYWNlZCBpbiBmaXJz dCA4TQo+Pj4gYW5kCj4+PiArICAgICAgICAqIGNhdXNlcyBWTV9GQVVMVFMgb25jZSBHVFQgaXMg YWNjZXNzZWQuCj4+PiArICAgICAgICAqIEtlZXAgdGhlIHN0b2xlbiBtZW1vcnkgcmVzZXJ2YXRp b24gdW50aWwgdGhpcyBzb2x2ZWQuCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICAvKiBhbWRn cHVfYm9fbGF0ZV9pbml0KGFkZXYpOyAvCj4+PiArCj4+Cj4+IFdlIHN0aWxsIG5lZWQgdG8gZnJl ZSB0aGlzIHNvbWV3aGVyZS4gIEknZCBzdWdnZXN0IGNhbGxpbmcgaXQgaW4KPj4gZ21jX3Y5XzBf c3dfZmluaSgpIGFuZCBhZGQgYSBjb21tZW50IHRoZXJlIGFib3V0IG1vdmluZyBpdCB3aGVuIHdl IGZpeAo+PiB0aGUgaXNzdWUuCj4+Cj4+PiAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBhZGV2LT5u dW1fcmluZ3M7ICsraSkgewo+Pj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcgPSBhZGV2LT5yaW5nc1tpXTsKPj4+ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdm1o dWIgPSByaW5nLT5mdW5jcy0+dm1odWI7Cj4+PiBAQCAtODg0LDEwICs4OTQsNiBAQCBzdGF0aWMg aW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4gICAgICAgICAgICovCj4+PiAg ICAgICAgICBhZGV2LT5nbWMubWNfbWFzayA9IDB4ZmZmZmZmZmZmZmZmVUxMOyAvKiA0OCBiaXQg TUMgKi8KPj4+Cj4+PiAtICAgICAgIC8qCj4+PiAtICAgICAgICAqIEl0IG5lZWRzIHRvIHJlc2Vy dmUgOE0gc3RvbGVuIG1lbW9yeSBmb3IgdmVnYTEwCj4+PiAtICAgICAgICAqIFRPRE86IEZpZ3Vy ZSBvdXQgaG93IHRvIGF2b2lkIHRoYXQuLi4KPj4+IC0gICAgICAgICovCj4+PiAgICAgICAgICBh ZGV2LT5nbWMuc3RvbGVuX3NpemUgPSBnbWNfdjlfMF9nZXRfdmJpb3NfZmJfc2l6ZShhZGV2KTsK Pj4KPj4gV2UgbWF5IGFsc28ganVzdCB3YW50IHRvIHJldHVybiA4TUIgb3IgOU1CIHRlbXBvcmFy aWx5IGluCj4+IGdtY192OV8wX2dldF92Ymlvc19mYl9zaXplIHVudGlsIHdlIHNvcnQgb3V0IHRo ZSByb290IGNhdXNlIG9mIHRoZSBTMwo+PiBpc3N1ZSBvdGhlcndpc2Ugd2UncmUgcG90ZW50aWFs bHkgd2FzdGluZyBhIGxvdCBtb3JlIG1lbW9yeS4KPj4KPj4gQWxleAo+Cj4KPiBCdXQgd2hhdCBp ZiB3ZSBoYXZlIDRrIGRpc3BsYXkgPyBJbiB0aGlzIGNhc2UgcmV0dXJuaW5nIDlNIHByb2JhYmx5 IHdpbGwgbm90Cj4gaGlkZSB0aGUgY29ycnVwdGlvbiAgd2Ugd2VyZSBvcmlnaW5hbGx5IGRlYWxp bmcgd2l0aC4gSSByZW1lbWJlciBpbiB0aGF0Cj4gY2FzZSBwcmUgT1MgRkIgc2l6ZSB3b3VsZCBi ZSAzMk0uCgpJIGd1ZXNzIGl0J3MgYSB0cmFkZSBvZmYsIHBvc3NpYmxlIGdhcmJhZ2UgbW9uZW50 YXJ5IGR1cmluZyBiaW9zIHRvCmRyaXZlciB0cmFuc2l0aW9uIHZzLiB3YXN0aW5nIGFuIGFkZGl0 aW9uYWwgMjQgTUIgb2YgQ1BVIGFjY2Vzc2libGUKdnJhbSBmb3IgdGhlIGxpZmUgb2YgdGhlIGRy aXZlci4KCkFsZXgKCgo+Cj4gQW5kcmV5Cj4KPgo+Pgo+Pgo+Pj4gICAgICAgICAgLyogc2V0IERN QSBtYXNrICsgbmVlZF9kbWEzMiBmbGFncy4KPj4+IC0tCj4+PiAyLjcuNAo+Pj4KPj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBhbWQtZ2Z4IG1h aWxpbmcgbGlzdAo+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Cj4KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==