From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenny Ho Subject: [PATCH RFC v4 14/16] drm, cgroup: Introduce lgpu as DRM cgroup resource Date: Thu, 29 Aug 2019 02:05:31 -0400 Message-ID: <20190829060533.32315-15-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 ZHJtLmxncHUKICAgICAgICBBIHJlYWQtd3JpdGUgbmVzdGVkLWtleWVkIGZpbGUgd2hpY2ggZXhp c3RzIG9uIGFsbCBjZ3JvdXBzLgogICAgICAgIEVhY2ggZW50cnkgaXMga2V5ZWQgYnkgdGhlIERS TSBkZXZpY2UncyBtYWpvcjptaW5vci4KCiAgICAgICAgbGdwdSBzdGFuZHMgZm9yIGxvZ2ljYWwg R1BVLCBpdCBpcyBhbiBhYnN0cmFjdGlvbiB1c2VkIHRvCiAgICAgICAgc3ViZGl2aWRlIGEgcGh5 c2ljYWwgRFJNIGRldmljZSBmb3IgdGhlIHB1cnBvc2Ugb2YgcmVzb3VyY2UKICAgICAgICBtYW5h Z2VtZW50LgoKICAgICAgICBUaGUgbGdwdSBpcyBhIGRpc2NyZXRlIHF1YW50aXR5IHRoYXQgaXMg ZGV2aWNlIHNwZWNpZmljIChpLmUuCiAgICAgICAgc29tZSBEUk0gZGV2aWNlcyBtYXkgaGF2ZSA2 NCBsZ3B1cyB3aGlsZSBvdGhlcnMgbWF5IGhhdmUgMTAwCiAgICAgICAgbGdwdXMuKSAgVGhlIGxn cHUgaXMgYSBzaW5nbGUgcXVhbnRpdHkgd2l0aCB0d28gcmVwcmVzZW50YXRpb25zCiAgICAgICAg ZGVub3RlZCBieSB0aGUgZm9sbG93aW5nIG5lc3RlZCBrZXlzLgoKICAgICAgICAgID09PT09ICAg ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICBjb3Vu dCAgICAgUmVwcmVzZW50aW5nIGxncHUgYXMgYW5vbnltb3VzIHJlc291cmNlCiAgICAgICAgICBs aXN0ICAgICAgUmVwcmVzZW50aW5nIGxncHUgYXMgbmFtZWQgcmVzb3VyY2UKICAgICAgICAgID09 PT09ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAg IEZvciBleGFtcGxlOgogICAgICAgIDIyNjowIGNvdW50PTI1NiBsaXN0PTAtMjU1CiAgICAgICAg MjI2OjEgY291bnQ9NCBsaXN0PTAsMiw0LDYKICAgICAgICAyMjY6MiBjb3VudD0zMiBsaXN0PTMy LTYzCgogICAgICAgIGxncHUgaXMgcmVwcmVzZW50ZWQgYnkgYSBiaXRtYXAgYW5kIHVzZXMgdGhl IGJpdG1hcF9wYXJzZWxpc3QKICAgICAgICBrZXJuZWwgZnVuY3Rpb24gc28gdGhlIGxpc3Qga2V5 IGlucHV0IGZvcm1hdCBpcyBhCiAgICAgICAgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZGVjaW1h bCBudW1iZXJzIGFuZCByYW5nZXMuCgogICAgICAgIENvbnNlY3V0aXZlbHkgc2V0IGJpdHMgYXJl IHNob3duIGFzIHR3byBoeXBoZW4tc2VwYXJhdGVkIGRlY2ltYWwKICAgICAgICBudW1iZXJzLCB0 aGUgc21hbGxlc3QgYW5kIGxhcmdlc3QgYml0IG51bWJlcnMgc2V0IGluIHRoZSByYW5nZS4KICAg ICAgICBPcHRpb25hbGx5IGVhY2ggcmFuZ2UgY2FuIGJlIHBvc3RmaXhlZCB0byBkZW5vdGUgdGhh dCBvbmx5IHBhcnRzCiAgICAgICAgb2YgaXQgc2hvdWxkIGJlIHNldC4gIFRoZSByYW5nZSB3aWxs IGRpdmlkZWQgdG8gZ3JvdXBzIG9mCiAgICAgICAgc3BlY2lmaWMgc2l6ZS4KICAgICAgICBTeW50 YXg6IHJhbmdlOnVzZWRfc2l6ZS9ncm91cF9zaXplCiAgICAgICAgRXhhbXBsZTogMC0xMDIzOjIv MjU2ID09PiAwLDEsMjU2LDI1Nyw1MTIsNTEzLDc2OCw3NjkKCiAgICAgICAgVGhlIGNvdW50IGtl eSBpcyB0aGUgaGFtbWluZyB3ZWlnaHQgLyBod2VpZ2h0IG9mIHRoZSBiaXRtYXAuCgogICAgICAg IEJvdGggY291bnQgYW5kIGxpc3QgYWNjZXB0IHRoZSBtYXggYW5kIGRlZmF1bHQga2V5d29yZHMu CgogICAgICAgIFNvbWUgRFJNIGRldmljZXMgbWF5IG9ubHkgc3VwcG9ydCBsZ3B1IGFzIGFub255 bW91cyByZXNvdXJjZXMuCiAgICAgICAgSW4gc3VjaCBjYXNlLCB0aGUgc2lnbmlmaWNhbmNlIG9m IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2V0IGJpdHMKICAgICAgICBpbiBsaXN0IHdpbGwgYmUgaWdu b3JlZC4KCiAgICAgICAgVGhpcyBsZ3B1IHJlc291cmNlIHN1cHBvcnRzIHRoZSAnYWxsb2NhdGlv bicgcmVzb3VyY2UKICAgICAgICBkaXN0cmlidXRpb24gbW9kZWwuCgpDaGFuZ2UtSWQ6IEkxYWZj YWNmMzU2NzcwOTMwYzdmOTI1ZGYwNDNlNTFhZDA2Y2ViOThlClNpZ25lZC1vZmYtYnk6IEtlbm55 IEhvIDxLZW5ueS5Ib0BhbWQuY29tPgotLS0KIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dy b3VwLXYyLnJzdCB8ICA0NiArKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oICAgICAg ICAgICAgICAgIHwgICA0ICsKIGluY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oICAgICAgICAgICAg ICB8ICAgNiArKwoga2VybmVsL2Nncm91cC9kcm0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTM1 ICsrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJz dCBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdAppbmRleCA4N2ExOTUx MzNlYWEuLjU3ZjE4NDY5YmQ3NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlk ZS9jZ3JvdXAtdjIucnN0CisrKyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYy LnJzdApAQCAtMTk1OCw2ICsxOTU4LDUyIEBAIERSTSBJbnRlcmZhY2UgRmlsZXMKIAlTZXQgbGFy Z2VzdCBhbGxvY2F0aW9uIGZvciAvZGV2L2RyaS9jYXJkMSB0byA0TUIKIAllY2hvICIyMjY6MSA0 bSIgPiBkcm0uYnVmZmVyLnBlYWsubWF4CiAKKyAgZHJtLmxncHUKKwlBIHJlYWQtd3JpdGUgbmVz dGVkLWtleWVkIGZpbGUgd2hpY2ggZXhpc3RzIG9uIGFsbCBjZ3JvdXBzLgorCUVhY2ggZW50cnkg aXMga2V5ZWQgYnkgdGhlIERSTSBkZXZpY2UncyBtYWpvcjptaW5vci4KKworCWxncHUgc3RhbmRz IGZvciBsb2dpY2FsIEdQVSwgaXQgaXMgYW4gYWJzdHJhY3Rpb24gdXNlZCB0bworCXN1YmRpdmlk ZSBhIHBoeXNpY2FsIERSTSBkZXZpY2UgZm9yIHRoZSBwdXJwb3NlIG9mIHJlc291cmNlCisJbWFu YWdlbWVudC4KKworCVRoZSBsZ3B1IGlzIGEgZGlzY3JldGUgcXVhbnRpdHkgdGhhdCBpcyBkZXZp Y2Ugc3BlY2lmaWMgKGkuZS4KKwlzb21lIERSTSBkZXZpY2VzIG1heSBoYXZlIDY0IGxncHVzIHdo aWxlIG90aGVycyBtYXkgaGF2ZSAxMDAKKwlsZ3B1cy4pICBUaGUgbGdwdSBpcyBhIHNpbmdsZSBx dWFudGl0eSB3aXRoIHR3byByZXByZXNlbnRhdGlvbnMKKwlkZW5vdGVkIGJ5IHRoZSBmb2xsb3dp bmcgbmVzdGVkIGtleXMuCisKKwkgID09PT09ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisJICBjb3VudCAgICAgUmVwcmVzZW50aW5nIGxncHUgYXMgYW5vbnlt b3VzIHJlc291cmNlCisJICBsaXN0ICAgICAgUmVwcmVzZW50aW5nIGxncHUgYXMgbmFtZWQgcmVz b3VyY2UKKwkgID09PT09ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisKKwlGb3IgZXhhbXBsZToKKwkyMjY6MCBjb3VudD0yNTYgbGlzdD0wLTI1NQorCTIyNjox IGNvdW50PTQgbGlzdD0wLDIsNCw2CisJMjI2OjIgY291bnQ9MzIgbGlzdD0zMi02MworCisJbGdw dSBpcyByZXByZXNlbnRlZCBieSBhIGJpdG1hcCBhbmQgdXNlcyB0aGUgYml0bWFwX3BhcnNlbGlz dAorCWtlcm5lbCBmdW5jdGlvbiBzbyB0aGUgbGlzdCBrZXkgaW5wdXQgZm9ybWF0IGlzIGEKKwlj b21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBkZWNpbWFsIG51bWJlcnMgYW5kIHJhbmdlcy4KKworCUNv bnNlY3V0aXZlbHkgc2V0IGJpdHMgYXJlIHNob3duIGFzIHR3byBoeXBoZW4tc2VwYXJhdGVkIGRl Y2ltYWwKKwludW1iZXJzLCB0aGUgc21hbGxlc3QgYW5kIGxhcmdlc3QgYml0IG51bWJlcnMgc2V0 IGluIHRoZSByYW5nZS4KKwlPcHRpb25hbGx5IGVhY2ggcmFuZ2UgY2FuIGJlIHBvc3RmaXhlZCB0 byBkZW5vdGUgdGhhdCBvbmx5IHBhcnRzCisJb2YgaXQgc2hvdWxkIGJlIHNldC4gIFRoZSByYW5n ZSB3aWxsIGRpdmlkZWQgdG8gZ3JvdXBzIG9mCisJc3BlY2lmaWMgc2l6ZS4KKwlTeW50YXg6IHJh bmdlOnVzZWRfc2l6ZS9ncm91cF9zaXplCisJRXhhbXBsZTogMC0xMDIzOjIvMjU2ID09PiAwLDEs MjU2LDI1Nyw1MTIsNTEzLDc2OCw3NjkKKworCVRoZSBjb3VudCBrZXkgaXMgdGhlIGhhbW1pbmcg d2VpZ2h0IC8gaHdlaWdodCBvZiB0aGUgYml0bWFwLgorCisJQm90aCBjb3VudCBhbmQgbGlzdCBh Y2NlcHQgdGhlIG1heCBhbmQgZGVmYXVsdCBrZXl3b3Jkcy4KKworCVNvbWUgRFJNIGRldmljZXMg bWF5IG9ubHkgc3VwcG9ydCBsZ3B1IGFzIGFub255bW91cyByZXNvdXJjZXMuCisJSW4gc3VjaCBj YXNlLCB0aGUgc2lnbmlmaWNhbmNlIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2V0IGJpdHMKKwlp biBsaXN0IHdpbGwgYmUgaWdub3JlZC4KKworCVRoaXMgbGdwdSByZXNvdXJjZSBzdXBwb3J0cyB0 aGUgJ2FsbG9jYXRpb24nIHJlc291cmNlCisJZGlzdHJpYnV0aW9uIG1vZGVsLgorCiBHRU0gQnVm ZmVyIE93bmVyc2hpcAogfn5+fn5+fn5+fn5+fn5+fn5+fn4KIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2Nncm91cC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oCmluZGV4IDZkOTcw N2UxZWI3Mi4uYThkNmJlMGIwNzViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY2dyb3Vw LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oCkBAIC02LDYgKzYsNyBAQAogCiAjaW5j bHVkZSA8bGludXgvY2dyb3VwX2RybS5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgor I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+ CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAKQEAgLTI4LDYgKzI5LDkgQEAg c3RydWN0IGRybWNnX3Byb3BzIHsKIAlzNjQJCQltZW1faGlnaHNfZGVmYXVsdFtUVE1fUExfUFJJ VisxXTsKIAogCXN0cnVjdCB3b3JrX3N0cnVjdAkqbWVtX3JlY2xhaW1fd3FbVFRNX1BMX1BSSVZd OworCisJaW50CQkJbGdwdV9jYXBhY2l0eTsKKyAgICAgICAgREVDTEFSRV9CSVRNQVAobGdwdV9z bG90cywgTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpOwogfTsKIAogI2lmZGVmIENPTkZJR19DR1JP VVBfRFJNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaCBiL2luY2x1ZGUv bGludXgvY2dyb3VwX2RybS5oCmluZGV4IGM1NmNmZTc0ZDFhNi4uN2IxY2ZjNGNlNGMzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Nn cm91cF9kcm0uaApAQCAtMTQsNiArMTQsOCBAQAogLyogbGltaXQgZGVmaW5lZCBwZXIgdGhlIHdh eSBkcm1fbWlub3JfYWxsb2Mgb3BlcmF0ZXMgKi8KICNkZWZpbmUgTUFYX0RSTV9ERVYgKDY0ICog RFJNX01JTk9SX1JFTkRFUikKIAorI2RlZmluZSBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSAyNTYK KwogZW51bSBkcm1jZ19tZW1fYndfYXR0ciB7CiAJRFJNQ0dfTUVNX0JXX0FUVFJfQllURV9NT1ZF RCwgLyogZm9yIGNhbHVsYXRpbmcgJ2luc3RhbnRhbmVvdXMnIGJ3ICovCiAJRFJNQ0dfTUVNX0JX X0FUVFJfQUNDVU1fVVMsICAvKiBmb3IgY2FsdWxhdGluZyAnaW5zdGFudGFuZW91cycgYncgKi8K QEAgLTMyLDYgKzM0LDcgQEAgZW51bSBkcm1jZ19yZXNfdHlwZSB7CiAJRFJNQ0dfVFlQRV9NRU1f UEVBSywKIAlEUk1DR19UWVBFX0JBTkRXSURUSCwKIAlEUk1DR19UWVBFX0JBTkRXSURUSF9QRVJJ T0RfQlVSU1QsCisJRFJNQ0dfVFlQRV9MR1BVLAogCV9fRFJNQ0dfVFlQRV9MQVNULAogfTsKIApA QCAtNTgsNiArNjEsOSBAQCBzdHJ1Y3QgZHJtY2dfZGV2aWNlX3Jlc291cmNlIHsKIAlzNjQJCQlt ZW1fYndfc3RhdHNbX19EUk1DR19NRU1fQldfQVRUUl9MQVNUXTsKIAlzNjQJCQltZW1fYndfbGlt aXRzX2J5dGVzX2luX3BlcmlvZDsKIAlzNjQJCQltZW1fYndfbGltaXRzX2F2Z19ieXRlc19wZXJf dXM7CisKKwlzNjQJCQlsZ3B1X3VzZWQ7CisJREVDTEFSRV9CSVRNQVAobGdwdV9hbGxvY2F0ZWQs IE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEva2VybmVs L2Nncm91cC9kcm0uYyBiL2tlcm5lbC9jZ3JvdXAvZHJtLmMKaW5kZXggMGVhN2YwNjE5ZTI1Li4x OGM0MzY4ZTJjMjkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jZ3JvdXAvZHJtLmMKKysrIGIva2VybmVs L2Nncm91cC9kcm0uYwpAQCAtOSw2ICs5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZ3JvdXBfZHJt Lmg+CiAjaW5jbHVkZSA8bGludXgva3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4K KyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgpA QCAtNTIsNiArNTMsOSBAQCBzdGF0aWMgY2hhciBjb25zdCAqbWVtX2J3X2F0dHJfbmFtZXNbXSA9 IHsKICNkZWZpbmUgTUVNX0JXX0xJTUlUU19OQU1FX0FWRyAiYXZnX2J5dGVzX3Blcl91cyIKICNk ZWZpbmUgTUVNX0JXX0xJTUlUU19OQU1FX0JVUlNUICJieXRlc19pbl9wZXJpb2QiCiAKKyNkZWZp bmUgTEdQVV9MSU1JVFNfTkFNRV9MSVNUICJsaXN0IgorI2RlZmluZSBMR1BVX0xJTUlUU19OQU1F X0NPVU5UICJjb3VudCIKKwogc3RhdGljIHN0cnVjdCBkcm1jZyAqcm9vdF9kcm1jZyBfX3JlYWRf bW9zdGx5OwogCiBzdGF0aWMgaW50IGRybWNnX2Nzc19mcmVlX2ZuKGludCBpZCwgdm9pZCAqcHRy LCB2b2lkICpkYXRhKQpAQCAtMTE1LDYgKzExOSwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBpbml0 X2RybWNnX3NpbmdsZShzdHJ1Y3QgZHJtY2cgKmRybWNnLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCWZvciAoaSA9IDA7IGkgPD0gVFRNX1BMX1BSSVY7IGkrKykKIAkJZGRyLT5tZW1faGlnaHNb aV0gPSBkZXYtPmRybWNnX3Byb3BzLm1lbV9oaWdoc19kZWZhdWx0W2ldOwogCisJYml0bWFwX2Nv cHkoZGRyLT5sZ3B1X2FsbG9jYXRlZCwgZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X3Nsb3RzLAorCQkJ TUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpOworCWRkci0+bGdwdV91c2VkID0gYml0bWFwX3dlaWdo dChkZHItPmxncHVfYWxsb2NhdGVkLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7CisKIAltdXRl eF91bmxvY2soJmRldi0+ZHJtY2dfbXV0ZXgpOwogCXJldHVybiAwOwogfQpAQCAtMjgwLDYgKzI4 OCwxNCBAQCBzdGF0aWMgdm9pZCBkcm1jZ19wcmludF9saW1pdHMoc3RydWN0IGRybWNnX2Rldmlj ZV9yZXNvdXJjZSAqZGRyLAogCQkJCU1FTV9CV19MSU1JVFNfTkFNRV9BVkcsCiAJCQkJZGRyLT5t ZW1fYndfbGltaXRzX2F2Z19ieXRlc19wZXJfdXMpOwogCQlicmVhazsKKwljYXNlIERSTUNHX1RZ UEVfTEdQVToKKwkJc2VxX3ByaW50ZihzZiwgIiVzPSVsbGQgJXM9JSpwYmxcbiIsCisJCQkJTEdQ VV9MSU1JVFNfTkFNRV9DT1VOVCwKKwkJCQlkZHItPmxncHVfdXNlZCwKKwkJCQlMR1BVX0xJTUlU U19OQU1FX0xJU1QsCisJCQkJZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X2NhcGFjaXR5LAorCQkJCWRk ci0+bGdwdV9hbGxvY2F0ZWQpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlzZXFfcHV0cyhzZiwg IlxuIik7CiAJCWJyZWFrOwpAQCAtMzE0LDYgKzMzMCwxNSBAQCBzdGF0aWMgdm9pZCBkcm1jZ19w cmludF9kZWZhdWx0KHN0cnVjdCBkcm1jZ19wcm9wcyAqcHJvcHMsCiAJCQkJTUVNX0JXX0xJTUlU U19OQU1FX0FWRywKIAkJCQlwcm9wcy0+bWVtX2J3X2F2Z19ieXRlc19wZXJfdXNfZGVmYXVsdCk7 CiAJCWJyZWFrOworCWNhc2UgRFJNQ0dfVFlQRV9MR1BVOgorCQlzZXFfcHJpbnRmKHNmLCAiJXM9 JWQgJXM9JSpwYmxcbiIsCisJCQkJTEdQVV9MSU1JVFNfTkFNRV9DT1VOVCwKKwkJCQliaXRtYXBf d2VpZ2h0KHByb3BzLT5sZ3B1X3Nsb3RzLAorCQkJCQlwcm9wcy0+bGdwdV9jYXBhY2l0eSksCisJ CQkJTEdQVV9MSU1JVFNfTkFNRV9MSVNULAorCQkJCXByb3BzLT5sZ3B1X2NhcGFjaXR5LAorCQkJ CXByb3BzLT5sZ3B1X3Nsb3RzKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJc2VxX3B1dHMoc2Ys ICJcbiIpOwogCQlicmVhazsKQEAgLTQwNyw5ICs0MzIsMjEgQEAgc3RhdGljIHZvaWQgZHJtY2df dmFsdWVfYXBwbHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgczY0ICpkc3QsIHM2NCB2YWwpCiAJ bXV0ZXhfdW5sb2NrKCZkZXYtPmRybWNnX211dGV4KTsKIH0KIAorc3RhdGljIHZvaWQgZHJtY2df bGdwdV92YWx1ZXNfYXBwbHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJc3RydWN0IGRybWNn X2RldmljZV9yZXNvdXJjZSAqZGRyLCB1bnNpZ25lZCBsb25nICp2YWwpCit7CisKKwltdXRleF9s b2NrKCZkZXYtPmRybWNnX211dGV4KTsKKwliaXRtYXBfY29weShkZHItPmxncHVfYWxsb2NhdGVk LCB2YWwsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKKwlkZHItPmxncHVfdXNlZCA9IGJpdG1h cF93ZWlnaHQoZGRyLT5sZ3B1X2FsbG9jYXRlZCwgTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpOwor CW11dGV4X3VubG9jaygmZGV2LT5kcm1jZ19tdXRleCk7Cit9CisKIHN0YXRpYyB2b2lkIGRybWNn X25lc3RlZF9saW1pdF9wYXJzZShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YsCiAJCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGNoYXIgKmF0dHJzKQogeworCURFQ0xBUkVfQklUTUFQKHRtcF9i aXRtYXAsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKKwlERUNMQVJFX0JJVE1BUChjaGtfYml0 bWFwLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7CiAJZW51bSBkcm1jZ19yZXNfdHlwZSB0eXBl ID0KIAkJRFJNQ0dfQ1RGX1BSSVYyUkVTVFlQRShvZl9jZnQob2YpLT5wcml2YXRlKTsKIAlzdHJ1 Y3QgZHJtY2cgKmRybWNnID0gY3NzX3RvX2RybWNnKG9mX2NzcyhvZikpOwpAQCAtNTAxLDYgKzUz OCw4MyBAQCBzdGF0aWMgdm9pZCBkcm1jZ19uZXN0ZWRfbGltaXRfcGFyc2Uoc3RydWN0IGtlcm5m c19vcGVuX2ZpbGUgKm9mLAogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJYnJlYWs7IC8qIERSTUNH X1RZUEVfTUVNICovCisJCWNhc2UgRFJNQ0dfVFlQRV9MR1BVOgorCQkJaWYgKHN0cm5jbXAoc25h bWUsIExHUFVfTElNSVRTX05BTUVfTElTVCwgMjU2KSAmJgorCQkJCXN0cm5jbXAoc25hbWUsIExH UFVfTElNSVRTX05BTUVfQ09VTlQsIDI1NikgKQorCQkJCWNvbnRpbnVlOworCisgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoIXN0cmNtcCgibWF4Iiwgc3ZhbCkgfHwKKwkJCQkJIXN0cmNtcCgi ZGVmYXVsdCIsIHN2YWwpKSB7CisJCQkJaWYgKHBhcmVudCAhPSBOVUxMKQorCQkJCQlkcm1jZ19s Z3B1X3ZhbHVlc19hcHBseShkZXYsIGRkciwKKwkJCQkJCXBhcmVudC0+ZGV2X3Jlc291cmNlc1tt aW5vcl0tPgorCQkJCQkJbGdwdV9hbGxvY2F0ZWQpOworCQkJCWVsc2UKKwkJCQkJZHJtY2dfbGdw dV92YWx1ZXNfYXBwbHkoZGV2LCBkZHIsCisJCQkJCQlwcm9wcy0+bGdwdV9zbG90cyk7CisKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc25hbWUsIExHUFVfTElNSVRTX05B TUVfQ09VTlQsIDI1NikgPT0gMCkgeworCQkJCXBfbWF4ID0gcGFyZW50ID09IE5VTEwgPyBwcm9w cy0+bGdwdV9jYXBhY2l0eToKKwkJCQkJYml0bWFwX3dlaWdodCgKKwkJCQkJcGFyZW50LT5kZXZf cmVzb3VyY2VzW21pbm9yXS0+CisJCQkJCWxncHVfYWxsb2NhdGVkLCBwcm9wcy0+bGdwdV9jYXBh Y2l0eSk7CisKKwkJCQlyYyA9IGRybWNnX3Byb2Nlc3NfbGltaXRfczY0X3ZhbChzdmFsLAorCQkJ CQlmYWxzZSwgcF9tYXgsIHBfbWF4LCAmdmFsKTsKKworCQkJCWlmIChyYyB8fCB2YWwgPCAwKSB7 CisJCQkJCWRybWNnX3ByX2NmdF9lcnIoZHJtY2csIHJjLCBjZnRfbmFtZSwKKwkJCQkJCQltaW5v cik7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKworCQkJCWJpdG1hcF96ZXJvKHRtcF9iaXRtYXAs CisJCQkJCQlNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7CisJCQkJYml0bWFwX3NldCh0bXBfYml0 bWFwLCAwLCB2YWwpOworCQkJfQorCisJCQlpZiAoc3RybmNtcChzbmFtZSwgTEdQVV9MSU1JVFNf TkFNRV9MSVNULCAyNTYpID09IDApIHsKKwkJCQlyYyA9IGJpdG1hcF9wYXJzZWxpc3Qoc3ZhbCwg dG1wX2JpdG1hcCwKKwkJCQkJCU1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKKworCQkJCWlmIChy YykgeworCQkJCQlkcm1jZ19wcl9jZnRfZXJyKGRybWNnLCByYywgY2Z0X25hbWUsCisJCQkJCQkJ bWlub3IpOworCQkJCQljb250aW51ZTsKKwkJCQl9CisKKyAgICAgICAgICAgICAgICAgICAgICAg IAliaXRtYXBfYW5kbm90KGNoa19iaXRtYXAsIHRtcF9iaXRtYXAsCisJCQkJCXByb3BzLT5sZ3B1 X3Nsb3RzLAorCQkJCQlNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7CisKKyAgICAgICAgICAgICAg ICAgICAgICAgIAlpZiAoIWJpdG1hcF9lbXB0eShjaGtfYml0bWFwLAorCQkJCQkJTUFYX0RSTUNH X0xHUFVfQ0FQQUNJVFkpKSB7CisJCQkJCWRybWNnX3ByX2NmdF9lcnIoZHJtY2csIDAsIGNmdF9u YW1lLAorCQkJCQkJCW1pbm9yKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCisKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQgIT0gTlVMTCkgeworCQkJCWJpdG1hcF9h bmQoY2hrX2JpdG1hcCwgdG1wX2JpdG1hcCwKKwkJCQlwYXJlbnQtPmRldl9yZXNvdXJjZXNbbWlu b3JdLT5sZ3B1X2FsbG9jYXRlZCwKKwkJCQlwcm9wcy0+bGdwdV9jYXBhY2l0eSk7CisKKwkJCQlp ZiAoYml0bWFwX2VtcHR5KGNoa19iaXRtYXAsCisJCQkJCQlwcm9wcy0+bGdwdV9jYXBhY2l0eSkp IHsKKwkJCQkJZHJtY2dfcHJfY2Z0X2Vycihkcm1jZywgMCwKKwkJCQkJCQljZnRfbmFtZSwgbWlu b3IpOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQl9CisKKwkJCWRybWNnX2xncHVfdmFsdWVz X2FwcGx5KGRldiwgZGRyLCB0bXBfYml0bWFwKTsKKworCQkJYnJlYWs7IC8qIERSTUNHX1RZUEVf TEdQVSAqLwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJCX0gLyogc3dpdGNoICh0eXBlKSAqLwpA QCAtNjA2LDYgKzcyMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGRybWNnX2xpbWl0X3dyaXRlKHN0cnVj dCBrZXJuZnNfb3Blbl9maWxlICpvZiwgY2hhciAqYnVmLAogCQkJYnJlYWs7CiAJCWNhc2UgRFJN Q0dfVFlQRV9CQU5EV0lEVEg6CiAJCWNhc2UgRFJNQ0dfVFlQRV9NRU06CisJCWNhc2UgRFJNQ0df VFlQRV9MR1BVOgogCQkJZHJtY2dfbmVzdGVkX2xpbWl0X3BhcnNlKG9mLCBkbS0+ZGV2LCBzYXR0 cik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTczMSw2ICs4NDYsMjAgQEAgc3RydWN0IGNm dHlwZSBmaWxlc1tdID0gewogCQkucHJpdmF0ZSA9IERSTUNHX0NURl9QUklWKERSTUNHX1RZUEVf QkFORFdJRFRILAogCQkJCQkJRFJNQ0dfRlRZUEVfREVGQVVMVCksCiAJfSwKKwl7CisJCS5uYW1l ID0gImxncHUiLAorCQkuc2VxX3Nob3cgPSBkcm1jZ19zZXFfc2hvdywKKwkJLndyaXRlID0gZHJt Y2dfbGltaXRfd3JpdGUsCisJCS5wcml2YXRlID0gRFJNQ0dfQ1RGX1BSSVYoRFJNQ0dfVFlQRV9M R1BVLAorCQkJCQkJRFJNQ0dfRlRZUEVfTElNSVQpLAorCX0sCisJeworCQkubmFtZSA9ICJsZ3B1 LmRlZmF1bHQiLAorCQkuc2VxX3Nob3cgPSBkcm1jZ19zZXFfc2hvdywKKwkJLmZsYWdzID0gQ0ZU WVBFX09OTFlfT05fUk9PVCwKKwkJLnByaXZhdGUgPSBEUk1DR19DVEZfUFJJVihEUk1DR19UWVBF X0xHUFUsCisJCQkJCQlEUk1DR19GVFlQRV9ERUZBVUxUKSwKKwl9LAogCXsgfQkvKiB0ZXJtaW5h dGUgKi8KIH07CiAKQEAgLTc0NCw2ICs4NzMsMTAgQEAgc3RydWN0IGNncm91cF9zdWJzeXMgZHJt X2NncnBfc3Vic3lzID0gewogCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtY2dfdXBkYXRlX2NnX3Ry ZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKKyAgICAgICAgYml0bWFwX3plcm8oZGV2LT5k cm1jZ19wcm9wcy5sZ3B1X3Nsb3RzLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7CisgICAgICAg IGJpdG1hcF9maWxsKGRldi0+ZHJtY2dfcHJvcHMubGdwdV9zbG90cywKKwkJCWRldi0+ZHJtY2df cHJvcHMubGdwdV9jYXBhY2l0eSk7CisKIAkvKiBpbml0IGNncm91cHMgY3JlYXRlZCBiZWZvcmUg cmVnaXN0cmF0aW9uIChpLmUuIHJvb3QgY2dyb3VwKSAqLwogCWlmIChyb290X2RybWNnICE9IE5V TEwpIHsKIAkJc3RydWN0IGNncm91cF9zdWJzeXNfc3RhdGUgKnBvczsKQEAgLTgwMCw2ICs5MzMs OCBAQCB2b2lkIGRybWNnX2RldmljZV9lYXJseV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJZm9yIChpID0gMDsgaSA8PSBUVE1fUExfUFJJVjsgaSsrKQogCQlkZXYtPmRybWNnX3Byb3Bz Lm1lbV9oaWdoc19kZWZhdWx0W2ldID0gUzY0X01BWDsKIAorCWRldi0+ZHJtY2dfcHJvcHMubGdw dV9jYXBhY2l0eSA9IE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZOworCiAJZHJtY2dfdXBkYXRlX2Nn X3RyZWUoZGV2KTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtY2dfZGV2aWNlX2Vhcmx5X2luaXQpOwot LSAKMi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=