From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/2] drm/amdgpu/sdma: simplify sdma instance setup Date: Mon, 2 Jul 2018 14:34:54 +0200 Message-ID: <4a2c7a9a-092a-06f3-a04d-74764d396927@gmail.com> References: <20180625174235.29172-1-alexander.deucher@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org 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 QW0gMjUuMDYuMjAxOCB1bSAxOTo0MiBzY2hyaWViIEFsZXggRGV1Y2hlcjoKPiBTZXQgdGhlIG1l IGluc3RhbmNlIGluIGVhcmx5IGluaXQgYW5kIHVzZSB0aGF0IHJhdGhlciB0aGFuCj4gY2FsY3Vs YXRpbmcgdGhlIGluc3RhbmNlIGJhc2VkIG9uIHRoZSByaW5nIHBvaW50ZXIuCj4KPiBTaWduZWQt b2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+CgpSZXZpZXdl ZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPiBmb3IgdGhl IHNlcmllcy4KCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5j ICB8IDEyICsrKysrKy0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92 Ml80LmMgfCAxMiArKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjNfMC5jIHwgMTQgKysrKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L3NkbWFfdjRfMC5jIHwgMjMgKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgIDQgZmlsZXMg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPiBpbmRleCBhNzU3NjI1NWNjMzAuLmRiZDU1M2E4ZDU4 NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYwo+IEBAIC0xNzcsOSAr MTc3LDggQEAgc3RhdGljIHVpbnQ2NF90IGNpa19zZG1hX3JpbmdfZ2V0X3JwdHIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nKQo+ICAgc3RhdGljIHVpbnQ2NF90IGNpa19zZG1hX3JpbmdfZ2V0X3dw dHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gcmluZy0+YWRldjsKPiAtCXUzMiBtZSA9IChyaW5nID09ICZhZGV2LT5zZG1h Lmluc3RhbmNlWzBdLnJpbmcpID8gMCA6IDE7Cj4gICAKPiAtCXJldHVybiAoUlJFRzMyKG1tU0RN QTBfR0ZYX1JCX1dQVFIgKyBzZG1hX29mZnNldHNbbWVdKSAmIDB4M2ZmZmMpID4+IDI7Cj4gKwly ZXR1cm4gKFJSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2RtYV9vZmZzZXRzW3JpbmctPm1l XSkgJiAweDNmZmZjKSA+PiAyOwo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMTkyLDkgKzE5MSw4 IEBAIHN0YXRpYyB1aW50NjRfdCBjaWtfc2RtYV9yaW5nX2dldF93cHRyKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZykKPiAgIHN0YXRpYyB2b2lkIGNpa19zZG1hX3Jpbmdfc2V0X3dwdHIoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gcmluZy0+YWRldjsKPiAtCXUzMiBtZSA9IChyaW5nID09ICZhZGV2LT5zZG1hLmluc3RhbmNl WzBdLnJpbmcpID8gMCA6IDE7Cj4gICAKPiAtCVdSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsg c2RtYV9vZmZzZXRzW21lXSwKPiArCVdSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2RtYV9v ZmZzZXRzW3JpbmctPm1lXSwKPiAgIAkJICAgICAgIAkobG93ZXJfMzJfYml0cyhyaW5nLT53cHRy KSA8PCAyKSAmIDB4M2ZmZmMpOwo+ICAgfQo+ICAgCj4gQEAgLTI0OCw3ICsyNDYsNyBAQCBzdGF0 aWMgdm9pZCBjaWtfc2RtYV9yaW5nX2VtaXRfaGRwX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZykKPiAgIAkJCSAgU0RNQV9QT0xMX1JFR19NRU1fRVhUUkFfRlVOQygzKSk7IC8qID09ICov Cj4gICAJdTMyIHJlZl9hbmRfbWFzazsKPiAgIAo+IC0JaWYgKHJpbmcgPT0gJnJpbmctPmFkZXYt PnNkbWEuaW5zdGFuY2VbMF0ucmluZykKPiArCWlmIChyaW5nLT5tZSA9PSAwKQo+ICAgCQlyZWZf YW5kX21hc2sgPSBHUFVfSERQX0ZMVVNIX0RPTkVfX1NETUEwX01BU0s7Cj4gICAJZWxzZQo+ICAg CQlyZWZfYW5kX21hc2sgPSBHUFVfSERQX0ZMVVNIX0RPTkVfX1NETUExX01BU0s7Cj4gQEAgLTEy OTAsOCArMTI4OCwxMCBAQCBzdGF0aWMgdm9pZCBjaWtfc2RtYV9zZXRfcmluZ19mdW5jcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAgIAlpbnQgaTsKPiAgIAo+IC0JZm9yIChp ID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKQo+ICsJZm9yIChpID0gMDsg aSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7Cj4gICAJCWFkZXYtPnNkbWEuaW5z dGFuY2VbaV0ucmluZy5mdW5jcyA9ICZjaWtfc2RtYV9yaW5nX2Z1bmNzOwo+ICsJCWFkZXYtPnNk bWEuaW5zdGFuY2VbaV0ucmluZy5tZSA9IGk7Cj4gKwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgY2lrX3NkbWFfdHJhcF9pcnFfZnVuY3Mg PSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMKPiBpbmRleCBjNzE5MGMz OWM0ZjUuLmNlZTRmYWU3NmQyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zZG1hX3YyXzQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFf djJfNC5jCj4gQEAgLTIwMiw4ICsyMDIsNyBAQCBzdGF0aWMgdWludDY0X3Qgc2RtYV92Ml80X3Jp bmdfZ2V0X3JwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgc3RhdGljIHVpbnQ2NF90 IHNkbWFfdjJfNF9yaW5nX2dldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIHsK PiAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gLQlpbnQgbWUg PSAocmluZyA9PSAmcmluZy0+YWRldi0+c2RtYS5pbnN0YW5jZVswXS5yaW5nKSA/IDAgOiAxOwo+ IC0JdTMyIHdwdHIgPSBSUkVHMzIobW1TRE1BMF9HRlhfUkJfV1BUUiArIHNkbWFfb2Zmc2V0c1tt ZV0pID4+IDI7Cj4gKwl1MzIgd3B0ciA9IFJSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2Rt YV9vZmZzZXRzW3JpbmctPm1lXSkgPj4gMjsKPiAgIAo+ICAgCXJldHVybiB3cHRyOwo+ICAgfQo+ IEBAIC0yMTgsOSArMjE3LDggQEAgc3RhdGljIHVpbnQ2NF90IHNkbWFfdjJfNF9yaW5nX2dldF93 cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIHN0YXRpYyB2b2lkIHNkbWFfdjJfNF9y aW5nX3NldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgIHsKPiAgIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gLQlpbnQgbWUgPSAocmluZyA9PSAm cmluZy0+YWRldi0+c2RtYS5pbnN0YW5jZVswXS5yaW5nKSA/IDAgOiAxOwo+ICAgCj4gLQlXUkVH MzIobW1TRE1BMF9HRlhfUkJfV1BUUiArIHNkbWFfb2Zmc2V0c1ttZV0sIGxvd2VyXzMyX2JpdHMo cmluZy0+d3B0cikgPDwgMik7Cj4gKwlXUkVHMzIobW1TRE1BMF9HRlhfUkJfV1BUUiArIHNkbWFf b2Zmc2V0c1tyaW5nLT5tZV0sIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikgPDwgMik7Cj4gICB9 Cj4gICAKPiAgIHN0YXRpYyB2b2lkIHNkbWFfdjJfNF9yaW5nX2luc2VydF9ub3Aoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCkKPiBAQCAtMjczLDcgKzI3MSw3IEBAIHN0 YXRpYyB2b2lkIHNkbWFfdjJfNF9yaW5nX2VtaXRfaGRwX2ZsdXNoKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZykKPiAgIHsKPiAgIAl1MzIgcmVmX2FuZF9tYXNrID0gMDsKPiAgIAo+IC0JaWYgKHJp bmcgPT0gJnJpbmctPmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZykKPiArCWlmIChyaW5nLT5t ZSA9PSAwKQo+ICAgCQlyZWZfYW5kX21hc2sgPSBSRUdfU0VUX0ZJRUxEKHJlZl9hbmRfbWFzaywg R1BVX0hEUF9GTFVTSF9ET05FLCBTRE1BMCwgMSk7Cj4gICAJZWxzZQo+ICAgCQlyZWZfYW5kX21h c2sgPSBSRUdfU0VUX0ZJRUxEKHJlZl9hbmRfbWFzaywgR1BVX0hEUF9GTFVTSF9ET05FLCBTRE1B MSwgMSk7Cj4gQEAgLTEyMTMsOCArMTIxMSwxMCBAQCBzdGF0aWMgdm9pZCBzZG1hX3YyXzRfc2V0 X3JpbmdfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gICAJaW50IGk7 Cj4gICAKPiAtCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykK PiArCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgewo+ICAg CQlhZGV2LT5zZG1hLmluc3RhbmNlW2ldLnJpbmcuZnVuY3MgPSAmc2RtYV92Ml80X3JpbmdfZnVu Y3M7Cj4gKwkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLm1lID0gaTsKPiArCX0KPiAgIH0K PiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzZG1hX3Yy XzRfdHJhcF9pcnFfZnVuY3MgPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NkbWFfdjNfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18w LmMKPiBpbmRleCBhYTlhYjI5OWZkMzIuLjk5NjE2ZGQ5NTk0ZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCj4gQEAgLTM2NSw5ICszNjUsNyBAQCBzdGF0aWMgdWlu dDY0X3Qgc2RtYV92M18wX3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ ICAgCQkvKiBYWFggY2hlY2sgaWYgc3dhcHBpbmcgaXMgbmVjZXNzYXJ5IG9uIEJFICovCj4gICAJ CXdwdHIgPSByaW5nLT5hZGV2LT53Yi53YltyaW5nLT53cHRyX29mZnNdID4+IDI7Cj4gICAJfSBl bHNlIHsKPiAtCQlpbnQgbWUgPSAocmluZyA9PSAmcmluZy0+YWRldi0+c2RtYS5pbnN0YW5jZVsw XS5yaW5nKSA/IDAgOiAxOwo+IC0KPiAtCQl3cHRyID0gUlJFRzMyKG1tU0RNQTBfR0ZYX1JCX1dQ VFIgKyBzZG1hX29mZnNldHNbbWVdKSA+PiAyOwo+ICsJCXdwdHIgPSBSUkVHMzIobW1TRE1BMF9H RlhfUkJfV1BUUiArIHNkbWFfb2Zmc2V0c1tyaW5nLT5tZV0pID4+IDI7Cj4gICAJfQo+ICAgCj4g ICAJcmV0dXJuIHdwdHI7Cj4gQEAgLTM5NCw5ICszOTIsNyBAQCBzdGF0aWMgdm9pZCBzZG1hX3Yz XzBfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAKPiAgIAkJV1JJ VEVfT05DRSgqd2IsIChsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpIDw8IDIpKTsKPiAgIAl9IGVs c2Ugewo+IC0JCWludCBtZSA9IChyaW5nID09ICZyaW5nLT5hZGV2LT5zZG1hLmluc3RhbmNlWzBd LnJpbmcpID8gMCA6IDE7Cj4gLQo+IC0JCVdSRUczMihtbVNETUEwX0dGWF9SQl9XUFRSICsgc2Rt YV9vZmZzZXRzW21lXSwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSA8PCAyKTsKPiArCQlXUkVH MzIobW1TRE1BMF9HRlhfUkJfV1BUUiArIHNkbWFfb2Zmc2V0c1tyaW5nLT5tZV0sIGxvd2VyXzMy X2JpdHMocmluZy0+d3B0cikgPDwgMik7Cj4gICAJfQo+ICAgfQo+ICAgCj4gQEAgLTQ1MCw3ICs0 NDYsNyBAQCBzdGF0aWMgdm9pZCBzZG1hX3YzXzBfcmluZ19lbWl0X2hkcF9mbHVzaChzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcpCj4gICB7Cj4gICAJdTMyIHJlZl9hbmRfbWFzayA9IDA7Cj4gICAK PiAtCWlmIChyaW5nID09ICZyaW5nLT5hZGV2LT5zZG1hLmluc3RhbmNlWzBdLnJpbmcpCj4gKwlp ZiAocmluZy0+bWUgPT0gMCkKPiAgIAkJcmVmX2FuZF9tYXNrID0gUkVHX1NFVF9GSUVMRChyZWZf YW5kX21hc2ssIEdQVV9IRFBfRkxVU0hfRE9ORSwgU0RNQTAsIDEpOwo+ICAgCWVsc2UKPiAgIAkJ cmVmX2FuZF9tYXNrID0gUkVHX1NFVF9GSUVMRChyZWZfYW5kX21hc2ssIEdQVV9IRFBfRkxVU0hf RE9ORSwgU0RNQTEsIDEpOwo+IEBAIC0xNjU1LDggKzE2NTEsMTAgQEAgc3RhdGljIHZvaWQgc2Rt YV92M18wX3NldF9yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+ ICAgCWludCBpOwo+ICAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFu Y2VzOyBpKyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBp KyspIHsKPiAgIAkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLmZ1bmNzID0gJnNkbWFfdjNf MF9yaW5nX2Z1bmNzOwo+ICsJCWFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucmluZy5tZSA9IGk7Cj4g Kwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVu Y3Mgc2RtYV92M18wX3RyYXBfaXJxX2Z1bmNzID0gewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3NkbWFfdjRfMC5jCj4gaW5kZXggY2E1M2IzZmJhNDIyLi41NzJjYTYzY2Y2NzYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+IEBAIC0yOTYsMTMgKzI5NiwxMiBA QCBzdGF0aWMgdWludDY0X3Qgc2RtYV92NF8wX3JpbmdfZ2V0X3dwdHIoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nKQo+ICAgCQlEUk1fREVCVUcoIndwdHIvZG9vcmJlbGwgYmVmb3JlIHNoaWZ0ID09 IDB4JTAxNmxseFxuIiwgd3B0cik7Cj4gICAJfSBlbHNlIHsKPiAgIAkJdTMyIGxvd2JpdCwgaGln aGJpdDsKPiAtCQlpbnQgbWUgPSAocmluZyA9PSAmYWRldi0+c2RtYS5pbnN0YW5jZVswXS5yaW5n KSA/IDAgOiAxOwo+ICAgCj4gLQkJbG93Yml0ID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29m ZnNldChhZGV2LCBtZSwgbW1TRE1BMF9HRlhfUkJfV1BUUikpID4+IDI7Cj4gLQkJaGlnaGJpdCA9 IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgbWUsIG1tU0RNQTBfR0ZYX1JC X1dQVFJfSEkpKSA+PiAyOwo+ICsJCWxvd2JpdCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19v ZmZzZXQoYWRldiwgcmluZy0+bWUsIG1tU0RNQTBfR0ZYX1JCX1dQVFIpKSA+PiAyOwo+ICsJCWhp Z2hiaXQgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIHJpbmctPm1lLCBt bVNETUEwX0dGWF9SQl9XUFRSX0hJKSkgPj4gMjsKPiAgIAo+ICAgCQlEUk1fREVCVUcoIndwdHIg WyVpXWhpZ2g9PSAweCUwOHggbG93PT0weCUwOHhcbiIsCj4gLQkJCQltZSwgaGlnaGJpdCwgbG93 Yml0KTsKPiArCQkJCXJpbmctPm1lLCBoaWdoYml0LCBsb3diaXQpOwo+ICAgCQl3cHRyID0gaGln aGJpdDsKPiAgIAkJd3B0ciA9IHdwdHIgPDwgMzI7Cj4gICAJCXdwdHIgfD0gbG93Yml0Owo+IEBA IC0zMzksMTcgKzMzOCwxNSBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfcmluZ19zZXRfd3B0cihz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJCQkJcmluZy0+ZG9vcmJlbGxfaW5kZXgsIHJp bmctPndwdHIgPDwgMik7Cj4gICAJCVdET09SQkVMTDY0KHJpbmctPmRvb3JiZWxsX2luZGV4LCBy aW5nLT53cHRyIDw8IDIpOwo+ICAgCX0gZWxzZSB7Cj4gLQkJaW50IG1lID0gKHJpbmcgPT0gJnJp bmctPmFkZXYtPnNkbWEuaW5zdGFuY2VbMF0ucmluZykgPyAwIDogMTsKPiAtCj4gICAJCURSTV9E RUJVRygiTm90IHVzaW5nIGRvb3JiZWxsIC0tICIKPiAgIAkJCQkibW1TRE1BJWlfR0ZYX1JCX1dQ VFIgPT0gMHglMDh4ICIKPiAgIAkJCQkibW1TRE1BJWlfR0ZYX1JCX1dQVFJfSEkgPT0gMHglMDh4 XG4iLAo+IC0JCQkJbWUsCj4gKwkJCQlyaW5nLT5tZSwKPiAgIAkJCQlsb3dlcl8zMl9iaXRzKHJp bmctPndwdHIgPDwgMiksCj4gLQkJCQltZSwKPiArCQkJCXJpbmctPm1lLAo+ICAgCQkJCXVwcGVy XzMyX2JpdHMocmluZy0+d3B0ciA8PCAyKSk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVn X29mZnNldChhZGV2LCBtZSwgbW1TRE1BMF9HRlhfUkJfV1BUUiksIGxvd2VyXzMyX2JpdHMocmlu Zy0+d3B0ciA8PCAyKSk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2 LCBtZSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISSksIHVwcGVyXzMyX2JpdHMocmluZy0+d3B0ciA8 PCAyKSk7Cj4gKwkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCByaW5nLT5t ZSwgbW1TRE1BMF9HRlhfUkJfV1BUUiksIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0ciA8PCAyKSk7 Cj4gKwkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCByaW5nLT5tZSwgbW1T RE1BMF9HRlhfUkJfV1BUUl9ISSksIHVwcGVyXzMyX2JpdHMocmluZy0+d3B0ciA8PCAyKSk7Cj4g ICAJfQo+ICAgfQo+ICAgCj4gQEAgLTQzMCw3ICs0MjcsNyBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0 XzBfcmluZ19lbWl0X2hkcF9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICAJdTMy IHJlZl9hbmRfbWFzayA9IDA7Cj4gICAJY29uc3Qgc3RydWN0IG5iaW9faGRwX2ZsdXNoX3JlZyAq bmJpb19oZl9yZWcgPSBhZGV2LT5uYmlvX2Z1bmNzLT5oZHBfZmx1c2hfcmVnOwo+ICAgCj4gLQlp ZiAocmluZyA9PSAmcmluZy0+YWRldi0+c2RtYS5pbnN0YW5jZVswXS5yaW5nKQo+ICsJaWYgKHJp bmctPm1lID09IDApCj4gICAJCXJlZl9hbmRfbWFzayA9IG5iaW9faGZfcmVnLT5yZWZfYW5kX21h c2tfc2RtYTA7Cj4gICAJZWxzZQo+ICAgCQlyZWZfYW5kX21hc2sgPSBuYmlvX2hmX3JlZy0+cmVm X2FuZF9tYXNrX3NkbWExOwo+IEBAIC0xNjUxLDggKzE2NDgsMTAgQEAgc3RhdGljIHZvaWQgc2Rt YV92NF8wX3NldF9yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+ ICAgCWludCBpOwo+ICAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFu Y2VzOyBpKyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2VzOyBp KyspIHsKPiAgIAkJYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5yaW5nLmZ1bmNzID0gJnNkbWFfdjRf MF9yaW5nX2Z1bmNzOwo+ICsJCWFkZXYtPnNkbWEuaW5zdGFuY2VbaV0ucmluZy5tZSA9IGk7Cj4g Kwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVu Y3Mgc2RtYV92NF8wX3RyYXBfaXJxX2Z1bmNzID0gewoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==