From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH 2/2] amdgpu/dc: inline a bunch of the fixed 31_32 helpers. Date: Fri, 29 Sep 2017 10:55:28 -0400 Message-ID: <545bc435-1d8e-6068-b4eb-e1c19471b36d@amd.com> References: <20170929054508.24225-1-airlied@gmail.com> <20170929054508.24225-2-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Content-Language: en-US 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: Dave Airlie , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gMjAxNy0wOS0yOSAwMTo0NSBBTSwgRGF2ZSBBaXJsaWUgd3JvdGU6Cj4gRnJvbTogRGF2ZSBB aXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiAKPiBUaGlzIGRlY3JlYXNlcyBjb2RlIHNpemUg YnkgYSBmZXcgaHVuZHJlZCBieXRlcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8 YWlybGllZEByZWRoYXQuY29tPgoKU2VyaWVzIGlzClJldmlld2VkLWJ5OiBIYXJyeSBXZW50bGFu ZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4KCkhhcnJ5Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2ZpeHB0MzFfMzIuYyB8IDEyMiAtLS0tLS0tLS0tLS0t LS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIu aCAgIHwgMTMyICsrKysrKysrKysrKysrKy0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDkzIGlu c2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9maXhwdDMxXzMyLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2ZpeHB0MzFfMzIuYwo+IGluZGV4IDU0NmVkNjcuLjU3 ODY5MWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2lj cy9maXhwdDMxXzMyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmFz aWNzL2ZpeHB0MzFfMzIuYwo+IEBAIC0xMzIsNzkgKzEzMiw2IEBAIHN0cnVjdCBmaXhlZDMxXzMy IGRhbF9maXhlZDMxXzMyX2Zyb21faW50KAo+ICAJcmV0dXJuIHJlczsKPiAgfQo+ICAKPiAtc3Ry dWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfbmVnKAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIg YXJnKQo+IC17Cj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7Cj4gLQo+IC0JcmVzLnZhbHVlID0g LWFyZy52YWx1ZTsKPiAtCj4gLQlyZXR1cm4gcmVzOwo+IC19Cj4gLQo+IC1zdHJ1Y3QgZml4ZWQz MV8zMiBkYWxfZml4ZWQzMV8zMl9hYnMoCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCj4gLXsK PiAtCWlmIChhcmcudmFsdWUgPCAwKQo+IC0JCXJldHVybiBkYWxfZml4ZWQzMV8zMl9uZWcoYXJn KTsKPiAtCWVsc2UKPiAtCQlyZXR1cm4gYXJnOwo+IC19Cj4gLQo+IC1ib29sIGRhbF9maXhlZDMx XzMyX2x0KAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMxXzMy IGFyZzIpCj4gLXsKPiAtCXJldHVybiBhcmcxLnZhbHVlIDwgYXJnMi52YWx1ZTsKPiAtfQo+IC0K PiAtYm9vbCBkYWxfZml4ZWQzMV8zMl9sZSgKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4g LQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKQo+IC17Cj4gLQlyZXR1cm4gYXJnMS52YWx1ZSA8PSBh cmcyLnZhbHVlOwo+IC19Cj4gLQo+IC1ib29sIGRhbF9maXhlZDMxXzMyX2VxKAo+IC0Jc3RydWN0 IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCj4gLXsKPiAtCXJl dHVybiBhcmcxLnZhbHVlID09IGFyZzIudmFsdWU7Cj4gLX0KPiAtCj4gLXN0cnVjdCBmaXhlZDMx XzMyIGRhbF9maXhlZDMxXzMyX21pbigKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4gLQlz dHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKQo+IC17Cj4gLQlpZiAoYXJnMS52YWx1ZSA8PSBhcmcyLnZh bHVlKQo+IC0JCXJldHVybiBhcmcxOwo+IC0JZWxzZQo+IC0JCXJldHVybiBhcmcyOwo+IC19Cj4g LQo+IC1zdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9tYXgoCj4gLQlzdHJ1Y3QgZml4 ZWQzMV8zMiBhcmcxLAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKPiAtewo+IC0JaWYgKGFy ZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkKPiAtCQlyZXR1cm4gYXJnMjsKPiAtCWVsc2UKPiAtCQly ZXR1cm4gYXJnMTsKPiAtfQo+IC0KPiAtc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJf Y2xhbXAoCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcsCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBt aW5fdmFsdWUsCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBtYXhfdmFsdWUpCj4gLXsKPiAtCWlmIChk YWxfZml4ZWQzMV8zMl9sZShhcmcsIG1pbl92YWx1ZSkpCj4gLQkJcmV0dXJuIG1pbl92YWx1ZTsK PiAtCWVsc2UgaWYgKGRhbF9maXhlZDMxXzMyX2xlKG1heF92YWx1ZSwgYXJnKSkKPiAtCQlyZXR1 cm4gbWF4X3ZhbHVlOwo+IC0JZWxzZQo+IC0JCXJldHVybiBhcmc7Cj4gLX0KPiAtCj4gIHN0cnVj dCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3NobCgKPiAgCXN0cnVjdCBmaXhlZDMxXzMyIGFy ZywKPiAgCXVpbnQ4X3Qgc2hpZnQpCj4gQEAgLTIxOSwxOSArMTQ2LDYgQEAgc3RydWN0IGZpeGVk MzFfMzIgZGFsX2ZpeGVkMzFfMzJfc2hsKAo+ICAJcmV0dXJuIHJlczsKPiAgfQo+ICAKPiAtc3Ry dWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfc2hyKAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIg YXJnLAo+IC0JdWludDhfdCBzaGlmdCkKPiAtewo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgcmVzOwo+ IC0KPiAtCUFTU0VSVChzaGlmdCA8IDY0KTsKPiAtCj4gLQlyZXMudmFsdWUgPSBhcmcudmFsdWUg Pj4gc2hpZnQ7Cj4gLQo+IC0JcmV0dXJuIHJlczsKPiAtfQo+IC0KPiAgc3RydWN0IGZpeGVkMzFf MzIgZGFsX2ZpeGVkMzFfMzJfYWRkKAo+ICAJc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAgCXN0 cnVjdCBmaXhlZDMxXzMyIGFyZzIpCj4gQEAgLTI0NiwyNCArMTYwLDYgQEAgc3RydWN0IGZpeGVk MzFfMzIgZGFsX2ZpeGVkMzFfMzJfYWRkKAo+ICAJcmV0dXJuIHJlczsKPiAgfQo+ICAKPiAtc3Ry dWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfYWRkX2ludCgKPiAtCXN0cnVjdCBmaXhlZDMx XzMyIGFyZzEsCj4gLQlpbnQzMl90IGFyZzIpCj4gLXsKPiAtCXJldHVybiBkYWxfZml4ZWQzMV8z Ml9hZGQoCj4gLQkJYXJnMSwKPiAtCQlkYWxfZml4ZWQzMV8zMl9mcm9tX2ludChhcmcyKSk7Cj4g LX0KPiAtCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3N1Yl9pbnQoCj4gLQlz dHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAo+IC0JaW50MzJfdCBhcmcyKQo+IC17Cj4gLQlyZXR1cm4g ZGFsX2ZpeGVkMzFfMzJfc3ViKAo+IC0JCWFyZzEsCj4gLQkJZGFsX2ZpeGVkMzFfMzJfZnJvbV9p bnQoYXJnMikpOwo+IC19Cj4gLQo+ICBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9z dWIoCj4gIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAo+ICAJc3RydWN0IGZpeGVkMzFfMzIgYXJn MikKPiBAQCAtMjc4LDE1ICsxNzQsNiBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8z Ml9zdWIoCj4gIAlyZXR1cm4gcmVzOwo+ICB9Cj4gIAo+IC1zdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9tdWxfaW50KAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCWludDMy X3QgYXJnMikKPiAtewo+IC0JcmV0dXJuIGRhbF9maXhlZDMxXzMyX211bCgKPiAtCQlhcmcxLAo+ IC0JCWRhbF9maXhlZDMxXzMyX2Zyb21faW50KGFyZzIpKTsKPiAtfQo+IC0KPiAgc3RydWN0IGZp eGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfbXVsKAo+ICAJc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwK PiAgCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCj4gQEAgLTM5MCwxNSArMjc3LDYgQEAgc3RydWN0 IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZGl2X2ludCgKPiAgCQlkYWxfZml4ZWQzMV8zMl9m cm9tX2ludChhcmcyKS52YWx1ZSk7Cj4gIH0KPiAgCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9m aXhlZDMxXzMyX2RpdigKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4gLQlzdHJ1Y3QgZml4 ZWQzMV8zMiBhcmcyKQo+IC17Cj4gLQlyZXR1cm4gZGFsX2ZpeGVkMzFfMzJfZnJvbV9mcmFjdGlv bigKPiAtCQlhcmcxLnZhbHVlLAo+IC0JCWFyZzIudmFsdWUpOwo+IC19Cj4gLQo+ICBzdHJ1Y3Qg Zml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9yZWNpcCgKPiAgCXN0cnVjdCBmaXhlZDMxXzMyIGFy ZykKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVk ZS9maXhlZDMxXzMyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvaW5jbHVkZS9maXhl ZDMxXzMyLmgKPiBpbmRleCA1YTQzNjRkLi5mMGJjM2M0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaAo+IEBAIC05MCwxNSArOTAs MjYgQEAgc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZnJvbV9pbnQoCj4gICAqIEBi cmllZgo+ICAgKiByZXN1bHQgPSAtYXJnCj4gICAqLwo+IC1zdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9uZWcoCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwo+ICtzdGF0aWMgaW5s aW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX25lZyhzdHJ1Y3QgZml4ZWQzMV8z MiBhcmcpCj4gK3sKPiArCXN0cnVjdCBmaXhlZDMxXzMyIHJlczsKPiArCj4gKwlyZXMudmFsdWUg PSAtYXJnLnZhbHVlOwo+ICsKPiArCXJldHVybiByZXM7Cj4gK30KPiAgCj4gIC8qCj4gICAqIEBi cmllZgo+ICAgKiByZXN1bHQgPSBhYnMoYXJnKSA6PSAoYXJnID49IDApID8gYXJnIDogLWFyZwo+ ICAgKi8KPiAtc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfYWJzKAo+IC0Jc3RydWN0 IGZpeGVkMzFfMzIgYXJnKTsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9hYnMoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQo+ICt7Cj4gKwlpZiAoYXJnLnZh bHVlIDwgMCkKPiArCQlyZXR1cm4gZGFsX2ZpeGVkMzFfMzJfbmVnKGFyZyk7Cj4gKwllbHNlCj4g KwkJcmV0dXJuIGFyZzsKPiArfQo+ICAKPiAgLyoKPiAgICogQGJyaWVmCj4gQEAgLTEwOSw0MSAr MTIwLDU3IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2FicygKPiAgICogQGJy aWVmCj4gICAqIHJlc3VsdCA9IGFyZzEgPCBhcmcyCj4gICAqLwo+IC1ib29sIGRhbF9maXhlZDMx XzMyX2x0KAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMxXzMy IGFyZzIpOwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgZGFsX2ZpeGVkMzFfMzJfbHQoc3RydWN0IGZp eGVkMzFfMzIgYXJnMSwKPiArCQkJCSAgICAgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKPiArewo+ ICsJcmV0dXJuIGFyZzEudmFsdWUgPCBhcmcyLnZhbHVlOwo+ICt9Cj4gIAo+ICAvKgo+ICAgKiBA YnJpZWYKPiAgICogcmVzdWx0ID0gYXJnMSA8PSBhcmcyCj4gICAqLwo+IC1ib29sIGRhbF9maXhl ZDMxXzMyX2xlKAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMx XzMyIGFyZzIpOwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgZGFsX2ZpeGVkMzFfMzJfbGUoc3RydWN0 IGZpeGVkMzFfMzIgYXJnMSwKPiArCQkJCSAgICAgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKPiAr ewo+ICsJcmV0dXJuIGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZTsKPiArfQo+ICAKPiAgLyoKPiAg ICogQGJyaWVmCj4gICAqIHJlc3VsdCA9IGFyZzEgPT0gYXJnMgo+ICAgKi8KPiAtYm9vbCBkYWxf Zml4ZWQzMV8zMl9lcSgKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4gLQlzdHJ1Y3QgZml4 ZWQzMV8zMiBhcmcyKTsKPiArc3RhdGljIGlubGluZSBib29sIGRhbF9maXhlZDMxXzMyX2VxKHN0 cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4gKwkJCQkgICAgIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIp Cj4gK3sKPiArCXJldHVybiBhcmcxLnZhbHVlID09IGFyZzIudmFsdWU7Cj4gK30KPiAgCj4gIC8q Cj4gICAqIEBicmllZgo+ICAgKiByZXN1bHQgPSBtaW4oYXJnMSwgYXJnMikgOj0gKGFyZzEgPD0g YXJnMikgPyBhcmcxIDogYXJnMgo+ICAgKi8KPiAtc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVk MzFfMzJfbWluKAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMx XzMyIGFyZzIpOwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMx XzMyX21pbihzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAo+ICsJCQkJCQkgICBzdHJ1Y3QgZml4ZWQz MV8zMiBhcmcyKQo+ICt7Cj4gKwlpZiAoYXJnMS52YWx1ZSA8PSBhcmcyLnZhbHVlKQo+ICsJCXJl dHVybiBhcmcxOwo+ICsJZWxzZQo+ICsJCXJldHVybiBhcmcyOwo+ICt9Cj4gIAo+ICAvKgo+ICAg KiBAYnJpZWYKPiAgICogcmVzdWx0ID0gbWF4KGFyZzEsIGFyZzIpIDo9IChhcmcxIDw9IGFyZzIp ID8gYXJnMiA6IGFyZzEKPiAgICovCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMy X21heCgKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBh cmcyKTsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9t YXgoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiArCQkJCQkJICAgc3RydWN0IGZpeGVkMzFfMzIg YXJnMikKPiArewo+ICsJaWYgKGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkKPiArCQlyZXR1cm4g YXJnMjsKPiArCWVsc2UKPiArCQlyZXR1cm4gYXJnMTsKPiArfQo+ICAKPiAgLyoKPiAgICogQGJy aWVmCj4gQEAgLTE1MSwxMCArMTc4LDE4IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMx XzMyX21heCgKPiAgICogcmVzdWx0ID0gfCBhcmcsIHdoZW4gbWluX3ZhbHVlIDwgYXJnIDwgbWF4 X3ZhbHVlCj4gICAqICAgICAgICAgIHwgbWF4X3ZhbHVlLCB3aGVuIGFyZyA+PSBtYXhfdmFsdWUK PiAgICovCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2NsYW1wKAo+ICtzdGF0 aWMgaW5saW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2NsYW1wKAo+ICAJc3Ry dWN0IGZpeGVkMzFfMzIgYXJnLAo+ICAJc3RydWN0IGZpeGVkMzFfMzIgbWluX3ZhbHVlLAo+IC0J c3RydWN0IGZpeGVkMzFfMzIgbWF4X3ZhbHVlKTsKPiArCXN0cnVjdCBmaXhlZDMxXzMyIG1heF92 YWx1ZSkKPiArewo+ICsJaWYgKGRhbF9maXhlZDMxXzMyX2xlKGFyZywgbWluX3ZhbHVlKSkKPiAr CQlyZXR1cm4gbWluX3ZhbHVlOwo+ICsJZWxzZSBpZiAoZGFsX2ZpeGVkMzFfMzJfbGUobWF4X3Zh bHVlLCBhcmcpKQo+ICsJCXJldHVybiBtYXhfdmFsdWU7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIGFy ZzsKPiArfQo+ICAKPiAgLyoKPiAgICogQGJyaWVmCj4gQEAgLTE3Myw5ICsyMDgsMTQgQEAgc3Ry dWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfc2hsKAo+ICAgKiBAYnJpZWYKPiAgICogcmVz dWx0ID0gYXJnID4+IHNoaWZ0Cj4gICAqLwo+IC1zdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQz MV8zMl9zaHIoCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFf MzJfc2hyKAo+ICAJc3RydWN0IGZpeGVkMzFfMzIgYXJnLAo+IC0JdWludDhfdCBzaGlmdCk7Cj4g Kwl1aW50OF90IHNoaWZ0KQo+ICt7Cj4gKwlzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7Cj4gKwlyZXMu dmFsdWUgPSBhcmcudmFsdWUgPj4gc2hpZnQ7Cj4gKwlyZXR1cm4gcmVzOwo+ICt9Cj4gIAo+ICAv Kgo+ICAgKiBAYnJpZWYKPiBAQCAtMTk0LDI1ICsyMzQsMzIgQEAgc3RydWN0IGZpeGVkMzFfMzIg ZGFsX2ZpeGVkMzFfMzJfYWRkKAo+ICAgKiBAYnJpZWYKPiAgICogcmVzdWx0ID0gYXJnMSArIGFy ZzIKPiAgICovCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2FkZF9pbnQoCj4g LQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAo+IC0JaW50MzJfdCBhcmcyKTsKPiArc3RhdGljIGlu bGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9hZGRfaW50KHN0cnVjdCBmaXhl ZDMxXzMyIGFyZzEsCj4gKwkJCQkJCSAgICAgICBpbnQzMl90IGFyZzIpCj4gK3sKPiArCXJldHVy biBkYWxfZml4ZWQzMV8zMl9hZGQoYXJnMSwKPiArCQkJCSAgZGFsX2ZpeGVkMzFfMzJfZnJvbV9p bnQoYXJnMikpOwo+ICt9Cj4gIAo+ICAvKgo+ICAgKiBAYnJpZWYKPiAgICogcmVzdWx0ID0gYXJn MSAtIGFyZzIKPiAgICovCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3N1Yl9p bnQoCj4gK3N0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3N1YigKPiAgCXN0cnVjdCBm aXhlZDMxXzMyIGFyZzEsCj4gLQlpbnQzMl90IGFyZzIpOwo+ICsJc3RydWN0IGZpeGVkMzFfMzIg YXJnMik7Cj4gIAo+ICAvKgo+ICAgKiBAYnJpZWYKPiAgICogcmVzdWx0ID0gYXJnMSAtIGFyZzIK PiAgICovCj4gLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3N1YigKPiAtCXN0cnVj dCBmaXhlZDMxXzMyIGFyZzEsCj4gLQlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKTsKPiArc3RhdGlj IGlubGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9zdWJfaW50KHN0cnVjdCBm aXhlZDMxXzMyIGFyZzEsCj4gKwkJCQkJCSAgICAgICBpbnQzMl90IGFyZzIpCj4gK3sKPiArCXJl dHVybiBkYWxfZml4ZWQzMV8zMl9zdWIoYXJnMSwKPiArCQkJCSAgZGFsX2ZpeGVkMzFfMzJfZnJv bV9pbnQoYXJnMikpOwo+ICt9Cj4gKwo+ICAKPiAgLyoKPiAgICogQGJyaWVmCj4gQEAgLTIyMywx NyArMjcwLDIxIEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3N1YigKPiAgICog QGJyaWVmCj4gICAqIHJlc3VsdCA9IGFyZzEgKiBhcmcyCj4gICAqLwo+IC1zdHJ1Y3QgZml4ZWQz MV8zMiBkYWxfZml4ZWQzMV8zMl9tdWxfaW50KAo+ICtzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4 ZWQzMV8zMl9tdWwoCj4gIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAo+IC0JaW50MzJfdCBhcmcy KTsKPiArCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpOwo+ICsKPiAgCj4gIC8qCj4gICAqIEBicmll Zgo+ICAgKiByZXN1bHQgPSBhcmcxICogYXJnMgo+ICAgKi8KPiAtc3RydWN0IGZpeGVkMzFfMzIg ZGFsX2ZpeGVkMzFfMzJfbXVsKAo+IC0Jc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVj dCBmaXhlZDMxXzMyIGFyZzIpOwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRh bF9maXhlZDMxXzMyX211bF9pbnQoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiArCQkJCQkJICAg ICAgIGludDMyX3QgYXJnMikKPiArewo+ICsJcmV0dXJuIGRhbF9maXhlZDMxXzMyX211bChhcmcx LAo+ICsJCQkJICBkYWxfZml4ZWQzMV8zMl9mcm9tX2ludChhcmcyKSk7Cj4gK30KPiAgCj4gIC8q Cj4gICAqIEBicmllZgo+IEBAIC0yNTQsOSArMzA1LDEyIEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRh bF9maXhlZDMxXzMyX2Rpdl9pbnQoCj4gICAqIEBicmllZgo+ICAgKiByZXN1bHQgPSBhcmcxIC8g YXJnMgo+ICAgKi8KPiAtc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZGl2KAo+IC0J c3RydWN0IGZpeGVkMzFfMzIgYXJnMSwKPiAtCXN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpOwo+ICtz dGF0aWMgaW5saW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2RpdihzdHJ1Y3Qg Zml4ZWQzMV8zMiBhcmcxLAo+ICsJCQkJCQkgICBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKQo+ICt7 Cj4gKwlyZXR1cm4gZGFsX2ZpeGVkMzFfMzJfZnJvbV9mcmFjdGlvbihhcmcxLnZhbHVlLAo+ICsJ CQkJCSAgICBhcmcyLnZhbHVlKTsKPiArfQo+ICAKPiAgLyoKPiAgICogQGJyaWVmCj4gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=