From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 4/7] drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver Date: Wed, 20 Dec 2017 15:20:27 +0100 Message-ID: <6400976c-80fd-9a4f-377e-8de50b344a12@gmail.com> References: <1513766101-15993-1-git-send-email-Hongbo.He@amd.com> <1513766101-15993-4-git-send-email-Hongbo.He@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1513766101-15993-4-git-send-email-Hongbo.He@amd.com> 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: Roger He , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMjAuMTIuMjAxNyB1bSAxMTozNCBzY2hyaWViIFJvZ2VyIEhlOgo+IENoYW5nZS1JZDogSTgw M2VhNTJkMTFlNWMwNmFkZDBkZmZhYjgzNmMzYWVjYzAwYjU2ZGQKPiBTaWduZWQtb2ZmLWJ5OiBS b2dlciBIZSA8SG9uZ2JvLkhlQGFtZC5jb20+CgpDb21taXQgbWVzc2FnZSEgQW5kIHBsZWFzZSBk b3VibGUgY2hlY2sgdGhlIGNvZGluZyBzdHlsZSBvZiAKYXN0X3R0bV90dF9wb3B1bGF0ZS4KCldp dGggdGhhdCBmaXhlZCB0aGF0IHBhdGNoIGlzIFJldmlld2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmln IAo8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPi4KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4gLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgIHwgIDcgKysrKy0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgICAgICAgICAgICB8ICA1ICsrKy0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYyAgICAgIHwgIDUgKysrLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYyAgICAgfCAgOCArKysrLS0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgICAgICAgICAgICB8ICA1ICsrKy0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyAgICAgIHwgIDkgKysrKyst LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jICAgIHwgIDQgKyst LQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICB8IDExICsrKysr KysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jICAgICAgICAgIHwgIDcg KysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5jICAgICB8IDEz ICsrKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2NfZG1h LmMgfCAxMSArKysrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyAgICAg ICAgICAgICB8ICA2ICsrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X29i amVjdC5jICB8ICA2ICsrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0 bS5jICAgICB8ICA1ICsrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZm ZXIuYyAgIHwgMTMgKysrKystLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfbW9iLmMgICAgICB8IDEzICsrKysrKysrKysrLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1f Ym9fZHJpdmVyLmggICAgICAgICAgfCAgNSArKystLQo+ICAgaW5jbHVkZS9kcm0vdHRtL3R0bV9w YWdlX2FsbG9jLmggICAgICAgICB8IDExICsrKysrKystLS0tCj4gICAxOCBmaWxlcyBjaGFuZ2Vk LCA4NiBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmMKPiBpbmRleCBmMWI3ZDk4Li41MmFhYjlkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+IEBAIC05OTAsNyArOTkwLDggQEAg c3RhdGljIHN0cnVjdCB0dG1fdHQgKmFtZGdwdV90dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+ICAgCXJldHVybiAmZ3R0LT50dG0udHRtOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gK3N0 YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4gKwkJ CQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gICAJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYodHRtLT5iZGV2KTsKPiAgIAlzdHJ1Y3Qg YW1kZ3B1X3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07Cj4gQEAgLTEwMTgsMTEgKzEwMTksMTEg QEAgc3RhdGljIGludCBhbWRncHVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkK PiAgIAo+ICAgI2lmZGVmIENPTkZJR19TV0lPVExCCj4gICAJaWYgKHN3aW90bGJfbnJfdGJsKCkp IHsKPiAtCQlyZXR1cm4gdHRtX2RtYV9wb3B1bGF0ZSgmZ3R0LT50dG0sIGFkZXYtPmRldik7Cj4g KwkJcmV0dXJuIHR0bV9kbWFfcG9wdWxhdGUoJmd0dC0+dHRtLCBhZGV2LT5kZXYsIGN0eCk7Cj4g ICAJfQo+ICAgI2VuZGlmCj4gICAKPiAtCXJldHVybiB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdl cyhhZGV2LT5kZXYsICZndHQtPnR0bSk7Cj4gKwlyZXR1cm4gdHRtX3BvcHVsYXRlX2FuZF9tYXBf cGFnZXMoYWRldi0+ZGV2LCAmZ3R0LT50dG0sIGN0eCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2 b2lkIGFtZGdwdV90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2Fz dC9hc3RfdHRtLmMKPiBpbmRleCAyOGRhN2MyLi4xNDEzZTk0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X3R0bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3Rf dHRtLmMKPiBAQCAtMjE2LDkgKzIxNiwxMCBAQCBzdGF0aWMgc3RydWN0IHR0bV90dCAqYXN0X3R0 bV90dF9jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gICAJcmV0dXJuIHR0Owo+ ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgYXN0X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0pCj4gK3N0YXRpYyBpbnQgYXN0X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0 dG0sCj4gKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+IC0JcmV0dXJu IHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7Cj4gKwlyZXR1cm4gdHRtX3Bvb2xfcG9wdWxhdGUodHRt LCBjdHgpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBhc3RfdHRtX3R0X3VucG9wdWxhdGUo c3RydWN0IHR0bV90dCAqdHRtKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVz L2NpcnJ1c190dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCj4gaW5k ZXggMmE1YjU0ZC4uOTVlMmQ0MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVz L2NpcnJ1c190dG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5j Cj4gQEAgLTIxNiw5ICsyMTYsMTAgQEAgc3RhdGljIHN0cnVjdCB0dG1fdHQgKmNpcnJ1c190dG1f dHRfY3JlYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICAgCXJldHVybiB0dDsKPiAg IH0KPiAgIAo+IC1zdGF0aWMgaW50IGNpcnJ1c190dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90 dCAqdHRtKQo+ICtzdGF0aWMgaW50IGNpcnJ1c190dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90 dCAqdHRtLAo+ICsJCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gLQly ZXR1cm4gdHRtX3Bvb2xfcG9wdWxhdGUodHRtKTsKPiArCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0 ZSh0dG0sIGN0eCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGNpcnJ1c190dG1fdHRfdW5w b3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf Ym8uYwo+IGluZGV4IDZiNmZiMjAuLmIxNDFjMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5jCj4gQEAgLTE1NDcsNyArMTU0Nyw3IEBAIG5vdXZlYXVfdHRtX2ZhdWx0X3Jl c2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gICB9Cj4gICAKPiAg IHN0YXRpYyBpbnQKPiAtbm91dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRt KQo+ICtub3V2ZWF1X3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fZG1hX3R0ICp0dG1f ZG1hID0gKHZvaWQgKil0dG07Cj4gICAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm07Cj4gQEAgLTE1 NzIsMTcgKzE1NzIsMTcgQEAgbm91dmVhdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAq dHRtKQo+ICAgCj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQKQo+ICAgCWlmIChkcm0tPmFn cC5icmlkZ2UpIHsKPiAtCQlyZXR1cm4gdHRtX2FncF90dF9wb3B1bGF0ZSh0dG0pOwo+ICsJCXJl dHVybiB0dG1fYWdwX3R0X3BvcHVsYXRlKHR0bSwgY3R4KTsKPiAgIAl9Cj4gICAjZW5kaWYKPiAg IAo+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX1NXSU9UTEIpICYmIElTX0VOQUJMRUQoQ09ORklH X1g4NikKPiAgIAlpZiAoc3dpb3RsYl9ucl90YmwoKSkgewo+IC0JCXJldHVybiB0dG1fZG1hX3Bv cHVsYXRlKCh2b2lkICopdHRtLCBkZXYpOwo+ICsJCXJldHVybiB0dG1fZG1hX3BvcHVsYXRlKCh2 b2lkICopdHRtLCBkZXYsIGN0eCk7Cj4gICAJfQo+ICAgI2VuZGlmCj4gICAKPiAtCXIgPSB0dG1f cG9vbF9wb3B1bGF0ZSh0dG0pOwo+ICsJciA9IHR0bV9wb29sX3BvcHVsYXRlKHR0bSwgY3R4KTsK PiAgIAlpZiAocikgewo+ICAgCQlyZXR1cm4gcjsKPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMK PiBpbmRleCA3OGNlMTE4Li45ODk2NDVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3R0bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPiBAQCAt MjkxLDE0ICsyOTEsMTUgQEAgc3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIHF4bF9iYWNr ZW5kX2Z1bmMgPSB7Cj4gICAJLmRlc3Ryb3kgPSAmcXhsX3R0bV9iYWNrZW5kX2Rlc3Ryb3ksCj4g ICB9Owo+ICAgCj4gLXN0YXRpYyBpbnQgcXhsX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0 ICp0dG0pCj4gK3N0YXRpYyBpbnQgcXhsX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0 dG0sCj4gKwkJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAgIAlpbnQg cjsKPiAgIAo+ICAgCWlmICh0dG0tPnN0YXRlICE9IHR0X3VucG9wdWxhdGVkKQo+ICAgCQlyZXR1 cm4gMDsKPiAgIAo+IC0JciA9IHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7Cj4gKwlyID0gdHRtX3Bv b2xfcG9wdWxhdGUodHRtLCBjdHgpOwo+ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4gaW5kZXggNTU3ZmQ3OS4uNjM0ZmM2ZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCj4gQEAgLTcyMSw3ICs3MjEsOCBA QCBzdGF0aWMgc3RydWN0IHJhZGVvbl90dG1fdHQgKnJhZGVvbl90dG1fdHRfdG9fZ3R0KHN0cnVj dCB0dG1fdHQgKnR0bSkKPiAgIAlyZXR1cm4gKHN0cnVjdCByYWRlb25fdHRtX3R0ICopdHRtOwo+ ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4gK3N0YXRpYyBpbnQgcmFkZW9uX3R0bV90dF9wb3B1bGF0ZShzdHJ1Y3QgdHRt X3R0ICp0dG0sCj4gKwkJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAg IAlzdHJ1Y3QgcmFkZW9uX3R0bV90dCAqZ3R0ID0gcmFkZW9uX3R0bV90dF90b19ndHQodHRtKTsK PiAgIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldjsKPiBAQCAtNzUwLDE3ICs3NTEsMTcgQEAg c3RhdGljIGludCByYWRlb25fdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKPiAg IAlyZGV2ID0gcmFkZW9uX2dldF9yZGV2KHR0bS0+YmRldik7Cj4gICAjaWYgSVNfRU5BQkxFRChD T05GSUdfQUdQKQo+ICAgCWlmIChyZGV2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKPiAtCQly ZXR1cm4gdHRtX2FncF90dF9wb3B1bGF0ZSh0dG0pOwo+ICsJCXJldHVybiB0dG1fYWdwX3R0X3Bv cHVsYXRlKHR0bSwgY3R4KTsKPiAgIAl9Cj4gICAjZW5kaWYKPiAgIAo+ICAgI2lmZGVmIENPTkZJ R19TV0lPVExCCj4gICAJaWYgKHN3aW90bGJfbnJfdGJsKCkpIHsKPiAtCQlyZXR1cm4gdHRtX2Rt YV9wb3B1bGF0ZSgmZ3R0LT50dG0sIHJkZXYtPmRldik7Cj4gKwkJcmV0dXJuIHR0bV9kbWFfcG9w dWxhdGUoJmd0dC0+dHRtLCByZGV2LT5kZXYsIGN0eCk7Cj4gICAJfQo+ICAgI2VuZGlmCj4gICAK PiAtCXJldHVybiB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhyZGV2LT5kZXYsICZndHQtPnR0 bSk7Cj4gKwlyZXR1cm4gdHRtX3BvcHVsYXRlX2FuZF9tYXBfcGFnZXMocmRldi0+ZGV2LCAmZ3R0 LT50dG0sIGN0eCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5w b3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2FncF9iYWNrZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFj a2VuZC5jCj4gaW5kZXggMDI4YWI2MC4uM2U3OTVhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYWdwX2JhY2tlbmQuYwo+IEBAIC0xMzMsMTIgKzEzMywxMiBAQCBzdHJ1Y3QgdHRtX3R0ICp0 dG1fYWdwX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIH0KPiAgIEVY UE9SVF9TWU1CT0wodHRtX2FncF90dF9jcmVhdGUpOwo+ICAgCj4gLWludCB0dG1fYWdwX3R0X3Bv cHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKPiAraW50IHR0bV9hZ3BfdHRfcG9wdWxhdGUoc3Ry dWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAg IAlpZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBvcHVsYXRlZCkKPiAgIAkJcmV0dXJuIDA7Cj4gICAK PiAtCXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOwo+ICsJcmV0dXJuIHR0bV9wb29sX3Bv cHVsYXRlKHR0bSwgY3R4KTsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0wodHRtX2FncF90dF9wb3B1 bGF0ZSk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRp bC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4gaW5kZXggNmUzNTNkZi4u YjdlYjUwNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPiBAQCAtMzc2LDcgKzM3 Niw3IEBAIGludCB0dG1fYm9fbW92ZV9tZW1jcHkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPiAgIAkgKiBUVE0gbWlnaHQgYmUgbnVsbCBmb3IgbW92ZXMgd2l0aGluIHRoZSBzYW1lIHJl Z2lvbi4KPiAgIAkgKi8KPiAgIAlpZiAodHRtICYmIHR0bS0+c3RhdGUgPT0gdHRfdW5wb3B1bGF0 ZWQpIHsKPiAtCQlyZXQgPSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKHR0bSk7 Cj4gKwkJcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0sIGN0eCk7 Cj4gICAJCWlmIChyZXQpCj4gICAJCQlnb3RvIG91dDE7Cj4gICAJfQo+IEBAIC01NDUsMTQgKzU0 NSwxOSBAQCBzdGF0aWMgaW50IHR0bV9ib19rbWFwX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+ICAgCQkJICAgdW5zaWduZWQgbG9uZyBudW1fcGFnZXMsCj4gICAJCQkgICBzdHJ1 Y3QgdHRtX2JvX2ttYXBfb2JqICptYXApCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1l bSA9ICZiby0+bWVtOyBwZ3Byb3RfdCBwcm90Owo+ICsJc3RydWN0IHR0bV9tZW1fcmVnICptZW0g PSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4gKwkJLmlu dGVycnVwdGlibGUgPSBmYWxzZSwKPiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ICsJfTsKPiAg IAlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRtOwo+ICsJcGdwcm90X3QgcHJvdDsKPiAgIAlp bnQgcmV0Owo+ICAgCj4gICAJQlVHX09OKCF0dG0pOwo+ICAgCj4gICAJaWYgKHR0bS0+c3RhdGUg PT0gdHRfdW5wb3B1bGF0ZWQpIHsKPiAtCQlyZXQgPSB0dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0 X3BvcHVsYXRlKHR0bSk7Cj4gKwkJcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1 bGF0ZSh0dG0sICZjdHgpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJldDsKPiAgIAl9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4gaW5kZXggYzhlYmI3NS4uNjVkZmNkZCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm9fdm0uYwo+IEBAIC0yMTUsMTIgKzIxNSwxNyBAQCBzdGF0aWMgaW50 IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiAgIAkJY3ZtYS52bV9wYWdl X3Byb3QgPSB0dG1faW9fcHJvdChiby0+bWVtLnBsYWNlbWVudCwKPiAgIAkJCQkJCWN2bWEudm1f cGFnZV9wcm90KTsKPiAgIAl9IGVsc2Ugewo+ICsJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBj dHggPSB7Cj4gKwkJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4gKwkJCS5ub193YWl0X2dwdSA9 IGZhbHNlCj4gKwkJfTsKPiArCj4gICAJCXR0bSA9IGJvLT50dG07Cj4gICAJCWN2bWEudm1fcGFn ZV9wcm90ID0gdHRtX2lvX3Byb3QoYm8tPm1lbS5wbGFjZW1lbnQsCj4gICAJCQkJCQljdm1hLnZt X3BhZ2VfcHJvdCk7Cj4gICAKPiAgIAkJLyogQWxsb2NhdGUgYWxsIHBhZ2UgYXQgb25jZSwgbW9z dCBjb21tb24gdXNhZ2UgKi8KPiAtCQlpZiAodHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1 bGF0ZSh0dG0pKSB7Cj4gKwkJaWYgKHR0bS0+YmRldi0+ZHJpdmVyLT50dG1fdHRfcG9wdWxhdGUo dHRtLCAmY3R4KSkgewo+ICAgCQkJcmV0dmFsID0gVk1fRkFVTFRfT09NOwo+ICAgCQkJZ290byBv dXRfaW9fdW5sb2NrOwo+ICAgCQl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX3BhZ2VfYWxsb2MuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYwo+ IGluZGV4IDhmOTNmZjMuLmYxYTNkNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fcGFnZV9hbGxvYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9h bGxvYy5jCj4gQEAgLTEwNTgsMTMgKzEwNTgsOSBAQCB2b2lkIHR0bV9wYWdlX2FsbG9jX2Zpbmko dm9pZCkKPiAgIAlfbWFuYWdlciA9IE5VTEw7Cj4gICB9Cj4gICAKPiAtaW50IHR0bV9wb29sX3Bv cHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKPiAraW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVj dCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gICAJ c3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9IHR0bS0+Z2xvYi0+bWVtX2dsb2I7Cj4g LQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+IC0JCS5pbnRlcnJ1cHRpYmxlID0g ZmFsc2UsCj4gLQkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPiAtCX07Cj4gICAJdW5zaWduZWQgaTsK PiAgIAlpbnQgcmV0Owo+ICAgCj4gQEAgLTEwODAsNyArMTA3Niw3IEBAIGludCB0dG1fcG9vbF9w b3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gICAKPiAgIAlmb3IgKGkgPSAwOyBpIDwgdHRt LT5udW1fcGFnZXM7ICsraSkgewo+ICAgCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdl KG1lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+IC0JCQkJCQlQQUdFX1NJWkUsICZjdHgpOwo+ICsJ CQkJCQlQQUdFX1NJWkUsIGN0eCk7Cj4gICAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKPiAg IAkJCXR0bV9wb29sX3VucG9wdWxhdGUodHRtKTsKPiAgIAkJCXJldHVybiAtRU5PTUVNOwo+IEBA IC0xMTE3LDEyICsxMTEzLDEzIEBAIHZvaWQgdHRtX3Bvb2xfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRt X3R0ICp0dG0pCj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MKHR0bV9wb29sX3VucG9wdWxhdGUpOwo+ ICAgCj4gLWludCB0dG1fcG9wdWxhdGVfYW5kX21hcF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCB0dG1fZG1hX3R0ICp0dCkKPiAraW50IHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2Vz KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0bV9kbWFfdHQgKnR0LAo+ICsJCQkJCXN0cnVj dCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAgCXVuc2lnbmVkIGksIGo7Cj4gICAJ aW50IHI7Cj4gICAKPiAtCXIgPSB0dG1fcG9vbF9wb3B1bGF0ZSgmdHQtPnR0bSk7Cj4gKwlyID0g dHRtX3Bvb2xfcG9wdWxhdGUoJnR0LT50dG0sIGN0eCk7Cj4gICAJaWYgKHIpCj4gICAJCXJldHVy biByOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxs b2NfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jX2RtYS5jCj4gaW5k ZXggOGFhYzg2YS4uM2FjNTM5MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9wYWdlX2FsbG9jX2RtYS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9h bGxvY19kbWEuYwo+IEBAIC05MjMsMTQgKzkyMywxMSBAQCBzdGF0aWMgZ2ZwX3QgdHRtX2RtYV9w b29sX2dmcF9mbGFncyhzdHJ1Y3QgdHRtX2RtYV90dCAqdHRtX2RtYSwgYm9vbCBodWdlKQo+ICAg ICogT24gc3VjY2VzcyBwYWdlcyBsaXN0IHdpbGwgaG9sZCBjb3VudCBudW1iZXIgb2YgY29ycmVj dGx5Cj4gICAgKiBjYWNoZWQgcGFnZXMuIE9uIGZhaWx1cmUgd2lsbCBob2xkIHRoZSBuZWdhdGl2 ZSByZXR1cm4gdmFsdWUgKC1FTk9NRU0sIGV0YykuCj4gICAgKi8KPiAtaW50IHR0bV9kbWFfcG9w dWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldikKPiAr aW50IHR0bV9kbWFfcG9wdWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBk ZXZpY2UgKmRldiwKPiArCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4g ICAJc3RydWN0IHR0bV90dCAqdHRtID0gJnR0bV9kbWEtPnR0bTsKPiAgIAlzdHJ1Y3QgdHRtX21l bV9nbG9iYWwgKm1lbV9nbG9iID0gdHRtLT5nbG9iLT5tZW1fZ2xvYjsKPiAtCXN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4gLQkJLmludGVycnVwdGlibGUgPSBmYWxzZSwKPiAtCQku bm9fd2FpdF9ncHUgPSBmYWxzZQo+IC0JfTsKPiAgIAl1bnNpZ25lZCBsb25nIG51bV9wYWdlcyA9 IHR0bS0+bnVtX3BhZ2VzOwo+ICAgCXN0cnVjdCBkbWFfcG9vbCAqcG9vbDsKPiAgIAllbnVtIHBv b2xfdHlwZSB0eXBlOwo+IEBAIC05NjYsNyArOTYzLDcgQEAgaW50IHR0bV9kbWFfcG9wdWxhdGUo c3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEsIHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIAkJCWJy ZWFrOwo+ICAgCj4gICAJCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UobWVtX2dsb2Is IHR0bS0+cGFnZXNbaV0sCj4gLQkJCQkJCXBvb2wtPnNpemUsICZjdHgpOwo+ICsJCQkJCQlwb29s LT5zaXplLCBjdHgpOwo+ICAgCQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4gICAJCQl0dG1f ZG1hX3VucG9wdWxhdGUodHRtX2RtYSwgZGV2KTsKPiAgIAkJCXJldHVybiAtRU5PTUVNOwo+IEBA IC0xMDAyLDcgKzk5OSw3IEBAIGludCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0 ICp0dG1fZG1hLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAJCX0KPiAgIAo+ICAgCQlyZXQgPSB0 dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdlKG1lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+IC0JCQkJ CQlwb29sLT5zaXplLCAmY3R4KTsKPiArCQkJCQkJcG9vbC0+c2l6ZSwgY3R4KTsKPiAgIAkJaWYg KHVubGlrZWx5KHJldCAhPSAwKSkgewo+ICAgCQkJdHRtX2RtYV91bnBvcHVsYXRlKHR0bV9kbWEs IGRldik7Cj4gICAJCQlyZXR1cm4gLUVOT01FTTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fdHQuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKPiBpbmRleCA4 ZWJjOGQzLi5iNDhkN2EwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4gQEAgLTI2Myw2ICsyNjMs MTAgQEAgdm9pZCB0dG1fdHRfdW5iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSkKPiAgIAo+ICAgaW50 IHR0bV90dF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICpib19t ZW0pCj4gICB7Cj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+ICsJCS5pbnRl cnJ1cHRpYmxlID0gZmFsc2UsCj4gKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPiArCX07Cj4gICAJ aW50IHJldCA9IDA7Cj4gICAKPiAgIAlpZiAoIXR0bSkKPiBAQCAtMjcxLDcgKzI3NSw3IEBAIGlu dCB0dG1fdHRfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9f bWVtKQo+ICAgCWlmICh0dG0tPnN0YXRlID09IHR0X2JvdW5kKQo+ICAgCQlyZXR1cm4gMDsKPiAg IAo+IC0JcmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0pOwo+ICsJ cmV0ID0gdHRtLT5iZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZSh0dG0sICZjdHgpOwo+ICAg CWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92 aXJ0Z3B1X29iamVjdC5jCj4gaW5kZXggNmY2NmI3My4uMGI5MGNkYiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfb2JqZWN0LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdmlydGlvL3ZpcnRncHVfb2JqZWN0LmMKPiBAQCAtMTI0LDEzICsxMjQsMTcgQEAgaW50 IHZpcnRpb19ncHVfb2JqZWN0X2dldF9zZ190YWJsZShzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2Ug KnFkZXYsCj4gICAJaW50IHJldDsKPiAgIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gYm8tPnRiby50 dG0tPnBhZ2VzOwo+ICAgCWludCBucl9wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOwo+ICsJc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKPiArCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNl LAo+ICsJCS5ub193YWl0X2dwdSA9IGZhbHNlCj4gKwl9Owo+ICAgCj4gICAJLyogd3RmIHN3YXBw aW5nICovCj4gICAJaWYgKGJvLT5wYWdlcykKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiAgIAlpZiAo Ym8tPnRiby50dG0tPnN0YXRlID09IHR0X3VucG9wdWxhdGVkKQo+IC0JCWJvLT50Ym8udHRtLT5i ZGV2LT5kcml2ZXItPnR0bV90dF9wb3B1bGF0ZShiby0+dGJvLnR0bSk7Cj4gKwkJYm8tPnRiby50 dG0tPmJkZXYtPmRyaXZlci0+dHRtX3R0X3BvcHVsYXRlKGJvLT50Ym8udHRtLCAmY3R4KTsKPiAg IAliby0+cGFnZXMgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2dfdGFibGUpLCBHRlBfS0VSTkVM KTsKPiAgIAlpZiAoIWJvLT5wYWdlcykKPiAgIAkJZ290byBvdXQ7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0 aW8vdmlydGdwdV90dG0uYwo+IGluZGV4IDQ4OGM2YmQuLjcyZWI0MTcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCj4gQEAgLTMyNCwxMiArMzI0LDEzIEBAIHN0YXRpYyBz dHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyB2aXJ0aW9fZ3B1X2JhY2tlbmRfZnVuYyA9IHsKPiAgIAku ZGVzdHJveSA9ICZ2aXJ0aW9fZ3B1X3R0bV9iYWNrZW5kX2Rlc3Ryb3ksCj4gICB9Owo+ICAgCj4g LXN0YXRpYyBpbnQgdmlydGlvX2dwdV90dG1fdHRfcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRt KQo+ICtzdGF0aWMgaW50IHZpcnRpb19ncHVfdHRtX3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQg KnR0bSwKPiArCQkJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAgIAlp ZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBvcHVsYXRlZCkKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiAt CXJldHVybiB0dG1fcG9vbF9wb3B1bGF0ZSh0dG0pOwo+ICsJcmV0dXJuIHR0bV9wb29sX3BvcHVs YXRlKHR0bSwgY3R4KTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgdmlydGlvX2dwdV90dG1f dHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfYnVmZmVyLmMKPiBpbmRleCBlZjk3NTQyLi45MGIwZDZiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKPiBAQCAtNjM1LDE2ICs2MzUsMTIgQEAgc3RhdGlj IHZvaWQgdm13X3R0bV9kZXN0cm95KHN0cnVjdCB0dG1fdHQgKnR0bSkKPiAgIH0KPiAgIAo+ICAg Cj4gLXN0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gK3N0 YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAgCXN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQg PQo+ICAgCQljb250YWluZXJfb2YodHRtLCBzdHJ1Y3Qgdm13X3R0bV90dCwgZG1hX3R0bS50dG0p Owo+ICAgCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfdHQtPmRldl9wcml2Owo+ ICAgCXN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiA9IHZtd19tZW1fZ2xvYihkZXZfcHJpdik7 Cj4gLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+IC0JCS5pbnRlcnJ1cHRpYmxl ID0gdHJ1ZSwKPiAtCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+IC0JfTsKPiAgIAlpbnQgcmV0Owo+ ICAgCj4gICAJaWYgKHR0bS0+c3RhdGUgIT0gdHRfdW5wb3B1bGF0ZWQpCj4gQEAgLTY1MywxNSAr NjQ5LDE2IEBAIHN0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0p Cj4gICAJaWYgKGRldl9wcml2LT5tYXBfbW9kZSA9PSB2bXdfZG1hX2FsbG9jX2NvaGVyZW50KSB7 Cj4gICAJCXNpemVfdCBzaXplID0KPiAgIAkJCXR0bV9yb3VuZF9wb3QodHRtLT5udW1fcGFnZXMg KiBzaXplb2YoZG1hX2FkZHJfdCkpOwo+IC0JCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKGds b2IsIHNpemUsICZjdHgpOwo+ICsJCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKGdsb2IsIHNp emUsIGN0eCk7Cj4gICAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCj4gICAJCQlyZXR1cm4gcmV0 Owo+ICAgCj4gLQkJcmV0ID0gdHRtX2RtYV9wb3B1bGF0ZSgmdm13X3R0LT5kbWFfdHRtLCBkZXZf cHJpdi0+ZGV2LT5kZXYpOwo+ICsJCXJldCA9IHR0bV9kbWFfcG9wdWxhdGUoJnZtd190dC0+ZG1h X3R0bSwgZGV2X3ByaXYtPmRldi0+ZGV2LAo+ICsJCQkJCWN0eCk7Cj4gICAJCWlmICh1bmxpa2Vs eShyZXQgIT0gMCkpCj4gICAJCQl0dG1fbWVtX2dsb2JhbF9mcmVlKGdsb2IsIHNpemUpOwo+ICAg CX0gZWxzZQo+IC0JCXJldCA9IHR0bV9wb29sX3BvcHVsYXRlKHR0bSk7Cj4gKwkJcmV0ID0gdHRt X3Bvb2xfcG9wdWxhdGUodHRtLCBjdHgpOwo+ICAgCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYwo+IGluZGV4IGIxN2YwOGYuLjczNmNhNDcgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYwo+IEBAIC0yNDAsNiArMjQwLDEwIEBA IHN0YXRpYyBpbnQgdm13X290YWJsZV9iYXRjaF9zZXR1cChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAgCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Owo+ICAgCXVuc2lnbmVkIGxvbmcgYm9f c2l6ZTsKPiAgIAlzdHJ1Y3Qgdm13X290YWJsZSAqb3RhYmxlcyA9IGJhdGNoLT5vdGFibGVzOwo+ ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKPiArCQkuaW50ZXJydXB0aWJsZSA9 IGZhbHNlLAo+ICsJCS5ub193YWl0X2dwdSA9IGZhbHNlCj4gKwl9Owo+ICAgCVNWR0FPVGFibGVU eXBlIGk7Cj4gICAJaW50IHJldDsKPiAgIAo+IEBAIC0yNjQsNyArMjY4LDcgQEAgc3RhdGljIGlu dCB2bXdfb3RhYmxlX2JhdGNoX3NldHVwKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g ICAKPiAgIAlyZXQgPSB0dG1fYm9fcmVzZXJ2ZShiYXRjaC0+b3RhYmxlX2JvLCBmYWxzZSwgdHJ1 ZSwgTlVMTCk7Cj4gICAJQlVHX09OKHJldCAhPSAwKTsKPiAtCXJldCA9IHZtd19ib19kcml2ZXIu dHRtX3R0X3BvcHVsYXRlKGJhdGNoLT5vdGFibGVfYm8tPnR0bSk7Cj4gKwlyZXQgPSB2bXdfYm9f ZHJpdmVyLnR0bV90dF9wb3B1bGF0ZShiYXRjaC0+b3RhYmxlX2JvLT50dG0sICZjdHgpOwo+ICAg CWlmICh1bmxpa2VseShyZXQgIT0gMCkpCj4gICAJCWdvdG8gb3V0X3VucmVzZXJ2ZTsKPiAgIAly ZXQgPSB2bXdfYm9fbWFwX2RtYShiYXRjaC0+b3RhYmxlX2JvKTsKPiBAQCAtNDMwLDYgKzQzNCwx MSBAQCBzdGF0aWMgaW50IHZtd19tb2JfcHRfcG9wdWxhdGUoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwKPiAgIAkJCSAgICAgICBzdHJ1Y3Qgdm13X21vYiAqbW9iKQo+ICAgewo+ICAgCWlu dCByZXQ7Cj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+ICsJCS5pbnRlcnJ1 cHRpYmxlID0gZmFsc2UsCj4gKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPiArCX07Cj4gKwo+ICAg CUJVR19PTihtb2ItPnB0X2JvICE9IE5VTEwpOwo+ICAgCj4gICAJcmV0ID0gdHRtX2JvX2NyZWF0 ZSgmZGV2X3ByaXYtPmJkZXYsIG1vYi0+bnVtX3BhZ2VzICogUEFHRV9TSVpFLAo+IEBAIC00NDIs NyArNDUxLDcgQEAgc3RhdGljIGludCB2bXdfbW9iX3B0X3BvcHVsYXRlKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gICAJcmV0ID0gdHRtX2JvX3Jlc2VydmUobW9iLT5wdF9ibywgZmFs c2UsIHRydWUsIE5VTEwpOwo+ICAgCj4gICAJQlVHX09OKHJldCAhPSAwKTsKPiAtCXJldCA9IHZt d19ib19kcml2ZXIudHRtX3R0X3BvcHVsYXRlKG1vYi0+cHRfYm8tPnR0bSk7Cj4gKwlyZXQgPSB2 bXdfYm9fZHJpdmVyLnR0bV90dF9wb3B1bGF0ZShtb2ItPnB0X2JvLT50dG0sICZjdHgpOwo+ICAg CWlmICh1bmxpa2VseShyZXQgIT0gMCkpCj4gICAJCWdvdG8gb3V0X3VucmVzZXJ2ZTsKPiAgIAly ZXQgPSB2bXdfYm9fbWFwX2RtYShtb2ItPnB0X2JvKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgK PiBpbmRleCA5MzRmZWNmLi44NDg2MGVjIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fZHJpdmVyLmgKPiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4g QEAgLTM1Miw3ICszNTIsOCBAQCBzdHJ1Y3QgdHRtX2JvX2RyaXZlciB7Cj4gICAJICogUmV0dXJu czoKPiAgIAkgKiAtRU5PTUVNOiBPdXQgb2YgbWVtb3J5Lgo+ICAgCSAqLwo+IC0JaW50ICgqdHRt X3R0X3BvcHVsYXRlKShzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+ICsJaW50ICgqdHRtX3R0X3BvcHVs YXRlKShzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4gKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAq Y3R4KTsKPiAgIAo+ICAgCS8qKgo+ICAgCSAqIHR0bV90dF91bnBvcHVsYXRlCj4gQEAgLTEwNzcs NyArMTA3OCw3IEBAIHN0cnVjdCB0dG1fdHQgKnR0bV9hZ3BfdHRfY3JlYXRlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+ICAgCQkJCSBzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2Us Cj4gICAJCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdWludDMyX3QgcGFnZV9mbGFncywKPiAgIAkJ CQkgc3RydWN0IHBhZ2UgKmR1bW15X3JlYWRfcGFnZSk7Cj4gLWludCB0dG1fYWdwX3R0X3BvcHVs YXRlKHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4gK2ludCB0dG1fYWdwX3R0X3BvcHVsYXRlKHN0cnVj dCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+ICAgdm9pZCB0 dG1fYWdwX3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKTsKPiAgICNlbmRpZgo+ICAg Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5oIGIvaW5jbHVk ZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmgKPiBpbmRleCA1OTM4MTEzLi5mODM5NWRkIDEwMDY0 NAo+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5oCj4gKysrIGIvaW5jbHVk ZS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmgKPiBAQCAtNDcsNyArNDcsNyBAQCB2b2lkIHR0bV9w YWdlX2FsbG9jX2Zpbmkodm9pZCk7Cj4gICAgKgo+ICAgICogQWRkIGJhY2tpbmcgcGFnZXMgdG8g YWxsIG9mIEB0dG0KPiAgICAqLwo+IC1pbnQgdHRtX3Bvb2xfcG9wdWxhdGUoc3RydWN0IHR0bV90 dCAqdHRtKTsKPiAraW50IHR0bV9wb29sX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+ICAgCj4gICAvKioKPiAgICAqIHR0bV9wb29s X3VucG9wdWxhdGU6Cj4gQEAgLTYxLDcgKzYxLDggQEAgdm9pZCB0dG1fcG9vbF91bnBvcHVsYXRl KHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4gICAvKioKPiAgICAqIFBvcHVsYXRlcyBhbmQgRE1BIG1h cHMgcGFnZXMgdG8gZnVsbGZpbCBhIHR0bV9kbWFfcG9wdWxhdGUoKSByZXF1ZXN0Cj4gICAgKi8K PiAtaW50IHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IHR0bV9kbWFfdHQgKnR0KTsKPiAraW50IHR0bV9wb3B1bGF0ZV9hbmRfbWFwX3BhZ2VzKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHR0bV9kbWFfdHQgKnR0LAo+ICsJCQkJc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4ICpjdHgpOwo+ICAgCj4gICAvKioKPiAgICAqIFVucG9wdWxhdGVzIGFu ZCBETUEgdW5tYXBzIHBhZ2VzIGFzIHBhcnQgb2YgYQo+IEBAIC04OSw3ICs5MCw4IEBAIHZvaWQg dHRtX2RtYV9wYWdlX2FsbG9jX2Zpbmkodm9pZCk7Cj4gICAgKi8KPiAgIGludCB0dG1fZG1hX3Bh Z2VfYWxsb2NfZGVidWdmcyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpOwo+ICAgCj4g LWludCB0dG1fZG1hX3BvcHVsYXRlKHN0cnVjdCB0dG1fZG1hX3R0ICp0dG1fZG1hLCBzdHJ1Y3Qg ZGV2aWNlICpkZXYpOwo+ICtpbnQgdHRtX2RtYV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90dCAq dHRtX2RtYSwgc3RydWN0IGRldmljZSAqZGV2LAo+ICsJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9j dHggKmN0eCk7Cj4gICB2b2lkIHR0bV9kbWFfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RtYV90dCAq dHRtX2RtYSwgc3RydWN0IGRldmljZSAqZGV2KTsKPiAgIAo+ICAgI2Vsc2UKPiBAQCAtMTA2LDcg KzEwOCw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IHR0bV9kbWFfcGFnZV9hbGxvY19kZWJ1Z2ZzKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIHN0 YXRpYyBpbmxpbmUgaW50IHR0bV9kbWFfcG9wdWxhdGUoc3RydWN0IHR0bV9kbWFfdHQgKnR0bV9k bWEsCj4gLQkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gKwkJCQkgICBzdHJ1Y3QgZGV2aWNl ICpkZXYsCj4gKwkJCQkgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAg IAlyZXR1cm4gLUVOT01FTTsKPiAgIH0KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=