From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v2] drm/i915: Name all intel_ringbuffer instances ring Date: Wed, 16 Mar 2016 17:25:43 +0000 Message-ID: <1458149143-3747-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1458148129-30422-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id D893E6E9C6 for ; Wed, 16 Mar 2016 17:25:47 +0000 (UTC) In-Reply-To: <1458148129-30422-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkEgbWl4IG9m IENvY2NpbmVsbGUsIHNlZCBhbmQgbWFudWFsIGVkaXRpbmcuCgp2MjogUmVuYW1lIGVuZ2luZS0+ YnVmZmVyIGFzIHdlbGwuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Ci0tCkNvbXBpbGUgdGVzdGVkIG9ubHkhCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg ICAgICAgICAgICB8ICAyNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYyB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAg IHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAy MzkgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5oICAgICAgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bW9jcy5jICAgICAgICAgIHwgIDM4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgICAgfCAxOTMgKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8ICAzMyArKy0tCiAxMSBmaWxlcyBjaGFu Z2VkLCAyOTUgaW5zZXJ0aW9ucygrKSwgMjg4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMWQ4YzNlZjI5MzE4Li4xNzdiNzRiMjEzMTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xOTMzLDExICsxOTMzLDExIEBAIHN0YXRpYyBp bnQgaTkxNV9nZW1fZnJhbWVidWZmZXJfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiB9CiAKIHN0YXRpYyB2b2lkIGRlc2NyaWJlX2N0eF9yaW5nYnVmKHN0cnVjdCBzZXFfZmls ZSAqbSwKLQkJCQkgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCisJCQkJIHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewogCXNlcV9wcmludGYobSwgIiAocmluZ2J1ZmZl ciwgc3BhY2U6ICVkLCBoZWFkOiAldSwgdGFpbDogJXUsIGxhc3QgaGVhZDogJWQpIiwKLQkJICAg cmluZ2J1Zi0+c3BhY2UsIHJpbmdidWYtPmhlYWQsIHJpbmdidWYtPnRhaWwsCi0JCSAgIHJpbmdi dWYtPmxhc3RfcmV0aXJlZF9oZWFkKTsKKwkJICAgcmluZy0+c3BhY2UsIHJpbmctPmhlYWQsIHJp bmctPnRhaWwsCisJCSAgIHJpbmctPmxhc3RfcmV0aXJlZF9oZWFkKTsKIH0KIAogc3RhdGljIGlu dCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQpA QCAtMTk2OCwxNCArMTk2OCwxNCBAQCBzdGF0aWMgaW50IGk5MTVfY29udGV4dF9zdGF0dXMoc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkgewogCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2Jq ID0KIAkJCQkJY3R4LT5lbmdpbmVbaV0uc3RhdGU7Ci0JCQkJc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYgPQotCQkJCQljdHgtPmVuZ2luZVtpXS5yaW5nYnVmOworCQkJCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nID0KKwkJCQkJY3R4LT5lbmdpbmVbaV0ucmluZzsKIAogCQkJ CXNlcV9wcmludGYobSwgIiVzOiAiLCBlbmdpbmUtPm5hbWUpOwogCQkJCWlmIChjdHhfb2JqKQog CQkJCQlkZXNjcmliZV9vYmoobSwgY3R4X29iaik7Ci0JCQkJaWYgKHJpbmdidWYpCi0JCQkJCWRl c2NyaWJlX2N0eF9yaW5nYnVmKG0sIHJpbmdidWYpOworCQkJCWlmIChyaW5nKQorCQkJCQlkZXNj cmliZV9jdHhfcmluZ2J1ZihtLCByaW5nKTsKIAkJCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAkJCX0K IAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGZkMWVkNjZkZDI5OC4uMmRj MDgwNjhiZGZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTgxOSw3ICs4MTksNyBAQCBz dHJ1Y3QgaW50ZWxfY29udGV4dCB7CiAJLyogRXhlY2xpc3RzICovCiAJc3RydWN0IHsKIAkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwotCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZjsKKwkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CiAJCWludCBwaW5f Y291bnQ7CiAJCXN0cnVjdCBpOTE1X3ZtYSAqbHJjX3ZtYTsKIAkJdTY0IGxyY19kZXNjOwpAQCAt MjIyMiw3ICsyMjIyLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKIAkgKiBjb250 ZXh0LgogCSAqLwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHg7Ci0Jc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWY7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CiAKIAkv KiogQmF0Y2ggYnVmZmVyIHJlbGF0ZWQgdG8gdGhpcyByZXF1ZXN0IGlmIGFueSAodXNlZCBmb3IK IAkgICAgZXJyb3Igc3RhdGUgZHVtcCBvbmx5KSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5k ZXggMDQyY2I0MTJlNjUyLi4zMjIzNmM2ZDIxZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtMTQyMSw3ICsxNDIxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCSAqIE5vdGUgdGhpcyByZXF1 aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGluIHJlcXVlc3QKIAkgKiBjb21wbGV0aW9u IG9yZGVyLgogCSAqLwotCXJlcXVlc3QtPnJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkID0gcmVx dWVzdC0+cG9zdGZpeDsKKwlyZXF1ZXN0LT5yaW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IHJlcXVl c3QtPnBvc3RmaXg7CiAKIAlsaXN0X2RlbF9pbml0KCZyZXF1ZXN0LT5saXN0KTsKIAlpOTE1X2dl bV9yZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKQEAgLTI1NDIsNyArMjU0Miw3 IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmOworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nOwogCXUzMiByZXF1ZXN0X3N0YXJ0 OwogCWludCByZXQ7CiAKQEAgLTI1NTEsMTYgKzI1NTEsMTYgQEAgdm9pZCBfX2k5MTVfYWRkX3Jl cXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAogCiAJZW5naW5lID0g cmVxdWVzdC0+ZW5naW5lOwogCWRldl9wcml2ID0gcmVxdWVzdC0+aTkxNTsKLQlyaW5nYnVmID0g cmVxdWVzdC0+cmluZ2J1ZjsKKwlyaW5nID0gcmVxdWVzdC0+cmluZzsKIAogCS8qCiAJICogVG8g ZW5zdXJlIHRoYXQgdGhpcyBjYWxsIHdpbGwgbm90IGZhaWwsIHNwYWNlIGZvciBpdHMgZW1pc3Np b25zCiAJICogc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIHJlc2VydmVkIGluIHRoZSByaW5nIGJ1 ZmZlci4gTGV0IHRoZSByaW5nCiAJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8gdXNlIHRoYXQg c3BhY2UgdXAuCiAJICovCi0JaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2UocmluZ2J1Zik7 CisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2UocmluZyk7CiAKLQlyZXF1ZXN0X3N0YXJ0 ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsKKwlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxf cmluZ19nZXRfdGFpbChyaW5nKTsKIAkvKgogCSAqIEVtaXQgYW55IG91dHN0YW5kaW5nIGZsdXNo ZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVtaXQgdGhlIGZsdXNoCiAJICogYWZ0ZXIgaGF2aW5n IGVtaXR0ZWQgdGhlIGJhdGNoYnVmZmVyIGNvbW1hbmQuIEhlbmNlIHdlIG5lZWQgdG8gZml4CkBA IC0yNTgyLDE0ICsyNTgyLDE0IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkgKiBHUFUgcHJvY2Vzc2luZyB0aGUgcmVxdWVz dCwgd2UgbmV2ZXIgb3Zlci1lc3RpbWF0ZSB0aGUKIAkgKiBwb3NpdGlvbiBvZiB0aGUgaGVhZC4K IAkgKi8KLQlyZXF1ZXN0LT5wb3N0Zml4ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsK KwlyZXF1ZXN0LT5wb3N0Zml4ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nKTsKIAogCWlmIChp OTE1LmVuYWJsZV9leGVjbGlzdHMpCiAJCXJldCA9IGVuZ2luZS0+ZW1pdF9yZXF1ZXN0KHJlcXVl c3QpOwogCWVsc2UgewogCQlyZXQgPSBlbmdpbmUtPmFkZF9yZXF1ZXN0KHJlcXVlc3QpOwogCi0J CXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9yaW5nX2dldF90YWlsKHJpbmdidWYpOworCQlyZXF1ZXN0 LT50YWlsID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nKTsKIAl9CiAJLyogTm90IGFsbG93ZWQg dG8gZmFpbCEgKi8KIAlXQVJOKHJldCwgImVtaXR8YWRkX3JlcXVlc3QgZmFpbGVkOiAlZCFcbiIs IHJldCk7CkBAIC0yNjE5LDcgKzI2MTksNyBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJaW50ZWxfbWFya19idXN5KGRldl9w cml2LT5kZXYpOwogCiAJLyogU2FuaXR5IGNoZWNrIHRoYXQgdGhlIHJlc2VydmVkIHNpemUgd2Fz IGxhcmdlIGVub3VnaC4gKi8KLQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nYnVm KTsKKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nKTsKIH0KIAogc3RhdGljIGJv b2wgaTkxNV9jb250ZXh0X2lzX2Jhbm5lZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCkBAIC0yNzc5LDcgKzI3NzksNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlpbnRlbF9yaW5nX3Jlc2VydmVk X3NwYWNlX2NhbmNlbChyZXEtPnJpbmdidWYpOworCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf Y2FuY2VsKHJlcS0+cmluZyk7CiAKIAlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7 CiB9CkBAIC0yODIxLDcgKzI4MjEsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdp bmVfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpidWZmZXI7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmc7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmVuZ2luZS0+YWN0aXZlX2xpc3QpKSB7CiAJCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CkBAIC0yODc0LDkgKzI4NzQsOSBAQCBzdGF0 aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJICogdXBvbiByZXNldCBpcyBsZXNzIHRoYW4gd2hlbiB3ZSBzdGFy dC4gRG8gb25lIG1vcmUgcGFzcyBvdmVyCiAJICogYWxsIHRoZSByaW5nYnVmZmVycyB0byByZXNl dCBsYXN0X3JldGlyZWRfaGVhZC4KIAkgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJ1ZmZlciwg JmVuZ2luZS0+YnVmZmVycywgbGluaykgewotCQlidWZmZXItPmxhc3RfcmV0aXJlZF9oZWFkID0g YnVmZmVyLT50YWlsOwotCQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShidWZmZXIpOworCWxpc3Rf Zm9yX2VhY2hfZW50cnkocmluZywgJmVuZ2luZS0+YnVmZmVycywgbGluaykgeworCQlyaW5nLT5s YXN0X3JldGlyZWRfaGVhZCA9IHJpbmctPnRhaWw7CisJCWludGVsX3JpbmdfdXBkYXRlX3NwYWNl KHJpbmcpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXgg MzQzOTdhNjdiMDllLi5lNzlmNjczOWU3YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYwpAQCAtMTA3NCwxMSArMTA3NCwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNv cmRfcmluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAqIGV4ZWN1dGVkKS4KIAkJCSAq LwogCQkJaWYgKHJlcXVlc3QpCi0JCQkJcmJ1ZiA9IHJlcXVlc3QtPmN0eC0+ZW5naW5lW2VuZ2lu ZS0+aWRdLnJpbmdidWY7CisJCQkJcmJ1ZiA9IHJlcXVlc3QtPmN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLnJpbmc7CiAJCQllbHNlCi0JCQkJcmJ1ZiA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dC0+ ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7CisJCQkJcmJ1ZiA9IGRldl9wcml2LT5rZXJuZWxf Y29udGV4dC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmc7CiAJCX0gZWxzZQotCQkJcmJ1ZiA9IGVu Z2luZS0+YnVmZmVyOworCQkJcmJ1ZiA9IGVuZ2luZS0+cmluZzsKIAogCQllcnJvci0+cmluZ1tp XS5jcHVfcmluZ19oZWFkID0gcmJ1Zi0+aGVhZDsKIAkJZXJyb3ItPnJpbmdbaV0uY3B1X3Jpbmdf dGFpbCA9IHJidWYtPnRhaWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMKaW5kZXggYWUxZjU4ZDA3M2YyLi4zNDIyNWI1N2JhYzIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTQxNSw3ICs0MTUsNyBAQCBzdGF0aWMg dm9pZCBndWNfaW5pdF9jdHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJCWxyYy0+Y29u dGV4dF9pZCA9IChjbGllbnQtPmN0eF9pbmRleCA8PCBHVUNfRUxDX0NUWElEX09GRlNFVCkgfAog CQkJCShlbmdpbmUtPmd1Y19pZCA8PCBHVUNfRUxDX0VOR0lORV9PRkZTRVQpOwogCi0JCW9iaiA9 IGN0eC0+ZW5naW5lW2ldLnJpbmdidWYtPm9iajsKKwkJb2JqID0gY3R4LT5lbmdpbmVbaV0ucmlu Zy0+b2JqOwogCiAJCWxyYy0+cmluZ19iZWdpbiA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChv YmopOwogCQlscmMtPnJpbmdfZW5kID0gbHJjLT5yaW5nX2JlZ2luICsgb2JqLT5iYXNlLnNpemUg LSAxOwpAQCAtNTUwLDcgKzU1MCw3IEBAIHN0YXRpYyBpbnQgZ3VjX2FkZF93b3JrcXVldWVfaXRl bShzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYywKIAkJCQkJCQkgICAgIHJxLT5lbmdpbmUpOwog CiAJLyogVGhlIEd1QyBmaXJtd2FyZSB3YW50cyB0aGUgdGFpbCBpbmRleCBpbiBRV29yZHMsIG5v dCBieXRlcyAqLwotCXRhaWwgPSBycS0+cmluZ2J1Zi0+dGFpbCA+PiAzOworCXRhaWwgPSBycS0+ cmluZy0+dGFpbCA+PiAzOwogCXdxaS0+cmluZ190YWlsID0gdGFpbCA8PCBXUV9SSU5HX1RBSUxf U0hJRlQ7CiAJd3FpLT5mZW5jZV9pZCA9IDA7IC8qWFhYOiB3aGF0IGZlbmNlIHRvIGJlIGhlcmUg Ki8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMGY2MWFlMGZmNjA5Li42ZjdiMDVmMTA3 MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjg4Miw3ICsyODgyLDcgQEAgc2VtYXBo b3JlX3dhaXRzX2ZvcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqc2Vxbm8p CiAJICogVGhlcmVmb3JlLCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHN1cHBvcnQgZXhlY2xpc3Qg bW9kZSBpbiBpdHMKIAkgKiBjdXJyZW50IGZvcm0uIEp1c3QgcmV0dXJuIE5VTEwgYW5kIG1vdmUg b24uCiAJICovCi0JaWYgKGVuZ2luZS0+YnVmZmVyID09IE5VTEwpCisJaWYgKGVuZ2luZS0+cmlu ZyA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAogCWlwZWhyID0gSTkxNV9SRUFEKFJJTkdfSVBF SFIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKQEAgLTI5MDYsMTAgKzI5MDYsMTAgQEAgc2VtYXBob3Jl X3dhaXRzX2ZvcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqc2Vxbm8pCiAJ CSAqIG91ciByaW5nIGlzIHNtYWxsZXIgdGhhbiB3aGF0IHRoZSBoYXJkd2FyZSAoYW5kIGhlbmNl CiAJCSAqIEhFQURfQUREUikgYWxsb3dzLiBBbHNvIGhhbmRsZXMgd3JhcC1hcm91bmQuCiAJCSAq LwotCQloZWFkICY9IGVuZ2luZS0+YnVmZmVyLT5zaXplIC0gMTsKKwkJaGVhZCAmPSBlbmdpbmUt PnJpbmctPnNpemUgLSAxOwogCiAJCS8qIFRoaXMgaGVyZSBzZWVtcyB0byBibG93IHVwICovCi0J CWNtZCA9IGlvcmVhZDMyKGVuZ2luZS0+YnVmZmVyLT52aXJ0dWFsX3N0YXJ0ICsgaGVhZCk7CisJ CWNtZCA9IGlvcmVhZDMyKGVuZ2luZS0+cmluZy0+dmlydHVhbF9zdGFydCArIGhlYWQpOwogCQlp ZiAoY21kID09IGlwZWhyKQogCQkJYnJlYWs7CiAKQEAgLTI5MTksMTEgKzI5MTksMTEgQEAgc2Vt YXBob3JlX3dhaXRzX2ZvcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqc2Vx bm8pCiAJaWYgKCFpKQogCQlyZXR1cm4gTlVMTDsKIAotCSpzZXFubyA9IGlvcmVhZDMyKGVuZ2lu ZS0+YnVmZmVyLT52aXJ0dWFsX3N0YXJ0ICsgaGVhZCArIDQpICsgMTsKKwkqc2Vxbm8gPSBpb3Jl YWQzMihlbmdpbmUtPnJpbmctPnZpcnR1YWxfc3RhcnQgKyBoZWFkICsgNCkgKyAxOwogCWlmIChJ TlRFTF9JTkZPKGVuZ2luZS0+ZGV2KS0+Z2VuID49IDgpIHsKLQkJb2Zmc2V0ID0gaW9yZWFkMzIo ZW5naW5lLT5idWZmZXItPnZpcnR1YWxfc3RhcnQgKyBoZWFkICsgMTIpOworCQlvZmZzZXQgPSBp b3JlYWQzMihlbmdpbmUtPnJpbmctPnZpcnR1YWxfc3RhcnQgKyBoZWFkICsgMTIpOwogCQlvZmZz ZXQgPDw9IDMyOwotCQlvZmZzZXQgPSBpb3JlYWQzMihlbmdpbmUtPmJ1ZmZlci0+dmlydHVhbF9z dGFydCArIGhlYWQgKyA4KTsKKwkJb2Zmc2V0ID0gaW9yZWFkMzIoZW5naW5lLT5yaW5nLT52aXJ0 dWFsX3N0YXJ0ICsgaGVhZCArIDgpOwogCX0KIAlyZXR1cm4gc2VtYXBob3JlX3dhaXRfdG9fc2ln bmFsbGVyX3JpbmcoZW5naW5lLCBpcGVociwgb2Zmc2V0KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKaW5kZXggN2M2MzZiM2RiMTU2Li40YjY3MzAyNmU2ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCkBAIC00NjgsMTEgKzQ2OCwxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29u dGV4dF91bnF1ZXVlX19sb2NrZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkg KiByZXN1Ym1pdCB0aGUgcmVxdWVzdC4gU2VlIGdlbjhfZW1pdF9yZXF1ZXN0KCkgZm9yIHdoZXJl IHdlCiAJCSAqIHByZXBhcmUgdGhlIHBhZGRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgcmVxdWVz dC4KIAkJICovCi0JCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOworCQlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKIAotCQlyaW5nYnVmID0gcmVxMC0+Y3R4LT5lbmdpbmVb ZW5naW5lLT5pZF0ucmluZ2J1ZjsKKwkJcmluZyA9IHJlcTAtPmN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLnJpbmc7CiAJCXJlcTAtPnRhaWwgKz0gODsKLQkJcmVxMC0+dGFpbCAmPSByaW5nYnVmLT5z aXplIC0gMTsKKwkJcmVxMC0+dGFpbCAmPSByaW5nLT5zaXplIC0gMTsKIAl9CiAKIAlleGVjbGlz dHNfc3VibWl0X3JlcXVlc3RzKHJlcTAsIHJlcTEpOwpAQCAtNzAzLDcgKzcwMyw3IEBAIGludCBp bnRlbF9sb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0CiB7CiAJaW50IHJldCA9IDA7CiAKLQlyZXF1ZXN0LT5yaW5nYnVm ID0gcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmVxdWVzdC0+ZW5naW5lLT5pZF0ucmluZ2J1ZjsKKwly ZXF1ZXN0LT5yaW5nID0gcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmVxdWVzdC0+ZW5naW5lLT5pZF0u cmluZzsKIAogCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgewogCQkvKgpAQCAtNzI3 LDE3ICs3MjcsMTcgQEAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJh cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QKIHN0YXRpYyBpbnQgbG9naWNh bF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CQkJCSAgICAgICBpbnQgYnl0ZXMpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYgPSByZXEtPnJpbmdidWY7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmc7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7CiAJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0YXJnZXQ7CiAJdW5zaWduZWQgc3BhY2U7CiAJ aW50IHJldDsKIAotCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49IGJ5dGVzKQorCWlm IChpbnRlbF9yaW5nX3NwYWNlKHJpbmcpID49IGJ5dGVzKQogCQlyZXR1cm4gMDsKIAogCS8qIFRo ZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCi0JV0FS Tl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOworCVdBUk5fT04ocmluZy0+cmVzZXJ2ZWRf aW5fdXNlKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmZW5naW5lLT5yZXF1ZXN0 X2xpc3QsIGxpc3QpIHsKIAkJLyoKQEAgLTc0NSwxMiArNzQ1LDEyIEBAIHN0YXRpYyBpbnQgbG9n aWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAogCQkgKiBmcm9tIG11bHRpcGxlIHJpbmdidWZmZXJzLiBIZXJlLCB3ZSBtdXN0IGlnbm9yZSBh bnkgdGhhdAogCQkgKiBhcmVuJ3QgZnJvbSB0aGUgcmluZ2J1ZmZlciB3ZSdyZSBjb25zaWRlcmlu Zy4KIAkJICovCi0JCWlmICh0YXJnZXQtPnJpbmdidWYgIT0gcmluZ2J1ZikKKwkJaWYgKHRhcmdl dC0+cmluZyAhPSByaW5nKQogCQkJY29udGludWU7CiAKIAkJLyogV291bGQgY29tcGxldGlvbiBv ZiB0aGlzIHJlcXVlc3QgZnJlZSBlbm91Z2ggc3BhY2U/ICovCi0JCXNwYWNlID0gX19pbnRlbF9y aW5nX3NwYWNlKHRhcmdldC0+cG9zdGZpeCwgcmluZ2J1Zi0+dGFpbCwKLQkJCQkJICAgcmluZ2J1 Zi0+c2l6ZSk7CisJCXNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHRhcmdldC0+cG9zdGZpeCwg cmluZy0+dGFpbCwKKwkJCQkJICAgcmluZy0+c2l6ZSk7CiAJCWlmIChzcGFjZSA+PSBieXRlcykK IAkJCWJyZWFrOwogCX0KQEAgLTc2Miw3ICs3NjIsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAo cmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmluZ2J1Zi0+c3BhY2UgPSBzcGFjZTsKKwlyaW5nLT5z cGFjZSA9IHNwYWNlOwogCXJldHVybiAwOwogfQogCkBAIC03NzgsMTIgKzc3OCwxMiBAQCBzdGF0 aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSwKIHN0YXRpYyBpbnQKIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9z dWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gcmVxdWVzdC0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nYnVmKTsKLQlyZXF1ZXN0LT50YWlsID0gcmluZ2J1Zi0+dGFpbDsKKwlpbnRlbF9sb2dp Y2FsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlyZXF1ZXN0LT50YWlsID0gcmluZy0+dGFpbDsKIAog CS8qCiAJICogSGVyZSB3ZSBhZGQgdHdvIGV4dHJhIE5PT1BzIGFzIHBhZGRpbmcgdG8gYXZvaWQK QEAgLTc5MSw5ICs3OTEsOSBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkgKgogCSAqIENhbGxlciBt dXN0IHJlc2VydmUgV0FfVEFJTF9EV09SRFMgZm9yIHVzIQogCSAqLwotCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1ApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmdidWYsIE1JX05PT1ApOwotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOwor CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJp bmcpOwogCiAJaWYgKGludGVsX2VuZ2luZV9zdG9wcGVkKGVuZ2luZSkpCiAJCXJldHVybiAwOwpA QCAtODE3LDMyICs4MTcsMzIgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1p dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyB2b2lkIF9fd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZikKK3N0YXRpYyB2b2lkIF9fd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZykKIHsKIAl1aW50MzJfdCBfX2lvbWVtICp2aXJ0OwotCWludCByZW0gPSBy aW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKKwlpbnQgcmVtID0gcmluZy0+c2l6ZSAtIHJp bmctPnRhaWw7CiAKLQl2aXJ0ID0gcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRh aWw7CisJdmlydCA9IHJpbmctPnZpcnR1YWxfc3RhcnQgKyByaW5nLT50YWlsOwogCXJlbSAvPSA0 OwogCXdoaWxlIChyZW0tLSkKIAkJaW93cml0ZTMyKE1JX05PT1AsIHZpcnQrKyk7CiAKLQlyaW5n YnVmLT50YWlsID0gMDsKLQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKKwlyaW5n LT50YWlsID0gMDsKKwlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsKIH0KIAogc3RhdGlj IGludCBsb2dpY2FsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwgaW50IGJ5dGVzKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVx LT5yaW5nYnVmOwotCWludCByZW1haW5fdXNhYmxlID0gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUg LSByaW5nYnVmLT50YWlsOwotCWludCByZW1haW5fYWN0dWFsID0gcmluZ2J1Zi0+c2l6ZSAtIHJp bmdidWYtPnRhaWw7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7 CisJaW50IHJlbWFpbl91c2FibGUgPSByaW5nLT5lZmZlY3RpdmVfc2l6ZSAtIHJpbmctPnRhaWw7 CisJaW50IHJlbWFpbl9hY3R1YWwgPSByaW5nLT5zaXplIC0gcmluZy0+dGFpbDsKIAlpbnQgcmV0 LCB0b3RhbF9ieXRlcywgd2FpdF9ieXRlcyA9IDA7CiAJYm9vbCBuZWVkX3dyYXAgPSBmYWxzZTsK IAotCWlmIChyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCisJaWYgKHJpbmctPnJlc2VydmVkX2lu X3VzZSkKIAkJdG90YWxfYnl0ZXMgPSBieXRlczsKIAllbHNlCi0JCXRvdGFsX2J5dGVzID0gYnl0 ZXMgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCQl0b3RhbF9ieXRlcyA9IGJ5dGVzICsgcmlu Zy0+cmVzZXJ2ZWRfc2l6ZTsKIAogCWlmICh1bmxpa2VseShieXRlcyA+IHJlbWFpbl91c2FibGUp KSB7CiAJCS8qCkBAIC04NTgsOSArODU4LDkgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfcHJl cGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IGJ5dGVzKQogCQkJICog ZmFsbHMgb2ZmIHRoZSBlbmQuIFNvIG9ubHkgbmVlZCB0byB0byB3YWl0IGZvciB0aGUKIAkJCSAq IHJlc2VydmVkIHNpemUgYWZ0ZXIgZmx1c2hpbmcgb3V0IHRoZSByZW1haW5kZXIuCiAJCQkgKi8K LQkJCXdhaXRfYnl0ZXMgPSByZW1haW5fYWN0dWFsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsK KwkJCXdhaXRfYnl0ZXMgPSByZW1haW5fYWN0dWFsICsgcmluZy0+cmVzZXJ2ZWRfc2l6ZTsKIAkJ CW5lZWRfd3JhcCA9IHRydWU7Ci0JCX0gZWxzZSBpZiAodG90YWxfYnl0ZXMgPiByaW5nYnVmLT5z cGFjZSkgeworCQl9IGVsc2UgaWYgKHRvdGFsX2J5dGVzID4gcmluZy0+c3BhY2UpIHsKIAkJCS8q IE5vIHdyYXBwaW5nIHJlcXVpcmVkLCBqdXN0IHdhaXRpbmcuICovCiAJCQl3YWl0X2J5dGVzID0g dG90YWxfYnl0ZXM7CiAJCX0KQEAgLTg3Miw3ICs4NzIsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxf cmluZ19wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMp CiAJCQlyZXR1cm4gcmV0OwogCiAJCWlmIChuZWVkX3dyYXApCi0JCQlfX3dyYXBfcmluZ19idWZm ZXIocmluZ2J1Zik7CisJCQlfX3dyYXBfcmluZ19idWZmZXIocmluZyk7CiAJfQogCiAJcmV0dXJu IDA7CkBAIC05MDgsNyArOTA4LDcgQEAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IG51bV9kd29yZHMpCiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIAotCXJlcS0+cmluZ2J1Zi0+c3BhY2UgLT0gbnVtX2R3b3JkcyAqIHNp emVvZih1aW50MzJfdCk7CisJcmVxLT5yaW5nLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9m KHVpbnQzMl90KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtOTIyLDcgKzkyMiw4IEBAIGludCBpbnRl bF9sb2dpY2FsX3JpbmdfcmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpCiAJICogYWRkaW5nIGFueSBjb21tYW5kcyB0byBpdCB0aGVuIHRoZXJlIG1pZ2h0 IG5vdCBhY3R1YWxseSBiZQogCSAqIHN1ZmZpY2llbnQgcm9vbSBmb3IgdGhlIHN1Ym1pc3Npb24g Y29tbWFuZHMuCiAJICovCi0JaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcXVl c3QtPnJpbmdidWYsIE1JTl9TUEFDRV9GT1JfQUREX1JFUVVFU1QpOworCWludGVsX3JpbmdfcmVz ZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyZXF1ZXN0LT5yaW5nLAorCQkJCQkgIE1JTl9TUEFDRV9GT1Jf QUREX1JFUVVFU1QpOwogCiAJcmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyZXF1ZXN0 LCAwKTsKIH0KQEAgLTk1MSw3ICs5NTIsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Np b24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAgICAgICAqZGV2ID0gcGFyYW1zLT5kZXY7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lID0gcGFyYW1zLT5lbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IHBhcmFtcy0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsKKwlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHBhcmFtcy0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmlu ZzsKIAl1NjQgZXhlY19zdGFydDsKIAlpbnQgaW5zdHBfbW9kZTsKIAl1MzIgaW5zdHBfbWFzazsK QEAgLTk5OCwxMSArOTk5LDExIEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1 Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCQlpZiAocmV0KQogCQkJcmV0dXJu IHJldDsKIAotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQkJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkp OwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwgSU5TVFBNKTsKLQkJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgaW5zdHBfbWFzayA8PCAxNiB8IGluc3RwX21v ZGUpOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKwkJaW50ZWxfbG9n aWNhbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2Vt aXRfcmVnKHJpbmcsIElOU1RQTSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGlu c3RwX21hc2sgPDwgMTYgfCBpbnN0cF9tb2RlKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFu Y2UocmluZyk7CiAKIAkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gaW5zdHBf bW9kZTsKIAl9CkBAIC0xMDkzLDcgKzEwOTQsNyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRl eHRfZG9fcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuZ2luZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmog PSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7CisJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nOwogCXN0 cnVjdCBwYWdlICpscmNfc3RhdGVfcGFnZTsKIAl1aW50MzJfdCAqbHJjX3JlZ19zdGF0ZTsKIAlp bnQgcmV0OwpAQCAtMTExMSwxNCArMTExMiwxNCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRl eHRfZG9fcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCWdvdG8gdW5waW5fY3R4X29i ajsKIAl9CiAKLQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihlbmdpbmUt PmRldiwgcmluZ2J1Zik7CisJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmoo ZW5naW5lLT5kZXYsIHJpbmcpOwogCWlmIChyZXQpCiAJCWdvdG8gdW5waW5fY3R4X29iajsKIAog CWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY192bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChj dHhfb2JqKTsKIAlpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKGN0eCwgZW5naW5l KTsKIAlscmNfcmVnX3N0YXRlID0ga21hcChscmNfc3RhdGVfcGFnZSk7Ci0JbHJjX3JlZ19zdGF0 ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSByaW5nYnVmLT52bWEtPm5vZGUuc3RhcnQ7CisJ bHJjX3JlZ19zdGF0ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSByaW5nLT52bWEtPm5vZGUu c3RhcnQ7CiAJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX3JlZ19zdGF0ZSA9IGxyY19yZWdf c3RhdGU7CiAJY3R4X29iai0+ZGlydHkgPSB0cnVlOwogCkBAIC0xMTYxLDcgKzExNjIsNyBAQCB2 b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAlX QVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmN0eC0+aTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsK IAlpZiAoLS1jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5waW5fY291bnQgPT0gMCkgewogCQlrdW5t YXAoa21hcF90b19wYWdlKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19yZWdfc3RhdGUpKTsK LQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmlu Z2J1Zik7CisJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKGN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLnJpbmcpOwogCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKIAkJY3R4 LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX3ZtYSA9IE5VTEw7CiAJCWN0eC0+ZW5naW5lW2VuZ2lu ZS0+aWRdLmxyY19kZXNjID0gMDsKQEAgLTExNzUsNyArMTE3Niw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCiB7CiAJaW50IHJldCwgaTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSByZXEtPmVuZ2luZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJl cS0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaTkxNV93b3Jr YXJvdW5kcyAqdyA9ICZkZXZfcHJpdi0+d29ya2Fyb3VuZHM7CkBAIC0xMTkyLDE0ICsxMTkzLDE0 IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAot CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0xPQURfUkVHSVNURVJfSU1NKHct PmNvdW50KSk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RF Ul9JTU0ody0+Y291bnQpKTsKIAlmb3IgKGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykgewotCQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1Ziwgdy0+cmVnW2ldLmFkZHIpOwotCQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCB3LT5yZWdbaV0udmFsdWUpOworCQlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZywgdy0+cmVnW2ldLmFkZHIpOworCQlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdChyaW5nLCB3LT5yZWdbaV0udmFsdWUpOwogCX0KLQlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nLCBNSV9OT09QKTsKIAotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYp OworCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCiAJZW5naW5lLT5ncHVfY2Fj aGVzX2RpcnR5ID0gdHJ1ZTsKIAlyZXQgPSBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhy ZXEpOwpAQCAtMTY0OCw3ICsxNjQ5LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCXN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCA9IHJlcS0+Y3R4LT5wcGd0dDsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiA9IHJlcS0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9 IHJlcS0+cmluZzsKIAljb25zdCBpbnQgbnVtX2xyaV9jbWRzID0gR0VOOF9MRUdBQ1lfUERQRVMg KiAyOwogCWludCBpLCByZXQ7CiAKQEAgLTE2NTYsMjAgKzE2NTcsMjAgQEAgc3RhdGljIGludCBp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nYnVmLCBNSV9MT0FEX1JFR0lTVEVSX0lNTShudW1fbHJpX2NtZHMpKTsKKwlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9MT0FEX1JFR0lTVEVSX0lNTShudW1fbHJpX2NtZHMp KTsKIAlmb3IgKGkgPSBHRU44X0xFR0FDWV9QRFBFUyAtIDE7IGkgPj0gMDsgaS0tKSB7CiAJCWNv bnN0IGRtYV9hZGRyX3QgcGRfZGFkZHIgPSBpOTE1X3BhZ2VfZGlyX2RtYV9hZGRyKHBwZ3R0LCBp KTsKIAotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwKKwkJaW50ZWxfbG9n aWNhbF9yaW5nX2VtaXRfcmVnKHJpbmcsCiAJCQkJCSAgICBHRU44X1JJTkdfUERQX1VEVyhlbmdp bmUsIGkpKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdXBwZXJfMzJfYml0 cyhwZF9kYWRkcikpOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwKKwkJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgdXBwZXJfMzJfYml0cyhwZF9kYWRkcikpOwor CQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZywKIAkJCQkJICAgIEdFTjhfUklOR19Q RFBfTERXKGVuZ2luZSwgaSkpOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBs b3dlcl8zMl9iaXRzKHBkX2RhZGRyKSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcs IGxvd2VyXzMyX2JpdHMocGRfZGFkZHIpKTsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nYnVmLCBNSV9OT09QKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVm KTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9sb2dp Y2FsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTY3Nyw3ICsxNjc4 LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkgICAgICB1NjQgb2Zmc2V0LCB1bnNp Z25lZCBkaXNwYXRjaF9mbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IHJlcS0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+ cmluZzsKIAlib29sIHBwZ3R0ID0gIShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VD VVJFKTsKIAlpbnQgcmV0OwogCkBAIC0xNzA0LDE0ICsxNzA1LDE0IEBAIHN0YXRpYyBpbnQgZ2Vu OF9lbWl0X2JiX3N0YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQlyZXR1 cm4gcmV0OwogCiAJLyogRklYTUUoQkRXKTogQWRkcmVzcyBzcGFjZSBhbmQgc2VjdXJpdHkgc2Vs ZWN0b3JzLiAqLwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0JBVENIX0JV RkZFUl9TVEFSVF9HRU44IHwKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9CQVRD SF9CVUZGRVJfU1RBUlRfR0VOOCB8CiAJCQkJKHBwZ3R0PDw4KSB8CiAJCQkJKGRpc3BhdGNoX2Zs YWdzICYgSTkxNV9ESVNQQVRDSF9SUyA/CiAJCQkJIE1JX0JBVENIX1JFU09VUkNFX1NUUkVBTUVS IDogMCkpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGxvd2VyXzMyX2JpdHMo b2Zmc2V0KSk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdXBwZXJfMzJfYml0 cyhvZmZzZXQpKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsK LQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKwlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nLCBsb3dlcl8zMl9iaXRzKG9mZnNldCkpOworCWludGVsX2xvZ2ljYWxfcmlu Z19lbWl0KHJpbmcsIHVwcGVyXzMyX2JpdHMob2Zmc2V0KSk7CisJaW50ZWxfbG9naWNhbF9yaW5n X2VtaXQocmluZywgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZyk7 CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE3NTQsOCArMTc1NSw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9l bWl0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCSAgIHUz MiBpbnZhbGlkYXRlX2RvbWFpbnMsCiAJCQkgICB1MzIgdW51c2VkKQogewotCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKLQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUgPSByaW5nYnVmLT5lbmdpbmU7CisJc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJpbmctPmVuZ2luZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5k ZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKIAl1aW50MzJfdCBjbWQ7CkBAIC0xNzgwLDEzICsxNzgxLDEzIEBAIHN0YXRpYyBpbnQgZ2Vu OF9lbWl0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCWNt ZCB8PSBNSV9JTlZBTElEQVRFX0JTRDsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nYnVmLCBjbWQpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsCisJaW50ZWxf bG9naWNhbF9yaW5nX2VtaXQocmluZywgY21kKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nLAogCQkJCUk5MTVfR0VNX0hXU19TQ1JBVENIX0FERFIgfAogCQkJCU1JX0ZMVVNIX0RXX1VT RV9HVFQpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOyAvKiB1cHBlciBh ZGRyICovCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7IC8qIHZhbHVlICov Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJaW50ZWxfbG9naWNhbF9y aW5nX2VtaXQocmluZywgMCk7IC8qIHVwcGVyIGFkZHIgKi8KKwlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdChyaW5nLCAwKTsgLyogdmFsdWUgKi8KKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShy aW5nKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTc5NSw4ICsxNzk2LDggQEAgc3RhdGljIGludCBn ZW44X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCwKIAkJCQkgIHUzMiBpbnZhbGlkYXRlX2RvbWFpbnMsCiAJCQkJICB1MzIgZmx1c2hfZG9tYWlu cykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcXVlc3QtPnJpbmdi dWY7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmluZ2J1Zi0+ZW5naW5lOwor CXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmluZzsKKwlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByaW5nLT5lbmdpbmU7CiAJdTMyIHNjcmF0Y2hfYWRk ciA9IGVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAli b29sIHZmX2ZsdXNoX3dhID0gZmFsc2U7CiAJdTMyIGZsYWdzID0gMDsKQEAgLTE4MzQsMjEgKzE4 MzUsMjEgQEAgc3RhdGljIGludCBnZW44X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJcmV0dXJuIHJldDsKIAogCWlmICh2Zl9mbHVzaF93 YSkgewotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBHRlhfT1BfUElQRV9DT05U Uk9MKDYpKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7Ci0JCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nYnVmLCAwKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7Ci0J CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCX0KLQotCWludGVsX2xvZ2lj YWxfcmluZ19lbWl0KHJpbmdidWYsIEdGWF9PUF9QSVBFX0NPTlRST0woNikpOwotCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGZsYWdzKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nYnVmLCBzY3JhdGNoX2FkZHIpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdi dWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNl KHJpbmdidWYpOworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQRV9D T05UUk9MKDYpKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgMCk7CisJCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nLCAwKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgMCk7CisJCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCX0KKworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsIEdGWF9PUF9QSVBFX0NPTlRST0woNikpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsIGZsYWdzKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBzY3JhdGNoX2Fk ZHIpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmcsIDApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOwor CWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0x OTA2LDcgKzE5MDcsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBod3Nfc2Vxbm9fYWRkcmVzcyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGlu dGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwpAQCAt MTkxNiwyMSArMTkxNywyMSBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkvKiB3L2E6IGJpdCA1IG5lZWRzIHRvIGJl IHplcm8gZm9yIE1JX0ZMVVNIX0RXIGFkZHJlc3MuICovCiAJQlVJTERfQlVHX09OKEk5MTVfR0VN X0hXU19JTkRFWF9BRERSICYgKDEgPDwgNSkpOwogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQo cmluZ2J1ZiwKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCShNSV9GTFVTSF9E VyArIDEpIHwgTUlfRkxVU0hfRFdfT1BfU1RPUkVEVyk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2Vt aXQocmluZ2J1ZiwKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCWh3c19zZXFu b19hZGRyZXNzKHJlcXVlc3QtPmVuZ2luZSkgfAogCQkJCU1JX0ZMVVNIX0RXX1VTRV9HVFQpOwot CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmlu Z19lbWl0KHJpbmdidWYsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcXVlc3QpKTsKLQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9VU0VSX0lOVEVSUlVQVCk7Ci0JaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9y aW5nX2VtaXQocmluZywgMCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgaTkxNV9n ZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxdWVzdCkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsIE1JX1VTRVJfSU5URVJSVVBUKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5n LCBNSV9OT09QKTsKIAlyZXR1cm4gaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1p dChyZXF1ZXN0KTsKIH0KIAogc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdF9yZW5kZXIoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX2xv Z2ljYWxfcmluZ19iZWdpbihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwpAQCAtMTk0MSwx NSArMTk0MiwxNSBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0X3JlbmRlcihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJICogbmVlZCBhIHByaW9yIENTX1NUQUxM LCB3aGljaCBpcyBlbWl0dGVkIGJ5IHRoZSBmbHVzaAogCSAqIGZvbGxvd2luZyB0aGUgYmF0Y2gu CiAJICovCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgR0ZYX09QX1BJUEVfQ09O VFJPTCg1KSk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwKKwlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQRV9DT05UUk9MKDUpKTsKKwlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCShQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAog CQkJCSBQSVBFX0NPTlRST0xfQ1NfU1RBTEwgfAogCQkJCSBQSVBFX0NPTlRST0xfUVdfV1JJVEUp KTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBod3Nfc2Vxbm9fYWRkcmVzcyhy ZXF1ZXN0LT5lbmdpbmUpKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsK LQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9z ZXFubyhyZXF1ZXN0KSk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfVVNF Ul9JTlRFUlJVUFQpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGh3c19zZXFub19h ZGRyZXNzKHJlcXVlc3QtPmVuZ2luZSkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcs IDApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHJlcXVlc3QpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9VU0VS X0lOVEVSUlVQVCk7CiAJcmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJt aXQocmVxdWVzdCk7CiB9CiAKQEAgLTIwMTcsNyArMjAxOCw3IEBAIHZvaWQgaW50ZWxfbG9naWNh bF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJZGV2X3By aXYgPSBlbmdpbmUtPmRldi0+ZGV2X3ByaXZhdGU7CiAKLQlpZiAoZW5naW5lLT5idWZmZXIpIHsK KwlpZiAoZW5naW5lLT5yaW5nKSB7CiAJCWludGVsX2xvZ2ljYWxfcmluZ19zdG9wKGVuZ2luZSk7 CiAJCVdBUk5fT04oKEk5MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBNT0RFX0lETEUpID09IDApOwog CX0KQEAgLTIwNzUsNyArMjA3Niw3IEBAIGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpbnQgcmV0OwogCiAJ LyogSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rLiAqLwotCWVuZ2luZS0+YnVmZmVyID0gTlVMTDsK KwllbmdpbmUtPnJpbmcgPSBOVUxMOwogCiAJZW5naW5lLT5kZXYgPSBkZXY7CiAJSU5JVF9MSVNU X0hFQUQoJmVuZ2luZS0+YWN0aXZlX2xpc3QpOwpAQCAtMjM1OSw3ICsyMzYwLDcgQEAgc3RhdGlj IHUzMiBpbnRlbF9scl9pbmRpcmVjdF9jdHhfb2Zmc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHN0YXRpYyBpbnQKIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmosCiAJCSAgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCSAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKKwkJICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmdpbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMjQxNCw3ICsyNDE1LDcg QEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X28KIAkJICAgICAgIFJJTkdfU1RBUlQoZW5naW5lLT5t bWlvX2Jhc2UpLCAwKTsKIAlBU1NJR05fQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9SSU5HX0JVRkZF Ul9DT05UUk9MLAogCQkgICAgICAgUklOR19DVEwoZW5naW5lLT5tbWlvX2Jhc2UpLAotCQkgICAg ICAgKChyaW5nYnVmLT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMpIHwgUklOR19W QUxJRCk7CisJCSAgICAgICAoKHJpbmctPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19OUl9QQUdF UykgfCBSSU5HX1ZBTElEKTsKIAlBU1NJR05fQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9CQl9IRUFE X1UsCiAJCSAgICAgICBSSU5HX0JCQUREUl9VRFcoZW5naW5lLT5tbWlvX2Jhc2UpLCAwKTsKIAlB U1NJR05fQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9CQl9IRUFEX0wsCkBAIC0yNTEyLDE5ICsyNTEz LDE5IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj dHgpCiAJaW50IGk7CiAKIAlmb3IgKGkgPSBJOTE1X05VTV9FTkdJTkVTOyAtLWkgPj0gMDsgKSB7 Ci0JCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVbaV0ucmlu Z2J1ZjsKKwkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBjdHgtPmVuZ2luZVtpXS5y aW5nOwogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5l W2ldLnN0YXRlOwogCiAJCWlmICghY3R4X29iaikKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChjdHgg PT0gY3R4LT5pOTE1LT5rZXJuZWxfY29udGV4dCkgewotCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZl cl9vYmoocmluZ2J1Zik7CisJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nKTsKIAkJ CWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwogCQl9CiAKIAkJV0FSTl9PTihj dHgtPmVuZ2luZVtpXS5waW5fY291bnQpOwotCQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1 Zik7CisJCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nKTsKIAkJZHJtX2dlbV9vYmplY3RfdW5y ZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwogCX0KIH0KQEAgLTI2MDUsNyArMjYwNiw3IEBAIGlu dCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj dHgsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuZ2luZS0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwogCXVpbnQzMl90IGNvbnRleHRfc2l6ZTsKLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZzsKIAlpbnQgcmV0OwogCiAJV0FSTl9PTihjdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRl ICE9IE5VTEwpOwpAQCAtMjYyMiwxOSArMjYyMywxOSBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9k ZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCQlyZXR1cm4gLUVOT01F TTsKIAl9CiAKLQlyaW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2lu ZSwgNCAqIFBBR0VfU0laRSk7Ci0JaWYgKElTX0VSUihyaW5nYnVmKSkgewotCQlyZXQgPSBQVFJf RVJSKHJpbmdidWYpOworCXJpbmcgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoZW5n aW5lLCA0ICogUEFHRV9TSVpFKTsKKwlpZiAoSVNfRVJSKHJpbmcpKSB7CisJCXJldCA9IFBUUl9F UlIocmluZyk7CiAJCWdvdG8gZXJyb3JfZGVyZWZfb2JqOwogCX0KIAotCXJldCA9IHBvcHVsYXRl X2xyX2NvbnRleHQoY3R4LCBjdHhfb2JqLCBlbmdpbmUsIHJpbmdidWYpOworCXJldCA9IHBvcHVs YXRlX2xyX2NvbnRleHQoY3R4LCBjdHhfb2JqLCBlbmdpbmUsIHJpbmcpOwogCWlmIChyZXQpIHsK IAkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHBvcHVsYXRlIExSQzogJWRcbiIsIHJldCk7 CiAJCWdvdG8gZXJyb3JfcmluZ2J1ZjsKIAl9CiAKLQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5y aW5nYnVmID0gcmluZ2J1ZjsKKwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nID0gcmluZzsK IAljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSA9IGN0eF9vYmo7CiAKIAlpZiAoY3R4ICE9 IGN0eC0+aTkxNS0+a2VybmVsX2NvbnRleHQgJiYgZW5naW5lLT5pbml0X2NvbnRleHQpIHsKQEAg LTI2NTksMTAgKzI2NjAsMTAgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Mo c3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gMDsKIAogZXJyb3JfcmluZ2J1ZjoK LQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7CisJaW50ZWxfcmluZ2J1ZmZlcl9mcmVl KHJpbmcpOwogZXJyb3JfZGVyZWZfb2JqOgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZj dHhfb2JqLT5iYXNlKTsKLQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmID0gTlVMTDsK KwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nID0gTlVMTDsKIAljdHgtPmVuZ2luZVtlbmdp bmUtPmlkXS5zdGF0ZSA9IE5VTEw7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTI2NzcsOCArMjY3OCw4 IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CiAJCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KIAkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0 ZTsKLQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQotCQkJCWN0eC0+ZW5naW5l W2VuZ2luZS0+aWRdLnJpbmdidWY7CisJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0K KwkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nOwogCQl1aW50MzJfdCAqcmVnX3N0YXRl OwogCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIApAQCAtMjY5Nyw3ICsyNjk4LDcgQEAgdm9pZCBpbnRl bF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJa3VubWFwX2F0 b21pYyhyZWdfc3RhdGUpOwogCi0JCXJpbmdidWYtPmhlYWQgPSAwOwotCQlyaW5nYnVmLT50YWls ID0gMDsKKwkJcmluZy0+aGVhZCA9IDA7CisJCXJpbmctPnRhaWwgPSAwOwogCX0KIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggYTE3Y2IxMjIyMWJhLi5jYjFhMmRiMTZjZDEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC02OSwyNSArNjksMjUgQEAgaW50IGxvZ2ljYWxfcmlu Z19mbHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKICAq CiAgKiBUaGUgdGFpbCBpcyBvbmx5IHVwZGF0ZWQgaW4gb3VyIGxvZ2ljYWwgcmluZ2J1ZmZlciBz dHJ1Y3QuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3N0YXRpYyBpbmxpbmUgdm9pZCBp bnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykK IHsKLQlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOworCXJpbmctPnRhaWwgJj0g cmluZy0+c2l6ZSAtIDE7CiB9CiAvKioKICAqIGludGVsX2xvZ2ljYWxfcmluZ19lbWl0KCkgLSB3 cml0ZSBhIERXT1JEIHRvIHRoZSByaW5nYnVmZmVyLgogICogQHJpbmdidWY6IFJpbmdidWZmZXIg dG8gd3JpdGUgdG8uCiAgKiBAZGF0YTogRFdPUkQgdG8gd3JpdGUuCiAgKi8KLXN0YXRpYyBpbmxp bmUgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiwKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZywKIAkJCQkJICAgdTMyIGRhdGEpCiB7Ci0JaW93cml0 ZTMyKGRhdGEsIHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsKTsKLQlyaW5n YnVmLT50YWlsICs9IDQ7CisJaW93cml0ZTMyKGRhdGEsIHJpbmctPnZpcnR1YWxfc3RhcnQgKyBy aW5nLT50YWlsKTsKKwlyaW5nLT50YWlsICs9IDQ7CiB9Ci1zdGF0aWMgaW5saW5lIHZvaWQgaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm LAorc3RhdGljIGlubGluZSB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZywKIAkJCQkJICAgICAgIGk5MTVfcmVnX3QgcmVnKQogewot CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJl ZykpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfbW1pb19yZWdfb2Zmc2V0 KHJlZykpOwogfQogCiAvKiBMb2dpY2FsIFJpbmcgQ29udGV4dHMgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX21vY3MuYwppbmRleCAzYzcyNWRkZTE2ZWQuLjZlN2U0Y2EwZWM3ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX21vY3MuYwpAQCAtMTkxLDkgKzE5MSw5IEBAIHN0YXRpYyBpOTE1X3JlZ190IG1v Y3NfcmVnaXN0ZXIoZW51bSBpbnRlbF9lbmdpbmVfaWQgcmluZywgaW50IGluZGV4KQogICovCiBz dGF0aWMgaW50IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJs ZSwKLQkJCQkgICBlbnVtIGludGVsX2VuZ2luZV9pZCByaW5nKQorCQkJCSAgIGVudW0gaW50ZWxf ZW5naW5lX2lkIGVuZ2luZV9pZCkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IHJlcS0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+ cmluZzsKIAl1bnNpZ25lZCBpbnQgaW5kZXg7CiAJaW50IHJldDsKIApAQCAtMjA2LDEyICsyMDYs MTMgQEAgc3RhdGljIGludCBlbWl0X21vY3NfY29udHJvbF90YWJsZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLAorCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsCiAJCQkJTUlf TE9BRF9SRUdJU1RFUl9JTU0oR0VOOV9OVU1fTU9DU19FTlRSSUVTKSk7CiAKIAlmb3IgKGluZGV4 ID0gMDsgaW5kZXggPCB0YWJsZS0+c2l6ZTsgaW5kZXgrKykgewotCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdF9yZWcocmluZ2J1ZiwgbW9jc19yZWdpc3RlcihyaW5nLCBpbmRleCkpOwotCQlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLAorCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9y ZWcocmluZywKKwkJCQkJICAgIG1vY3NfcmVnaXN0ZXIoZW5naW5lX2lkLCBpbmRleCkpOworCQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCQl0YWJsZS0+dGFibGVbaW5kZXhdLmNv bnRyb2xfdmFsdWUpOwogCX0KIApAQCAtMjI0LDEyICsyMjUsMTMgQEAgc3RhdGljIGludCBlbWl0 X21vY3NfY29udHJvbF90YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkg KiB0aGF0IHZhbHVlIHRvIGFsbCB0aGUgdXNlZCBlbnRyaWVzLgogCSAqLwogCWZvciAoOyBpbmRl eCA8IEdFTjlfTlVNX01PQ1NfRU5UUklFUzsgaW5kZXgrKykgewotCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdF9yZWcocmluZ2J1ZiwgbW9jc19yZWdpc3RlcihyaW5nLCBpbmRleCkpOwotCQlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCB0YWJsZS0+dGFibGVbMF0uY29udHJvbF92YWx1 ZSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhyaW5nLAorCQkJCQkgICAgbW9jc19y ZWdpc3RlcihlbmdpbmVfaWQsIGluZGV4KSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmcsIHRhYmxlLT50YWJsZVswXS5jb250cm9sX3ZhbHVlKTsKIAl9CiAKLQlpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nYnVmKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlp bnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjQ4 LDcgKzI1MCw3IEBAIHN0YXRpYyBpbnQgZW1pdF9tb2NzX2NvbnRyb2xfdGFibGUoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiBzdGF0aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxl KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCWNvbnN0IHN0cnVjdCBkcm1f aTkxNV9tb2NzX3RhYmxlICp0YWJsZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiA9IHJlcS0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKIAl1bnNpZ25lZCBpbnQgY291bnQ7CiAJdW5zaWduZWQgaW50IGk7CiAJdTMyIHZh bHVlOwpAQCAtMjY1LDE1ICsyNjcsMTUgQEAgc3RhdGljIGludCBlbWl0X21vY3NfbDNjY190YWJs ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJcmV0dXJuIHJldDsKIAl9CiAK LQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLAotCQkJTUlfTE9BRF9SRUdJU1RFUl9J TU0oR0VOOV9OVU1fTU9DU19FTlRSSUVTIC8gMikpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsCisJCQkJTUlfTE9BRF9SRUdJU1RFUl9JTU0oR0VOOV9OVU1fTU9DU19FTlRSSUVTIC8g MikpOwogCiAJZm9yIChpID0gMCwgY291bnQgPSAwOyBpIDwgdGFibGUtPnNpemUgLyAyOyBpKyss IGNvdW50ICs9IDIpIHsKIAkJdmFsdWUgPSAodGFibGUtPnRhYmxlW2NvdW50XS5sM2NjX3ZhbHVl ICYgMHhmZmZmKSB8CiAJCQkoKHRhYmxlLT50YWJsZVtjb3VudCArIDFdLmwzY2NfdmFsdWUgJiAw eGZmZmYpIDw8IDE2KTsKIAotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1Ziwg R0VOOV9MTkNGQ01PQ1MoaSkpOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCB2 YWx1ZSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhyaW5nLCBHRU45X0xOQ0ZDTU9D UyhpKSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIHZhbHVlKTsKIAl9CiAKIAlp ZiAodGFibGUtPnNpemUgJiAweDAxKSB7CkBAIC0yODksMTQgKzI5MSwxNCBAQCBzdGF0aWMgaW50 IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CSAqIHRoZXkgYXJlIHJlc2VydmVkIGJ5IHRoZSBoYXJkd2FyZS4KIAkgKi8KIAlmb3IgKDsgaSA8 IEdFTjlfTlVNX01PQ1NfRU5UUklFUyAvIDI7IGkrKykgewotCQlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdF9yZWcocmluZ2J1ZiwgR0VOOV9MTkNGQ01PQ1MoaSkpOwotCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCB2YWx1ZSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhy aW5nLCBHRU45X0xOQ0ZDTU9DUyhpKSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcs IHZhbHVlKTsKIAogCQl2YWx1ZSA9IGZpbGxlcjsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5n YnVmKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9s b2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGI3YzhmYzFhNzNhMy4uM2Y0ZjM4NmI2MmFm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC00MiwyMSArNDIs MjEgQEAgaW50IF9faW50ZWxfcmluZ19zcGFjZShpbnQgaGVhZCwgaW50IHRhaWwsIGludCBzaXpl KQogCXJldHVybiBzcGFjZSAtIEk5MTVfUklOR19GUkVFX1NQQUNFOwogfQogCi12b2lkIGludGVs X3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQordm9p ZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykK IHsKLQlpZiAocmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgIT0gLTEpIHsKLQkJcmluZ2J1Zi0+ aGVhZCA9IHJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkOwotCQlyaW5nYnVmLT5sYXN0X3JldGly ZWRfaGVhZCA9IC0xOworCWlmIChyaW5nLT5sYXN0X3JldGlyZWRfaGVhZCAhPSAtMSkgeworCQly aW5nLT5oZWFkID0gcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQ7CisJCXJpbmctPmxhc3RfcmV0aXJl ZF9oZWFkID0gLTE7CiAJfQogCi0JcmluZ2J1Zi0+c3BhY2UgPSBfX2ludGVsX3Jpbmdfc3BhY2Uo cmluZ2J1Zi0+aGVhZCAmIEhFQURfQUREUiwKLQkJCQkJICAgIHJpbmdidWYtPnRhaWwsIHJpbmdi dWYtPnNpemUpOworCXJpbmctPnNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHJpbmctPmhlYWQg JiBIRUFEX0FERFIsCisJCQkJCSAgICByaW5nLT50YWlsLCByaW5nLT5zaXplKTsKIH0KIAotaW50 IGludGVsX3Jpbmdfc3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCitpbnQg aW50ZWxfcmluZ19zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKIHsKLQlpbnRl bF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKLQlyZXR1cm4gcmluZ2J1Zi0+c3BhY2U7CisJ aW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7CisJcmV0dXJuIHJpbmctPnNwYWNlOwogfQog CiBib29sIGludGVsX2VuZ2luZV9zdG9wcGVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKQEAgLTY3LDExICs2NywxMSBAQCBib29sIGludGVsX2VuZ2luZV9zdG9wcGVkKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIHZvaWQgX19pbnRlbF9yaW5nX2FkdmFu Y2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5idWZmZXI7Ci0JcmluZ2J1Zi0+dGFpbCAmPSByaW5n YnVmLT5zaXplIC0gMTsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+ cmluZzsKKwlyaW5nLT50YWlsICY9IHJpbmctPnNpemUgLSAxOwogCWlmIChpbnRlbF9lbmdpbmVf c3RvcHBlZChlbmdpbmUpKQogCQlyZXR1cm47Ci0JZW5naW5lLT53cml0ZV90YWlsKGVuZ2luZSwg cmluZ2J1Zi0+dGFpbCk7CisJZW5naW5lLT53cml0ZV90YWlsKGVuZ2luZSwgcmluZy0+dGFpbCk7 CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTU1OSw4ICs1NTksOCBAQCBzdGF0aWMgaW50IGluaXRfcmlu Z19jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmdpbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmID0gZW5naW5lLT5idWZmZXI7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9 IHJpbmdidWYtPm9iajsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+ cmluZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcmluZy0+b2JqOwogCWlu dCByZXQgPSAwOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNF V0FLRV9BTEwpOwpAQCAtNjEwLDcgKzYxMCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9yaW5nX2NvbW1v bihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJKHZvaWQpSTkxNV9SRUFEX0hFQUQo ZW5naW5lKTsKIAogCUk5MTVfV1JJVEVfQ1RMKGVuZ2luZSwKLQkJCSgocmluZ2J1Zi0+c2l6ZSAt IFBBR0VfU0laRSkgJiBSSU5HX05SX1BBR0VTKQorCQkJKChyaW5nLT5zaXplIC0gUEFHRV9TSVpF KSAmIFJJTkdfTlJfUEFHRVMpCiAJCQl8IFJJTkdfVkFMSUQpOwogCiAJLyogSWYgdGhlIGhlYWQg aXMgc3RpbGwgbm90IHplcm8sIHRoZSByaW5nIGlzIGRlYWQgKi8KQEAgLTYyOSwxMCArNjI5LDEw IEBAIHN0YXRpYyBpbnQgaW5pdF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJCWdvdG8gb3V0OwogCX0KIAotCXJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkID0g LTE7Ci0JcmluZ2J1Zi0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7Ci0JcmluZ2J1Zi0+ dGFpbCA9IEk5MTVfUkVBRF9UQUlMKGVuZ2luZSkgJiBUQUlMX0FERFI7Ci0JaW50ZWxfcmluZ191 cGRhdGVfc3BhY2UocmluZ2J1Zik7CisJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKKwly aW5nLT5oZWFkID0gSTkxNV9SRUFEX0hFQUQoZW5naW5lKTsKKwlyaW5nLT50YWlsID0gSTkxNV9S RUFEX1RBSUwoZW5naW5lKSAmIFRBSUxfQUREUjsKKwlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShy aW5nKTsKIAogCW1lbXNldCgmZW5naW5lLT5oYW5nY2hlY2ssIDAsIHNpemVvZihlbmdpbmUtPmhh bmdjaGVjaykpOwogCkBAIC0yMDY1LDE1ICsyMDY1LDE1IEBAIHN0YXRpYyBpbnQgaW5pdF9waHlz X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gMDsK IH0KIAotdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKK3ZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JaWYgKEhBU19MTEMocmluZ2J1Zi0+b2JqLT5iYXNl LmRldikgJiYgIXJpbmdidWYtPm9iai0+c3RvbGVuKQotCQl2dW5tYXAocmluZ2J1Zi0+dmlydHVh bF9zdGFydCk7CisJaWYgKEhBU19MTEMocmluZy0+b2JqLT5iYXNlLmRldikgJiYgIXJpbmctPm9i ai0+c3RvbGVuKQorCQl2dW5tYXAocmluZy0+dmlydHVhbF9zdGFydCk7CiAJZWxzZQotCQlpb3Vu bWFwKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQpOwotCXJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPSBO VUxMOwotCXJpbmdidWYtPnZtYSA9IE5VTEw7Ci0JaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4o cmluZ2J1Zi0+b2JqKTsKKwkJaW91bm1hcChyaW5nLT52aXJ0dWFsX3N0YXJ0KTsKKwlyaW5nLT52 aXJ0dWFsX3N0YXJ0ID0gTlVMTDsKKwlyaW5nLT52bWEgPSBOVUxMOworCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKHJpbmctPm9iaik7CiB9CiAKIHN0YXRpYyB1MzIgKnZtYXBfb2JqKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCkBAIC0yMDk4LDEwICsyMDk4LDEwIEBAIHN0YXRp YyB1MzIgKnZtYXBfb2JqKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB9CiAKIGlu dCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAotCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCisJCQkJICAgICBz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IHJpbmdidWYtPm9iajsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g cmluZy0+b2JqOwogCWludCByZXQ7CiAKIAlpZiAoSEFTX0xMQyhkZXZfcHJpdikgJiYgIW9iai0+ c3RvbGVuKSB7CkBAIC0yMTE1LDggKzIxMTUsOCBAQCBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmlu Z2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCXJldHVybiByZXQ7CiAJCX0K IAotCQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gdm1hcF9vYmoob2JqKTsKLQkJaWYgKHJpbmdi dWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgeworCQlyaW5nLT52aXJ0dWFsX3N0YXJ0ID0gdm1h cF9vYmoob2JqKTsKKwkJaWYgKHJpbmctPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgewogCQkJaTkx NV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKIAkJCXJldHVybiAtRU5PTUVNOwogCQl9CkBA IC0yMTM0LDQyICsyMTM0LDQzIEBAIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29i aihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkvKiBBY2Nlc3MgdGhyb3VnaCB0aGUgR1RUIHJl cXVpcmVzIHRoZSBkZXZpY2UgdG8gYmUgYXdha2UuICovCiAJCWFzc2VydF9ycG1fd2FrZWxvY2tf aGVsZChkZXZfcHJpdik7CiAKLQkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2Mo ZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9iYXNlICsKLQkJCQkJCSAgICBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKSwgcmluZ2J1Zi0+c2l6ZSk7Ci0JCWlmIChyaW5nYnVmLT52aXJ0dWFsX3N0 YXJ0ID09IE5VTEwpIHsKKwkJcmluZy0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2MoZGV2X3By aXYtPmd0dC5tYXBwYWJsZV9iYXNlICsKKwkJCQkJCSAgICBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZz ZXQob2JqKSwKKwkJCQkJCSAgICByaW5nLT5zaXplKTsKKwkJaWYgKHJpbmctPnZpcnR1YWxfc3Rh cnQgPT0gTlVMTCkgewogCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKIAkJCXJl dHVybiAtRUlOVkFMOwogCQl9CiAJfQogCi0JcmluZ2J1Zi0+dm1hID0gaTkxNV9nZW1fb2JqX3Rv X2dndHQob2JqKTsKKwlyaW5nLT52bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChvYmopOwogCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCitzdGF0aWMgdm9pZCBpbnRlbF9kZXN0 cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewotCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZyaW5nYnVmLT5vYmotPmJhc2UpOwotCXJpbmdidWYt Pm9iaiA9IE5VTEw7CisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnJpbmctPm9iai0+YmFz ZSk7CisJcmluZy0+b2JqID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBpbnRlbF9hbGxvY19yaW5n YnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgIHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmKQorCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAKIAlvYmogPSBO VUxMOwogCWlmICghSEFTX0xMQyhkZXYpKQotCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbihkZXYsIHJpbmdidWYtPnNpemUpOworCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX3N0b2xlbihkZXYsIHJpbmctPnNpemUpOwogCWlmIChvYmogPT0gTlVMTCkKLQkJb2JqID0g aTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgcmluZ2J1Zi0+c2l6ZSk7CisJCW9iaiA9IGk5MTVf Z2VtX2FsbG9jX29iamVjdChkZXYsIHJpbmctPnNpemUpOwogCWlmIChvYmogPT0gTlVMTCkKIAkJ cmV0dXJuIC1FTk9NRU07CiAKIAkvKiBtYXJrIHJpbmcgYnVmZmVycyBhcyByZWFkLW9ubHkgZnJv bSBHUFUgc2lkZSBieSBkZWZhdWx0ICovCiAJb2JqLT5ndF9ybyA9IDE7CiAKLQlyaW5nYnVmLT5v YmogPSBvYmo7CisJcmluZy0+b2JqID0gb2JqOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMjI1LDEw ICsyMjI2LDEwIEBAIGludGVsX3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZykKIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJCSAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nOwogCWludCByZXQ7CiAKLQlXQVJOX09OKGVuZ2luZS0+YnVmZmVyKTsKKwlXQVJOX09O KGVuZ2luZS0+cmluZyk7CiAKIAllbmdpbmUtPmRldiA9IGRldjsKIAlJTklUX0xJU1RfSEVBRCgm ZW5naW5lLT5hY3RpdmVfbGlzdCk7CkBAIC0yMjQxLDEyICsyMjQyLDEyIEBAIHN0YXRpYyBpbnQg aW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJaW5pdF93 YWl0cXVldWVfaGVhZCgmZW5naW5lLT5pcnFfcXVldWUpOwogCi0JcmluZ2J1ZiA9IGludGVsX2Vu Z2luZV9jcmVhdGVfcmluZ2J1ZmZlcihlbmdpbmUsIDMyICogUEFHRV9TSVpFKTsKLQlpZiAoSVNf RVJSKHJpbmdidWYpKSB7Ci0JCXJldCA9IFBUUl9FUlIocmluZ2J1Zik7CisJcmluZyA9IGludGVs X2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihlbmdpbmUsIDMyICogUEFHRV9TSVpFKTsKKwlpZiAo SVNfRVJSKHJpbmcpKSB7CisJCXJldCA9IFBUUl9FUlIocmluZyk7CiAJCWdvdG8gZXJyb3I7CiAJ fQotCWVuZ2luZS0+YnVmZmVyID0gcmluZ2J1ZjsKKwllbmdpbmUtPnJpbmcgPSByaW5nOwogCiAJ aWYgKEk5MTVfTkVFRF9HRlhfSFdTKGRldikpIHsKIAkJcmV0ID0gaW5pdF9zdGF0dXNfcGFnZShl bmdpbmUpOwpAQCAtMjI1OSwxMSArMjI2MCwxMSBAQCBzdGF0aWMgaW50IGludGVsX2luaXRfcmlu Z19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCWdvdG8gZXJyb3I7CiAJfQogCi0J cmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCByaW5nYnVmKTsKKwly ZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihkZXYsIHJpbmcpOwogCWlmIChy ZXQpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGFuZCBtYXAgcmluZ2J1ZmZlciAlczog JWRcbiIsCiAJCQkJZW5naW5lLT5uYW1lLCByZXQpOwotCQlpbnRlbF9kZXN0cm95X3JpbmdidWZm ZXJfb2JqKHJpbmdidWYpOworCQlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmcpOwog CQlnb3RvIGVycm9yOwogCX0KIApAQCAtMjI4NywxMyArMjI4OCwxMyBAQCB2b2lkIGludGVsX2Ns ZWFudXBfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWRldl9wcml2 ID0gdG9faTkxNShlbmdpbmUtPmRldik7CiAKLQlpZiAoZW5naW5lLT5idWZmZXIpIHsKKwlpZiAo ZW5naW5lLT5yaW5nKSB7CiAJCWludGVsX3N0b3BfZW5naW5lKGVuZ2luZSk7CiAJCVdBUk5fT04o IUlTX0dFTjIoZW5naW5lLT5kZXYpICYmIChJOTE1X1JFQURfTU9ERShlbmdpbmUpICYgTU9ERV9J RExFKSA9PSAwKTsKIAotCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihlbmdpbmUtPmJ1ZmZl cik7Ci0JCWludGVsX3JpbmdidWZmZXJfZnJlZShlbmdpbmUtPmJ1ZmZlcik7Ci0JCWVuZ2luZS0+ YnVmZmVyID0gTlVMTDsKKwkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooZW5naW5lLT5yaW5n KTsKKwkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKGVuZ2luZS0+cmluZyk7CisJCWVuZ2luZS0+cmlu ZyA9IE5VTEw7CiAJfQogCiAJaWYgKGVuZ2luZS0+Y2xlYW51cCkKQEAgLTIzMTMsMjAgKzIzMTQs MjAgQEAgdm9pZCBpbnRlbF9jbGVhbnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAKIHN0YXRpYyBpbnQgcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsIGludCBuKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmID0gZW5naW5lLT5idWZmZXI7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBl bmdpbmUtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OwogCXVu c2lnbmVkIHNwYWNlOwogCWludCByZXQ7CiAKLQlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVm KSA+PSBuKQorCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmcpID49IG4pCiAJCXJldHVybiAwOwog CiAJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2FpdCEg Ki8KLQlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisJV0FSTl9PTihyaW5nLT5y ZXNlcnZlZF9pbl91c2UpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZW5naW5l LT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsKLQkJc3BhY2UgPSBfX2ludGVsX3Jpbmdfc3BhY2UocmVx dWVzdC0+cG9zdGZpeCwgcmluZ2J1Zi0+dGFpbCwKLQkJCQkJICAgcmluZ2J1Zi0+c2l6ZSk7CisJ CXNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHJlcXVlc3QtPnBvc3RmaXgsIHJpbmctPnRhaWws CisJCQkJCSAgIHJpbmctPnNpemUpOwogCQlpZiAoc3BhY2UgPj0gbikKIAkJCWJyZWFrOwogCX0K QEAgLTIzMzgsMjIgKzIzMzksMjIgQEAgc3RhdGljIGludCByaW5nX3dhaXRfZm9yX3NwYWNlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IG4pCiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIAotCXJpbmdidWYtPnNwYWNlID0gc3BhY2U7CisJcmluZy0+c3BhY2UgPSBzcGFjZTsK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgX193cmFwX3JpbmdfYnVmZmVyKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQorc3RhdGljIHZvaWQgX193cmFwX3JpbmdfYnVmZmVy KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewogCXVpbnQzMl90IF9faW9tZW0gKnZp cnQ7Ci0JaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOworCWludCByZW0g PSByaW5nLT5zaXplIC0gcmluZy0+dGFpbDsKIAotCXZpcnQgPSByaW5nYnVmLT52aXJ0dWFsX3N0 YXJ0ICsgcmluZ2J1Zi0+dGFpbDsKKwl2aXJ0ID0gcmluZy0+dmlydHVhbF9zdGFydCArIHJpbmct PnRhaWw7CiAJcmVtIC89IDQ7CiAJd2hpbGUgKHJlbS0tKQogCQlpb3dyaXRlMzIoTUlfTk9PUCwg dmlydCsrKTsKIAotCXJpbmdidWYtPnRhaWwgPSAwOwotCWludGVsX3JpbmdfdXBkYXRlX3NwYWNl KHJpbmdidWYpOworCXJpbmctPnRhaWwgPSAwOworCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJp bmcpOwogfQogCiBpbnQgaW50ZWxfZW5naW5lX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQpAQCAtMjM3Nyw3ICsyMzc4LDcgQEAgaW50IGludGVsX2VuZ2luZV9pZGxlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogaW50IGludGVsX3JpbmdfYWxsb2NfcmVxdWVz dF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXJlcXVl c3QtPnJpbmdidWYgPSByZXF1ZXN0LT5lbmdpbmUtPmJ1ZmZlcjsKKwlyZXF1ZXN0LT5yaW5nID0g cmVxdWVzdC0+ZW5naW5lLT5yaW5nOwogCXJldHVybiAwOwogfQogCkBAIC0yMzkxLDQyICsyMzky LDQ0IEBAIGludCBpbnRlbF9yaW5nX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0KQogCSAqIGFkZGluZyBhbnkgY29tbWFuZHMgdG8gaXQgdGhlbiB0aGVy ZSBtaWdodCBub3QgYWN0dWFsbHkgYmUKIAkgKiBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBzdWJt aXNzaW9uIGNvbW1hbmRzLgogCSAqLwotCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2 ZShyZXF1ZXN0LT5yaW5nYnVmLCBNSU5fU1BBQ0VfRk9SX0FERF9SRVFVRVNUKTsKKwlpbnRlbF9y aW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUocmVxdWVzdC0+cmluZywKKwkJCQkJICBNSU5fU1BB Q0VfRk9SX0FERF9SRVFVRVNUKTsKIAogCXJldHVybiBpbnRlbF9yaW5nX2JlZ2luKHJlcXVlc3Qs IDApOwogfQogCi12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpCit2b2lkIGludGVsX3JpbmdfcmVz ZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZywKKwkJCQkg ICAgICAgaW50IHNpemUpCiB7Ci0JV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9zaXplKTsKLQlX QVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisJV0FSTl9PTihyaW5nLT5yZXNlcnZl ZF9zaXplKTsKKwlXQVJOX09OKHJpbmctPnJlc2VydmVkX2luX3VzZSk7CiAKLQlyaW5nYnVmLT5y ZXNlcnZlZF9zaXplID0gc2l6ZTsKKwlyaW5nLT5yZXNlcnZlZF9zaXplID0gc2l6ZTsKIH0KIAot dm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZl ZF9pbl91c2UpOworCVdBUk5fT04ocmluZy0+cmVzZXJ2ZWRfaW5fdXNlKTsKIAotCXJpbmdidWYt PnJlc2VydmVkX3NpemUgICA9IDA7Ci0JcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlID0gZmFsc2U7 CisJcmluZy0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKKwlyaW5nLT5yZXNlcnZlZF9pbl91c2UgPSBm YWxzZTsKIH0KIAotdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91 c2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JV0FSTl9PTihyaW5nYnVmLT5y ZXNlcnZlZF9pbl91c2UpOworCVdBUk5fT04ocmluZy0+cmVzZXJ2ZWRfaW5fdXNlKTsKIAotCXJp bmdidWYtPnJlc2VydmVkX2luX3VzZSA9IHRydWU7Ci0JcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCAg ID0gcmluZ2J1Zi0+dGFpbDsKKwlyaW5nLT5yZXNlcnZlZF9pbl91c2UgPSB0cnVlOworCXJpbmct PnJlc2VydmVkX3RhaWwgICA9IHJpbmctPnRhaWw7CiB9CiAKLXZvaWQgaW50ZWxfcmluZ19yZXNl cnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCit2b2lkIGlu dGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfZW5kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n KQogewotCVdBUk5fT04oIXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Ci0JaWYgKHJpbmdidWYt PnRhaWwgPiByaW5nYnVmLT5yZXNlcnZlZF90YWlsKSB7Ci0JCVdBUk4ocmluZ2J1Zi0+dGFpbCA+ IHJpbmdidWYtPnJlc2VydmVkX3RhaWwgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplLAorCVdBUk5f T04oIXJpbmctPnJlc2VydmVkX2luX3VzZSk7CisJaWYgKHJpbmctPnRhaWwgPiByaW5nLT5yZXNl cnZlZF90YWlsKSB7CisJCVdBUk4ocmluZy0+dGFpbCA+IHJpbmctPnJlc2VydmVkX3RhaWwgKyBy aW5nLT5yZXNlcnZlZF9zaXplLAogCQkgICAgICJyZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNt YWxsOiAlZCB2cyAlZCFcbiIsCi0JCSAgICAgcmluZ2J1Zi0+dGFpbCAtIHJpbmdidWYtPnJlc2Vy dmVkX3RhaWwsIHJpbmdidWYtPnJlc2VydmVkX3NpemUpOworCQkgICAgIHJpbmctPnRhaWwgLSBy aW5nLT5yZXNlcnZlZF90YWlsLCByaW5nLT5yZXNlcnZlZF9zaXplKTsKIAl9IGVsc2UgewogCQkv KgogCQkgKiBUaGUgcmluZyB3YXMgd3JhcHBlZCB3aGlsZSB0aGUgcmVzZXJ2ZWQgc3BhY2Ugd2Fz IGluIHVzZS4KQEAgLTI0MzksMjIgKzI0NDIsMjIgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVk X3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKIAkJICovCiAJfQog Ci0JcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKLQlyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UgPSBmYWxzZTsKKwlyaW5nLT5yZXNlcnZlZF9zaXplICAgPSAwOworCXJpbmctPnJlc2VydmVk X2luX3VzZSA9IGZhbHNlOwogfQogCiBzdGF0aWMgaW50IF9faW50ZWxfcmluZ19wcmVwYXJlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IGJ5dGVzKQogewotCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5idWZmZXI7Ci0JaW50IHJlbWFpbl91c2Fi bGUgPSByaW5nYnVmLT5lZmZlY3RpdmVfc2l6ZSAtIHJpbmdidWYtPnRhaWw7Ci0JaW50IHJlbWFp bl9hY3R1YWwgPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKKwlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+cmluZzsKKwlpbnQgcmVtYWluX3VzYWJsZSA9IHJp bmctPmVmZmVjdGl2ZV9zaXplIC0gcmluZy0+dGFpbDsKKwlpbnQgcmVtYWluX2FjdHVhbCA9IHJp bmctPnNpemUgLSByaW5nLT50YWlsOwogCWludCByZXQsIHRvdGFsX2J5dGVzLCB3YWl0X2J5dGVz ID0gMDsKIAlib29sIG5lZWRfd3JhcCA9IGZhbHNlOwogCi0JaWYgKHJpbmdidWYtPnJlc2VydmVk X2luX3VzZSkKKwlpZiAocmluZy0+cmVzZXJ2ZWRfaW5fdXNlKQogCQl0b3RhbF9ieXRlcyA9IGJ5 dGVzOwogCWVsc2UKLQkJdG90YWxfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3Np emU7CisJCXRvdGFsX2J5dGVzID0gYnl0ZXMgKyByaW5nLT5yZXNlcnZlZF9zaXplOwogCiAJaWYg KHVubGlrZWx5KGJ5dGVzID4gcmVtYWluX3VzYWJsZSkpIHsKIAkJLyoKQEAgLTI0NzAsOSArMjQ3 Myw5IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCBpbnQgYnl0ZXMpCiAJCQkgKiBmYWxscyBvZmYgdGhlIGVuZC4gU28gb25s eSBuZWVkIHRvIHRvIHdhaXQgZm9yIHRoZQogCQkJICogcmVzZXJ2ZWQgc2l6ZSBhZnRlciBmbHVz aGluZyBvdXQgdGhlIHJlbWFpbmRlci4KIAkJCSAqLwotCQkJd2FpdF9ieXRlcyA9IHJlbWFpbl9h Y3R1YWwgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCQkJd2FpdF9ieXRlcyA9IHJlbWFpbl9h Y3R1YWwgKyByaW5nLT5yZXNlcnZlZF9zaXplOwogCQkJbmVlZF93cmFwID0gdHJ1ZTsKLQkJfSBl bHNlIGlmICh0b3RhbF9ieXRlcyA+IHJpbmdidWYtPnNwYWNlKSB7CisJCX0gZWxzZSBpZiAodG90 YWxfYnl0ZXMgPiByaW5nLT5zcGFjZSkgewogCQkJLyogTm8gd3JhcHBpbmcgcmVxdWlyZWQsIGp1 c3Qgd2FpdGluZy4gKi8KIAkJCXdhaXRfYnl0ZXMgPSB0b3RhbF9ieXRlczsKIAkJfQpAQCAtMjQ4 NCw3ICsyNDg3LDcgQEAgc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBieXRlcykKIAkJCXJldHVybiByZXQ7CiAKIAkJaWYg KG5lZWRfd3JhcCkKLQkJCV9fd3JhcF9yaW5nX2J1ZmZlcihyaW5nYnVmKTsKKwkJCV9fd3JhcF9y aW5nX2J1ZmZlcihyaW5nKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTI1MTAsNyArMjUxMyw3IEBA IGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQllbmdpbmUtPmJ1ZmZlci0+c3BhY2UgLT0gbnVt X2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7CisJZW5naW5lLT5yaW5nLT5zcGFjZSAtPSBudW1f ZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjUxOCw3ICsy NTIxLDcgQEAgaW50IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCiBpbnQgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVx LT5lbmdpbmU7Ci0JaW50IG51bV9kd29yZHMgPSAoZW5naW5lLT5idWZmZXItPnRhaWwgJiAoQ0FD SEVMSU5FX0JZVEVTIC0gMSkpIC8gc2l6ZW9mKHVpbnQzMl90KTsKKwlpbnQgbnVtX2R3b3JkcyA9 IChlbmdpbmUtPnJpbmctPnRhaWwgJiAoQ0FDSEVMSU5FX0JZVEVTIC0gMSkpIC8gc2l6ZW9mKHVp bnQzMl90KTsKIAlpbnQgcmV0OwogCiAJaWYgKG51bV9kd29yZHMgPT0gMCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAzZTQwZjdiZjIxNDcuLmNlNzMzN2IwYWEx NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTU5LDcgKzE1 OSw3IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKIAl1bnNpZ25lZCBpbnQgZ3VjX2lkOwog CXUzMgkJbW1pb19iYXNlOwogCXN0cnVjdAkJZHJtX2RldmljZSAqZGV2OwotCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpidWZmZXI7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CiAJ c3RydWN0IGxpc3RfaGVhZCBidWZmZXJzOwogCiAJLyoKQEAgLTQzNCw4ICs0MzQsOCBAQCBpbnRl bF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqCiBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSk7CiBpbnQgaW50ZWxfcGluX2Fu ZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkgICAgIHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKLXZvaWQgaW50ZWxfdW5waW5fcmluZ2J1 ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOworCQkJCSAgICAgc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpOwordm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVy X29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7CiB2b2lkIGludGVsX3JpbmdidWZm ZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7CiAKIHZvaWQgaW50ZWxfc3Rv cF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKQEAgLTQ0OCw5ICs0NDgs OSBAQCBpbnQgX19tdXN0X2NoZWNrIGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5n X2VtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgIHUzMiBkYXRhKQog ewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5idWZmZXI7Ci0J aW93cml0ZTMyKGRhdGEsIHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsKTsK LQlyaW5nYnVmLT50YWlsICs9IDQ7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBl bmdpbmUtPnJpbmc7CisJaW93cml0ZTMyKGRhdGEsIHJpbmctPnZpcnR1YWxfc3RhcnQgKyByaW5n LT50YWlsKTsKKwlyaW5nLT50YWlsICs9IDQ7CiB9CiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxf cmluZ19lbWl0X3JlZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJICAgICAg IGk5MTVfcmVnX3QgcmVnKQpAQCAtNDU5LDEyICs0NTksMTIgQEAgc3RhdGljIGlubGluZSB2b2lk IGludGVsX3JpbmdfZW1pdF9yZWcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogfQog c3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBlbmdp bmUtPmJ1ZmZlcjsKLQlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOworCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gZW5naW5lLT5yaW5nOworCXJpbmctPnRhaWwgJj0g cmluZy0+c2l6ZSAtIDE7CiB9CiBpbnQgX19pbnRlbF9yaW5nX3NwYWNlKGludCBoZWFkLCBpbnQg dGFpbCwgaW50IHNpemUpOwotdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Ci1pbnQgaW50ZWxfcmluZ19zcGFjZShzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cit2b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKK2ludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKIGJvb2wgaW50ZWxfZW5naW5lX3N0b3BwZWQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9l bmdpbmVfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpAQCAtNDg1LDkgKzQ4 NSw5IEBAIHU2NCBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwogCiBpbnQgaW5pdF93b3JrYXJvdW5kc19yaW5nKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7CiAKLXN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3JpbmdfZ2V0X3Rh aWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCitzdGF0aWMgaW5saW5lIHUzMiBp bnRlbF9yaW5nX2dldF90YWlsKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewotCXJl dHVybiByaW5nYnVmLT50YWlsOworCXJldHVybiByaW5nLT50YWlsOwogfQogCiAvKgpAQCAtNTA0 LDEzICs1MDQsMTQgQEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfdGFpbChzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKICAqIHdpbGwgYWx3YXlzIGhhdmUgc3VmZmlj aWVudCByb29tIHRvIGRvIGl0cyBzdHVmZi4gVGhlIHJlcXVlc3QgY3JlYXRpb24KICAqIGNvZGUg Y2FsbHMgdGhpcyBhdXRvbWF0aWNhbGx5LgogICovCi12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRf c3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUp Owordm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmcsCisJCQkJICAgICAgIGludCBzaXplKTsKIC8qIENhbmNlbCB0aGUgcmVz ZXJ2YXRpb24sIGUuZy4gYmVjYXVzZSB0aGUgcmVxdWVzdCBpcyBiZWluZyBkaXNjYXJkZWQuICov Ci12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKTsKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpOwogLyogVXNlIHRoZSByZXNlcnZlZCBzcGFj ZSAtIGZvciB1c2UgYnkgaTkxNV9hZGRfcmVxdWVzdCgpIG9ubHkuICovCi12b2lkIGludGVsX3Jp bmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsK K3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmcpOwogLyogRmluaXNoIHdpdGggdGhlIHJlc2VydmVkIHNwYWNlIC0gZm9yIHVzZSBi eSBpOTE1X2FkZF9yZXF1ZXN0KCkgb25seS4gKi8KLXZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9z cGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwordm9pZCBpbnRlbF9y aW5nX3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7CiAK IC8qIExlZ2FjeSByaW5nYnVmZmVyIHNwZWNpZmljIHBvcnRpb24gb2YgcmVzZXJ2YXRpb24gY29k ZTogKi8KIGludCBpbnRlbF9yaW5nX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0KTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK