From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Engestrom Subject: [PATCH v3] drm: move allocation out of drm_get_format_name() Date: Wed, 9 Nov 2016 00:17:52 +0000 Message-ID: <20161109001805.10628-1-eric@engestrom.ch> References: <20161108101558.ihvrprbbdqjwu5wg@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161108101558.ihvrprbbdqjwu5wg@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: linux-kernel@vger.kernel.org Cc: David Airlie , dri-devel@lists.freedesktop.org, Wei Yongjun , Daniel Vetter , Flora Cui , Gustavo Padovan , Tom St Denis , Chunming Zhou , Thomas Hellstrom , Laurent Pinchart , Sinclair Yeh , Xinliang Liu , Xinwei Kong , VMware Graphics , Vitaly Prosyak , Eric Engestrom , Alexandre Demers , Jani Nikula , intel-gfx@lists.freedesktop.org, Eric Engestrom , Emily Deng , Colin Ian King List-Id: dri-devel@lists.freedesktop.org VGhlIGZ1bmN0aW9uJ3MgYmVoYXZpb3VyIHdhcyBjaGFuZ2VkIGluIDkwODQ0ZjAwMDQ5ZSwgd2l0 aG91dCBjaGFuZ2luZwppdHMgc2lnbmF0dXJlLCBjYXVzaW5nIHBlb3BsZSB0byBrZWVwIHVzaW5n IGl0IHRoZSBvbGQgd2F5IHdpdGhvdXQKcmVhbGlzaW5nIHRoZXkgd2VyZSBub3cgbGVha2luZyBt ZW1vcnkuClJvYiBDbGFyayBhbHNvIG5vdGljZWQgaXQgd2FzIGFsc28gYWxsb2NhdGluZyBHRlBf S0VSTkVMIG1lbW9yeSBpbgphdG9taWMgY29udGV4dHMsIGJyZWFraW5nIHRoZW0uCgpJbnN0ZWFk IG9mIGhhdmluZyB0byBhbGxvY2F0ZSBHRlBfQVRPTUlDIG1lbW9yeSBhbmQgZml4aW5nIHRoZSBj YWxsZXJzCnRvIG1ha2UgdGhlbSBjbGVhbnVwIHRoZSBtZW1vcnkgYWZ0ZXJ3YXJkcywgbGV0J3Mg Y2hhbmdlIHRoZSBmdW5jdGlvbidzCnNpZ25hdHVyZSBieSBoYXZpbmcgdGhlIGNhbGxlciB0YWtl IGNhcmUgb2YgdGhlIG1lbW9yeSBhbmQgcGFzc2luZyBpdCB0bwp0aGUgZnVuY3Rpb24uClRoZSBu ZXcgcGFyYW1ldGVyIGlzIGEgc2luZ2xlLWZpZWxkIHN0cnVjdCBpbiBvcmRlciB0byBlbmZvcmNl IHRoZSBzaXplCm9mIGl0cyBidWZmZXIgYW5kIGhlbHAgY2FsbGVycyB0byBjb3JyZWN0bHkgbWFu YWdlIHRoZWlyIG1lbW9yeS4KCkZpeGVzOiA5MDg0NGYwMDA0OWUgKCJkcm06IG1ha2UgZHJtX2dl dF9mb3JtYXRfbmFtZSB0aHJlYWQtc2FmZSIpCkNjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFp bC5jb20+CkNjOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkFj a2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkFja2Vk LWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CkFja2VkLWJ5OiBTaW5jbGFpciBZ ZWggPHN5ZWhAdm13YXJlLmNvbT4gKHZtd2dmeCkKUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxq YW5pLm5pa3VsYUBpbnRlbC5jb20+ClN1Z2dlc3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBFbmdlc3Ryb20g PGVyaWNAZW5nZXN0cm9tLmNoPgotLS0KdjMgLSBmaXggIkZpeGVzIiB0YWcsIHJlcGxhY2UgaXQg d2l0aCBhbiBhY3R1YWwgY29tbWl0IG1lc3NhZ2UKICAgLSBjb2xsZWN0IGFjayAmIHItYgoKdjIg LSB1c2Ugc2luZ2xlLWZpZWxkIHN0cnVjdCBpbnN0ZWFkIG9mIHR5cGVkZWYgdG8gbGV0IHRoZSBj b21waWxlcgogICAgIGVuZm9yY2UgdGhlIHR5cGUgKENocmlzdGlhbiBLw7ZuaWcpCi0tLQogaW5j bHVkZS9kcm0vZHJtX2ZvdXJjYy5oICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgICAgICAgICAgICAgICAgICAgIHwgMTQgKysr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyAgICAgICAgICB8 ICA3ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyAgICAgICAg ICB8ICA3ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jICAgICAg ICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jICAgICAg ICAgICB8ICA3ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAg ICAgICAgICB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAg ICAgICAgICAgICB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMg ICAgICAgICAgICAgICB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVs cGVyLmMgICAgICAgICAgICB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMg ICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2tpcmluL2tpcmluX2RybV9hZGUuYyB8ICA3ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyAgICAgICAgICAgICB8IDEwICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgICAgICAgfCAgOCArKy0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgICAgICAgfCA0MSArKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAgICAgICAgICB8 IDE0ICsrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgICAgICAg ICAgICAgfCAgMyArLQogMTcgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgODYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVk ZS9kcm0vZHJtX2ZvdXJjYy5oCmluZGV4IGRjMGFhZmEuLjRiMDNjYTAgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9mb3VyY2MuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKQEAg LTQ1LDYgKzQ1LDE0IEBAIHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gewogCXU4IHZzdWI7CiB9Owog CisvKioKKyAqIHN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIC0gbmFtZSBvZiBhIERSTSBmb3Jt YXQKKyAqIEBzdHI6IHN0cmluZyBidWZmZXIgY29udGFpbmluZyB0aGUgZm9ybWF0IG5hbWUKKyAq Lworc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgeworCWNoYXIgc3RyWzMyXTsKK307CisKIGNv bnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKl9fZHJtX2Zvcm1hdF9pbmZvKHUzMiBmb3JtYXQp OwogY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZHJtX2Zvcm1hdF9pbmZvKHUzMiBmb3Jt YXQpOwogdWludDMyX3QgZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdCh1aW50MzJfdCBicHAsIHVp bnQzMl90IGRlcHRoKTsKQEAgLTU0LDYgKzYyLDYgQEAgaW50IGRybV9mb3JtYXRfaG9yel9jaHJv bWFfc3Vic2FtcGxpbmcodWludDMyX3QgZm9ybWF0KTsKIGludCBkcm1fZm9ybWF0X3ZlcnRfY2hy b21hX3N1YnNhbXBsaW5nKHVpbnQzMl90IGZvcm1hdCk7CiBpbnQgZHJtX2Zvcm1hdF9wbGFuZV93 aWR0aChpbnQgd2lkdGgsIHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKTsKIGludCBkcm1fZm9y bWF0X3BsYW5lX2hlaWdodChpbnQgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIGludCBwbGFuZSk7 Ci1jaGFyICpkcm1fZ2V0X2Zvcm1hdF9uYW1lKHVpbnQzMl90IGZvcm1hdCkgX19tYWxsb2M7Citj aGFyICpkcm1fZ2V0X2Zvcm1hdF9uYW1lKHVpbnQzMl90IGZvcm1hdCwgc3RydWN0IGRybV9mb3Jt YXRfbmFtZV9idWYgKmJ1Zik7CiAKICNlbmRpZiAvKiBfX0RSTV9GT1VSQ0NfSF9fICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9mb3VyY2MuYwppbmRleCBjYmI4Yjc3Li45OWIwYjYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZvdXJjYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKQEAg LTc5LDE3ICs3OSwxMyBAQCB1aW50MzJfdCBkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0KHVpbnQz Ml90IGJwcCwgdWludDMyX3QgZGVwdGgpCiBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2xlZ2FjeV9m Yl9mb3JtYXQpOwogCiAvKioKLSAqIGRybV9nZXRfZm9ybWF0X25hbWUgLSByZXR1cm4gYSBzdHJp bmcgZm9yIGRybSBmb3VyY2MgZm9ybWF0CisgKiBkcm1fZ2V0X2Zvcm1hdF9uYW1lIC0gZmlsbCBh IHN0cmluZyB3aXRoIGEgZHJtIGZvdXJjYyBmb3JtYXQncyBuYW1lCiAgKiBAZm9ybWF0OiBmb3Jt YXQgdG8gY29tcHV0ZSBuYW1lIG9mCisgKiBAYnVmOiBjYWxsZXItc3VwcGxpZWQgYnVmZmVyCi0g KgotICogTm90ZSB0aGF0IHRoZSBidWZmZXIgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiBpcyBv d25lZCBieSB0aGUgY2FsbGVyCi0gKiBhbmQgd2lsbCBuZWVkIHRvIGJlIGZyZWVkIHVzaW5nIGtm cmVlKCkuCiAgKi8KLWNoYXIgKmRybV9nZXRfZm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0KQor Y2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1aW50MzJfdCBmb3JtYXQsIHN0cnVjdCBkcm1fZm9y bWF0X25hbWVfYnVmICpidWYpCiB7Ci0JY2hhciAqYnVmID0ga21hbGxvYygzMiwgR0ZQX0tFUk5F TCk7Ci0KLQlzbnByaW50ZihidWYsIDMyLAorCXNucHJpbnRmKGJ1Zi0+c3RyLCBzaXplb2YoYnVm LT5zdHIpLAogCQkgIiVjJWMlYyVjICVzLWVuZGlhbiAoMHglMDh4KSIsCiAJCSBwcmludGFibGVf Y2hhcihmb3JtYXQgJiAweGZmKSwKIAkJIHByaW50YWJsZV9jaGFyKChmb3JtYXQgPj4gOCkgJiAw eGZmKSwKQEAgLTk4LDcgKzk0LDcgQEAgY2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1aW50MzJf dCBmb3JtYXQpCiAJCSBmb3JtYXQgJiBEUk1fRk9STUFUX0JJR19FTkRJQU4gPyAiYmlnIiA6ICJs aXR0bGUiLAogCQkgZm9ybWF0KTsKIAotCXJldHVybiBidWY7CisJcmV0dXJuIGJ1Zi0+c3RyOwog fQogRVhQT1JUX1NZTUJPTChkcm1fZ2V0X2Zvcm1hdF9uYW1lKTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9kY2VfdjEwXzAuYwppbmRleCAxOTlkM2Y3Li4yOTI0Y2RkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYwpAQCAtMjAzMiw3ICsyMDMyLDcgQEAgc3RhdGljIGlu dCBkY2VfdjEwXzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMy IHRtcCwgdmlld3BvcnRfdywgdmlld3BvcnRfaDsKIAlpbnQgcjsKIAlib29sIGJ5cGFzc19sdXQg PSBmYWxzZTsKLQljaGFyICpmb3JtYXRfbmFtZTsKKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1 ZiBmb3JtYXRfbmFtZTsKIAogCS8qIG5vIGZiIGJvdW5kICovCiAJaWYgKCFhdG9taWMgJiYgIWNy dGMtPnByaW1hcnktPmZiKSB7CkBAIC0yMTQ0LDkgKzIxNDQsOCBAQCBzdGF0aWMgaW50IGRjZV92 MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJYnlwYXNzX2x1 dCA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWZvcm1hdF9uYW1lID0gZHJtX2dldF9m b3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7Ci0JCURSTV9FUlJPUigiVW5zdXBw b3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlEUk1fRVJST1IoIlVu c3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKLQkJa2ZyZWUo Zm9ybWF0X25hbWUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMV8wLmMKaW5kZXggZWNkMDAwZS4uZjBlM2M1YyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKQEAgLTIwMTMsNyArMjAxMyw3IEBAIHN0YXRpYyBpbnQg ZGNlX3YxMV8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiB0 bXAsIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBhc3NfbHV0ID0g ZmFsc2U7Ci0JY2hhciAqZm9ybWF0X25hbWU7CisJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYg Zm9ybWF0X25hbWU7CiAKIAkvKiBubyBmYiBib3VuZCAqLwogCWlmICghYXRvbWljICYmICFjcnRj LT5wcmltYXJ5LT5mYikgewpAQCAtMjEyNSw5ICsyMTI1LDggQEAgc3RhdGljIGludCBkY2VfdjEx XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJ5cGFzc19sdXQg PSB0cnVlOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9y bWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpOwotCQlEUk1fRVJST1IoIlVuc3VwcG9y dGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJRFJNX0VSUk9SKCJVbnN1 cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRf bmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Ci0JCWtmcmVlKGZv cm1hdF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZGNlX3Y2XzAuYwppbmRleCA0NDU0N2Y5Li41YzZiODJmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92Nl8wLmMKQEAgLTE0NTYsNiArMTQ1Niw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y2 XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHZpZXdwb3J0 X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBhc3NfbHV0ID0gZmFsc2U7CisJc3Ry dWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAKIAkvKiBubyBmYiBib3VuZCAq LwogCWlmICghYXRvbWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewpAQCAtMTU1OSw3ICsxNTYw LDcgQEAgc3RhdGljIGludCBkY2VfdjZfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBz Y3JlZW4gZm9ybWF0ICVzXG4iLAotCQkJICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+ cGl4ZWxfZm9ybWF0KSk7CisJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9m Yi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYwppbmRleCA5NzlhZWRmLi41YWVmMTlk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKQEAgLTE5MTAsNyArMTkxMCw3 IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJdTMyIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBh c3NfbHV0ID0gZmFsc2U7Ci0JY2hhciAqZm9ybWF0X25hbWU7CisJc3RydWN0IGRybV9mb3JtYXRf bmFtZV9idWYgZm9ybWF0X25hbWU7CiAKIAkvKiBubyBmYiBib3VuZCAqLwogCWlmICghYXRvbWlj ICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewpAQCAtMjAxNSw5ICsyMDE1LDggQEAgc3RhdGljIGlu dCBkY2VfdjhfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJYnlw YXNzX2x1dCA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7Ci0JCURSTV9FUlJPUigi VW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlEUk1fRVJS T1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICBkcm1fZ2V0 X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKLQkJ a2ZyZWUoZm9ybWF0X25hbWUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jCmluZGV4IGMzMmZiM2MuLmYyOWQzYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtODM1LDkg KzgzNSwxMCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfY2hlY2soc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJLyogQ2hlY2sgd2hldGhlciB0aGlzIHBsYW5lIHN1cHBvcnRzIHRoZSBm YiBwaXhlbCBmb3JtYXQuICovCiAJcmV0ID0gZHJtX3BsYW5lX2NoZWNrX3BpeGVsX2Zvcm1hdChw bGFuZSwgc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwogCWlmIChyZXQpIHsKLQkJY2hhciAqZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KTsK LQkJRFJNX0RFQlVHX0FUT01JQygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsIGZvcm1hdF9u YW1lKTsKKwkJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CisJCURSTV9E RUJVR19BVE9NSUMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgICAg ICAgIGRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQsCisJCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0X25hbWUpKTsKLQkJa2ZyZWUo Zm9ybWF0X25hbWUpOwogCQlyZXR1cm4gcmV0OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRleCAxMzQ0 MWUyLi4wOGFjMjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtODI3LDkgKzgyNywxMCBAQCBpbnQgZHJt X21vZGVfc2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJcmV0 ID0gZHJtX3BsYW5lX2NoZWNrX3BpeGVsX2Zvcm1hdChjcnRjLT5wcmltYXJ5LAogCQkJCQkJCSAg IGZiLT5waXhlbF9mb3JtYXQpOwogCQkJaWYgKHJldCkgewotCQkJCWNoYXIgKmZvcm1hdF9uYW1l ID0gZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KTsKLQkJCQlEUk1fREVCVUdf S01TKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQkJCXN0cnVj dCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOworCQkJCURSTV9ERUJVR19LTVMoIklu dmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAorCQkJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3Jt YXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0LAorCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZm9ybWF0X25hbWUpKTsKLQkJCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCQkJZ290 byBvdXQ7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwppbmRleCA0OWZkN2Ri Li5kZjZiMTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCkBAIC0xMzMsOSArMTMzLDEw IEBAIHN0YXRpYyBpbnQgZnJhbWVidWZmZXJfY2hlY2soY29uc3Qgc3RydWN0IGRybV9tb2RlX2Zi X2NtZDIgKnIpCiAKIAlpbmZvID0gX19kcm1fZm9ybWF0X2luZm8oci0+cGl4ZWxfZm9ybWF0ICYg fkRSTV9GT1JNQVRfQklHX0VORElBTik7CiAJaWYgKCFpbmZvKSB7Ci0JCWNoYXIgKmZvcm1hdF9u YW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShyLT5waXhlbF9mb3JtYXQpOwotCQlEUk1fREVCVUdf S01TKCJiYWQgZnJhbWVidWZmZXIgZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7CisJCXN0cnVj dCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOworCQlEUk1fREVCVUdfS01TKCJiYWQg ZnJhbWVidWZmZXIgZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0 X25hbWUoci0+cGl4ZWxfZm9ybWF0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZvcm1hdF9uYW1lKSk7Ci0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMKaW5kZXggMjU0NGRmZS4u MmY0NTJiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwpAQCAtNzUsMTAgKzc1 LDExIEBAIHZvaWQgZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAogCiAJaW5mbyA9IGRybV9mb3JtYXRfaW5mbyhtb2RlX2NtZC0+cGl4ZWxf Zm9ybWF0KTsKIAlpZiAoIWluZm8gfHwgIWluZm8tPmRlcHRoKSB7Ci0JCWNoYXIgKmZvcm1hdF9u YW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKKwkJc3Ry dWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAKLQkJRFJNX0RFQlVHX0tNUygi bm9uLVJHQiBwaXhlbCBmb3JtYXQgJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJRFJNX0RFQlVHX0tN Uygibm9uLVJHQiBwaXhlbCBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICAgICAgZHJtX2dldF9m b3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAorCQkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZvcm1hdF9uYW1lKSk7Ci0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAog CQlmYi0+ZGVwdGggPSAwOwogCQlmYi0+Yml0c19wZXJfcGl4ZWwgPSAwOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5j CmluZGV4IDI0OWMwYWUuLjJiYTBjMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f cGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKQEAgLTQ3OSw5ICs0Nzks MTAgQEAgc3RhdGljIGludCBfX3NldHBsYW5lX2ludGVybmFsKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBwbGFuZSBzdXBwb3J0cyB0aGUgZmIgcGl4ZWwg Zm9ybWF0LiAqLwogCXJldCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIGZi LT5waXhlbF9mb3JtYXQpOwogCWlmIChyZXQpIHsKLQkJY2hhciAqZm9ybWF0X25hbWUgPSBkcm1f Z2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpOwotCQlEUk1fREVCVUdfS01TKCJJbnZh bGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlzdHJ1Y3QgZHJtX2Zvcm1h dF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKKwkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBwaXhlbCBm b3JtYXQgJXNcbiIsCisJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4 ZWxfZm9ybWF0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdF9u YW1lKSk7Ci0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJZ290byBvdXQ7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCmluZGV4IDdlN2E0 ZDQuLmFmYzJiNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4v a2lyaW5fZHJtX2FkZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2ly aW5fZHJtX2FkZS5jCkBAIC02MDgsMTcgKzYwOCwxNiBAQCBzdGF0aWMgdm9pZCBhZGVfcmRtYV9z ZXQodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCSB1 MzIgY2gsIHUzMiB5LCB1MzIgaW5faCwgdTMyIGZtdCkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFf b2JqZWN0ICpvYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQljaGFyICpmb3Jt YXRfbmFtZTsKKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKIAl1MzIg cmVnX2N0cmwsIHJlZ19hZGRyLCByZWdfc2l6ZSwgcmVnX3N0cmlkZSwgcmVnX3NwYWNlLCByZWdf ZW47CiAJdTMyIHN0cmlkZSA9IGZiLT5waXRjaGVzWzBdOwogCXUzMiBhZGRyID0gKHUzMilvYmot PnBhZGRyICsgeSAqIHN0cmlkZTsKIAogCURSTV9ERUJVR19EUklWRVIoInJkbWElZDogKHk9JWQs IGhlaWdodD0lZCksIHN0cmlkZT0lZCwgcGFkZHI9MHgleFxuIiwKIAkJCSBjaCArIDEsIHksIGlu X2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRyKTsKLQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9y bWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCk7CiAJRFJNX0RFQlVHX0RSSVZFUigiYWRkcj0weCV4 LCBmYjolZHglZCwgcGl4ZWxfZm9ybWF0PSVkKCVzKVxuIiwKLQkJCSBhZGRyLCBmYi0+d2lkdGgs IGZiLT5oZWlnaHQsIGZtdCwgZm9ybWF0X25hbWUpOworCQkJIGFkZHIsIGZiLT53aWR0aCwgZmIt PmhlaWdodCwgZm10LAorCQkJIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwg JmZvcm1hdF9uYW1lKSk7Ci0Ja2ZyZWUoZm9ybWF0X25hbWUpOwogCiAJLyogZ2V0IHJlZyBvZmZz ZXQgKi8KIAlyZWdfY3RybCA9IFJEX0NIX0NUUkwoY2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwppbmRleCAyMDYzOGQyLi42NzA0MjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwpAQCAtMjk3MSw3ICsyOTcxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQogCWZv cl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFuZSkg ewogCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZTsKIAkJc3RydWN0IGRybV9wbGFuZSAq cGxhbmUgPSAmaW50ZWxfcGxhbmUtPmJhc2U7Ci0JCWNoYXIgKmZvcm1hdF9uYW1lOworCQlzdHJ1 Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKIAogCQlpZiAoIXBsYW5lLT5zdGF0 ZSkgewogCQkJc2VxX3B1dHMobSwgInBsYW5lLT5zdGF0ZSBpcyBOVUxMIVxuIik7CkBAIC0yOTgx LDkgKzI5ODEsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCiAJCXN0YXRlID0gcGxhbmUtPnN0 YXRlOwogCiAJCWlmIChzdGF0ZS0+ZmIpIHsKLQkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3Jt YXRfbmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJCQlkcm1fZ2V0X2Zvcm1hdF9uYW1l KHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpOwogCQl9IGVsc2UgewotCQkJ Zm9ybWF0X25hbWUgPSBrc3RyZHVwKCJOL0EiLCBHRlBfS0VSTkVMKTsKKwkJCXNwcmludGYoZm9y bWF0X25hbWUuc3RyLCAiTi9BIik7CiAJCX0KIAogCQlzZXFfcHJpbnRmKG0sICJcdC0tUGxhbmUg aWQgJWQ6IHR5cGU9JXMsIGNydGNfcG9zPSU0ZHglNGQsIGNydGNfc2l6ZT0lNGR4JTRkLCBzcmNf cG9zPSVkLiUwNHV4JWQuJTA0dSwgc3JjX3NpemU9JWQuJTA0dXglZC4lMDR1LCBmb3JtYXQ9JXMs IHJvdGF0aW9uPSVzXG4iLApAQCAtMjk5OSwxMCArMjk5OSw4IEBAIHN0YXRpYyB2b2lkIGludGVs X3BsYW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YykKIAkJCSAgICgoc3RhdGUtPnNyY193ICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKIAkJ CSAgIChzdGF0ZS0+c3JjX2ggPj4gMTYpLAogCQkJICAgKChzdGF0ZS0+c3JjX2ggJiAweGZmZmYp ICogMTU2MjUpID4+IDEwLAotCQkJICAgZm9ybWF0X25hbWUsCisJCQkgICBmb3JtYXRfbmFtZS5z dHIsCiAJCQkgICBwbGFuZV9yb3RhdGlvbihzdGF0ZS0+cm90YXRpb24pKTsKLQotCQlrZnJlZShm b3JtYXRfbmFtZSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19w bGFuZS5jCmluZGV4IGM3NjJhZTUuLjZjNzZlM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pY19wbGFuZS5jCkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGludCBpbnRlbF9w bGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWNydGNfc3RhdGUt PmJhc2UuZW5hYmxlID8gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfaCA6IDA7CiAKIAlpZiAoc3RhdGUt PmZiICYmIGRybV9yb3RhdGlvbl85MF9vcl8yNzAoc3RhdGUtPnJvdGF0aW9uKSkgewotCQljaGFy ICpmb3JtYXRfbmFtZTsKKwkJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7 CiAKIAkJaWYgKCEoc3RhdGUtPmZiLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9U SUxFRCB8fAogCQkJc3RhdGUtPmZiLT5tb2RpZmllclswXSA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZf VElMRUQpKSB7CkBAIC0xNTksOSArMTU5LDkgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9t aWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXN3aXRjaCAoc3RhdGUtPmZiLT5w aXhlbF9mb3JtYXQpIHsKIAkJY2FzZSBEUk1fRk9STUFUX0M4OgogCQljYXNlIERSTV9GT1JNQVRf UkdCNTY1OgotCQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+ cGl4ZWxfZm9ybWF0KTsKLQkJCURSTV9ERUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZvcm1h dCAlcyBmb3IgOTAvMjcwIVxuIiwgZm9ybWF0X25hbWUpOworCQkJRFJNX0RFQlVHX0tNUygiVW5z dXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVzIGZvciA5MC8yNzAhXG4iLAorCQkJICAgICAgICAgICAg ICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LAorCQkJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXRfbmFtZSkpOwotCQkJa2ZyZWUoZm9y bWF0X25hbWUpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2ZjhmNmVjLi44MjA5MTcwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjg3MSw3ICsxMjg3MSw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlEUk1f REVCVUdfS01TKCJwbGFuZXMgb24gdGhpcyBjcnRjXG4iKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 KHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSB7Ci0JCWNoYXIgKmZv cm1hdF9uYW1lOworCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKIAkJ aW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CiAJCWlmIChpbnRlbF9wbGFuZS0+ cGlwZSAhPSBjcnRjLT5waXBlKQogCQkJY29udGludWU7CkBAIC0xMjg4NCwxMiArMTI4ODQsMTEg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1h dF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpOwotCiAJCURSTV9ERUJVR19LTVMoIltQTEFORTolZDol c10gZW5hYmxlZCIsCiAJCQkgICAgICBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUpOwogCQlE Uk1fREVCVUdfS01TKCJcdEZCOiVkLCBmYiA9ICV1eCV1IGZvcm1hdCA9ICVzIiwKLQkJCSAgICAg IGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGZvcm1hdF9uYW1lKTsKKwkJCSAg ICAgIGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCisJCQkgICAgICBkcm1fZ2V0 X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwogCQlEUk1fREVC VUdfS01TKCJcdHNjYWxlcjolZCBzcmMgJWR4JWQrJWQrJWQgZHN0ICVkeCVkKyVkKyVkXG4iLAog CQkJICAgICAgc3RhdGUtPnNjYWxlcl9pZCwKIAkJCSAgICAgIHN0YXRlLT5iYXNlLnNyYy54MSA+ PiAxNiwKQEAgLTEyODk5LDggKzEyODk4LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSAgICAgIHN0YXRlLT5iYXNlLmRz dC54MSwgc3RhdGUtPmJhc2UuZHN0LnkxLAogCQkJICAgICAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRl LT5iYXNlLmRzdCksCiAJCQkgICAgICBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5iYXNlLmRzdCkp OwotCi0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAl9CiB9CiAKQEAgLTE1NzQ5LDcgKzE1NzQ2LDcg QEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJdW5zaWduZWQgaW50IHRpbGluZyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKG9i aik7CiAJaW50IHJldDsKIAl1MzIgcGl0Y2hfbGltaXQsIHN0cmlkZV9hbGlnbm1lbnQ7Ci0JY2hh ciAqZm9ybWF0X25hbWU7CisJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7 CiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CiAKQEAg LTE1ODQwLDE4ICsxNTgzNywxNiBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX1hSR0Ix NTU1OgogCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiAzKSB7Ci0JCQlmb3JtYXRfbmFtZSA9 IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Ci0JCQlEUk1fREVC VUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJCURS TV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwKKwkJCSAgICAgICAgICBk cm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkp OwotCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJYnJl YWs7CiAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgogCQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgogCQkgICAgSU5URUxfSU5GTyhk ZXYpLT5nZW4gPCA5KSB7Ci0JCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9k ZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Ci0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZv cm1hdDogJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4 ZWwgZm9ybWF0OiAlc1xuIiwKKwkJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVf Y21kLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwotCQkJa2ZyZWUoZm9ybWF0X25hbWUp OwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJYnJlYWs7CkBAIC0xNTg1OSwxNyArMTU4NTQs MTUgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgogCWNhc2UgRFJNX0ZPUk1BVF9Y QkdSMjEwMTAxMDoKIAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkgewotCQkJZm9ybWF0 X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOwotCQkJ RFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLCBmb3JtYXRfbmFtZSk7 CisJCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCisJCQkgICAg ICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0 X25hbWUpKTsKLQkJCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9 CiAJCWJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDoKIAkJaWYgKCFJU19WQUxM RVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKLQkJCWZvcm1h dF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKLQkJ CURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUp OworCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAorCQkJICAg ICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1h dF9uYW1lKSk7Ci0JCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJ fQogCQlicmVhazsKQEAgLTE1ODc4LDE2ICsxNTg3MSwxNCBAQCBzdGF0aWMgaW50IGludGVsX2Zy YW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAljYXNlIERSTV9GT1JNQVRf WVZZVToKIAljYXNlIERSTV9GT1JNQVRfVllVWToKIAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu IDwgNSkgewotCQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5w aXhlbF9mb3JtYXQpOwotCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVz XG4iLCBmb3JtYXRfbmFtZSk7CisJCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1h dDogJXNcbiIsCisJCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4 ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKLQkJCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJCXJl dHVybiAtRUlOVkFMOwogCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWZvcm1hdF9uYW1lID0g ZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKLQkJRFJNX0RFQlVH KCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLCBmb3JtYXRfbmFtZSk7CisJCURSTV9E RUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwKKwkJICAgICAgICAgIGRybV9n ZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Ci0J CWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCmluZGV4IDc0Zjk5YmEuLjA1ZjRlYmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCkBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0 aWMgaW50IGRjZTRfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMy IHRtcCwgdmlld3BvcnRfdywgdmlld3BvcnRfaDsKIAlpbnQgcjsKIAlib29sIGJ5cGFzc19sdXQg PSBmYWxzZTsKLQljaGFyICpmb3JtYXRfbmFtZTsKKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1 ZiBmb3JtYXRfbmFtZTsKIAogCS8qIG5vIGZiIGJvdW5kICovCiAJaWYgKCFhdG9taWMgJiYgIWNy dGMtPnByaW1hcnktPmZiKSB7CkBAIC0xMjYwLDkgKzEyNjAsOCBAQCBzdGF0aWMgaW50IGRjZTRf Y3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJ5cGFzc19sdXQgPSB0 cnVlOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0 X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpOwotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVk IHNjcmVlbiBmb3JtYXQgJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJRFJNX0VSUk9SKCJVbnN1cHBv cnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFt ZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Ci0JCWtmcmVlKGZvcm1h dF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0xNDczLDcgKzE0NzIsNyBAQCBz dGF0aWMgaW50IGF2aXZvX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CXUzMiB2aWV3cG9ydF93LCB2aWV3cG9ydF9oOwogCWludCByOwogCWJvb2wgYnlwYXNzX2x1dCA9 IGZhbHNlOwotCWNoYXIgKmZvcm1hdF9uYW1lOworCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVm IGZvcm1hdF9uYW1lOwogCiAJLyogbm8gZmIgYm91bmQgKi8KIAlpZiAoIWF0b21pYyAmJiAhY3J0 Yy0+cHJpbWFyeS0+ZmIpIHsKQEAgLTE1NjMsOSArMTU2Miw4IEBAIHN0YXRpYyBpbnQgYXZpdm9f Y3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJ5cGFzc19sdXQgPSB0 cnVlOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0 X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpOwotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVk IHNjcmVlbiBmb3JtYXQgJXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJRFJNX0VSUk9SKCJVbnN1cHBv cnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFt ZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Ci0JCWtmcmVlKGZvcm1h dF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5jCmluZGV4IGM5NjU1MTQuLmUzZjY4Y2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5jCkBAIC05ODUsOCArOTg1LDkgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KnZtd19rbXNfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlpbmZvID0gZHJt X2Zvcm1hdF9pbmZvKG1vZGVfY21kMi0+cGl4ZWxfZm9ybWF0KTsKIAlpZiAoIWluZm8gfHwgIWlu Zm8tPmRlcHRoKSB7CisJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwog CQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIGZyYW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwKLQkJCSAg ZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZDItPnBpeGVsX2Zvcm1hdCkpOworCQkgICAgICAg ICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZDItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9u YW1lKSk7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAotLSAKQ2hlZXJzLAogIEVy aWMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=