From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenny Ho Subject: [RFC PATCH v3 07/11] drm, cgroup: Add TTM buffer allocation stats Date: Wed, 26 Jun 2019 11:05:18 -0400 Message-ID: <20190626150522.11618-8-Kenny.Ho@amd.com> References: <20190626150522.11618-1-Kenny.Ho@amd.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190626150522.11618-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, joseph.greathouse@amd.com, jsparks@cray.com, lkaplan@cray.com Cc: Kenny Ho VGhlIGRybSByZXNvdXJjZSBiZWluZyBtZWFzdXJlZCBpcyB0aGUgVFRNIChUcmFuc2xhdGlvbiBU YWJsZSBNYW5hZ2VyKQpidWZmZXJzLiAgVFRNIG1hbmFnZXMgZGlmZmVyZW50IHR5cGVzIG9mIG1l bW9yeSB0aGF0IGEgR1BVIG1pZ2h0IGFjY2Vzcy4KVGhlc2UgbWVtb3J5IHR5cGVzIGluY2x1ZGUg ZGVkaWNhdGVkIFZpZGVvIFJBTSAoVlJBTSkgYW5kIGhvc3Qvc3lzdGVtCm1lbW9yeSBhY2Nlc3Np YmxlIHRocm91Z2ggSU9NTVUgKEdBUlQvR1RUKS4gIFRUTSBpcyBjdXJyZW50bHkgdXNlZCBieQpt dWx0aXBsZSBkcm0gZHJpdmVycyAoYW1kLCBhc3QsIGJvY2hzLCBjaXJydXMsIGhpc2lsaWNvbiwg bWFnYTIwMCwKbm91dmVhdSwgcXhsLCB2aXJ0aW8sIHZtd2dmeC4pCgpkcm0ubWVtb3J5LnN0YXRz CiAgICAgICAgQSByZWFkLW9ubHkgbmVzdGVkLWtleWVkIGZpbGUgd2hpY2ggZXhpc3RzIG9uIGFs bCBjZ3JvdXBzLgogICAgICAgIEVhY2ggZW50cnkgaXMga2V5ZWQgYnkgdGhlIGRybSBkZXZpY2Un cyBtYWpvcjptaW5vci4gIFRoZQogICAgICAgIGZvbGxvd2luZyBuZXN0ZWQga2V5cyBhcmUgZGVm aW5lZC4KCiAgICAgICAgICA9PT09PT0gICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgIHN5c3RlbSAgICAgICAgIEhvc3Qvc3lzdGVt IG1lbW9yeQogICAgICAgICAgdHQgICAgICAgICAgICAgSG9zdCBtZW1vcnkgdXNlZCBieSB0aGUg ZHJtIGRldmljZSAoR1RUL0dBUlQpCiAgICAgICAgICB2cmFtICAgICAgICAgICBWaWRlbyBSQU0g dXNlZCBieSB0aGUgZHJtIGRldmljZQogICAgICAgICAgcHJpdiAgICAgICAgICAgT3RoZXIgZHJt IGRldmljZSwgdmVuZG9yIHNwZWNpZmljIG1lbW9yeQogICAgICAgICAgPT09PT09ICAgICAgICAg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIFJl YWRpbmcgcmV0dXJucyB0aGUgZm9sbG93aW5nOjoKCiAgICAgICAgMjI2OjAgc3lzdGVtPTAgdHQ9 MCB2cmFtPTAgcHJpdj0wCiAgICAgICAgMjI2OjEgc3lzdGVtPTAgdHQ9OTAzNTc3NiB2cmFtPTE3 NzY4NDQ4IHByaXY9MTY4MDk5ODQKICAgICAgICAyMjY6MiBzeXN0ZW09MCB0dD05MDM1Nzc2IHZy YW09MTc3Njg0NDggcHJpdj0xNjgwOTk4NAoKZHJtLm1lbW9yeS5ldmljdC5zdGF0cwogICAgICAg IEEgcmVhZC1vbmx5IGZsYXQta2V5ZWQgZmlsZSB3aGljaCBleGlzdHMgb24gYWxsIGNncm91cHMu ICBFYWNoCiAgICAgICAgZW50cnkgaXMga2V5ZWQgYnkgdGhlIGRybSBkZXZpY2UncyBtYWpvcjpt aW5vci4KCiAgICAgICAgVG90YWwgbnVtYmVyIG9mIGV2aWN0aW9ucy4KCkNoYW5nZS1JZDogSWNl MmM0Y2M4NDUwNTEyMjk1NDliZWJlYjZhYTJkN2Q2MTUzYmRmNmEKU2lnbmVkLW9mZi1ieTogS2Vu bnkgSG8gPEtlbm55LkhvQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3R0bS5jIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAg ICAgICAgfCAgMzAgKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAg ICAgIHwgICA0ICsKIGluY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaCAgICAgICAgICAgICAgICB8ICAx OSArKysrCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAgfCAgIDIgKwog aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgIHwgICA4ICsrCiBpbmNsdWRl L2xpbnV4L2Nncm91cF9kcm0uaCAgICAgICAgICAgICAgfCAgIDQgKwoga2VybmVsL2Nncm91cC9k cm0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKwog OCBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwppbmRleCBlOWVjYzM5NTM2NzMuLmE4ZGZj NzhlZDQ1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwpAQCAtMTY3 OCw4ICsxNjc4LDkgQEAgaW50IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAltdXRleF9pbml0KCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CiAKIAkvKiBO byBvdGhlcnMgdXNlciBvZiBhZGRyZXNzIHNwYWNlIHNvIHNldCBpdCB0byAwICovCi0JciA9IHR0 bV9ib19kZXZpY2VfaW5pdCgmYWRldi0+bW1hbi5iZGV2LAorCXIgPSB0dG1fYm9fZGV2aWNlX2lu aXRfdG1wKCZhZGV2LT5tbWFuLmJkZXYsCiAJCQkgICAgICAgJmFtZGdwdV9ib19kcml2ZXIsCisJ CQkgICAgICAgYWRldi0+ZGRldiwKIAkJCSAgICAgICBhZGV2LT5kZGV2LT5hbm9uX2lub2RlLT5p X21hcHBpbmcsCiAJCQkgICAgICAgYWRldi0+bmVlZF9kbWEzMik7CiAJaWYgKHIpIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9iby5jCmluZGV4IDI4NDVmY2ViMmZiZC4uZTlmNzA1NDdmMGFkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tb2R1bGUuaD4K ICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0 bV9wbGFjZW1lbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Nncm91cC5oPgogI2luY2x1ZGUgPGxp bnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4KQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNp bmNsdWRlIDxsaW51eC9hdG9taWMuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgor I2luY2x1ZGUgPGxpbnV4L2Nncm91cF9kcm0uaD4KIAogc3RhdGljIHZvaWQgdHRtX2JvX2dsb2Jh bF9rb2JqX3JlbGVhc2Uoc3RydWN0IGtvYmplY3QgKmtvYmopOwogCkBAIC0xNTEsNiArMTUzLDEw IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlX2xpc3Qoc3RydWN0IGtyZWYgKmxpc3Rfa3Jl ZikKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2OwogCXNpemVfdCBhY2Nf c2l6ZSA9IGJvLT5hY2Nfc2l6ZTsKIAorCWlmIChiby0+YmRldi0+ZGRldiAhPSBOVUxMKSAvLyBU T0RPOiByZW1vdmUgYWZ0ZXIgZGRldiBpbml0aWF6bGllZCBmb3IgYWxsCisJCWRybWNncnBfdW5j aGdfbWVtKGJvKTsKKwlwdXRfZHJtY2dycChiby0+ZHJtY2dycCk7CisKIAlCVUdfT04oa3JlZl9y ZWFkKCZiby0+bGlzdF9rcmVmKSk7CiAJQlVHX09OKGtyZWZfcmVhZCgmYm8tPmtyZWYpKTsKIAlC VUdfT04oYXRvbWljX3JlYWQoJmJvLT5jcHVfd3JpdGVycykpOwpAQCAtMzUzLDYgKzM1OSw4IEBA IHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAogCQlpZiAoYm8tPm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVNKSB7CiAJCQlp ZiAoYmRldi0+ZHJpdmVyLT5tb3ZlX25vdGlmeSkKIAkJCQliZGV2LT5kcml2ZXItPm1vdmVfbm90 aWZ5KGJvLCBldmljdCwgbWVtKTsKKwkJCWlmIChiby0+YmRldi0+ZGRldiAhPSBOVUxMKSAvLyBU T0RPOiByZW1vdmUgYWZ0ZXIgZGRldiBpbml0aWF6bGllZCBmb3IgYWxsCisJCQkJZHJtY2dycF9t ZW1fdHJhY2tfbW92ZShibywgZXZpY3QsIG1lbSk7CiAJCQliby0+bWVtID0gKm1lbTsKIAkJCW1l bS0+bW1fbm9kZSA9IE5VTEw7CiAJCQlnb3RvIG1vdmVkOwpAQCAtMzYxLDYgKzM2OSw4IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAogCiAJaWYgKGJkZXYtPmRyaXZlci0+bW92ZV9ub3RpZnkpCiAJCWJkZXYtPmRyaXZlci0+ bW92ZV9ub3RpZnkoYm8sIGV2aWN0LCBtZW0pOworCWlmIChiby0+YmRldi0+ZGRldiAhPSBOVUxM KSAvLyBUT0RPOiByZW1vdmUgYWZ0ZXIgZGRldiBpbml0aWF6bGllZCBmb3IgYWxsCisJCWRybWNn cnBfbWVtX3RyYWNrX21vdmUoYm8sIGV2aWN0LCBtZW0pOwogCiAJaWYgKCEob2xkX21hbi0+Zmxh Z3MgJiBUVE1fTUVNVFlQRV9GTEFHX0ZJWEVEKSAmJgogCSAgICAhKG5ld19tYW4tPmZsYWdzICYg VFRNX01FTVRZUEVfRkxBR19GSVhFRCkpCkBAIC0zNzQsNiArMzg0LDggQEAgc3RhdGljIGludCB0 dG1fYm9faGFuZGxlX21vdmVfbWVtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlm IChiZGV2LT5kcml2ZXItPm1vdmVfbm90aWZ5KSB7CiAJCQlzd2FwKCptZW0sIGJvLT5tZW0pOwog CQkJYmRldi0+ZHJpdmVyLT5tb3ZlX25vdGlmeShibywgZmFsc2UsIG1lbSk7CisJCQlpZiAoYm8t PmJkZXYtPmRkZXYgIT0gTlVMTCkgLy8gVE9ETzogcmVtb3ZlIGFmdGVyIGRkZXYgaW5pdGlhemxp ZWQgZm9yIGFsbAorCQkJCWRybWNncnBfbWVtX3RyYWNrX21vdmUoYm8sIGV2aWN0LCBtZW0pOwog CQkJc3dhcCgqbWVtLCBiby0+bWVtKTsKIAkJfQogCkBAIC0xMjc1LDYgKzEyODcsMTAgQEAgaW50 IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCQlXQVJO X09OKCFsb2NrZWQpOwogCX0KIAorCWJvLT5kcm1jZ3JwID0gZ2V0X2RybWNncnAoY3VycmVudCk7 CisJaWYgKGJvLT5iZGV2LT5kZGV2ICE9IE5VTEwpIC8vIFRPRE86IHJlbW92ZSBhZnRlciBkZGV2 IGluaXRpYXpsaWVkIGZvciBhbGwKKwkJZHJtY2dycF9jaGdfbWVtKGJvKTsKKwogCWlmIChsaWtl bHkoIXJldCkpCiAJCXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgcGxhY2VtZW50LCBjdHgpOwog CkBAIC0xNjY2LDYgKzE2ODIsMjAgQEAgaW50IHR0bV9ib19kZXZpY2VfaW5pdChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2JvX2RldmljZV9pbml0KTsK IAorLyogVE9ETyBtZXJnZSB3aXRoIG9mZmljaWFsIGZ1bmN0aW9uIHdoZW4gaW1wbGVtZW50YXRp b24gZmluYWxpemVkKi8KK2ludCB0dG1fYm9fZGV2aWNlX2luaXRfdG1wKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAorCQlzdHJ1Y3QgdHRtX2JvX2RyaXZlciAqZHJpdmVyLAorCQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGRldiwKKwkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCisJCWJv b2wgbmVlZF9kbWEzMikKK3sKKwlpbnQgcmV0ID0gdHRtX2JvX2RldmljZV9pbml0KGJkZXYsIGRy aXZlciwgbWFwcGluZywgbmVlZF9kbWEzMik7CisKKwliZGV2LT5kZGV2ID0gZGRldjsKKwlyZXR1 cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTCh0dG1fYm9fZGV2aWNlX2luaXRfdG1wKTsKKwogLyoK ICAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgogICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191 dGlsLmMKaW5kZXggODk1ZDc3ZDc5OWU0Li40ZWQ3ODQ3YzIxZjQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib191dGlsLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19k cml2ZXIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4KICNpbmNsdWRlIDxk cm0vZHJtX3ZtYV9tYW5hZ2VyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jZ3JvdXAuaD4KICNpbmNs dWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxs aW51eC93YWl0Lmg+CkBAIC01MjIsNiArNTIzLDkgQEAgc3RhdGljIGludCB0dG1fYnVmZmVyX29i amVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXJldCA9IHJlc2Vy dmF0aW9uX29iamVjdF90cnlsb2NrKGZiby0+YmFzZS5yZXN2KTsKIAlXQVJOX09OKCFyZXQpOwog CisJaWYgKGJvLT5iZGV2LT5kZGV2ICE9IE5VTEwpIC8vIFRPRE86IHJlbW92ZSBhZnRlciBkZGV2 IGluaXRpYXpsaWVkIGZvciBhbGwKKwkJZHJtY2dycF9jaGdfbWVtKGJvKTsKKwogCSpuZXdfb2Jq ID0gJmZiby0+YmFzZTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9jZ3JvdXAuaCBiL2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaAppbmRleCA4NzExYjdjNWY3YmYu LjQ4YWI1NDUwY2YxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oCisrKyBi L2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaApAQCAtNSw2ICs1LDcgQEAKICNkZWZpbmUgX19EUk1f Q0dST1VQX0hfXwogCiAjaW5jbHVkZSA8bGludXgvY2dyb3VwX2RybS5oPgorI2luY2x1ZGUgPGRy bS90dG0vdHRtX2JvX2FwaS5oPgogCiAjaWZkZWYgQ09ORklHX0NHUk9VUF9EUk0KIApAQCAtMTgs NiArMTksMTEgQEAgdm9pZCBkcm1jZ3JwX3VuY2hnX2JvX2FsbG9jKHN0cnVjdCBkcm1jZ3JwICpk cm1jZ3JwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlzaXplX3Qgc2l6ZSk7CiBib29sIGRy bWNncnBfYm9fY2FuX2FsbG9jYXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJc2l6ZV90IHNpemUpOwordm9pZCBkcm1jZ3JwX2NoZ19tZW0oc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pOwordm9pZCBkcm1jZ3JwX3VuY2hnX21lbShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibyk7Cit2b2lkIGRybWNncnBfbWVtX3RyYWNrX21vdmUo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpvbGRfYm8sIGJvb2wgZXZpY3QsCisJCXN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSk7CisKICNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBkcm1jZ3Jw X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2aWNlKQogewpAQCAtNTAsNSAr NTYsMTggQEAgc3RhdGljIGlubGluZSBib29sIGRybWNncnBfYm9fY2FuX2FsbG9jYXRlKHN0cnVj dCB0YXNrX3N0cnVjdCAqdGFzaywKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KKworc3RhdGljIGlubGlu ZSB2b2lkIGRybWNncnBfY2hnX21lbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKK3sK K30KKworc3RhdGljIGlubGluZSB2b2lkIGRybWNncnBfdW5jaGdfbWVtKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqdGJvKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZHJtY2dycF9tZW1f dHJhY2tfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKm9sZF9ibywKKwkJYm9vbCBldmlj dCwgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQoreworfQogI2VuZGlmIC8qIENPTkZJR19D R1JPVVBfRFJNICovCiAjZW5kaWYgLyogX19EUk1fQ0dST1VQX0hfXyAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBp LmgKaW5kZXggNDlkOWNkZmM1OGYyLi5hZTFiYjZkYWVjODEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaApA QCAtMTI4LDYgKzEyOCw3IEBAIHN0cnVjdCB0dG1fdHQ7CiAgKiBzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QKICAqCiAgKiBAYmRldjogUG9pbnRlciB0byB0aGUgYnVmZmVyIG9iamVjdCBkZXZpY2Ug c3RydWN0dXJlLgorICogQGRybWNncnA6IERSTSBjZ3JvdXAgdGhpcyBvYmplY3QgYmVsb25ncyB0 by4KICAqIEB0eXBlOiBUaGUgYm8gdHlwZS4KICAqIEBkZXN0cm95OiBEZXN0cnVjdGlvbiBmdW5j dGlvbi4gSWYgTlVMTCwga2ZyZWUgaXMgdXNlZC4KICAqIEBudW1fcGFnZXM6IEFjdHVhbCBudW1i ZXIgb2YgcGFnZXMuCkBAIC0xNzQsNiArMTc1LDcgQEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 IHsKIAkgKi8KIAogCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2OworCXN0cnVjdCBkcm1jZ3Jw ICpkcm1jZ3JwOwogCWVudW0gdHRtX2JvX3R5cGUgdHlwZTsKIAl2b2lkICgqZGVzdHJveSkgKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKTsKIAl1bnNpZ25lZCBsb25nIG51bV9wYWdlczsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90 dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IGMwMDgzNDZjMjQwMS4uNGNiY2I0MWU1YWE5IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBiL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZm5kZWYgX1RUTV9CT19E UklWRVJfSF8KICNkZWZpbmUgX1RUTV9CT19EUklWRVJfSF8KIAorI2luY2x1ZGUgPGRybS9kcm1f ZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fdm1h X21hbmFnZXIuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KQEAgLTQ0Miw2ICs0NDMs NyBAQCBleHRlcm4gc3RydWN0IHR0bV9ib19nbG9iYWwgewogICogQGRyaXZlcjogUG9pbnRlciB0 byBhIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHN0cnVjdCBzZXR1cCBieSB0aGUgZHJpdmVyLgogICog QG1hbjogQW4gYXJyYXkgb2YgbWVtX3R5cGVfbWFuYWdlcnMuCiAgKiBAdm1hX21hbmFnZXI6IEFk ZHJlc3Mgc3BhY2UgbWFuYWdlcgorICogQGRkZXY6IFBvaW50ZXIgdG8gc3RydWN0IGRybV9kZXZp Y2UgdGhhdCB0aGlzIHR0bV9ib19kZXZpY2UgYmVsb25ncyB0bwogICogbHJ1X2xvY2s6IFNwaW5s b2NrIHRoYXQgcHJvdGVjdHMgdGhlIGJ1ZmZlcitkZXZpY2UgbHJ1IGxpc3RzIGFuZAogICogZGRl c3Ryb3kgbGlzdHMuCiAgKiBAZGV2X21hcHBpbmc6IEEgcG9pbnRlciB0byB0aGUgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgcmVwcmVzZW50aW5nIHRoZQpAQCAtNDYwLDYgKzQ2Miw3IEBAIHN0cnVjdCB0 dG1fYm9fZGV2aWNlIHsKIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYjsKIAlzdHJ1Y3QgdHRt X2JvX2RyaXZlciAqZHJpdmVyOwogCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBtYW5bVFRN X05VTV9NRU1fVFlQRVNdOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2OwogCiAJLyoKIAkgKiBQ cm90ZWN0ZWQgYnkgaW50ZXJuYWwgbG9ja3MuCkBAIC01OTgsNiArNjAxLDExIEBAIGludCB0dG1f Ym9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCSAgICAgICBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJICAgICAgIGJvb2wgbmVlZF9kbWEzMik7CiAK K2ludCB0dG1fYm9fZGV2aWNlX2luaXRfdG1wKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAor CQkgICAgICAgc3RydWN0IHR0bV9ib19kcml2ZXIgKmRyaXZlciwKKwkJICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZGV2LAorCQkgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs CisJCSAgICAgICBib29sIG5lZWRfZG1hMzIpOwogLyoqCiAgKiB0dG1fYm9fdW5tYXBfdmlydHVh bAogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oIGIvaW5jbHVkZS9s aW51eC9jZ3JvdXBfZHJtLmgKaW5kZXggZTQ0MDBiMjFhYjhlLi4xNDFiZWEwNmY3NGMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2dy b3VwX2RybS5oCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5j bHVkZSA8bGludXgvY2dyb3VwLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CisjaW5jbHVk ZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+CiAKIC8qIGxpbWl0IGRlZmluZWQgcGVyIHRoZSB3 YXkgZHJtX21pbm9yX2FsbG9jIG9wZXJhdGVzICovCiAjZGVmaW5lIE1BWF9EUk1fREVWICg2NCAq IERSTV9NSU5PUl9SRU5ERVIpCkBAIC0yMiw2ICsyMyw5IEBAIHN0cnVjdCBkcm1jZ3JwX2Rldmlj ZV9yZXNvdXJjZSB7CiAJc2l6ZV90CQkJYm9fbGltaXRzX3BlYWtfYWxsb2NhdGVkOwogCiAJczY0 CQkJYm9fc3RhdHNfY291bnRfYWxsb2NhdGVkOworCisJczY0CQkJbWVtX3N0YXRzW1RUTV9QTF9Q UklWKzFdOworCXM2NAkJCW1lbV9zdGF0c19ldmljdDsKIH07CiAKIHN0cnVjdCBkcm1jZ3JwIHsK ZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAvZHJtLmMgYi9rZXJuZWwvY2dyb3VwL2RybS5jCmlu ZGV4IDkxNDRmOTNiODUxZi4uNWFlZTQyYTYyOGMxIDEwMDY0NAotLS0gYS9rZXJuZWwvY2dyb3Vw L2RybS5jCisrKyBiL2tlcm5lbC9jZ3JvdXAvZHJtLmMKQEAgLTgsNiArOCw4IEBACiAjaW5jbHVk ZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9jZ3JvdXBfZHJtLmg+CiAjaW5jbHVk ZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+CisjaW5j bHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2Uu aD4KICNpbmNsdWRlIDxkcm0vZHJtX2lvY3RsLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jZ3JvdXAu aD4KQEAgLTM0LDYgKzM2LDggQEAgZW51bSBkcm1jZ3JwX3Jlc190eXBlIHsKIAlEUk1DR1JQX1RZ UEVfQk9fVE9UQUwsCiAJRFJNQ0dSUF9UWVBFX0JPX1BFQUssCiAJRFJNQ0dSUF9UWVBFX0JPX0NP VU5ULAorCURSTUNHUlBfVFlQRV9NRU0sCisJRFJNQ0dSUF9UWVBFX01FTV9FVklDVCwKIH07CiAK IGVudW0gZHJtY2dycF9maWxlX3R5cGUgewpAQCAtNDIsNiArNDYsMTMgQEAgZW51bSBkcm1jZ3Jw X2ZpbGVfdHlwZSB7CiAJRFJNQ0dSUF9GVFlQRV9ERUZBVUxULAogfTsKIAorc3RhdGljIGNoYXIg Y29uc3QgKnR0bV9wbGFjZW1lbnRfbmFtZXNbXSA9IHsKKwlbVFRNX1BMX1NZU1RFTV0gPSAic3lz dGVtIiwKKwlbVFRNX1BMX1RUXSAgICAgPSAidHQiLAorCVtUVE1fUExfVlJBTV0gICA9ICJ2cmFt IiwKKwlbVFRNX1BMX1BSSVZdICAgPSAicHJpdiIsCit9OworCiAvKiBpbmRleGVkIGJ5IGRybV9t aW5vciBmb3IgYWNjZXNzIHNwZWVkICovCiBzdGF0aWMgc3RydWN0IGRybWNncnBfZGV2aWNlCSpr bm93bl9kcm1jZ3JwX2RldnNbTUFYX0RSTV9ERVZdOwogCkBAIC0xMzQsNiArMTQ1LDcgQEAgZHJt Y2dycF9jc3NfYWxsb2Moc3RydWN0IGNncm91cF9zdWJzeXNfc3RhdGUgKnBhcmVudF9jc3MpCiBz dGF0aWMgaW5saW5lIHZvaWQgZHJtY2dycF9wcmludF9zdGF0cyhzdHJ1Y3QgZHJtY2dycF9kZXZp Y2VfcmVzb3VyY2UgKmRkciwKIAkJc3RydWN0IHNlcV9maWxlICpzZiwgZW51bSBkcm1jZ3JwX3Jl c190eXBlIHR5cGUpCiB7CisJaW50IGk7CiAJaWYgKGRkciA9PSBOVUxMKSB7CiAJCXNlcV9wdXRz KHNmLCAiXG4iKTsKIAkJcmV0dXJuOwpAQCAtMTQ5LDYgKzE2MSwxNiBAQCBzdGF0aWMgaW5saW5l IHZvaWQgZHJtY2dycF9wcmludF9zdGF0cyhzdHJ1Y3QgZHJtY2dycF9kZXZpY2VfcmVzb3VyY2Ug KmRkciwKIAljYXNlIERSTUNHUlBfVFlQRV9CT19DT1VOVDoKIAkJc2VxX3ByaW50ZihzZiwgIiVs bGRcbiIsIGRkci0+Ym9fc3RhdHNfY291bnRfYWxsb2NhdGVkKTsKIAkJYnJlYWs7CisJY2FzZSBE Uk1DR1JQX1RZUEVfTUVNOgorCQlmb3IgKGkgPSAwOyBpIDw9IFRUTV9QTF9QUklWOyBpKyspIHsK KwkJCXNlcV9wcmludGYoc2YsICIlcz0lbGxkICIsIHR0bV9wbGFjZW1lbnRfbmFtZXNbaV0sCisJ CQkJCWRkci0+bWVtX3N0YXRzW2ldKTsKKwkJfQorCQlzZXFfcHV0cyhzZiwgIlxuIik7CisJCWJy ZWFrOworCWNhc2UgRFJNQ0dSUF9UWVBFX01FTV9FVklDVDoKKwkJc2VxX3ByaW50ZihzZiwgIiVs bGRcbiIsIGRkci0+bWVtX3N0YXRzX2V2aWN0KTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJc2Vx X3B1dHMoc2YsICJcbiIpOwogCQlicmVhazsKQEAgLTQwNiw2ICs0MjgsMTggQEAgc3RydWN0IGNm dHlwZSBmaWxlc1tdID0gewogCQkucHJpdmF0ZSA9IERSTUNHX0NURl9QUklWKERSTUNHUlBfVFlQ RV9CT19DT1VOVCwKIAkJCQkJCURSTUNHUlBfRlRZUEVfU1RBVFMpLAogCX0sCisJeworCQkubmFt ZSA9ICJtZW1vcnkuc3RhdHMiLAorCQkuc2VxX3Nob3cgPSBkcm1jZ3JwX2JvX3Nob3csCisJCS5w cml2YXRlID0gRFJNQ0dfQ1RGX1BSSVYoRFJNQ0dSUF9UWVBFX01FTSwKKwkJCQkJCURSTUNHUlBf RlRZUEVfU1RBVFMpLAorCX0sCisJeworCQkubmFtZSA9ICJtZW1vcnkuZXZpY3Quc3RhdHMiLAor CQkuc2VxX3Nob3cgPSBkcm1jZ3JwX2JvX3Nob3csCisJCS5wcml2YXRlID0gRFJNQ0dfQ1RGX1BS SVYoRFJNQ0dSUF9UWVBFX01FTV9FVklDVCwKKwkJCQkJCURSTUNHUlBfRlRZUEVfU1RBVFMpLAor CX0sCiAJeyB9CS8qIHRlcm1pbmF0ZSAqLwogfTsKIApAQCAtNTU1LDMgKzU4OSw4MiBAQCB2b2lk IGRybWNncnBfdW5jaGdfYm9fYWxsb2Moc3RydWN0IGRybWNncnAgKmRybWNncnAsIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJbXV0ZXhfdW5sb2NrKCZrbm93bl9kcm1jZ3JwX2RldnNbZGV2SWR4 XS0+bXV0ZXgpOwogfQogRVhQT1JUX1NZTUJPTChkcm1jZ3JwX3VuY2hnX2JvX2FsbG9jKTsKKwor dm9pZCBkcm1jZ3JwX2NoZ19tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHRiby0+YmRldi0+ZGRldjsKKwlzdHJ1Y3QgZHJtY2dy cCAqZHJtY2dycCA9IHRiby0+ZHJtY2dycDsKKwlpbnQgZGV2SWR4ID0gZGV2LT5wcmltYXJ5LT5p bmRleDsKKwlzNjQgc2l6ZSA9IChzNjQpKHRiby0+bWVtLnNpemUpOworCWludCBtZW1fdHlwZSA9 IHRiby0+bWVtLm1lbV90eXBlOworCXN0cnVjdCBkcm1jZ3JwX2RldmljZV9yZXNvdXJjZSAqZGRy OworCisJaWYgKGRybWNncnAgPT0gTlVMTCB8fCBrbm93bl9kcm1jZ3JwX2RldnNbZGV2SWR4XSA9 PSBOVUxMKQorCQlyZXR1cm47CisKKwltZW1fdHlwZSA9IG1lbV90eXBlID4gVFRNX1BMX1BSSVYg PyBUVE1fUExfUFJJViA6IG1lbV90eXBlOworCisJbXV0ZXhfbG9jaygma25vd25fZHJtY2dycF9k ZXZzW2RldklkeF0tPm11dGV4KTsKKwlmb3IgKCA7IGRybWNncnAgIT0gTlVMTDsgZHJtY2dycCA9 IHBhcmVudF9kcm1jZ3JwKGRybWNncnApKSB7CisJCWRkciA9IGRybWNncnAtPmRldl9yZXNvdXJj ZXNbZGV2SWR4XTsKKwkJZGRyLT5tZW1fc3RhdHNbbWVtX3R5cGVdICs9IHNpemU7CisJfQorCW11 dGV4X3VubG9jaygma25vd25fZHJtY2dycF9kZXZzW2RldklkeF0tPm11dGV4KTsKK30KK0VYUE9S VF9TWU1CT0woZHJtY2dycF9jaGdfbWVtKTsKKwordm9pZCBkcm1jZ3JwX3VuY2hnX21lbShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g dGJvLT5iZGV2LT5kZGV2OworCXN0cnVjdCBkcm1jZ3JwICpkcm1jZ3JwID0gdGJvLT5kcm1jZ3Jw OworCWludCBkZXZJZHggPSBkZXYtPnByaW1hcnktPmluZGV4OworCXM2NCBzaXplID0gKHM2NCko dGJvLT5tZW0uc2l6ZSk7CisJaW50IG1lbV90eXBlID0gdGJvLT5tZW0ubWVtX3R5cGU7CisJc3Ry dWN0IGRybWNncnBfZGV2aWNlX3Jlc291cmNlICpkZHI7CisKKwlpZiAoZHJtY2dycCA9PSBOVUxM IHx8IGtub3duX2RybWNncnBfZGV2c1tkZXZJZHhdID09IE5VTEwpCisJCXJldHVybjsKKworCW1l bV90eXBlID0gbWVtX3R5cGUgPiBUVE1fUExfUFJJViA/IFRUTV9QTF9QUklWIDogbWVtX3R5cGU7 CisKKwltdXRleF9sb2NrKCZrbm93bl9kcm1jZ3JwX2RldnNbZGV2SWR4XS0+bXV0ZXgpOworCWZv ciAoIDsgZHJtY2dycCAhPSBOVUxMOyBkcm1jZ3JwID0gcGFyZW50X2RybWNncnAoZHJtY2dycCkp IHsKKwkJZGRyID0gZHJtY2dycC0+ZGV2X3Jlc291cmNlc1tkZXZJZHhdOworCQlkZHItPm1lbV9z dGF0c1ttZW1fdHlwZV0gLT0gc2l6ZTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZrbm93bl9kcm1jZ3Jw X2RldnNbZGV2SWR4XS0+bXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTChkcm1jZ3JwX3VuY2hnX21l bSk7CisKK3ZvaWQgZHJtY2dycF9tZW1fdHJhY2tfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKm9sZF9ibywgYm9vbCBldmljdCwKKwkJc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfYm8tPmJkZXYtPmRkZXY7CisJc3RydWN0 IGRybWNncnAgKmRybWNncnAgPSBvbGRfYm8tPmRybWNncnA7CisJczY0IG1vdmVfaW5fYnl0ZXMg PSAoczY0KShvbGRfYm8tPm1lbS5zaXplKTsKKwlpbnQgZGV2SWR4ID0gZGV2LT5wcmltYXJ5LT5p bmRleDsKKwlpbnQgb2xkX21lbV90eXBlID0gb2xkX2JvLT5tZW0ubWVtX3R5cGU7CisJaW50IG5l d19tZW1fdHlwZSA9IG5ld19tZW0tPm1lbV90eXBlOworCXN0cnVjdCBkcm1jZ3JwX2RldmljZV9y ZXNvdXJjZSAqZGRyOworCXN0cnVjdCBkcm1jZ3JwX2RldmljZSAqa25vd25fZGV2OworCisJa25v d25fZGV2ID0ga25vd25fZHJtY2dycF9kZXZzW2RldklkeF07CisKKwlpZiAoZHJtY2dycCA9PSBO VUxMIHx8IGtub3duX2RldiA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlvbGRfbWVtX3R5cGUgPSBv bGRfbWVtX3R5cGUgPiBUVE1fUExfUFJJViA/IFRUTV9QTF9QUklWIDogb2xkX21lbV90eXBlOwor CW5ld19tZW1fdHlwZSA9IG5ld19tZW1fdHlwZSA+IFRUTV9QTF9QUklWID8gVFRNX1BMX1BSSVYg OiBuZXdfbWVtX3R5cGU7CisKKwltdXRleF9sb2NrKCZrbm93bl9kZXYtPm11dGV4KTsKKwlmb3Ig KCA7IGRybWNncnAgIT0gTlVMTDsgZHJtY2dycCA9IHBhcmVudF9kcm1jZ3JwKGRybWNncnApKSB7 CisJCWRkciA9IGRybWNncnAtPmRldl9yZXNvdXJjZXNbZGV2SWR4XTsKKwkJZGRyLT5tZW1fc3Rh dHNbb2xkX21lbV90eXBlXSAtPSBtb3ZlX2luX2J5dGVzOworCQlkZHItPm1lbV9zdGF0c1tuZXdf bWVtX3R5cGVdICs9IG1vdmVfaW5fYnl0ZXM7CisKKwkJaWYgKGV2aWN0KQorCQkJZGRyLT5tZW1f c3RhdHNfZXZpY3QrKzsKKwl9CisJbXV0ZXhfdW5sb2NrKCZrbm93bl9kZXYtPm11dGV4KTsKK30K K0VYUE9SVF9TWU1CT0woZHJtY2dycF9tZW1fdHJhY2tfbW92ZSk7Ci0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==