From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH 09/13] drm/amdgpu: allow split of queues with kfd at queue granularity Date: Fri, 3 Feb 2017 23:51:38 -0500 Message-ID: <20170204045142.5596-10-andresx7@gmail.com> References: <20170204045142.5596-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170204045142.5596-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Alexander.Deucher-5C7GfCeVMHo@public.gmane.org, jay-gJmSnxjMpeIFV7jr3Ov9Ew@public.gmane.org, Felix.Kuehling-5C7GfCeVMHo@public.gmane.org, Andres Rodriguez , John.Bridgman-5C7GfCeVMHo@public.gmane.org UHJldmlvdXNseSB0aGUgcXVldWUvcGlwZSBzcGxpdCB3aXRoIGtmZCBvcGVyYXRlZCB3aXRoIHBp cGUKZ3JhbnVsYXJpdHkuIFRoaXMgcGF0Y2ggYWxsb3dzIGFtZGdwdSB0byB0YWtlIG93bmVyc2hp cCBvZiBhbiBhcmJpdHJhcnkKc2V0IG9mIHF1ZXVlcy4KCkl0IGFsc28gY29uc29saWRhdGVzIHRo ZSBsYXN0IGZldyBtYWdpYyBudW1iZXJzIGluIHRoZSBjb21wdXRlCmluaXRpYWxpemF0aW9uIHBy b2Nlc3MgaW50byBtZWNfaW5pdC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlcyBSb2RyaWd1ZXogPGFu ZHJlc3g3QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUu aCAgICAgICAgICAgICB8ICA3ICsrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3 XzAuYyAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgICAgICAgICB8IDc5ICsrKysrKysrKysrKysr KysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2Uu aCB8ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXggZWVmZmQwMC4uYjJmYWZk NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAgLTQ2LDYgKzQ2LDggQEAKICNp bmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9hbWRncHVfZHJtLmg+CiAKKyNp bmNsdWRlIDxrZ2Rfa2ZkX2ludGVyZmFjZS5oPgorCiAjaW5jbHVkZSAiYW1kX3NoYXJlZC5oIgog I2luY2x1ZGUgImFtZGdwdV9tb2RlLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2loLmgiCkBAIC03NzMs MTIgKzc3NSwxNyBAQCBzdHJ1Y3QgYW1kZ3B1X3JsYyB7CiAJdTMyICpyZWdpc3Rlcl9yZXN0b3Jl OwogfTsKIAorI2RlZmluZSBBTURHUFVfTUFYX1FVRVVFUyBLR0RfTUFYX1FVRVVFUworCiBzdHJ1 Y3QgYW1kZ3B1X21lYyB7CiAJc3RydWN0IGFtZGdwdV9ibwkqaHBkX2VvcF9vYmo7CiAJdTY0CQkJ aHBkX2VvcF9ncHVfYWRkcjsKIAl1MzIgbnVtX21lYzsKIAl1MzIgbnVtX3BpcGVfcGVyX21lYzsK IAl1MzIgbnVtX3F1ZXVlX3Blcl9waXBlOworCisJLyogVGhlc2UgYXJlIHRoZSByZXNvdXJjZXMg Zm9yIHdoaWNoIGFtZGdwdSB0YWtlcyBvd25lcnNoaXAgKi8KKwlERUNMQVJFX0JJVE1BUChxdWV1 ZV9iaXRtYXAsIEFNREdQVV9NQVhfUVVFVUVTKTsKIH07CiAKIHN0cnVjdCBhbWRncHVfa2lxIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCmluZGV4IGNjOThkNzEuLmZmNWQyNWMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwpAQCAtNDksNyArNDksNiBAQAog I2luY2x1ZGUgIm9zcy9vc3NfMl8wX3NoX21hc2suaCIKIAogI2RlZmluZSBHRlg3X05VTV9HRlhf UklOR1MgICAgIDEKLSNkZWZpbmUgR0ZYN19OVU1fQ09NUFVURV9SSU5HUyA4CiAjZGVmaW5lIEdG WDdfTUVDX0hQRF9TSVpFICAgICAgMjA0OAogCiAKQEAgLTI3OTQsMTggKzI3OTMsNDYgQEAgc3Rh dGljIHZvaWQgZ2Z4X3Y3XzBfbWVjX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ fQogfQogCitzdGF0aWMgdm9pZCBnZnhfdjdfMF9jb21wdXRlX3F1ZXVlX2FjcXVpcmUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IGksIHF1ZXVlLCBwaXBlLCBtZWM7CisKKwkv KiBwb2xpY3kgZm9yIGFtZGdwdSBjb21wdXRlIHF1ZXVlIG93bmVyc2hpcCAqLworCWZvciAoaSA9 IDA7IGkgPCBBTURHUFVfTUFYX1FVRVVFUzsgKytpKSB7CisJCXF1ZXVlID0gaSAlIGFkZXYtPmdm eC5tZWMubnVtX3F1ZXVlX3Blcl9waXBlOworCQlwaXBlID0gKGkgLyBhZGV2LT5nZngubWVjLm51 bV9xdWV1ZV9wZXJfcGlwZSkKKwkJCSUgYWRldi0+Z2Z4Lm1lYy5udW1fcGlwZV9wZXJfbWVjOwor CQltZWMgPSAoaSAvIGFkZXYtPmdmeC5tZWMubnVtX3F1ZXVlX3Blcl9waXBlKQorCQkJLyBhZGV2 LT5nZngubWVjLm51bV9waXBlX3Blcl9tZWM7CisKKwkJLyogd2UndmUgcnVuIG91dCBvZiBIVyAq LworCQlpZiAobWVjID4gYWRldi0+Z2Z4Lm1lYy5udW1fbWVjKQorCQkJYnJlYWs7CisKKwkJLyog cG9saWN5OiBhbWRncHUgb3ducyBhbGwgcXVldWVzIGluIHRoZSBmaXJzdCBwaXBlICovCisJCWlm IChtZWMgPT0gMCAmJiBwaXBlID09IDApCisJCQlzZXRfYml0KGksIGFkZXYtPmdmeC5tZWMucXVl dWVfYml0bWFwKTsKKwl9CisKKwkvKiB1cGRhdGUgdGhlIG51bWJlciBvZiBhY3RpdmUgY29tcHV0 ZSByaW5ncyAqLworCWFkZXYtPmdmeC5udW1fY29tcHV0ZV9yaW5ncyA9CisJCWJpdG1hcF93ZWln aHQoYWRldi0+Z2Z4Lm1lYy5xdWV1ZV9iaXRtYXAsIEFNREdQVV9NQVhfUVVFVUVTKTsKKworCS8q IElmIHlvdSBoaXQgdGhpcyBjYXNlIGFuZCBlZGl0ZWQgdGhlIHBvbGljeSwgeW91IHByb2JhYmx5 IGp1c3QKKwkgKiBuZWVkIHRvIGluY3JlYXNlIEFNREdQVV9NQVhfQ09NUFVURV9SSU5HUyAqLwor CVdBUk5fT04oYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID4gQU1ER1BVX01BWF9DT01QVVRF X1JJTkdTKTsKKwlpZiAoYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID4gQU1ER1BVX01BWF9D T01QVVRFX1JJTkdTKQorCQlhZGV2LT5nZngubnVtX2NvbXB1dGVfcmluZ3MgPSBBTURHUFVfTUFY X0NPTVBVVEVfUklOR1M7Cit9CisKIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfbWVjX2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJaW50IHI7CiAJdTMyICpocGQ7CiAJc2l6ZV90IG1l Y19ocGRfc2l6ZTsKIAotCS8qCi0JICogS1Y6ICAgIDIgTUVDLCA0IFBpcGVzL01FQywgOCBRdWV1 ZXMvUGlwZSAtIDY0IFF1ZXVlcyB0b3RhbAotCSAqIENJL0tCOiAxIE1FQywgNCBQaXBlcy9NRUMs IDggUXVldWVzL1BpcGUgLSAzMiBRdWV1ZXMgdG90YWwKLQkgKiBOb25ldGhlbGVzcywgd2UgYXNz aWduIG9ubHkgMSBwaXBlIGJlY2F1c2UgYWxsIG90aGVyIHBpcGVzIHdpbGwKLQkgKiBiZSBoYW5k bGVkIGJ5IEtGRAotCSAqLworCWJpdG1hcF96ZXJvKGFkZXYtPmdmeC5tZWMucXVldWVfYml0bWFw LCBBTURHUFVfTUFYX1FVRVVFUyk7CisKIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewogCWNh c2UgQ0hJUF9LQVZFUkk6CiAJCWFkZXYtPmdmeC5tZWMubnVtX21lYyA9IDI7CkBAIC0yODIxLDYg KzI4NDgsMTAgQEAgc3RhdGljIGludCBnZnhfdjdfMF9tZWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKIAlhZGV2LT5nZngubWVjLm51bV9waXBlX3Blcl9tZWMgPSA0OwogCWFkZXYt PmdmeC5tZWMubnVtX3F1ZXVlX3Blcl9waXBlID0gODsKIAorCS8qIHRha2Ugb3duZXJzaGlwIG9m IHRoZSByZWxldmFudCBjb21wdXRlIHF1ZXVlcyAqLworCWdmeF92N18wX2NvbXB1dGVfcXVldWVf YWNxdWlyZShhZGV2KTsKKworCS8qIGFsbG9jYXRlIHNwYWNlIGZvciBBTEwgcGlwZXMgKGV2ZW4g dGhlIG9uZXMgd2UgZG9uJ3Qgb3duKSAqLwogCW1lY19ocGRfc2l6ZSA9IGFkZXYtPmdmeC5tZWMu bnVtX21lYyAqIGFkZXYtPmdmeC5tZWMubnVtX3BpcGVfcGVyX21lYwogCQkqIEdGWDdfTUVDX0hQ RF9TSVpFICogMjsKIAlpZiAoYWRldi0+Z2Z4Lm1lYy5ocGRfZW9wX29iaiA9PSBOVUxMKSB7CkBA IC00NDk2LDcgKzQ1MjcsNyBAQCBzdGF0aWMgaW50IGdmeF92N18wX2Vhcmx5X2luaXQodm9pZCAq aGFuZGxlKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopaGFuZGxlOwogCiAJYWRldi0+Z2Z4Lm51bV9nZnhfcmluZ3MgPSBHRlg3X05VTV9HRlhf UklOR1M7Ci0JYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID0gR0ZYN19OVU1fQ09NUFVURV9S SU5HUzsKKwlhZGV2LT5nZngubnVtX2NvbXB1dGVfcmluZ3MgPSBBTURHUFVfTUFYX0NPTVBVVEVf UklOR1M7CiAJYWRldi0+Z2Z4LmZ1bmNzID0gJmdmeF92N18wX2dmeF9mdW5jczsKIAlhZGV2LT5n ZngucmxjLmZ1bmNzID0gJmdmeF92N18wX3JsY19mdW5jczsKIAlnZnhfdjdfMF9zZXRfcmluZ19m dW5jcyhhZGV2KTsKQEAgLTQ2OTIsNyArNDcyMyw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfc3df aW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwot CWludCBpLCByOworCWludCBpLCByLCByaW5nX2lkOwogCiAJLyogRU9QIEV2ZW50ICovCiAJciA9 IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDE4MSwgJmFkZXYtPmdmeC5lb3BfaXJxKTsKQEAgLTQ3 NDEsMjggKzQ3NzIsMzggQEAgc3RhdGljIGludCBnZnhfdjdfMF9zd19pbml0KHZvaWQgKmhhbmRs ZSkKIAl9CiAKIAkvKiBzZXQgdXAgdGhlIGNvbXB1dGUgcXVldWVzICovCi0JZm9yIChpID0gMDsg aSA8IGFkZXYtPmdmeC5udW1fY29tcHV0ZV9yaW5nczsgaSsrKSB7CisJZm9yIChpID0gMCwgcmlu Z19pZCA9IDA7IGkgPCBBTURHUFVfTUFYX1FVRVVFUzsgaSsrKSB7CiAJCXVuc2lnbmVkIGlycV90 eXBlOwogCi0JCS8qIG1heCAzMiBxdWV1ZXMgcGVyIE1FQyAqLwotCQlpZiAoKGkgPj0gMzIpIHx8 IChpID49IEFNREdQVV9NQVhfQ09NUFVURV9SSU5HUykpIHsKLQkJCURSTV9FUlJPUigiVG9vIG1h bnkgKCVkKSBjb21wdXRlIHJpbmdzIVxuIiwgaSk7Ci0JCQlicmVhazsKLQkJfQotCQlyaW5nID0g JmFkZXYtPmdmeC5jb21wdXRlX3JpbmdbaV07CisJCWlmICghdGVzdF9iaXQoaSwgYWRldi0+Z2Z4 Lm1lYy5xdWV1ZV9iaXRtYXApKQorCQkJY29udGludWU7CisKKwkJcmluZyA9ICZhZGV2LT5nZngu Y29tcHV0ZV9yaW5nW3JpbmdfaWRdOworCisJCS8qIG1lYzAgaXMgbWUxICovCisJCXJpbmctPm1l ID0gKChpIC8gYWRldi0+Z2Z4Lm1lYy5udW1fcXVldWVfcGVyX3BpcGUpCisJCQkJLyBhZGV2LT5n ZngubWVjLm51bV9waXBlX3Blcl9tZWMpCisJCQkJKyAxOworCQlyaW5nLT5waXBlID0gKGkgLyBh ZGV2LT5nZngubWVjLm51bV9xdWV1ZV9wZXJfcGlwZSkKKwkJCQklIGFkZXYtPmdmeC5tZWMubnVt X3BpcGVfcGVyX21lYzsKKwkJcmluZy0+cXVldWUgPSBpICUgYWRldi0+Z2Z4Lm1lYy5udW1fcXVl dWVfcGVyX3BpcGU7CisKIAkJcmluZy0+cmluZ19vYmogPSBOVUxMOwogCQlyaW5nLT51c2VfZG9v cmJlbGwgPSB0cnVlOwotCQlyaW5nLT5kb29yYmVsbF9pbmRleCA9IEFNREdQVV9ET09SQkVMTF9N RUNfUklORzAgKyBpOwotCQlyaW5nLT5tZSA9IDE7IC8qIGZpcnN0IE1FQyAqLwotCQlyaW5nLT5w aXBlID0gaSAvIDg7Ci0JCXJpbmctPnF1ZXVlID0gaSAlIDg7CisJCXJpbmctPmRvb3JiZWxsX2lu ZGV4ID0gQU1ER1BVX0RPT1JCRUxMX01FQ19SSU5HMCArIHJpbmdfaWQ7CiAJCXNwcmludGYocmlu Zy0+bmFtZSwgImNvbXBfJWQuJWQuJWQiLCByaW5nLT5tZSwgcmluZy0+cGlwZSwgcmluZy0+cXVl dWUpOwotCQlpcnFfdHlwZSA9IEFNREdQVV9DUF9JUlFfQ09NUFVURV9NRUMxX1BJUEUwX0VPUCAr IHJpbmctPnBpcGU7CisKKwkJaXJxX3R5cGUgPSBBTURHUFVfQ1BfSVJRX0NPTVBVVEVfTUVDMV9Q SVBFMF9FT1AKKwkJCSsgKChyaW5nLT5tZSAtIDEpICogYWRldi0+Z2Z4Lm1lYy5udW1fcGlwZV9w ZXJfbWVjKQorCQkJKyByaW5nLT5waXBlOworCiAJCS8qIHR5cGUtMiBwYWNrZXRzIGFyZSBkZXBy ZWNhdGVkIG9uIE1FQywgdXNlIHR5cGUtMyBpbnN0ZWFkICovCiAJCXIgPSBhbWRncHVfcmluZ19p bml0KGFkZXYsIHJpbmcsIDEwMjQsCiAJCQkJICAgICAmYWRldi0+Z2Z4LmVvcF9pcnEsIGlycV90 eXBlKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKKworCQlyaW5nX2lkKys7CiAJfQogCiAJLyog cmVzZXJ2ZSBHRFMsIEdXUyBhbmQgT0EgcmVzb3VyY2UgZm9yIGdmeCAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dmeF92OF8wLmMKaW5kZXggNjU4ODA1NC4uZDE4YmRkNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCkBAIC01Miw3ICs1Miw2IEBACiAjaW5jbHVkZSAic211 L3NtdV83XzFfM19kLmgiCiAKICNkZWZpbmUgR0ZYOF9OVU1fR0ZYX1JJTkdTICAgICAxCi0jZGVm aW5lIEdGWDhfTlVNX0NPTVBVVEVfUklOR1MgOAogI2RlZmluZSBHRlg4X01FQ19IUERfU0laRSAy MDQ4CiAKIApAQCAtMTQyMCwxMiArMTQxOSw0NSBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9raXFf ZnJlZV9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAogI2RlZmluZSBHRlg4X01FQ19I UERfU0laRSAyMDQ4CiAKK3N0YXRpYyB2b2lkIGdmeF92OF8wX2NvbXB1dGVfcXVldWVfYWNxdWly ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlpbnQgaSwgcXVldWUsIHBpcGUsIG1l YzsKKworCS8qIHBvbGljeSBmb3IgYW1kZ3B1IGNvbXB1dGUgcXVldWUgb3duZXJzaGlwICovCisJ Zm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUVVFVUVTOyArK2kpIHsKKwkJcXVldWUgPSBpICUg YWRldi0+Z2Z4Lm1lYy5udW1fcXVldWVfcGVyX3BpcGU7CisJCXBpcGUgPSAoaSAvIGFkZXYtPmdm eC5tZWMubnVtX3F1ZXVlX3Blcl9waXBlKQorCQkJJSBhZGV2LT5nZngubWVjLm51bV9waXBlX3Bl cl9tZWM7CisJCW1lYyA9IChpIC8gYWRldi0+Z2Z4Lm1lYy5udW1fcXVldWVfcGVyX3BpcGUpCisJ CQkvIGFkZXYtPmdmeC5tZWMubnVtX3BpcGVfcGVyX21lYzsKKworCQkvKiB3ZSd2ZSBydW4gb3V0 IG9mIEhXICovCisJCWlmIChtZWMgPiBhZGV2LT5nZngubWVjLm51bV9tZWMpCisJCQlicmVhazsK KworCQkvKiBwb2xpY3k6IGFtZGdwdSBvd25zIGFsbCBxdWV1ZXMgaW4gdGhlIGZpcnN0IHBpcGUg Ki8KKwkJaWYgKG1lYyA9PSAwICYmIHBpcGUgPT0gMCkKKwkJCXNldF9iaXQoaSwgYWRldi0+Z2Z4 Lm1lYy5xdWV1ZV9iaXRtYXApOworCX0KKworCS8qIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGFjdGl2 ZSBjb21wdXRlIHJpbmdzICovCisJYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID0KKwkJYml0 bWFwX3dlaWdodChhZGV2LT5nZngubWVjLnF1ZXVlX2JpdG1hcCwgQU1ER1BVX01BWF9RVUVVRVMp OworCisJLyogSWYgeW91IGhpdCB0aGlzIGNhc2UgYW5kIGVkaXRlZCB0aGUgcG9saWN5LCB5b3Ug cHJvYmFibHkganVzdAorCSAqIG5lZWQgdG8gaW5jcmVhc2UgQU1ER1BVX01BWF9DT01QVVRFX1JJ TkdTICovCisJaWYgKFdBUk5fT04oYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID4gQU1ER1BV X01BWF9DT01QVVRFX1JJTkdTKSkKKwkJYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzID0gQU1E R1BVX01BWF9DT01QVVRFX1JJTkdTOworfQorCiBzdGF0aWMgaW50IGdmeF92OF8wX21lY19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCWludCByOwogCXUzMiAqaHBkOwogCXNp emVfdCBtZWNfaHBkX3NpemU7CiAKKwliaXRtYXBfemVybyhhZGV2LT5nZngubWVjLnF1ZXVlX2Jp dG1hcCwgQU1ER1BVX01BWF9RVUVVRVMpOworCiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsK IAljYXNlIENISVBfRklKSToKIAljYXNlIENISVBfVE9OR0E6CkBAIC0xNDQ1LDggKzE0NzcsMTAg QEAgc3RhdGljIGludCBnZnhfdjhfMF9tZWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAlhZGV2LT5nZngubWVjLm51bV9waXBlX3Blcl9tZWMgPSA0OwogCWFkZXYtPmdmeC5tZWMu bnVtX3F1ZXVlX3Blcl9waXBlID0gODsKIAotCS8qIG9ubHkgMSBwaXBlIG9mIHRoZSBmaXJzdCBN RUMgaXMgb3duZWQgYnkgYW1kZ3B1ICovCi0JbWVjX2hwZF9zaXplID0gMSAqIDEgKiBhZGV2LT5n ZngubWVjLm51bV9xdWV1ZV9wZXJfcGlwZSAqIEdGWDhfTUVDX0hQRF9TSVpFOworCS8qIHRha2Ug b3duZXJzaGlwIG9mIHRoZSByZWxldmFudCBjb21wdXRlIHF1ZXVlcyAqLworCWdmeF92OF8wX2Nv bXB1dGVfcXVldWVfYWNxdWlyZShhZGV2KTsKKworCW1lY19ocGRfc2l6ZSA9IGFkZXYtPmdmeC5u dW1fY29tcHV0ZV9yaW5ncyAqIEdGWDhfTUVDX0hQRF9TSVpFOwogCiAJaWYgKGFkZXYtPmdmeC5t ZWMuaHBkX2VvcF9vYmogPT0gTlVMTCkgewogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LApA QCAtMjA5MCw3ICsyMTI0LDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9ncHVfZWFybHlfaW5pdChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIGludCBnZnhfdjhfMF9zd19pbml0 KHZvaWQgKmhhbmRsZSkKIHsKLQlpbnQgaSwgcjsKKwlpbnQgaSwgciwgcmluZ19pZDsKIAlzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CiAJc3RydWN0IGFtZGdwdV9raXEgKmtpcTsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKQEAg LTIxNjYsMjggKzIyMDAsNDEgQEAgc3RhdGljIGludCBnZnhfdjhfMF9zd19pbml0KHZvaWQgKmhh bmRsZSkKIAl9CiAKIAkvKiBzZXQgdXAgdGhlIGNvbXB1dGUgcXVldWVzICovCi0JZm9yIChpID0g MDsgaSA8IGFkZXYtPmdmeC5udW1fY29tcHV0ZV9yaW5nczsgaSsrKSB7CisJZm9yIChpID0gMCwg cmluZ19pZCA9IDA7IGkgPCBBTURHUFVfTUFYX1FVRVVFUzsgaSsrKSB7CiAJCXVuc2lnbmVkIGly cV90eXBlOwogCi0JCS8qIG1heCAzMiBxdWV1ZXMgcGVyIE1FQyAqLwotCQlpZiAoKGkgPj0gMzIp IHx8IChpID49IEFNREdQVV9NQVhfQ09NUFVURV9SSU5HUykpIHsKLQkJCURSTV9FUlJPUigiVG9v IG1hbnkgKCVkKSBjb21wdXRlIHJpbmdzIVxuIiwgaSk7CisJCWlmICghdGVzdF9iaXQoaSwgYWRl di0+Z2Z4Lm1lYy5xdWV1ZV9iaXRtYXApKQorCQkJY29udGludWU7CisKKwkJaWYgKFdBUk5fT04o cmluZ19pZCA+PSBBTURHUFVfTUFYX0NPTVBVVEVfUklOR1MpKQogCQkJYnJlYWs7Ci0JCX0KLQkJ cmluZyA9ICZhZGV2LT5nZnguY29tcHV0ZV9yaW5nW2ldOworCisJCXJpbmcgPSAmYWRldi0+Z2Z4 LmNvbXB1dGVfcmluZ1tyaW5nX2lkXTsKKworCQkvKiBtZWMwIGlzIG1lMSAqLworCQlyaW5nLT5t ZSA9ICgoaSAvIGFkZXYtPmdmeC5tZWMubnVtX3F1ZXVlX3Blcl9waXBlKQorCQkJCS8gYWRldi0+ Z2Z4Lm1lYy5udW1fcGlwZV9wZXJfbWVjKQorCQkJCSsgMTsKKwkJcmluZy0+cGlwZSA9IChpIC8g YWRldi0+Z2Z4Lm1lYy5udW1fcXVldWVfcGVyX3BpcGUpCisJCQkJJSBhZGV2LT5nZngubWVjLm51 bV9waXBlX3Blcl9tZWM7CisJCXJpbmctPnF1ZXVlID0gaSAlIGFkZXYtPmdmeC5tZWMubnVtX3F1 ZXVlX3Blcl9waXBlOworCiAJCXJpbmctPnJpbmdfb2JqID0gTlVMTDsKIAkJcmluZy0+dXNlX2Rv b3JiZWxsID0gdHJ1ZTsKLQkJcmluZy0+ZG9vcmJlbGxfaW5kZXggPSBBTURHUFVfRE9PUkJFTExf TUVDX1JJTkcwICsgaTsKLQkJcmluZy0+bWUgPSAxOyAvKiBmaXJzdCBNRUMgKi8KLQkJcmluZy0+ cGlwZSA9IGkgLyA4OwotCQlyaW5nLT5xdWV1ZSA9IGkgJSA4OworCQlyaW5nLT5kb29yYmVsbF9p bmRleCA9IEFNREdQVV9ET09SQkVMTF9NRUNfUklORzAgKyByaW5nX2lkOwogCQlzcHJpbnRmKHJp bmctPm5hbWUsICJjb21wXyVkLiVkLiVkIiwgcmluZy0+bWUsIHJpbmctPnBpcGUsIHJpbmctPnF1 ZXVlKTsKLQkJaXJxX3R5cGUgPSBBTURHUFVfQ1BfSVJRX0NPTVBVVEVfTUVDMV9QSVBFMF9FT1Ag KyByaW5nLT5waXBlOworCisJCWlycV90eXBlID0gQU1ER1BVX0NQX0lSUV9DT01QVVRFX01FQzFf UElQRTBfRU9QCisJCQkrICgocmluZy0+bWUgLSAxKSAqIGFkZXYtPmdmeC5tZWMubnVtX3BpcGVf cGVyX21lYykKKwkJCSsgcmluZy0+cGlwZTsKKwogCQkvKiB0eXBlLTIgcGFja2V0cyBhcmUgZGVw cmVjYXRlZCBvbiBNRUMsIHVzZSB0eXBlLTMgaW5zdGVhZCAqLwogCQlyID0gYW1kZ3B1X3Jpbmdf aW5pdChhZGV2LCByaW5nLCAxMDI0LCAmYWRldi0+Z2Z4LmVvcF9pcnEsCiAJCQkJICAgICBpcnFf dHlwZSk7CiAJCWlmIChyKQogCQkJcmV0dXJuIHI7CisKKwkJcmluZ19pZCsrOwogCX0KIAogCS8q IHJlc2VydmUgR0RTLCBHV1MgYW5kIE9BIHJlc291cmNlIGZvciBnZnggKi8KQEAgLTU2OTIsNyAr NTczOSw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5k bGU7CiAKIAlhZGV2LT5nZngubnVtX2dmeF9yaW5ncyA9IEdGWDhfTlVNX0dGWF9SSU5HUzsKLQlh ZGV2LT5nZngubnVtX2NvbXB1dGVfcmluZ3MgPSBHRlg4X05VTV9DT01QVVRFX1JJTkdTOworCWFk ZXYtPmdmeC5udW1fY29tcHV0ZV9yaW5ncyA9IEFNREdQVV9NQVhfQ09NUFVURV9SSU5HUzsKIAlh ZGV2LT5nZnguZnVuY3MgPSAmZ2Z4X3Y4XzBfZ2Z4X2Z1bmNzOwogCWdmeF92OF8wX3NldF9yaW5n X2Z1bmNzKGFkZXYpOwogCWdmeF92OF8wX3NldF9pcnFfZnVuY3MoYWRldik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2UuaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2ludGVyZmFjZS5oCmluZGV4IGEwOWQ5ZjMu LjY3ZjZkMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2Zk X2ludGVyZmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2lu dGVyZmFjZS5oCkBAIC0zMyw2ICszMyw3IEBACiBzdHJ1Y3QgcGNpX2RldjsKIAogI2RlZmluZSBL RkRfSU5URVJGQUNFX1ZFUlNJT04gMQorI2RlZmluZSBLR0RfTUFYX1FVRVVFUyAxMjgKIAogc3Ry dWN0IGtmZF9kZXY7CiBzdHJ1Y3Qga2dkX2RldjsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK