From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 30/62] drm/i915: Rename struct intel_ringbuffer to struct intel_ring Date: Fri, 3 Jun 2016 17:36:55 +0100 Message-ID: <1464971847-15809-31-git-send-email-chris@chris-wilson.co.uk> References: <1464971847-15809-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 42DB66EE2F for ; Fri, 3 Jun 2016 16:38:05 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id a136so630731wme.0 for ; Fri, 03 Jun 2016 09:38:05 -0700 (PDT) In-Reply-To: <1464971847-15809-1-git-send-email-chris@chris-wilson.co.uk> 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 VGhlIHN0YXRlIHN0b3JlZCBpbiB0aGlzIHN0cnVjdCBpcyBub3Qgb25seSB0aGUgaW5mb3JtYXRp b24gYWJvdXQgdGhlCmJ1ZmZlciBvYmplY3QsIGJ1dCB0aGUgcmluZyB1c2VkIHRvIGNvbW11bmlj YXRlIHdpdGggdGhlIGhhcmR3YXJlLiBVc2luZwpidWZmZXIgaGVyZSBpcyBvdmVybHkgc3BlY2lm aWMgYW5kLCBmb3IgbWUgYXQgbGVhc3QsIGNvbmZsYXRlcyB3aXRoIHRoZQpub3Rpb24gb2YgYnVm ZmVyIG9iamVjdHMgdGhlbXNlbHZlcy4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jICAgICAgICB8ICAxMSArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICAgIHwgIDI0ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8 ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jICAgIHwgICA2 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICB8ICAgOCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgIDE0ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICAxMCArLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICAzNCArKysrLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8IDEyNyArKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgIHwgIDUx ICsrKysrKy0tLS0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMTU5IGluc2VydGlvbnMoKyksIDE2MiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDhkM2JjMmJk NTMyZS4uNDhjOGY3NGU2MjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAt MTQxNSw3ICsxNDE1LDcgQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKIAogCWZvcl9lYWNoX2VuZ2luZV9pZChlbmdpbmUsIGRldl9wcml2LCBpZCkgewotCQlhY3Ro ZFtpZF0gPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOworCQlhY3RoZFtpZF0g PSBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7CiAJCXNlcW5vW2lkXSA9IGlu dGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAl9CiAKQEAgLTIwMTMsMTIgKzIwMTMsMTEg QEAgc3RhdGljIGludCBpOTE1X2dlbV9mcmFtZWJ1ZmZlcl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZGVzY3JpYmVfY3R4 X3JpbmdidWYoc3RydWN0IHNlcV9maWxlICptLAotCQkJCSBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZikKK3N0YXRpYyB2b2lkIGRlc2NyaWJlX2N0eF9yaW5nKHN0cnVjdCBzZXFfZmls ZSAqbSwgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiB7CiAJc2VxX3ByaW50ZihtLCAiIChyaW5n YnVmZmVyLCBzcGFjZTogJWQsIGhlYWQ6ICV1LCB0YWlsOiAldSwgbGFzdCBoZWFkOiAlZCkiLAot CQkgICByaW5nYnVmLT5zcGFjZSwgcmluZ2J1Zi0+aGVhZCwgcmluZ2J1Zi0+dGFpbCwKLQkJICAg cmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQpOworCQkgICByaW5nLT5zcGFjZSwgcmluZy0+aGVh ZCwgcmluZy0+dGFpbCwKKwkJICAgcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQpOwogfQogCiBzdGF0 aWMgaW50IGk5MTVfY29udGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVz ZWQpCkBAIC0yMDYzLDcgKzIwNjIsNyBAQCBzdGF0aWMgaW50IGk5MTVfY29udGV4dF9zdGF0dXMo c3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQlpZiAoY2UtPnN0YXRlKQogCQkJ CWRlc2NyaWJlX29iaihtLCBjZS0+c3RhdGUpOwogCQkJaWYgKGNlLT5yaW5nKQotCQkJCWRlc2Ny aWJlX2N0eF9yaW5nYnVmKG0sIGNlLT5yaW5nKTsKKwkJCQlkZXNjcmliZV9jdHhfcmluZyhtLCBj ZS0+cmluZyk7CiAJCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCBkZTU0YWRiZjU3NjguLmZlMzljZDI1ODRmMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC01MDcsNyArNTA3LDcgQEAgc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlIHsK IAkJYm9vbCB3YWl0aW5nOwogCQlpbnQgbnVtX3dhaXRlcnM7CiAJCWludCBoYW5nY2hlY2tfc2Nv cmU7Ci0JCWVudW0gaW50ZWxfcmluZ19oYW5nY2hlY2tfYWN0aW9uIGhhbmdjaGVja19hY3Rpb247 CisJCWVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gaGFuZ2NoZWNrX2FjdGlvbjsK IAkJaW50IG51bV9yZXF1ZXN0czsKIAogCQkvKiBvdXIgb3duIHRyYWNraW5nIG9mIHJpbmcgaGVh ZCBhbmQgdGFpbCAqLwpAQCAtODgxLDcgKzg4MSw3IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 IHsKIAogCXN0cnVjdCBpbnRlbF9jb250ZXh0IHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKnN0YXRlOwotCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKKwkJc3RydWN0IGlu dGVsX3JpbmcgKnJpbmc7CiAJCXN0cnVjdCBpOTE1X3ZtYSAqbHJjX3ZtYTsKIAkJdWludDMyX3Qg KmxyY19yZWdfc3RhdGU7CiAJCXU2NCBscmNfZGVzYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmlu ZGV4IDhlZGQ3OWFkMDhiNC4uMDM0ZDgxYzU0ZDY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK QEAgLTIyMzAsNyArMjIzMCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9z dGF0dXMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiBzdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZXNldF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKmJ1ZmZlcjsKKwlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZzsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmZW5naW5lLT5hY3RpdmVfbGlzdCkpIHsK IAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKQEAgLTIyNzksMTIgKzIyNzksMTIg QEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfZW5naW5lX2NsZWFudXAoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCSAqIHVwb24gcmVzZXQgaXMgbGVzcyB0aGFuIHdoZW4gd2Ug c3RhcnQuIERvIG9uZSBtb3JlIHBhc3Mgb3ZlcgogCSAqIGFsbCB0aGUgcmluZ2J1ZmZlcnMgdG8g cmVzZXQgbGFzdF9yZXRpcmVkX2hlYWQuCiAJICovCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShidWZm ZXIsICZlbmdpbmUtPmJ1ZmZlcnMsIGxpbmspIHsKLQkJYnVmZmVyLT5sYXN0X3JldGlyZWRfaGVh ZCA9IGJ1ZmZlci0+dGFpbDsKLQkJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UoYnVmZmVyKTsKKwls aXN0X2Zvcl9lYWNoX2VudHJ5KHJpbmcsICZlbmdpbmUtPmJ1ZmZlcnMsIGxpbmspIHsKKwkJcmlu Zy0+bGFzdF9yZXRpcmVkX2hlYWQgPSByaW5nLT50YWlsOworCQlpbnRlbF9yaW5nX3VwZGF0ZV9z cGFjZShyaW5nKTsKIAl9CiAKLQlpbnRlbF9yaW5nX2luaXRfc2Vxbm8oZW5naW5lLCBlbmdpbmUt Pmxhc3Rfc3VibWl0dGVkX3NlcW5vKTsKKwlpbnRlbF9lbmdpbmVfaW5pdF9zZXFubyhlbmdpbmUs IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8pOwogfQogCiB2b2lkIGk5MTVfZ2VtX3Jlc2V0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0yNTc3LDcgKzI1NzcsNyBAQCBfX2k5MTVfZ2Vt X29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIAkJaTkxNV9n ZW1fb2JqZWN0X3JldGlyZV9yZXF1ZXN0KG9iaiwgZnJvbV9yZXEpOwogCX0gZWxzZSB7Ci0JCWlu dCBpZHggPSBpbnRlbF9yaW5nX3N5bmNfaW5kZXgoZnJvbSwgdG8pOworCQlpbnQgaWR4ID0gaW50 ZWxfZW5naW5lX3N5bmNfaW5kZXgoZnJvbSwgdG8pOwogCQl1MzIgc2Vxbm8gPSBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9zZXFubyhmcm9tX3JlcSk7CiAKIAkJV0FSTl9PTighdG9fcmVxKTsKQEAgLTQx NzIsMTMgKzQxNzIsMTMgQEAgaW50IGk5MTVfZ2VtX2luaXRfZW5naW5lcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXJldHVybiAwOwogCiBjbGVhbnVwX3ZlYm94X3Jpbmc6Ci0JaW50ZWxfY2xl YW51cF9lbmdpbmUoJmRldl9wcml2LT5lbmdpbmVbVkVDU10pOworCWludGVsX2VuZ2luZV9jbGVh bnVwKCZkZXZfcHJpdi0+ZW5naW5lW1ZFQ1NdKTsKIGNsZWFudXBfYmx0X3Jpbmc6Ci0JaW50ZWxf Y2xlYW51cF9lbmdpbmUoJmRldl9wcml2LT5lbmdpbmVbQkNTXSk7CisJaW50ZWxfZW5naW5lX2Ns ZWFudXAoJmRldl9wcml2LT5lbmdpbmVbQkNTXSk7CiBjbGVhbnVwX2JzZF9yaW5nOgotCWludGVs X2NsZWFudXBfZW5naW5lKCZkZXZfcHJpdi0+ZW5naW5lW1ZDU10pOworCWludGVsX2VuZ2luZV9j bGVhbnVwKCZkZXZfcHJpdi0+ZW5naW5lW1ZDU10pOwogY2xlYW51cF9yZW5kZXJfcmluZzoKLQlp bnRlbF9jbGVhbnVwX2VuZ2luZSgmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdKTsKKwlpbnRlbF9lbmdp bmVfY2xlYW51cCgmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdKTsKIAogCXJldHVybiByZXQ7CiB9CkBA IC00Mjg2LDggKzQyODYsOCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7CiAJCWRldl9wcml2LT5ndC5leGVj YnVmX3N1Ym1pdCA9IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbjsKIAkJZGV2X3ByaXYt Pmd0LmluaXRfZW5naW5lcyA9IGk5MTVfZ2VtX2luaXRfZW5naW5lczsKLQkJZGV2X3ByaXYtPmd0 LmNsZWFudXBfZW5naW5lID0gaW50ZWxfY2xlYW51cF9lbmdpbmU7Ci0JCWRldl9wcml2LT5ndC5z dG9wX2VuZ2luZSA9IGludGVsX3N0b3BfZW5naW5lOworCQlkZXZfcHJpdi0+Z3QuY2xlYW51cF9l bmdpbmUgPSBpbnRlbF9lbmdpbmVfY2xlYW51cDsKKwkJZGV2X3ByaXYtPmd0LnN0b3BfZW5naW5l ID0gaW50ZWxfZW5naW5lX3N0b3A7CiAJfSBlbHNlIHsKIAkJZGV2X3ByaXYtPmd0LmV4ZWNidWZf c3VibWl0ID0gaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb247CiAJCWRldl9wcml2LT5ndC5pbml0 X2VuZ2luZXMgPSBpbnRlbF9sb2dpY2FsX3JpbmdzX2luaXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKaW5kZXggN2U0NWU3Y2RiNTM4Li4xM2I5MzRhYjRhOGEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTE3NCw3ICsxNzQsNyBAQCB2 b2lkIGk5MTVfZ2VtX2NvbnRleHRfZnJlZShzdHJ1Y3Qga3JlZiAqY3R4X3JlZikKIAogCQlXQVJO X09OKGNlLT5waW5fY291bnQpOwogCQlpZiAoY2UtPnJpbmcpCi0JCQlpbnRlbF9yaW5nYnVmZmVy X2ZyZWUoY2UtPnJpbmcpOworCQkJaW50ZWxfcmluZ19mcmVlKGNlLT5yaW5nKTsKIAogCQlpOTE1 X2dlbV9vYmplY3RfcHV0KGNlLT5zdGF0ZSk7CiAJfQpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0YXRp YyBpbmxpbmUgaW50CiBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSwgdTMyIGh3X2ZsYWdzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHJlcS0+aTkxNTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu ZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAl1MzIgZmxhZ3MgPSBo d19mbGFncyB8IE1JX01NX1NQQUNFX0dUVDsKIAljb25zdCBpbnQgbnVtX3JpbmdzID0KIAkJLyog VXNlIGFuIGV4dGVuZGVkIHcvYSBvbiBpdmIrIGlmIHNpZ25hbGxpbmcgZnJvbSBvdGhlciByaW5n cyAqLwpAQCAtNjE0LDcgKzYxNCw3IEBAIG1pX3NldF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLCB1MzIgaHdfZmxhZ3MpCiBzdGF0aWMgaW50IHJlbWFwX2wzKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc2xpY2UpCiB7CiAJdTMyICpyZW1hcF9p bmZvID0gcmVxLT5pOTE1LT5sM19wYXJpdHkucmVtYXBfaW5mb1tzbGljZV07Ci0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJp bmcgPSByZXEtPnJpbmc7CiAJaW50IGksIHJldDsKIAogCWlmICghcmVtYXBfaW5mbykKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCAyNDZiZDcwYzBjOWYu LjE4NmU0NjZmOTMyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwpAQCAtOTcxLDcgKzk3MSw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19ncHUo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJLyogVW5jb25kaXRpb25hbGx5IGlu dmFsaWRhdGUgZ3B1IGNhY2hlcyBhbmQgZW5zdXJlIHRoYXQgd2UgZG8gZmx1c2gKIAkgKiBhbnkg cmVzaWR1YWwgd3JpdGVzIGZyb20gdGhlIHByZXZpb3VzIGJhdGNoLgogCSAqLwotCXJldHVybiBp bnRlbF9yaW5nX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhyZXEpOworCXJldHVybiBpbnRlbF9lbmdp bmVfaW52YWxpZGF0ZV9hbGxfY2FjaGVzKHJlcSk7CiB9CiAKIHN0YXRpYyBib29sCkBAIC0xMTQw LDcgKzExNDAsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21tYW5kcyhzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKQogc3RhdGljIGludAogaTkxNV9yZXNldF9n ZW43X3NvbF9vZmZzZXRzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewotCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwogCWludCByZXQsIGk7CiAKIAlpZiAoIUlTX0dFTjcocmVx LT5pOTE1KSB8fCByZXEtPmVuZ2luZS0+aWQgIT0gUkNTKSB7CkBAIC0xMjcwLDcgKzEyNzAsNyBA QCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9w YXJhbXMgKnBhcmFtcywKIAogCWlmIChwYXJhbXMtPmVuZ2luZS0+aWQgPT0gUkNTICYmCiAJICAg IGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Ci0JCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcGFyYW1zLT5yZXF1ZXN0LT5yaW5nOworCQlz dHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZzsKIAogCQlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7CiAJCWlmIChyZXQpCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGIwYTY0NGNlZGUyMC4uNmE2ZTY5YTM4OTRm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNjY5LDcgKzY2OSw3IEBAIHN0 YXRpYyBpbnQgZ2VuOF93cml0ZV9wZHAoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs CiAJCQkgIHVuc2lnbmVkIGVudHJ5LAogCQkJICBkbWFfYWRkcl90IGFkZHIpCiB7Ci0Jc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3Jpbmcg KnJpbmcgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCUJVR19PTihlbnRyeSA+PSA0KTsKQEAg LTE2NjAsNyArMTY2MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBnZXRfcGRfb2Zmc2V0KHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCkKIHN0YXRpYyBpbnQgaHN3X21tX3N3aXRjaChzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQsCiAJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEp CiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0 IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCS8qIE5COiBUTEJz IG11c3QgYmUgZmx1c2hlZCBhbmQgaW52YWxpZGF0ZWQgYmVmb3JlIGEgc3dpdGNoICovCkBAIC0x Njk5LDcgKzE2OTksNyBAQCBzdGF0aWMgaW50IHZncHVfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwKIHN0YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdf cHBndHQgKnBwZ3R0LAogCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsK LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJLyogTkI6IFRMQnMgbXVz dCBiZSBmbHVzaGVkIGFuZCBpbnZhbGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwppbmRleCBjNmE3YTc5ODRmMWYuLjU4ZDg0YjE1 MzgxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwpAQCAtMTU1LDcg KzE1NSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1faW5pdF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzZXFubykKIAogCS8qIEZpbmFsbHkgcmVzZXQgaHcgc3Rh dGUgKi8KIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKLQkJaW50ZWxfcmluZ19p bml0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOworCQlpbnRlbF9lbmdpbmVfaW5pdF9zZXFubyhlbmdp bmUsIHNlcW5vKTsKIAogCXJldHVybiAwOwogfQpAQCAtNDE1LDcgKzQxNSw3IEBAIHZvaWQgX19p OTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJ CWJvb2wgZmx1c2hfY2FjaGVzKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZzsKIAl1MzIgcmVxdWVzdF9zdGFydDsKIAl1MzIgcmVzZXJ2ZWRfdGFpbDsKIAlpbnQgcmV0OwpA QCAtNDQ2LDcgKzQ0Niw3IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKIAkJ CXJldCA9IGxvZ2ljYWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHJlcXVlc3QpOwogCQllbHNlCi0J CQlyZXQgPSBpbnRlbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMocmVxdWVzdCk7CisJCQlyZXQgPSBp bnRlbF9lbmdpbmVfZmx1c2hfYWxsX2NhY2hlcyhyZXF1ZXN0KTsKIAkJLyogTm90IGFsbG93ZWQg dG8gZmFpbCEgKi8KIAkJV0FSTihyZXQsICIqX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyBmYWlsZWQ6 ICVkIVxuIiwgcmV0KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgK aW5kZXggOTEzNTY1ZmJiMGUzLi41MDBhZTYwNjY4NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZXF1ZXN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0IHsKIAkgKi8KIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsK KwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKIAlzdHJ1Y3QgaW50ZWxfc2lnbmFsX25vZGUgc2ln bmFsaW5nOwogCiAJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jCmluZGV4IGI5MzQ5ODZiYjExNy4uOTM0NjYzMTY2YjI4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTIyMSw3ICsyMjEsNyBAQCBzdGF0aWMgdm9p ZCBwcmludF9lcnJvcl9idWZmZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0s CiAJfQogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqaGFuZ2NoZWNrX2FjdGlvbl90b19zdHIoZW51 bSBpbnRlbF9yaW5nX2hhbmdjaGVja19hY3Rpb24gYSkKK3N0YXRpYyBjb25zdCBjaGFyICpoYW5n Y2hlY2tfYWN0aW9uX3RvX3N0cihlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIGEp CiB7CiAJc3dpdGNoIChhKSB7CiAJY2FzZSBIQU5HQ0hFQ0tfSURMRToKQEAgLTg4MSw3ICs4ODEs NyBAQCBzdGF0aWMgdm9pZCBnZW44X3JlY29yZF9zZW1hcGhvcmVfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlzaWduYWxfb2Zmc2V0ID0gKEdFTjhfU0lHTkFMX09G RlNFVChlbmdpbmUsIGlkKSAmIChQQUdFX1NJWkUgLSAxKSkKIAkJCQkvIDQ7CiAJCXRtcCA9IGVy cm9yLT5zZW1hcGhvcmVfb2JqLT5wYWdlc1swXTsKLQkJaWR4ID0gaW50ZWxfcmluZ19zeW5jX2lu ZGV4KGVuZ2luZSwgdG8pOworCQlpZHggPSBpbnRlbF9lbmdpbmVfc3luY19pbmRleChlbmdpbmUs IHRvKTsKIAogCQllcmluZy0+c2VtYXBob3JlX21ib3hlc1tpZHhdID0gdG1wW3NpZ25hbF9vZmZz ZXRdOwogCQllcmluZy0+c2VtYXBob3JlX3NlcW5vW2lkeF0gPSBlbmdpbmUtPnNlbWFwaG9yZS5z eW5jX3NlcW5vW2lkeF07CkBAIC05ODEsNyArOTgxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9yZWNv cmRfcmluZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAllcmlu Zy0+d2FpdGluZyA9IGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2luZSk7CiAJZXJpbmctPmlu c3RwbSA9IEk5MTVfUkVBRChSSU5HX0lOU1RQTShlbmdpbmUtPm1taW9fYmFzZSkpOwotCWVyaW5n LT5hY3RoZCA9IGludGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7CisJZXJpbmctPmFj dGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwogCWVyaW5nLT5zZXFu byA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKIAllcmluZy0+bGFzdF9zZXFubyA9 IGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm87CiAJZXJpbmctPnN0YXJ0ID0gSTkxNV9SRUFE X1NUQVJUKGVuZ2luZSk7CkBAIC0xMDg5LDcgKzEwODksNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dl bV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXF1 ZXN0ID0gaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwogCQlpZiAocmVxdWVz dCkgewogCQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07Ci0JCQlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZzsKKwkJCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwogCiAJCQl2bSA9 IHJlcXVlc3QtPmN0eCAmJiByZXF1ZXN0LT5jdHgtPnBwZ3R0ID8KIAkJCQkmcmVxdWVzdC0+Y3R4 LT5wcGd0dC0+YmFzZSA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA0MjE0OTE1MzUxMGUu LjFmZmM5OTdiMTlhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0yOTg5LDcgKzI5ODks NyBAQCBzdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJcmV0dXJuIHN0dWNrOwogfQogCi1zdGF0aWMgZW51bSBpbnRlbF9yaW5nX2hhbmdj aGVja19hY3Rpb24KK3N0YXRpYyBlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uCiBo ZWFkX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQogewog CWlmIChhY3RoZCAhPSBlbmdpbmUtPmhhbmdjaGVjay5hY3RoZCkgewpAQCAtMzAwNywxMSArMzAw NywxMSBAQCBoZWFkX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFj dGhkKQogCXJldHVybiBIQU5HQ0hFQ0tfSFVORzsKIH0KIAotc3RhdGljIGVudW0gaW50ZWxfcmlu Z19oYW5nY2hlY2tfYWN0aW9uCi1yaW5nX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwgdTY0IGFjdGhkKQorc3RhdGljIGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rp b24KK2VuZ2luZV9zdHVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHU2NCBhY3Ro ZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7 Ci0JZW51bSBpbnRlbF9yaW5nX2hhbmdjaGVja19hY3Rpb24gaGE7CisJZW51bSBpbnRlbF9lbmdp bmVfaGFuZ2NoZWNrX2FjdGlvbiBoYTsKIAl1MzIgdG1wOwogCiAJaGEgPSBoZWFkX3N0dWNrKGVu Z2luZSwgYWN0aGQpOwpAQCAtMzEyMCw3ICszMTIwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5n Y2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWlmIChlbmdpbmUtPmly cV9zZXFub19iYXJyaWVyKQogCQkJZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihlbmdpbmUpOwog Ci0JCWFjdGhkID0gaW50ZWxfcmluZ19nZXRfYWN0aXZlX2hlYWQoZW5naW5lKTsKKwkJYWN0aGQg PSBpbnRlbF9lbmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7CiAJCXNlcW5vID0gaW50ZWxf ZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwogCiAJCS8qIFJlc2V0IHN0dWNrIGludGVycnVwdHMg YmV0d2VlbiBiYXRjaCBhZHZhbmNlcyAqLwpAQCAtMzE1MCw4ICszMTUwLDggQEAgc3RhdGljIHZv aWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkJ ICogYmVpbmcgcmVwZWF0ZWRseSBraWNrZWQgYW5kIHNvIHJlc3BvbnNpYmxlCiAJCQkJICogZm9y IHN0YWxsaW5nIHRoZSBtYWNoaW5lLgogCQkJCSAqLwotCQkJCWVuZ2luZS0+aGFuZ2NoZWNrLmFj dGlvbiA9IHJpbmdfc3R1Y2soZW5naW5lLAotCQkJCQkJCQkgICAgICBhY3RoZCk7CisJCQkJZW5n aW5lLT5oYW5nY2hlY2suYWN0aW9uID0KKwkJCQkJZW5naW5lX3N0dWNrKGVuZ2luZSwgYWN0aGQp OwogCiAJCQkJc3dpdGNoIChlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb24pIHsKIAkJCQljYXNlIEhB TkdDSEVDS19JRExFOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDJkYWZi ZmJjODEzNC4uNjNjZmQzMThiY2QzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CkBAIC0xMTE3NCw3ICsxMTE3NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9mbGlw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLAogCQkJCSB1aW50MzJfdCBmbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 CiAJdTMyIGZsaXBfbWFzazsKIAlpbnQgcmV0OwpAQCAtMTEyMDgsNyArMTEyMDgsNyBAQCBzdGF0 aWMgaW50IGludGVsX2dlbjNfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ CSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3Mp CiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0 IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXUzMiBmbGlwX21hc2s7CiAJaW50IHJldDsK QEAgLTExMjM5LDcgKzExMjM5LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW40X3F1ZXVlX2ZsaXAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCiAJCQkJIHVpbnQzMl90IGZsYWdzKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5n OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwog CXVpbnQzMl90IHBmLCBwaXBlc3JjOwpAQCAtMTEyNzcsNyArMTEyNzcsNyBAQCBzdGF0aWMgaW50 IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7Ci0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVs X3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdWludDMyX3QgcGYsIHBpcGVzcmM7CkBAIC0xMTMxMiw3 ICsxMTMxMiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuN19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJ CSB1aW50MzJfdCBmbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdWludDMyX3Qg cGxhbmVfYml0ID0gMDsKIAlpbnQgbGVuLCByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IDE0ZTM0MzdkOTA3NC4uZmQwOTNlZmZmZTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtNzQ1LDcgKzc0NSw3IEBAIGVycl91bnBpbjoKIHN0YXRpYyBpbnQKIGludGVsX2xvZ2lj YWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxdWVzdC0+cmlu ZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CiAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwogCiAJaW50ZWxfcmluZ19h ZHZhbmNlKHJpbmcpOwpAQCAtODAyLDcgKzgwMiw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3Vi bWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCXN0cnVjdCBk cm1fZGV2aWNlICAgICAgICpkZXYgPSBwYXJhbXMtPmRldjsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSBwYXJhbXMtPmVuZ2luZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcGFyYW1zLT5yZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0g cGFyYW1zLT5yZXF1ZXN0LT5yaW5nOwogCXU2NCBleGVjX3N0YXJ0OwogCWludCBpbnN0cF9tb2Rl OwogCXUzMiBpbnN0cF9tYXNrOwpAQCAtOTU0LDcgKzk1NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf bHJfY29udGV4dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogCWxyY19yZWdf c3RhdGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKIAotCXJldCA9IGludGVs X3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldl9wcml2LCBjZS0+cmluZyk7CisJcmV0ID0g aW50ZWxfcGluX2FuZF9tYXBfcmluZyhkZXZfcHJpdiwgY2UtPnJpbmcpOwogCWlmIChyZXQpCiAJ CWdvdG8gdW5waW5fbWFwOwogCkBAIC05OTIsNyArOTkyLDcgQEAgdm9pZCBpbnRlbF9scl9jb250 ZXh0X3VucGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJaWYgKC0tY2UtPnBpbl9j b3VudCkKIAkJcmV0dXJuOwogCi0JaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooY2UtPnJpbmcp OworCWludGVsX3VucGluX3JpbmcoY2UtPnJpbmcpOwogCiAJaTkxNV9nZW1fb2JqZWN0X3VucGlu X21hcChjZS0+c3RhdGUpOwogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGNlLT5zdGF0ZSk7 CkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3Jr YXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCWludCBy ZXQsIGk7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7Ci0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVs X3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJc3RydWN0IGk5MTVfd29ya2Fyb3VuZHMgKncgPSAm cmVxLT5pOTE1LT53b3JrYXJvdW5kczsKIAogCWlmICh3LT5jb3VudCA9PSAwKQpAQCAtMTUwMyw3 ICsxNTAzLDcgQEAgc3RhdGljIGludCBnZW45X2luaXRfcmVuZGVyX3Jpbmcoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9w ZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCXN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCA9IHJlcS0+Y3R4LT5wcGd0dDsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKIAljb25zdCBpbnQgbnVtX2xyaV9jbWRzID0gR0VOOF9MRUdBQ1lfUERQRVMgKiAyOwogCWlu dCBpLCByZXQ7CiAKQEAgLTE1MzAsNyArMTUzMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNh bF9yaW5nX2VtaXRfcGRwcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHN0YXRp YyBpbnQgZ2VuOF9lbWl0X2JiX3N0YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAogCQkJICAgICAgdTY0IG9mZnNldCwgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCiB7Ci0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3Jp bmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJYm9vbCBwcGd0dCA9ICEoZGlzcGF0Y2hfZmxhZ3MgJiBJ OTE1X0RJU1BBVENIX1NFQ1VSRSk7CiAJaW50IHJldDsKIApAQCAtMTU4Nyw4ICsxNTg3LDggQEAg c3RhdGljIGludCBnZW44X2VtaXRfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0LAogCQkJICAgdTMyIGludmFsaWRhdGVfZG9tYWlucywKIAkJCSAgIHUzMiB1bnVzZWQp CiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOwotCXVp bnQzMl90IGNtZDsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CisJ dTMyIGNtZDsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXF1ZXN0LCA0 KTsKQEAgLTE2MjUsNyArMTYyNSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRl cihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJCQkJICB1MzIgaW52YWxp ZGF0ZV9kb21haW5zLAogCQkJCSAgdTMyIGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpy aW5nID0gcmVxdWVzdC0+cmluZzsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBy ZXF1ZXN0LT5lbmdpbmU7CiAJdTMyIHNjcmF0Y2hfYWRkciA9IGVuZ2luZS0+c2NyYXRjaC5ndHRf b2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAlib29sIHZmX2ZsdXNoX3dhID0gZmFsc2U7 CkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBzdGF0aWMgdm9pZCBieHRfYV9zZXFub19iYXJyaWVyKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIGludCBnZW44X2VtaXRfcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiB7Ci0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5n ICpyaW5nID0gcmVxdWVzdC0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19i ZWdpbihyZXF1ZXN0LCA2ICsgV0FfVEFJTF9EV09SRFMpOwpAQCAtMTczMCw3ICsxNzMwLDcgQEAg c3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpCiAKIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3RfcmVuZGVyKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXF1 ZXN0LT5yaW5nOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcXVlc3Qs IDggKyBXQV9UQUlMX0RXT1JEUyk7CkBAIC0yMjI0LDcgKzIyMjQsNyBAQCBzdGF0aWMgaW50CiBw b3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCSAgICBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKIAkJICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKLQkJICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQorCQkgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gY3R4LT5pOTE1OwogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0 dCA9IGN0eC0+cHBndHQ7CkBAIC0yMjc3LDcgKzIyNzcsNyBAQCBwb3B1bGF0ZV9scl9jb250ZXh0 KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCSAgICAgICBSSU5HX1NUQVJUKGVuZ2lu ZS0+bW1pb19iYXNlKSwgMCk7CiAJQVNTSUdOX0NUWF9SRUcocmVnX3N0YXRlLCBDVFhfUklOR19C VUZGRVJfQ09OVFJPTCwKIAkJICAgICAgIFJJTkdfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSwKLQkJ ICAgICAgICgocmluZ2J1Zi0+c2l6ZSAtIFBBR0VfU0laRSkgJiBSSU5HX05SX1BBR0VTKSB8IFJJ TkdfVkFMSUQpOworCQkgICAgICAgKChyaW5nLT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJf UEFHRVMpIHwgUklOR19WQUxJRCk7CiAJQVNTSUdOX0NUWF9SRUcocmVnX3N0YXRlLCBDVFhfQkJf SEVBRF9VLAogCQkgICAgICAgUklOR19CQkFERFJfVURXKGVuZ2luZS0+bW1pb19iYXNlKSwgMCk7 CiAJQVNTSUdOX0NUWF9SRUcocmVnX3N0YXRlLCBDVFhfQkJfSEVBRF9MLApAQCAtMjQxOCw3ICsy NDE4LDcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpj dHhfb2JqOwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtlbmdpbmUt PmlkXTsKIAl1aW50MzJfdCBjb250ZXh0X3NpemU7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CiAJaW50IHJldDsKIAogCVdBUk5fT04o Y2UtPnN0YXRlKTsKQEAgLTI0MzQsNyArMjQzNCw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2Nv bnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJcmV0 dXJuIFBUUl9FUlIoY3R4X29iaik7CiAJfQogCi0JcmluZyA9IGludGVsX2VuZ2luZV9jcmVhdGVf cmluZ2J1ZmZlcihlbmdpbmUsIDQgKiBQQUdFX1NJWkUpOworCXJpbmcgPSBpbnRlbF9lbmdpbmVf Y3JlYXRlX3JpbmcoZW5naW5lLCA0ICogUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJSKHJpbmcpKSB7 CiAJCXJldCA9IFBUUl9FUlIocmluZyk7CiAJCWdvdG8gZXJyb3JfZGVyZWZfb2JqOwpAQCAtMjQ1 Myw3ICsyNDUzLDcgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxv YyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCXJldHVybiAwOwogCiBlcnJvcl9yaW5n YnVmOgotCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nKTsKKwlpbnRlbF9yaW5nX2ZyZWUocmlu Zyk7CiBlcnJvcl9kZXJlZl9vYmo6CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChjdHhfb2JqKTsKIAlj ZS0+cmluZyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t b2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKaW5kZXggNGI0NGJiY2Zk N2NkLi45ZWJiZmNhNjI4YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X21vY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKQEAgLTIzMSw3 ICsyMzEsNyBAQCBpbnQgaW50ZWxfbW9jc19pbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiBzdGF0aWMgaW50IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9t b2NzX3RhYmxlICp0YWJsZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBlbmdpbmUgPSByZXEtPmVuZ2luZS0+aWQ7CiAJdW5zaWduZWQgaW50IGlu ZGV4OwogCWludCByZXQ7CkBAIC0yOTEsNyArMjkxLDcgQEAgc3RhdGljIGlubGluZSB1MzIgbDNj Y19jb21iaW5lKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKIHN0YXRp YyBpbnQgZW1pdF9tb2NzX2wzY2NfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsCiAJCQkJY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlKQogewotCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwogCXVuc2lnbmVkIGludCBpOwogCWludCByZXQ7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCBmOWMwNjJmZWEzOWYuLmZlOWRhNjBk ODA2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpAQCAtMjM1LDcgKzIzNSw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9vbihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1 OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JD U107CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Ci0Jc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CiAJaW50IHJldDsKIAog CVdBUk5fT04ob3ZlcmxheS0+YWN0aXZlKTsKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW50 IGludGVsX292ZXJsYXlfY29udGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3ZlcmxheS0+aTkxNTsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdOwogCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwogCXUzMiBmbGlwX2FkZHIgPSBvdmVy bGF5LT5mbGlwX2FkZHI7CiAJdTMyIHRtcDsKIAlpbnQgcmV0OwpAQCAtMzQwLDcgKzM0MCw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9vZmYoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJs YXkpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3ZlcmxheS0+aTkxNTsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1Nd OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwogCXUzMiBmbGlwX2FkZHIg PSBvdmVybGF5LT5mbGlwX2FkZHI7CiAJaW50IHJldDsKIApAQCAtNDI2LDcgKzQyNiw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3RydWN0IGludGVsX292ZXJs YXkgKm92ZXJsYXkpCiAJaWYgKEk5MTVfUkVBRChJU1IpICYgSTkxNV9PVkVSTEFZX1BMQU5FX0ZM SVBfUEVORElOR19JTlRFUlJVUFQpIHsKIAkJLyogc3luY2hyb25vdXMgc2xvd3BhdGggKi8KIAkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Ci0JCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nOworCQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKIAogCQlyZXEgPSBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgTlVMTCk7CiAJCWlmIChJU19FUlIocmVxKSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBhYjQ5OGVjY2UxY2EuLjk0Mjcx MWNkNTQ5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNDcs NyArNDcsNyBAQCBpbnQgX19pbnRlbF9yaW5nX3NwYWNlKGludCBoZWFkLCBpbnQgdGFpbCwgaW50 IHNpemUpCiAJcmV0dXJuIHNwYWNlIC0gSTkxNV9SSU5HX0ZSRUVfU1BBQ0U7CiB9CiAKLXZvaWQg aW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYp Cit2b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVm KQogewogCWlmIChyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCAhPSAtMSkgewogCQlyaW5nYnVm LT5oZWFkID0gcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQ7CkBAIC02MCw5ICs2MCw5IEBAIHZv aWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCiAKIHN0YXRpYyB2b2lkIF9faW50ZWxfZW5naW5lX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBl bmdpbmUtPmJ1ZmZlcjsKLQlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOwotCWVu Z2luZS0+d3JpdGVfdGFpbChlbmdpbmUsIHJpbmdidWYtPnRhaWwpOworCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gZW5naW5lLT5idWZmZXI7CisJcmluZy0+dGFpbCAmPSByaW5nLT5zaXplIC0g MTsKKwllbmdpbmUtPndyaXRlX3RhaWwoZW5naW5lLCByaW5nLT50YWlsKTsKIH0KIAogc3RhdGlj IGludApAQCAtNzAsNyArNzAsNyBAQCBnZW4yX3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICAgdTMyCWludmFsaWRhdGVfZG9tYWlucywK IAkJICAgICAgIHUzMglmbHVzaF9kb21haW5zKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5n OwogCXUzMiBjbWQ7CiAJaW50IHJldDsKIApAQCAtOTcsNyArOTcsNyBAQCBnZW40X3JlbmRlcl9y aW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICAgdTMy CWludmFsaWRhdGVfZG9tYWlucywKIAkJICAgICAgIHUzMglmbHVzaF9kb21haW5zKQogewotCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwogCXUzMiBjbWQ7CiAJaW50IHJldDsKIApAQCAtMTg3LDcg KzE4Nyw3IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCiBzdGF0aWMgaW50CiBpbnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx LT5yaW5nOwogCXUzMiBzY3JhdGNoX2FkZHIgPQogCSAgICAgICAJcmVxLT5lbmdpbmUtPnNjcmF0 Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7CiAJaW50IHJldDsKQEAgLTIyNCw3 ICsyMjQsNyBAQCBzdGF0aWMgaW50CiBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICAgdTMyIGludmFsaWRhdGVfZG9tYWlucywg dTMyIGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBy ZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJdTMyIHNj cmF0Y2hfYWRkciA9CiAJICAgICAgIAlyZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsg MiAqIENBQ0hFTElORV9CWVRFUzsKIAl1MzIgZmxhZ3MgPSAwOwpAQCAtMjc3LDcgKzI3Nyw3IEBA IGdlbjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs CiBzdGF0aWMgaW50CiBnZW43X3JlbmRlcl9yaW5nX2NzX3N0YWxsX3dhKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0g cmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwogCWludCBy ZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7CkBAIC0yOTksNyArMjk5LDcg QEAgc3RhdGljIGludAogZ2VuN19yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKIAkJICAgICAgIHUzMiBpbnZhbGlkYXRlX2RvbWFpbnMsIHUzMiBmbHVz aF9kb21haW5zKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5n OworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwogCXUzMiBzY3JhdGNoX2Fk ZHIgPQogCSAgICAgICAJcmVxLT5lbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNI RUxJTkVfQllURVM7CiAJdTMyIGZsYWdzID0gMDsKQEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMg aW50CiBnZW44X2VtaXRfcGlwZV9jb250cm9sKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCQkgICAgICAgdTMyIGZsYWdzLCB1MzIgc2NyYXRjaF9hZGRyKQogewotCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpy aW5nID0gcmVxLT5yaW5nOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJl cSwgNik7CkBAIC00MjcsNyArNDI3LDcgQEAgc3RhdGljIHZvaWQgcmluZ193cml0ZV90YWlsKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlJOTE1X1dSSVRFX1RBSUwoZW5naW5lLCB2 YWx1ZSk7CiB9CiAKLXU2NCBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCit1NjQgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCXU2NCBhY3RoZDsKQEAgLTU1Myw4ICs1NTMsOCBA QCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiBzdGF0aWMgaW50IGluaXRfcmluZ19jb21tb24oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVu Z2luZS0+aTkxNTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGVuZ2luZS0+ YnVmZmVyOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSByaW5nYnVmLT5vYmo7 CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBlbmdpbmUtPmJ1ZmZlcjsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcmluZy0+b2JqOwogCWludCByZXQgPSAwOwogCiAJaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwpAQCAtNjA0 LDcgKzYwNCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiAJKHZvaWQpSTkxNV9SRUFEX0hFQUQoZW5naW5lKTsKIAogCUk5MTVf V1JJVEVfQ1RMKGVuZ2luZSwKLQkJCSgocmluZ2J1Zi0+c2l6ZSAtIFBBR0VfU0laRSkgJiBSSU5H X05SX1BBR0VTKQorCQkJKChyaW5nLT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMp CiAJCQl8IFJJTkdfVkFMSUQpOwogCiAJLyogSWYgdGhlIGhlYWQgaXMgc3RpbGwgbm90IHplcm8s IHRoZSByaW5nIGlzIGRlYWQgKi8KQEAgLTYyMywxMCArNjIzLDEwIEBAIHN0YXRpYyBpbnQgaW5p dF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWdvdG8gb3V0 OwogCX0KIAotCXJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkID0gLTE7Ci0JcmluZ2J1Zi0+aGVh ZCA9IEk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7Ci0JcmluZ2J1Zi0+dGFpbCA9IEk5MTVfUkVBRF9U QUlMKGVuZ2luZSkgJiBUQUlMX0FERFI7Ci0JaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZ2J1 Zik7CisJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKKwlyaW5nLT5oZWFkID0gSTkxNV9S RUFEX0hFQUQoZW5naW5lKTsKKwlyaW5nLT50YWlsID0gSTkxNV9SRUFEX1RBSUwoZW5naW5lKSAm IFRBSUxfQUREUjsKKwlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsKIAogCWludGVsX2Vu Z2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwogCkBAIC02ODAsNyArNjgwLDcgQEAgZXJyOgog CiBzdGF0aWMgaW50IGludGVsX3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3Qg aTkxNV93b3JrYXJvdW5kcyAqdyA9ICZyZXEtPmk5MTUtPndvcmthcm91bmRzOwogCWludCByZXQs IGk7CiAKQEAgLTY4OCw3ICs2ODgsNyBAQCBzdGF0aWMgaW50IGludGVsX3Jpbmdfd29ya2Fyb3Vu ZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJcmV0dXJuIDA7CiAK IAlyZXEtPmVuZ2luZS0+Z3B1X2NhY2hlc19kaXJ0eSA9IHRydWU7Ci0JcmV0ID0gaW50ZWxfcmlu Z19mbHVzaF9hbGxfY2FjaGVzKHJlcSk7CisJcmV0ID0gaW50ZWxfZW5naW5lX2ZsdXNoX2FsbF9j YWNoZXMocmVxKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC03MDYsNyArNzA2LDcg QEAgc3RhdGljIGludCBpbnRlbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCiAJcmVxLT5l bmdpbmUtPmdwdV9jYWNoZXNfZGlydHkgPSB0cnVlOwotCXJldCA9IGludGVsX3JpbmdfZmx1c2hf YWxsX2NhY2hlcyhyZXEpOworCXJldCA9IGludGVsX2VuZ2luZV9mbHVzaF9hbGxfY2FjaGVzKHJl cSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTI0Miw3ICsxMjQyLDcgQEAgc3Rh dGljIGludCBnZW44X3Jjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWdu YWxsZXJfcmVxLAogCQkJICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCiB7CiAjZGVmaW5lIE1C T1hfVVBEQVRFX0RXT1JEUyA4Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnNpZ25hbGxlciA9 IHNpZ25hbGxlcl9yZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnNpZ25hbGxlciA9IHNp Z25hbGxlcl9yZXEtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g c2lnbmFsbGVyX3JlcS0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICp3YWl0ZXI7CiAJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CkBAIC0xMjgyLDcgKzEyODIsNyBAQCBzdGF0aWMgaW50 IGdlbjhfeGNzX3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9y ZXEsCiAJCQkgICB1bnNpZ25lZCBpbnQgbnVtX2R3b3JkcykKIHsKICNkZWZpbmUgTUJPWF9VUERB VEVfRFdPUkRTIDYKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2lnbmFsbGVyID0gc2lnbmFs bGVyX3JlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqc2lnbmFsbGVyID0gc2lnbmFsbGVy X3JlcS0+cmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzaWduYWxs ZXJfcmVxLT5pOTE1OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKndhaXRlcjsKIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKQEAgLTEzMTksNyArMTMxOSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF94 Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKIHN0 YXRpYyBpbnQgZ2VuNl9zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxs ZXJfcmVxLAogCQkgICAgICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCiB7Ci0Jc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnNpZ25hbGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmc7CisJc3RydWN0 IGludGVsX3JpbmcgKnNpZ25hbGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmc7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc2lnbmFsbGVyX3JlcS0+aTkxNTsKIAlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICp1c2VsZXNzOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwpAQCAt MTM2Myw3ICsxMzYzLDcgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCiBzdGF0aWMgaW50CiBnZW42X2FkZF9yZXF1ZXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx LT5yaW5nOwogCWludCByZXQ7CiAKIAlpZiAocmVxLT5lbmdpbmUtPnNlbWFwaG9yZS5zaWduYWwp CkBAIC0xMzg3LDcgKzEzODcsNyBAQCBzdGF0aWMgaW50CiBnZW44X3JlbmRlcl9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSByZXEtPmVuZ2luZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsK IAlpbnQgcmV0OwogCiAJaWYgKGVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCkKQEAgLTE0MzIsNyAr MTQzMiw3IEBAIGdlbjhfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2Fp dGVyX3JlcSwKIAkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyLAogCSAg ICAgICB1MzIgc2Vxbm8pCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKndhaXRlciA9IHdh aXRlcl9yZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKndhaXRlciA9IHdhaXRlcl9yZXEt PnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gd2FpdGVyX3JlcS0+ aTkxNTsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQ7CiAJaW50IHJldDsKQEAgLTE0Njks NyArMTQ2OSw3IEBAIGdlbjZfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq d2FpdGVyX3JlcSwKIAkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyLAog CSAgICAgICB1MzIgc2Vxbm8pCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKndhaXRlciA9 IHdhaXRlcl9yZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKndhaXRlciA9IHdhaXRlcl9y ZXEtPnJpbmc7CiAJdTMyIGR3MSA9IE1JX1NFTUFQSE9SRV9NQk9YIHwKIAkJICBNSV9TRU1BUEhP UkVfQ09NUEFSRSB8CiAJCSAgTUlfU0VNQVBIT1JFX1JFR0lTVEVSOwpAQCAtMTYwMyw3ICsxNjAz LDcgQEAgYnNkX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJ ICAgICAgIHUzMiAgICAgaW52YWxpZGF0ZV9kb21haW5zLAogCSAgICAgICB1MzIgICAgIGZsdXNo X2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7 CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCXJl dCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKQEAgLTE2MTksNyArMTYxOSw3IEBAIGJzZF9y aW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogc3RhdGljIGludAog aTl4eF9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxf cmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19i ZWdpbihyZXEsIDQpOwpAQCAtMTY5Nyw3ICsxNjk3LDcgQEAgaTk2NV9kaXNwYXRjaF9leGVjYnVm ZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJIHU2NCBvZmZzZXQsIHUz MiBsZW5ndGgsCiAJCQkgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCiB7Ci0Jc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVsX3JpbmcgKnJpbmcg PSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAy KTsKQEAgLTE3MjQsNyArMTcyNCw3IEBAIGk4MzBfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCSB1NjQgb2Zmc2V0LCB1MzIgbGVuLAogCQkJ IHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwog CXUzMiBjc19vZmZzZXQgPSByZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0OwogCWludCBy ZXQ7CiAKQEAgLTE3ODYsNyArMTc4Niw3IEBAIGk5MTVfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCSB1NjQgb2Zmc2V0LCB1MzIgbGVuLAog CQkJIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQogewotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5n OwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7CkBAIC0xODk0 LDcgKzE4OTQsNyBAQCBzdGF0aWMgaW50IGluaXRfcGh5c19zdGF0dXNfcGFnZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaW50ZWxfdW5waW5f cmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCit2b2lkIGlu dGVsX3VucGluX3Jpbmcoc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCiB7CiAJR0VNX0JVR19P TihyaW5nYnVmLT52bWEgPT0gTlVMTCk7CiAJR0VNX0JVR19PTihyaW5nYnVmLT52YWRkciA9PSBO VUxMKTsKQEAgLTE5MDksOCArMTkwOSw4IEBAIHZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9v Ymooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCiAJcmluZ2J1Zi0+dm1hID0gTlVM TDsKIH0KIAotaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmKQoraW50IGludGVsX3Bpbl9hbmRfbWFwX3Jpbmcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCiB7CiAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHJpbmdidWYtPm9iajsKIAkvKiBSaW5n IHdyYXBhcm91bmQgYXQgb2Zmc2V0IDAgc29tZXRpbWVzIGhhbmdzLiBObyBpZGVhIHdoeS4gKi8K QEAgLTE5NjEsMTQgKzE5NjEsMTQgQEAgZXJyX3VucGluOgogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyB2b2lkIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpCitzdGF0aWMgdm9pZCBpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKQogewogCWk5MTVfZ2VtX29iamVjdF9wdXQocmlu Z2J1Zi0+b2JqKTsKIAlyaW5nYnVmLT5vYmogPSBOVUxMOwogfQogCiBzdGF0aWMgaW50IGludGVs X2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICAg c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCisJCQkJICAgICAgc3RydWN0IGludGVs X3JpbmcgKnJpbmdidWYpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIApA QCAtMTk4OCwxMCArMTk4OCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJf b2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICoKLWludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKQorc3RydWN0IGludGVsX3JpbmcgKgoraW50 ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50 IHNpemUpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7CisJc3RydWN0IGludGVs X3JpbmcgKnJpbmc7CiAJaW50IHJldDsKIAogCXJpbmcgPSBremFsbG9jKHNpemVvZigqcmluZyks IEdGUF9LRVJORUwpOwpAQCAtMjAyOSw3ICsyMDI5LDcgQEAgaW50ZWxfZW5naW5lX2NyZWF0ZV9y aW5nYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCiB9CiAK IHZvaWQKLWludGVsX3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu ZykKK2ludGVsX3JpbmdfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKIHsKIAlpbnRlbF9k ZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmcpOwogCWxpc3RfZGVsKCZyaW5nLT5saW5rKTsKQEAg LTIwOTEsNyArMjA5MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9lbmdpbmUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu Z2J1ZjsKIAlpbnQgcmV0OwogCiAJV0FSTl9PTihlbmdpbmUtPmJ1ZmZlcik7CkBAIC0yMTE5LDcg KzIxMTksNyBAQCBzdGF0aWMgaW50IGludGVsX2luaXRfZW5naW5lKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJaWYgKHJldCkKIAkJZ290byBlcnJvcjsKIAotCXJpbmdidWYgPSBpbnRlbF9lbmdp bmVfY3JlYXRlX3JpbmdidWZmZXIoZW5naW5lLCAzMiAqIFBBR0VfU0laRSk7CisJcmluZ2J1ZiA9 IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhlbmdpbmUsIDMyICogUEFHRV9TSVpFKTsKIAlpZiAo SVNfRVJSKHJpbmdidWYpKSB7CiAJCXJldCA9IFBUUl9FUlIocmluZ2J1Zik7CiAJCWdvdG8gZXJy b3I7CkBAIC0yMTM3LDcgKzIxMzcsNyBAQCBzdGF0aWMgaW50IGludGVsX2luaXRfZW5naW5lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlnb3RvIGVycm9yOwogCX0KIAotCXJldCA9IGludGVs X3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldl9wcml2LCByaW5nYnVmKTsKKwlyZXQgPSBp bnRlbF9waW5fYW5kX21hcF9yaW5nKGRldl9wcml2LCByaW5nYnVmKTsKIAlpZiAocmV0KSB7CiAJ CURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAog CQkJCWVuZ2luZS0+bmFtZSwgcmV0KTsKQEAgLTIxNTIsMTEgKzIxNTIsMTEgQEAgc3RhdGljIGlu dCBpbnRlbF9pbml0X2VuZ2luZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiAwOwog CiBlcnJvcjoKLQlpbnRlbF9jbGVhbnVwX2VuZ2luZShlbmdpbmUpOworCWludGVsX2VuZ2luZV9j bGVhbnVwKGVuZ2luZSk7CiAJcmV0dXJuIHJldDsKIH0KIAotdm9pZCBpbnRlbF9jbGVhbnVwX2Vu Z2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit2b2lkIGludGVsX2VuZ2luZV9j bGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXY7CiAKQEAgLTIxNjYsMTEgKzIxNjYsMTEgQEAgdm9pZCBpbnRl bF9jbGVhbnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZGV2X3By aXYgPSBlbmdpbmUtPmk5MTU7CiAKIAlpZiAoZW5naW5lLT5idWZmZXIpIHsKLQkJaW50ZWxfc3Rv cF9lbmdpbmUoZW5naW5lKTsKKwkJaW50ZWxfZW5naW5lX3N0b3AoZW5naW5lKTsKIAkJV0FSTl9P TighSVNfR0VOMihkZXZfcHJpdikgJiYgKEk5MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBNT0RFX0lE TEUpID09IDApOwogCi0JCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKGVuZ2luZS0+YnVmZmVy KTsKLQkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKGVuZ2luZS0+YnVmZmVyKTsKKwkJaW50ZWxfdW5w aW5fcmluZyhlbmdpbmUtPmJ1ZmZlcik7CisJCWludGVsX3JpbmdfZnJlZShlbmdpbmUtPmJ1ZmZl cik7CiAJCWVuZ2luZS0+YnVmZmVyID0gTlVMTDsKIAl9CiAKQEAgLTIyMzMsNyArMjIzMyw3IEBA IGludCBpbnRlbF9yaW5nX2FsbG9jX3JlcXVlc3RfZXh0cmFzKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKIAogc3RhdGljIGludCB3YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IGJ5dGVzKQogewotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx LT5yaW5nOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5lOwog CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdGFyZ2V0OwogCkBAIC0yMjc4LDcgKzIyNzgs NyBAQCBzdGF0aWMgaW50IHdhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLCBpbnQgYnl0ZXMpCiAKIGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgbnVtX2R3b3JkcykKIHsKLQlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJl cS0+cmluZzsKIAlpbnQgcmVtYWluX2FjdHVhbCA9IHJpbmctPnNpemUgLSByaW5nLT50YWlsOwog CWludCByZW1haW5fdXNhYmxlID0gcmluZy0+ZWZmZWN0aXZlX3NpemUgLSByaW5nLT50YWlsOwog CWludCBieXRlcyA9IG51bV9kd29yZHMgKiBzaXplb2YodTMyKTsKQEAgLTIzMzUsNyArMjMzNSw3 IEBAIGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LCBpbnQgbnVtX2R3b3JkcykKIC8qIEFsaWduIHRoZSByaW5nIHRhaWwgdG8gYSBjYWNoZWxpbmUg Ym91bmRhcnkgKi8KIGludCBpbnRlbF9yaW5nX2NhY2hlbGluZV9hbGlnbihzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9 IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAlpbnQg bnVtX2R3b3JkcyA9CiAJICAgICAgIAkocmluZy0+dGFpbCAmIChDQUNIRUxJTkVfQllURVMgLSAx KSkgLyBzaXplb2YodWludDMyX3QpOwogCWludCByZXQ7CkBAIC0yMzU2LDcgKzIzNTYsNyBAQCBp bnQgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgaW50ZWxfcmluZ19pbml0X3NlcW5vKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKQordm9pZCBpbnRlbF9lbmdpbmVf aW5pdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzZXFubykKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CiAKQEAg LTI0MjksNyArMjQyOSw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfYnNkX3Jpbmdfd3JpdGVfdGFpbChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBzdGF0aWMgaW50IGdlbjZfYnNkX3Jpbmdf Zmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkgICAgICAgdTMyIGlu dmFsaWRhdGUsIHUzMiBmbHVzaCkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9 IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKIAl1aW50 MzJfdCBjbWQ7CiAJaW50IHJldDsKIApAQCAtMjQ3NSw3ICsyNDc1LDcgQEAgZ2VuOF9yaW5nX2Rp c3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkg ICAgICB1NjQgb2Zmc2V0LCB1MzIgbGVuLAogCQkJICAgICAgdW5zaWduZWQgZGlzcGF0Y2hfZmxh Z3MpCiB7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJYm9vbCBwcGd0dCA9IFVTRVNfUFBH VFQocmVxLT5pOTE1KSAmJgogCQkJIShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VD VVJFKTsKIAlpbnQgcmV0OwpAQCAtMjUwMSw3ICsyNTAxLDcgQEAgaHN3X3JpbmdfZGlzcGF0Y2hf ZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCSAgICAgdTY0 IG9mZnNldCwgdTMyIGxlbiwKIAkJCSAgICAgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCiB7Ci0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0IGludGVs X3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmVxLCAyKTsKQEAgLTI1MjYsNyArMjUyNiw3IEBAIGdlbjZfcmluZ19kaXNwYXRjaF9l eGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJICAgICAgdTY0 IG9mZnNldCwgdTMyIGxlbiwKIAkJCSAgICAgIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQogewot CXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRl bF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJlcSwgMik7CkBAIC0yNTQ5LDcgKzI1NDksNyBAQCBnZW42X3JpbmdfZGlzcGF0Y2hf ZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIHN0YXRpYyBpbnQg Z2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJICAg dTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkKIHsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsK IAl1aW50MzJfdCBjbWQ7CiAJaW50IHJldDsKIApAQCAtMjk0Miw3ICsyOTQyLDcgQEAgaW50IGlu dGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIH0KIAog aW50Ci1pbnRlbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCitpbnRlbF9lbmdpbmVfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBy ZXEtPmVuZ2luZTsKIAlpbnQgcmV0OwpAQCAtMjk2MSw3ICsyOTYxLDcgQEAgaW50ZWxfcmluZ19m bHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogfQogCiBp bnQKLWludGVsX3JpbmdfaW52YWxpZGF0ZV9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQoraW50ZWxfZW5naW5lX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSByZXEtPmVuZ2luZTsKIAl1aW50MzJfdCBmbHVzaF9kb21haW5zOwpAQCAtMjk4MSw4 ICsyOTgxLDcgQEAgaW50ZWxfcmluZ19pbnZhbGlkYXRlX2FsbF9jYWNoZXMoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQKLWludGVsX3N0b3Bf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3ZvaWQgaW50ZWxfZW5naW5l X3N0b3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCWludCByZXQ7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAzYTRlZDk3YjU2M2YuLmRl MGJjNjZhZjQwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAt NzQsNyArNzQsNyBAQCBzdHJ1Y3QgIGludGVsX2h3X3N0YXR1c19wYWdlIHsKIAkoZSktPnNlbWFw aG9yZS5zaWduYWxfZ2d0dFsoZSktPmlkXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7IFwK IAl9IHdoaWxlKDApCiAKLWVudW0gaW50ZWxfcmluZ19oYW5nY2hlY2tfYWN0aW9uIHsKK2VudW0g aW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gewogCUhBTkdDSEVDS19JRExFID0gMCwKIAlI QU5HQ0hFQ0tfV0FJVCwKIAlIQU5HQ0hFQ0tfQUNUSVZFLApAQCAtODQsMTcgKzg0LDE3IEBAIGVu dW0gaW50ZWxfcmluZ19oYW5nY2hlY2tfYWN0aW9uIHsKIAogI2RlZmluZSBIQU5HQ0hFQ0tfU0NP UkVfUklOR19IVU5HIDMxCiAKLXN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVjayB7CitzdHJ1Y3Qg aW50ZWxfZW5naW5lX2hhbmdjaGVjayB7CiAJdTY0IGFjdGhkOwogCXUzMiBzZXFubzsKIAl1bnNp Z25lZCB1c2VyX2ludGVycnVwdHM7CiAJaW50IHNjb3JlOwotCWVudW0gaW50ZWxfcmluZ19oYW5n Y2hlY2tfYWN0aW9uIGFjdGlvbjsKKwllbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9u IGFjdGlvbjsKIAlpbnQgZGVhZGxvY2s7CiAJdTMyIGluc3Rkb25lW0k5MTVfTlVNX0lOU1RET05F X1JFR107CiB9OwogCi1zdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciB7CitzdHJ1Y3QgaW50ZWxfcmlu ZyB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAl2b2lkICp2YWRkcjsKIAlz dHJ1Y3QgaTkxNV92bWEgKnZtYTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzIHsKIAl1bnNpZ25lZCBpbnQgZ3VjX2lkOyAvKiBYWFggc2FtZSBhcyBod19pZD8gKi8K IAl1bnNpZ25lZCBmZW5jZV9jb250ZXh0OwogCXUzMgkJbW1pb19iYXNlOwotCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpidWZmZXI7CisJc3RydWN0IGludGVsX3JpbmcgKmJ1ZmZlcjsKIAlzdHJ1 Y3QgbGlzdF9oZWFkIGJ1ZmZlcnM7CiAKIAkvKiBSYXRoZXIgdGhhbiBoYXZlIGV2ZXJ5IGNsaWVu dCB3YWl0IHVwb24gYWxsIHVzZXIgaW50ZXJydXB0cywKQEAgLTMzOCw3ICszMzgsNyBAQCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpsYXN0X2Nv bnRleHQ7CiAKLQlzdHJ1Y3QgaW50ZWxfcmluZ19oYW5nY2hlY2sgaGFuZ2NoZWNrOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIGhhbmdjaGVjazsKIAogCXN0cnVjdCB7CiAJCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CkBAIC0zODUsOCArMzg1LDggQEAgaW50ZWxfZW5n aW5lX2ZsYWcoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogfQogCiBzdGF0 aWMgaW5saW5lIHUzMgotaW50ZWxfcmluZ19zeW5jX2luZGV4KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKLQkJICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqb3RoZXIpCitpbnRl bF9lbmdpbmVfc3luY19pbmRleChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpvdGhlcikKIHsKIAlpbnQgaWR4OwogCkBAIC00NDgsNDEg KzQ0OCw0MCBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAjZGVmaW5lIEk5MTVfR0VNX0hXU19TQ1JBVENIX0lOREVYCTB4NDAKICNkZWZp bmUgSTkxNV9HRU1fSFdTX1NDUkFUQ0hfQUREUiAoSTkxNV9HRU1fSFdTX1NDUkFUQ0hfSU5ERVgg PDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpCiAKLXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICoKLWludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsIGludCBzaXplKTsKLWludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29i aihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICBzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Ci12b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKLXZvaWQgaW50ZWxfcmluZ2J1ZmZl cl9mcmVlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nKTsKK3N0cnVjdCBpbnRlbF9yaW5n ICoKK2ludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsIGludCBzaXplKTsKK2ludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgIHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKTsKK3Zv aWQgaW50ZWxfdW5waW5fcmluZyhzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyk7Cit2b2lkIGludGVs X3JpbmdfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyk7CiAKLXZvaWQgaW50ZWxfc3RvcF9l bmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLXZvaWQgaW50ZWxfY2xlYW51 cF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK3ZvaWQgaW50ZWxfZW5n aW5lX3N0b3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK3ZvaWQgaW50ZWxfZW5n aW5lX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogaW50IGludGVs X3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KTsKIAogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgbik7CiBpbnQgX19tdXN0X2NoZWNrIGludGVsX3Jp bmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKLXN0 YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcsIHUzMiBkYXRhKQorc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfZW1pdChzdHJ1 Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIGRhdGEpCiB7CiAJKih1aW50MzJfdCAqKShyaW5nLT52 YWRkciArIHJpbmctPnRhaWwpID0gZGF0YTsKIAlyaW5nLT50YWlsICs9IDQ7CiB9Ci1zdGF0aWMg aW5saW5lIHZvaWQgaW50ZWxfcmluZ19lbWl0X3JlZyhzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZywKLQkJCQkgICAgICAgaTkxNV9yZWdfdCByZWcpCitzdGF0aWMgaW5saW5lIHZvaWQgaW50 ZWxfcmluZ19lbWl0X3JlZyhzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgaTkxNV9yZWdfdCByZWcp CiB7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZykpOwog fQotc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZykKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcpCiB7CiAJcmluZy0+dGFpbCAmPSByaW5nLT5zaXplIC0gMTsK IH0KIGludCBfX2ludGVsX3Jpbmdfc3BhY2UoaW50IGhlYWQsIGludCB0YWlsLCBpbnQgc2l6ZSk7 Ci12b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmKTsKK3ZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3Jpbmcg KnJpbmdidWYpOwogCiBpbnQgX19tdXN0X2NoZWNrIGludGVsX2VuZ2luZV9pZGxlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci12b2lkIGludGVsX3JpbmdfaW5pdF9zZXFubyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzZXFubyk7Ci1pbnQgaW50ZWxfcmluZ19m bHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKLWludCBp bnRlbF9yaW5nX2ludmFsaWRhdGVfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSk7Cit2b2lkIGludGVsX2VuZ2luZV9pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKTsKK2ludCBpbnRlbF9lbmdpbmVfZmx1c2hfYWxsX2Nh Y2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CitpbnQgaW50ZWxfZW5naW5l X2ludmFsaWRhdGVfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7 CiAKIGludCBpbnRlbF9pbml0X3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIGludCBzaXplKTsKIHZvaWQgaW50ZWxfZmluaV9waXBlX2NvbnRyb2woc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKQEAgLTQ5Myw3ICs0OTIsNyBAQCBpbnQgaW50ZWxfaW5p dF9ic2QyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGludGVsX2lu aXRfYmx0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGludGVsX2lu aXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKLXU2NCBpbnRl bF9yaW5nX2dldF9hY3RpdmVfaGVhZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwor dTY0IGludGVsX2VuZ2luZV9nZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKTsKIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19w YWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYKTsKQEAgLTUwMSw3ICs1MDAsNyBAQCBzdGF0 aWMgaW5saW5lIHUzMiBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAogaW50IGluaXRfd29ya2Fyb3VuZHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwogCi1zdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9yaW5nX2dldF90YWls KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQorc3RhdGljIGlubGluZSB1MzIgaW50 ZWxfcmluZ19nZXRfdGFpbChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZikKIHsKIAlyZXR1cm4g cmluZ2J1Zi0+dGFpbDsKIH0KLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK