From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenny Ho Subject: [PATCH RFC v4 12/16] drm, cgroup: Add soft VRAM limit Date: Thu, 29 Aug 2019 02:05:29 -0400 Message-ID: <20190829060533.32315-13-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 VGhlIGRybSByZXNvdXJjZSBiZWluZyBsaW1pdGVkIGlzIHRoZSBUVE0gKFRyYW5zbGF0aW9uIFRh YmxlIE1hbmFnZXIpCmJ1ZmZlcnMuICBUVE0gbWFuYWdlcyBkaWZmZXJlbnQgdHlwZXMgb2YgbWVt b3J5IHRoYXQgYSBHUFUgbWlnaHQgYWNjZXNzLgpUaGVzZSBtZW1vcnkgdHlwZXMgaW5jbHVkZSBk ZWRpY2F0ZWQgVmlkZW8gUkFNIChWUkFNKSBhbmQgaG9zdC9zeXN0ZW0KbWVtb3J5IGFjY2Vzc2li bGUgdGhyb3VnaCBJT01NVSAoR0FSVC9HVFQpLiAgVFRNIGlzIGN1cnJlbnRseSB1c2VkIGJ5Cm11 bHRpcGxlIGRybSBkcml2ZXJzIChhbWQsIGFzdCwgYm9jaHMsIGNpcnJ1cywgaGlzaWxpY29uLCBt YWdhMjAwLApub3V2ZWF1LCBxeGwsIHZpcnRpbywgdm13Z2Z4LikKClRUTSBidWZmZXJzIGJlbG9u Z2luZyB0byBkcm0gY2dyb3VwcyB1bmRlciBtZW1vcnkgcHJlc3N1cmUgd2lsbCBiZQpzZWxlY3Rl ZCB0byBiZSBldmljdGVkIGZpcnN0LgoKZHJtLm1lbW9yeS5oaWdoCiAgICAgICAgQSByZWFkLXdy aXRlIG5lc3RlZC1rZXllZCBmaWxlIHdoaWNoIGV4aXN0cyBvbiBhbGwgY2dyb3Vwcy4KICAgICAg ICBFYWNoIGVudHJ5IGlzIGtleWVkIGJ5IHRoZSBkcm0gZGV2aWNlJ3MgbWFqb3I6bWlub3IuICBU aGUKICAgICAgICBmb2xsb3dpbmcgbmVzdGVkIGtleXMgYXJlIGRlZmluZWQuCgogICAgICAgICAg PT09PSAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogICAgICAgICAgdnJhbSAgICAgICAgIFZpZGVvIFJBTSBzb2Z0IGxpbWl0IGZvciBhIGRybSBk ZXZpY2UgaW4gYnl0ZQogICAgICAgICAgPT09PSAgICAgICAgID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBSZWFkaW5nIHJldHVybnMgdGhlIGZv bGxvd2luZzo6CgogICAgICAgIDIyNjowIHZyYW09MAogICAgICAgIDIyNjoxIHZyYW09MTc3Njg0 NDgKICAgICAgICAyMjY6MiB2cmFtPTE3NzY4NDQ4Cgpkcm0ubWVtb3J5LmRlZmF1bHQKICAgICAg ICBBIHJlYWQtb25seSBuZXN0ZWQta2V5ZWQgZmlsZSB3aGljaCBleGlzdHMgb24gdGhlIHJvb3Qg Y2dyb3VwLgogICAgICAgIEVhY2ggZW50cnkgaXMga2V5ZWQgYnkgdGhlIGRybSBkZXZpY2UncyBt YWpvcjptaW5vci4gIFRoZQogICAgICAgIGZvbGxvd2luZyBuZXN0ZWQga2V5cyBhcmUgZGVmaW5l ZC4KCiAgICAgICAgICA9PT09ICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogICAgICAgICAgdnJhbSAgICAgICAgIFZpZGVvIFJBTSBkZWZhdWx0IGxpbWl0IGluIGJ5dGUK ICAgICAgICAgID09PT0gICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgog ICAgICAgIFJlYWRpbmcgcmV0dXJucyB0aGUgZm9sbG93aW5nOjoKCiAgICAgICAgMjI2OjAgdnJh bT0wCiAgICAgICAgMjI2OjEgdnJhbT0xNzc2ODQ0OAogICAgICAgIDIyNjoyIHZyYW09MTc3Njg0 NDgKCkNoYW5nZS1JZDogSTc5ODhlMjhhNDUzYjUzMTQwYjQwYTI4YzE3NjIzOWFjYmM4MWQ0OTEK U2lnbmVkLW9mZi1ieTogS2VubnkgSG8gPEtlbm55LkhvQGFtZC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYyB8ICAgNyArKwogaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oICAg ICB8ICAxNyArKysrKwogaW5jbHVkZS9saW51eC9jZ3JvdXBfZHJtLmggICB8ICAgMiArCiBrZXJu ZWwvY2dyb3VwL2RybS5jICAgICAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE2MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvLmMKaW5kZXggMzJlZWU4NWYzNjQxLi5kN2UzZDMxMjhlYmIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u YwpAQCAtODUzLDE0ICs4NTMsMjEgQEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0g YmRldi0+Z2xvYjsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5t YW5bbWVtX3R5cGVdOwogCWJvb2wgbG9ja2VkID0gZmFsc2U7CisJYm9vbCBjaGVja19kcm1jZzsK IAl1bnNpZ25lZCBpOwogCWludCByZXQ7CiAKKwljaGVja19kcm1jZyA9IGRybWNnX21lbV9wcmVz c3VyZV9zY2FuKGJkZXYsIG1lbV90eXBlKTsKKwogCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2sp OwogCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKIAkJbGlzdF9m b3JfZWFjaF9lbnRyeShibywgJm1hbi0+bHJ1W2ldLCBscnUpIHsKIAkJCWJvb2wgYnVzeTsKIAor CQkJaWYgKGNoZWNrX2RybWNnICYmCisJCQkJIWRybWNnX21lbV9zaG91bGRfZXZpY3QoYm8sIG1l bV90eXBlKSkKKwkJCQljb250aW51ZTsKKwogCQkJaWYgKCF0dG1fYm9fZXZpY3Rfc3dhcG91dF9h bGxvd2FibGUoYm8sIGN0eCwgJmxvY2tlZCwKIAkJCQkJCQkgICAgJmJ1c3kpKSB7CiAJCQkJaWYg KGJ1c3kgJiYgIWJ1c3lfYm8gJiYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAu aCBiL2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaAppbmRleCA5Y2UwZDU0ZTZiZDguLmMxMWRmMzg4 ZmRmMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybV9jZ3JvdXAuaApAQCAtNiw2ICs2LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nncm91 cF9kcm0uaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KKyNpbmNsdWRlIDxkcm0v dHRtL3R0bV9ib19kcml2ZXIuaD4KIAogLyoqCiAgKiBQZXIgRFJNIGRldmljZSBwcm9wZXJ0aWVz IGZvciBEUk0gY2dyb3VwIGNvbnRyb2xsZXIgZm9yIHRoZSBwdXJwb3NlCkBAIC0yMiw2ICsyMyw4 IEBAIHN0cnVjdCBkcm1jZ19wcm9wcyB7CiAKIAlzNjQJCQltZW1fYndfYnl0ZXNfaW5fcGVyaW9k X2RlZmF1bHQ7CiAJczY0CQkJbWVtX2J3X2F2Z19ieXRlc19wZXJfdXNfZGVmYXVsdDsKKworCXM2 NAkJCW1lbV9oaWdoc19kZWZhdWx0W1RUTV9QTF9QUklWKzFdOwogfTsKIAogI2lmZGVmIENPTkZJ R19DR1JPVVBfRFJNCkBAIC0zOCw2ICs0MSw4IEBAIHZvaWQgZHJtY2dfbWVtX3RyYWNrX21vdmUo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpvbGRfYm8sIGJvb2wgZXZpY3QsCiAJCXN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSk7CiB1bnNpZ25lZCBpbnQgZHJtY2dfZ2V0X21lbV9id19wZXJp b2RfaW5fdXMoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pOwogYm9vbCBkcm1jZ19tZW1f Y2FuX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pOworYm9vbCBkcm1jZ19tZW1f cHJlc3N1cmVfc2NhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgaW50IHR5 cGUpOworYm9vbCBkcm1jZ19tZW1fc2hvdWxkX2V2aWN0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqdGJvLCB1bnNpZ25lZCBpbnQgdHlwZSk7CiAKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQg ZHJtY2dfZGV2aWNlX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2aWNlKQpAQCAtODEsNSAr ODYsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGRybWNnX21lbV9jYW5fbW92ZShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKnRibykKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KKworc3RhdGljIGlubGlu ZSBib29sIGRybWNnX21lbV9wcmVzc3VyZV9zY2FuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LAorCQl1bnNpZ25lZCBpbnQgdHlwZSkKK3sKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBp bmxpbmUgYm9vbCBkcm1jZ19tZW1fc2hvdWxkX2V2aWN0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqdGJvLAorCQl1bnNpZ25lZCBpbnQgdHlwZSkKK3sKKwlyZXR1cm4gdHJ1ZTsKK30KICNlbmRp ZiAvKiBDT05GSUdfQ0dST1VQX0RSTSAqLwogI2VuZGlmIC8qIF9fRFJNX0NHUk9VUF9IX18gKi8K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oIGIvaW5jbHVkZS9saW51eC9j Z3JvdXBfZHJtLmgKaW5kZXggMjc4MDlhNTgzYmYyLi5jNTZjZmU3NGQxYTYgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2dyb3VwX2Ry bS5oCkBAIC01MCw2ICs1MCw4IEBAIHN0cnVjdCBkcm1jZ19kZXZpY2VfcmVzb3VyY2UgewogCiAJ czY0CQkJbWVtX3N0YXRzW1RUTV9QTF9QUklWKzFdOwogCXM2NAkJCW1lbV9wZWFrc1tUVE1fUExf UFJJVisxXTsKKwlzNjQJCQltZW1faGlnaHNbVFRNX1BMX1BSSVYrMV07CisJYm9vbAkJCW1lbV9w cmVzc3VyZVtUVE1fUExfUFJJVisxXTsKIAlzNjQJCQltZW1fc3RhdHNfZXZpY3Q7CiAKIAlzNjQJ CQltZW1fYndfc3RhdHNfbGFzdF91cGRhdGVfdXM7CmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3Vw L2RybS5jIGIva2VybmVsL2Nncm91cC9kcm0uYwppbmRleCBhYjk2MmEyNzdlNTguLjA0ZmI5YTM5 ODc0MCAxMDA2NDQKLS0tIGEva2VybmVsL2Nncm91cC9kcm0uYworKysgYi9rZXJuZWwvY2dyb3Vw L2RybS5jCkBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGluaXRfZHJtY2dfc2lu Z2xlKHN0cnVjdCBkcm1jZyAqZHJtY2csIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJaW50 IG1pbm9yID0gZGV2LT5wcmltYXJ5LT5pbmRleDsKIAlzdHJ1Y3QgZHJtY2dfZGV2aWNlX3Jlc291 cmNlICpkZHIgPSBkcm1jZy0+ZGV2X3Jlc291cmNlc1ttaW5vcl07CisJaW50IGk7CiAKIAlpZiAo ZGRyID09IE5VTEwpIHsKIAkJZGRyID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRybWNnX2Rldmlj ZV9yZXNvdXJjZSksCkBAIC0xMDgsNiArMTA5LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IGluaXRf ZHJtY2dfc2luZ2xlKHN0cnVjdCBkcm1jZyAqZHJtY2csIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJZGRyLT5tZW1fYndfbGltaXRzX2F2Z19ieXRlc19wZXJfdXMgPQogCQlkZXYtPmRybWNnX3By b3BzLm1lbV9id19hdmdfYnl0ZXNfcGVyX3VzX2RlZmF1bHQ7CiAKKwlkZHItPm1lbV9id19saW1p dHNfYXZnX2J5dGVzX3Blcl91cyA9CisJCWRldi0+ZHJtY2dfcHJvcHMubWVtX2J3X2F2Z19ieXRl c19wZXJfdXNfZGVmYXVsdDsKKworCWZvciAoaSA9IDA7IGkgPD0gVFRNX1BMX1BSSVY7IGkrKykK KwkJZGRyLT5tZW1faGlnaHNbaV0gPSBkZXYtPmRybWNnX3Byb3BzLm1lbV9oaWdoc19kZWZhdWx0 W2ldOworCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPmRybWNnX211dGV4KTsKIAlyZXR1cm4gMDsKIH0K QEAgLTI1Nyw2ICsyNjQsMTEgQEAgc3RhdGljIHZvaWQgZHJtY2dfcHJpbnRfbGltaXRzKHN0cnVj dCBkcm1jZ19kZXZpY2VfcmVzb3VyY2UgKmRkciwKIAljYXNlIERSTUNHX1RZUEVfQk9fUEVBSzoK IAkJc2VxX3ByaW50ZihzZiwgIiVsbGRcbiIsIGRkci0+Ym9fbGltaXRzX3BlYWtfYWxsb2NhdGVk KTsKIAkJYnJlYWs7CisJY2FzZSBEUk1DR19UWVBFX01FTToKKwkJc2VxX3ByaW50ZihzZiwgIiVz PSVsbGRcbiIsCisJCQkJdHRtX3BsYWNlbWVudF9uYW1lc1tUVE1fUExfVlJBTV0sCisJCQkJZGRy LT5tZW1faGlnaHNbVFRNX1BMX1ZSQU1dKTsKKwkJYnJlYWs7CiAJY2FzZSBEUk1DR19UWVBFX0JB TkRXSURUSF9QRVJJT0RfQlVSU1Q6CiAJCXNlcV9wcmludGYoc2YsICIlbGxkXG4iLAogCQkJZGV2 LT5kcm1jZ19wcm9wcy5tZW1fYndfbGltaXRzX3BlcmlvZF9pbl91cyk7CkBAIC0yODYsNiArMjk4 LDExIEBAIHN0YXRpYyB2b2lkIGRybWNnX3ByaW50X2RlZmF1bHQoc3RydWN0IGRybWNnX3Byb3Bz ICpwcm9wcywKIAkJc2VxX3ByaW50ZihzZiwgIiVsbGRcbiIsCiAJCQlwcm9wcy0+Ym9fbGltaXRz X3BlYWtfYWxsb2NhdGVkX2RlZmF1bHQpOwogCQlicmVhazsKKwljYXNlIERSTUNHX1RZUEVfTUVN OgorCQlzZXFfcHJpbnRmKHNmLCAiJXM9JWxsZFxuIiwKKwkJCQl0dG1fcGxhY2VtZW50X25hbWVz W1RUTV9QTF9WUkFNXSwKKwkJCQlwcm9wcy0+bWVtX2hpZ2hzX2RlZmF1bHRbVFRNX1BMX1ZSQU1d KTsKKwkJYnJlYWs7CiAJY2FzZSBEUk1DR19UWVBFX0JBTkRXSURUSF9QRVJJT0RfQlVSU1Q6CiAJ CXNlcV9wcmludGYoc2YsICIlbGxkXG4iLAogCQkJcHJvcHMtPm1lbV9id19saW1pdHNfcGVyaW9k X2luX3VzX2RlZmF1bHQpOwpAQCAtNDYxLDYgKzQ3OCwyOSBAQCBzdGF0aWMgdm9pZCBkcm1jZ19u ZXN0ZWRfbGltaXRfcGFyc2Uoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAogCQkJCWNvbnRp bnVlOwogCQkJfQogCQkJYnJlYWs7IC8qIERSTUNHX1RZUEVfQkFORFdJRFRIICovCisJCWNhc2Ug RFJNQ0dfVFlQRV9NRU06CisJCQlpZiAoc3RybmNtcChzbmFtZSwgdHRtX3BsYWNlbWVudF9uYW1l c1tUVE1fUExfVlJBTV0sCisJCQkJCQkyNTYpID09IDApIHsKKwkJCQlwX21heCA9IHBhcmVudCA9 PSBOVUxMID8gUzY0X01BWCA6CisJCQkJCXBhcmVudC0+ZGV2X3Jlc291cmNlc1ttaW5vcl0tPgor CQkJCQltZW1faGlnaHNbVFRNX1BMX1ZSQU1dOworCisJCQkJcmMgPSBkcm1jZ19wcm9jZXNzX2xp bWl0X3M2NF92YWwoc3ZhbCwgdHJ1ZSwKKwkJCQkJcHJvcHMtPm1lbV9oaWdoc19kZWZhdWx0W1RU TV9QTF9WUkFNXSwKKwkJCQkJcF9tYXgsICZ2YWwpOworCisJCQkJaWYgKHJjIHx8IHZhbCA8IDAp IHsKKwkJCQkJZHJtY2dfcHJfY2Z0X2Vycihkcm1jZywgcmMsIGNmdF9uYW1lLAorCQkJCQkJCW1p bm9yKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCisJCQkJZHJtY2dfdmFsdWVfYXBwbHkoZGV2 LAorCQkJCQkJJmRkci0+bWVtX2hpZ2hzW1RUTV9QTF9WUkFNXSwKKwkJCQkJCXZhbCk7CisJCQkJ Y29udGludWU7CisJCQl9CisJCQlicmVhazsgLyogRFJNQ0dfVFlQRV9NRU0gKi8KIAkJZGVmYXVs dDoKIAkJCWJyZWFrOwogCQl9IC8qIHN3aXRjaCAodHlwZSkgKi8KQEAgLTU2NSw2ICs2MDUsNyBA QCBzdGF0aWMgc3NpemVfdCBkcm1jZ19saW1pdF93cml0ZShzdHJ1Y3Qga2VybmZzX29wZW5fZmls ZSAqb2YsIGNoYXIgKmJ1ZiwKIAkJCWRybWNnX21lbV9idXJzdF9id19zdGF0c19yZXNldChkbS0+ ZGV2KTsKIAkJCWJyZWFrOwogCQljYXNlIERSTUNHX1RZUEVfQkFORFdJRFRIOgorCQljYXNlIERS TUNHX1RZUEVfTUVNOgogCQkJZHJtY2dfbmVzdGVkX2xpbWl0X3BhcnNlKG9mLCBkbS0+ZGV2LCBz YXR0cik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTY0MSw2ICs2ODIsMjAgQEAgc3RydWN0 IGNmdHlwZSBmaWxlc1tdID0gewogCQkucHJpdmF0ZSA9IERSTUNHX0NURl9QUklWKERSTUNHX1RZ UEVfTUVNX1BFQUssCiAJCQkJCQlEUk1DR19GVFlQRV9TVEFUUyksCiAJfSwKKwl7CisJCS5uYW1l ID0gIm1lbW9yeS5kZWZhdWx0IiwKKwkJLnNlcV9zaG93ID0gZHJtY2dfc2VxX3Nob3csCisJCS5m bGFncyA9IENGVFlQRV9PTkxZX09OX1JPT1QsCisJCS5wcml2YXRlID0gRFJNQ0dfQ1RGX1BSSVYo RFJNQ0dfVFlQRV9NRU0sCisJCQkJCQlEUk1DR19GVFlQRV9ERUZBVUxUKSwKKwl9LAorCXsKKwkJ Lm5hbWUgPSAibWVtb3J5LmhpZ2giLAorCQkud3JpdGUgPSBkcm1jZ19saW1pdF93cml0ZSwKKwkJ LnNlcV9zaG93ID0gZHJtY2dfc2VxX3Nob3csCisJCS5wcml2YXRlID0gRFJNQ0dfQ1RGX1BSSVYo RFJNQ0dfVFlQRV9NRU0sCisJCQkJCQlEUk1DR19GVFlQRV9MSU1JVCksCisJfSwKIAl7CiAJCS5u YW1lID0gImJ1cnN0X2J3X3BlcmlvZF9pbl91cyIsCiAJCS53cml0ZSA9IGRybWNnX2xpbWl0X3dy aXRlLApAQCAtNzMxLDYgKzc4Niw4IEBAIEVYUE9SVF9TWU1CT0woZHJtY2dfZGV2aWNlX3VwZGF0 ZSk7CiAgKi8KIHZvaWQgZHJtY2dfZGV2aWNlX2Vhcmx5X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKKwlpbnQgaTsKKwogCWRldi0+ZHJtY2dfcHJvcHMubGltaXRfZW5mb3JjZWQgPSBm YWxzZTsKIAogCWRldi0+ZHJtY2dfcHJvcHMuYm9fbGltaXRzX3RvdGFsX2FsbG9jYXRlZF9kZWZh dWx0ID0gUzY0X01BWDsKQEAgLTc0MCw2ICs3OTcsOSBAQCB2b2lkIGRybWNnX2RldmljZV9lYXJs eV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2LT5kcm1jZ19wcm9wcy5tZW1fYndf Ynl0ZXNfaW5fcGVyaW9kX2RlZmF1bHQgPSBTNjRfTUFYOwogCWRldi0+ZHJtY2dfcHJvcHMubWVt X2J3X2F2Z19ieXRlc19wZXJfdXNfZGVmYXVsdCA9IDY1NTM2OwogCisJZm9yIChpID0gMDsgaSA8 PSBUVE1fUExfUFJJVjsgaSsrKQorCQlkZXYtPmRybWNnX3Byb3BzLm1lbV9oaWdoc19kZWZhdWx0 W2ldID0gUzY0X01BWDsKKwogCWRybWNnX3VwZGF0ZV9jZ190cmVlKGRldik7CiB9CiBFWFBPUlRf U1lNQk9MKGRybWNnX2RldmljZV9lYXJseV9pbml0KTsKQEAgLTEwMDgsMyArMTA2OCw3OCBAQCBi b29sIGRybWNnX21lbV9jYW5fbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKIAly ZXR1cm4gcmVzdWx0OwogfQogRVhQT1JUX1NZTUJPTChkcm1jZ19tZW1fY2FuX21vdmUpOworCitz dGF0aWMgaW5saW5lIHZvaWQgZHJtY2dfbWVtX3NldF9wcmVzc3VyZShzdHJ1Y3QgZHJtY2cgKmRy bWNnLAorCQlpbnQgZGV2SWR4LCB1bnNpZ25lZCBpbnQgbWVtX3R5cGUsIGJvb2wgcHJlc3N1cmVf dmFsKQoreworCXN0cnVjdCBkcm1jZ19kZXZpY2VfcmVzb3VyY2UgKmRkcjsKKwlzdHJ1Y3QgY2dy b3VwX3N1YnN5c19zdGF0ZSAqcG9zOworCXN0cnVjdCBkcm1jZyAqbm9kZTsKKworCWNzc19mb3Jf ZWFjaF9kZXNjZW5kYW50X3ByZShwb3MsICZkcm1jZy0+Y3NzKSB7CisJCW5vZGUgPSBjc3NfdG9f ZHJtY2cocG9zKTsKKwkJZGRyID0gbm9kZS0+ZGV2X3Jlc291cmNlc1tkZXZJZHhdOworCQlkZHIt Pm1lbV9wcmVzc3VyZVttZW1fdHlwZV0gPSBwcmVzc3VyZV92YWw7CisJfQorfQorCitzdGF0aWMg aW5saW5lIGJvb2wgZHJtY2dfbWVtX2NoZWNrKHN0cnVjdCBkcm1jZyAqZHJtY2csIGludCBkZXZJ ZHgsCisJCXVuc2lnbmVkIGludCBtZW1fdHlwZSkKK3sKKwlzdHJ1Y3QgZHJtY2dfZGV2aWNlX3Jl c291cmNlICpkZHIgPSBkcm1jZy0+ZGV2X3Jlc291cmNlc1tkZXZJZHhdOworCisJLyogYWxyZWFk eSB1bmRlciBwcmVzc3VyZSwgbm8gbmVlZCB0byBjaGVjayBhbmQgc2V0ICovCisJaWYgKGRkci0+ bWVtX3ByZXNzdXJlW21lbV90eXBlXSkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoZGRyLT5tZW1f c3RhdHNbbWVtX3R5cGVdID49IGRkci0+bWVtX2hpZ2hzW21lbV90eXBlXSkgeworCQlkcm1jZ19t ZW1fc2V0X3ByZXNzdXJlKGRybWNnLCBkZXZJZHgsIG1lbV90eXBlLCB0cnVlKTsKKwkJcmV0dXJu IHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitib29sIGRybWNnX21lbV9wcmVzc3Vy ZV9zY2FuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBpbnQgdHlwZSkKK3sK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYmRldi0+ZGRldjsKKwlzdHJ1Y3QgY2dyb3VwX3N1 YnN5c19zdGF0ZSAqcG9zOworCXN0cnVjdCBkcm1jZyAqbm9kZTsKKwlpbnQgZGV2SWR4OworCWJv b2wgcmVzdWx0ID0gZmFsc2U7CisKKwkvL1RPRE8gcmVwbGFjZSB3aXRoIEJVR19PTgorCWlmIChk ZXYgPT0gTlVMTCB8fCB0eXBlICE9IFRUTV9QTF9WUkFNKSAvKiBvbmx5IHZyYW0gbGltaXQgZm9y IG5vdyAqLworCQlyZXR1cm4gZmFsc2U7CisKKwlkZXZJZHggPSBkZXYtPnByaW1hcnktPmluZGV4 OworCisJdHlwZSA9IHR5cGUgPiBUVE1fUExfUFJJViA/IFRUTV9QTF9QUklWIDogdHlwZTsKKwor CXJjdV9yZWFkX2xvY2soKTsKKwlkcm1jZ19tZW1fc2V0X3ByZXNzdXJlKHJvb3RfZHJtY2csIGRl dklkeCwgdHlwZSwgZmFsc2UpOworCisJY3NzX2Zvcl9lYWNoX2Rlc2NlbmRhbnRfcHJlKHBvcywg JnJvb3RfZHJtY2ctPmNzcykgeworCQlub2RlID0gY3NzX3RvX2RybWNnKHBvcyk7CisJCXJlc3Vs dCB8PSBkcm1jZ19tZW1fY2hlY2sobm9kZSwgZGV2SWR4LCB0eXBlKTsKKwl9CisJcmN1X3JlYWRf dW5sb2NrKCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorRVhQT1JUX1NZTUJPTChkcm1jZ19tZW1f cHJlc3N1cmVfc2Nhbik7CisKK2Jvb2wgZHJtY2dfbWVtX3Nob3VsZF9ldmljdChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKnRibywgdW5zaWduZWQgaW50IHR5cGUpCit7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IHRiby0+YmRldi0+ZGRldjsKKwlpbnQgZGV2SWR4OworCisJLy9UT0RPIHJl cGxhY2Ugd2l0aCBCVUdfT04KKwlpZiAoZGV2ID09IE5VTEwpCisJCXJldHVybiB0cnVlOworCisJ ZGV2SWR4ID0gZGV2LT5wcmltYXJ5LT5pbmRleDsKKworCXJldHVybiB0Ym8tPmRybWNnLT5kZXZf cmVzb3VyY2VzW2RldklkeF0tPm1lbV9wcmVzc3VyZVt0eXBlXTsKK30KK0VYUE9SVF9TWU1CT0wo ZHJtY2dfbWVtX3Nob3VsZF9ldmljdCk7Ci0tIAoyLjIyLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==