From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH 17/25] drm/amdgpu: implement lru amdgpu_queue_mgr policy for compute v4 Date: Tue, 4 Apr 2017 18:05:43 -0400 Message-ID: <20170404220551.8669-18-andresx7@gmail.com> References: <20170404220551.8669-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170404220551.8669-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 VXNlIGFuIExSVSBwb2xpY3kgdG8gbWFwIHVzZXJtb2RlIHJpbmdzIHRvIEhXIGNvbXB1dGUgcXVl dWVzLgoKTW9zdCBjb21wdXRlIGNsaWVudHMgdXNlIG9uZSBxdWV1ZSwgYW5kIHVzdWFsbHkgdGhl IGZpcnN0IHF1ZXVlCmF2YWlsYWJsZS4gVGhpcyByZXN1bHRzIGluIHBvb3IgcGlwZS9xdWV1ZSB3 b3JrIGRpc3RyaWJ1dGlvbiB3aGVuCm11bHRpcGxlIGNvbXB1dGUgYXBwcyBhcmUgcnVubmluZy4g SW4gbW9zdCBjYXNlcyBwaXBlIDAgcXVldWUgMCBpcwp0aGUgb25seSBxdWV1ZSB0aGF0IGdldHMg dXNlZC4KCkluIG9yZGVyIHRvIGJldHRlciBkaXN0cmlidXRlIHdvcmsgYWNyb3NzIG11bHRpcGxl IEhXIHF1ZXVlcywgd2UgYWRvcHQKYSBwb2xpY3kgdG8gbWFwIHRoZSB1c2VybW9kZSByaW5nIGlk cyB0byB0aGUgTFJVIEhXIHF1ZXVlLgoKVGhpcyBmaXhlcyBhIGxhcmdlIG1ham9yaXR5IG9mIG11 bHRpLWFwcCBjb21wdXRlIHdvcmtsb2FkcyBzaGFyaW5nIHRoZQpzYW1lIEhXIHF1ZXVlLCBldmVu IHRob3VnaCA3IG90aGVyIHF1ZXVlcyBhcmUgYXZhaWxhYmxlLgoKdjI6IHVzZSByaW5nLT5mdW5j cy0+dHlwZSBpbnN0ZWFkIG9mIHJpbmctPmh3X2lwCnYzOiByZW1vdmUgYW1kZ3B1X3F1ZXVlX21h cHBlcl9mdW5jcwp2NDogY2hhbmdlIHJpbmdfbHJ1X2xpc3RfbG9jayB0byBzcGlubG9jaywgZ3Jh YiBvbmx5IG9uY2UgaW4gbHJ1X2dldCgpCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXMgUm9kcmlndWV6 IDxhbmRyZXN4N0BnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmggICAgICAgICAgIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kZXZpY2UuYyAgICB8ICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf cXVldWVfbWdyLmMgfCAzOCArKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcmluZy5jICAgICAgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmggICAgICB8ICA0ICsrCiA1 IGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaAppbmRleCA5Y2E2NDc5Li42MmJmYjUzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtMTY0NCwyMCArMTY0NCwyMyBAQCBzdHJ1Y3QgYW1k Z3B1X2RldmljZSB7CiAJc3RydWN0IGtmZF9kZXYgICAgICAgICAgKmtmZDsKIAogCXN0cnVjdCBh bWRncHVfdmlydAl2aXJ0OwogCiAJLyogbGluayBhbGwgc2hhZG93IGJvICovCiAJc3RydWN0IGxp c3RfaGVhZCAgICAgICAgICAgICAgICBzaGFkb3dfbGlzdDsKIAlzdHJ1Y3QgbXV0ZXggICAgICAg ICAgICAgICAgICAgIHNoYWRvd19saXN0X2xvY2s7CiAJLyogbGluayBhbGwgZ3R0ICovCiAJc3Bp bmxvY2tfdAkJCWd0dF9saXN0X2xvY2s7CiAJc3RydWN0IGxpc3RfaGVhZCAgICAgICAgICAgICAg ICBndHRfbGlzdDsKKwkvKiBrZWVwIGFuIGxydSBsaXN0IG9mIHJpbmdzIGJ5IEhXIElQICovCisJ c3RydWN0IGxpc3RfaGVhZAkJcmluZ19scnVfbGlzdDsKKwlzcGlubG9ja190CQkJcmluZ19scnVf bGlzdF9sb2NrOwogCiAJLyogcmVjb3JkIGh3IHJlc2V0IGlzIHBlcmZvcm1lZCAqLwogCWJvb2wg aGFzX2h3X3Jlc2V0OwogCiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZGV2aWNl ICphbWRncHVfdHRtX2FkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpCiB7CiAJcmV0dXJu IGNvbnRhaW5lcl9vZihiZGV2LCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSwgbW1hbi5iZGV2KTsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCA1MGJkZjU1 Li5mNDhjYzRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5j CkBAIC0xODg5LDIwICsxODg5LDIzIEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJc3Bpbl9sb2NrX2luaXQoJmFkZXYtPmdjX2NhY19pZHhfbG9j ayk7CiAJc3Bpbl9sb2NrX2luaXQoJmFkZXYtPmF1ZGlvX2VuZHB0X2lkeF9sb2NrKTsKIAlzcGlu X2xvY2tfaW5pdCgmYWRldi0+bW1fc3RhdHMubG9jayk7CiAKIAlJTklUX0xJU1RfSEVBRCgmYWRl di0+c2hhZG93X2xpc3QpOwogCW11dGV4X2luaXQoJmFkZXYtPnNoYWRvd19saXN0X2xvY2spOwog CiAJSU5JVF9MSVNUX0hFQUQoJmFkZXYtPmd0dF9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmYWRl di0+Z3R0X2xpc3RfbG9jayk7CiAKKwlJTklUX0xJU1RfSEVBRCgmYWRldi0+cmluZ19scnVfbGlz dCk7CisJc3Bpbl9sb2NrX2luaXQoJmFkZXYtPnJpbmdfbHJ1X2xpc3RfbG9jayk7CisKIAlpZiAo YWRldi0+YXNpY190eXBlID49IENISVBfQk9OQUlSRSkgewogCQlhZGV2LT5ybW1pb19iYXNlID0g cGNpX3Jlc291cmNlX3N0YXJ0KGFkZXYtPnBkZXYsIDUpOwogCQlhZGV2LT5ybW1pb19zaXplID0g cGNpX3Jlc291cmNlX2xlbihhZGV2LT5wZGV2LCA1KTsKIAl9IGVsc2UgewogCQlhZGV2LT5ybW1p b19iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KGFkZXYtPnBkZXYsIDIpOwogCQlhZGV2LT5ybW1p b19zaXplID0gcGNpX3Jlc291cmNlX2xlbihhZGV2LT5wZGV2LCAyKTsKIAl9CiAKIAlhZGV2LT5y bW1pbyA9IGlvcmVtYXAoYWRldi0+cm1taW9fYmFzZSwgYWRldi0+cm1taW9fc2l6ZSk7CiAJaWYg KGFkZXYtPnJtbWlvID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9xdWV1ZV9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9xdWV1ZV9tZ3IuYwppbmRleCAzZTlhYzgwLi4wNTRkNzUwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcXVldWVfbWdyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3F1ZXVlX21nci5jCkBAIC04NCwyMCArODQsNTQgQEAg c3RhdGljIGludCBhbWRncHVfaWRlbnRpdHlfbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCQlicmVhazsKIAlkZWZhdWx0OgogCQkqb3V0X3JpbmcgPSBOVUxMOwogCQlEUk1fRVJST1Io InVua25vd24gSFcgSVAgdHlwZTogJWRcbiIsIG1hcHBlci0+aHdfaXApOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKIAlyZXR1cm4gYW1kZ3B1X3VwZGF0ZV9jYWNoZWRfbWFwKG1hcHBlciwgcmlu ZywgKm91dF9yaW5nKTsKIH0KIAorc3RhdGljIGVudW0gYW1kZ3B1X3JpbmdfdHlwZSBhbWRncHVf aHdfaXBfdG9fcmluZ190eXBlKGludCBod19pcCkKK3sKKwlzd2l0Y2ggKGh3X2lwKSB7CisJY2Fz ZSBBTURHUFVfSFdfSVBfR0ZYOgorCQlyZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9HRlg7CisJY2Fz ZSBBTURHUFVfSFdfSVBfQ09NUFVURToKKwkJcmV0dXJuIEFNREdQVV9SSU5HX1RZUEVfQ09NUFVU RTsKKwljYXNlIEFNREdQVV9IV19JUF9ETUE6CisJCXJldHVybiBBTURHUFVfUklOR19UWVBFX1NE TUE7CisJY2FzZSBBTURHUFVfSFdfSVBfVVZEOgorCQlyZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9V VkQ7CisJY2FzZSBBTURHUFVfSFdfSVBfVkNFOgorCQlyZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9W Q0U7CisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIEhXIElQIHNwZWNpZmllZCAlZFxu IiwgaHdfaXApOworCQlyZXR1cm4gLTE7CisJfQorfQorCitzdGF0aWMgaW50IGFtZGdwdV9scnVf bWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICBzdHJ1Y3QgYW1kZ3B1X3F1ZXVl X21hcHBlciAqbWFwcGVyLAorCQkJICBpbnQgdXNlcl9yaW5nLAorCQkJICBzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKipvdXRfcmluZykKK3sKKwlpbnQgcjsKKwlpbnQgcmluZ190eXBlID0gYW1kZ3B1X2h3 X2lwX3RvX3JpbmdfdHlwZShtYXBwZXItPmh3X2lwKTsKKworCXIgPSBhbWRncHVfcmluZ19scnVf Z2V0KGFkZXYsIHJpbmdfdHlwZSwgb3V0X3JpbmcpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKwor CXJldHVybiBhbWRncHVfdXBkYXRlX2NhY2hlZF9tYXAobWFwcGVyLCB1c2VyX3JpbmcsICpvdXRf cmluZyk7Cit9CisKIC8qKgogICogYW1kZ3B1X3F1ZXVlX21ncl9pbml0IC0gaW5pdCBhbiBhbWRn cHVfcXVldWVfbWdyIHN0cnVjdAogICoKICAqIEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXIK ICAqIEBtZ3I6IGFtZGdwdV9xdWV1ZV9tZ3Igc3RydWN0dXJlIGhvbGRpbmcgcXVldWUgaW5mb3Jt YXRpb24KICAqCiAgKiBJbml0aWFsaXplIHRoZSB0aGUgc2VsZWN0ZWQgQG1nciAoYWxsIGFzaWNz KS4KICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJyb3Igb24gZmFpbHVyZS4KICAqLwpA QCAtMjA1LDI2ICsyMzksMjggQEAgaW50IGFtZGdwdV9xdWV1ZV9tZ3JfbWFwKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCiAJKm91dF9yaW5nID0gYW1kZ3B1X2dldF9jYWNoZWRfbWFwKG1h cHBlciwgcmluZyk7CiAJaWYgKCpvdXRfcmluZykgewogCQkvKiBjYWNoZSBoaXQgKi8KIAkJciA9 IDA7CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKIAlzd2l0Y2ggKG1hcHBlci0+aHdfaXApIHsK IAljYXNlIEFNREdQVV9IV19JUF9HRlg6Ci0JY2FzZSBBTURHUFVfSFdfSVBfQ09NUFVURToKIAlj YXNlIEFNREdQVV9IV19JUF9ETUE6CiAJY2FzZSBBTURHUFVfSFdfSVBfVVZEOgogCWNhc2UgQU1E R1BVX0hXX0lQX1ZDRToKIAkJciA9IGFtZGdwdV9pZGVudGl0eV9tYXAoYWRldiwgbWFwcGVyLCBy aW5nLCBvdXRfcmluZyk7CiAJCWJyZWFrOworCWNhc2UgQU1ER1BVX0hXX0lQX0NPTVBVVEU6CisJ CXIgPSBhbWRncHVfbHJ1X21hcChhZGV2LCBtYXBwZXIsIHJpbmcsIG91dF9yaW5nKTsKKwkJYnJl YWs7CiAJZGVmYXVsdDoKIAkJKm91dF9yaW5nID0gTlVMTDsKIAkJciA9IC1FSU5WQUw7CiAJCURS TV9FUlJPUigidW5rbm93biBIVyBJUCB0eXBlOiAlZFxuIiwgbWFwcGVyLT5od19pcCk7CiAJfQog CiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygmbWFwcGVyLT5sb2NrKTsKIAlyZXR1cm4gcjsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5jCmluZGV4IDEyZmM4MTUu LjJiNDUyYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9y aW5nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuYwpAQCAt MTczLDIwICsxNzMsMjIgQEAgdm9pZCBhbWRncHVfcmluZ19jb21taXQoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nKQogCWNvdW50ID0gcmluZy0+ZnVuY3MtPmFsaWduX21hc2sgKyAxIC0KIAkJKHJp bmctPndwdHIgJiByaW5nLT5mdW5jcy0+YWxpZ25fbWFzayk7CiAJY291bnQgJT0gcmluZy0+ZnVu Y3MtPmFsaWduX21hc2sgKyAxOwogCXJpbmctPmZ1bmNzLT5pbnNlcnRfbm9wKHJpbmcsIGNvdW50 KTsKIAogCW1iKCk7CiAJYW1kZ3B1X3Jpbmdfc2V0X3dwdHIocmluZyk7CiAKIAlpZiAocmluZy0+ ZnVuY3MtPmVuZF91c2UpCiAJCXJpbmctPmZ1bmNzLT5lbmRfdXNlKHJpbmcpOworCisJYW1kZ3B1 X3JpbmdfbHJ1X3RvdWNoKHJpbmctPmFkZXYsIHJpbmcpOwogfQogCiAvKioKICAqIGFtZGdwdV9y aW5nX3VuZG8gLSByZXNldCB0aGUgd3B0cgogICoKICAqIEByaW5nOiBhbWRncHVfcmluZyBzdHJ1 Y3R1cmUgaG9sZGluZyByaW5nIGluZm9ybWF0aW9uCiAgKgogICogUmVzZXQgdGhlIGRyaXZlcidz IGNvcHkgb2YgdGhlIHdwdHIgKGFsbCBhc2ljcykuCiAgKi8KIHZvaWQgYW1kZ3B1X3JpbmdfdW5k byhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCkBAIC0yOTEsMjAgKzI5MywyMiBAQCBpbnQgYW1k Z3B1X3JpbmdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAogCQkJCQkgICAgJnJpbmctPmdwdV9hZGRyLAogCQkJCQkgICAgKHZvaWQgKiop JnJpbmctPnJpbmcpOwogCQlpZiAocikgewogCQkJZGV2X2VycihhZGV2LT5kZXYsICIoJWQpIHJp bmcgY3JlYXRlIGZhaWxlZFxuIiwgcik7CiAJCQlyZXR1cm4gcjsKIAkJfQogCQlhbWRncHVfcmlu Z19jbGVhcl9yaW5nKHJpbmcpOwogCX0KIAogCXJpbmctPm1heF9kdyA9IG1heF9kdzsKKwlJTklU X0xJU1RfSEVBRCgmcmluZy0+bHJ1X2xpc3QpOworCWFtZGdwdV9yaW5nX2xydV90b3VjaChhZGV2 LCByaW5nKTsKIAogCWlmIChhbWRncHVfZGVidWdmc19yaW5nX2luaXQoYWRldiwgcmluZykpIHsK IAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVnaXN0ZXIgZGVidWdmcyBmaWxlIGZvciByaW5ncyAh XG4iKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIC8qKgogICogYW1kZ3B1X3JpbmdfZmluaSAtIHRl YXIgZG93biB0aGUgZHJpdmVyIHJpbmcgc3RydWN0LgogICoKQEAgLTMzMiwyMCArMzM2LDc5IEBA IHZvaWQgYW1kZ3B1X3JpbmdfZmluaShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAKIAlhbWRn cHVfYm9fZnJlZV9rZXJuZWwoJnJpbmctPnJpbmdfb2JqLAogCQkJICAgICAgJnJpbmctPmdwdV9h ZGRyLAogCQkJICAgICAgKHZvaWQgKiopJnJpbmctPnJpbmcpOwogCiAJYW1kZ3B1X2RlYnVnZnNf cmluZ19maW5pKHJpbmcpOwogCiAJcmluZy0+YWRldi0+cmluZ3NbcmluZy0+aWR4XSA9IE5VTEw7 CiB9CiAKK3N0YXRpYyB2b2lkIGFtZGdwdV9yaW5nX2xydV90b3VjaF9sb2NrZWQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCit7CisJ LyogbGlzdF9tb3ZlX3RhaWwgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSByaW5nIGlzbid0IHBhcnQg b2YgdGhlIGxpc3QgKi8KKwlsaXN0X21vdmVfdGFpbCgmcmluZy0+bHJ1X2xpc3QsICZhZGV2LT5y aW5nX2xydV9saXN0KTsKK30KKworLyoqCisgKiBhbWRncHVfcmluZ19scnVfZ2V0IC0gZ2V0IHRo ZSBsZWFzdCByZWNlbnRseSB1c2VkIHJpbmcgZm9yIGEgSFcgSVAgYmxvY2sKKyAqCisgKiBAYWRl djogYW1kZ3B1X2RldmljZSBwb2ludGVyCisgKiBAdHlwZTogYW1kZ3B1X3JpbmdfdHlwZSBlbnVt CisgKiBAcmluZzogb3V0cHV0IHJpbmcKKyAqCisgKiBSZXRyaWV2ZSB0aGUgYW1kZ3B1X3Jpbmcg c3RydWN0dXJlIGZvciB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCByaW5nIG9mCisgKiBhIHNwZWNp ZmljIElQIGJsb2NrIChhbGwgYXNpY3MpLgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGVycm9y IG9uIGZhaWx1cmUuCisgKi8KK2ludCBhbWRncHVfcmluZ19scnVfZ2V0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBpbnQgdHlwZSwKKwkJCXN0cnVjdCBhbWRncHVfcmluZyAqKnJpbmcpCit7 CisJc3RydWN0IGFtZGdwdV9yaW5nICplbnRyeTsKKworCS8qIExpc3QgaXMgc29ydGVkIGluIExS VSBvcmRlciwgZmluZCBmaXJzdCBlbnRyeSBjb3JyZXNwb25kaW5nCisJICogdG8gdGhlIGRlc2ly ZWQgSFcgSVAgKi8KKwkqcmluZyA9IE5VTEw7CisJc3Bpbl9sb2NrKCZhZGV2LT5yaW5nX2xydV9s aXN0X2xvY2spOworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZhZGV2LT5yaW5nX2xydV9s aXN0LCBscnVfbGlzdCkgeworCQlpZiAoZW50cnktPmZ1bmNzLT50eXBlID09IHR5cGUpIHsKKwkJ CSpyaW5nID0gZW50cnk7CisJCQlhbWRncHVfcmluZ19scnVfdG91Y2hfbG9ja2VkKGFkZXYsICpy aW5nKTsKKwkJCWJyZWFrOworCQl9CisJfQorCXNwaW5fdW5sb2NrKCZhZGV2LT5yaW5nX2xydV9s aXN0X2xvY2spOworCisJaWYgKCEqcmluZykgeworCQlEUk1fRVJST1IoIlJpbmcgTFJVIGNvbnRh aW5zIG5vIGVudHJpZXMgZm9yIHJpbmcgdHlwZTolZFxuIiwgdHlwZSk7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCXJldHVybiAwOworfQorCisvKioKKyAqIGFtZGdwdV9yaW5nX2xydV90b3Vj aCAtIG1hcmsgYSByaW5nIGFzIHJlY2VudGx5IGJlaW5nIHVzZWQKKyAqCisgKiBAYWRldjogYW1k Z3B1X2RldmljZSBwb2ludGVyCisgKiBAcmluZzogcmluZyB0byB0b3VjaAorICoKKyAqIE1vdmUg QHJpbmcgdG8gdGhlIHRhaWwgb2YgdGhlIGxydSBsaXN0CisgKi8KK3ZvaWQgYW1kZ3B1X3Jpbmdf bHJ1X3RvdWNoKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpCit7CisJc3Bpbl9sb2NrKCZhZGV2LT5yaW5nX2xydV9saXN0X2xvY2spOworCWFtZGdw dV9yaW5nX2xydV90b3VjaF9sb2NrZWQoYWRldiwgcmluZyk7CisJc3Bpbl91bmxvY2soJmFkZXYt PnJpbmdfbHJ1X2xpc3RfbG9jayk7Cit9CisKIC8qCiAgKiBEZWJ1Z2ZzIGluZm8KICAqLwogI2lm IGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQogCiAvKiBMYXlvdXQgb2YgZmlsZSBpcyAxMiBieXRl cyBjb25zaXN0aW5nIG9mCiAgKiAtIHJwdHIKICAqIC0gd3B0cgogICogLSBkcml2ZXIncyBjb3B5 IG9mIHdwdHIKICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcmluZy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaAppbmRl eCBjZjQxMWY3Li40MWFiNzY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcmluZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9y aW5nLmgKQEAgLTE0MSwyMCArMTQxLDIxIEBAIHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB7CiAJ dm9pZCAoKmVtaXRfY250eGNudGwpIChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90 IGZsYWdzKTsKIAl2b2lkICgqZW1pdF9ycmVnKShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVp bnQzMl90IHJlZyk7CiAJdm9pZCAoKmVtaXRfd3JlZykoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7CiB9OwogCiBzdHJ1Y3QgYW1kZ3B1X3Jpbmcg ewogCXN0cnVjdCBhbWRncHVfZGV2aWNlCQkqYWRldjsKIAljb25zdCBzdHJ1Y3QgYW1kZ3B1X3Jp bmdfZnVuY3MJKmZ1bmNzOwogCXN0cnVjdCBhbWRncHVfZmVuY2VfZHJpdmVyCWZlbmNlX2RydjsK IAlzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIJc2NoZWQ7CisJc3RydWN0IGxpc3RfaGVhZAkJbHJ1 X2xpc3Q7CiAKIAlzdHJ1Y3QgYW1kZ3B1X2JvCSpyaW5nX29iajsKIAl2b2xhdGlsZSB1aW50MzJf dAkqcmluZzsKIAl1bnNpZ25lZAkJcnB0cl9vZmZzOwogCXU2NAkJCXdwdHI7CiAJdTY0CQkJd3B0 cl9vbGQ7CiAJdW5zaWduZWQJCXJpbmdfc2l6ZTsKIAl1bnNpZ25lZAkJbWF4X2R3OwogCWludAkJ CWNvdW50X2R3OwogCXVpbnQ2NF90CQlncHVfYWRkcjsKQEAgLTE4NywxOSArMTg4LDIyIEBAIGlu dCBhbWRncHVfcmluZ19pc192YWxpZF9pbmRleChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK IAkJCSAgICAgICBpbnQgaHdfaXAsIGludCByaW5nKTsKIGludCBhbWRncHVfcmluZ19hbGxvYyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG5kdyk7CiB2b2lkIGFtZGdwdV9yaW5n X2luc2VydF9ub3Aoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCk7CiB2 b2lkIGFtZGdwdV9yaW5nX2dlbmVyaWNfcGFkX2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg c3RydWN0IGFtZGdwdV9pYiAqaWIpOwogdm9pZCBhbWRncHVfcmluZ19jb21taXQoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nKTsKIHZvaWQgYW1kZ3B1X3JpbmdfdW5kbyhzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcpOwogaW50IGFtZGdwdV9yaW5nX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAkJICAgICB1bnNpZ25lZCByaW5nX3NpemUs IHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqaXJxX3NyYywKIAkJICAgICB1bnNpZ25lZCBpcnFfdHlw ZSk7CiB2b2lkIGFtZGdwdV9yaW5nX2Zpbmkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKK2lu dCBhbWRncHVfcmluZ19scnVfZ2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgaHdf aXAsCisJCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKipyaW5nKTsKK3ZvaWQgYW1kZ3B1X3JpbmdfbHJ1 X3RvdWNoKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcpOwogc3RhdGljIGlubGluZSB2b2lkIGFtZGdwdV9yaW5nX2NsZWFyX3Jpbmcoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nKQogewogCWludCBpID0gMDsKIAl3aGlsZSAoaSA8PSByaW5nLT5idWZf bWFzaykKIAkJcmluZy0+cmluZ1tpKytdID0gcmluZy0+ZnVuY3MtPm5vcDsKIAogfQogCiAjZW5k aWYKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK