From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 09/12] drm/tegra: Remove memory allocation from Falcon library Date: Mon, 28 Oct 2019 13:37:15 +0100 Message-ID: <20191028123718.3890217-10-thierry.reding@gmail.com> References: <20191028123718.3890217-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191028123718.3890217-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, Sachin Nikam , dri-devel@lists.freedesktop.org, Puneet Saxena List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkhhdmluZyB0byBwcm92 aWRlIGFsbG9jYXRvciBob29rcyB0byB0aGUgRmFsY29uIGxpYnJhcnkgaXMgc29tZXdoYXQKY3Vt YmVyc29tZSBhbmQgaXQgZG9lc24ndCBnaXZlIHRoZSB1c2VycyBvZiB0aGUgbGlicmFyeSBhIGxv dCBvZgpmbGV4aWJpbGl0eSB0byBkZWFsIHdpdGggYWxsb2NhdGlvbnMuIEluc3RlYWQsIHJlbW92 ZSB0aGUgbm90aW9uIG9mCkZhbGNvbiAib3BlcmF0aW9ucyIgYW5kIGxldCBkcml2ZXJzIGRlYWwg d2l0aCB0aGUgbWVtb3J5IGFsbG9jYXRpb25zCnRoZW1zZWx2ZXMuCgpTaWduZWQtb2ZmLWJ5OiBU aGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90 ZWdyYS9mYWxjb24uYyB8IDUwICsrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90 ZWdyYS9mYWxjb24uaCB8IDExIC0tLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS92aWMuYyAgICB8 IDkxICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NjggaW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3RlZ3JhL2ZhbGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZhbGNvbi5jCmlu ZGV4IGY0OWFkMzZlMjRkYi4uYTViMjVlNGVjYmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdGVncmEvZmFsY29uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZhbGNvbi5jCkBA IC01OSwyNiArNTksMTEgQEAgc3RhdGljIHZvaWQgZmFsY29uX2NvcHlfZmlybXdhcmVfaW1hZ2Uo c3RydWN0IGZhbGNvbiAqZmFsY29uLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUg KmZpcm13YXJlKQogewogCXUzMiAqZmlybXdhcmVfdmFkZHIgPSBmYWxjb24tPmZpcm13YXJlLnZh ZGRyOwotCWRtYV9hZGRyX3QgZGFkZHI7CiAJc2l6ZV90IGk7Ci0JaW50IGVycjsKIAogCS8qIGNv cHkgdGhlIHdob2xlIHRoaW5nIHRha2luZyBpbnRvIGFjY291bnQgZW5kaWFubmVzcyAqLwogCWZv ciAoaSA9IDA7IGkgPCBmaXJtd2FyZS0+c2l6ZSAvIHNpemVvZih1MzIpOyBpKyspCiAJCWZpcm13 YXJlX3ZhZGRyW2ldID0gbGUzMl90b19jcHUoKCh1MzIgKilmaXJtd2FyZS0+ZGF0YSlbaV0pOwot Ci0JLyogZW5zdXJlIHRoYXQgY2FjaGVzIGFyZSBmbHVzaGVkIGFuZCBmYWxjb24gY2FuIHNlZSB0 aGUgZmlybXdhcmUgKi8KLQlkYWRkciA9IGRtYV9tYXBfc2luZ2xlKGZhbGNvbi0+ZGV2LCBmaXJt d2FyZV92YWRkciwKLQkJCSAgICAgICBmYWxjb24tPmZpcm13YXJlLnNpemUsIERNQV9UT19ERVZJ Q0UpOwotCWVyciA9IGRtYV9tYXBwaW5nX2Vycm9yKGZhbGNvbi0+ZGV2LCBkYWRkcik7Ci0JaWYg KGVycikgewotCQlkZXZfZXJyKGZhbGNvbi0+ZGV2LCAiZmFpbGVkIHRvIG1hcCBmaXJtd2FyZTog JWRcbiIsIGVycik7Ci0JCXJldHVybjsKLQl9Ci0JZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uo ZmFsY29uLT5kZXYsIGRhZGRyLAotCQkJCSAgIGZhbGNvbi0+ZmlybXdhcmUuc2l6ZSwgRE1BX1RP X0RFVklDRSk7Ci0JZG1hX3VubWFwX3NpbmdsZShmYWxjb24tPmRldiwgZGFkZHIsIGZhbGNvbi0+ ZmlybXdhcmUuc2l6ZSwKLQkJCSBETUFfVE9fREVWSUNFKTsKIH0KIAogc3RhdGljIGludCBmYWxj b25fcGFyc2VfZmlybXdhcmVfaW1hZ2Uoc3RydWN0IGZhbGNvbiAqZmFsY29uKQpAQCAtMTI1LDYg KzExMCw4IEBAIGludCBmYWxjb25fcmVhZF9maXJtd2FyZShzdHJ1Y3QgZmFsY29uICpmYWxjb24s IGNvbnN0IGNoYXIgKm5hbWUpCiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CiAKKwlmYWxj b24tPmZpcm13YXJlLnNpemUgPSBmYWxjb24tPmZpcm13YXJlLmZpcm13YXJlLT5zaXplOworCiAJ cmV0dXJuIDA7CiB9CiAKQEAgLTEzMywxNiArMTIwLDYgQEAgaW50IGZhbGNvbl9sb2FkX2Zpcm13 YXJlKHN0cnVjdCBmYWxjb24gKmZhbGNvbikKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13 YXJlID0gZmFsY29uLT5maXJtd2FyZS5maXJtd2FyZTsKIAlpbnQgZXJyOwogCi0JZmFsY29uLT5m aXJtd2FyZS5zaXplID0gZmlybXdhcmUtPnNpemU7Ci0KLQkvKiBhbGxvY2F0ZSBpb3ZhIHNwYWNl IGZvciB0aGUgZmlybXdhcmUgKi8KLQlmYWxjb24tPmZpcm13YXJlLnZhZGRyID0gZmFsY29uLT5v cHMtPmFsbG9jKGZhbGNvbiwgZmlybXdhcmUtPnNpemUsCi0JCQkJCQkgICAgJmZhbGNvbi0+Zmly bXdhcmUucGFkZHIpOwotCWlmIChJU19FUlIoZmFsY29uLT5maXJtd2FyZS52YWRkcikpIHsKLQkJ ZGV2X2VycihmYWxjb24tPmRldiwgIkRNQSBtZW1vcnkgbWFwcGluZyBmYWlsZWRcbiIpOwotCQly ZXR1cm4gUFRSX0VSUihmYWxjb24tPmZpcm13YXJlLnZhZGRyKTsKLQl9Ci0KIAkvKiBjb3B5IGZp cm13YXJlIGltYWdlIGludG8gbG9jYWwgYXJlYS4gdGhpcyBhbHNvIGVuc3VyZXMgZW5kaWFubmVz cyAqLwogCWZhbGNvbl9jb3B5X2Zpcm13YXJlX2ltYWdlKGZhbGNvbiwgZmlybXdhcmUpOwogCkBA IC0xNTAsMjcgKzEyNywxNyBAQCBpbnQgZmFsY29uX2xvYWRfZmlybXdhcmUoc3RydWN0IGZhbGNv biAqZmFsY29uKQogCWVyciA9IGZhbGNvbl9wYXJzZV9maXJtd2FyZV9pbWFnZShmYWxjb24pOwog CWlmIChlcnIgPCAwKSB7CiAJCWRldl9lcnIoZmFsY29uLT5kZXYsICJmYWlsZWQgdG8gcGFyc2Ug ZmlybXdhcmUgaW1hZ2VcbiIpOwotCQlnb3RvIGVycl9zZXR1cF9maXJtd2FyZV9pbWFnZTsKKwkJ cmV0dXJuIGVycjsKIAl9CiAKIAlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlKTsKIAlmYWxjb24t PmZpcm13YXJlLmZpcm13YXJlID0gTlVMTDsKIAogCXJldHVybiAwOwotCi1lcnJfc2V0dXBfZmly bXdhcmVfaW1hZ2U6Ci0JZmFsY29uLT5vcHMtPmZyZWUoZmFsY29uLCBmYWxjb24tPmZpcm13YXJl LnNpemUsCi0JCQkgIGZhbGNvbi0+ZmlybXdhcmUucGFkZHIsIGZhbGNvbi0+ZmlybXdhcmUudmFk ZHIpOwotCi0JcmV0dXJuIGVycjsKIH0KIAogaW50IGZhbGNvbl9pbml0KHN0cnVjdCBmYWxjb24g KmZhbGNvbikKIHsKLQkvKiBjaGVjayBtYW5kYXRvcnkgb3BzICovCi0JaWYgKCFmYWxjb24tPm9w cyB8fCAhZmFsY29uLT5vcHMtPmFsbG9jIHx8ICFmYWxjb24tPm9wcy0+ZnJlZSkKLQkJcmV0dXJu IC1FSU5WQUw7Ci0KIAlmYWxjb24tPmZpcm13YXJlLnZhZGRyID0gTlVMTDsKIAogCXJldHVybiAw OwpAQCAtMTc4LDE3ICsxNDUsOCBAQCBpbnQgZmFsY29uX2luaXQoc3RydWN0IGZhbGNvbiAqZmFs Y29uKQogCiB2b2lkIGZhbGNvbl9leGl0KHN0cnVjdCBmYWxjb24gKmZhbGNvbikKIHsKLQlpZiAo ZmFsY29uLT5maXJtd2FyZS5maXJtd2FyZSkgeworCWlmIChmYWxjb24tPmZpcm13YXJlLmZpcm13 YXJlKQogCQlyZWxlYXNlX2Zpcm13YXJlKGZhbGNvbi0+ZmlybXdhcmUuZmlybXdhcmUpOwotCQlm YWxjb24tPmZpcm13YXJlLmZpcm13YXJlID0gTlVMTDsKLQl9Ci0KLQlpZiAoZmFsY29uLT5maXJt d2FyZS52YWRkcikgewotCQlmYWxjb24tPm9wcy0+ZnJlZShmYWxjb24sIGZhbGNvbi0+ZmlybXdh cmUuc2l6ZSwKLQkJCQkgIGZhbGNvbi0+ZmlybXdhcmUucGFkZHIsCi0JCQkJICBmYWxjb24tPmZp cm13YXJlLnZhZGRyKTsKLQkJZmFsY29uLT5maXJtd2FyZS52YWRkciA9IE5VTEw7Ci0JfQogfQog CiBpbnQgZmFsY29uX2Jvb3Qoc3RydWN0IGZhbGNvbiAqZmFsY29uKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3RlZ3JhL2ZhbGNvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZhbGNv bi5oCmluZGV4IDNkMTI0MzIxNzQxMC4uOTI0OTFhMWU5MGRmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdGVncmEvZmFsY29uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZhbGNv bi5oCkBAIC03NCwxNSArNzQsNiBAQCBzdHJ1Y3QgZmFsY29uX2Z3X29zX2hlYWRlcl92MSB7CiAJ dTMyIGRhdGFfc2l6ZTsKIH07CiAKLXN0cnVjdCBmYWxjb247Ci0KLXN0cnVjdCBmYWxjb25fb3Bz IHsKLQl2b2lkICooKmFsbG9jKShzdHJ1Y3QgZmFsY29uICpmYWxjb24sIHNpemVfdCBzaXplLAot CQkgICAgICAgZG1hX2FkZHJfdCAqcGFkZHIpOwotCXZvaWQgKCpmcmVlKShzdHJ1Y3QgZmFsY29u ICpmYWxjb24sIHNpemVfdCBzaXplLAotCQkgICAgIGRtYV9hZGRyX3QgcGFkZHIsIHZvaWQgKnZh ZGRyKTsKLX07Ci0KIHN0cnVjdCBmYWxjb25fZmlybXdhcmVfc2VjdGlvbiB7CiAJdW5zaWduZWQg bG9uZyBvZmZzZXQ7CiAJc2l6ZV90IHNpemU7CkBAIC0xMDcsOCArOTgsNiBAQCBzdHJ1Y3QgZmFs Y29uIHsKIAkvKiBTZXQgYnkgZmFsY29uIGNsaWVudCAqLwogCXN0cnVjdCBkZXZpY2UgKmRldjsK IAl2b2lkIF9faW9tZW0gKnJlZ3M7Ci0JY29uc3Qgc3RydWN0IGZhbGNvbl9vcHMgKm9wczsKLQl2 b2lkICpkYXRhOwogCiAJc3RydWN0IGZhbGNvbl9maXJtd2FyZSBmaXJtd2FyZTsKIH07CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVn cmEvdmljLmMKaW5kZXggNjAzZjQxZWQ0YjgxLi40MzQ1YjgwNTQ2MTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90ZWdyYS92aWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmlj LmMKQEAgLTE1OCwyNyArMTU4LDYgQEAgc3RhdGljIGludCB2aWNfYm9vdChzdHJ1Y3QgdmljICp2 aWMpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkICp2aWNfZmFsY29uX2FsbG9jKHN0cnVj dCBmYWxjb24gKmZhbGNvbiwgc2l6ZV90IHNpemUsCi0JCQkgICAgICBkbWFfYWRkcl90ICppb3Zh KQotewotCXN0cnVjdCB0ZWdyYV9kcm0gKnRlZ3JhID0gZmFsY29uLT5kYXRhOwotCi0JcmV0dXJu IHRlZ3JhX2RybV9hbGxvYyh0ZWdyYSwgc2l6ZSwgaW92YSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHZp Y19mYWxjb25fZnJlZShzdHJ1Y3QgZmFsY29uICpmYWxjb24sIHNpemVfdCBzaXplLAotCQkJICAg IGRtYV9hZGRyX3QgaW92YSwgdm9pZCAqdmEpCi17Ci0Jc3RydWN0IHRlZ3JhX2RybSAqdGVncmEg PSBmYWxjb24tPmRhdGE7Ci0KLQlyZXR1cm4gdGVncmFfZHJtX2ZyZWUodGVncmEsIHNpemUsIHZh LCBpb3ZhKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmYWxjb25fb3BzIHZpY19mYWxjb25f b3BzID0gewotCS5hbGxvYyA9IHZpY19mYWxjb25fYWxsb2MsCi0JLmZyZWUgPSB2aWNfZmFsY29u X2ZyZWUKLX07Ci0KIHN0YXRpYyBpbnQgdmljX2luaXQoc3RydWN0IGhvc3QxeF9jbGllbnQgKmNs aWVudCkKIHsKIAlzdHJ1Y3QgdGVncmFfZHJtX2NsaWVudCAqZHJtID0gaG9zdDF4X3RvX2RybV9j bGllbnQoY2xpZW50KTsKQEAgLTI0Niw2ICsyMjUsMTUgQEAgc3RhdGljIGludCB2aWNfZXhpdChz dHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50KQogCWhvc3QxeF9jaGFubmVsX3B1dCh2aWMtPmNo YW5uZWwpOwogCWhvc3QxeF9jbGllbnRfaW9tbXVfZGV0YWNoKGNsaWVudCk7CiAKKwlpZiAoY2xp ZW50LT5ncm91cCkKKwkJdGVncmFfZHJtX2ZyZWUodGVncmEsIHZpYy0+ZmFsY29uLmZpcm13YXJl LnNpemUsCisJCQkgICAgICAgdmljLT5mYWxjb24uZmlybXdhcmUudmFkZHIsCisJCQkgICAgICAg dmljLT5mYWxjb24uZmlybXdhcmUucGFkZHIpOworCWVsc2UKKwkJZG1hX2ZyZWVfY29oZXJlbnQo dmljLT5kZXYsIHZpYy0+ZmFsY29uLmZpcm13YXJlLnNpemUsCisJCQkJICB2aWMtPmZhbGNvbi5m aXJtd2FyZS52YWRkciwKKwkJCQkgIHZpYy0+ZmFsY29uLmZpcm13YXJlLnBhZGRyKTsKKwogCXJl dHVybiAwOwogfQogCkBAIC0yNTYsMjUgKzI0NCw3NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhv c3QxeF9jbGllbnRfb3BzIHZpY19jbGllbnRfb3BzID0gewogCiBzdGF0aWMgaW50IHZpY19sb2Fk X2Zpcm13YXJlKHN0cnVjdCB2aWMgKnZpYykKIHsKKwlzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xp ZW50ID0gJnZpYy0+Y2xpZW50LmJhc2U7CisJc3RydWN0IHRlZ3JhX2RybSAqdGVncmEgPSB2aWMt PmNsaWVudC5kcm07CisJZG1hX2FkZHJfdCBwaHlzOworCXNpemVfdCBzaXplOworCXZvaWQgKnZp cnQ7CiAJaW50IGVycjsKIAotCWlmICh2aWMtPmZhbGNvbi5kYXRhKQorCWlmICh2aWMtPmZhbGNv bi5maXJtd2FyZS52YWRkcikKIAkJcmV0dXJuIDA7CiAKLQl2aWMtPmZhbGNvbi5kYXRhID0gdmlj LT5jbGllbnQuZHJtOwotCiAJZXJyID0gZmFsY29uX3JlYWRfZmlybXdhcmUoJnZpYy0+ZmFsY29u LCB2aWMtPmNvbmZpZy0+ZmlybXdhcmUpOwogCWlmIChlcnIgPCAwKQotCQlnb3RvIGNsZWFudXA7 CisJCXJldHVybiBlcnI7CisKKwlzaXplID0gdmljLT5mYWxjb24uZmlybXdhcmUuc2l6ZTsKKwor CWlmICghY2xpZW50LT5ncm91cCkgeworCQl2aXJ0ID0gZG1hX2FsbG9jX2NvaGVyZW50KHZpYy0+ ZGV2LCBzaXplLCAmcGh5cywgR0ZQX0tFUk5FTCk7CisKKwkJZXJyID0gZG1hX21hcHBpbmdfZXJy b3IodmljLT5kZXYsIHBoeXMpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfSBl bHNlIHsKKwkJdmlydCA9IHRlZ3JhX2RybV9hbGxvYyh0ZWdyYSwgc2l6ZSwgJnBoeXMpOworCX0K KworCXZpYy0+ZmFsY29uLmZpcm13YXJlLnZhZGRyID0gdmlydDsKKwl2aWMtPmZhbGNvbi5maXJt d2FyZS5wYWRkciA9IHBoeXM7CiAKIAllcnIgPSBmYWxjb25fbG9hZF9maXJtd2FyZSgmdmljLT5m YWxjb24pOwogCWlmIChlcnIgPCAwKQogCQlnb3RvIGNsZWFudXA7CiAKKwkvKgorCSAqIEluIHRo aXMgY2FzZSB3ZSBoYXZlIHJlY2VpdmVkIGFuIElPVkEgZnJvbSB0aGUgc2hhcmVkIGRvbWFpbiwg c28gd2UKKwkgKiBuZWVkIHRvIG1ha2Ugc3VyZSB0byBnZXQgdGhlIHBoeXNpY2FsIGFkZHJlc3Mg c28gdGhhdCB0aGUgRE1BIEFQSQorCSAqIGtub3dzIHdoYXQgbWVtb3J5IHBhZ2VzIHRvIGZsdXNo IHRoZSBjYWNoZSBmb3IuCisJICovCisJaWYgKGNsaWVudC0+Z3JvdXApIHsKKwkJcGh5cyA9IGRt YV9tYXBfc2luZ2xlKHZpYy0+ZGV2LCB2aXJ0LCBzaXplLCBETUFfVE9fREVWSUNFKTsKKworCQll cnIgPSBkbWFfbWFwcGluZ19lcnJvcih2aWMtPmRldiwgcGh5cyk7CisJCWlmIChlcnIgPCAwKQor CQkJZ290byBjbGVhbnVwOworCisJCS8qCisJCSAqIElmIHRoZSBETUEgQVBJIG1hcHBlZCB0aGlz IHRocm91Z2ggYSBib3VuY2UgYnVmZmVyLCB0aGUKKwkJICogZG1hX3N5bmNfc2luZ2xlX2Zvcl9k ZXZpY2UoKSBjYWxsIGJlbG93IHdpbGwgbm90IGJlIGFibGUKKwkJICogdG8gZmx1c2ggdGhlIGNh Y2hlcyBmb3IgdGhlIHJpZ2h0IG1lbW9yeSBwYWdlcy4gT3V0cHV0IGEKKwkJICogYmlnIHdhcm5p bmcgaW4gdGhhdCBjYXNlIHNvIHRoYXQgdGhlIERNQSBtYXNrIGNhbiBiZSBzZXQKKwkJICogcHJv cGVybHkgYW5kIHRoZSBib3VuY2UgYnVmZmVyIGF2b2lkZWQuCisJCSAqLworCQlXQVJOKHBoeXMg IT0gdmljLT5mYWxjb24uZmlybXdhcmUucGFkZHIsCisJCSAgICAgImNoZWNrIERNQSBtYXNrIHNl dHRpbmcgZm9yICVzXG4iLCBkZXZfbmFtZSh2aWMtPmRldikpOworCX0KKworCWRtYV9zeW5jX3Np bmdsZV9mb3JfZGV2aWNlKHZpYy0+ZGV2LCBwaHlzLCBzaXplLCBETUFfVE9fREVWSUNFKTsKKwor CWlmIChjbGllbnQtPmdyb3VwKQorCQlkbWFfdW5tYXBfc2luZ2xlKHZpYy0+ZGV2LCBwaHlzLCBz aXplLCBETUFfVE9fREVWSUNFKTsKKwogCXJldHVybiAwOwogCiBjbGVhbnVwOgotCXZpYy0+ZmFs Y29uLmRhdGEgPSBOVUxMOworCWlmICghY2xpZW50LT5ncm91cCkKKwkJZG1hX2ZyZWVfY29oZXJl bnQodmljLT5kZXYsIHNpemUsIHZpcnQsIHBoeXMpOworCWVsc2UKKwkJdGVncmFfZHJtX2ZyZWUo dGVncmEsIHNpemUsIHZpcnQsIHBoeXMpOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNDE1LDcg KzQ1Myw2IEBAIHN0YXRpYyBpbnQgdmljX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAKIAl2aWMtPmZhbGNvbi5kZXYgPSBkZXY7CiAJdmljLT5mYWxjb24ucmVncyA9IHZpYy0+ cmVnczsKLQl2aWMtPmZhbGNvbi5vcHMgPSAmdmljX2ZhbGNvbl9vcHM7CiAKIAllcnIgPSBmYWxj b25faW5pdCgmdmljLT5mYWxjb24pOwogCWlmIChlcnIgPCAwKQotLSAKMi4yMy4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=