From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhao, Yong" Subject: [PATCH 4/6] drm/amdkfd: Use array to probe kfd2kgd_calls Date: Sat, 28 Sep 2019 03:41:46 +0000 Message-ID: <20190928034132.28340-4-Yong.Zhao@amd.com> References: <20190928034132.28340-1-Yong.Zhao@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190928034132.28340-1-Yong.Zhao-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: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Zhao, Yong" VGhpcyBpcyB0aGUgc2FtZSBpZGVhIGFzIHRoZSBrZmQgZGV2aWNlIGluZm8gcHJvYmUgYW5kIG1v dmUgYWxsIHRoZQpwcm9iZSBjb250cm9sIHRvZ2V0aGVyIGZvciBlYXN5IG1haW50ZW5hbmNlLgoK Q2hhbmdlLUlkOiBJODVjOThiYjA4ZWIyYTRhMWE4MGMzYjkxM2MzMjY5MWNjNzQ2MDJkMQpTaWdu ZWQtb2ZmLWJ5OiBZb25nIFpoYW8gPFlvbmcuWmhhb0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyAgICB8IDY1ICstLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaCAgICB8ICA3IC0t CiAuLi4vZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1cy5jICAgfCAgOCArLS0K IC4uLi9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92MTAuYyAgICB8ICA3ICstCiAu Li4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMgfCAgNyArLQogLi4u L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jIHwgIDcgKy0KIC4uLi9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyB8ICA3ICstCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgICAgICAgfCAzOSArKysrKysrKystLQog OCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxMDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCmluZGV4IDkyNjY2YjE5N2Y2 Yy4uOGM1MzE3OTNmZTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Ft ZGtmZC5jCkBAIC02Myw0NyArNjMsMTAgQEAgdm9pZCBhbWRncHVfYW1ka2ZkX2Zpbmkodm9pZCkK IAogdm9pZCBhbWRncHVfYW1ka2ZkX2RldmljZV9wcm9iZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIHsKLQljb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqa2ZkMmtnZDsKIAlib29sIHZm ID0gYW1kZ3B1X3NyaW92X3ZmKGFkZXYpOwogCi0Jc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsK LSNpZmRlZiBDT05GSUdfRFJNX0FNREdQVV9DSUsKLQljYXNlIENISVBfS0FWRVJJOgotCWNhc2Ug Q0hJUF9IQVdBSUk6Ci0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2ZkX2dmeF83X2dldF9mdW5jdGlv bnMoKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLQljYXNlIENISVBfQ0FSUklaTzoKLQljYXNlIENISVBf VE9OR0E6Ci0JY2FzZSBDSElQX0ZJSkk6Ci0JY2FzZSBDSElQX1BPTEFSSVMxMDoKLQljYXNlIENI SVBfUE9MQVJJUzExOgotCWNhc2UgQ0hJUF9QT0xBUklTMTI6Ci0JY2FzZSBDSElQX1ZFR0FNOgot CQlrZmQya2dkID0gYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dldF9mdW5jdGlvbnMoKTsKLQkJYnJl YWs7Ci0JY2FzZSBDSElQX1ZFR0ExMDoKLQljYXNlIENISVBfVkVHQTEyOgotCWNhc2UgQ0hJUF9W RUdBMjA6Ci0JY2FzZSBDSElQX1JBVkVOOgotCWNhc2UgQ0hJUF9SRU5PSVI6Ci0JCWtmZDJrZ2Qg PSBhbWRncHVfYW1ka2ZkX2dmeF85XzBfZ2V0X2Z1bmN0aW9ucygpOwotCQlicmVhazsKLQljYXNl IENISVBfQVJDVFVSVVM6Ci0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2ZkX2FyY3R1cnVzX2dldF9m dW5jdGlvbnMoKTsKLQkJYnJlYWs7Ci0JY2FzZSBDSElQX05BVkkxMDoKLQljYXNlIENISVBfTkFW STE0OgotCWNhc2UgQ0hJUF9OQVZJMTI6Ci0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2ZkX2dmeF8x MF8wX2dldF9mdW5jdGlvbnMoKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJZGV2X2luZm8oYWRl di0+ZGV2LCAia2ZkIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBBU0lDXG4iKTsKLQkJcmV0dXJuOwot CX0KLQogCWFkZXYtPmtmZC5kZXYgPSBrZ2Qya2ZkX3Byb2JlKChzdHJ1Y3Qga2dkX2RldiAqKWFk ZXYsCi0JCQkJICAgICAgYWRldi0+cGRldiwga2ZkMmtnZCwgYWRldi0+YXNpY190eXBlLCB2Zik7 CisJCQkJICAgICAgYWRldi0+cGRldiwgYWRldi0+YXNpY190eXBlLCB2Zik7CiAKIAlpZiAoYWRl di0+a2ZkLmRldikKIAkJYW1kZ3B1X2FtZGtmZF90b3RhbF9tZW1fc2l6ZSArPSBhZGV2LT5nbWMu cmVhbF92cmFtX3NpemU7CkBAIC03MTEsMzMgKzY3NCw3IEBAIGludCBhbWRncHVfYW1ka2ZkX2V2 aWN0X3VzZXJwdHIoc3RydWN0IGtnZF9tZW0gKm1lbSwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAJ cmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2dmeF83 X2dldF9mdW5jdGlvbnModm9pZCkKLXsKLQlyZXR1cm4gTlVMTDsKLX0KLQotc3RydWN0IGtmZDJr Z2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzhfMF9nZXRfZnVuY3Rpb25zKHZvaWQpCi17Ci0J cmV0dXJuIE5VTEw7Ci19Ci0KLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2dm eF85XzBfZ2V0X2Z1bmN0aW9ucyh2b2lkKQotewotCXJldHVybiBOVUxMOwotfQotCi1zdHJ1Y3Qg a2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1c19nZXRfZnVuY3Rpb25zKHZvaWQp Ci17Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1k a2ZkX2dmeF8xMF8wX2dldF9mdW5jdGlvbnModm9pZCkKLXsKLQlyZXR1cm4gTlVMTDsKLX0KLQog c3RydWN0IGtmZF9kZXYgKmtnZDJrZmRfcHJvYmUoc3RydWN0IGtnZF9kZXYgKmtnZCwgc3RydWN0 IHBjaV9kZXYgKnBkZXYsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqZjJn LAogCQkJICAgICAgdW5zaWduZWQgaW50IGFzaWNfdHlwZSwgYm9vbCB2ZikKIHsKIAlyZXR1cm4g TlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRr ZmQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaAppbmRleCA0 ZWIyZmI4NWRlMjYuLjA2OWQ1ZDIzMDgxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmQuaApAQCAtMTM3LDEyICsxMzcsNiBAQCBpbnQgYW1kZ3B1X2FtZGtmZF9z dWJtaXRfaWIoc3RydWN0IGtnZF9kZXYgKmtnZCwgZW51bSBrZ2RfZW5naW5lX3R5cGUgZW5naW5l LAogdm9pZCBhbWRncHVfYW1ka2ZkX3NldF9jb21wdXRlX2lkbGUoc3RydWN0IGtnZF9kZXYgKmtn ZCwgYm9vbCBpZGxlKTsKIGJvb2wgYW1kZ3B1X2FtZGtmZF9oYXZlX2F0b21pY3Nfc3VwcG9ydChz dHJ1Y3Qga2dkX2RldiAqa2dkKTsKIAotc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRr ZmRfZ2Z4XzdfZ2V0X2Z1bmN0aW9ucyh2b2lkKTsKLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRn cHVfYW1ka2ZkX2dmeF84XzBfZ2V0X2Z1bmN0aW9ucyh2b2lkKTsKLXN0cnVjdCBrZmQya2dkX2Nh bGxzICphbWRncHVfYW1ka2ZkX2dmeF85XzBfZ2V0X2Z1bmN0aW9ucyh2b2lkKTsKLXN0cnVjdCBr ZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2FyY3R1cnVzX2dldF9mdW5jdGlvbnModm9pZCk7 Ci1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfMTBfMF9nZXRfZnVuY3Rp b25zKHZvaWQpOwotCiBib29sIGFtZGdwdV9hbWRrZmRfaXNfa2ZkX3ZtaWQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHUzMiB2bWlkKTsKIAogaW50IGFtZGdwdV9hbWRrZmRfcHJlX3Jlc2V0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKQEAgLTI0OCw3ICsyNDIsNiBAQCB2b2lkIGFt ZGdwdV9hbWRrZmRfdW5yZXNlcnZlX21lbW9yeV9saW1pdChzdHJ1Y3QgYW1kZ3B1X2JvICpibyk7 CiBpbnQga2dkMmtmZF9pbml0KHZvaWQpOwogdm9pZCBrZ2Qya2ZkX2V4aXQodm9pZCk7CiBzdHJ1 Y3Qga2ZkX2RldiAqa2dkMmtmZF9wcm9iZShzdHJ1Y3Qga2dkX2RldiAqa2dkLCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICpmMmcsCiAJ CQkgICAgICB1bnNpZ25lZCBpbnQgYXNpY190eXBlLCBib29sIHZmKTsKIGJvb2wga2dkMmtmZF9k ZXZpY2VfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLAogCQkJIHN0cnVjdCBkcm1fZGV2aWNlICpk ZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtm ZF9hcmN0dXJ1cy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9h cmN0dXJ1cy5jCmluZGV4IDRhNDlkYmVlMjZhMS4uZTFmYmJlYmNlNGZkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9hcmN0dXJ1cy5jCkBAIC0y NjIsNyArMjYyLDcgQEAgc3RhdGljIGludCBrZ2RfaHFkX3NkbWFfZGVzdHJveShzdHJ1Y3Qga2dk X2RldiAqa2dkLCB2b2lkICptcWQsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1 Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0geworY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMg YXJjdHVydXNfa2ZkMmtnZCA9IHsKIAkucHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MgPSBrZ2RfZ2Z4 X3Y5X3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzLAogCS5zZXRfcGFzaWRfdm1pZF9tYXBwaW5nID0g a2dkX2dmeF92OV9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nLAogCS5pbml0X2ludGVycnVwdHMgPSBr Z2RfZ2Z4X3Y5X2luaXRfaW50ZXJydXB0cywKQEAgLTI4Niw5ICsyODYsMyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMga2ZkMmtnZCA9IHsKIAkuaW52YWxpZGF0ZV90bGJzX3Zt aWQgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxic192bWlkLAogCS5nZXRfaGl2ZV9pZCA9IGFt ZGdwdV9hbWRrZmRfZ2V0X2hpdmVfaWQsCiB9OwotCi1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1k Z3B1X2FtZGtmZF9hcmN0dXJ1c19nZXRfZnVuY3Rpb25zKHZvaWQpCi17Ci0JcmV0dXJuIChzdHJ1 Y3Qga2ZkMmtnZF9jYWxscyAqKSZrZmQya2dkOwotfQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92MTAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jCmluZGV4IGJlOWI4NzNlYzY4My4u YTAxNzA0YmM5MWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92MTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92MTAuYwpAQCAtODE1LDcgKzgxNSw3IEBAIHN0YXRpYyB2b2lkIHNldF92 bV9jb250ZXh0X3BhZ2VfdGFibGVfYmFzZShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2 bWlkLAogCWdmeGh1Yl92Ml8wX3NldHVwX3ZtX3B0X3JlZ3MoYWRldiwgdm1pZCwgcGFnZV90YWJs ZV9iYXNlKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2Qg PSB7CitzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBnZnhfdjEwX2tmZDJrZ2QgPSB7CiAJLnByb2dyYW1f c2hfbWVtX3NldHRpbmdzID0ga2dkX3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzLAogCS5zZXRfcGFz aWRfdm1pZF9tYXBwaW5nID0ga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcsCiAJLmluaXRfaW50 ZXJydXB0cyA9IGtnZF9pbml0X2ludGVycnVwdHMsCkBAIC04MzksOCArODM5LDMgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7CiAJLmludmFsaWRhdGVfdGxi c192bWlkID0gaW52YWxpZGF0ZV90bGJzX3ZtaWQsCiAJLmdldF9oaXZlX2lkID0gYW1kZ3B1X2Ft ZGtmZF9nZXRfaGl2ZV9pZCwKIH07Ci0KLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1k a2ZkX2dmeF8xMF8wX2dldF9mdW5jdGlvbnMoKQotewotCXJldHVybiAoc3RydWN0IGtmZDJrZ2Rf Y2FsbHMgKikma2ZkMmtnZDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkX2dmeF92Ny5jCmluZGV4IDljNGViY2FkYWQ2Mi4uMGI5Y2M2NTE1ZTY0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92 Ny5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3 LmMKQEAgLTc1MSw3ICs3NTEsNyBAQCBzdGF0aWMgdWludDMyX3QgcmVhZF92bWlkX2Zyb21fdm1m YXVsdF9yZWcoc3RydWN0IGtnZF9kZXYgKmtnZCkKIAlyZXR1cm4gUkVHX0dFVF9GSUVMRChzdGF0 dXMsIFZNX0NPTlRFWFQxX1BST1RFQ1RJT05fRkFVTFRfU1RBVFVTLCBWTUlEKTsKIH0KIAotc3Rh dGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7Citjb25zdCBzdHJ1Y3Qg a2ZkMmtnZF9jYWxscyBnZnhfdjdfa2ZkMmtnZCA9IHsKIAkucHJvZ3JhbV9zaF9tZW1fc2V0dGlu Z3MgPSBrZ2RfcHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MsCiAJLnNldF9wYXNpZF92bWlkX21hcHBp bmcgPSBrZ2Rfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZywKIAkuaW5pdF9pbnRlcnJ1cHRzID0ga2dk X2luaXRfaW50ZXJydXB0cywKQEAgLTc3NSw4ICs3NzUsMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGtmZDJrZ2RfY2FsbHMga2ZkMmtnZCA9IHsKIAkuaW52YWxpZGF0ZV90bGJzX3ZtaWQgPSBpbnZh bGlkYXRlX3RsYnNfdm1pZCwKIAkucmVhZF92bWlkX2Zyb21fdm1mYXVsdF9yZWcgPSByZWFkX3Zt aWRfZnJvbV92bWZhdWx0X3JlZywKIH07Ci0KLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVf YW1ka2ZkX2dmeF83X2dldF9mdW5jdGlvbnModm9pZCkKLXsKLQlyZXR1cm4gKHN0cnVjdCBrZmQy a2dkX2NhbGxzICopJmtmZDJrZ2Q7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjguYwppbmRleCBmMmU1MmI0OTYwNDQuLjM0MTZhN2YyN2Rj NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n ZnhfdjguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dm eF92OC5jCkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfdm1p ZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCB2bWlkKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMga2ZkMmtnZCA9IHsKK2NvbnN0IHN0cnVj dCBrZmQya2dkX2NhbGxzIGdmeF92OF9rZmQya2dkID0gewogCS5wcm9ncmFtX3NoX21lbV9zZXR0 aW5ncyA9IGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncywKIAkuc2V0X3Bhc2lkX3ZtaWRfbWFw cGluZyA9IGtnZF9zZXRfcGFzaWRfdm1pZF9tYXBwaW5nLAogCS5pbml0X2ludGVycnVwdHMgPSBr Z2RfaW5pdF9pbnRlcnJ1cHRzLApAQCAtNzIwLDggKzcyMCwzIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0gewogCS5pbnZhbGlkYXRlX3RsYnMgPSBpbnZhbGlk YXRlX3RsYnMsCiAJLmludmFsaWRhdGVfdGxic192bWlkID0gaW52YWxpZGF0ZV90bGJzX3ZtaWQs CiB9OwotCi1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dldF9m dW5jdGlvbnModm9pZCkKLXsKLQlyZXR1cm4gKHN0cnVjdCBrZmQya2dkX2NhbGxzICopJmtmZDJr Z2Q7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1k a2ZkX2dmeF92OS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n ZnhfdjkuYwppbmRleCAxMmYzMGRmMjE3NGMuLjgyZWQ5MzE2YjA5NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jCkBAIC03ODYsNyAr Nzg2LDcgQEAgdm9pZCBrZ2RfZ2Z4X3Y5X3NldF92bV9jb250ZXh0X3BhZ2VfdGFibGVfYmFzZShz dHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCB2bWkKIAlnZnhodWJfdjFfMF9zZXR1cF92bV9w dF9yZWdzKGFkZXYsIHZtaWQsIHBhZ2VfdGFibGVfYmFzZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBz dHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0geworY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2Fs bHMgZ2Z4X3Y5X2tmZDJrZ2QgPSB7CiAJLnByb2dyYW1fc2hfbWVtX3NldHRpbmdzID0ga2dkX2dm eF92OV9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncywKIAkuc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyA9 IGtnZF9nZnhfdjlfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZywKIAkuaW5pdF9pbnRlcnJ1cHRzID0g a2dkX2dmeF92OV9pbml0X2ludGVycnVwdHMsCkBAIC04MTAsOCArODEwLDMgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7CiAJLmludmFsaWRhdGVfdGxic192 bWlkID0ga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnNfdm1pZCwKIAkuZ2V0X2hpdmVfaWQgPSBh bWRncHVfYW1ka2ZkX2dldF9oaXZlX2lkLAogfTsKLQotc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFt ZGdwdV9hbWRrZmRfZ2Z4XzlfMF9nZXRfZnVuY3Rpb25zKHZvaWQpCi17Ci0JcmV0dXJuIChzdHJ1 Y3Qga2ZkMmtnZF9jYWxscyAqKSZrZmQya2dkOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX2RldmljZS5jCmluZGV4IDk2YTllMDY1M2RiMi4uMGRiMjczNTg3YWY0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCkBAIC0zOSw2ICszOSwzNSBAQAogICovCiBz dGF0aWMgYXRvbWljX3Qga2ZkX2xvY2tlZCA9IEFUT01JQ19JTklUKDApOwogCitleHRlcm4gY29u c3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMgZ2Z4X3Y3X2tmZDJrZ2Q7CitleHRlcm4gY29uc3Qgc3Ry dWN0IGtmZDJrZ2RfY2FsbHMgZ2Z4X3Y4X2tmZDJrZ2Q7CitleHRlcm4gY29uc3Qgc3RydWN0IGtm ZDJrZ2RfY2FsbHMgZ2Z4X3Y5X2tmZDJrZ2Q7CitleHRlcm4gY29uc3Qgc3RydWN0IGtmZDJrZ2Rf Y2FsbHMgYXJjdHVydXNfa2ZkMmtnZDsKK2V4dGVybiBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxs cyBnZnhfdjEwX2tmZDJrZ2Q7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAq a2ZkMmtnZF9mdW5jc1tdID0geworI2lmZGVmIEtGRF9TVVBQT1JUX0lPTU1VX1YyCisJW0NISVBf S0FWRVJJXSA9ICZnZnhfdjdfa2ZkMmtnZCwKKwlbQ0hJUF9DQVJSSVpPXSA9ICZnZnhfdjhfa2Zk MmtnZCwKKwlbQ0hJUF9SQVZFTl0gPSAmZ2Z4X3Y5X2tmZDJrZ2QsCisjZW5kaWYKKwlbQ0hJUF9I QVdBSUldID0gJmdmeF92N19rZmQya2dkLAorCVtDSElQX1RPTkdBXSA9ICZnZnhfdjhfa2ZkMmtn ZCwKKwlbQ0hJUF9GSUpJXSA9ICZnZnhfdjhfa2ZkMmtnZCwKKwlbQ0hJUF9QT0xBUklTMTBdID0g JmdmeF92OF9rZmQya2dkLAorCVtDSElQX1BPTEFSSVMxMV0gPSAmZ2Z4X3Y4X2tmZDJrZ2QsCisJ W0NISVBfUE9MQVJJUzEyXSA9ICZnZnhfdjhfa2ZkMmtnZCwKKwlbQ0hJUF9WRUdBTV0gPSAmZ2Z4 X3Y4X2tmZDJrZ2QsCisJW0NISVBfVkVHQTEwXSA9ICZnZnhfdjlfa2ZkMmtnZCwKKwlbQ0hJUF9W RUdBMTJdID0gJmdmeF92OV9rZmQya2dkLAorCVtDSElQX1ZFR0EyMF0gPSAmZ2Z4X3Y5X2tmZDJr Z2QsCisJW0NISVBfUkVOT0lSXSA9ICZnZnhfdjlfa2ZkMmtnZCwKKwlbQ0hJUF9BUkNUVVJVU10g PSAmYXJjdHVydXNfa2ZkMmtnZCwKKwlbQ0hJUF9OQVZJMTBdID0gJmdmeF92MTBfa2ZkMmtnZCwK KwlbQ0hJUF9OQVZJMTJdID0gJmdmeF92MTBfa2ZkMmtnZCwKKwlbQ0hJUF9OQVZJMTRdID0gJmdm eF92MTBfa2ZkMmtnZCwKK307CisKICNpZmRlZiBLRkRfU1VQUE9SVF9JT01NVV9WMgogc3RhdGlj IGNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2luZm8ga2F2ZXJpX2RldmljZV9pbmZvID0gewogCS5h c2ljX2ZhbWlseSA9IENISVBfS0FWRVJJLApAQCAtNDU0LDIwICs0ODMsMjIgQEAgc3RhdGljIHZv aWQga2ZkX2d0dF9zYV9maW5pKHN0cnVjdCBrZmRfZGV2ICprZmQpOwogc3RhdGljIGludCBrZmRf cmVzdW1lKHN0cnVjdCBrZmRfZGV2ICprZmQpOwogCiBzdHJ1Y3Qga2ZkX2RldiAqa2dkMmtmZF9w cm9iZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAotCXN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBz dHJ1Y3Qga2ZkMmtnZF9jYWxscyAqZjJnLAotCXVuc2lnbmVkIGludCBhc2ljX3R5cGUsIGJvb2wg dmYpCisJc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBhc2ljX3R5cGUsIGJvb2wg dmYpCiB7CiAJc3RydWN0IGtmZF9kZXYgKmtmZDsKIAljb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9p bmZvICpkZXZpY2VfaW5mbzsKKwljb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqZjJnOwogCi0J aWYgKGFzaWNfdHlwZSA+PSBzaXplb2Yoa2ZkX3N1cHBvcnRlZF9kZXZpY2VzKSAvIChzaXplb2Yo dm9pZCAqKSAqIDIpKSB7CisJaWYgKGFzaWNfdHlwZSA+PSBzaXplb2Yoa2ZkX3N1cHBvcnRlZF9k ZXZpY2VzKSAvIChzaXplb2Yodm9pZCAqKSAqIDIpCisJCXx8IGFzaWNfdHlwZSA+PSBzaXplb2Yo a2ZkMmtnZF9mdW5jcykgLyBzaXplb2Yodm9pZCAqKSkgewogCQlkZXZfZXJyKGtmZF9kZXZpY2Us ICJhc2ljX3R5cGUgJWQgb3V0IG9mIHJhbmdlXG4iLCBhc2ljX3R5cGUpOwogCQlyZXR1cm4gTlVM TDsgLyogYXNpY190eXBlIG91dCBvZiByYW5nZSAqLwogCX0KIAogCWRldmljZV9pbmZvID0ga2Zk X3N1cHBvcnRlZF9kZXZpY2VzW2FzaWNfdHlwZV1bdmZdOworCWYyZyA9IGtmZDJrZ2RfZnVuY3Nb YXNpY190eXBlXTsKIAotCWlmICghZGV2aWNlX2luZm8pIHsKKwlpZiAoIWRldmljZV9pbmZvICYm ICFmMmcpIHsKIAkJZGV2X2VycihrZmRfZGV2aWNlLCAiJXMgJXMgbm90IHN1cHBvcnRlZCBpbiBr ZmRcbiIsCiAJCQlhbWRncHVfYXNpY19uYW1lW2FzaWNfdHlwZV0sIHZmID8gIlZGIiA6ICIiKTsK IAkJcmV0dXJuIE5VTEw7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeA==