From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH] drm/i915: Name all intel_ringbuffer instances ring Date: Wed, 16 Mar 2016 17:08:49 +0000 Message-ID: <1458148129-30422-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <20160316161618.GN14143@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 2733F6E136 for ; Wed, 16 Mar 2016 17:08:54 +0000 (UTC) In-Reply-To: <20160316161618.GN14143@nuc-i3427.alporthouse.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 IENvY2NpbmVsbGUsIHNlZCBhbmQgbWFudWFsIGVkaXRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0 a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tCkNvbXBpbGUgdGVzdGVkIG9ubHkhCi0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDE0ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAyNiArKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgICAgICAgICAgIHwgMjM1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgICAgfCAgMTQgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYyAgICAgICAgICB8ICAzOCArKy0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgMTc5ICsrKysrKysrKysr LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8 ICAzMSArKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAyNzggaW5zZXJ0aW9ucygrKSwgMjcxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMWQ4YzNlZjI5MzE4 Li4xNzdiNzRiMjEzMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xOTMz LDExICsxOTMzLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fZnJhbWVidWZmZXJfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB9CiAKIHN0YXRpYyB2b2lkIGRlc2NyaWJlX2N0 eF9yaW5nYnVmKHN0cnVjdCBzZXFfZmlsZSAqbSwKLQkJCQkgc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYpCisJCQkJIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewogCXNl cV9wcmludGYobSwgIiAocmluZ2J1ZmZlciwgc3BhY2U6ICVkLCBoZWFkOiAldSwgdGFpbDogJXUs IGxhc3QgaGVhZDogJWQpIiwKLQkJICAgcmluZ2J1Zi0+c3BhY2UsIHJpbmdidWYtPmhlYWQsIHJp bmdidWYtPnRhaWwsCi0JCSAgIHJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkKTsKKwkJICAgcmlu Zy0+c3BhY2UsIHJpbmctPmhlYWQsIHJpbmctPnRhaWwsCisJCSAgIHJpbmctPmxhc3RfcmV0aXJl ZF9oZWFkKTsKIH0KIAogc3RhdGljIGludCBpOTE1X2NvbnRleHRfc3RhdHVzKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQpAQCAtMTk2OCwxNCArMTk2OCwxNCBAQCBzdGF0aWMgaW50 IGk5MTVfY29udGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJ CQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgewogCQkJCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KIAkJCQkJY3R4LT5lbmdpbmVbaV0uc3RhdGU7Ci0J CQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQotCQkJCQljdHgtPmVuZ2luZVtp XS5yaW5nYnVmOworCQkJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0KKwkJCQkJY3R4 LT5lbmdpbmVbaV0ucmluZzsKIAogCQkJCXNlcV9wcmludGYobSwgIiVzOiAiLCBlbmdpbmUtPm5h bWUpOwogCQkJCWlmIChjdHhfb2JqKQogCQkJCQlkZXNjcmliZV9vYmoobSwgY3R4X29iaik7Ci0J CQkJaWYgKHJpbmdidWYpCi0JCQkJCWRlc2NyaWJlX2N0eF9yaW5nYnVmKG0sIHJpbmdidWYpOwor CQkJCWlmIChyaW5nKQorCQkJCQlkZXNjcmliZV9jdHhfcmluZ2J1ZihtLCByaW5nKTsKIAkJCQlz ZXFfcHV0YyhtLCAnXG4nKTsKIAkJCX0KIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IGZkMWVkNjZkZDI5OC4uMmRjMDgwNjhiZGZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTgxOSw3ICs4MTksNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7CiAJLyogRXhlY2xp c3RzICovCiAJc3RydWN0IHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwot CQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKKwkJc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmc7CiAJCWludCBwaW5fY291bnQ7CiAJCXN0cnVjdCBpOTE1X3ZtYSAqbHJjX3Zt YTsKIAkJdTY0IGxyY19kZXNjOwpAQCAtMjIyMiw3ICsyMjIyLDcgQEAgc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0IHsKIAkgKiBjb250ZXh0LgogCSAqLwogCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHg7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7CisJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmc7CiAKIAkvKiogQmF0Y2ggYnVmZmVyIHJlbGF0ZWQgdG8gdGhpcyBy ZXF1ZXN0IGlmIGFueSAodXNlZCBmb3IKIAkgICAgZXJyb3Igc3RhdGUgZHVtcCBvbmx5KSAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMDQyY2I0MTJlNjUyLi4zMjIzNmM2ZDIxZDAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTQyMSw3ICsxNDIxLDcgQEAgc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQogCSAqIE5vdGUgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGlu IHJlcXVlc3QKIAkgKiBjb21wbGV0aW9uIG9yZGVyLgogCSAqLwotCXJlcXVlc3QtPnJpbmdidWYt Pmxhc3RfcmV0aXJlZF9oZWFkID0gcmVxdWVzdC0+cG9zdGZpeDsKKwlyZXF1ZXN0LT5yaW5nLT5s YXN0X3JldGlyZWRfaGVhZCA9IHJlcXVlc3QtPnBvc3RmaXg7CiAKIAlsaXN0X2RlbF9pbml0KCZy ZXF1ZXN0LT5saXN0KTsKIAlpOTE1X2dlbV9yZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1 ZXN0KTsKQEAgLTI1NDIsNyArMjU0Miw3IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OwotCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nOwogCXUzMiByZXF1ZXN0X3N0YXJ0OwogCWludCByZXQ7CiAKQEAgLTI1NTEsMTYgKzI1NTEs MTYgQEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0LAogCiAJZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwogCWRldl9wcml2ID0gcmVx dWVzdC0+aTkxNTsKLQlyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlyaW5nID0gcmVxdWVz dC0+cmluZzsKIAogCS8qCiAJICogVG8gZW5zdXJlIHRoYXQgdGhpcyBjYWxsIHdpbGwgbm90IGZh aWwsIHNwYWNlIGZvciBpdHMgZW1pc3Npb25zCiAJICogc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVu IHJlc2VydmVkIGluIHRoZSByaW5nIGJ1ZmZlci4gTGV0IHRoZSByaW5nCiAJICoga25vdyB0aGF0 IGl0IGlzIHRpbWUgdG8gdXNlIHRoYXQgc3BhY2UgdXAuCiAJICovCi0JaW50ZWxfcmluZ19yZXNl cnZlZF9zcGFjZV91c2UocmluZ2J1Zik7CisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uo cmluZyk7CiAKLQlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsK KwlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nKTsKIAkvKgogCSAqIEVt aXQgYW55IG91dHN0YW5kaW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVtaXQgdGhl IGZsdXNoCiAJICogYWZ0ZXIgaGF2aW5nIGVtaXR0ZWQgdGhlIGJhdGNoYnVmZmVyIGNvbW1hbmQu IEhlbmNlIHdlIG5lZWQgdG8gZml4CkBAIC0yNTgyLDE0ICsyNTgyLDE0IEBAIHZvaWQgX19pOTE1 X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkgKiBH UFUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdCwgd2UgbmV2ZXIgb3Zlci1lc3RpbWF0ZSB0aGUKIAkg KiBwb3NpdGlvbiBvZiB0aGUgaGVhZC4KIAkgKi8KLQlyZXF1ZXN0LT5wb3N0Zml4ID0gaW50ZWxf cmluZ19nZXRfdGFpbChyaW5nYnVmKTsKKwlyZXF1ZXN0LT5wb3N0Zml4ID0gaW50ZWxfcmluZ19n ZXRfdGFpbChyaW5nKTsKIAogCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCiAJCXJldCA9IGVu Z2luZS0+ZW1pdF9yZXF1ZXN0KHJlcXVlc3QpOwogCWVsc2UgewogCQlyZXQgPSBlbmdpbmUtPmFk ZF9yZXF1ZXN0KHJlcXVlc3QpOwogCi0JCXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9yaW5nX2dldF90 YWlsKHJpbmdidWYpOworCQlyZXF1ZXN0LT50YWlsID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5n KTsKIAl9CiAJLyogTm90IGFsbG93ZWQgdG8gZmFpbCEgKi8KIAlXQVJOKHJldCwgImVtaXR8YWRk X3JlcXVlc3QgZmFpbGVkOiAlZCFcbiIsIHJldCk7CkBAIC0yNjE5LDcgKzI2MTksNyBAQCB2b2lk IF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Qs CiAJaW50ZWxfbWFya19idXN5KGRldl9wcml2LT5kZXYpOwogCiAJLyogU2FuaXR5IGNoZWNrIHRo YXQgdGhlIHJlc2VydmVkIHNpemUgd2FzIGxhcmdlIGVub3VnaC4gKi8KLQlpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2Vu ZChyaW5nKTsKIH0KIAogc3RhdGljIGJvb2wgaTkxNV9jb250ZXh0X2lzX2Jhbm5lZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0yNzc5LDcgKzI3NzksNyBAQCBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAogdm9pZCBp OTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK IHsKLQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChyZXEtPnJpbmdidWYpOworCWlu dGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJlcS0+cmluZyk7CiAKIAlpOTE1X2dlbV9y ZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7CiB9CkBAIC0yODIxLDcgKzI4MjEsNyBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpidWZmZXI7CisJc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmVuZ2lu ZS0+YWN0aXZlX2xpc3QpKSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CkBA IC0yODc0LDkgKzI4NzQsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfY2xl YW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogdXBvbiByZXNldCBp cyBsZXNzIHRoYW4gd2hlbiB3ZSBzdGFydC4gRG8gb25lIG1vcmUgcGFzcyBvdmVyCiAJICogYWxs IHRoZSByaW5nYnVmZmVycyB0byByZXNldCBsYXN0X3JldGlyZWRfaGVhZC4KIAkgKi8KLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGJ1ZmZlciwgJmVuZ2luZS0+YnVmZmVycywgbGluaykgewotCQlidWZm ZXItPmxhc3RfcmV0aXJlZF9oZWFkID0gYnVmZmVyLT50YWlsOwotCQlpbnRlbF9yaW5nX3VwZGF0 ZV9zcGFjZShidWZmZXIpOworCWxpc3RfZm9yX2VhY2hfZW50cnkocmluZywgJmVuZ2luZS0+YnVm ZmVycywgbGluaykgeworCQlyaW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IHJpbmctPnRhaWw7CisJ CWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggMzQzOTdhNjdiMDllLi5iMmQxZjM4NmMyYWIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtMTA3NCw5ICsxMDc0LDkgQEAgc3Rh dGljIHZvaWQgaTkxNV9nZW1fcmVjb3JkX3JpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkgKiBleGVjdXRlZCkuCiAJCQkgKi8KIAkJCWlmIChyZXF1ZXN0KQotCQkJCXJidWYgPSByZXF1 ZXN0LT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOworCQkJCXJidWYgPSByZXF1ZXN0 LT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nOwogCQkJZWxzZQotCQkJCXJidWYgPSBkZXZf cHJpdi0+a2VybmVsX2NvbnRleHQtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOworCQkJCXJi dWYgPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nOwog CQl9IGVsc2UKIAkJCXJidWYgPSBlbmdpbmUtPmJ1ZmZlcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IGFlMWY1OGQwNzNmMi4uMzQyMjViNTdiYWMy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC00MTUs NyArNDE1LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfY3R4X2Rlc2Moc3RydWN0IGludGVsX2d1 YyAqZ3VjLAogCQlscmMtPmNvbnRleHRfaWQgPSAoY2xpZW50LT5jdHhfaW5kZXggPDwgR1VDX0VM Q19DVFhJRF9PRkZTRVQpIHwKIAkJCQkoZW5naW5lLT5ndWNfaWQgPDwgR1VDX0VMQ19FTkdJTkVf T0ZGU0VUKTsKIAotCQlvYmogPSBjdHgtPmVuZ2luZVtpXS5yaW5nYnVmLT5vYmo7CisJCW9iaiA9 IGN0eC0+ZW5naW5lW2ldLnJpbmctPm9iajsKIAogCQlscmMtPnJpbmdfYmVnaW4gPSBpOTE1X2dl bV9vYmpfZ2d0dF9vZmZzZXQob2JqKTsKIAkJbHJjLT5yaW5nX2VuZCA9IGxyYy0+cmluZ19iZWdp biArIG9iai0+YmFzZS5zaXplIC0gMTsKQEAgLTU1MCw3ICs1NTAsNyBAQCBzdGF0aWMgaW50IGd1 Y19hZGRfd29ya3F1ZXVlX2l0ZW0oc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MsCiAJCQkJCQkJ ICAgICBycS0+ZW5naW5lKTsKIAogCS8qIFRoZSBHdUMgZmlybXdhcmUgd2FudHMgdGhlIHRhaWwg aW5kZXggaW4gUVdvcmRzLCBub3QgYnl0ZXMgKi8KLQl0YWlsID0gcnEtPnJpbmdidWYtPnRhaWwg Pj4gMzsKKwl0YWlsID0gcnEtPnJpbmctPnRhaWwgPj4gMzsKIAl3cWktPnJpbmdfdGFpbCA9IHRh aWwgPDwgV1FfUklOR19UQUlMX1NISUZUOwogCXdxaS0+ZmVuY2VfaWQgPSAwOyAvKlhYWDogd2hh dCBmZW5jZSB0byBiZSBoZXJlICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggN2M2 MzZiM2RiMTU2Li5mMzliZTc1MmQ1ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC00 NjgsMTEgKzQ2OCwxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF91bnF1ZXVlX19s b2NrZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkgKiByZXN1Ym1pdCB0aGUg cmVxdWVzdC4gU2VlIGdlbjhfZW1pdF9yZXF1ZXN0KCkgZm9yIHdoZXJlIHdlCiAJCSAqIHByZXBh cmUgdGhlIHBhZGRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgcmVxdWVzdC4KIAkJICovCi0JCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOworCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZzsKIAotCQlyaW5nYnVmID0gcmVxMC0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmlu Z2J1ZjsKKwkJcmluZyA9IHJlcTAtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmc7CiAJCXJl cTAtPnRhaWwgKz0gODsKLQkJcmVxMC0+dGFpbCAmPSByaW5nYnVmLT5zaXplIC0gMTsKKwkJcmVx MC0+dGFpbCAmPSByaW5nLT5zaXplIC0gMTsKIAl9CiAKIAlleGVjbGlzdHNfc3VibWl0X3JlcXVl c3RzKHJlcTAsIHJlcTEpOwpAQCAtNzAzLDcgKzcwMyw3IEBAIGludCBpbnRlbF9sb2dpY2FsX3Jp bmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0CiB7CiAJaW50IHJldCA9IDA7CiAKLQlyZXF1ZXN0LT5yaW5nYnVmID0gcmVxdWVzdC0+Y3R4 LT5lbmdpbmVbcmVxdWVzdC0+ZW5naW5lLT5pZF0ucmluZ2J1ZjsKKwlyZXF1ZXN0LT5yaW5nID0g cmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmVxdWVzdC0+ZW5naW5lLT5pZF0ucmluZzsKIAogCWlmIChp OTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgewogCQkvKgpAQCAtNzI3LDE3ICs3MjcsMTcgQEAg aW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QKIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9y X3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCSAgICAgICBpbnQg Ynl0ZXMpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdi dWY7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CiAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICp0YXJnZXQ7CiAJdW5zaWduZWQgc3BhY2U7CiAJaW50IHJldDsKIAotCWlm IChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49IGJ5dGVzKQorCWlmIChpbnRlbF9yaW5nX3Nw YWNlKHJpbmcpID49IGJ5dGVzKQogCQlyZXR1cm4gMDsKIAogCS8qIFRoZSB3aG9sZSBwb2ludCBv ZiByZXNlcnZpbmcgc3BhY2UgaXMgdG8gbm90IHdhaXQhICovCi0JV0FSTl9PTihyaW5nYnVmLT5y ZXNlcnZlZF9pbl91c2UpOworCVdBUk5fT04ocmluZy0+cmVzZXJ2ZWRfaW5fdXNlKTsKIAogCWxp c3RfZm9yX2VhY2hfZW50cnkodGFyZ2V0LCAmZW5naW5lLT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsK IAkJLyoKQEAgLTc0NSwxMiArNzQ1LDEyIEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRf Zm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgKiBmcm9tIG11 bHRpcGxlIHJpbmdidWZmZXJzLiBIZXJlLCB3ZSBtdXN0IGlnbm9yZSBhbnkgdGhhdAogCQkgKiBh cmVuJ3QgZnJvbSB0aGUgcmluZ2J1ZmZlciB3ZSdyZSBjb25zaWRlcmluZy4KIAkJICovCi0JCWlm ICh0YXJnZXQtPnJpbmdidWYgIT0gcmluZ2J1ZikKKwkJaWYgKHRhcmdldC0+cmluZyAhPSByaW5n KQogCQkJY29udGludWU7CiAKIAkJLyogV291bGQgY29tcGxldGlvbiBvZiB0aGlzIHJlcXVlc3Qg ZnJlZSBlbm91Z2ggc3BhY2U/ICovCi0JCXNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHRhcmdl dC0+cG9zdGZpeCwgcmluZ2J1Zi0+dGFpbCwKLQkJCQkJICAgcmluZ2J1Zi0+c2l6ZSk7CisJCXNw YWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHRhcmdldC0+cG9zdGZpeCwgcmluZy0+dGFpbCwKKwkJ CQkJICAgcmluZy0+c2l6ZSk7CiAJCWlmIChzcGFjZSA+PSBieXRlcykKIAkJCWJyZWFrOwogCX0K QEAgLTc2Miw3ICs3NjIsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFj ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JcmluZ2J1Zi0+c3BhY2UgPSBzcGFjZTsKKwlyaW5nLT5zcGFjZSA9IHNwYWNlOwog CXJldHVybiAwOwogfQogCkBAIC03NzgsMTIgKzc3OCwxMiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxf cmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIHN0 YXRpYyBpbnQKIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZyA9IHJlcXVlc3QtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gcmVxdWVzdC0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1 ZXN0LT5lbmdpbmU7CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKLQly ZXF1ZXN0LT50YWlsID0gcmluZ2J1Zi0+dGFpbDsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nKTsKKwlyZXF1ZXN0LT50YWlsID0gcmluZy0+dGFpbDsKIAogCS8qCiAJICogSGVyZSB3 ZSBhZGQgdHdvIGV4dHJhIE5PT1BzIGFzIHBhZGRpbmcgdG8gYXZvaWQKQEAgLTc5MSw5ICs3OTEs OSBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkgKgogCSAqIENhbGxlciBtdXN0IHJlc2VydmUgV0Ff VEFJTF9EV09SRFMgZm9yIHVzIQogCSAqLwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdi dWYsIE1JX05PT1ApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1Ap OwotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcs IE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCiAJaWYgKGlu dGVsX2VuZ2luZV9zdG9wcGVkKGVuZ2luZSkpCiAJCXJldHVybiAwOwpAQCAtODE3LDMyICs4MTcs MzIgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9f d3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3N0YXRp YyB2b2lkIF9fd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykK IHsKIAl1aW50MzJfdCBfX2lvbWVtICp2aXJ0OwotCWludCByZW0gPSByaW5nYnVmLT5zaXplIC0g cmluZ2J1Zi0+dGFpbDsKKwlpbnQgcmVtID0gcmluZy0+c2l6ZSAtIHJpbmctPnRhaWw7CiAKLQl2 aXJ0ID0gcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWw7CisJdmlydCA9IHJp bmctPnZpcnR1YWxfc3RhcnQgKyByaW5nLT50YWlsOwogCXJlbSAvPSA0OwogCXdoaWxlIChyZW0t LSkKIAkJaW93cml0ZTMyKE1JX05PT1AsIHZpcnQrKyk7CiAKLQlyaW5nYnVmLT50YWlsID0gMDsK LQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKKwlyaW5nLT50YWlsID0gMDsKKwlp bnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsKIH0KIAogc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IGJ5dGVzKQog ewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmVxLT5yaW5nYnVmOwotCWlu dCByZW1haW5fdXNhYmxlID0gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUgLSByaW5nYnVmLT50YWls OwotCWludCByZW1haW5fYWN0dWFsID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CisJ c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJaW50IHJlbWFpbl91 c2FibGUgPSByaW5nLT5lZmZlY3RpdmVfc2l6ZSAtIHJpbmctPnRhaWw7CisJaW50IHJlbWFpbl9h Y3R1YWwgPSByaW5nLT5zaXplIC0gcmluZy0+dGFpbDsKIAlpbnQgcmV0LCB0b3RhbF9ieXRlcywg d2FpdF9ieXRlcyA9IDA7CiAJYm9vbCBuZWVkX3dyYXAgPSBmYWxzZTsKIAotCWlmIChyaW5nYnVm LT5yZXNlcnZlZF9pbl91c2UpCisJaWYgKHJpbmctPnJlc2VydmVkX2luX3VzZSkKIAkJdG90YWxf Ynl0ZXMgPSBieXRlczsKIAllbHNlCi0JCXRvdGFsX2J5dGVzID0gYnl0ZXMgKyByaW5nYnVmLT5y ZXNlcnZlZF9zaXplOworCQl0b3RhbF9ieXRlcyA9IGJ5dGVzICsgcmluZy0+cmVzZXJ2ZWRfc2l6 ZTsKIAogCWlmICh1bmxpa2VseShieXRlcyA+IHJlbWFpbl91c2FibGUpKSB7CiAJCS8qCkBAIC04 NTgsOSArODU4LDkgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IGJ5dGVzKQogCQkJICogZmFsbHMgb2ZmIHRoZSBl bmQuIFNvIG9ubHkgbmVlZCB0byB0byB3YWl0IGZvciB0aGUKIAkJCSAqIHJlc2VydmVkIHNpemUg YWZ0ZXIgZmx1c2hpbmcgb3V0IHRoZSByZW1haW5kZXIuCiAJCQkgKi8KLQkJCXdhaXRfYnl0ZXMg PSByZW1haW5fYWN0dWFsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsKKwkJCXdhaXRfYnl0ZXMg PSByZW1haW5fYWN0dWFsICsgcmluZy0+cmVzZXJ2ZWRfc2l6ZTsKIAkJCW5lZWRfd3JhcCA9IHRy dWU7Ci0JCX0gZWxzZSBpZiAodG90YWxfYnl0ZXMgPiByaW5nYnVmLT5zcGFjZSkgeworCQl9IGVs c2UgaWYgKHRvdGFsX2J5dGVzID4gcmluZy0+c3BhY2UpIHsKIAkJCS8qIE5vIHdyYXBwaW5nIHJl cXVpcmVkLCBqdXN0IHdhaXRpbmcuICovCiAJCQl3YWl0X2J5dGVzID0gdG90YWxfYnl0ZXM7CiAJ CX0KQEAgLTg3Miw3ICs4NzIsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCiAJCQlyZXR1cm4gcmV0 OwogCiAJCWlmIChuZWVkX3dyYXApCi0JCQlfX3dyYXBfcmluZ19idWZmZXIocmluZ2J1Zik7CisJ CQlfX3dyYXBfcmluZ19idWZmZXIocmluZyk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC05MDgsNyAr OTA4LDcgQEAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwgaW50IG51bV9kd29yZHMpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAotCXJlcS0+cmluZ2J1Zi0+c3BhY2UgLT0gbnVtX2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7 CisJcmVxLT5yaW5nLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KTsKIAly ZXR1cm4gMDsKIH0KIApAQCAtOTIyLDcgKzkyMiw4IEBAIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdf cmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJICog YWRkaW5nIGFueSBjb21tYW5kcyB0byBpdCB0aGVuIHRoZXJlIG1pZ2h0IG5vdCBhY3R1YWxseSBi ZQogCSAqIHN1ZmZpY2llbnQgcm9vbSBmb3IgdGhlIHN1Ym1pc3Npb24gY29tbWFuZHMuCiAJICov Ci0JaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcXVlc3QtPnJpbmdidWYsIE1J Tl9TUEFDRV9GT1JfQUREX1JFUVVFU1QpOworCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVz ZXJ2ZShyZXF1ZXN0LT5yaW5nLAorCQkJCQkgIE1JTl9TUEFDRV9GT1JfQUREX1JFUVVFU1QpOwog CiAJcmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyZXF1ZXN0LCAwKTsKIH0KQEAgLTk1 MSw3ICs5NTIsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVf ZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAlzdHJ1Y3QgZHJtX2RldmljZSAgICAgICAqZGV2 ID0gcGFyYW1zLT5kZXY7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcGFyYW1z LT5lbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHBhcmFtcy0+Y3R4 LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZyA9IHBhcmFtcy0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZzsKIAl1NjQgZXhlY19z dGFydDsKIAlpbnQgaW5zdHBfbW9kZTsKIAl1MzIgaW5zdHBfbWFzazsKQEAgLTk5OCwxMSArOTk5 LDExIEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVm ZmVyX3BhcmFtcyAqcGFyYW1zLAogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQkJaW50ZWxfbG9naWNhbF9y aW5nX2VtaXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwotCQlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwgSU5TVFBNKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5n X2VtaXQocmluZ2J1ZiwgaW5zdHBfbWFzayA8PCAxNiB8IGluc3RwX21vZGUpOwotCQlpbnRlbF9s b2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQo cmluZywgTUlfTk9PUCk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURf UkVHSVNURVJfSU1NKDEpKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmcsIElO U1RQTSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGluc3RwX21hc2sgPDwgMTYg fCBpbnN0cF9tb2RlKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKIAkJ ZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gaW5zdHBfbW9kZTsKIAl9CkBAIC0x MDkzLDcgKzEwOTQsNyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuZ2luZS0+ ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtl bmdpbmUtPmlkXS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0 eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nOwogCXN0cnVjdCBwYWdlICpscmNf c3RhdGVfcGFnZTsKIAl1aW50MzJfdCAqbHJjX3JlZ19zdGF0ZTsKIAlpbnQgcmV0OwpAQCAtMTEx MSwxNCArMTExMiwxNCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCWdvdG8gdW5waW5fY3R4X29iajsKIAl9CiAKLQlyZXQg PSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihlbmdpbmUtPmRldiwgcmluZ2J1Zik7 CisJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZW5naW5lLT5kZXYsIHJp bmcpOwogCWlmIChyZXQpCiAJCWdvdG8gdW5waW5fY3R4X29iajsKIAogCWN0eC0+ZW5naW5lW2Vu Z2luZS0+aWRdLmxyY192bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChjdHhfb2JqKTsKIAlpbnRl bF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKGN0eCwgZW5naW5lKTsKIAlscmNfcmVnX3N0 YXRlID0ga21hcChscmNfc3RhdGVfcGFnZSk7Ci0JbHJjX3JlZ19zdGF0ZVtDVFhfUklOR19CVUZG RVJfU1RBUlQrMV0gPSByaW5nYnVmLT52bWEtPm5vZGUuc3RhcnQ7CisJbHJjX3JlZ19zdGF0ZVtD VFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSByaW5nLT52bWEtPm5vZGUuc3RhcnQ7CiAJY3R4LT5l bmdpbmVbZW5naW5lLT5pZF0ubHJjX3JlZ19zdGF0ZSA9IGxyY19yZWdfc3RhdGU7CiAJY3R4X29i ai0+ZGlydHkgPSB0cnVlOwogCkBAIC0xMTYxLDcgKzExNjIsNyBAQCB2b2lkIGludGVsX2xyX2Nv bnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAlXQVJOX09OKCFtdXRleF9p c19sb2NrZWQoJmN0eC0+aTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAlpZiAoLS1jdHgtPmVu Z2luZVtlbmdpbmUtPmlkXS5waW5fY291bnQgPT0gMCkgewogCQlrdW5tYXAoa21hcF90b19wYWdl KGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19yZWdfc3RhdGUpKTsKLQkJaW50ZWxfdW5waW5f cmluZ2J1ZmZlcl9vYmooY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1Zik7CisJCWludGVs X3VucGluX3JpbmdidWZmZXJfb2JqKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmcpOwogCQlp OTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKIAkJY3R4LT5lbmdpbmVbZW5naW5l LT5pZF0ubHJjX3ZtYSA9IE5VTEw7CiAJCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNj ID0gMDsKQEAgLTExNzUsNyArMTE3Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5n X3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJ aW50IHJldCwgaTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2lu ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcS0+cmluZ2J1ZjsKKwlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaTkxNV93b3JrYXJvdW5kcyAqdyA9ICZk ZXZfcHJpdi0+d29ya2Fyb3VuZHM7CkBAIC0xMTkyLDE0ICsxMTkzLDE0IEBAIHN0YXRpYyBpbnQg aW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmdidWYsIE1JX0xPQURfUkVHSVNURVJfSU1NKHctPmNvdW50KSk7CisJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0ody0+Y291bnQp KTsKIAlmb3IgKGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykgewotCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdF9yZWcocmluZ2J1Ziwgdy0+cmVnW2ldLmFkZHIpOwotCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCB3LT5yZWdbaV0udmFsdWUpOworCQlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdF9yZWcocmluZywgdy0+cmVnW2ldLmFkZHIpOworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nLCB3LT5yZWdbaV0udmFsdWUpOwogCX0KLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nYnVmLCBNSV9OT09QKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09Q KTsKIAotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCWludGVsX2xvZ2lj YWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCiAJZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1 ZTsKIAlyZXQgPSBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhyZXEpOwpAQCAtMTY0OCw3 ICsxNjQ5LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpw cGd0dCA9IHJlcS0+Y3R4LT5wcGd0dDsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSByZXEtPmVuZ2luZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcS0+ cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKIAlj b25zdCBpbnQgbnVtX2xyaV9jbWRzID0gR0VOOF9MRUdBQ1lfUERQRVMgKiAyOwogCWludCBpLCBy ZXQ7CiAKQEAgLTE2NTYsMjAgKzE2NTcsMjAgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9M T0FEX1JFR0lTVEVSX0lNTShudW1fbHJpX2NtZHMpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dChyaW5nLCBNSV9MT0FEX1JFR0lTVEVSX0lNTShudW1fbHJpX2NtZHMpKTsKIAlmb3IgKGkgPSBH RU44X0xFR0FDWV9QRFBFUyAtIDE7IGkgPj0gMDsgaS0tKSB7CiAJCWNvbnN0IGRtYV9hZGRyX3Qg cGRfZGFkZHIgPSBpOTE1X3BhZ2VfZGlyX2RtYV9hZGRyKHBwZ3R0LCBpKTsKIAotCQlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRf cmVnKHJpbmcsCiAJCQkJCSAgICBHRU44X1JJTkdfUERQX1VEVyhlbmdpbmUsIGkpKTsKLQkJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdXBwZXJfMzJfYml0cyhwZF9kYWRkcikpOwot CQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1ZiwKKwkJaW50ZWxfbG9naWNhbF9y aW5nX2VtaXQocmluZywgdXBwZXJfMzJfYml0cyhwZF9kYWRkcikpOworCQlpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdF9yZWcocmluZywKIAkJCQkJICAgIEdFTjhfUklOR19QRFBfTERXKGVuZ2luZSwg aSkpOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBsb3dlcl8zMl9iaXRzKHBk X2RhZGRyKSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGxvd2VyXzMyX2JpdHMo cGRfZGFkZHIpKTsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9O T09QKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKwlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTY3Nyw3ICsxNjc4LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsCiAJCQkgICAgICB1NjQgb2Zmc2V0LCB1bnNpZ25lZCBkaXNwYXRjaF9m bGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcS0+cmluZ2J1 ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKIAlib29sIHBw Z3R0ID0gIShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKIAlpbnQgcmV0 OwogCkBAIC0xNzA0LDE0ICsxNzA1LDE0IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2JiX3N0YXJ0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQlyZXR1cm4gcmV0OwogCiAJLyog RklYTUUoQkRXKTogQWRkcmVzcyBzcGFjZSBhbmQgc2VjdXJpdHkgc2VsZWN0b3JzLiAqLwotCWlu dGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0JBVENIX0JVRkZFUl9TVEFSVF9HRU44 IHwKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9CQVRDSF9CVUZGRVJfU1RBUlRf R0VOOCB8CiAJCQkJKHBwZ3R0PDw4KSB8CiAJCQkJKGRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQ QVRDSF9SUyA/CiAJCQkJIE1JX0JBVENIX1JFU09VUkNFX1NUUkVBTUVSIDogMCkpOwotCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7Ci0JaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdXBwZXJfMzJfYml0cyhvZmZzZXQpKTsKLQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQlpbnRlbF9sb2dpY2Fs X3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBs b3dlcl8zMl9iaXRzKG9mZnNldCkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIHVw cGVyXzMyX2JpdHMob2Zmc2V0KSk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgTUlf Tk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKIAlyZXR1cm4gMDsK IH0KQEAgLTE3NTQsOCArMTc1NSw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCSAgIHUzMiBpbnZhbGlkYXRlX2Rv bWFpbnMsCiAJCQkgICB1MzIgdW51c2VkKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSByaW5nYnVmLT5lbmdpbmU7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJpbmctPmVu Z2luZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50MzJfdCBj bWQ7CkBAIC0xNzgwLDEzICsxNzgxLDEzIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCWNtZCB8PSBNSV9JTlZBTElE QVRFX0JTRDsKIAl9CiAKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBjbWQpOwot CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsCisJaW50ZWxfbG9naWNhbF9yaW5nX2Vt aXQocmluZywgY21kKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCUk5MTVf R0VNX0hXU19TQ1JBVENIX0FERFIgfAogCQkJCU1JX0ZMVVNIX0RXX1VTRV9HVFQpOwotCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOyAvKiB1cHBlciBhZGRyICovCi0JaW50ZWxf bG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7IC8qIHZhbHVlICovCi0JaW50ZWxfbG9naWNh bF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywg MCk7IC8qIHVwcGVyIGFkZHIgKi8KKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCAwKTsg LyogdmFsdWUgKi8KKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAogCXJldHVy biAwOwogfQpAQCAtMTc5NSw4ICsxNzk2LDggQEAgc3RhdGljIGludCBnZW44X2VtaXRfZmx1c2hf cmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCQkgIHUzMiBp bnZhbGlkYXRlX2RvbWFpbnMsCiAJCQkJICB1MzIgZmx1c2hfZG9tYWlucykKIHsKLQlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcXVlc3QtPnJpbmdidWY7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmluZ2J1Zi0+ZW5naW5lOworCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByaW5nLT5lbmdpbmU7CiAJdTMyIHNjcmF0Y2hfYWRkciA9IGVuZ2luZS0+c2Ny YXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAlib29sIHZmX2ZsdXNoX3dh ID0gZmFsc2U7CiAJdTMyIGZsYWdzID0gMDsKQEAgLTE4MzQsMjEgKzE4MzUsMjEgQEAgc3RhdGlj IGludCBnZW44X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCwKIAkJcmV0dXJuIHJldDsKIAogCWlmICh2Zl9mbHVzaF93YSkgewotCQlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBHRlhfT1BfUElQRV9DT05UUk9MKDYpKTsKLQkJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7Ci0JCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmdidWYsIDApOwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsK LQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgMCk7Ci0JCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmdidWYsIDApOwotCX0KLQotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmdidWYsIEdGWF9PUF9QSVBFX0NPTlRST0woNikpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmdidWYsIGZsYWdzKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBzY3Jh dGNoX2FkZHIpOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQRV9DT05UUk9MKDYpKTsKKwkJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgMCk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmcsIDApOworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCAwKTsKKwkJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgMCk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0 KHJpbmcsIDApOworCX0KKworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIEdGWF9PUF9Q SVBFX0NPTlRST0woNikpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGZsYWdzKTsK KwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBzY3JhdGNoX2FkZHIpOworCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcs IDApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCWludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlKHJpbmcpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xOTA2LDcgKzE5MDcsNyBA QCBzdGF0aWMgaW5saW5lIHUzMiBod3Nfc2Vxbm9fYWRkcmVzcyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAKIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu ZyA9IHJlcXVlc3QtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX2xvZ2ljYWxfcmlu Z19iZWdpbihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwpAQCAtMTkxNiwyMSArMTkxNywy MSBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKIAkvKiB3L2E6IGJpdCA1IG5lZWRzIHRvIGJlIHplcm8gZm9yIE1JX0ZM VVNIX0RXIGFkZHJlc3MuICovCiAJQlVJTERfQlVHX09OKEk5MTVfR0VNX0hXU19JTkRFWF9BRERS ICYgKDEgPDwgNSkpOwogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwKKwlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCShNSV9GTFVTSF9EVyArIDEpIHwgTUlfRkxV U0hfRFdfT1BfU1RPUkVEVyk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwKKwlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCWh3c19zZXFub19hZGRyZXNzKHJlcXVl c3QtPmVuZ2luZSkgfAogCQkJCU1JX0ZMVVNIX0RXX1VTRV9HVFQpOwotCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYs IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcXVlc3QpKTsKLQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCBNSV9VU0VSX0lOVEVSUlVQVCk7Ci0JaW50ZWxfbG9naWNhbF9yaW5n X2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywg MCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZywgaTkxNV9nZW1fcmVxdWVzdF9nZXRf c2Vxbm8ocmVxdWVzdCkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIE1JX1VTRVJf SU5URVJSVVBUKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKIAly ZXR1cm4gaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKIH0K IAogc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gcmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cXVlc3QtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdp bihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwpAQCAtMTk0MSwxNSArMTk0MiwxNSBAQCBz dGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0X3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCiAJICogbmVlZCBhIHByaW9yIENTX1NUQUxMLCB3aGljaCBpcyBlbWl0 dGVkIGJ5IHRoZSBmbHVzaAogCSAqIGZvbGxvd2luZyB0aGUgYmF0Y2guCiAJICovCi0JaW50ZWxf bG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgR0ZYX09QX1BJUEVfQ09OVFJPTCg1KSk7Ci0JaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nLCBHRlhfT1BfUElQRV9DT05UUk9MKDUpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nLAogCQkJCShQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAogCQkJCSBQSVBFX0NPTlRS T0xfQ1NfU1RBTEwgfAogCQkJCSBQSVBFX0NPTlRST0xfUVdfV1JJVEUpKTsKLQlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nYnVmLCBod3Nfc2Vxbm9fYWRkcmVzcyhyZXF1ZXN0LT5lbmdpbmUp KTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsKLQlpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdChyaW5nYnVmLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXF1ZXN0KSk7 Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfVVNFUl9JTlRFUlJVUFQpOwor CWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIGh3c19zZXFub19hZGRyZXNzKHJlcXVlc3Qt PmVuZ2luZSkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmcsIDApOworCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcXVlc3Qp KTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7CiAJ cmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmVxdWVzdCk7CiB9 CiAKQEAgLTIzNTksNyArMjM2MCw3IEBAIHN0YXRpYyB1MzIgaW50ZWxfbHJfaW5kaXJlY3RfY3R4 X29mZnNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiBzdGF0aWMgaW50CiBwb3B1 bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfb2JqLAogCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAotCQkgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCisJCSAgICBzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5naW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKQEAgLTI0MTQsNyArMjQxNSw3IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9v CiAJCSAgICAgICBSSU5HX1NUQVJUKGVuZ2luZS0+bW1pb19iYXNlKSwgMCk7CiAJQVNTSUdOX0NU WF9SRUcocmVnX3N0YXRlLCBDVFhfUklOR19CVUZGRVJfQ09OVFJPTCwKIAkJICAgICAgIFJJTkdf Q1RMKGVuZ2luZS0+bW1pb19iYXNlKSwKLQkJICAgICAgICgocmluZ2J1Zi0+c2l6ZSAtIFBBR0Vf U0laRSkgJiBSSU5HX05SX1BBR0VTKSB8IFJJTkdfVkFMSUQpOworCQkgICAgICAgKChyaW5nLT5z aXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMpIHwgUklOR19WQUxJRCk7CiAJQVNTSUdO X0NUWF9SRUcocmVnX3N0YXRlLCBDVFhfQkJfSEVBRF9VLAogCQkgICAgICAgUklOR19CQkFERFJf VURXKGVuZ2luZS0+bW1pb19iYXNlKSwgMCk7CiAJQVNTSUdOX0NUWF9SRUcocmVnX3N0YXRlLCBD VFhfQkJfSEVBRF9MLApAQCAtMjUxMiwxOSArMjUxMywxOSBAQCB2b2lkIGludGVsX2xyX2NvbnRl eHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQogCWludCBpOwogCiAJZm9yIChpID0g STkxNV9OVU1fRU5HSU5FUzsgLS1pID49IDA7ICkgewotCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2ldLnJpbmdidWY7CisJCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nID0gY3R4LT5lbmdpbmVbaV0ucmluZzsKIAkJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtpXS5zdGF0ZTsKIAogCQlpZiAoIWN0eF9v YmopCiAJCQljb250aW51ZTsKIAogCQlpZiAoY3R4ID09IGN0eC0+aTkxNS0+a2VybmVsX2NvbnRl eHQpIHsKLQkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOworCQkJaW50ZWxf dW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZyk7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKIAkJfQogCiAJCVdBUk5fT04oY3R4LT5lbmdpbmVbaV0ucGluX2NvdW50KTsK LQkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOworCQlpbnRlbF9yaW5nYnVmZmVyX2Zy ZWUocmluZyk7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsK IAl9CiB9CkBAIC0yNjA1LDcgKzI2MDYsNyBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJl ZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmdpbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iajsK IAl1aW50MzJfdCBjb250ZXh0X3NpemU7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWY7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CiAJaW50IHJldDsKIAogCVdBUk5f T04oY3R4LT5sZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSAhPSBOVUxMKTsKQEAgLTI2MjIsMTkgKzI2 MjMsMTkgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCwKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0JcmluZ2J1ZiA9IGludGVs X2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihlbmdpbmUsIDQgKiBQQUdFX1NJWkUpOwotCWlmIChJ U19FUlIocmluZ2J1ZikpIHsKLQkJcmV0ID0gUFRSX0VSUihyaW5nYnVmKTsKKwlyaW5nID0gaW50 ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2luZSwgNCAqIFBBR0VfU0laRSk7CisJaWYg KElTX0VSUihyaW5nKSkgeworCQlyZXQgPSBQVFJfRVJSKHJpbmcpOwogCQlnb3RvIGVycm9yX2Rl cmVmX29iajsKIAl9CiAKLQlyZXQgPSBwb3B1bGF0ZV9scl9jb250ZXh0KGN0eCwgY3R4X29iaiwg ZW5naW5lLCByaW5nYnVmKTsKKwlyZXQgPSBwb3B1bGF0ZV9scl9jb250ZXh0KGN0eCwgY3R4X29i aiwgZW5naW5lLCByaW5nKTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19EUklWRVIoIkZhaWxl ZCB0byBwb3B1bGF0ZSBMUkM6ICVkXG4iLCByZXQpOwogCQlnb3RvIGVycm9yX3JpbmdidWY7CiAJ fQogCi0JY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZiA9IHJpbmdidWY7CisJY3R4LT5l bmdpbmVbZW5naW5lLT5pZF0ucmluZyA9IHJpbmc7CiAJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0u c3RhdGUgPSBjdHhfb2JqOwogCiAJaWYgKGN0eCAhPSBjdHgtPmk5MTUtPmtlcm5lbF9jb250ZXh0 ICYmIGVuZ2luZS0+aW5pdF9jb250ZXh0KSB7CkBAIC0yNjU5LDEwICsyNjYwLDEwIEBAIGludCBp bnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs CiAJcmV0dXJuIDA7CiAKIGVycm9yX3JpbmdidWY6Ci0JaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJp bmdidWYpOworCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nKTsKIGVycm9yX2RlcmVmX29iajoK IAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Ci0JY3R4LT5lbmdp bmVbZW5naW5lLT5pZF0ucmluZ2J1ZiA9IE5VTEw7CisJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0u cmluZyA9IE5VTEw7CiAJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGUgPSBOVUxMOwogCXJl dHVybiByZXQ7CiB9CkBAIC0yNjc3LDggKzI2NzgsOCBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRf cmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9CiAJ CQkJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGU7Ci0JCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmID0KLQkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOworCQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9CisJCQkJY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ucmluZzsKIAkJdWludDMyX3QgKnJlZ19zdGF0ZTsKIAkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAK QEAgLTI2OTcsNyArMjY5OCw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCiAJCWt1bm1hcF9hdG9taWMocmVnX3N0YXRlKTsKIAotCQlyaW5n YnVmLT5oZWFkID0gMDsKLQkJcmluZ2J1Zi0+dGFpbCA9IDA7CisJCXJpbmctPmhlYWQgPSAwOwor CQlyaW5nLT50YWlsID0gMDsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IGEx N2NiMTIyMjFiYS4uY2IxYTJkYjE2Y2QxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAt NjksMjUgKzY5LDI1IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CiAgKgogICogVGhlIHRhaWwgaXMgb25seSB1cGRh dGVkIGluIG91ciBsb2dpY2FsIHJpbmdidWZmZXIgc3RydWN0LgogICovCi1zdGF0aWMgaW5saW5l IHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCitzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2Uo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JcmluZ2J1Zi0+dGFpbCAmPSByaW5n YnVmLT5zaXplIC0gMTsKKwlyaW5nLT50YWlsICY9IHJpbmctPnNpemUgLSAxOwogfQogLyoqCiAg KiBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdCgpIC0gd3JpdGUgYSBEV09SRCB0byB0aGUgcmluZ2J1 ZmZlci4KICAqIEByaW5nYnVmOiBSaW5nYnVmZmVyIHRvIHdyaXRlIHRvLgogICogQGRhdGE6IERX T1JEIHRvIHdyaXRlLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5n X2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCitzdGF0aWMgaW5saW5lIHZv aWQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcs CiAJCQkJCSAgIHUzMiBkYXRhKQogewotCWlvd3JpdGUzMihkYXRhLCByaW5nYnVmLT52aXJ0dWFs X3N0YXJ0ICsgcmluZ2J1Zi0+dGFpbCk7Ci0JcmluZ2J1Zi0+dGFpbCArPSA0OworCWlvd3JpdGUz MihkYXRhLCByaW5nLT52aXJ0dWFsX3N0YXJ0ICsgcmluZy0+dGFpbCk7CisJcmluZy0+dGFpbCAr PSA0OwogfQotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcsCiAJ CQkJCSAgICAgICBpOTE1X3JlZ190IHJlZykKIHsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nYnVmLCBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKTsKKwlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdChyaW5nLCBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKTsKIH0KIAogLyogTG9naWNhbCBS aW5nIENvbnRleHRzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t b2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKaW5kZXggM2M3MjVkZGUx NmVkLi42ZTdlNGNhMGVjN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X21vY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKQEAgLTE5MSw5 ICsxOTEsOSBAQCBzdGF0aWMgaTkxNV9yZWdfdCBtb2NzX3JlZ2lzdGVyKGVudW0gaW50ZWxfZW5n aW5lX2lkIHJpbmcsIGludCBpbmRleCkKICAqLwogc3RhdGljIGludCBlbWl0X21vY3NfY29udHJv bF90YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgICBjb25zdCBz dHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCi0JCQkJICAgZW51bSBpbnRlbF9lbmdp bmVfaWQgcmluZykKKwkJCQkgICBlbnVtIGludGVsX2VuZ2luZV9pZCBlbmdpbmVfaWQpCiB7Ci0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7CisJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CiAJdW5zaWduZWQgaW50IGluZGV4 OwogCWludCByZXQ7CiAKQEAgLTIwNiwxMiArMjA2LDEzIEBAIHN0YXRpYyBpbnQgZW1pdF9tb2Nz X2NvbnRyb2xfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCXJldHVy biByZXQ7CiAJfQogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwKKwlpbnRlbF9s b2dpY2FsX3JpbmdfZW1pdChyaW5nLAogCQkJCU1JX0xPQURfUkVHSVNURVJfSU1NKEdFTjlfTlVN X01PQ1NfRU5UUklFUykpOwogCiAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGFibGUtPnNpemU7 IGluZGV4KyspIHsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIG1vY3Nf cmVnaXN0ZXIocmluZywgaW5kZXgpKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1 ZiwKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmcsCisJCQkJCSAgICBtb2NzX3Jl Z2lzdGVyKGVuZ2luZV9pZCwgaW5kZXgpKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmlu ZywKIAkJCQkJdGFibGUtPnRhYmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKIAl9CiAKQEAgLTIy NCwxMiArMjI1LDEzIEBAIHN0YXRpYyBpbnQgZW1pdF9tb2NzX2NvbnRyb2xfdGFibGUoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJICogdGhhdCB2YWx1ZSB0byBhbGwgdGhlIHVz ZWQgZW50cmllcy4KIAkgKi8KIAlmb3IgKDsgaW5kZXggPCBHRU45X05VTV9NT0NTX0VOVFJJRVM7 IGluZGV4KyspIHsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIG1vY3Nf cmVnaXN0ZXIocmluZywgaW5kZXgpKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1 ZiwgdGFibGUtPnRhYmxlWzBdLmNvbnRyb2xfdmFsdWUpOworCQlpbnRlbF9sb2dpY2FsX3Jpbmdf ZW1pdF9yZWcocmluZywKKwkJCQkJICAgIG1vY3NfcmVnaXN0ZXIoZW5naW5lX2lkLCBpbmRleCkp OworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCB0YWJsZS0+dGFibGVbMF0uY29udHJv bF92YWx1ZSk7CiAJfQogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9P UCk7Ci0JaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJaW50ZWxfbG9naWNh bF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2Uo cmluZyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI0OCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50IGVt aXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog c3RhdGljIGludCBlbWl0X21vY3NfbDNjY190YWJsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwKIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUpCiB7 Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7CisJc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CiAJdW5zaWduZWQgaW50IGNv dW50OwogCXVuc2lnbmVkIGludCBpOwogCXUzMiB2YWx1ZTsKQEAgLTI2NSwxNSArMjY3LDE1IEBA IHN0YXRpYyBpbnQgZW1pdF9tb2NzX2wzY2NfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCiAJCXJldHVybiByZXQ7CiAJfQogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQo cmluZ2J1ZiwKLQkJCU1JX0xPQURfUkVHSVNURVJfSU1NKEdFTjlfTlVNX01PQ1NfRU5UUklFUyAv IDIpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLAorCQkJCU1JX0xPQURfUkVHSVNU RVJfSU1NKEdFTjlfTlVNX01PQ1NfRU5UUklFUyAvIDIpKTsKIAogCWZvciAoaSA9IDAsIGNvdW50 ID0gMDsgaSA8IHRhYmxlLT5zaXplIC8gMjsgaSsrLCBjb3VudCArPSAyKSB7CiAJCXZhbHVlID0g KHRhYmxlLT50YWJsZVtjb3VudF0ubDNjY192YWx1ZSAmIDB4ZmZmZikgfAogCQkJKCh0YWJsZS0+ dGFibGVbY291bnQgKyAxXS5sM2NjX3ZhbHVlICYgMHhmZmZmKSA8PCAxNik7CiAKLQkJaW50ZWxf bG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIEdFTjlfTE5DRkNNT0NTKGkpKTsKLQkJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdmFsdWUpOworCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdF9yZWcocmluZywgR0VOOV9MTkNGQ01PQ1MoaSkpOworCQlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nLCB2YWx1ZSk7CiAJfQogCiAJaWYgKHRhYmxlLT5zaXplICYgMHgwMSkgewpA QCAtMjg5LDE0ICsyOTEsMTQgQEAgc3RhdGljIGludCBlbWl0X21vY3NfbDNjY190YWJsZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkgKiB0aGV5IGFyZSByZXNlcnZlZCBieSB0 aGUgaGFyZHdhcmUuCiAJICovCiAJZm9yICg7IGkgPCBHRU45X05VTV9NT0NTX0VOVFJJRVMgLyAy OyBpKyspIHsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIEdFTjlfTE5D RkNNT0NTKGkpKTsKLQkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgdmFsdWUpOwor CQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZywgR0VOOV9MTkNGQ01PQ1MoaSkpOwor CQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nLCB2YWx1ZSk7CiAKIAkJdmFsdWUgPSBmaWxs ZXI7CiAJfQogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7Ci0J aW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisJaW50ZWxfbG9naWNhbF9yaW5n X2VtaXQocmluZywgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZyk7 CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpp bmRleCBiN2M4ZmMxYTczYTMuLjQyMzdiM2JkNmVhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwpAQCAtNDIsMjEgKzQyLDIxIEBAIGludCBfX2ludGVsX3Jpbmdfc3Bh Y2UoaW50IGhlYWQsIGludCB0YWlsLCBpbnQgc2l6ZSkKIAlyZXR1cm4gc3BhY2UgLSBJOTE1X1JJ TkdfRlJFRV9TUEFDRTsKIH0KIAotdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3ZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JaWYgKHJpbmdidWYtPmxhc3RfcmV0 aXJlZF9oZWFkICE9IC0xKSB7Ci0JCXJpbmdidWYtPmhlYWQgPSByaW5nYnVmLT5sYXN0X3JldGly ZWRfaGVhZDsKLQkJcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKKwlpZiAocmluZy0+ bGFzdF9yZXRpcmVkX2hlYWQgIT0gLTEpIHsKKwkJcmluZy0+aGVhZCA9IHJpbmctPmxhc3RfcmV0 aXJlZF9oZWFkOworCQlyaW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwogCX0KIAotCXJpbmdi dWYtPnNwYWNlID0gX19pbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYtPmhlYWQgJiBIRUFEX0FERFIs Ci0JCQkJCSAgICByaW5nYnVmLT50YWlsLCByaW5nYnVmLT5zaXplKTsKKwlyaW5nLT5zcGFjZSA9 IF9faW50ZWxfcmluZ19zcGFjZShyaW5nLT5oZWFkICYgSEVBRF9BRERSLAorCQkJCQkgICAgcmlu Zy0+dGFpbCwgcmluZy0+c2l6ZSk7CiB9CiAKLWludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQoraW50IGludGVsX3Jpbmdfc3BhY2Uoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZ2J1 Zik7Ci0JcmV0dXJuIHJpbmdidWYtPnNwYWNlOworCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJp bmcpOworCXJldHVybiByaW5nLT5zcGFjZTsKIH0KIAogYm9vbCBpbnRlbF9lbmdpbmVfc3RvcHBl ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC02NywxMSArNjcsMTEgQEAgYm9v bCBpbnRlbF9lbmdpbmVfc3RvcHBlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAK IHN0YXRpYyB2b2lkIF9faW50ZWxfcmluZ19hZHZhbmNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGVuZ2luZS0+ YnVmZmVyOwotCXJpbmdidWYtPnRhaWwgJj0gcmluZ2J1Zi0+c2l6ZSAtIDE7CisJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsKKwlyaW5nLT50YWlsICY9IHJp bmctPnNpemUgLSAxOwogCWlmIChpbnRlbF9lbmdpbmVfc3RvcHBlZChlbmdpbmUpKQogCQlyZXR1 cm47Ci0JZW5naW5lLT53cml0ZV90YWlsKGVuZ2luZSwgcmluZ2J1Zi0+dGFpbCk7CisJZW5naW5l LT53cml0ZV90YWlsKGVuZ2luZSwgcmluZy0+dGFpbCk7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTU1 OSw4ICs1NTksOCBAQCBzdGF0aWMgaW50IGluaXRfcmluZ19jb21tb24oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmdpbmUtPmRl djsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5idWZmZXI7Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHJpbmdidWYtPm9iajsKKwlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+YnVmZmVyOworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSByaW5nLT5vYmo7CiAJaW50IHJldCA9IDA7CiAKIAlpbnRlbF91 bmNvcmVfZm9yY2V3YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CkBAIC02MTAsNyAr NjEwLDcgQEAgc3RhdGljIGludCBpbml0X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAkodm9pZClJOTE1X1JFQURfSEVBRChlbmdpbmUpOwogCiAJSTkxNV9XUklU RV9DVEwoZW5naW5lLAotCQkJKChyaW5nYnVmLT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJf UEFHRVMpCisJCQkoKHJpbmctPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19OUl9QQUdFUykKIAkJ CXwgUklOR19WQUxJRCk7CiAKIAkvKiBJZiB0aGUgaGVhZCBpcyBzdGlsbCBub3QgemVybywgdGhl IHJpbmcgaXMgZGVhZCAqLwpAQCAtNjI5LDEwICs2MjksMTAgQEAgc3RhdGljIGludCBpbml0X3Jp bmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJZ290byBvdXQ7CiAJ fQogCi0JcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKLQlyaW5nYnVmLT5oZWFkID0g STkxNV9SRUFEX0hFQUQoZW5naW5lKTsKLQlyaW5nYnVmLT50YWlsID0gSTkxNV9SRUFEX1RBSUwo ZW5naW5lKSAmIFRBSUxfQUREUjsKLQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsK KwlyaW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOworCXJpbmctPmhlYWQgPSBJOTE1X1JFQURf SEVBRChlbmdpbmUpOworCXJpbmctPnRhaWwgPSBJOTE1X1JFQURfVEFJTChlbmdpbmUpICYgVEFJ TF9BRERSOworCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwogCiAJbWVtc2V0KCZlbmdp bmUtPmhhbmdjaGVjaywgMCwgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrKSk7CiAKQEAgLTIwNjUs MTUgKzIwNjUsMTUgQEAgc3RhdGljIGludCBpbml0X3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiAwOwogfQogCi12b2lkIGludGVsX3VucGlu X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQordm9pZCBp bnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykK IHsKLQlpZiAoSEFTX0xMQyhyaW5nYnVmLT5vYmotPmJhc2UuZGV2KSAmJiAhcmluZ2J1Zi0+b2Jq LT5zdG9sZW4pCi0JCXZ1bm1hcChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0KTsKKwlpZiAoSEFTX0xM QyhyaW5nLT5vYmotPmJhc2UuZGV2KSAmJiAhcmluZy0+b2JqLT5zdG9sZW4pCisJCXZ1bm1hcChy aW5nLT52aXJ0dWFsX3N0YXJ0KTsKIAllbHNlCi0JCWlvdW5tYXAocmluZ2J1Zi0+dmlydHVhbF9z dGFydCk7Ci0JcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IE5VTEw7Ci0JcmluZ2J1Zi0+dm1hID0g TlVMTDsKLQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5vYmopOworCQlpb3Vu bWFwKHJpbmctPnZpcnR1YWxfc3RhcnQpOworCXJpbmctPnZpcnR1YWxfc3RhcnQgPSBOVUxMOwor CXJpbmctPnZtYSA9IE5VTEw7CisJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ocmluZy0+b2Jq KTsKIH0KIAogc3RhdGljIHUzMiAqdm1hcF9vYmooc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaikKQEAgLTIwOTgsMTAgKzIwOTgsMTAgQEAgc3RhdGljIHUzMiAqdm1hcF9vYmooc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIH0KIAogaW50IGludGVsX3Bpbl9hbmRfbWFwX3Jp bmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcmluZ2J1Zi0+b2JqOwor CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSByaW5nLT5vYmo7CiAJaW50IHJldDsK IAogCWlmIChIQVNfTExDKGRldl9wcml2KSAmJiAhb2JqLT5zdG9sZW4pIHsKQEAgLTIxMTUsOCAr MjExNSw4IEBAIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCXJpbmdidWYtPnZpcnR1YWxf c3RhcnQgPSB2bWFwX29iaihvYmopOwotCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBO VUxMKSB7CisJCXJpbmctPnZpcnR1YWxfc3RhcnQgPSB2bWFwX29iaihvYmopOworCQlpZiAocmlu Zy0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihvYmopOwogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KQEAgLTIxMzQsNDIgKzIxMzQsNDMgQEAg aW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCS8qIEFjY2VzcyB0aHJvdWdoIHRoZSBHVFQgcmVxdWlyZXMgdGhlIGRldmljZSB0byBi ZSBhd2FrZS4gKi8KIAkJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKIAotCQly aW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gaW9yZW1hcF93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxl X2Jhc2UgKwotCQkJCQkJICAgIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopLCByaW5nYnVm LT5zaXplKTsKLQkJaWYgKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgeworCQlyaW5n LT52aXJ0dWFsX3N0YXJ0ID0gaW9yZW1hcF93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2Ug KworCQkJCQkJICAgIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopLAorCQkJCQkJICAgIHJp bmctPnNpemUpOworCQlpZiAocmluZy0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7CiAJCQlpOTE1 X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAl9 CiAKLQlyaW5nYnVmLT52bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChvYmopOworCXJpbmctPnZt YSA9IGk5MTVfZ2VtX29ial90b19nZ3R0KG9iaik7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IHZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZikKK3N0YXRpYyB2b2lkIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7Ci0JZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2UoJnJpbmdidWYtPm9iai0+YmFzZSk7Ci0JcmluZ2J1Zi0+b2JqID0gTlVMTDsKKwlkcm1fZ2Vt X29iamVjdF91bnJlZmVyZW5jZSgmcmluZy0+b2JqLT5iYXNlKTsKKwlyaW5nLT5vYmogPSBOVUxM OwogfQogCiBzdGF0aWMgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCi0JCQkJICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYp CisJCQkJICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCiB7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAogCW9iaiA9IE5VTEw7CiAJaWYgKCFIQVNfTExDKGRl dikpCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcmluZ2J1Zi0+ c2l6ZSk7CisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcmluZy0+ c2l6ZSk7CiAJaWYgKG9iaiA9PSBOVUxMKQotCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3Qo ZGV2LCByaW5nYnVmLT5zaXplKTsKKwkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwg cmluZy0+c2l6ZSk7CiAJaWYgKG9iaiA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCS8q IG1hcmsgcmluZyBidWZmZXJzIGFzIHJlYWQtb25seSBmcm9tIEdQVSBzaWRlIGJ5IGRlZmF1bHQg Ki8KIAlvYmotPmd0X3JvID0gMTsKIAotCXJpbmdidWYtPm9iaiA9IG9iajsKKwlyaW5nLT5vYmog PSBvYmo7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyMjUsNyArMjIyNiw3IEBAIGludGVsX3Jpbmdi dWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKIHN0YXRpYyBpbnQgaW50 ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmOworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nOwogCWludCByZXQ7CiAKIAlX QVJOX09OKGVuZ2luZS0+YnVmZmVyKTsKQEAgLTIyNDEsMTIgKzIyNDIsMTIgQEAgc3RhdGljIGlu dCBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlpbml0 X3dhaXRxdWV1ZV9oZWFkKCZlbmdpbmUtPmlycV9xdWV1ZSk7CiAKLQlyaW5nYnVmID0gaW50ZWxf ZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2luZSwgMzIgKiBQQUdFX1NJWkUpOwotCWlmIChJ U19FUlIocmluZ2J1ZikpIHsKLQkJcmV0ID0gUFRSX0VSUihyaW5nYnVmKTsKKwlyaW5nID0gaW50 ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2luZSwgMzIgKiBQQUdFX1NJWkUpOworCWlm IChJU19FUlIocmluZykpIHsKKwkJcmV0ID0gUFRSX0VSUihyaW5nKTsKIAkJZ290byBlcnJvcjsK IAl9Ci0JZW5naW5lLT5idWZmZXIgPSByaW5nYnVmOworCWVuZ2luZS0+YnVmZmVyID0gcmluZzsK IAogCWlmIChJOTE1X05FRURfR0ZYX0hXUyhkZXYpKSB7CiAJCXJldCA9IGluaXRfc3RhdHVzX3Bh Z2UoZW5naW5lKTsKQEAgLTIyNTksMTEgKzIyNjAsMTEgQEAgc3RhdGljIGludCBpbnRlbF9pbml0 X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlnb3RvIGVycm9yOwogCX0K IAotCXJldCA9IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1Zik7 CisJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCByaW5nKTsKIAlp ZiAocmV0KSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIg JXM6ICVkXG4iLAogCQkJCWVuZ2luZS0+bmFtZSwgcmV0KTsKLQkJaW50ZWxfZGVzdHJveV9yaW5n YnVmZmVyX29iaihyaW5nYnVmKTsKKwkJaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihyaW5n KTsKIAkJZ290byBlcnJvcjsKIAl9CiAKQEAgLTIzMTMsMjAgKzIzMTQsMjAgQEAgdm9pZCBpbnRl bF9jbGVhbnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIHN0YXRp YyBpbnQgcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IGludCBuKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5i dWZmZXI7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAJdW5zaWduZWQgc3BhY2U7 CiAJaW50IHJldDsKIAotCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpID49IG4pCisJaWYg KGludGVsX3Jpbmdfc3BhY2UocmluZykgPj0gbikKIAkJcmV0dXJuIDA7CiAKIAkvKiBUaGUgd2hv bGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwotCVdBUk5fT04o cmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwlXQVJOX09OKHJpbmctPnJlc2VydmVkX2luX3Vz ZSk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZlbmdpbmUtPnJlcXVlc3RfbGlz dCwgbGlzdCkgewotCQlzcGFjZSA9IF9faW50ZWxfcmluZ19zcGFjZShyZXF1ZXN0LT5wb3N0Zml4 LCByaW5nYnVmLT50YWlsLAotCQkJCQkgICByaW5nYnVmLT5zaXplKTsKKwkJc3BhY2UgPSBfX2lu dGVsX3Jpbmdfc3BhY2UocmVxdWVzdC0+cG9zdGZpeCwgcmluZy0+dGFpbCwKKwkJCQkJICAgcmlu Zy0+c2l6ZSk7CiAJCWlmIChzcGFjZSA+PSBuKQogCQkJYnJlYWs7CiAJfQpAQCAtMjMzOCwyMiAr MjMzOSwyMiBAQCBzdGF0aWMgaW50IHJpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCBpbnQgbikKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jcmlu Z2J1Zi0+c3BhY2UgPSBzcGFjZTsKKwlyaW5nLT5zcGFjZSA9IHNwYWNlOwogCXJldHVybiAwOwog fQogCi1zdGF0aWMgdm9pZCBfX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYpCitzdGF0aWMgdm9pZCBfX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcpCiB7CiAJdWludDMyX3QgX19pb21lbSAqdmlydDsKLQlpbnQgcmVt ID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CisJaW50IHJlbSA9IHJpbmctPnNpemUg LSByaW5nLT50YWlsOwogCi0JdmlydCA9IHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgKyByaW5nYnVm LT50YWlsOworCXZpcnQgPSByaW5nLT52aXJ0dWFsX3N0YXJ0ICsgcmluZy0+dGFpbDsKIAlyZW0g Lz0gNDsKIAl3aGlsZSAocmVtLS0pCiAJCWlvd3JpdGUzMihNSV9OT09QLCB2aXJ0KyspOwogCi0J cmluZ2J1Zi0+dGFpbCA9IDA7Ci0JaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZ2J1Zik7CisJ cmluZy0+dGFpbCA9IDA7CisJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7CiB9CiAKIGlu dCBpbnRlbF9lbmdpbmVfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC0y Mzc3LDcgKzIzNzgsNyBAQCBpbnQgaW50ZWxfZW5naW5lX2lkbGUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogCiBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiB7Ci0JcmVxdWVzdC0+cmluZ2J1ZiA9 IHJlcXVlc3QtPmVuZ2luZS0+YnVmZmVyOworCXJlcXVlc3QtPnJpbmcgPSByZXF1ZXN0LT5lbmdp bmUtPmJ1ZmZlcjsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjM5MSw0MiArMjM5Miw0NCBAQCBpbnQg aW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx dWVzdCkKIAkgKiBhZGRpbmcgYW55IGNvbW1hbmRzIHRvIGl0IHRoZW4gdGhlcmUgbWlnaHQgbm90 IGFjdHVhbGx5IGJlCiAJICogc3VmZmljaWVudCByb29tIGZvciB0aGUgc3VibWlzc2lvbiBjb21t YW5kcy4KIAkgKi8KLQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUocmVxdWVzdC0+ cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7CisJaW50ZWxfcmluZ19yZXNlcnZl ZF9zcGFjZV9yZXNlcnZlKHJlcXVlc3QtPnJpbmcsCisJCQkJCSAgTUlOX1NQQUNFX0ZPUl9BRERf UkVRVUVTVCk7CiAKIAlyZXR1cm4gaW50ZWxfcmluZ19iZWdpbihyZXF1ZXN0LCAwKTsKIH0KIAot dm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYsIGludCBzaXplKQordm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNl X3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcsCisJCQkJICAgICAgIGludCBz aXplKQogewotCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Ci0JV0FSTl9PTihyaW5n YnVmLT5yZXNlcnZlZF9pbl91c2UpOworCVdBUk5fT04ocmluZy0+cmVzZXJ2ZWRfc2l6ZSk7CisJ V0FSTl9PTihyaW5nLT5yZXNlcnZlZF9pbl91c2UpOwogCi0JcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZSA9IHNpemU7CisJcmluZy0+cmVzZXJ2ZWRfc2l6ZSA9IHNpemU7CiB9CiAKLXZvaWQgaW50ZWxf cmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nKQogewotCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsK KwlXQVJOX09OKHJpbmctPnJlc2VydmVkX2luX3VzZSk7CiAKLQlyaW5nYnVmLT5yZXNlcnZlZF9z aXplICAgPSAwOwotCXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSA9IGZhbHNlOworCXJpbmctPnJl c2VydmVkX3NpemUgICA9IDA7CisJcmluZy0+cmVzZXJ2ZWRfaW5fdXNlID0gZmFsc2U7CiB9CiAK LXZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYpCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewotCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKTsKKwlXQVJOX09OKHJpbmctPnJlc2VydmVkX2luX3VzZSk7CiAKLQlyaW5nYnVmLT5yZXNl cnZlZF9pbl91c2UgPSB0cnVlOwotCXJpbmdidWYtPnJlc2VydmVkX3RhaWwgICA9IHJpbmdidWYt PnRhaWw7CisJcmluZy0+cmVzZXJ2ZWRfaW5fdXNlID0gdHJ1ZTsKKwlyaW5nLT5yZXNlcnZlZF90 YWlsICAgPSByaW5nLT50YWlsOwogfQogCi12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf ZW5kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQordm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKIHsKLQlXQVJO X09OKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwotCWlmIChyaW5nYnVmLT50YWlsID4gcmlu Z2J1Zi0+cmVzZXJ2ZWRfdGFpbCkgewotCQlXQVJOKHJpbmdidWYtPnRhaWwgPiByaW5nYnVmLT5y ZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSwKKwlXQVJOX09OKCFyaW5nLT5y ZXNlcnZlZF9pbl91c2UpOworCWlmIChyaW5nLT50YWlsID4gcmluZy0+cmVzZXJ2ZWRfdGFpbCkg eworCQlXQVJOKHJpbmctPnRhaWwgPiByaW5nLT5yZXNlcnZlZF90YWlsICsgcmluZy0+cmVzZXJ2 ZWRfc2l6ZSwKIAkJICAgICAicmVxdWVzdCByZXNlcnZlZCBzaXplIHRvbyBzbWFsbDogJWQgdnMg JWQhXG4iLAotCQkgICAgIHJpbmdidWYtPnRhaWwgLSByaW5nYnVmLT5yZXNlcnZlZF90YWlsLCBy aW5nYnVmLT5yZXNlcnZlZF9zaXplKTsKKwkJICAgICByaW5nLT50YWlsIC0gcmluZy0+cmVzZXJ2 ZWRfdGFpbCwgcmluZy0+cmVzZXJ2ZWRfc2l6ZSk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogVGhl IHJpbmcgd2FzIHdyYXBwZWQgd2hpbGUgdGhlIHJlc2VydmVkIHNwYWNlIHdhcyBpbiB1c2UuCkBA IC0yNDM5LDIyICsyNDQyLDIyIEBAIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCiAJCSAqLwogCX0KIAotCXJpbmdidWYt PnJlc2VydmVkX3NpemUgICA9IDA7Ci0JcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlID0gZmFsc2U7 CisJcmluZy0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKKwlyaW5nLT5yZXNlcnZlZF9pbl91c2UgPSBm YWxzZTsKIH0KIAogc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsIGludCBieXRlcykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGVuZ2luZS0+YnVmZmVyOwotCWludCByZW1haW5fdXNhYmxlID0gcmluZ2J1 Zi0+ZWZmZWN0aXZlX3NpemUgLSByaW5nYnVmLT50YWlsOwotCWludCByZW1haW5fYWN0dWFsID0g cmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsKKwlpbnQgcmVtYWluX3VzYWJsZSA9IHJpbmctPmVmZmVj dGl2ZV9zaXplIC0gcmluZy0+dGFpbDsKKwlpbnQgcmVtYWluX2FjdHVhbCA9IHJpbmctPnNpemUg LSByaW5nLT50YWlsOwogCWludCByZXQsIHRvdGFsX2J5dGVzLCB3YWl0X2J5dGVzID0gMDsKIAli b29sIG5lZWRfd3JhcCA9IGZhbHNlOwogCi0JaWYgKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSkK KwlpZiAocmluZy0+cmVzZXJ2ZWRfaW5fdXNlKQogCQl0b3RhbF9ieXRlcyA9IGJ5dGVzOwogCWVs c2UKLQkJdG90YWxfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7CisJCXRv dGFsX2J5dGVzID0gYnl0ZXMgKyByaW5nLT5yZXNlcnZlZF9zaXplOwogCiAJaWYgKHVubGlrZWx5 KGJ5dGVzID4gcmVtYWluX3VzYWJsZSkpIHsKIAkJLyoKQEAgLTI0NzAsOSArMjQ3Myw5IEBAIHN0 YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCBpbnQgYnl0ZXMpCiAJCQkgKiBmYWxscyBvZmYgdGhlIGVuZC4gU28gb25seSBuZWVkIHRv IHRvIHdhaXQgZm9yIHRoZQogCQkJICogcmVzZXJ2ZWQgc2l6ZSBhZnRlciBmbHVzaGluZyBvdXQg dGhlIHJlbWFpbmRlci4KIAkJCSAqLwotCQkJd2FpdF9ieXRlcyA9IHJlbWFpbl9hY3R1YWwgKyBy aW5nYnVmLT5yZXNlcnZlZF9zaXplOworCQkJd2FpdF9ieXRlcyA9IHJlbWFpbl9hY3R1YWwgKyBy aW5nLT5yZXNlcnZlZF9zaXplOwogCQkJbmVlZF93cmFwID0gdHJ1ZTsKLQkJfSBlbHNlIGlmICh0 b3RhbF9ieXRlcyA+IHJpbmdidWYtPnNwYWNlKSB7CisJCX0gZWxzZSBpZiAodG90YWxfYnl0ZXMg PiByaW5nLT5zcGFjZSkgewogCQkJLyogTm8gd3JhcHBpbmcgcmVxdWlyZWQsIGp1c3Qgd2FpdGlu Zy4gKi8KIAkJCXdhaXRfYnl0ZXMgPSB0b3RhbF9ieXRlczsKIAkJfQpAQCAtMjQ4NCw3ICsyNDg3 LDcgQEAgc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsIGludCBieXRlcykKIAkJCXJldHVybiByZXQ7CiAKIAkJaWYgKG5lZWRfd3Jh cCkKLQkJCV9fd3JhcF9yaW5nX2J1ZmZlcihyaW5nYnVmKTsKKwkJCV9fd3JhcF9yaW5nX2J1ZmZl cihyaW5nKTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAppbmRleCAzZTQwZjdiZjIxNDcuLmE1ODgxNWNkY2M4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtNDM0LDggKzQzNCw4IEBAIGludGVsX3dyaXRl X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICoKIGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKTsKIGludCBpbnRlbF9waW5fYW5kX21hcF9y aW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwotdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29i aihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7CisJCQkJICAgICBzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyk7Cit2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKIHZvaWQgaW50ZWxfcmluZ2J1ZmZlcl9mcmVl KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKIAogdm9pZCBpbnRlbF9zdG9wX2VuZ2lu ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpAQCAtNDQ4LDkgKzQ0OCw5IEBAIGlu dCBfX211c3RfY2hlY2sgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpOwogc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfZW1pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJICAgdTMyIGRhdGEpCiB7Ci0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBlbmdpbmUtPmJ1ZmZlcjsKLQlpb3dyaXRl MzIoZGF0YSwgcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWwpOwotCXJpbmdi dWYtPnRhaWwgKz0gNDsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+ YnVmZmVyOworCWlvd3JpdGUzMihkYXRhLCByaW5nLT52aXJ0dWFsX3N0YXJ0ICsgcmluZy0+dGFp bCk7CisJcmluZy0+dGFpbCArPSA0OwogfQogc3RhdGljIGlubGluZSB2b2lkIGludGVsX3Jpbmdf ZW1pdF9yZWcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgICAgICBpOTE1 X3JlZ190IHJlZykKQEAgLTQ1OSwxMiArNDU5LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9yaW5nX2VtaXRfcmVnKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIH0KIHN0YXRp YyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gZW5naW5lLT5i dWZmZXI7Ci0JcmluZ2J1Zi0+dGFpbCAmPSByaW5nYnVmLT5zaXplIC0gMTsKKwlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyA9IGVuZ2luZS0+YnVmZmVyOworCXJpbmctPnRhaWwgJj0gcmlu Zy0+c2l6ZSAtIDE7CiB9CiBpbnQgX19pbnRlbF9yaW5nX3NwYWNlKGludCBoZWFkLCBpbnQgdGFp bCwgaW50IHNpemUpOwotdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1Zik7Ci1pbnQgaW50ZWxfcmluZ19zcGFjZShzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1Zik7Cit2b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKK2ludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKIGJvb2wgaW50ZWxfZW5naW5lX3N0b3BwZWQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9lbmdp bmVfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpAQCAtNDg1LDkgKzQ4NSw5 IEBAIHU2NCBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpOwogCiBpbnQgaW5pdF93b3JrYXJvdW5kc19yaW5nKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSk7CiAKLXN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3JpbmdfZ2V0X3RhaWwo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCitzdGF0aWMgaW5saW5lIHUzMiBpbnRl bF9yaW5nX2dldF90YWlsKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKQogewotCXJldHVy biByaW5nYnVmLT50YWlsOworCXJldHVybiByaW5nLT50YWlsOwogfQogCiAvKgpAQCAtNTA0LDEz ICs1MDQsMTQgQEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfdGFpbChzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKICAqIHdpbGwgYWx3YXlzIGhhdmUgc3VmZmljaWVu dCByb29tIHRvIGRvIGl0cyBzdHVmZi4gVGhlIHJlcXVlc3QgY3JlYXRpb24KICAqIGNvZGUgY2Fs bHMgdGhpcyBhdXRvbWF0aWNhbGx5LgogICovCi12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3Bh Y2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpOwor dm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmcsCisJCQkJICAgICAgIGludCBzaXplKTsKIC8qIENhbmNlbCB0aGUgcmVzZXJ2 YXRpb24sIGUuZy4gYmVjYXVzZSB0aGUgcmVxdWVzdCBpcyBiZWluZyBkaXNjYXJkZWQuICovCi12 b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmKTsKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpOwogLyogVXNlIHRoZSByZXNlcnZlZCBzcGFjZSAt IGZvciB1c2UgYnkgaTkxNV9hZGRfcmVxdWVzdCgpIG9ubHkuICovCi12b2lkIGludGVsX3Jpbmdf cmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKK3Zv aWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcpOwogLyogRmluaXNoIHdpdGggdGhlIHJlc2VydmVkIHNwYWNlIC0gZm9yIHVzZSBieSBp OTE1X2FkZF9yZXF1ZXN0KCkgb25seS4gKi8KLXZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFj ZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwordm9pZCBpbnRlbF9yaW5n X3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7CiAKIC8q IExlZ2FjeSByaW5nYnVmZmVyIHNwZWNpZmljIHBvcnRpb24gb2YgcmVzZXJ2YXRpb24gY29kZTog Ki8KIGludCBpbnRlbF9yaW5nX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0KTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK