From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Engestrom Subject: [PATCH] drm: make drm_get_format_name thread-safe Date: Mon, 15 Aug 2016 01:02:38 +0100 Message-ID: <20160815000247.20063-1-eric@engestrom.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Tom St Denis , Archit Taneja , David Airlie , dri-devel@lists.freedesktop.org, Eric Engestrom , =?UTF-8?q?Michel=20D=C3=A4nzer?= , Wei Yongjun , Junwei Zhang , Xinliang Liu , David Zhang , Xinwei Kong , Vitaly Prosyak , intel-gfx@lists.freedesktop.org, Alex Deucher , Daniel Vetter , Flora Cui , Gustavo Padovan , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogRXJpYyBFbmdlc3Ryb20gPGVyaWNAZW5nZXN0cm9tLmNoPgotLS0KCkkg bW92ZWQgdGhlIG1haW4gYml0cyB0byBiZSB0aGUgZmlyc3QgZGlmZnMsIHNob3VsZG4ndCBhZmZl Y3QgYW55dGhpbmcKd2hlbiBhcHBseWluZyB0aGUgcGF0Y2gsIGJ1dCBJIHdhbnRlZCB0byBhc2s6 CkkgZG9uJ3QgbGlrZSB0aGUgaGFyZC1jb2RlZCBgMzJgIHRoZSBhcHBlYXJzIGluIGJvdGgga21h bGxvYygpIGFuZApzbnByaW50ZigpLCB3aGF0IGRvIHlvdSB0aGluaz8gSWYgeW91IGRvbid0IGxp a2UgaXQgZWl0aGVyLCB3aGF0IHdvdWxkCnlvdSBzdWdnZXN0PyBTaG91bGQgSSAjZGVmaW5lIGl0 PwoKU2Vjb25kIHF1ZXN0aW9uIGlzIGFib3V0IHRoZSBwYXRjaCBtYWlsIGl0c2VsZjogc2hvdWxk IEkgc2VuZCB0aGlzIGtpbmQKb2YgcGF0Y2ggc2VwYXJhdGVkIGJ5IG1vZHVsZSwgd2l0aCBhIG5v dGUgcmVxdWVzdGluZyB0aGVtIHRvIGJlIHNxdWFzaGVkCndoZW4gYXBwbHlpbmc/IEl0IGhhcyB0 byBsYW5kIGFzIGEgc2luZ2xlIHBhdGNoLCBidXQgZm9yIHJldmlldyBpdCBtaWdodApiZSBlYXNp ZXIgaWYgcGVvcGxlIG9ubHkgc2VlIHRoZSBiaXRzIHRoZXkgZWFjaCBjYXJlIGFib3V0LCBhcyB3 ZWxsIGFzCnRvIGNvbGxlY3QgYWNrJ3Mvci1iJ3MuCgpDaGVlcnMsCiAgRXJpYwoKLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyAgICAgICAgICB8ICA2ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAgICAgICAgIHwgIDYgKystLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgICAgICAgfCAgNiArKy0t CiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgICAgICAgICB8ICA1ICsr LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgICAgICAgICAgICAgICAgICAgIHwgMjEg KysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYyAgICAgICAgICAgICAg ICAgICAgfCAxNyArKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9r aXJpbl9kcm1fYWRlLmMgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyAgICAgICAgICAgICB8IDExICsrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pY19wbGFuZS5jICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAgICAgICAgICB8IDEyICsrKysr LS0tCiBpbmNsdWRlL2RybS9kcm1fZm91cmNjLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9mb3VyY2MuYwppbmRleCAwNjQ1Yzg1Li4zODIxNmExIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNj LmMKQEAgLTM5LDE2ICszOSwxNCBAQCBzdGF0aWMgY2hhciBwcmludGFibGVfY2hhcihpbnQgYykK ICAqIGRybV9nZXRfZm9ybWF0X25hbWUgLSByZXR1cm4gYSBzdHJpbmcgZm9yIGRybSBmb3VyY2Mg Zm9ybWF0CiAgKiBAZm9ybWF0OiBmb3JtYXQgdG8gY29tcHV0ZSBuYW1lIG9mCiAgKgotICogTm90 ZSB0aGF0IHRoZSBidWZmZXIgdXNlZCBieSB0aGlzIGZ1bmN0aW9uIGlzIGdsb2JhbGx5IHNoYXJl ZCBhbmQgb3duZWQgYnkKLSAqIHRoZSBmdW5jdGlvbiBpdHNlbGYuCi0gKgotICogRklYTUU6IFRo aXMgaXNuJ3QgcmVhbGx5IG11bHRpdGhyZWFkaW5nIHNhZmUuCisgKiBOb3RlIHRoYXQgdGhlIGJ1 ZmZlciByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIKKyAq IGFuZCB3aWxsIG5lZWQgdG8gYmUgZnJlZWQuCiAgKi8KIGNvbnN0IGNoYXIgKmRybV9nZXRfZm9y bWF0X25hbWUodWludDMyX3QgZm9ybWF0KQogewotCXN0YXRpYyBjaGFyIGJ1ZlszMl07CisJY2hh ciAqYnVmID0ga21hbGxvYygzMiwgR0ZQX0tFUk5FTCk7CiAKLQlzbnByaW50ZihidWYsIHNpemVv ZihidWYpLAorCXNucHJpbnRmKGJ1ZiwgMzIsCiAJCSAiJWMlYyVjJWMgJXMtZW5kaWFuICgweCUw OHgpIiwKIAkJIHByaW50YWJsZV9jaGFyKGZvcm1hdCAmIDB4ZmYpLAogCQkgcHJpbnRhYmxlX2No YXIoKGZvcm1hdCA+PiA4KSAmIDB4ZmYpLApAQCAtNzMsNiArNzEsOCBAQCBFWFBPUlRfU1lNQk9M KGRybV9nZXRfZm9ybWF0X25hbWUpOwogdm9pZCBkcm1fZmJfZ2V0X2JwcF9kZXB0aCh1aW50MzJf dCBmb3JtYXQsIHVuc2lnbmVkIGludCAqZGVwdGgsCiAJCQkgIGludCAqYnBwKQogeworCWNvbnN0 IGNoYXIgKmZvcm1hdF9uYW1lOworCiAJc3dpdGNoIChmb3JtYXQpIHsKIAljYXNlIERSTV9GT1JN QVRfQzg6CiAJY2FzZSBEUk1fRk9STUFUX1JHQjMzMjoKQEAgLTEyNyw4ICsxMjcsOSBAQCB2b2lk IGRybV9mYl9nZXRfYnBwX2RlcHRoKHVpbnQzMl90IGZvcm1hdCwgdW5zaWduZWQgaW50ICpkZXB0 aCwKIAkJKmJwcCA9IDMyOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlEUk1fREVCVUdfS01TKCJ1 bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQgJXNcbiIsCi0JCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9u YW1lKGZvcm1hdCkpOworCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUoZm9ybWF0 KTsKKwkJRFJNX0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVzXG4iLCBmb3Jt YXRfbmFtZSk7CisJCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJKmRlcHRoID0gMDsKIAkJKmJwcCA9 IDA7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5j bHVkZS9kcm0vZHJtX2ZvdXJjYy5oCmluZGV4IDdmOTBhMzkuLjAzMGQyMmQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgK QEAgLTMyLDYgKzMyLDYgQEAgaW50IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxpbmco dWludDMyX3QgZm9ybWF0KTsKIGludCBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5n KHVpbnQzMl90IGZvcm1hdCk7CiBpbnQgZHJtX2Zvcm1hdF9wbGFuZV93aWR0aChpbnQgd2lkdGgs IHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKTsKIGludCBkcm1fZm9ybWF0X3BsYW5lX2hlaWdo dChpbnQgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsIGludCBwbGFuZSk7Ci1jb25zdCBjaGFyICpk cm1fZ2V0X2Zvcm1hdF9uYW1lKHVpbnQzMl90IGZvcm1hdCk7Citjb25zdCBjaGFyICpkcm1fZ2V0 X2Zvcm1hdF9uYW1lKHVpbnQzMl90IGZvcm1hdCkgX19tYWxsb2M7CiAKICNlbmRpZiAvKiBfX0RS TV9GT1VSQ0NfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCmluZGV4 IGMxYjA0ZTkuLjBiZjg5NTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5j CkBAIC0yMDcxLDYgKzIwNzEsNyBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2RvX3NldF9i YXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1MzIgdG1wLCB2aWV3cG9ydF93LCB2aWV3cG9y dF9oOwogCWludCByOwogCWJvb2wgYnlwYXNzX2x1dCA9IGZhbHNlOworCWNvbnN0IGNoYXIgKmZv cm1hdF9uYW1lOwogCiAJLyogbm8gZmIgYm91bmQgKi8KIAlpZiAoIWF0b21pYyAmJiAhY3J0Yy0+ cHJpbWFyeS0+ZmIpIHsKQEAgLTIxODIsOCArMjE4Myw5IEBAIHN0YXRpYyBpbnQgZGNlX3YxMF8w X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlieXBhc3NfbHV0ID0g dHJ1ZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3Jl ZW4gZm9ybWF0ICVzXG4iLAotCQkJZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVs X2Zvcm1hdCkpOworCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2Zi LT5waXhlbF9mb3JtYXQpOworCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQg JXNcbiIsIGZvcm1hdF9uYW1lKTsKKwkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKaW5kZXggZDRi ZjEzMy4uMTU1OGE5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKQEAg LTIwNDYsNiArMjA0Niw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfZG9fc2V0X2Jhc2Uo c3RydWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiB0bXAsIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7 CiAJaW50IHI7CiAJYm9vbCBieXBhc3NfbHV0ID0gZmFsc2U7CisJY29uc3QgY2hhciAqZm9ybWF0 X25hbWU7CiAKIAkvKiBubyBmYiBib3VuZCAqLwogCWlmICghYXRvbWljICYmICFjcnRjLT5wcmlt YXJ5LT5mYikgewpAQCAtMjE1Nyw4ICsyMTU4LDkgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJ5cGFzc19sdXQgPSB0cnVl OwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBm b3JtYXQgJXNcbiIsCi0JCQlkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9y bWF0KSk7CisJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBp eGVsX2Zvcm1hdCk7CisJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xu IiwgZm9ybWF0X25hbWUpOworCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCXJldHVybiAtRUlOVkFM OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKaW5kZXggNGZkZmFiMS4u NzFhMDM3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCkBAIC0xOTUyLDYg KzE5NTIsNyBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCXUzMiB2aWV3cG9ydF93LCB2aWV3cG9ydF9oOwogCWludCByOwogCWJv b2wgYnlwYXNzX2x1dCA9IGZhbHNlOworCWNvbnN0IGNoYXIgKmZvcm1hdF9uYW1lOwogCiAJLyog bm8gZmIgYm91bmQgKi8KIAlpZiAoIWF0b21pYyAmJiAhY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKQEAg LTIwNTYsOCArMjA1Nyw5IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19zZXRfYmFzZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJ5cGFzc19sdXQgPSB0cnVlOwogCQlicmVhazsKIAlk ZWZhdWx0OgotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCi0J CQkgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpKTsKKwkJZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KTsK KwkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFt ZSk7CisJCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwppbmRleCBmYTM5MzA3Li4wODczOTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAg LTgzNyw4ICs4MzcsOSBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfY2hlY2soc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJLyogQ2hlY2sgd2hldGhlciB0aGlzIHBsYW5lIHN1cHBvcnRz IHRoZSBmYiBwaXhlbCBmb3JtYXQuICovCiAJcmV0ID0gZHJtX3BsYW5lX2NoZWNrX3BpeGVsX2Zv cm1hdChwbGFuZSwgc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwogCWlmIChyZXQpIHsKLQkJRFJN X0RFQlVHX0FUT01JQygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsCi0JCQkJIGRybV9nZXRf Zm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpKTsKKwkJY29uc3QgY2hhciAqZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KTsK KwkJRFJNX0RFQlVHX0FUT01JQygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsIGZvcm1hdF9u YW1lKTsKKwkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQlyZXR1cm4gcmV0OwogCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwppbmRleCBiMWRiYjYwLi43ZGE1ZDMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtMjU5Miw4ICsy NTkyLDkgQEAgc3RhdGljIGludCBfX3NldHBsYW5lX2ludGVybmFsKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBwbGFuZSBzdXBwb3J0cyB0aGUgZmIgcGl4 ZWwgZm9ybWF0LiAqLwogCXJldCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUs IGZiLT5waXhlbF9mb3JtYXQpOwogCWlmIChyZXQpIHsKLQkJRFJNX0RFQlVHX0tNUygiSW52YWxp ZCBwaXhlbCBmb3JtYXQgJXNcbiIsCi0JCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5w aXhlbF9mb3JtYXQpKTsKKwkJY29uc3QgY2hhciAqZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1h dF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpOworCQlEUk1fREVCVUdfS01TKCJJbnZhbGlkIHBpeGVs IGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCWdv dG8gb3V0OwogCX0KIApAQCAtMjkwMiw4ICsyOTAzLDkgQEAgaW50IGRybV9tb2RlX3NldGNydGMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXJldCA9IGRybV9wbGFuZV9j aGVja19waXhlbF9mb3JtYXQoY3J0Yy0+cHJpbWFyeSwKIAkJCQkJCQkgICBmYi0+cGl4ZWxfZm9y bWF0KTsKIAkJCWlmIChyZXQpIHsKLQkJCQlEUk1fREVCVUdfS01TKCJJbnZhbGlkIHBpeGVsIGZv cm1hdCAlc1xuIiwKLQkJCQkJZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KSk7 CisJCQkJY29uc3QgY2hhciAqZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5w aXhlbF9mb3JtYXQpOworCQkJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVz XG4iLCBmb3JtYXRfbmFtZSk7CisJCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJCWdvdG8gb3V0 OwogCQkJfQogCQl9CkBAIC0zMjc5LDYgKzMyODEsNyBAQCBpbnQgZHJtX21vZGVfYWRkZmIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIHN0YXRpYyBpbnQgZm9ybWF0X2NoZWNrKGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9mYl9jbWQyICpyKQogewogCXVpbnQzMl90IGZvcm1hdCA9IHItPnBpeGVsX2Zv cm1hdCAmIH5EUk1fRk9STUFUX0JJR19FTkRJQU47CisJY29uc3QgY2hhciAqZm9ybWF0X25hbWU7 CiAKIAlzd2l0Y2ggKGZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKQEAgLTMzNDMsOCAr MzM0Niw5IEBAIHN0YXRpYyBpbnQgZm9ybWF0X2NoZWNrKGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQyICpyKQogCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0NDQ6CiAJCXJldHVybiAwOwogCWRlZmF1 bHQ6Ci0JCURSTV9ERUJVR19LTVMoImludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAotCQkJICAg ICAgZHJtX2dldF9mb3JtYXRfbmFtZShyLT5waXhlbF9mb3JtYXQpKTsKKwkJZm9ybWF0X25hbWUg PSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHItPnBpeGVsX2Zvcm1hdCk7CisJCURSTV9ERUJVR19LTVMo ImludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7CisJCWtmcmVlKGZvcm1h dF9uYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogfQpAQCAtMzM1NSw4ICszMzU5LDkgQEAg c3RhdGljIGludCBmcmFtZWJ1ZmZlcl9jaGVjayhjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21k MiAqcikKIAogCXJldCA9IGZvcm1hdF9jaGVjayhyKTsKIAlpZiAocmV0KSB7Ci0JCURSTV9ERUJV R19LTVMoImJhZCBmcmFtZWJ1ZmZlciBmb3JtYXQgJXNcbiIsCi0JCQkgICAgICBkcm1fZ2V0X2Zv cm1hdF9uYW1lKHItPnBpeGVsX2Zvcm1hdCkpOworCQljb25zdCBjaGFyICpmb3JtYXRfbmFtZSA9 IGRybV9nZXRfZm9ybWF0X25hbWUoci0+cGl4ZWxfZm9ybWF0KTsKKwkJRFJNX0RFQlVHX0tNUygi YmFkIGZyYW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlrZnJlZShmb3Jt YXRfbmFtZSk7CiAJCXJldHVybiByZXQ7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCmluZGV4IGMzNzA3ZDQuLmFjN2ZhMDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCkBAIC02 MDgsMTUgKzYwOCwxNyBAQCBzdGF0aWMgdm9pZCBhZGVfcmRtYV9zZXQodm9pZCBfX2lvbWVtICpi YXNlLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCSB1MzIgY2gsIHUzMiB5LCB1MzIg aW5faCwgdTMyIGZtdCkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpvYmogPSBkcm1f ZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKKwljb25zdCBjaGFyICpmb3JtYXRfbmFtZTsKIAl1 MzIgcmVnX2N0cmwsIHJlZ19hZGRyLCByZWdfc2l6ZSwgcmVnX3N0cmlkZSwgcmVnX3NwYWNlLCBy ZWdfZW47CiAJdTMyIHN0cmlkZSA9IGZiLT5waXRjaGVzWzBdOwogCXUzMiBhZGRyID0gKHUzMilv YmotPnBhZGRyICsgeSAqIHN0cmlkZTsKIAogCURSTV9ERUJVR19EUklWRVIoInJkbWElZDogKHk9 JWQsIGhlaWdodD0lZCksIHN0cmlkZT0lZCwgcGFkZHI9MHgleFxuIiwKIAkJCSBjaCArIDEsIHks IGluX2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRyKTsKKwlmb3JtYXRfbmFtZSA9IGRybV9nZXRf Zm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCk7CiAJRFJNX0RFQlVHX0RSSVZFUigiYWRkcj0w eCV4LCBmYjolZHglZCwgcGl4ZWxfZm9ybWF0PSVkKCVzKVxuIiwKLQkJCSBhZGRyLCBmYi0+d2lk dGgsIGZiLT5oZWlnaHQsIGZtdCwKLQkJCSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9m b3JtYXQpKTsKKwkJCSBhZGRyLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGZtdCwgZm9ybWF0X25h bWUpOworCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAogCS8qIGdldCByZWcgb2Zmc2V0ICovCiAJcmVn X2N0cmwgPSBSRF9DSF9DVFJMKGNoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5k ZXggODQ0ZmVhNy4uOTA0NzIwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAg LTMxMDksNiArMzEwOSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2luZm8oc3RydWN0IHNl cV9maWxlICptLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKIAlmb3JfZWFjaF9pbnRl bF9wbGFuZV9vbl9jcnRjKGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKIAkJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGU7CiAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJmlu dGVsX3BsYW5lLT5iYXNlOworCQljb25zdCBjaGFyICpmb3JtYXRfbmFtZTsKIAogCQlpZiAoIXBs YW5lLT5zdGF0ZSkgewogCQkJc2VxX3B1dHMobSwgInBsYW5lLT5zdGF0ZSBpcyBOVUxMIVxuIik7 CkBAIC0zMTE3LDYgKzMxMTgsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQogCiAJCXN0YXRl ID0gcGxhbmUtPnN0YXRlOwogCisJCWlmIChzdGF0ZS0+ZmIpIHsKKwkJCWZvcm1hdF9uYW1lID0g ZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJCX0gZWxzZSB7 CisJCQlmb3JtYXRfbmFtZSA9IGtzdHJkdXAoIk4vQSIsIEdGUF9LRVJORUwpOworCQl9CisKIAkJ c2VxX3ByaW50ZihtLCAiXHQtLVBsYW5lIGlkICVkOiB0eXBlPSVzLCBjcnRjX3Bvcz0lNGR4JTRk LCBjcnRjX3NpemU9JTRkeCU0ZCwgc3JjX3Bvcz0lZC4lMDR1eCVkLiUwNHUsIHNyY19zaXplPSVk LiUwNHV4JWQuJTA0dSwgZm9ybWF0PSVzLCByb3RhdGlvbj0lc1xuIiwKIAkJCSAgIHBsYW5lLT5i YXNlLmlkLAogCQkJICAgcGxhbmVfdHlwZShpbnRlbF9wbGFuZS0+YmFzZS50eXBlKSwKQEAgLTMx MzAsOCArMzEzNywxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCiAJCQkgICAoKHN0YXRlLT5z cmNfdyAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTAsCiAJCQkgICAoc3RhdGUtPnNyY19oID4+IDE2 KSwKIAkJCSAgICgoc3RhdGUtPnNyY19oICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKLQkJCSAg IHN0YXRlLT5mYiA/IGRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQp IDogIk4vQSIsCisJCQkgICBmb3JtYXRfbmFtZSwKIAkJCSAgIHBsYW5lX3JvdGF0aW9uKHN0YXRl LT5yb3RhdGlvbikpOworCisJCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAl9CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggN2RlNzcyMS4uZTA2MTMxYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTE1Nyw2ICsx NTcsNyBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPyBjcnRjX3N0YXRlLT5waXBl X3NyY19oIDogMDsKIAogCWlmIChzdGF0ZS0+ZmIgJiYgaW50ZWxfcm90YXRpb25fOTBfb3JfMjcw KHN0YXRlLT5yb3RhdGlvbikpIHsKKwkJY29uc3QgY2hhciAqZm9ybWF0X25hbWU7CiAJCWlmICgh KHN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKIAkJ CXN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSkgewog CQkJRFJNX0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgcmVxdWlyZWQgZm9yIDkwLzI3MCFcbiIpOwpA QCAtMTcxLDggKzE3Miw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzd2l0Y2ggKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0 KSB7CiAJCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKLQkJ CURSTV9ERUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCAlcyBmb3IgOTAvMjcwIVxu IiwKLQkJCQkJZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkpOwor CQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9y bWF0KTsKKwkJCURSTV9ERUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCAlcyBmb3Ig OTAvMjcwIVxuIiwgZm9ybWF0X25hbWUpOworCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJcmV0 dXJuIC1FSU5WQUw7CiAKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwppbmRleCBjNDU3ZWVkLi4wNzEzOTliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCkBAIC0xMjI4Miw2ICsxMjI4Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9j b25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAlEUk1fREVCVUdfS01TKCJwbGFuZXMg b24gdGhpcyBjcnRjXG4iKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmZGV2LT5tb2Rl X2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSB7CisJCWNvbnN0IGNoYXIgKmZvcm1hdF9uYW1lOwog CQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAkJaWYgKGludGVsX3BsYW5l LT5waXBlICE9IGNydGMtPnBpcGUpCiAJCQljb250aW51ZTsKQEAgLTEyMjk0LDExICsxMjI5NSwx MiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAogCQkJY29udGludWU7CiAJCX0KIAorCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9y bWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCk7CisKIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVk OiVzXSBlbmFibGVkIiwKIAkJCSAgICAgIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSk7CiAJ CURSTV9ERUJVR19LTVMoIlx0RkI6JWQsIGZiID0gJXV4JXUgZm9ybWF0ID0gJXMiLAotCQkJICAg ICAgZmItPmJhc2UuaWQsIGZiLT53aWR0aCwgZmItPmhlaWdodCwKLQkJCSAgICAgIGRybV9nZXRf Zm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCkpOworCQkJICAgICAgZmItPmJhc2UuaWQsIGZi LT53aWR0aCwgZmItPmhlaWdodCwgZm9ybWF0X25hbWUpOwogCQlEUk1fREVCVUdfS01TKCJcdHNj YWxlcjolZCBzcmMgJWR4JWQrJWQrJWQgZHN0ICVkeCVkKyVkKyVkXG4iLAogCQkJICAgICAgc3Rh dGUtPnNjYWxlcl9pZCwKIAkJCSAgICAgIHN0YXRlLT5zcmMueDEgPj4gMTYsIHN0YXRlLT5zcmMu eTEgPj4gMTYsCkBAIC0xMjMwNyw2ICsxMjMwOSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBf cGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICAgICBzdGF0ZS0+ZHN0 LngxLCBzdGF0ZS0+ZHN0LnkxLAogCQkJICAgICAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3Qp LAogCQkJICAgICAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSk7CisKKwkJa2ZyZWUoZm9y bWF0X25hbWUpOwogCX0KIH0KIApAQCAtMTQ5MzYsNiArMTQ5NDAsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl1bnNpZ25lZCBp bnQgYWxpZ25lZF9oZWlnaHQ7CiAJaW50IHJldDsKIAl1MzIgcGl0Y2hfbGltaXQsIHN0cmlkZV9h bGlnbm1lbnQ7CisJY29uc3QgY2hhciAqZm9ybWF0X25hbWU7CiAKIAlXQVJOX09OKCFtdXRleF9p c19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CiAKQEAgLTE1MDA5LDE2ICsxNTAxNCwxOCBA QCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1OgogCQlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPiAzKSB7Ci0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1h dDogJXNcbiIsCi0JCQkJICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3Jt YXQpKTsKKwkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4 ZWxfZm9ybWF0KTsKKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xu IiwgZm9ybWF0X25hbWUpOworCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJcmV0dXJuIC1FSU5W QUw7CiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgogCQlpZiAoIUlT X1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpICYmCiAJCSAgICBJTlRFTF9J TkZPKGRldiktPmdlbiA8IDkpIHsKLQkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9y bWF0OiAlc1xuIiwKLQkJCQkgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCkpOworCQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5w aXhlbF9mb3JtYXQpOworCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVz XG4iLCBmb3JtYXRfbmFtZSk7CisJCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJfQogCQlicmVhazsKQEAgLTE1MDI2LDE1ICsxNTAzMywxNyBAQCBzdGF0aWMgaW50 IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAljYXNlIERS TV9GT1JNQVRfWFJHQjIxMDEwMTA6CiAJY2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgogCQlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KSB7Ci0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVk IHBpeGVsIGZvcm1hdDogJXNcbiIsCi0JCQkJICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21k LT5waXhlbF9mb3JtYXQpKTsKKwkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSht b2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwg Zm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUpOworCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJ cmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX0FCR1IyMTAx MDEwOgogCQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpKSB7 Ci0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCi0JCQkJICBk cm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpKTsKKwkJCWZvcm1hdF9u YW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKKwkJCURS TV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUpOwor CQkJa2ZyZWUoZm9ybWF0X25hbWUpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAkJYnJlYWs7 CkBAIC0xNTA0MywxNCArMTUwNTIsMTYgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJY2FzZSBEUk1fRk9STUFUX1lWWVU6CiAJY2Fz ZSBEUk1fRk9STUFUX1ZZVVk6CiAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpIHsKLQkJ CURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwKLQkJCQkgIGRybV9n ZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCkpOworCQkJZm9ybWF0X25hbWUg PSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOworCQkJRFJNX0RF QlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLCBmb3JtYXRfbmFtZSk7CisJCQlr ZnJlZShmb3JtYXRfbmFtZSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlicmVhazsKIAlk ZWZhdWx0OgotCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCi0J CQkgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCkpOworCQlmb3Jt YXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7CisJ CURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUp OworCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwppbmRleCBhOTdhYmM4Li45ODFjYTNmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwpAQCAtMTE1NCw2ICsxMTU0LDcgQEAg c3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CXUzMiB0bXAsIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBhc3Nf bHV0ID0gZmFsc2U7CisJY29uc3QgY2hhciAqZm9ybWF0X25hbWU7CiAKIAkvKiBubyBmYiBib3Vu ZCAqLwogCWlmICghYXRvbWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewpAQCAtMTI1Nyw4ICsx MjU4LDkgQEAgc3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQlieXBhc3NfbHV0ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJN X0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAotCQkJICBkcm1fZ2V0X2Zv cm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KSk7CisJCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7CisJCURSTV9FUlJPUigi VW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlrZnJlZShm b3JtYXRfbmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTQ2OSw2ICsxNDcxLDcg QEAgc3RhdGljIGludCBhdml2b19jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAl1MzIgdmlld3BvcnRfdywgdmlld3BvcnRfaDsKIAlpbnQgcjsKIAlib29sIGJ5cGFzc19s dXQgPSBmYWxzZTsKKwljb25zdCBjaGFyICpmb3JtYXRfbmFtZTsKIAogCS8qIG5vIGZiIGJvdW5k ICovCiAJaWYgKCFhdG9taWMgJiYgIWNydGMtPnByaW1hcnktPmZiKSB7CkBAIC0xNTU4LDggKzE1 NjEsOSBAQCBzdGF0aWMgaW50IGF2aXZvX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQlieXBhc3NfbHV0ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJN X0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAotCQkJICBkcm1fZ2V0X2Zv cm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KSk7CisJCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7CisJCURSTV9FUlJPUigi VW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOworCQlrZnJlZShm b3JtYXRfbmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotLSAKMi45LjMKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=