From: Andres Rodriguez Subject: [PATCH] drm/amdgpu: add parameter to allocate high priority contexts v8 Date: Mon, 24 Apr 2017 12:20:15 -0400 Message-ID: <20170424162015.3206-2-andresx7@gmail.com> References: <20170424162015.3206-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170424162015.3206-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: andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org QWRkIGEgbmV3IGNvbnRleHQgY3JlYXRpb24gcGFyYW1ldGVyIHRvIGV4cHJlc3MgYSBnbG9iYWwg Y29udGV4dCBwcmlvcml0eS4KClRoZSBwcmlvcml0eSByYW5raW5nIGluIGRlc2NlbmRpbmcgb3Jk ZXIgaXMgYXMgZm9sbG93czoKICogQU1ER1BVX0NUWF9QUklPUklUWV9ISUdICiAqIEFNREdQVV9D VFhfUFJJT1JJVFlfTk9STUFMCiAqIEFNREdQVV9DVFhfUFJJT1JJVFlfTE9XCgpUaGUgZHJpdmVy IHdpbGwgYXR0ZW1wdCB0byBzY2hlZHVsZSB3b3JrIHRvIHRoZSBoYXJkd2FyZSBhY2NvcmRpbmcg dG8KdGhlIHByaW9yaXRpZXMuIE5vIGxhdGVuY3kgb3IgdGhyb3VnaHB1dCBndWFyYW50ZWVzIGFy ZSBwcm92aWRlZCBieQp0aGlzIHBhdGNoLgoKVGhpcyBpbnRlcmZhY2UgaW50ZW5kcyB0byBzZXJ2 aWNlIHRoZSBFR0xfSU1HX2NvbnRleHRfcHJpb3JpdHkKZXh0ZW5zaW9uLCBhbmQgdnVsa2FuIGVx dWl2YWxlbnRzLgoKdjI6IEluc3RlYWQgb2YgdXNpbmcgZmxhZ3MsIHJlcHVycG9zZSBfX3BhZAp2 MzogU3dhcCBlbnVtIHZhbHVlcyBvZiBfTk9STUFMIF9ISUdIIGZvciBiYWNrd2FyZHMgY29tcGF0 aWJpbGl0eQp2NDogVmFsaWRhdGUgdXNlcm1vZGUgcHJpb3JpdHkgYW5kIHN0b3JlIGl0CnY1OiBN b3ZlIHByaW9yaXR5IHZhbGlkYXRpb24gaW50byBhbWRncHVfY3R4X2lvY3RsKCksIGhlYWRsaW5l IHJld29yZAp2NjogYWRkIFVBUEkgbm90ZSByZWdhcmRpbmcgcHJpb3JpdGllcyByZXF1aXJpbmcg Q0FQX1NZU19BRE1JTgp2NzogcmVtb3ZlIGN0eC0+cHJpb3JpdHkKdjg6IGFkZGVkIEFNREdQVV9D VFhfUFJJT1JJVFlfTE9XLCBzL0NBUF9TWVNfQURNSU4vQ0FQX1NZU19OSUNFCgpSZXZpZXdlZC1i eTogRW1pbCBWZWxpa292IDxlbWlsLmwudmVsaWtvdkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBD aHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFuZHJlcyBSb2RyaWd1ZXogPGFuZHJlc3g3QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMgICAgICAgfCAzOCArKysrKysrKysrKysrKysrKysr KysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaCB8 ICA0ICsrLQogaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggICAgICAgICAgICAgICAgIHwg IDkgKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHgu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYwppbmRleCBiNGJiYmIz Li5hZjc1NTcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y3R4LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCkBAIC04 LDEyNCArOCwxMzQgQEAKICAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQogICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICAqCiAgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs bCBiZSBpbmNsdWRlZCBpbgogICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUgU29mdHdhcmUuCiAgKgogICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAogICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCiAgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBB VVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKICAqIE9USEVSIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLAogICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SCiAgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu CiAgKgogICogQXV0aG9yczogbW9uayBsaXUgPG1vbmsubGl1QGFtZC5jb20+CiAgKi8KIAogI2lu Y2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAKLXN0YXRpYyBpbnQgYW1k Z3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2N0 eCAqY3R4KQorc3RhdGljIGludCBhbWRncHVfY3R4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCisJCQkgICBlbnVtIGFtZF9zY2hlZF9wcmlvcml0eSBwcmlvcml0eSwKKwkJCSAgIHN0 cnVjdCBhbWRncHVfY3R4ICpjdHgpCiB7CiAJdW5zaWduZWQgaSwgajsKIAlpbnQgcjsKIAorCWlm IChwcmlvcml0eSA8IDAgfHwgcHJpb3JpdHkgPj0gQU1EX1NDSEVEX1BSSU9SSVRZX01BWCkKKwkJ cmV0dXJuIC1FSU5WQUw7CisKKwlpZiAocHJpb3JpdHkgPj0gQU1EX1NDSEVEX1BSSU9SSVRZX0hJ R0ggJiYgIWNhcGFibGUoQ0FQX1NZU19OSUNFKSkKKwkJcmV0dXJuIC1FQUNDRVM7CisKIAltZW1z ZXQoY3R4LCAwLCBzaXplb2YoKmN0eCkpOwogCWN0eC0+YWRldiA9IGFkZXY7CiAJa3JlZl9pbml0 KCZjdHgtPnJlZmNvdW50KTsKIAlzcGluX2xvY2tfaW5pdCgmY3R4LT5yaW5nX2xvY2spOwogCWN0 eC0+ZmVuY2VzID0ga2NhbGxvYyhhbWRncHVfc2NoZWRfam9icyAqIEFNREdQVV9NQVhfUklOR1Ms CiAJCQkgICAgICBzaXplb2Yoc3RydWN0IGZlbmNlKiksIEdGUF9LRVJORUwpOwogCWlmICghY3R4 LT5mZW5jZXMpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJZm9yIChpID0gMDsgaSA8IEFNREdQVV9N QVhfUklOR1M7ICsraSkgewogCQljdHgtPnJpbmdzW2ldLnNlcXVlbmNlID0gMTsKIAkJY3R4LT5y aW5nc1tpXS5mZW5jZXMgPSAmY3R4LT5mZW5jZXNbYW1kZ3B1X3NjaGVkX2pvYnMgKiBpXTsKIAl9 CiAKIAljdHgtPnJlc2V0X2NvdW50ZXIgPSBhdG9taWNfcmVhZCgmYWRldi0+Z3B1X3Jlc2V0X2Nv dW50ZXIpOwogCiAJLyogY3JlYXRlIGNvbnRleHQgZW50aXR5IGZvciBlYWNoIHJpbmcgKi8KIAlm b3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3JpbmdzOyBpKyspIHsKIAkJc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nID0gYWRldi0+cmluZ3NbaV07CiAJCXN0cnVjdCBhbWRfc2NoZWRfcnEgKnJxOwog Ci0JCXJxID0gJnJpbmctPnNjaGVkLnNjaGVkX3JxW0FNRF9TQ0hFRF9QUklPUklUWV9OT1JNQUxd OworCQlycSA9ICZyaW5nLT5zY2hlZC5zY2hlZF9ycVtwcmlvcml0eV07CiAJCXIgPSBhbWRfc2No ZWRfZW50aXR5X2luaXQoJnJpbmctPnNjaGVkLCAmY3R4LT5yaW5nc1tpXS5lbnRpdHksCiAJCQkJ CSAgcnEsIGFtZGdwdV9zY2hlZF9qb2JzKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGZhaWxlZDsKIAl9 CiAKIAlyZXR1cm4gMDsKIAogZmFpbGVkOgogCWZvciAoaiA9IDA7IGogPCBpOyBqKyspCiAJCWFt ZF9zY2hlZF9lbnRpdHlfZmluaSgmYWRldi0+cmluZ3Nbal0tPnNjaGVkLAogCQkJCSAgICAgICZj dHgtPnJpbmdzW2pdLmVudGl0eSk7CiAJa2ZyZWUoY3R4LT5mZW5jZXMpOwogCWN0eC0+ZmVuY2Vz ID0gTlVMTDsKIAlyZXR1cm4gcjsKIH0KIAogc3RhdGljIHZvaWQgYW1kZ3B1X2N0eF9maW5pKHN0 cnVjdCBhbWRncHVfY3R4ICpjdHgpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBj dHgtPmFkZXY7CiAJdW5zaWduZWQgaSwgajsKIAogCWlmICghYWRldikKIAkJcmV0dXJuOwogCiAJ Zm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkKIAkJZm9yIChqID0gMDsgaiA8 IGFtZGdwdV9zY2hlZF9qb2JzOyArK2opCiAJCQlmZW5jZV9wdXQoY3R4LT5yaW5nc1tpXS5mZW5j ZXNbal0pOwogCWtmcmVlKGN0eC0+ZmVuY2VzKTsKIAljdHgtPmZlbmNlcyA9IE5VTEw7CiAKIAlm b3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3JpbmdzOyBpKyspCiAJCWFtZF9zY2hlZF9lbnRpdHlf ZmluaSgmYWRldi0+cmluZ3NbaV0tPnNjaGVkLAogCQkJCSAgICAgICZjdHgtPnJpbmdzW2ldLmVu dGl0eSk7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2N0eF9hbGxvYyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKIAkJCSAgICBzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwKKwkJCSAgICBl bnVtIGFtZF9zY2hlZF9wcmlvcml0eSBwcmlvcml0eSwKIAkJCSAgICB1aW50MzJfdCAqaWQpCiB7 CiAJc3RydWN0IGFtZGdwdV9jdHhfbWdyICptZ3IgPSAmZnByaXYtPmN0eF9tZ3I7CiAJc3RydWN0 IGFtZGdwdV9jdHggKmN0eDsKIAlpbnQgcjsKIAogCWN0eCA9IGttYWxsb2Moc2l6ZW9mKCpjdHgp LCBHRlBfS0VSTkVMKTsKIAlpZiAoIWN0eCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAltdXRleF9s b2NrKCZtZ3ItPmxvY2spOwogCXIgPSBpZHJfYWxsb2MoJm1nci0+Y3R4X2hhbmRsZXMsIGN0eCwg MSwgMCwgR0ZQX0tFUk5FTCk7CiAJaWYgKHIgPCAwKSB7CiAJCW11dGV4X3VubG9jaygmbWdyLT5s b2NrKTsKIAkJa2ZyZWUoY3R4KTsKIAkJcmV0dXJuIHI7CiAJfQorCiAJKmlkID0gKHVpbnQzMl90 KXI7Ci0JciA9IGFtZGdwdV9jdHhfaW5pdChhZGV2LCBjdHgpOworCXIgPSBhbWRncHVfY3R4X2lu aXQoYWRldiwgcHJpb3JpdHksIGN0eCk7CiAJaWYgKHIpIHsKIAkJaWRyX3JlbW92ZSgmbWdyLT5j dHhfaGFuZGxlcywgKmlkKTsKIAkJKmlkID0gMDsKIAkJa2ZyZWUoY3R4KTsKIAl9CiAJbXV0ZXhf dW5sb2NrKCZtZ3ItPmxvY2spOwogCXJldHVybiByOwogfQogCiBzdGF0aWMgdm9pZCBhbWRncHVf Y3R4X2RvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eCAq Y3R4OwogCiAJY3R4ID0gY29udGFpbmVyX29mKHJlZiwgc3RydWN0IGFtZGdwdV9jdHgsIHJlZmNv dW50KTsKIAogCWFtZGdwdV9jdHhfZmluaShjdHgpOwogCiAJa2ZyZWUoY3R4KTsKIH0KIApAQCAt MTY1LDU2ICsxNzUsNzYgQEAgc3RhdGljIGludCBhbWRncHVfY3R4X3F1ZXJ5KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAkvKiBUT0RPOiB0aGVz ZSB0d28gYXJlIGFsd2F5cyB6ZXJvICovCiAJb3V0LT5zdGF0ZS5mbGFncyA9IDB4MDsKIAlvdXQt PnN0YXRlLmhhbmdzID0gMHgwOwogCiAJLyogZGV0ZXJtaW5lIGlmIGEgR1BVIHJlc2V0IGhhcyBv Y2N1cmVkIHNpbmNlIHRoZSBsYXN0IGNhbGwgKi8KIAlyZXNldF9jb3VudGVyID0gYXRvbWljX3Jl YWQoJmFkZXYtPmdwdV9yZXNldF9jb3VudGVyKTsKIAkvKiBUT0RPOiB0aGlzIHNob3VsZCBpZGVh bGx5IHJldHVybiBOTywgR1VJTFRZLCBvciBJTk5PQ0VOVC4gKi8KIAlpZiAoY3R4LT5yZXNldF9j b3VudGVyID09IHJlc2V0X2NvdW50ZXIpCiAJCW91dC0+c3RhdGUucmVzZXRfc3RhdHVzID0gQU1E R1BVX0NUWF9OT19SRVNFVDsKIAllbHNlCiAJCW91dC0+c3RhdGUucmVzZXRfc3RhdHVzID0gQU1E R1BVX0NUWF9VTktOT1dOX1JFU0VUOwogCWN0eC0+cmVzZXRfY291bnRlciA9IHJlc2V0X2NvdW50 ZXI7CiAKIAltdXRleF91bmxvY2soJm1nci0+bG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBlbnVtIGFtZF9zY2hlZF9wcmlvcml0eSBhbWRncHVfdG9fc2NoZWRfcHJpb3JpdHkoaW50IGFt ZGdwdV9wcmlvcml0eSkKK3sKKwlzd2l0Y2ggKGFtZGdwdV9wcmlvcml0eSkgeworCWNhc2UgQU1E R1BVX0NUWF9QUklPUklUWV9ISUdIOgorCQlyZXR1cm4gQU1EX1NDSEVEX1BSSU9SSVRZX0hJR0g7 CisJY2FzZSBBTURHUFVfQ1RYX1BSSU9SSVRZX05PUk1BTDoKKwkJcmV0dXJuIEFNRF9TQ0hFRF9Q UklPUklUWV9OT1JNQUw7CisJY2FzZSBBTURHUFVfQ1RYX1BSSU9SSVRZX0xPVzoKKwkJcmV0dXJu IEFNRF9TQ0hFRF9QUklPUklUWV9MT1c7CisJZGVmYXVsdDoKKwkJV0FSTigxLCAiSW52YWxpZCBj b250ZXh0IHByaW9yaXR5ICVkXG4iLCBhbWRncHVfcHJpb3JpdHkpOworCQlyZXR1cm4gQU1EX1ND SEVEX1BSSU9SSVRZX05PUk1BTDsKKwl9Cit9CisKIGludCBhbWRncHVfY3R4X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgICAgc3RydWN0IGRybV9maWxlICpm aWxwKQogewogCWludCByOwogCXVpbnQzMl90IGlkOworCWVudW0gYW1kX3NjaGVkX3ByaW9yaXR5 IHByaW9yaXR5OwogCiAJdW5pb24gZHJtX2FtZGdwdV9jdHggKmFyZ3MgPSBkYXRhOwogCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgYW1kZ3B1 X2Zwcml2ICpmcHJpdiA9IGZpbHAtPmRyaXZlcl9wcml2OwogCiAJciA9IDA7CiAJaWQgPSBhcmdz LT5pbi5jdHhfaWQ7CisJcHJpb3JpdHkgPSBhbWRncHVfdG9fc2NoZWRfcHJpb3JpdHkoYXJncy0+ aW4ucHJpb3JpdHkpOworCisJaWYgKHByaW9yaXR5ID49IEFNRF9TQ0hFRF9QUklPUklUWV9NQVgp CisJCXJldHVybiAtRUlOVkFMOwogCiAJc3dpdGNoIChhcmdzLT5pbi5vcCkgewogCWNhc2UgQU1E R1BVX0NUWF9PUF9BTExPQ19DVFg6Ci0JCXIgPSBhbWRncHVfY3R4X2FsbG9jKGFkZXYsIGZwcml2 LCAmaWQpOworCQlyID0gYW1kZ3B1X2N0eF9hbGxvYyhhZGV2LCBmcHJpdiwgcHJpb3JpdHksICZp ZCk7CiAJCWFyZ3MtPm91dC5hbGxvYy5jdHhfaWQgPSBpZDsKIAkJYnJlYWs7CiAJY2FzZSBBTURH UFVfQ1RYX09QX0ZSRUVfQ1RYOgogCQlyID0gYW1kZ3B1X2N0eF9mcmVlKGZwcml2LCBpZCk7CiAJ CWJyZWFrOwogCWNhc2UgQU1ER1BVX0NUWF9PUF9RVUVSWV9TVEFURToKIAkJciA9IGFtZGdwdV9j dHhfcXVlcnkoYWRldiwgZnByaXYsIGlkLCAmYXJncy0+b3V0KTsKIAkJYnJlYWs7CiAJZGVmYXVs dDoKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJcmV0dXJuIHI7CiB9CiAKIHN0cnVjdCBhbWRn cHVfY3R4ICphbWRncHVfY3R4X2dldChzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwgdWludDMy X3QgaWQpCiB7CiAJc3RydWN0IGFtZGdwdV9jdHggKmN0eDsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eF9t Z3IgKm1ncjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1 X3NjaGVkdWxlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxl ci5oCmluZGV4IDhjYjQxZDMuLjYxM2U2ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Nj aGVkdWxlci9ncHVfc2NoZWR1bGVyLmgKQEAgLTkyLDQxICs5Miw0MyBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnRvX2FtZF9zY2hlZF9mZW5jZShzdHJ1Y3QgZmVuY2Ug KmYpCiAKIAlpZiAoZi0+b3BzID09ICZhbWRfc2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkKQogCQly ZXR1cm4gY29udGFpbmVyX29mKGYsIHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UsIGZpbmlzaGVkKTsK IAogCXJldHVybiBOVUxMOwogfQogCiAvKioKICAqIERlZmluZSB0aGUgYmFja2VuZCBvcGVyYXRp b25zIGNhbGxlZCBieSB0aGUgc2NoZWR1bGVyLAogICogdGhlc2UgZnVuY3Rpb25zIHNob3VsZCBi ZSBpbXBsZW1lbnRlZCBpbiBkcml2ZXIgc2lkZQogKi8KIHN0cnVjdCBhbWRfc2NoZWRfYmFja2Vu ZF9vcHMgewogCXN0cnVjdCBmZW5jZSAqKCpkZXBlbmRlbmN5KShzdHJ1Y3QgYW1kX3NjaGVkX2pv YiAqc2NoZWRfam9iKTsKIAlzdHJ1Y3QgZmVuY2UgKigqcnVuX2pvYikoc3RydWN0IGFtZF9zY2hl ZF9qb2IgKnNjaGVkX2pvYik7CiAJdm9pZCAoKnRpbWVkb3V0X2pvYikoc3RydWN0IGFtZF9zY2hl ZF9qb2IgKnNjaGVkX2pvYik7CiAJdm9pZCAoKmZyZWVfam9iKShzdHJ1Y3QgYW1kX3NjaGVkX2pv YiAqc2NoZWRfam9iKTsKIH07CiAKIGVudW0gYW1kX3NjaGVkX3ByaW9yaXR5IHsKIAlBTURfU0NI RURfUFJJT1JJVFlfTUlOLAotCUFNRF9TQ0hFRF9QUklPUklUWV9OT1JNQUwgPSBBTURfU0NIRURf UFJJT1JJVFlfTUlOLAorCUFNRF9TQ0hFRF9QUklPUklUWV9MT1cgPSBBTURfU0NIRURfUFJJT1JJ VFlfTUlOLAorCUFNRF9TQ0hFRF9QUklPUklUWV9OT1JNQUwsCisJQU1EX1NDSEVEX1BSSU9SSVRZ X0hJR0gsCiAJQU1EX1NDSEVEX1BSSU9SSVRZX0tFUk5FTCwKIAlBTURfU0NIRURfUFJJT1JJVFlf TUFYCiB9OwogCiAvKioKICAqIE9uZSBzY2hlZHVsZXIgaXMgaW1wbGVtZW50ZWQgZm9yIGVhY2gg aGFyZHdhcmUgcmluZwogKi8KIHN0cnVjdCBhbWRfZ3B1X3NjaGVkdWxlciB7CiAJY29uc3Qgc3Ry dWN0IGFtZF9zY2hlZF9iYWNrZW5kX29wcwkqb3BzOwogCXVpbnQzMl90CQkJaHdfc3VibWlzc2lv bl9saW1pdDsKIAlsb25nCQkJCXRpbWVvdXQ7CiAJY29uc3QgY2hhcgkJCSpuYW1lOwogCXN0cnVj dCBhbWRfc2NoZWRfcnEJCXNjaGVkX3JxW0FNRF9TQ0hFRF9QUklPUklUWV9NQVhdOwogCXdhaXRf cXVldWVfaGVhZF90CQl3YWtlX3VwX3dvcmtlcjsKIAl3YWl0X3F1ZXVlX2hlYWRfdAkJam9iX3Nj aGVkdWxlZDsKIAlhdG9taWNfdAkJCWh3X3JxX2NvdW50OwogCWF0b21pYzY0X3QJCQlqb2JfaWRf Y291bnQ7CiAJc3RydWN0IHRhc2tfc3RydWN0CQkqdGhyZWFkOwogCXN0cnVjdCBsaXN0X2hlYWQJ cmluZ19taXJyb3JfbGlzdDsKIAlzcGlubG9ja190CQkJam9iX2xpc3RfbG9jazsKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9hbWRn cHVfZHJtLmgKaW5kZXggZDc2ZDUyNS4uYWY4OGQ4NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L2RybS9hbWRncHVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKQEAg LTE0NSw0NyArMTQ1LDU0IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3Rfb3V0IHsKIAogdW5p b24gZHJtX2FtZGdwdV9ib19saXN0IHsKIAlzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2luIGlu OwogCXN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3Rfb3V0IG91dDsKIH07CiAKIC8qIGNvbnRleHQg cmVsYXRlZCAqLwogI2RlZmluZSBBTURHUFVfQ1RYX09QX0FMTE9DX0NUWAkxCiAjZGVmaW5lIEFN REdQVV9DVFhfT1BfRlJFRV9DVFgJMgogI2RlZmluZSBBTURHUFVfQ1RYX09QX1FVRVJZX1NUQVRF CTMKIAogLyogR1BVIHJlc2V0IHN0YXR1cyAqLwogI2RlZmluZSBBTURHUFVfQ1RYX05PX1JFU0VU CQkwCiAvKiB0aGlzIHRoZSBjb250ZXh0IGNhdXNlZCBpdCAqLwogI2RlZmluZSBBTURHUFVfQ1RY X0dVSUxUWV9SRVNFVAkJMQogLyogc29tZSBvdGhlciBjb250ZXh0IGNhdXNlZCBpdCAqLwogI2Rl ZmluZSBBTURHUFVfQ1RYX0lOTk9DRU5UX1JFU0VUCTIKIC8qIHVua25vd24gY2F1c2UgKi8KICNk ZWZpbmUgQU1ER1BVX0NUWF9VTktOT1dOX1JFU0VUCTMKIAorLyogQ29udGV4dCBwcmlvcml0eSBs ZXZlbCAqLworI2RlZmluZSBBTURHUFVfQ1RYX1BSSU9SSVRZX05PUk1BTAkwCisjZGVmaW5lIEFN REdQVV9DVFhfUFJJT1JJVFlfTE9XCQkxCisvKiBTZWxlY3RpbmcgYSBwcmlvcml0eSBhYm92ZSBO T1JNQUwgcmVxdWlyZXMgQ0FQX1NZU19BRE1JTiAqLworI2RlZmluZSBBTURHUFVfQ1RYX1BSSU9S SVRZX0hJR0gJMgorI2RlZmluZSBBTURHUFVfQ1RYX1BSSU9SSVRZX05VTQkJMworCiBzdHJ1Y3Qg ZHJtX2FtZGdwdV9jdHhfaW4gewogCS8qKiBBTURHUFVfQ1RYX09QXyogKi8KIAlfX3UzMglvcDsK IAkvKiogRm9yIGZ1dHVyZSB1c2UsIG5vIGZsYWdzIGRlZmluZWQgc28gZmFyICovCiAJX191MzIJ ZmxhZ3M7CiAJX191MzIJY3R4X2lkOwotCV9fdTMyCV9wYWQ7CisJX191MzIJcHJpb3JpdHk7CiB9 OwogCiB1bmlvbiBkcm1fYW1kZ3B1X2N0eF9vdXQgewogCQlzdHJ1Y3QgewogCQkJX191MzIJY3R4 X2lkOwogCQkJX191MzIJX3BhZDsKIAkJfSBhbGxvYzsKIAogCQlzdHJ1Y3QgewogCQkJLyoqIEZv ciBmdXR1cmUgdXNlLCBubyBmbGFncyBkZWZpbmVkIHNvIGZhciAqLwogCQkJX191NjQJZmxhZ3M7 CiAJCQkvKiogTnVtYmVyIG9mIHJlc2V0cyBjYXVzZWQgYnkgdGhpcyBjb250ZXh0IHNvIGZhci4g Ki8KIAkJCV9fdTMyCWhhbmdzOwogCQkJLyoqIFJlc2V0IHN0YXR1cyBzaW5jZSB0aGUgbGFzdCBj YWxsIG9mIHRoZSBpb2N0bC4gKi8KIAkJCV9fdTMyCXJlc2V0X3N0YXR1czsKIAkJfSBzdGF0ZTsK IH07CiAKIHVuaW9uIGRybV9hbWRncHVfY3R4IHsKIAlzdHJ1Y3QgZHJtX2FtZGdwdV9jdHhfaW4g aW47Ci0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==