From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Zhu Subject: Re: [PATCH 1/2] drm/amdgpu/sdma: simplify sdma instance setup Date: Tue, 3 Jul 2018 09:38:19 -0400 Message-ID: References: <20180625174235.29172-1-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180625174235.29172-1-alexander.deucher-5C7GfCeVMHo@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: Alex Deucher , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Alex Deucher ClJldmlld2VkLWJ5OiBKYW1lcyBaaHUgPEphbWVzLlpodUBhbWQuY29tPiBmb3IgdGhlIHNlcmll cwoKT24gMjAxOC0wNi0yNSAwMTo0MiBQTSwgQWxleCBEZXVjaGVyIHdyb3RlOgo+IFNldCB0aGUg bWUgaW5zdGFuY2UgaW4gZWFybHkgaW5pdCBhbmQgdXNlIHRoYXQgcmF0aGVyIHRoYW4KPiBjYWxj dWxhdGluZyB0aGUgaW5zdGFuY2UgYmFzZWQgb24gdGhlIHJpbmcgcG9pbnRlci4KPgo+IFNpZ25l ZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgIHwgMTIgKysrKysrLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyB8IDEyICsrKysr Ky0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMgfCAxNCAr KysrKystLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMg fCAyMyArKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNl cnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lr X3NkbWEuYwo+IGluZGV4IGE3NTc2MjU1Y2MzMC4uZGJkNTUzYThkNTg0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCj4gQEAgLTE3Nyw5ICsxNzcsOCBAQCBzdGF0aWMg dWludDY0X3QgY2lrX3NkbWFfcmluZ19nZXRfcnB0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp Cj4gICBzdGF0aWMgdWludDY0X3QgY2lrX3NkbWFfcmluZ19nZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcpCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5n LT5hZGV2Owo+IC0JdTMyIG1lID0gKHJpbmcgPT0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmlu ZykgPyAwIDogMTsKPiAgIAo+IC0JcmV0dXJuIChSUkVHMzIobW1TRE1BMF9HRlhfUkJfV1BUUiAr IHNkbWFfb2Zmc2V0c1ttZV0pICYgMHgzZmZmYykgPj4gMjsKPiArCXJldHVybiAoUlJFRzMyKG1t U0RNQTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbcmluZy0+bWVdKSAmIDB4M2ZmZmMpID4+ IDI7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IEBAIC0xOTIsOSArMTkxLDggQEAgc3RhdGljIHVpbnQ2 NF90IGNpa19zZG1hX3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAg c3RhdGljIHZvaWQgY2lrX3NkbWFfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcpCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Owo+ IC0JdTMyIG1lID0gKHJpbmcgPT0gJmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZykgPyAwIDog MTsKPiAgIAo+IC0JV1JFRzMyKG1tU0RNQTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbbWVd LAo+ICsJV1JFRzMyKG1tU0RNQTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbcmluZy0+bWVd LAo+ICAgCQkgICAgICAgCShsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpIDw8IDIpICYgMHgzZmZm Yyk7Cj4gICB9Cj4gICAKPiBAQCAtMjQ4LDcgKzI0Niw3IEBAIHN0YXRpYyB2b2lkIGNpa19zZG1h X3JpbmdfZW1pdF9oZHBfZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCQkJICBT RE1BX1BPTExfUkVHX01FTV9FWFRSQV9GVU5DKDMpKTsgLyogPT0gKi8KPiAgIAl1MzIgcmVmX2Fu ZF9tYXNrOwo+ICAgCj4gLQlpZiAocmluZyA9PSAmcmluZy0+YWRldi0+c2RtYS5pbnN0YW5jZVsw XS5yaW5nKQo+ICsJaWYgKHJpbmctPm1lID09IDApCj4gICAJCXJlZl9hbmRfbWFzayA9IEdQVV9I RFBfRkxVU0hfRE9ORV9fU0RNQTBfTUFTSzsKPiAgIAllbHNlCj4gICAJCXJlZl9hbmRfbWFzayA9 IEdQVV9IRFBfRkxVU0hfRE9ORV9fU0RNQTFfTUFTSzsKPiBAQCAtMTI5MCw4ICsxMjg4LDEwIEBA IHN0YXRpYyB2b2lkIGNpa19zZG1hX3NldF9yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQo+ICAgewo+ICAgCWludCBpOwo+ICAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+ c2RtYS5udW1faW5zdGFuY2VzOyBpKyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5u dW1faW5zdGFuY2VzOyBpKyspIHsKPiAgIAkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLmZ1 bmNzID0gJmNpa19zZG1hX3JpbmdfZnVuY3M7Cj4gKwkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5y aW5nLm1lID0gaTsKPiArCX0KPiAgIH0KPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRn cHVfaXJxX3NyY19mdW5jcyBjaWtfc2RtYV90cmFwX2lycV9mdW5jcyA9IHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYwo+IGluZGV4IGM3MTkwYzM5YzRmNS4uY2VlNGZhZTc2 ZDIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMKPiBAQCAtMjAy LDggKzIwMiw3IEBAIHN0YXRpYyB1aW50NjRfdCBzZG1hX3YyXzRfcmluZ19nZXRfcnB0cihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICBzdGF0aWMgdWludDY0X3Qgc2RtYV92Ml80X3Jpbmdf Z2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPiAtCWludCBtZSA9IChyaW5nID09ICZyaW5n LT5hZGV2LT5zZG1hLmluc3RhbmNlWzBdLnJpbmcpID8gMCA6IDE7Cj4gLQl1MzIgd3B0ciA9IFJS RUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2RtYV9vZmZzZXRzW21lXSkgPj4gMjsKPiArCXUz MiB3cHRyID0gUlJFRzMyKG1tU0RNQTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbcmluZy0+ bWVdKSA+PiAyOwo+ICAgCj4gICAJcmV0dXJuIHdwdHI7Cj4gICB9Cj4gQEAgLTIxOCw5ICsyMTcs OCBAQCBzdGF0aWMgdWludDY0X3Qgc2RtYV92Ml80X3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nKQo+ICAgc3RhdGljIHZvaWQgc2RtYV92Ml80X3Jpbmdfc2V0X3dwdHIoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gcmluZy0+YWRldjsKPiAtCWludCBtZSA9IChyaW5nID09ICZyaW5nLT5hZGV2LT5zZG1h Lmluc3RhbmNlWzBdLnJpbmcpID8gMCA6IDE7Cj4gICAKPiAtCVdSRUczMihtbVNETUEwX0dGWF9S Ql9XUFRSICsgc2RtYV9vZmZzZXRzW21lXSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSA8PCAy KTsKPiArCVdSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2RtYV9vZmZzZXRzW3JpbmctPm1l XSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSA8PCAyKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IHZvaWQgc2RtYV92Ml80X3JpbmdfaW5zZXJ0X25vcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHVpbnQzMl90IGNvdW50KQo+IEBAIC0yNzMsNyArMjcxLDcgQEAgc3RhdGljIHZvaWQgc2RtYV92 Ml80X3JpbmdfZW1pdF9oZHBfZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgewo+ ICAgCXUzMiByZWZfYW5kX21hc2sgPSAwOwo+ICAgCj4gLQlpZiAocmluZyA9PSAmcmluZy0+YWRl di0+c2RtYS5pbnN0YW5jZVswXS5yaW5nKQo+ICsJaWYgKHJpbmctPm1lID09IDApCj4gICAJCXJl Zl9hbmRfbWFzayA9IFJFR19TRVRfRklFTEQocmVmX2FuZF9tYXNrLCBHUFVfSERQX0ZMVVNIX0RP TkUsIFNETUEwLCAxKTsKPiAgIAllbHNlCj4gICAJCXJlZl9hbmRfbWFzayA9IFJFR19TRVRfRklF TEQocmVmX2FuZF9tYXNrLCBHUFVfSERQX0ZMVVNIX0RPTkUsIFNETUExLCAxKTsKPiBAQCAtMTIx Myw4ICsxMjExLDEwIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjJfNF9zZXRfcmluZ19mdW5jcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAgIAlpbnQgaTsKPiAgIAo+IC0JZm9yIChp ID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKQo+ICsJZm9yIChpID0gMDsg aSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7Cj4gICAJCWFkZXYtPnNkbWEuaW5z dGFuY2VbaV0ucmluZy5mdW5jcyA9ICZzZG1hX3YyXzRfcmluZ19mdW5jczsKPiArCQlhZGV2LT5z ZG1hLmluc3RhbmNlW2ldLnJpbmcubWUgPSBpOwo+ICsJfQo+ICAgfQo+ICAgCj4gICBzdGF0aWMg Y29uc3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIHNkbWFfdjJfNF90cmFwX2lycV9mdW5j cyA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18w LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwo+IGluZGV4IGFhOWFi Mjk5ZmQzMi4uOTk2MTZkZDk1OTRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NkbWFfdjNfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2Rt YV92M18wLmMKPiBAQCAtMzY1LDkgKzM2NSw3IEBAIHN0YXRpYyB1aW50NjRfdCBzZG1hX3YzXzBf cmluZ19nZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJCS8qIFhYWCBjaGVj ayBpZiBzd2FwcGluZyBpcyBuZWNlc3Nhcnkgb24gQkUgKi8KPiAgIAkJd3B0ciA9IHJpbmctPmFk ZXYtPndiLndiW3JpbmctPndwdHJfb2Zmc10gPj4gMjsKPiAgIAl9IGVsc2Ugewo+IC0JCWludCBt ZSA9IChyaW5nID09ICZyaW5nLT5hZGV2LT5zZG1hLmluc3RhbmNlWzBdLnJpbmcpID8gMCA6IDE7 Cj4gLQo+IC0JCXdwdHIgPSBSUkVHMzIobW1TRE1BMF9HRlhfUkJfV1BUUiArIHNkbWFfb2Zmc2V0 c1ttZV0pID4+IDI7Cj4gKwkJd3B0ciA9IFJSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2Rt YV9vZmZzZXRzW3JpbmctPm1lXSkgPj4gMjsKPiAgIAl9Cj4gICAKPiAgIAlyZXR1cm4gd3B0cjsK PiBAQCAtMzk0LDkgKzM5Miw3IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjNfMF9yaW5nX3NldF93cHRy KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIAo+ICAgCQlXUklURV9PTkNFKCp3YiwgKGxv d2VyXzMyX2JpdHMocmluZy0+d3B0cikgPDwgMikpOwo+ICAgCX0gZWxzZSB7Cj4gLQkJaW50IG1l ID0gKHJpbmcgPT0gJnJpbmctPmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZykgPyAwIDogMTsK PiAtCj4gLQkJV1JFRzMyKG1tU0RNQTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbbWVdLCBs b3dlcl8zMl9iaXRzKHJpbmctPndwdHIpIDw8IDIpOwo+ICsJCVdSRUczMihtbVNETUEwX0dGWF9S Ql9XUFRSICsgc2RtYV9vZmZzZXRzW3JpbmctPm1lXSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRy KSA8PCAyKTsKPiAgIAl9Cj4gICB9Cj4gICAKPiBAQCAtNDUwLDcgKzQ0Niw3IEBAIHN0YXRpYyB2 b2lkIHNkbWFfdjNfMF9yaW5nX2VtaXRfaGRwX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZykKPiAgIHsKPiAgIAl1MzIgcmVmX2FuZF9tYXNrID0gMDsKPiAgIAo+IC0JaWYgKHJpbmcgPT0g JnJpbmctPmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZykKPiArCWlmIChyaW5nLT5tZSA9PSAw KQo+ICAgCQlyZWZfYW5kX21hc2sgPSBSRUdfU0VUX0ZJRUxEKHJlZl9hbmRfbWFzaywgR1BVX0hE UF9GTFVTSF9ET05FLCBTRE1BMCwgMSk7Cj4gICAJZWxzZQo+ICAgCQlyZWZfYW5kX21hc2sgPSBS RUdfU0VUX0ZJRUxEKHJlZl9hbmRfbWFzaywgR1BVX0hEUF9GTFVTSF9ET05FLCBTRE1BMSwgMSk7 Cj4gQEAgLTE2NTUsOCArMTY1MSwxMCBAQCBzdGF0aWMgdm9pZCBzZG1hX3YzXzBfc2V0X3Jpbmdf ZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gICAJaW50IGk7Cj4gICAK PiAtCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykKPiArCWZv ciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgewo+ICAgCQlhZGV2 LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPSAmc2RtYV92M18wX3JpbmdfZnVuY3M7Cj4g KwkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLm1lID0gaTsKPiArCX0KPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzZG1hX3YzXzBfdHJh cF9pcnFfZnVuY3MgPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3NkbWFfdjRfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPiBp bmRleCBjYTUzYjNmYmE0MjIuLjU3MmNhNjNjZjY3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NkbWFfdjRfMC5jCj4gQEAgLTI5NiwxMyArMjk2LDEyIEBAIHN0YXRpYyB1aW50NjRf dCBzZG1hX3Y0XzBfcmluZ19nZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJ CURSTV9ERUJVRygid3B0ci9kb29yYmVsbCBiZWZvcmUgc2hpZnQgPT0gMHglMDE2bGx4XG4iLCB3 cHRyKTsKPiAgIAl9IGVsc2Ugewo+ICAgCQl1MzIgbG93Yml0LCBoaWdoYml0Owo+IC0JCWludCBt ZSA9IChyaW5nID09ICZhZGV2LT5zZG1hLmluc3RhbmNlWzBdLnJpbmcpID8gMCA6IDE7Cj4gICAK PiAtCQlsb3diaXQgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIG1lLCBt bVNETUEwX0dGWF9SQl9XUFRSKSkgPj4gMjsKPiAtCQloaWdoYml0ID0gUlJFRzMyKHNkbWFfdjRf MF9nZXRfcmVnX29mZnNldChhZGV2LCBtZSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISSkpID4+IDI7 Cj4gKwkJbG93Yml0ID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCByaW5n LT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUikpID4+IDI7Cj4gKwkJaGlnaGJpdCA9IFJSRUczMihz ZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgcmluZy0+bWUsIG1tU0RNQTBfR0ZYX1JCX1dQ VFJfSEkpKSA+PiAyOwo+ICAgCj4gICAJCURSTV9ERUJVRygid3B0ciBbJWldaGlnaD09IDB4JTA4 eCBsb3c9PTB4JTA4eFxuIiwKPiAtCQkJCW1lLCBoaWdoYml0LCBsb3diaXQpOwo+ICsJCQkJcmlu Zy0+bWUsIGhpZ2hiaXQsIGxvd2JpdCk7Cj4gICAJCXdwdHIgPSBoaWdoYml0Owo+ICAgCQl3cHRy ID0gd3B0ciA8PCAzMjsKPiAgIAkJd3B0ciB8PSBsb3diaXQ7Cj4gQEAgLTMzOSwxNyArMzM4LDE1 IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9yaW5nX3NldF93cHRyKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZykKPiAgIAkJCQlyaW5nLT5kb29yYmVsbF9pbmRleCwgcmluZy0+d3B0ciA8PCAyKTsK PiAgIAkJV0RPT1JCRUxMNjQocmluZy0+ZG9vcmJlbGxfaW5kZXgsIHJpbmctPndwdHIgPDwgMik7 Cj4gICAJfSBlbHNlIHsKPiAtCQlpbnQgbWUgPSAocmluZyA9PSAmcmluZy0+YWRldi0+c2RtYS5p bnN0YW5jZVswXS5yaW5nKSA/IDAgOiAxOwo+IC0KPiAgIAkJRFJNX0RFQlVHKCJOb3QgdXNpbmcg ZG9vcmJlbGwgLS0gIgo+ICAgCQkJCSJtbVNETUElaV9HRlhfUkJfV1BUUiA9PSAweCUwOHggIgo+ ICAgCQkJCSJtbVNETUElaV9HRlhfUkJfV1BUUl9ISSA9PSAweCUwOHhcbiIsCj4gLQkJCQltZSwK PiArCQkJCXJpbmctPm1lLAo+ICAgCQkJCWxvd2VyXzMyX2JpdHMocmluZy0+d3B0ciA8PCAyKSwK PiAtCQkJCW1lLAo+ICsJCQkJcmluZy0+bWUsCj4gICAJCQkJdXBwZXJfMzJfYml0cyhyaW5nLT53 cHRyIDw8IDIpKTsKPiAtCQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIG1l LCBtbVNETUEwX0dGWF9SQl9XUFRSKSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyIDw8IDIpKTsK PiAtCQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIG1lLCBtbVNETUEwX0dG WF9SQl9XUFRSX0hJKSwgdXBwZXJfMzJfYml0cyhyaW5nLT53cHRyIDw8IDIpKTsKPiArCQlXUkVH MzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIHJpbmctPm1lLCBtbVNETUEwX0dGWF9S Ql9XUFRSKSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyIDw8IDIpKTsKPiArCQlXUkVHMzIoc2Rt YV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIHJpbmctPm1lLCBtbVNETUEwX0dGWF9SQl9XUFRS X0hJKSwgdXBwZXJfMzJfYml0cyhyaW5nLT53cHRyIDw8IDIpKTsKPiAgIAl9Cj4gICB9Cj4gICAK PiBAQCAtNDMwLDcgKzQyNyw3IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9yaW5nX2VtaXRfaGRw X2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIAl1MzIgcmVmX2FuZF9tYXNrID0g MDsKPiAgIAljb25zdCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hfcmVnICpuYmlvX2hmX3JlZyA9IGFk ZXYtPm5iaW9fZnVuY3MtPmhkcF9mbHVzaF9yZWc7Cj4gICAKPiAtCWlmIChyaW5nID09ICZyaW5n LT5hZGV2LT5zZG1hLmluc3RhbmNlWzBdLnJpbmcpCj4gKwlpZiAocmluZy0+bWUgPT0gMCkKPiAg IAkJcmVmX2FuZF9tYXNrID0gbmJpb19oZl9yZWctPnJlZl9hbmRfbWFza19zZG1hMDsKPiAgIAll bHNlCj4gICAJCXJlZl9hbmRfbWFzayA9IG5iaW9faGZfcmVnLT5yZWZfYW5kX21hc2tfc2RtYTE7 Cj4gQEAgLTE2NTEsOCArMTY0OCwxMCBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfc2V0X3Jpbmdf ZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gICAJaW50IGk7Cj4gICAK PiAtCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykKPiArCWZv ciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgewo+ICAgCQlhZGV2 LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPSAmc2RtYV92NF8wX3JpbmdfZnVuY3M7Cj4g KwkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLm1lID0gaTsKPiArCX0KPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzZG1hX3Y0XzBfdHJh cF9pcnFfZnVuY3MgPSB7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK