From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH v5 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v5) Date: Wed, 22 Aug 2018 16:07:20 +0800 Message-ID: <5B7D19B8.2060307@amd.com> References: <1534924375-5837-1-git-send-email-ray.huang@amd.com> <1534924375-5837-5-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534924375-5837-5-git-send-email-ray.huang-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: Huang Rui , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= T24gMDgvMjIvMjAxOCAwMzo1MiBQTSwgSHVhbmcgUnVpIHdyb3RlOgo+IEkgY29udGludWUgdG8g d29yayBmb3IgYnVsayBtb3ZpbmcgdGhhdCBiYXNlZCBvbiB0aGUgcHJvcG9zYWwgYnkgQ2hyaXN0 aWFuLgo+Cj4gQmFja2dyb3VuZDoKPiBhbWRncHUgZHJpdmVyIHdpbGwgbW92ZSBhbGwgUEQvUFQg YW5kIFBlclZNIEJPcyBpbnRvIGlkbGUgbGlzdC4gVGhlbiBtb3ZlIGFsbCBvZgo+IHRoZW0gb24g dGhlIGVuZCBvZiBMUlUgbGlzdCBvbmUgYnkgb25lLiBUaHVzLCB0aGF0IGNhdXNlIHNvIG1hbnkg Qk9zIG1vdmVkIHRvCj4gdGhlIGVuZCBvZiB0aGUgTFJVLCBhbmQgaW1wYWN0IHBlcmZvcm1hbmNl IHNlcmlvdXNseS4KPgo+IFRoZW4gQ2hyaXN0aWFuIHByb3ZpZGVkIGEgd29ya2Fyb3VuZCB0byBu b3QgbW92ZSBQRC9QVCBCT3Mgb24gTFJVIHdpdGggYmVsb3cKPiBwYXRjaDoKPiBDb21taXQgMGJi ZjMyMDI2Y2Y1YmE0MWU5OTIyYjMwZTI2ZTFiZWQxZWNkMzhhZSAoImRybS9hbWRncHU6IGJhbmQg YWlkCj4gdmFsaWRhdGluZyBWTSBQVHMiKQo+Cj4gSG93ZXZlciwgdGhlIGZpbmFsIHNvbHV0aW9u IHNob3VsZCBidWxrIG1vdmUgYWxsIFBEL1BUIGFuZCBQZXJWTSBCT3Mgb24gdGhlIExSVQo+IGlu c3RlYWQgb2Ygb25lIGJ5IG9uZS4KPgo+IFdoZW5ldmVyIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9i b3MoKSBpcyBjYWxsZWQgYW5kIHdlIGhhdmUgQk9zIHdoaWNoIG5lZWQgdG8gYmUKPiB2YWxpZGF0 ZWQgd2UgbW92ZSBhbGwgQk9zIHRvZ2V0aGVyIHRvIHRoZSBlbmQgb2YgdGhlIExSVSB3aXRob3V0 IGRyb3BwaW5nIHRoZQo+IGxvY2sgZm9yIHRoZSBMUlUuCj4KPiBXaGlsZSBkb2luZyBzbyB3ZSBu b3RlIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGlzIGJsb2NrIGluIHRoZSBMUlUgbGlzdC4K Pgo+IE5vdyB3aGVuIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5kIHdl IGRvbid0IGhhdmUgYW55dGhpbmcgdG8gZG8sCj4gd2UgZG9uJ3QgbW92ZSBldmVyeSBCTyBvbmUg Ynkgb25lLCBidXQgaW5zdGVhZCBjdXQgdGhlIExSVSBsaXN0IGludG8gcGllY2VzIHNvCj4gdGhh dCB3ZSBidWxrIG1vdmUgZXZlcnl0aGluZyB0byB0aGUgZW5kIGluIGp1c3Qgb25lIG9wZXJhdGlv bi4KPgo+IFRlc3QgZGF0YToKPiArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHwgICAg ICAgICAgICAgIHxUaGUgVGFsb3MgICAgICAgIHxDbHBlYWsoT0NMKXxCdXNTcGVlZFJlYWRiYWNr KE9DTCkgICAgICAgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgICAgfFByaW5jaXBsZShWdWxr YW4pfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK PiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwwLjMxOSBtcygxaykgMC4zMTQgbXMoMkspIDAuMzA4IG1z KDRLKSB8Cj4gfCBPcmlnaW5hbCAgICAgfCAgMTQ3LjcgRlBTICAgICAgfCAgNzYuODYgdXMgfDAu MzA3IG1zKDhLKSAwLjMxMCBtcygxNkspICAgICAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKwo+IHwgT3JpZ25pYWwgKyBXQXwgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgIHwwLjI1NCBtcygxSykgMC4yNDEgbXMoMkspICAgICAgICAgICAgICB8Cj4gfChkb24ndCBt b3ZlICAgfCAgMTYyLjEgRlBTICAgICAgfCAgNDIuMTUgdXMgfDAuMjMwIG1zKDRLKSAwLjIyMyBt cyg4SykgMC4yMDQgbXMoMTZLKXwKPiB8UFQgQk9zIG9uIExSVSl8ICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gfCBCdWxrIG1vdmUgICAgfCAgMTYzLjEgRlBT ICAgICAgfCAgNDAuNTIgdXMgfDAuMjQ0IG1zKDFLKSAwLjI1MiBtcygySykgMC4yMTMgbXMoNEsp IHwKPiB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4yMTQg bXMoOEspIDAuMjI1IG1zKDE2SykgICAgICAgICAgICAgfAo+ICstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCj4KPiBBZnRlciB0ZXN0IHRoZW0gd2l0aCBhYm92ZSB0aHJlZSBiZW5jaG1hcmtz IGluY2x1ZGUgdnVsa2FuIGFuZCBvcGVuY2wuIFdlIGNhbgo+IHNlZSB0aGUgdmlzaWJsZSBpbXBy b3ZlbWVudCB0aGFuIG9yaWdpbmFsLCBhbmQgZXZlbiBiZXR0ZXIgdGhhbiBvcmlnaW5hbCB3aXRo Cj4gd29ya2Fyb3VuZC4KPgo+IHYyOiBtb3ZlIGFsbCBCT3MgaW5jbHVkZSBpZGxlLCByZWxvY2F0 ZWQsIGFuZCBtb3ZlZCBsaXN0IHRvIHRoZSBlbmQgb2YgTFJVIGFuZAo+IHB1dCB0aGVtIHRvZ2V0 aGVyLgo+IHYzOiByZW1vdmUgdW51c2VkIHBhcmFtZXRlciBhbmQgdXNlIGxpc3RfZm9yX2VhY2hf ZW50cnkgaW5zdGVhZCBvZiB0aGUgb25lIHdpdGgKPiBzYXZlIGVudHJ5Lgo+IHY0OiBtb3ZlIHRo ZSBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbCBhZnRlciBjb21tYW5kIHN1Ym1pc3Npb24sIGF0 IHRoYXQgdGltZSwKPiBhbGwgYm8gd2lsbCBiZSBiYWNrIG9uIGlkbGUgbGlzdC4KPiB2NTogcmVt b3ZlIGFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsX2J5X2xpc3QoKSwgdXNlIGJ1bGtfbW92ZWFi bGUgaW5zdHJlYWQgb2YKPiB2YWxpZGF0ZWQsIGFuZCBtb3ZlIHR0bV9ib19idWxrX21vdmVfbHJ1 X3RhaWwoKSBhbHNvIGludG8KPiBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbCgpLgo+Cj4gU2ln bmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFtZC5jb20+Cj4gVGVzdGVkLWJ5 OiBNaWtlIExvdGhpYW4gPG1pa2VAZmlyZWJ1cm4uY28udWs+Cj4gVGVzdGVkLWJ5OiBEaWV0ZXIg TsO8dHplbCA8RGlldGVyQG51ZXR6ZWwtaGguZGU+Cj4gQWNrZWQtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfY3MuYyB8IDEwICsrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCB8IDExICsrKysrLQo+ICAgMyBm aWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gaW5kZXggNTAyYjk0Zi4uNGVmZGJkMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gQEAgLTEyNjAsNiAr MTI2MCwxNSBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0IGFtZGdwdV9jc19w YXJzZXIgKnAsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgYW1kZ3B1X2Nz X3ZtX21vdmVfb25fbHJ1KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICsJCQkJICAgICBz dHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCkKPiArewo+ICsJc3RydWN0IGFtZGdwdV9mcHJpdiAq ZnByaXYgPSBwLT5maWxwLT5kcml2ZXJfcHJpdjsKPiArCXN0cnVjdCBhbWRncHVfdm0gKnZtID0g JmZwcml2LT52bTsKPiArCj4gKwlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChhZGV2LCB2bSk7 Cj4gK30KPiArCj4gICBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTEzMTAsNiArMTMxOSw3 IEBAIGludCBhbWRncHVfY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+Cj4gICAJciA9IGFtZGdwdV9jc19zdWJtaXQoJnBh cnNlciwgY3MpOwo+Cj4gKwlhbWRncHVfY3Nfdm1fbW92ZV9vbl9scnUoYWRldiwgJnBhcnNlcik7 CgpMb29rcyB3ZSBjYW4gY2FsbCBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbCgpIGRpcmVjdGx5 LgoKPiAgIG91dDoKPiAgIAlhbWRncHVfY3NfcGFyc2VyX2ZpbmkoJnBhcnNlciwgciwgcmVzZXJ2 ZWRfYnVmZmVycyk7Cj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmMKPiBpbmRleCA5Yzg0NzcwLi5kYjFmMjhhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiBAQCAtMjY4LDYgKzI2OCw0NyBAQCB2b2lkIGFtZGdwdV92 bV9nZXRfcGRfYm8oc3RydWN0IGFtZGdwdV92bSAqdm0sCj4gICB9Cj4KPiAgIC8qKgo+ICsgKiBh bWRncHVfdm1fbW92ZV90b19scnVfdGFpbCAtIG1vdmUgYWxsIEJPcyB0byB0aGUgZW5kIG9mIExS VQo+ICsgKgo+ICsgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCj4gKyAqIEB2bTogdm0g cHJvdmlkaW5nIHRoZSBCT3MKPiArICoKPiArICogTW92ZSBhbGwgQk9zIHRvIHRoZSBlbmQgb2Yg TFJVIGFuZCByZW1lbWJlciB0aGVpciBwb3NpdGlvbnMgdG8gcHV0IHRoZW0KPiArICogdG9nZXRo ZXIuCj4gKyAqLwo+ICt2b2lkIGFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAo+ICsJCQkJc3RydWN0IGFtZGdwdV92bSAqdm0pCj4gK3sKPiArCXN0 cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYWRldi0+bW1hbi5iZGV2Lmdsb2I7Cj4gKwlzdHJ1 Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UgKmJvX2Jhc2U7Cj4gKwo+ICsJaWYgKHZtLT5idWxrX21vdmVh YmxlKSB7Cj4gKwkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gKwkJdHRtX2JvX2J1bGtf bW92ZV9scnVfdGFpbCgmdm0tPmxydV9idWxrX21vdmUpOwo+ICsJCXNwaW5fdW5sb2NrKCZnbG9i LT5scnVfbG9jayk7Cj4gKwkJcmV0dXJuOwo+ICsJfQoKUXVlc3Rpb246CldoeSB3ZSBoYW5kbGUg YnVsayBtb3ZlIGluIG5leHQgY29tbWFuZCBzdWJtaXNzaW9uIGluc3RlYWQgb2YgY3VycmVudCBj cyBwcm9jZXNzPwoKPiArCj4gKwltZW1zZXQoJnZtLT5scnVfYnVsa19tb3ZlLCAwLCBzaXplb2Yo dm0tPmxydV9idWxrX21vdmUpKTsKPiArCj4gKwlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsK PiArCWxpc3RfZm9yX2VhY2hfZW50cnkoYm9fYmFzZSwgJnZtLT5pZGxlLCB2bV9zdGF0dXMpIHsK PiArCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGJvX2Jhc2UtPmJvOwo+ICsKPiArCQlpZiAoIWJv LT5wYXJlbnQpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQl0dG1fYm9fbW92ZV90b19scnVfdGFp bCgmYm8tPnRibywgJnZtLT5scnVfYnVsa19tb3ZlKTsKPiArCQlpZiAoYm8tPnNoYWRvdykKPiAr CQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT5zaGFkb3ctPnRibywKPiArCQkJCQkJJnZt LT5scnVfYnVsa19tb3ZlKTsKPiArCX0KPiArCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7 Cj4gKwo+ICsJdm0tPmJ1bGtfbW92ZWFibGUgPSB0cnVlOwo+ICt9Cj4gKwo+ICsvKioKPiAgICAq IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MgLSB2YWxpZGF0ZSB0aGUgcGFnZSB0YWJsZSBCT3MK PiAgICAqCj4gICAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCj4gQEAgLTI4NCwxMCAr MzI1LDExIEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAgIAkJCSAgICAgIGludCAoKnZhbGlk YXRlKSh2b2lkICpwLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibyksCj4gICAJCQkgICAgICB2b2lkICpw YXJhbSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYWRldi0+bW1hbi5i ZGV2Lmdsb2I7Cj4gICAJc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlLCAqdG1wOwo+ ICAgCWludCByID0gMDsKPgo+ICsJdm0tPmJ1bGtfbW92ZWFibGUgJj0gbGlzdF9lbXB0eSgmdm0t PmV2aWN0ZWQpOwo+ICsKPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYm9fYmFzZSwgdG1w LCAmdm0tPmV2aWN0ZWQsIHZtX3N0YXR1cykgewo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9 IGJvX2Jhc2UtPmJvOwo+Cj4gQEAgLTI5NSwxMiArMzM3LDYgQEAgaW50IGFtZGdwdV92bV92YWxp ZGF0ZV9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0g KnZtLAo+ICAgCQkJciA9IHZhbGlkYXRlKHBhcmFtLCBibyk7Cj4gICAJCQlpZiAocikKPiAgIAkJ CQlicmVhazsKPiAtCj4gLQkJCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+IC0JCQl0dG1f Ym9fbW92ZV90b19scnVfdGFpbCgmYm8tPnRibywgTlVMTCk7Cj4gLQkJCWlmIChiby0+c2hhZG93 KQo+IC0JCQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT5zaGFkb3ctPnRibywgTlVMTCk7 Cj4gLQkJCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gICAJCX0KPgo+ICAgCQlpZiAo Ym8tPnRiby50eXBlICE9IHR0bV9ib190eXBlX2tlcm5lbCkgewo+IEBAIC0zMTIsMjAgKzM0OCw3 IEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAgIAkJfQo+ICAgCX0KPgo+IC0Jc3Bpbl9sb2Nr KCZnbG9iLT5scnVfbG9jayk7Cj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2bS0+ aWRsZSwgdm1fc3RhdHVzKSB7Cj4gLQkJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBib19iYXNlLT5i bzsKPiAtCj4gLQkJaWYgKCFiby0+cGFyZW50KQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJdHRt X2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT50Ym8sIE5VTEwpOwo+IC0JCWlmIChiby0+c2hhZG93 KQo+IC0JCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLCBOVUxMKTsK PiAtCX0KPiAtCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4gLQo+IC0JcmV0dXJuIHI7 Cj4gKwlyZXR1cm4gMDsKCldpbGwgaXQgYnJlYWsgZnJvbSB2YWxpZGF0ZSgpIGFuZCByZXR1cm4g cj8KCj4gICB9Cj4KPiAgIC8qKgo+IEBAIC0yNTk2LDYgKzI2MTksNyBAQCBpbnQgYW1kZ3B1X3Zt X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+ ICAgCQlyZXR1cm4gcjsKPgo+ICAgCXZtLT5wdGVfc3VwcG9ydF9hdHMgPSBmYWxzZTsKPiArCXZt LT5idWxrX21vdmVhYmxlID0gdHJ1ZTsKPgo+ICAgCWlmICh2bV9jb250ZXh0ID09IEFNREdQVV9W TV9DT05URVhUX0NPTVBVVEUpIHsKPiAgIAkJdm0tPnVzZV9jcHVfZm9yX3VwZGF0ZSA9ICEhKGFk ZXYtPnZtX21hbmFnZXIudm1fdXBkYXRlX21vZGUgJgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5oCj4gaW5kZXggNjdhMTVkNC4uYmJkZGU0MCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4gQEAgLTI5LDYgKzI5LDcgQEAKPiAgICNpbmNsdWRl IDxsaW51eC9yYnRyZWUuaD4KPiAgICNpbmNsdWRlIDxkcm0vZ3B1X3NjaGVkdWxlci5oPgo+ICAg I2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgo+ICsjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJp dmVyLmg+Cj4KPiAgICNpbmNsdWRlICJhbWRncHVfc3luYy5oIgo+ICAgI2luY2x1ZGUgImFtZGdw dV9yaW5nLmgiCj4gQEAgLTIyNiw2ICsyMjcsMTEgQEAgc3RydWN0IGFtZGdwdV92bSB7Cj4KPiAg IAkvKiBTb21lIGJhc2ljIGluZm8gYWJvdXQgdGhlIHRhc2sgKi8KPiAgIAlzdHJ1Y3QgYW1kZ3B1 X3Rhc2tfaW5mbyB0YXNrX2luZm87Cj4gKwo+ICsJLyogU3RvcmUgcG9zaXRpb25zIG9mIGdyb3Vw IG9mIEJPcyAqLwo+ICsJc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlIGxydV9idWxrX21vdmU7Cj4g KwkvKiBtYXJrIHdoZXRoZXIgY2FuIGRvIHRoZSBidWxrIG1vdmUgKi8KPiArCWJvb2wJCQlidWxr X21vdmVhYmxlOwo+ICAgfTsKPgo+ICAgc3RydWN0IGFtZGdwdV92bV9tYW5hZ2VyIHsKPiBAQCAt MzMwLDggKzMzNiwxMSBAQCBib29sIGFtZGdwdV92bV9uZWVkX3BpcGVsaW5lX3N5bmMoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAo+ICAgdm9pZCBhbWRncHVfdm1fY2hlY2tfY29tcHV0ZV9idWco c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+Cj4gICB2b2lkIGFtZGdwdV92bV9nZXRfdGFz a19pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCBpbnQgcGFzaWQsCj4g LQkJCSBzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbyAqdGFza19pbmZvKTsKPiArCQkJICAgICBzdHJ1 Y3QgYW1kZ3B1X3Rhc2tfaW5mbyAqdGFza19pbmZvKTsKClRoaXMgY2hhbmdlIGxvb2tzIG5vdCBy ZWxhdGVkIHRvIGJ1bGsgbW92ZQoKUmVnYXJkcywKSmVycnkKCj4KPiAgIHZvaWQgYW1kZ3B1X3Zt X3NldF90YXNrX2luZm8oc3RydWN0IGFtZGdwdV92bSAqdm0pOwo+Cj4gK3ZvaWQgYW1kZ3B1X3Zt X21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gKwkJCQlzdHJ1 Y3QgYW1kZ3B1X3ZtICp2bSk7Cj4gKwo+ICAgI2VuZGlmCj4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4Cg==