From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenny Ho Subject: [PATCH RFC v4 03/16] drm, cgroup: Initialize drmcg properties Date: Thu, 29 Aug 2019 02:05:20 -0400 Message-ID: <20190829060533.32315-4-Kenny.Ho@amd.com> References: <20190829060533.32315-1-Kenny.Ho@amd.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190829060533.32315-1-Kenny.Ho@amd.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Content-Type: text/plain; charset="us-ascii" To: y2kenny@gmail.com, cgroups@vger.kernel.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, tj@kernel.org, alexander.deucher@amd.com, christian.koenig@amd.com, felix.kuehling@amd.com, joseph.greathouse@amd.com, jsparks@cray.com, lkaplan@cray.com, daniel@ffwll.ch Cc: Kenny Ho ZHJtY2cgaW5pdGlhbGl6YXRpb24gaW52b2x2ZXMgYWxsb2NhdGluZyBhIHBlciBjZ3JvdXAsIHBl ciBkZXZpY2UgZGF0YQpzdHJ1Y3R1cmUgYW5kIHNldHRpbmcgdGhlIGRlZmF1bHRzLiAgVGhlcmUg YXJlIHR3byBlbnRyeSBwb2ludHMgZm9yCmRybWNnIGluaXQ6CgoxKSBXaGVuIHN0cnVjdCBkcm1j ZyBpcyBjcmVhdGVkIHZpYSBjc3NfYWxsb2MsIGluaXRpYWxpemF0aW9uIGlzIGRvbmUKZm9yIGVh Y2ggZGV2aWNlCgoyKSBXaGVuIERSTSBkZXZpY2VzIGFyZSBjcmVhdGVkIGFmdGVyIGRybWNncyBh cmUgY3JlYXRlZAogIGEpIFBlciBkZXZpY2UgZHJtY2cgZGF0YSBzdHJ1Y3R1cmUgaXMgYWxsb2Nh dGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YKICBEUk0gZGV2aWNlIGNyZWF0aW9uIHN1Y2ggdGhhdCBk cm1jZyBjYW4gYmVnaW4gdHJhY2tpbmcgdXNhZ2UKICBzdGF0aXN0aWNzCiAgYikgQXQgdGhlIGVu ZCBvZiBEUk0gZGV2aWNlIGNyZWF0aW9uLCBkcm1jZ19kZXZpY2VfdXBkYXRlIGlzIGNhbGxlZCBp bgogIGNhc2UgZGV2aWNlIHNwZWNpZmljIGRlZmF1bHRzIG5lZWQgdG8gYmUgYXBwbGllZC4KCkVu dHJ5IHBvaW50ICMyIHVzdWFsbHkgYXBwbGllcyB0byB0aGUgcm9vdCBjZ3JvdXAgc2luY2UgaXQg Y2FuIGJlCmNyZWF0ZWQgYmVmb3JlIERSTSBkZXZpY2VzIGFyZSBhdmFpbGFibGUuICBUaGUgZHJt Y2cgY29udHJvbGxlciB3aWxsIGdvCnRocm91Z2ggYWxsIGV4aXN0aW5nIGRybSBjZ3JvdXBzIGFu ZCBpbml0aWFsaXplIHRoZW0gd2l0aCB0aGUgbmV3IGRldmljZQphY2NvcmRpbmdseS4KCkNoYW5n ZS1JZDogSTkwOGVlNjk3NWVhMDU4NWU0YzMwZWFmZGU0NTk5Zjg3MDk0ZDhjNjUKU2lnbmVkLW9m Zi1ieTogS2VubnkgSG8gPEtlbm55LkhvQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9kcnYuYyAgfCAgIDcgKysrCiBpbmNsdWRlL2RybS9kcm1fY2dyb3VwLmggICB8ICAyNyArKysr KysrKwogaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oICAgfCAgIDcgKysrCiBpbmNsdWRlL2RybS9k cm1fZHJ2LmggICAgICB8ICAgOSArKysKIGluY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oIHwgIDEz ICsrKysKIGtlcm5lbC9jZ3JvdXAvZHJtLmMgICAgICAgIHwgMTIzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fY2dyb3VwLmgKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwpp bmRleCAwMDBjZGRhYmQ5NzAuLjk0MjY1ZWJhNjhjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCkBAIC0zNyw2ICsz Nyw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Ry di5oPgogI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jZ3JvdXAuaD4K IAogI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZHJtX2xlZ2FjeS5o IgpAQCAtNjcyLDYgKzY3Myw3IEBAIGludCBkcm1fZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAltdXRleF9pbml0KCZkZXYtPmZpbGVsaXN0X211dGV4KTsKIAltdXRleF9pbml0KCZk ZXYtPmNsaWVudGxpc3RfbXV0ZXgpOwogCW11dGV4X2luaXQoJmRldi0+bWFzdGVyX211dGV4KTsK KwltdXRleF9pbml0KCZkZXYtPmRybWNnX211dGV4KTsKIAogCWRldi0+YW5vbl9pbm9kZSA9IGRy bV9mc19pbm9kZV9uZXcoKTsKIAlpZiAoSVNfRVJSKGRldi0+YW5vbl9pbm9kZSkpIHsKQEAgLTcw OCw2ICs3MTAsNyBAQCBpbnQgZHJtX2Rldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ aWYgKHJldCkKIAkJZ290byBlcnJfc2V0dW5pcXVlOwogCisJZHJtY2dfZGV2aWNlX2Vhcmx5X2lu aXQoZGV2KTsKIAlyZXR1cm4gMDsKIAogZXJyX3NldHVuaXF1ZToKQEAgLTcyMiw2ICs3MjUsNyBA QCBpbnQgZHJtX2Rldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZHJtX2ZzX2lub2Rl X2ZyZWUoZGV2LT5hbm9uX2lub2RlKTsKIGVycl9mcmVlOgogCXB1dF9kZXZpY2UoZGV2LT5kZXYp OworCW11dGV4X2Rlc3Ryb3koJmRldi0+ZHJtY2dfbXV0ZXgpOwogCW11dGV4X2Rlc3Ryb3koJmRl di0+bWFzdGVyX211dGV4KTsKIAltdXRleF9kZXN0cm95KCZkZXYtPmNsaWVudGxpc3RfbXV0ZXgp OwogCW11dGV4X2Rlc3Ryb3koJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwpAQCAtNzk4LDYgKzgwMiw3 IEBAIHZvaWQgZHJtX2Rldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlwdXRfZGV2 aWNlKGRldi0+ZGV2KTsKIAorCW11dGV4X2Rlc3Ryb3koJmRldi0+ZHJtY2dfbXV0ZXgpOwogCW11 dGV4X2Rlc3Ryb3koJmRldi0+bWFzdGVyX211dGV4KTsKIAltdXRleF9kZXN0cm95KCZkZXYtPmNs aWVudGxpc3RfbXV0ZXgpOwogCW11dGV4X2Rlc3Ryb3koJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwpA QCAtMTAwOCw2ICsxMDEzLDggQEAgaW50IGRybV9kZXZfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAkJIGRldi0+ZGV2ID8gZGV2X25hbWUoZGV2 LT5kZXYpIDogInZpcnR1YWwgZGV2aWNlIiwKIAkJIGRldi0+cHJpbWFyeS0+aW5kZXgpOwogCisJ ZHJtY2dfZGV2aWNlX3VwZGF0ZShkZXYpOworCiAJZ290byBvdXRfdW5sb2NrOwogCiBlcnJfbWlu b3JzOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oIGIvaW5jbHVkZS9kcm0v ZHJtX2Nncm91cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmVm OWY5MjQ1OTI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oCkBA IC0wLDAgKzEsMjcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqIENvcHly aWdodCAyMDE5IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqLworI2lmbmRlZiBfX0RS TV9DR1JPVVBfSF9fCisjZGVmaW5lIF9fRFJNX0NHUk9VUF9IX18KKworLyoqCisgKiBQZXIgRFJN IGRldmljZSBwcm9wZXJ0aWVzIGZvciBEUk0gY2dyb3VwIGNvbnRyb2xsZXIgZm9yIHRoZSBwdXJw b3NlCisgKiBvZiBzdG9yaW5nIHBlciBkZXZpY2UgZGVmYXVsdHMKKyAqLworc3RydWN0IGRybWNn X3Byb3BzIHsKK307CisKKyNpZmRlZiBDT05GSUdfQ0dST1VQX0RSTQorCit2b2lkIGRybWNnX2Rl dmljZV91cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldmljZSk7Cit2b2lkIGRybWNnX2Rldmlj ZV9lYXJseV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXZpY2UpOworI2Vsc2UKK3N0YXRpYyBp bmxpbmUgdm9pZCBkcm1jZ19kZXZpY2VfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXZpY2Up Cit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1jZ19kZXZpY2VfZWFybHlfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2aWNlKQoreworfQorI2VuZGlmIC8qIENPTkZJR19DR1JPVVBfRFJN ICovCisjZW5kaWYgLyogX19EUk1fQ0dST1VQX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2RldmljZS5oIGIvaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oCmluZGV4IDdmOWVmNzA5 YjJiNi4uNWQ3ZDc3OWE1MDgzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZGV2aWNlLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oCkBAIC04LDYgKzgsNyBAQAogCiAjaW5jbHVk ZSA8ZHJtL2RybV9oYXNodGFiLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2RlX2NvbmZpZy5oPgor I2luY2x1ZGUgPGRybS9kcm1fY2dyb3VwLmg+CiAKIHN0cnVjdCBkcm1fZHJpdmVyOwogc3RydWN0 IGRybV9taW5vcjsKQEAgLTMwNCw2ICszMDUsMTIgQEAgc3RydWN0IGRybV9kZXZpY2UgewogCSAq LwogCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXI7CiAKKyAgICAgICAgLyoqIFxuYW1l IERSTSBDZ3JvdXAgKi8KKwkvKkB7ICovCisJc3RydWN0IG11dGV4IGRybWNnX211dGV4OworCXN0 cnVjdCBkcm1jZ19wcm9wcyBkcm1jZ19wcm9wczsKKwkvKkB9ICovCisKIAkvKiBFdmVyeXRoaW5n IGJlbG93IGhlcmUgaXMgZm9yIGxlZ2FjeSBkcml2ZXIsIG5ldmVyIHVzZSEgKi8KIAkvKiBwcml2 YXRlOiAqLwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9MRUdBQ1kpCmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fZHJ2LmggYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKaW5kZXggMjRmOGQw NTRjNTcwLi5jOGEzN2EwOGQ5OGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKQEAgLTY2MCw2ICs2NjAsMTUgQEAgc3RydWN0IGRy bV9kcml2ZXIgewogCQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgdWludDMy X3QgaGFuZGxlKTsKIAorCS8qKgorCSAqIEBkcm1jZ19jdXN0b21faW5pdAorCSAqCisJICogT3B0 aW9uYWwgY2FsbGJhY2sgdXNlZCB0byBpbml0aWFsaXplIGRybSBjZ3JvdXAgcGVyIGRldmljZSBw cm9wZXJ0aWVzCisJICogc3VjaCBhcyByZXNvdXJjZSBsaW1pdCBkZWZhdWx0cy4KKwkgKi8KKwl2 b2lkICgqZHJtY2dfY3VzdG9tX2luaXQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQlzdHJ1 Y3QgZHJtY2dfcHJvcHMgKnByb3BzKTsKKwogCS8qKgogCSAqIEBnZW1fdm1fb3BzOiBEcml2ZXIg cHJpdmF0ZSBvcHMgZm9yIHRoaXMgb2JqZWN0CiAJICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2Nncm91cF9kcm0uaCBiL2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oCmluZGV4IDk3MTE2 NmY5ZGQ3OC4uNGVjZDQ0ZjJhYzI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nncm91cF9k cm0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaApAQCAtNiwxMyArNiwyNiBAQAog CiAjaWZkZWYgQ09ORklHX0NHUk9VUF9EUk0KIAorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAj aW5jbHVkZSA8bGludXgvY2dyb3VwLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisKKy8q IGxpbWl0IGRlZmluZWQgcGVyIHRoZSB3YXkgZHJtX21pbm9yX2FsbG9jIG9wZXJhdGVzICovCisj ZGVmaW5lIE1BWF9EUk1fREVWICg2NCAqIERSTV9NSU5PUl9SRU5ERVIpCisKKy8qKgorICogUGVy IERSTSBjZ3JvdXAsIHBlciBkZXZpY2UgcmVzb3VyY2VzIChzdWNoIGFzIHN0YXRpc3RpY3MgYW5k IGxpbWl0cykKKyAqLworc3RydWN0IGRybWNnX2RldmljZV9yZXNvdXJjZSB7CisJLyogZm9yIHBl ciBkZXZpY2Ugc3RhdHMgKi8KK307CiAKIC8qKgogICogVGhlIERSTSBjZ3JvdXAgY29udHJvbGxl ciBkYXRhIHN0cnVjdHVyZS4KICAqLwogc3RydWN0IGRybWNnIHsKIAlzdHJ1Y3QgY2dyb3VwX3N1 YnN5c19zdGF0ZQljc3M7CisJc3RydWN0IGRybWNnX2RldmljZV9yZXNvdXJjZQkqZGV2X3Jlc291 cmNlc1tNQVhfRFJNX0RFVl07CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAv ZHJtLmMgYi9rZXJuZWwvY2dyb3VwL2RybS5jCmluZGV4IGU5Nzg2MWIzY2IzMC4uMTM1ZmRjZGM0 YjUxIDEwMDY0NAotLS0gYS9rZXJuZWwvY2dyb3VwL2RybS5jCisrKyBiL2tlcm5lbC9jZ3JvdXAv ZHJtLmMKQEAgLTEsMjggKzEsMTAzIEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlU CiAvLyBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisjaW5jbHVk ZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxp bnV4L2Nncm91cC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2Vx X2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nncm91 cF9kcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Zp bGUuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNl Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jZ3JvdXAuaD4KKworLyogZ2xvYmFsIG11dGV4IGZvciBk cm1jZyBhY3Jvc3MgYWxsIGRldmljZXMgKi8KK3N0YXRpYyBERUZJTkVfTVVURVgoZHJtY2dfbXV0 ZXgpOwogCiBzdGF0aWMgc3RydWN0IGRybWNnICpyb290X2RybWNnIF9fcmVhZF9tb3N0bHk7CiAK K3N0YXRpYyBpbnQgZHJtY2dfY3NzX2ZyZWVfZm4oaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRh dGEpCit7CisJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBwdHI7CisJc3RydWN0IGRybWNnICpk cm1jZyA9IGRhdGE7CisKKwlpZiAobWlub3ItPnR5cGUgIT0gRFJNX01JTk9SX1BSSU1BUlkpCisJ CXJldHVybiAwOworCisJa2ZyZWUoZHJtY2ctPmRldl9yZXNvdXJjZXNbbWlub3ItPmluZGV4XSk7 CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgZHJtY2dfY3NzX2ZyZWUoc3RydWN0IGNn cm91cF9zdWJzeXNfc3RhdGUgKmNzcykKIHsKIAlzdHJ1Y3QgZHJtY2cgKmRybWNnID0gY3NzX3Rv X2RybWNnKGNzcyk7CiAKKwlkcm1fbWlub3JfZm9yX2VhY2goJmRybWNnX2Nzc19mcmVlX2ZuLCBk cm1jZyk7CisKIAlrZnJlZShkcm1jZyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGluaXRfZHJt Y2dfc2luZ2xlKHN0cnVjdCBkcm1jZyAqZHJtY2csIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7 CisJaW50IG1pbm9yID0gZGV2LT5wcmltYXJ5LT5pbmRleDsKKwlzdHJ1Y3QgZHJtY2dfZGV2aWNl X3Jlc291cmNlICpkZHIgPSBkcm1jZy0+ZGV2X3Jlc291cmNlc1ttaW5vcl07CisKKwlpZiAoZGRy ID09IE5VTEwpIHsKKwkJZGRyID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRybWNnX2RldmljZV9y ZXNvdXJjZSksCisJCQlHRlBfS0VSTkVMKTsKKworCQlpZiAoIWRkcikKKwkJCXJldHVybiAtRU5P TUVNOworCX0KKworCW11dGV4X2xvY2soJmRldi0+ZHJtY2dfbXV0ZXgpOworCWRybWNnLT5kZXZf cmVzb3VyY2VzW21pbm9yXSA9IGRkcjsKKworCS8qIHNldCBkZWZhdWx0cyBoZXJlICovCisKKwlt dXRleF91bmxvY2soJmRldi0+ZHJtY2dfbXV0ZXgpOworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGluaXRfZHJtY2dfZm4oaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCit7CisJc3Ry dWN0IGRybV9taW5vciAqbWlub3IgPSBwdHI7CisJc3RydWN0IGRybWNnICpkcm1jZyA9IGRhdGE7 CisKKwlpZiAobWlub3ItPnR5cGUgIT0gRFJNX01JTk9SX1BSSU1BUlkpCisJCXJldHVybiAwOwor CisJcmV0dXJuIGluaXRfZHJtY2dfc2luZ2xlKGRybWNnLCBtaW5vci0+ZGV2KTsKK30KKworc3Rh dGljIGlubGluZSBpbnQgaW5pdF9kcm1jZyhzdHJ1Y3QgZHJtY2cgKmRybWNnLCBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQoreworCWlmIChkZXYgIT0gTlVMTCkKKwkJcmV0dXJuIGluaXRfZHJtY2df c2luZ2xlKGRybWNnLCBkZXYpOworCisJcmV0dXJuIGRybV9taW5vcl9mb3JfZWFjaCgmaW5pdF9k cm1jZ19mbiwgZHJtY2cpOworfQorCiBzdGF0aWMgc3RydWN0IGNncm91cF9zdWJzeXNfc3RhdGUg KgogZHJtY2dfY3NzX2FsbG9jKHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpwYXJlbnRfY3Nz KQogewogCXN0cnVjdCBkcm1jZyAqcGFyZW50ID0gY3NzX3RvX2RybWNnKHBhcmVudF9jc3MpOwog CXN0cnVjdCBkcm1jZyAqZHJtY2c7CisJaW50IHJjOwogCiAJZHJtY2cgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3QgZHJtY2cpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWRybWNnKQogCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKIAorCXJjID0gaW5pdF9kcm1jZyhkcm1jZywgTlVMTCk7CisJaWYgKHJj KSB7CisJCWRybWNnX2Nzc19mcmVlKCZkcm1jZy0+Y3NzKTsKKwkJcmV0dXJuIEVSUl9QVFIocmMp OworCX0KKwogCWlmICghcGFyZW50KQogCQlyb290X2RybWNnID0gZHJtY2c7CiAKQEAgLTQwLDMg KzExNSw1MSBAQCBzdHJ1Y3QgY2dyb3VwX3N1YnN5cyBkcm1fY2dycF9zdWJzeXMgPSB7CiAJLmxl Z2FjeV9jZnR5cGVzCT0gZmlsZXMsCiAJLmRmbF9jZnR5cGVzCT0gZmlsZXMsCiB9OworCitzdGF0 aWMgaW5saW5lIHZvaWQgZHJtY2dfdXBkYXRlX2NnX3RyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3sKKwkvKiBpbml0IGNncm91cHMgY3JlYXRlZCBiZWZvcmUgcmVnaXN0cmF0aW9uIChpLmUu IHJvb3QgY2dyb3VwKSAqLworCWlmIChyb290X2RybWNnICE9IE5VTEwpIHsKKwkJc3RydWN0IGNn cm91cF9zdWJzeXNfc3RhdGUgKnBvczsKKwkJc3RydWN0IGRybWNnICpjaGlsZDsKKworCQlyY3Vf cmVhZF9sb2NrKCk7CisJCWNzc19mb3JfZWFjaF9kZXNjZW5kYW50X3ByZShwb3MsICZyb290X2Ry bWNnLT5jc3MpIHsKKwkJCWNoaWxkID0gY3NzX3RvX2RybWNnKHBvcyk7CisJCQlpbml0X2RybWNn KGNoaWxkLCBkZXYpOworCQl9CisJCXJjdV9yZWFkX3VubG9jaygpOworCX0KK30KKworLyoqCisg KiBkcm1jZ19kZXZpY2VfdXBkYXRlIC0gdXBkYXRlIERSTSBjZ3JvdXBzIGRlZmF1bHRzCisgKiBA ZGV2OiB0aGUgdGFyZ2V0IERSTSBkZXZpY2UKKyAqCisgKiBJZiBAZGV2IGhhcyBhIGRybWNnX2N1 c3RvbV9pbml0IGZvciB0aGUgRFJNIGNncm91cCBjb250cm9sbGVyLCBpdCB3aWxsIGJlIGNhbGxl ZAorICogdG8gc2V0IGRldmljZSBzcGVjaWZpYyBkZWZhdWx0cyBhbmQgc2V0IHRoZSBpbml0aWFs IHZhbHVlcyBmb3IgYWxsIGV4aXN0aW5nCisgKiBjZ3JvdXBzIGNyZWF0ZWQgcHJpb3IgdG8gQGRl diBiZWNvbWUgYXZhaWxhYmxlLgorICovCit2b2lkIGRybWNnX2RldmljZV91cGRhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT5kcml2ZXItPmRybWNnX2N1c3RvbV9pbml0 KQorCXsKKwkJZGV2LT5kcml2ZXItPmRybWNnX2N1c3RvbV9pbml0KGRldiwgJmRldi0+ZHJtY2df cHJvcHMpOworCisJCWRybWNnX3VwZGF0ZV9jZ190cmVlKGRldik7CisJfQorfQorRVhQT1JUX1NZ TUJPTChkcm1jZ19kZXZpY2VfdXBkYXRlKTsKKworLyoqCisgKiBkcm1jZ19kZXZpY2VfZWFybHlf aW5pdCAtIGluaXRpYWxpemUgZGV2aWNlIHNwZWNpZmljIHJlc291cmNlcyBmb3IgRFJNIGNncm91 cHMKKyAqIEBkZXY6IHRoZSB0YXJnZXQgRFJNIGRldmljZQorICoKKyAqIEFsbG9jYXRlIGFuZCBp bml0aWFsaXplIGRldmljZSBzcGVjaWZpYyByZXNvdXJjZXMgZm9yIGV4aXN0aW5nIERSTSBjZ3Jv dXBzLgorICogVHlwaWNhbGx5IG9ubHkgdGhlIHJvb3QgY2dyb3VwIGV4aXN0cyBiZWZvcmUgdGhl IGluaXRpYWxpemF0aW9uIG9mIEBkZXYuCisgKi8KK3ZvaWQgZHJtY2dfZGV2aWNlX2Vhcmx5X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlkcm1jZ191cGRhdGVfY2dfdHJlZShkZXYp OworfQorRVhQT1JUX1NZTUJPTChkcm1jZ19kZXZpY2VfZWFybHlfaW5pdCk7Ci0tIAoyLjIyLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==