From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 11/14] drm/i915: Perform automated conversions for plane uapi/hw split, base -> hw. Date: Thu, 24 Oct 2019 14:48:02 +0200 Message-ID: <20191024124805.26840-11-maarten.lankhorst@linux.intel.com> References: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 991B06E3D2 for ; Thu, 24 Oct 2019 12:48:11 +0000 (UTC) In-Reply-To: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U3BsaXQgdXAgcGxhbmVfc3RhdGUtPmJhc2UgdG8gaHcuIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUg Zm9sbG93aW5nIHBhdGNoOgoKQEAKc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpUOwppZGVudGlm aWVyIHggPX4gIl4oY3J0Y3xmYnxhbHBoYXxwaXhlbF9ibGVuZF9tb2RlfHJvdGF0aW9ufGNvbG9y X2VuY29kaW5nfGNvbG9yX3JhbmdlKSQiOwpAQAotVC0+YmFzZS54CitULT5ody54CgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8 ICAgNiArLQogLi4uL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIHwg ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAx MjcgKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2ZiYy5jICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf b3ZlcmxheS5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9z cHJpdGUuYyAgIHwgIDc2ICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jICAgICAgICAgICAgICAgfCAgMzYgKystLS0KIDcgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2Vy dGlvbnMoKyksIDEzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9hdG9taWMuYwppbmRleCAyNjZkMGNlOWQwM2QuLjliYTUwZmQxMTE2YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCkBAIC0yOTYsOSArMjk2 LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcihzdHJ1Y3QgaW50ZWxf Y3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGEKIAkJcmV0dXJuOwogCiAJLyogc2V0IHNjYWxl ciBtb2RlICovCi0JaWYgKHBsYW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT5iYXNlLmZiICYmCi0J ICAgIHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmlzX3l1diAmJgotCSAgICBwbGFuZV9z dGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5udW1fcGxhbmVzID4gMSkgeworCWlmIChwbGFuZV9zdGF0 ZSAmJiBwbGFuZV9zdGF0ZS0+aHcuZmIgJiYKKwkgICAgcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3Jt YXQtPmlzX3l1diAmJgorCSAgICBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+bnVtX3BsYW5l cyA+IDEpIHsKIAkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgOSkgJiYKIAkJ ICAgICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggMGRiMjBkYTc3ODFjLi5mZDVh ODAxMjg1OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWNfcGxhbmUuYwpAQCAtMTE4LDcgKzExOCw3IEBAIGludGVsX3BsYW5lX2Rlc3Ryb3lfc3Rh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiB1bnNpZ25lZCBpbnQgaW50ZWxfcGxhbmVfZGF0 YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAg IGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAl1bnNp Z25lZCBpbnQgY3BwOwogCiAJaWYgKCFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKQpAQCAtMTQ0 LDcgKzE0NCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCiAJCQkJCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUgPSB0b19pbnRlbF9wbGFuZShuZXdfcGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiOwor CWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5ody5m YjsKIAlpbnQgcmV0OwogCiAJbmV3X2NydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChw bGFuZS0+aWQpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hl Y2tfd2l0aF9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCiAJ bmV3X2NydGNfc3RhdGUtPmRhdGFfcmF0ZVtwbGFuZS0+aWRdID0gMDsKIAluZXdfcGxhbmVfc3Rh dGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCi0JaWYgKCFuZXdfcGxhbmVfc3RhdGUtPmJhc2Uu Y3J0YyAmJiAhb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMpCisJaWYgKCFuZXdfcGxhbmVfc3Rh dGUtPmh3LmNydGMgJiYgIW9sZF9wbGFuZV9zdGF0ZS0+aHcuY3J0YykKIAkJcmV0dXJuIDA7CiAK IAlyZXQgPSBwbGFuZS0+Y2hlY2tfcGxhbmUobmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0 ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4 IDI2Zjg2OTg5ZjY1Mi4uYjY4OWJhZWJiNGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjIwMiw3ICsyMjAyLDcgQEAgdTMyIGludGVsX2Zi X3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqc3RhdGUsCiAJCQkgIGludCBjb2xvcl9wbGFuZSkKIHsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmh3LmZiOwogCXVuc2lnbmVkIGludCBjcHAgPSBmYi0+ Zm9ybWF0LT5jcHBbY29sb3JfcGxhbmVdOwogCXVuc2lnbmVkIGludCBwaXRjaCA9IHN0YXRlLT5j b2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCkBAIC0yMzAzLDggKzIzMDMsOCBAQCBz dGF0aWMgdTMyIGludGVsX3BsYW5lX2FkanVzdF9hbGlnbmVkX29mZnNldChpbnQgKngsIGludCAq eSwKIAkJCQkJICAgICBpbnQgY29sb3JfcGxhbmUsCiAJCQkJCSAgICAgdTMyIG9sZF9vZmZzZXQs IHUzMiBuZXdfb2Zmc2V0KQogewotCXJldHVybiBpbnRlbF9hZGp1c3RfYWxpZ25lZF9vZmZzZXQo eCwgeSwgc3RhdGUtPmJhc2UuZmIsIGNvbG9yX3BsYW5lLAotCQkJCQkgICBzdGF0ZS0+YmFzZS5y b3RhdGlvbiwKKwlyZXR1cm4gaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KHgsIHksIHN0YXRl LT5ody5mYiwgY29sb3JfcGxhbmUsCisJCQkJCSAgIHN0YXRlLT5ody5yb3RhdGlvbiwKIAkJCQkJ ICAgc3RhdGUtPmNvbG9yX3BsYW5lW2NvbG9yX3BsYW5lXS5zdHJpZGUsCiAJCQkJCSAgIG9sZF9v ZmZzZXQsIG5ld19vZmZzZXQpOwogfQpAQCAtMjM4MCw4ICsyMzgwLDggQEAgc3RhdGljIHUzMiBp bnRlbF9wbGFuZV9jb21wdXRlX2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5LAogewogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShzdGF0ZS0+YmFz ZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9wbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmJhc2Uu cm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+aHcu ZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCBw aXRjaCA9IHN0YXRlLT5jb2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCXUzMiBhbGln bm1lbnQ7CiAKQEAgLTI1NjgsNyArMjU2OCw3IEBAIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFw KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBs YW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5l LT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5ody5mYjsKIAlpbnQgaTsKIAogCS8qIFdlIGRvbid0IHdhbnQgdG8gZGVhbCB3aXRo IHJlbWFwcGluZyB3aXRoIGN1cnNvcnMgKi8KQEAgLTI2MDcsOCArMjYwNyw4IEBAIGJvb2wgaW50 ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCiBzdGF0aWMgYm9vbCBpbnRlbF9wbGFuZV9uZWVkc19yZW1hcChjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNp Z25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25l ZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247CiAJdTMyIHN0cmlkZSwg bWF4X3N0cmlkZTsKIAogCS8qCkBAIC0yNzk5LDEwICsyNzk5LDEwIEBAIGludGVsX3BsYW5lX3Jl bWFwX2d0dChzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJh c2UucGxhbmUtPmRldik7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5o dy5mYjsKIAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJh bWVidWZmZXIoZmIpOwogCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICppbmZvID0gJnBsYW5l X3N0YXRlLT52aWV3LnJvdGF0ZWQ7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3Rh dGUtPmJhc2Uucm90YXRpb247CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt Pmh3LnJvdGF0aW9uOwogCWludCBpLCBudW1fcGxhbmVzID0gZmItPmZvcm1hdC0+bnVtX3BsYW5l czsKIAl1bnNpZ25lZCBpbnQgdGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsK IAl1bnNpZ25lZCBpbnQgc3JjX3gsIHNyY195OwpAQCAtMjkwOCw4ICsyOTA4LDggQEAgc3RhdGlj IGludAogaW50ZWxfcGxhbmVfY29tcHV0ZV9ndHQoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiID0KLQkJ dG9faW50ZWxfZnJhbWVidWZmZXIocGxhbmVfc3RhdGUtPmJhc2UuZmIpOwotCXVuc2lnbmVkIGlu dCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCQl0b19pbnRlbF9mcmFt ZWJ1ZmZlcihwbGFuZV9zdGF0ZS0+aHcuZmIpOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBs YW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAlpbnQgaSwgbnVtX3BsYW5lczsKIAogCWlmICghZmIp CkBAIC0zMjA5LDcgKzMyMDksNyBAQCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCQkJY29udGludWU7CiAKIAkJaWYgKGludGVsX3Bs YW5lX2dndHRfb2Zmc2V0KHN0YXRlKSA9PSBwbGFuZV9jb25maWctPmJhc2UpIHsKLQkJCWZiID0g c3RhdGUtPmJhc2UuZmI7CisJCQlmYiA9IHN0YXRlLT5ody5mYjsKIAkJCWRybV9mcmFtZWJ1ZmZl cl9nZXQoZmIpOwogCQkJZ290byB2YWxpZF9mYjsKIAkJfQpAQCAtMzIyNywxMSArMzIyNywxMSBA QCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAogCXJldHVybjsKIAogdmFsaWRfZmI6Ci0JaW50ZWxfc3RhdGUtPmJhc2Uucm90YXRpb24g PSBwbGFuZV9jb25maWctPnJvdGF0aW9uOworCWludGVsX3N0YXRlLT5ody5yb3RhdGlvbiA9IHBs YW5lX2NvbmZpZy0+cm90YXRpb247CiAJaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoJmludGVsX3N0 YXRlLT52aWV3LCBmYiwKLQkJCQlpbnRlbF9zdGF0ZS0+YmFzZS5yb3RhdGlvbik7CisJCQkJaW50 ZWxfc3RhdGUtPmh3LnJvdGF0aW9uKTsKIAlpbnRlbF9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0uc3Ry aWRlID0KLQkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5iYXNlLnJvdGF0aW9u KTsKKwkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5ody5yb3RhdGlvbik7CiAK IAlpbnRlbF9zdGF0ZS0+dm1hID0KIAkJaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsCkBA IC0zMzU4LDcgKzMzNTgsNyBAQCBzdGF0aWMgaW50IGljbF9tYXhfcGxhbmVfaGVpZ2h0KHZvaWQp CiBzdGF0aWMgYm9vbCBza2xfY2hlY2tfbWFpbl9jY3NfY29vcmRpbmF0ZXMoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJCQkJICAgaW50IG1haW5feCwgaW50IG1haW5f eSwgdTMyIG1haW5fb2Zmc2V0KQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwog CWludCB2c3ViID0gZmItPmZvcm1hdC0+dnN1YjsKIAlpbnQgYXV4X3ggPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbMV0ueDsKQEAgLTMzOTYsOCArMzM5Niw4IEBAIHN0YXRpYyBib29sIHNrbF9j aGVja19tYWluX2Njc19jb29yZGluYXRlcyhzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlCiBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQg aW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCB4ID0gcGxhbmVf c3RhdGUtPmJhc2Uuc3JjLngxID4+IDE2OwogCWludCB5ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3Jj LnkxID4+IDE2OwogCWludCB3ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNy YykgPj4gMTY7CkBAIC0zNDkyLDggKzM0OTIsOCBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWlu X3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAogc3RhdGlj IGludCBza2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt PmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFu ZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3 LnJvdGF0aW9uOwogCWludCBtYXhfd2lkdGggPSBza2xfbWF4X3BsYW5lX3dpZHRoKGZiLCAxLCBy b3RhdGlvbik7CiAJaW50IG1heF9oZWlnaHQgPSA0MDk2OwogCWludCB4ID0gcGxhbmVfc3RhdGUt PmJhc2Uuc3JjLngxID4+IDE3OwpAQCAtMzUyMSw3ICszNTIxLDcgQEAgc3RhdGljIGludCBza2xf Y2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogCiBzdGF0aWMgaW50IHNrbF9jaGVja19jY3NfYXV4X3N1cmZhY2Uoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWludCBzcmNfeCA9IHBsYW5lX3N0YXRl LT5iYXNlLnNyYy54MSA+PiAxNjsKIAlpbnQgc3JjX3kgPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMu eTEgPj4gMTY7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwpAQCAtMzU0Miw3ICszNTQy LDcgQEAgc3RhdGljIGludCBza2xfY2hlY2tfY2NzX2F1eF9zdXJmYWNlKHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAKIGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJldDsKIAog CXJldCA9IGludGVsX3BsYW5lX2NvbXB1dGVfZ3R0KHBsYW5lX3N0YXRlKTsKQEAgLTM2MjcsOCAr MzYyNyw4IEBAIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAl1MzIgZHNwY250cjsK IAogCWRzcGNudHIgPSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKQEAgLTM3MTIsNyArMzcxMiw3IEBA IGludCBpOXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIAogCS8qIEhTVy9CRFcgZG8gdGhpcyBhdXRvbWFnaWNhbGx5IGluIGhhcmR3 YXJlICovCiAJaWYgKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9w cml2KSkgewotCQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKKwkJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9u OwogCQlpbnQgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+ PiAxNjsKIAkJaW50IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5z cmMpID4+IDE2OwogCkBAIC0zOTY1LDggKzM5NjUsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNr bF9wbGFuZV9zdHJpZGVfbXVsdChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIHUz MiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUsCiAJCSAgICAgaW50IGNvbG9yX3BsYW5lKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0 aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9u ID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCXUzMiBzdHJpZGUgPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbY29sb3JfcGxhbmVdLnN0cmlkZTsKIAogCWlmIChjb2xvcl9wbGFuZSA+PSBm Yi0+Zm9ybWF0LT5udW1fcGxhbmVzKQpAQCAtNDAzNSwxMCArNDAzNSwxMCBAQCBzdGF0aWMgdTMy IHNrbF9wbGFuZV9jdGxfZm9ybWF0KHUzMiBwaXhlbF9mb3JtYXQpCiAKIHN0YXRpYyB1MzIgc2ts X3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogewotCWlmICghcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aGFzX2FscGhhKQor CWlmICghcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmhhc19hbHBoYSkKIAkJcmV0dXJuIFBM QU5FX0NUTF9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxlbmRfbW9k ZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBMQU5FX0NU TF9BTFBIQV9ESVNBQkxFOwogCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6CkBAIC00MDQ2 LDE3ICs0MDQ2LDE3IEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCWNhc2UgRFJNX01PREVfQkxFTkRf Q09WRVJBR0U6CiAJCXJldHVybiBQTEFORV9DVExfQUxQSEFfSFdfUFJFTVVMVElQTFk7CiAJZGVm YXVsdDoKLQkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGUp OworCQlNSVNTSU5HX0NBU0UocGxhbmVfc3RhdGUtPmh3LnBpeGVsX2JsZW5kX21vZGUpOwogCQly ZXR1cm4gUExBTkVfQ1RMX0FMUEhBX0RJU0FCTEU7CiAJfQogfQogCiBzdGF0aWMgdTMyIGdsa19w bGFuZV9jb2xvcl9jdGxfYWxwaGEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKLQlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBo YSkKKwlpZiAoIXBsYW5lX3N0YXRlLT5ody5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpCiAJCXJldHVy biBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFz ZS5waXhlbF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxl bmRfbW9kZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBM QU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJY2FzZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSToK QEAgLTQwNjQsNyArNDA2NCw3IEBAIHN0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBo YShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlCiAJY2FzZSBEUk1f TU9ERV9CTEVORF9DT1ZFUkFHRToKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0hXX1BSRU1V TFRJUExZOwogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKTsKKwkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5ody5waXhlbF9ibGVu ZF9tb2RlKTsKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJfQogfQpAQCAt NDE1MCw4ICs0MTUwLDggQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUz MiBwbGFuZV9jdGw7CiAKQEAgLTQxNjEsMTAgKzQxNjEsMTAgQEAgdTMyIHNrbF9wbGFuZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX2FscGhhKHBsYW5lX3N0YXRlKTsKIAkJcGxhbmVfY3RsIHw9IFBMQU5F X0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwogCi0JCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xv cl9lbmNvZGluZyA9PSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpCisJCWlmIChwbGFuZV9zdGF0ZS0+ aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JUNzA5KQogCQkJcGxhbmVfY3Rs IHw9IFBMQU5FX0NUTF9ZVVZfVE9fUkdCX0NTQ19GT1JNQVRfQlQ3MDk7CiAKLQkJaWYgKHBsYW5l X3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQor CQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxM X1JBTkdFKQogCQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ZVVZfUkFOR0VfQ09SUkVDVElPTl9E SVNBQkxFOwogCX0KIApAQCAtNDIwNiw3ICs0MjA2LDcgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9j dGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmh3LmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IDA7 CiAKQEAgLTQyMTQsMTIgKzQyMTQsMTIgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcGxhbmVfY29sb3JfY3RsIHw9 IGdsa19wbGFuZV9jb2xvcl9jdGxfYWxwaGEocGxhbmVfc3RhdGUpOwogCiAJaWYgKGZiLT5mb3Jt YXQtPmlzX3l1diAmJiAhaWNsX2lzX2hkcl9wbGFuZShkZXZfcHJpdiwgcGxhbmUtPmlkKSkgewot CQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNS X0JUNzA5KQorCQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xP Ul9ZQ0JDUl9CVDcwOSkKIAkJCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9DU0NfTU9E RV9ZVVY3MDlfVE9fUkdCNzA5OwogCQllbHNlCiAJCQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVf Q09MT1JfQ1NDX01PREVfWVVWNjAxX1RPX1JHQjcwOTsKIAotCQlpZiAocGxhbmVfc3RhdGUtPmJh c2UuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCisJCWlmIChwbGFu ZV9zdGF0ZS0+aHcuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCiAJ CQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfWVVWX1JBTkdFX0NPUlJFQ1RJT05fRElT QUJMRTsKIAl9IGVsc2UgaWYgKGZiLT5mb3JtYXQtPmlzX3l1dikgewogCQlwbGFuZV9jb2xvcl9j dGwgfD0gUExBTkVfQ09MT1JfSU5QVVRfQ1NDX0VOQUJMRTsKQEAgLTU1NTMsNyArNTU1Myw3IEBA IHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9CiAJCXRv X2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX3BsYW5lLT5iYXNlLmRldik7Ci0Jc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQgcmV0OwogCWJv b2wgZm9yY2VfZGV0YWNoID0gIWZiIHx8ICFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwogCWJv b2wgbmVlZF9zY2FsZXIgPSBmYWxzZTsKQEAgLTEwNjUzLDcgKzEwNjUzLDcgQEAgc3RhdGljIHUz MiBpbnRlbF9jdXJzb3JfYmFzZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5 MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAl1MzIgYmFzZTsKIApAQCAt MTA3MDEsNyArMTA3MDEsNyBAQCBzdGF0aWMgaW50IGludGVsX2N1cnNvcl9jaGVja19zdXJmYWNl KHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFu ZS0+ZGV2KTsKLQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247 CiAJaW50IHNyY194LCBzcmNfeTsKIAl1MzIgb2Zmc2V0OwogCWludCByZXQ7CkBAIC0xMDc1MSw3 ICsxMDc1MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3Vyc29yX2NoZWNrX3N1cmZhY2Uoc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHN0YXRpYyBpbnQgaW50ZWxfY2hlY2tf Y3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWludCByZXQ7CiAKIAlp ZiAoZmIgJiYgZmItPm1vZGlmaWVyICE9IERSTV9GT1JNQVRfTU9EX0xJTkVBUikgewpAQCAtMTA4 MjUsNyArMTA4MjUsNyBAQCBzdGF0aWMgYm9vbCBpODQ1X2N1cnNvcl9zaXplX29rKGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiBzdGF0aWMgaW50IGk4NDVfY2hl Y2tfY3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJldDsKIAog CXJldCA9IGludGVsX2NoZWNrX2N1cnNvcihjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7CkBAIC0x MDk5MSw3ICsxMDk5MSw3IEBAIHN0YXRpYyB1MzIgaTl4eF9jdXJzb3JfY3RsKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAo cGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQorCWlmIChw bGFuZV9zdGF0ZS0+aHcucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQogCQljbnRsIHw9 IE1DVVJTT1JfUk9UQVRFXzE4MDsKIAogCXJldHVybiBjbnRsOwpAQCAtMTEwMjQsNyArMTEwMjQs NyBAQCBzdGF0aWMgYm9vbCBpOXh4X2N1cnNvcl9zaXplX29rKGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJICogY3Vyc29ycy4KIAkgKi8KIAlpZiAoSEFTX0NV Ul9GQkMoZGV2X3ByaXYpICYmCi0JICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJN X01PREVfUk9UQVRFXzApIHsKKwkgICAgcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uICYgRFJNX01P REVfUk9UQVRFXzApIHsKIAkJaWYgKGhlaWdodCA8IDggfHwgaGVpZ2h0ID4gd2lkdGgpCiAJCQly ZXR1cm4gZmFsc2U7CiAJfSBlbHNlIHsKQEAgLTExMDQwLDcgKzExMDQwLDcgQEAgc3RhdGljIGlu dCBpOXh4X2NoZWNrX2N1cnNvcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3Rh dGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7 CiAJaW50IHJldDsKIApAQCAtMTE2NDQsMTEgKzExNjQ0LDExIEBAIHN0YXRpYyBib29sIGludGVs X3dtX25lZWRfdXBkYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3VyLAogCWlm IChuZXctPmJhc2UudmlzaWJsZSAhPSBjdXItPmJhc2UudmlzaWJsZSkKIAkJcmV0dXJuIHRydWU7 CiAKLQlpZiAoIWN1ci0+YmFzZS5mYiB8fCAhbmV3LT5iYXNlLmZiKQorCWlmICghY3VyLT5ody5m YiB8fCAhbmV3LT5ody5mYikKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKGN1ci0+YmFzZS5mYi0+ bW9kaWZpZXIgIT0gbmV3LT5iYXNlLmZiLT5tb2RpZmllciB8fAotCSAgICBjdXItPmJhc2Uucm90 YXRpb24gIT0gbmV3LT5iYXNlLnJvdGF0aW9uIHx8CisJaWYgKGN1ci0+aHcuZmItPm1vZGlmaWVy ICE9IG5ldy0+aHcuZmItPm1vZGlmaWVyIHx8CisJICAgIGN1ci0+aHcucm90YXRpb24gIT0gbmV3 LT5ody5yb3RhdGlvbiB8fAogCSAgICBkcm1fcmVjdF93aWR0aCgmbmV3LT5iYXNlLnNyYykgIT0g ZHJtX3JlY3Rfd2lkdGgoJmN1ci0+YmFzZS5zcmMpIHx8CiAJICAgIGRybV9yZWN0X2hlaWdodCgm bmV3LT5iYXNlLnNyYykgIT0gZHJtX3JlY3RfaGVpZ2h0KCZjdXItPmJhc2Uuc3JjKSB8fAogCSAg ICBkcm1fcmVjdF93aWR0aCgmbmV3LT5iYXNlLmRzdCkgIT0gZHJtX3JlY3Rfd2lkdGgoJmN1ci0+ YmFzZS5kc3QpIHx8CkBAIC0xMjI4NCw3ICsxMjI4NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpv dXRwdXRfZm9ybWF0cyhlbnVtIGludGVsX291dHB1dF9mb3JtYXQgZm9ybWF0KQogc3RhdGljIHZv aWQgaW50ZWxfZHVtcF9wbGFuZV9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1l X2J1ZiBmb3JtYXRfbmFtZTsKIAogCWlmICghZmIpIHsKQEAgLTEyMzAwLDcgKzEyMzAwLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHVtcF9wbGFuZV9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5m b3JtYXQtPmZvcm1hdCwgJmZvcm1hdF9uYW1lKSwKIAkJICAgICAgeWVzbm8ocGxhbmVfc3RhdGUt PmJhc2UudmlzaWJsZSkpOwogCURSTV9ERUJVR19LTVMoIlx0cm90YXRpb246IDB4JXgsIHNjYWxl cjogJWRcbiIsCi0JCSAgICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uLCBwbGFuZV9zdGF0 ZS0+c2NhbGVyX2lkKTsKKwkJICAgICAgcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uLCBwbGFuZV9z dGF0ZS0+c2NhbGVyX2lkKTsKIAlpZiAocGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkKIAkJRFJN X0RFQlVHX0tNUygiXHRzcmM6ICIgRFJNX1JFQ1RfRlBfRk1UICIgZHN0OiAiIERSTV9SRUNUX0ZN VCAiXG4iLAogCQkJICAgICAgRFJNX1JFQ1RfRlBfQVJHKCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMp LApAQCAtMTQ2NjMsOCArMTQ2NjMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfdHJhY2tf ZmJzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2VhY2hfb2xkbmV3 X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLAogCQkJ CQkgICAgIG5ld19wbGFuZV9zdGF0ZSwgaSkKLQkJaW50ZWxfZnJvbnRidWZmZXJfdHJhY2sodG9f aW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKLQkJCQkJdG9faW50 ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwkJaW50ZWxfZnJvbnRi dWZmZXJfdHJhY2sodG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5ody5mYiks CisJCQkJCXRvX2ludGVsX2Zyb250YnVmZmVyKG5ld19wbGFuZV9zdGF0ZS0+aHcuZmIpLAogCQkJ CQlwbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsKIH0KIApAQCAtMTQ4MjMsNyArMTQ4MjMsNyBAQCBz dGF0aWMgaW50IGludGVsX3BsYW5lX3Bpbl9mYihzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKIAlpZiAo cGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUiAmJgpAQCAtMTQ4ODgsNyArMTQ4ODgsNyBAQCBpbnRl bF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KIAkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5l d19wbGFuZV9zdGF0ZS0+YmFzZS5zdGF0ZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShwbGFuZS0+ZGV2KTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IG5ld19wbGFuZV9zdGF0ZS0+aHcuZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9s ZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPnN0YXRlLT5mYik7CiAJaW50IHJldDsKQEAgLTE0 OTU2LDEyICsxNDk1NiwxMiBAQCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogCiAJCWZlbmNlID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+YmFzZS5y ZXN2KTsKIAkJaWYgKGZlbmNlKSB7Ci0JCQlhZGRfcnBzX2Jvb3N0X2FmdGVyX3ZibGFuayhuZXdf cGxhbmVfc3RhdGUtPmJhc2UuY3J0YywKKwkJCWFkZF9ycHNfYm9vc3RfYWZ0ZXJfdmJsYW5rKG5l d19wbGFuZV9zdGF0ZS0+aHcuY3J0YywKIAkJCQkJCSAgIGZlbmNlKTsKIAkJCWRtYV9mZW5jZV9w dXQoZmVuY2UpOwogCQl9CiAJfSBlbHNlIHsKLQkJYWRkX3Jwc19ib29zdF9hZnRlcl92Ymxhbmso bmV3X3BsYW5lX3N0YXRlLT5iYXNlLmNydGMsCisJCWFkZF9ycHNfYm9vc3RfYWZ0ZXJfdmJsYW5r KG5ld19wbGFuZV9zdGF0ZS0+aHcuY3J0YywKIAkJCQkJICAgbmV3X3BsYW5lX3N0YXRlLT5iYXNl LmZlbmNlKTsKIAl9CiAKQEAgLTE1MjExLDkgKzE1MjExLDEwIEBAIGludGVsX2xlZ2FjeV9jdXJz b3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKIAlpZiAocmV0KQogCQlnb3RvIG91 dF9mcmVlOwogCi0JaW50ZWxfZnJvbnRidWZmZXJfZmx1c2godG9faW50ZWxfZnJvbnRidWZmZXIo bmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwgT1JJR0lOX0ZMSVApOwotCWludGVsX2Zyb250YnVm ZmVyX3RyYWNrKHRvX2ludGVsX2Zyb250YnVmZmVyKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5mYiks Ci0JCQkJdG9faW50ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwlp bnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCh0b19pbnRlbF9mcm9udGJ1ZmZlcihuZXdfcGxhbmVfc3Rh dGUtPmh3LmZiKSwKKwkJCQlPUklHSU5fRkxJUCk7CisJaW50ZWxfZnJvbnRidWZmZXJfdHJhY2so dG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5ody5mYiksCisJCQkJdG9faW50 ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5ody5mYiksCiAJCQkJcGxhbmUtPmZyb250 YnVmZmVyX2JpdCk7CiAKIAkvKiBTd2FwIHBsYW5lIHN0YXRlICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9mYmMuYwppbmRleCBjNmNjMzc3NWYzYjguLjNlYThkMDEwZGI2YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCkBAIC02NjIsNyArNjYy LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2X3ByaXYt PmZiYzsKIAlzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlX2NhY2hlICpjYWNoZSA9ICZmYmMtPnN0YXRl X2NhY2hlOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2Uu ZmI7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAK IAljYWNoZS0+dm1hID0gTlVMTDsKIAljYWNoZS0+ZmxhZ3MgPSAwOwpAQCAtNjcxLDcgKzY3MSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpCiAJCWNhY2hlLT5jcnRjLmhzd19iZHdfcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUt PnBpeGVsX3JhdGU7CiAKLQljYWNoZS0+cGxhbmUucm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFz ZS5yb3RhdGlvbjsKKwljYWNoZS0+cGxhbmUucm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90 YXRpb247CiAJLyoKIAkgKiBTcmMgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgcm90YXRlZCBieSAy NzAgZGVncmVlcyBmb3IKIAkgKiB0aGUgOTAvMjcwIGRlZ3JlZSBwbGFuZSByb3RhdGlvbiBjYXNl cyAodG8gbWF0Y2ggdGhlCkBAIC02ODQsNyArNjg0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJj X3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYWNoZS0+cGxh bmUuYWRqdXN0ZWRfeSA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXS55OwogCWNhY2hlLT5w bGFuZS55ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjLnkxID4+IDE2OwogCi0JY2FjaGUtPnBsYW5l LnBpeGVsX2JsZW5kX21vZGUgPSBwbGFuZV9zdGF0ZS0+YmFzZS5waXhlbF9ibGVuZF9tb2RlOwor CWNhY2hlLT5wbGFuZS5waXhlbF9ibGVuZF9tb2RlID0gcGxhbmVfc3RhdGUtPmh3LnBpeGVsX2Js ZW5kX21vZGU7CiAKIAlpZiAoIWNhY2hlLT5wbGFuZS52aXNpYmxlKQogCQlyZXR1cm47CkBAIC0x MDQ3LDcgKzEwNDcsNyBAQCB2b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogdG8gcGlwZSBvciBwbGFuZSBBLiAqLwogCWZvcl9l YWNoX25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBp KSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwotCQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmVfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+aHcu Y3J0Yyk7CiAKIAkJaWYgKCFwbGFuZS0+aGFzX2ZiYykKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYwppbmRleCA4NDhjZTA3YThlYzIu LjQ2ZTNkNmNmNTk3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9v dmVybGF5LmMKQEAgLTY2OSw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfY29sb3JrZXko c3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJCWZsYWdzIHw9IERTVF9LRVlfRU5BQkxF OwogCiAJaWYgKHN0YXRlLT5iYXNlLnZpc2libGUpCi0JCWZvcm1hdCA9IHN0YXRlLT5iYXNlLmZi LT5mb3JtYXQtPmZvcm1hdDsKKwkJZm9ybWF0ID0gc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmZvcm1h dDsKIAogCXN3aXRjaCAoZm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX0M4OgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKaW5kZXggZmE2ODdjMDViMWVkLi4y NDUyNjMwMzEyOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJp dGUuYwpAQCAtMjQxLDggKzI0MSw4IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIGludCBpbnRlbF9wbGFuZV9jaGVj a19zdHJpZGUoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUt PmJhc2UucGxhbmUpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVf c3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJh c2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJv dGF0aW9uOwogCXUzMiBzdHJpZGUsIG1heF9zdHJpZGU7CiAKIAkvKgpAQCAtMjcyLDEwICsyNzIs MTAgQEAgaW50IGludGVsX3BsYW5lX2NoZWNrX3N0cmlkZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCiBpbnQgaW50ZWxfcGxhbmVfY2hlY2tfc3JjX2Nvb3Jk aW5hdGVzKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1 Y3QgZHJtX3JlY3QgKnNyYyA9ICZwbGFuZV9zdGF0ZS0+YmFzZS5zcmM7CiAJdTMyIHNyY194LCBz cmNfeSwgc3JjX3csIHNyY19oLCBoc3ViLCB2c3ViOwotCWJvb2wgcm90YXRlZCA9IGRybV9yb3Rh dGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24pOworCWJvb2wgcm90YXRl ZCA9IGRybV9yb3RhdGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uKTsKIAog CS8qCiAJICogSGFyZHdhcmUgZG9lc24ndCBoYW5kbGUgc3VicGl4ZWwgY29vcmRpbmF0ZXMuCkBA IC0zNDcsNyArMzQ3LDcgQEAgc2tsX3Byb2dyYW1fc2NhbGVyKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCiAJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3Rh dGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+aHcuZmI7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAlpbnQgc2NhbGVy X2lkID0gcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfc2NhbGVy ICpzY2FsZXIgPQpAQCAtNDkzLDEwICs0OTMsMTAgQEAgaWNsX3Byb2dyYW1faW5wdXRfY3NjKHN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJfTsKIAljb25zdCB1MTYgKmNzYzsKIAotCWlmIChw bGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5H RSkKLQkJY3NjID0gaW5wdXRfY3NjX21hdHJpeFtwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNv ZGluZ107CisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNC Q1JfRlVMTF9SQU5HRSkKKwkJY3NjID0gaW5wdXRfY3NjX21hdHJpeFtwbGFuZV9zdGF0ZS0+aHcu Y29sb3JfZW5jb2RpbmddOwogCWVsc2UKLQkJY3NjID0gaW5wdXRfY3NjX21hdHJpeF9scltwbGFu ZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZ107CisJCWNzYyA9IGlucHV0X2NzY19tYXRyaXhf bHJbcGxhbmVfc3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nXTsKIAogCUk5MTVfV1JJVEVfRlcoUExB TkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lX2lkLCAwKSwgUk9GRihjc2NbMF0pIHwKIAkJ ICAgICAgR09GRihjc2NbMV0pKTsKQEAgLTUxMCw3ICs1MTAsNyBAQCBpY2xfcHJvZ3JhbV9pbnB1 dF9jc2Moc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAogCUk5MTVfV1JJVEVfRlcoUExBTkVf SU5QVVRfQ1NDX1BSRU9GRihwaXBlLCBwbGFuZV9pZCwgMCksCiAJCSAgICAgIFBSRU9GRl9ZVVZf VE9fUkdCX0hJKTsKLQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfcmFuZ2UgPT0gRFJNX0NP TE9SX1lDQkNSX0ZVTExfUkFOR0UpCisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9yYW5nZSA9 PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKIAkJSTkxNV9XUklURV9GVyhQTEFORV9JTlBV VF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5lX2lkLCAxKSwgMCk7CiAJZWxzZQogCQlJOTE1X1dSSVRF X0ZXKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmVfaWQsIDEpLApAQCAtNTQyLDgg KzU0Miw4IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJ dTMyIHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7 CiAJdTMyIHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+ IDE2OwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkID0gcGxhbmVfc3RhdGUtPnBsYW5hcl9s aW5rZWRfcGxhbmU7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKLQl1OCBhbHBoYSA9IHBsYW5lX3N0YXRlLT5iYXNlLmFscGhhID4+IDg7 CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7 CisJdTggYWxwaGEgPSBwbGFuZV9zdGF0ZS0+aHcuYWxwaGEgPj4gODsKIAl1MzIgcGxhbmVfY29s b3JfY3RsID0gMDsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCXUzMiBrZXltc2ssIGtleW1h eDsKQEAgLTcxOSw3ICs3MTksNyBAQCBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51 bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKIAkvKgogCSAqIHxyfCAgIHwgYzAgYzEg YzIgfCAgIHxjcnwKQEAgLTc0NSw3ICs3NDUsNyBAQCBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCQkJICAgIDAsIDQwOTYsICA3NjAx LAogCQl9LAogCX07Ci0JY29uc3QgczE2ICpjc2MgPSBjc2NfbWF0cml4W3BsYW5lX3N0YXRlLT5i YXNlLmNvbG9yX2VuY29kaW5nXTsKKwljb25zdCBzMTYgKmNzYyA9IGNzY19tYXRyaXhbcGxhbmVf c3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nXTsKIAogCS8qIFNlZW1zIFJHQiBkYXRhIGJ5cGFzc2Vz IHRoZSBDU0MgYWx3YXlzICovCiAJaWYgKCFmYi0+Zm9ybWF0LT5pc195dXYpCkBAIC03NzgsMTMg Kzc3OCwxMyBAQCB2bHZfdXBkYXRlX2NscmMoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBl ID0gcGxhbmUtPnBpcGU7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKIAlp bnQgY29udHJhc3QsIGJyaWdodG5lc3MsIHNoX3NjYWxlLCBzaF9zaW4sIHNoX2NvczsKIAogCWlm IChmYi0+Zm9ybWF0LT5pc195dXYgJiYKLQkgICAgcGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfcmFu Z2UgPT0gRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UpIHsKKwkgICAgcGxhbmVfc3RhdGUt Pmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKSB7CiAJCS8q CiAJCSAqIEV4cGFuZCBsaW1pdGVkIHJhbmdlIHRvIGZ1bGwgcmFuZ2U6CiAJCSAqIENvbnRyYXN0 IGlzIGFwcGxpZWQgZmlyc3QgYW5kIGlzIHVzZWQgdG8gZXhwYW5kIFkgcmFuZ2UuCkBAIC04MjUs OCArODI1LDggQEAgc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCBy b3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVs X3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUzMiBzcHJjdGw7 CiAKQEAgLTg3MSw3ICs4NzEsNyBAQCBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlp ZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JU NzA5KQorCWlmIChwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lD QkNSX0JUNzA5KQogCQlzcHJjdGwgfD0gU1BfWVVWX0ZPUk1BVF9CVDcwOTsKIAogCWlmIChmYi0+ bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCkBAIC04OTMsNyArODkzLDcgQEAg c3RhdGljIHZvaWQgdmx2X3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRl bF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBwaXBlIHBp cGUgPSBwbGFuZS0+cGlwZTsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwog CXUxNiBnYW1tYVs4XTsKQEAgLTEwMzYsOCArMTAzNiw4IEBAIHN0YXRpYyB1MzIgaXZiX3Nwcml0 ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+ YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBs YW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRl LT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5o dy5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5 ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUzMiBzcHJjdGw7CiAKQEAgLTEwNzIsMTAgKzEwNzIs MTAgQEAgc3RhdGljIHUzMiBpdmJfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAogCXNwcmN0bCB8PSBTUFJJVEVfSU5UX0dBTU1BX0RJU0FCTEU7 CiAKLQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lD QkNSX0JUNzA5KQorCWlmIChwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NP TE9SX1lDQkNSX0JUNzA5KQogCQlzcHJjdGwgfD0gU1BSSVRFX1lVVl9UT19SR0JfQ1NDX0ZPUk1B VF9CVDcwOTsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PSBEUk1fQ09M T1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09 IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQogCQlzcHJjdGwgfD0gU1BSSVRFX1lVVl9SQU5H RV9DT1JSRUNUSU9OX0RJU0FCTEU7CiAKIAlpZiAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFU X01PRF9YX1RJTEVEKQpAQCAtMTI3MCw4ICsxMjcwLDggQEAgc3RhdGljIHUzMiBnNHhfc3ByaXRl X2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQl0b19pOTE1KHBsYW5lX3N0YXRlLT5i YXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt PmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFu ZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3 LnJvdGF0aW9uOwogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkg PSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJdTMyIGR2c2NudHI7CiAKQEAgLTEzMDQsMTAgKzEzMDQs MTAgQEAgc3RhdGljIHUzMiBnNHhfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHBsYW5lX3N0YXRlLT5i YXNlLmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKKwlpZiAocGxhbmVf c3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKIAkJZHZz Y250ciB8PSBEVlNfWVVWX0ZPUk1BVF9CVDcwOTsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5j b2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwlpZiAocGxhbmVfc3Rh dGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQogCQlkdnNj bnRyIHw9IERWU19ZVVZfUkFOR0VfQ09SUkVDVElPTl9ESVNBQkxFOwogCiAJaWYgKGZiLT5tb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKQEAgLTEzMjgsNyArMTMyOCw3IEBAIHN0 YXRpYyB2b2lkIGc0eF91cGRhdGVfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBl ID0gcGxhbmUtPnBpcGU7CiAJdTE2IGdhbW1hWzhdOwogCWludCBpOwpAQCAtMTM2MCw3ICsxMzYw LDcgQEAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBw aXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAl1MTYgZ2FtbWFbMTddOwogCWludCBpOwpAQCAtMTUw OSw3ICsxNTA5LDcgQEAgc3RhdGljIGludAogZzR4X3Nwcml0ZV9jaGVja19zY2FsaW5nKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZw bGFuZV9zdGF0ZS0+YmFzZS5zcmM7CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmcGxh bmVfc3RhdGUtPmJhc2UuZHN0OwogCWludCBzcmNfeCwgc3JjX3csIHNyY19oLCBjcnRjX3csIGNy dGNfaDsKQEAgLTE1NzYsNyArMTU3Niw3IEBAIGc0eF9zcHJpdGVfY2hlY2soc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaW50IG1heF9zY2FsZSA9IERSTV9QTEFORV9IRUxQ RVJfTk9fU0NBTElORzsKIAlpbnQgcmV0OwogCi0JaWYgKGludGVsX2ZiX3NjYWxhYmxlKHBsYW5l X3N0YXRlLT5iYXNlLmZiKSkgeworCWlmIChpbnRlbF9mYl9zY2FsYWJsZShwbGFuZV9zdGF0ZS0+ aHcuZmIpKSB7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNykgewogCQkJbWluX3NjYWxl ID0gMTsKIAkJCW1heF9zY2FsZSA9IDE2IDw8IDE2OwpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgaW50 IGNodl9wbGFuZV9jaGVja19yb3RhdGlvbihjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCXVuc2lnbmVkIGludCByb3RhdGlv biA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAogCS8qIENIViBpZ25vcmVzIHRoZSBtaXJy b3IgYml0IHdoZW4gdGhlIHJvdGF0ZSBiaXQgaXMgc2V0IDooICovCiAJaWYgKElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpICYmCkBAIC0xNjcyLDggKzE2NzIsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFu ZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUt PmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0 YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g cGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRl LT5ody5yb3RhdGlvbjsKIAlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsK IAogCWlmICghZmIpCkBAIC0xNzczLDggKzE3NzMsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9j aGVja19kc3RfY29vcmRpbmF0ZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf cwogCiBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19udjEyX3JvdGF0aW9uKGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNpZ25lZCBpbnQgcm90 YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25lZCBpbnQgcm90YXRp b24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247CiAJaW50IHNyY193ID0gZHJtX3JlY3Rfd2lk dGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7CiAKIAkvKiBEaXNwbGF5IFdBICMxMTA2 ICovCkBAIC0xNzkzLDcgKzE3OTMsNyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsK LQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi OworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZi OwogCWludCBtaW5fc2NhbGUgPSBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7CiAJaW50IG1h eF9zY2FsZSA9IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKIAlpbnQgcmV0OwpAQCAtMTgz NSw3ICsxODM1LDcgQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiByZXQ7CiAKIAkvKiBIVyBvbmx5IGhhcyA4 IGJpdHMgcGl4ZWwgcHJlY2lzaW9uLCBkaXNhYmxlIHBsYW5lIGlmIGludmlzaWJsZSAqLwotCWlm ICghKHBsYW5lX3N0YXRlLT5iYXNlLmFscGhhID4+IDgpKQorCWlmICghKHBsYW5lX3N0YXRlLT5o dy5hbHBoYSA+PiA4KSkKIAkJcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCiAJ cGxhbmVfc3RhdGUtPmN0bCA9IHNrbF9wbGFuZV9jdGwoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYTE1YTY3OWZhYWVmLi4xMWYzNmJhZjEwMjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtODExLDcgKzgxMSw3IEBAIHN0YXRpYyBib29s IGludGVsX3dtX3BsYW5lX3Zpc2libGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJICogYXJvdW5kIHRoaXMgcHJvYmxlbSB3aXRoIHRoZSB3YXRlcm1hcmsgY29k ZS4KIAkgKi8KIAlpZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikKLQkJcmV0dXJuIHBsYW5l X3N0YXRlLT5iYXNlLmZiICE9IE5VTEw7CisJCXJldHVybiBwbGFuZV9zdGF0ZS0+aHcuZmIgIT0g TlVMTDsKIAllbHNlCiAJCXJldHVybiBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwogfQpAQCAt MTA5OCw3ICsxMDk4LDcgQEAgc3RhdGljIHUxNiBnNHhfY29tcHV0ZV93bShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2li bGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcu ZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJLyoKIAkgKiBOb3QgMTAwJSBzdXJlIHdoaWNoIHdheSBF TEsgc2hvdWxkIGdvIGhlcmUgYXMgdGhlCkBAIC0xMzE4LDggKzEzMTgsOCBAQCBzdGF0aWMgaW50 IGc0eF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwKIAkJ CQkJICAgICBvbGRfcGxhbmVfc3RhdGUsCiAJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRlLCBpKSB7 Ci0JCWlmIChuZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyAhPSAmY3J0Yy0+YmFzZSAmJgotCQkg ICAgb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UpCisJCWlmIChuZXdf cGxhbmVfc3RhdGUtPmh3LmNydGMgIT0gJmNydGMtPmJhc2UgJiYKKwkJICAgIG9sZF9wbGFuZV9z dGF0ZS0+aHcuY3J0YyAhPSAmY3J0Yy0+YmFzZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChnNHhf cmF3X3BsYW5lX3dtX2NvbXB1dGUoY3J0Y19zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKSkKQEAgLTE2 MDMsNyArMTYwMyw3IEBAIHN0YXRpYyB1MTYgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92 aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUt Pmh3LmZiLT5mb3JtYXQtPmNwcFswXTsKIAljbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2s7CiAJaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CiAJd2lkdGggPSBjcnRj X3N0YXRlLT5waXBlX3NyY193OwpAQCAtMTgzOSw4ICsxODM5LDggQEAgc3RhdGljIGludCB2bHZf Y29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWZv cl9lYWNoX29sZG5ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsCiAJCQkJCSAg ICAgb2xkX3BsYW5lX3N0YXRlLAogCQkJCQkgICAgIG5ld19wbGFuZV9zdGF0ZSwgaSkgewotCQlp ZiAobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UgJiYKLQkJICAgIG9s ZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjICE9ICZjcnRjLT5iYXNlKQorCQlpZiAobmV3X3BsYW5l X3N0YXRlLT5ody5jcnRjICE9ICZjcnRjLT5iYXNlICYmCisJCSAgICBvbGRfcGxhbmVfc3RhdGUt Pmh3LmNydGMgIT0gJmNydGMtPmJhc2UpCiAJCQljb250aW51ZTsKIAogCQlpZiAodmx2X3Jhd19w bGFuZV93bV9jb21wdXRlKGNydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSkpCkBAIC0yNDg1LDcg KzI0ODUsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUo Y3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5lX3N0 YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmIt PmZvcm1hdC0+Y3BwWzBdOwogCiAJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUt PnBpeGVsX3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKIApAQCAtMjUxNyw3ICsyNTE3LDcgQEAgc3Rh dGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBs YW5lX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+ Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFsw XTsKIAogCW1ldGhvZDEgPSBpbGtfd21fbWV0aG9kMShjcnRjX3N0YXRlLT5waXhlbF9yYXRlLCBj cHAsIG1lbV92YWx1ZSk7CiAJbWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBp eGVsX3JhdGUsCkBAIC0yNTQzLDcgKzI1NDMsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX2N1 cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWlu dGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4g MDsKIAotCWNwcCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAg PSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJcmV0dXJuIGlsa193bV9t ZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCiAJCQkgICAgICBjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLApAQCAtMjU2MSw3ICsyNTYxLDcgQEAgc3RhdGljIHUz MiBpbGtfY29tcHV0ZV9mYmNfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0 LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFswXTsKIAog CXJldHVybiBpbGtfd21fZmJjKHByaV92YWwsIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ YmFzZS5kc3QpLCBjcHApOwogfQpAQCAtNDE1MSwxMSArNDE1MSwxMSBAQCBpbnQgc2tsX2NoZWNr X3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCWlm ICghaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJCQlj b250aW51ZTsKIAotCQlpZiAoV0FSTl9PTighcGxhbmVfc3RhdGUtPmJhc2UuZmIpKQorCQlpZiAo V0FSTl9PTighcGxhbmVfc3RhdGUtPmh3LmZiKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCXBs YW5lX2Rvd25zY2FsZSA9IHNrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KGNydGNfc3RhdGUsIHBs YW5lX3N0YXRlKTsKLQkJYnBwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBd ICogODsKKwkJYnBwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFswXSAqIDg7CiAJ CWlmIChicHAgPT0gNjQpCiAJCQlwbGFuZV9kb3duc2NhbGUgPSBtdWxfZml4ZWQxNihwbGFuZV9k b3duc2NhbGUsCiAJCQkJCQkgICAgICBmcF85X2Rpdl84KTsKQEAgLTQxODgsNyArNDE4OCw3IEBA IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCQkgICAgIGludCBjb2xvcl9wbGFuZSkKIHsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUp OwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2Uu ZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcu ZmI7CiAJdTMyIGRhdGFfcmF0ZTsKIAl1MzIgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogCXVpbnRf Zml4ZWRfMTZfMTZfdCBkb3duX3NjYWxlX2Ftb3VudDsKQEAgLTQ3MDksNyArNDcwOSw3IEBAIHNr bF9jb21wdXRlX3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlLAogCQkJICAgIHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwgaW50IGNvbG9yX3BsYW5l KQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJh c2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ aHcuZmI7CiAJaW50IHdpZHRoOwogCiAJLyoKQEAgLTQ3MjEsNyArNDcyMSw3IEBAIHNrbF9jb21w dXRlX3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAogCXJldHVybiBza2xfY29tcHV0ZV93bV9wYXJhbXMoY3J0Y19zdGF0ZSwgd2lkdGgs CiAJCQkJICAgICBmYi0+Zm9ybWF0LCBmYi0+bW9kaWZpZXIsCi0JCQkJICAgICBwbGFuZV9zdGF0 ZS0+YmFzZS5yb3RhdGlvbiwKKwkJCQkgICAgIHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbiwKIAkJ CQkgICAgIHNrbF9hZGp1c3RlZF9wbGFuZV9waXhlbF9yYXRlKGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKSwKIAkJCQkgICAgIHdwLCBjb2xvcl9wbGFuZSk7CiB9CkBAIC01MDAwLDcgKzUwMDAsNyBA QCBzdGF0aWMgaW50IHNrbF9idWlsZF9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSBw bGFuZS0+aWQ7CiAJaW50IHJldDsKIApAQCAtNTAzMyw3ICs1MDMzLDcgQEAgc3RhdGljIGludCBp Y2xfYnVpbGRfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CXJldHVybiAwOwogCiAJaWYgKHBsYW5lX3N0YXRlLT5wbGFuYXJfbGlua2VkX3BsYW5lKSB7Ci0J CWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7 CisJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZi OwogCQllbnVtIHBsYW5lX2lkIHlfcGxhbmVfaWQgPSBwbGFuZV9zdGF0ZS0+cGxhbmFyX2xpbmtl ZF9wbGFuZS0+aWQ7CiAKIAkJV0FSTl9PTighaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0 YXRlLCBwbGFuZV9zdGF0ZSkpOwotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE77DCA9EAF for ; Thu, 24 Oct 2019 12:48:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F1DD205C9 for ; Thu, 24 Oct 2019 12:48:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F1DD205C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 200ED6E3C6; Thu, 24 Oct 2019 12:48:25 +0000 (UTC) Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 991B06E3D2 for ; Thu, 24 Oct 2019 12:48:11 +0000 (UTC) From: Maarten Lankhorst To: intel-gfx@lists.freedesktop.org Date: Thu, 24 Oct 2019 14:48:02 +0200 Message-Id: <20191024124805.26840-11-maarten.lankhorst@linux.intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> References: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 11/14] drm/i915: Perform automated conversions for plane uapi/hw split, base -> hw. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191024124802.mbGPro1txRD0VY7Q0mdusalGiAN5CYEJrlkQI2g7LYg@z> U3BsaXQgdXAgcGxhbmVfc3RhdGUtPmJhc2UgdG8gaHcuIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUg Zm9sbG93aW5nIHBhdGNoOgoKQEAKc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpUOwppZGVudGlm aWVyIHggPX4gIl4oY3J0Y3xmYnxhbHBoYXxwaXhlbF9ibGVuZF9tb2RlfHJvdGF0aW9ufGNvbG9y X2VuY29kaW5nfGNvbG9yX3JhbmdlKSQiOwpAQAotVC0+YmFzZS54CitULT5ody54CgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8 ICAgNiArLQogLi4uL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIHwg ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAx MjcgKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2ZiYy5jICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf b3ZlcmxheS5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9z cHJpdGUuYyAgIHwgIDc2ICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jICAgICAgICAgICAgICAgfCAgMzYgKystLS0KIDcgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2Vy dGlvbnMoKyksIDEzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9hdG9taWMuYwppbmRleCAyNjZkMGNlOWQwM2QuLjliYTUwZmQxMTE2YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCkBAIC0yOTYsOSArMjk2 LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcihzdHJ1Y3QgaW50ZWxf Y3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGEKIAkJcmV0dXJuOwogCiAJLyogc2V0IHNjYWxl ciBtb2RlICovCi0JaWYgKHBsYW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT5iYXNlLmZiICYmCi0J ICAgIHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmlzX3l1diAmJgotCSAgICBwbGFuZV9z dGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5udW1fcGxhbmVzID4gMSkgeworCWlmIChwbGFuZV9zdGF0 ZSAmJiBwbGFuZV9zdGF0ZS0+aHcuZmIgJiYKKwkgICAgcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3Jt YXQtPmlzX3l1diAmJgorCSAgICBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+bnVtX3BsYW5l cyA+IDEpIHsKIAkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgOSkgJiYKIAkJ ICAgICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggMGRiMjBkYTc3ODFjLi5mZDVh ODAxMjg1OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWNfcGxhbmUuYwpAQCAtMTE4LDcgKzExOCw3IEBAIGludGVsX3BsYW5lX2Rlc3Ryb3lfc3Rh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiB1bnNpZ25lZCBpbnQgaW50ZWxfcGxhbmVfZGF0 YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAg IGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAl1bnNp Z25lZCBpbnQgY3BwOwogCiAJaWYgKCFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKQpAQCAtMTQ0 LDcgKzE0NCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCiAJCQkJCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUgPSB0b19pbnRlbF9wbGFuZShuZXdfcGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiOwor CWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5ody5m YjsKIAlpbnQgcmV0OwogCiAJbmV3X2NydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJj0gfkJJVChw bGFuZS0+aWQpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hl Y2tfd2l0aF9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCiAJ bmV3X2NydGNfc3RhdGUtPmRhdGFfcmF0ZVtwbGFuZS0+aWRdID0gMDsKIAluZXdfcGxhbmVfc3Rh dGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCi0JaWYgKCFuZXdfcGxhbmVfc3RhdGUtPmJhc2Uu Y3J0YyAmJiAhb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMpCisJaWYgKCFuZXdfcGxhbmVfc3Rh dGUtPmh3LmNydGMgJiYgIW9sZF9wbGFuZV9zdGF0ZS0+aHcuY3J0YykKIAkJcmV0dXJuIDA7CiAK IAlyZXQgPSBwbGFuZS0+Y2hlY2tfcGxhbmUobmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0 ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4 IDI2Zjg2OTg5ZjY1Mi4uYjY4OWJhZWJiNGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjIwMiw3ICsyMjAyLDcgQEAgdTMyIGludGVsX2Zi X3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqc3RhdGUsCiAJCQkgIGludCBjb2xvcl9wbGFuZSkKIHsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmh3LmZiOwogCXVuc2lnbmVkIGludCBjcHAgPSBmYi0+ Zm9ybWF0LT5jcHBbY29sb3JfcGxhbmVdOwogCXVuc2lnbmVkIGludCBwaXRjaCA9IHN0YXRlLT5j b2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCkBAIC0yMzAzLDggKzIzMDMsOCBAQCBz dGF0aWMgdTMyIGludGVsX3BsYW5lX2FkanVzdF9hbGlnbmVkX29mZnNldChpbnQgKngsIGludCAq eSwKIAkJCQkJICAgICBpbnQgY29sb3JfcGxhbmUsCiAJCQkJCSAgICAgdTMyIG9sZF9vZmZzZXQs IHUzMiBuZXdfb2Zmc2V0KQogewotCXJldHVybiBpbnRlbF9hZGp1c3RfYWxpZ25lZF9vZmZzZXQo eCwgeSwgc3RhdGUtPmJhc2UuZmIsIGNvbG9yX3BsYW5lLAotCQkJCQkgICBzdGF0ZS0+YmFzZS5y b3RhdGlvbiwKKwlyZXR1cm4gaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KHgsIHksIHN0YXRl LT5ody5mYiwgY29sb3JfcGxhbmUsCisJCQkJCSAgIHN0YXRlLT5ody5yb3RhdGlvbiwKIAkJCQkJ ICAgc3RhdGUtPmNvbG9yX3BsYW5lW2NvbG9yX3BsYW5lXS5zdHJpZGUsCiAJCQkJCSAgIG9sZF9v ZmZzZXQsIG5ld19vZmZzZXQpOwogfQpAQCAtMjM4MCw4ICsyMzgwLDggQEAgc3RhdGljIHUzMiBp bnRlbF9wbGFuZV9jb21wdXRlX2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5LAogewogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShzdGF0ZS0+YmFz ZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9wbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmJhc2Uu cm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+aHcu ZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCBw aXRjaCA9IHN0YXRlLT5jb2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCXUzMiBhbGln bm1lbnQ7CiAKQEAgLTI1NjgsNyArMjU2OCw3IEBAIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFw KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBs YW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5l LT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5ody5mYjsKIAlpbnQgaTsKIAogCS8qIFdlIGRvbid0IHdhbnQgdG8gZGVhbCB3aXRo IHJlbWFwcGluZyB3aXRoIGN1cnNvcnMgKi8KQEAgLTI2MDcsOCArMjYwNyw4IEBAIGJvb2wgaW50 ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCiBzdGF0aWMgYm9vbCBpbnRlbF9wbGFuZV9uZWVkc19yZW1hcChjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNp Z25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25l ZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247CiAJdTMyIHN0cmlkZSwg bWF4X3N0cmlkZTsKIAogCS8qCkBAIC0yNzk5LDEwICsyNzk5LDEwIEBAIGludGVsX3BsYW5lX3Jl bWFwX2d0dChzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJh c2UucGxhbmUtPmRldik7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5o dy5mYjsKIAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJh bWVidWZmZXIoZmIpOwogCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICppbmZvID0gJnBsYW5l X3N0YXRlLT52aWV3LnJvdGF0ZWQ7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3Rh dGUtPmJhc2Uucm90YXRpb247CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt Pmh3LnJvdGF0aW9uOwogCWludCBpLCBudW1fcGxhbmVzID0gZmItPmZvcm1hdC0+bnVtX3BsYW5l czsKIAl1bnNpZ25lZCBpbnQgdGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsK IAl1bnNpZ25lZCBpbnQgc3JjX3gsIHNyY195OwpAQCAtMjkwOCw4ICsyOTA4LDggQEAgc3RhdGlj IGludAogaW50ZWxfcGxhbmVfY29tcHV0ZV9ndHQoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiID0KLQkJ dG9faW50ZWxfZnJhbWVidWZmZXIocGxhbmVfc3RhdGUtPmJhc2UuZmIpOwotCXVuc2lnbmVkIGlu dCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCQl0b19pbnRlbF9mcmFt ZWJ1ZmZlcihwbGFuZV9zdGF0ZS0+aHcuZmIpOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBs YW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAlpbnQgaSwgbnVtX3BsYW5lczsKIAogCWlmICghZmIp CkBAIC0zMjA5LDcgKzMyMDksNyBAQCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCQkJY29udGludWU7CiAKIAkJaWYgKGludGVsX3Bs YW5lX2dndHRfb2Zmc2V0KHN0YXRlKSA9PSBwbGFuZV9jb25maWctPmJhc2UpIHsKLQkJCWZiID0g c3RhdGUtPmJhc2UuZmI7CisJCQlmYiA9IHN0YXRlLT5ody5mYjsKIAkJCWRybV9mcmFtZWJ1ZmZl cl9nZXQoZmIpOwogCQkJZ290byB2YWxpZF9mYjsKIAkJfQpAQCAtMzIyNywxMSArMzIyNywxMSBA QCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAogCXJldHVybjsKIAogdmFsaWRfZmI6Ci0JaW50ZWxfc3RhdGUtPmJhc2Uucm90YXRpb24g PSBwbGFuZV9jb25maWctPnJvdGF0aW9uOworCWludGVsX3N0YXRlLT5ody5yb3RhdGlvbiA9IHBs YW5lX2NvbmZpZy0+cm90YXRpb247CiAJaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoJmludGVsX3N0 YXRlLT52aWV3LCBmYiwKLQkJCQlpbnRlbF9zdGF0ZS0+YmFzZS5yb3RhdGlvbik7CisJCQkJaW50 ZWxfc3RhdGUtPmh3LnJvdGF0aW9uKTsKIAlpbnRlbF9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0uc3Ry aWRlID0KLQkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5iYXNlLnJvdGF0aW9u KTsKKwkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5ody5yb3RhdGlvbik7CiAK IAlpbnRlbF9zdGF0ZS0+dm1hID0KIAkJaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsCkBA IC0zMzU4LDcgKzMzNTgsNyBAQCBzdGF0aWMgaW50IGljbF9tYXhfcGxhbmVfaGVpZ2h0KHZvaWQp CiBzdGF0aWMgYm9vbCBza2xfY2hlY2tfbWFpbl9jY3NfY29vcmRpbmF0ZXMoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJCQkJICAgaW50IG1haW5feCwgaW50IG1haW5f eSwgdTMyIG1haW5fb2Zmc2V0KQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwog CWludCB2c3ViID0gZmItPmZvcm1hdC0+dnN1YjsKIAlpbnQgYXV4X3ggPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbMV0ueDsKQEAgLTMzOTYsOCArMzM5Niw4IEBAIHN0YXRpYyBib29sIHNrbF9j aGVja19tYWluX2Njc19jb29yZGluYXRlcyhzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlCiBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQg aW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCB4ID0gcGxhbmVf c3RhdGUtPmJhc2Uuc3JjLngxID4+IDE2OwogCWludCB5ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3Jj LnkxID4+IDE2OwogCWludCB3ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNy YykgPj4gMTY7CkBAIC0zNDkyLDggKzM0OTIsOCBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWlu X3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAogc3RhdGlj IGludCBza2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt PmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFu ZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3 LnJvdGF0aW9uOwogCWludCBtYXhfd2lkdGggPSBza2xfbWF4X3BsYW5lX3dpZHRoKGZiLCAxLCBy b3RhdGlvbik7CiAJaW50IG1heF9oZWlnaHQgPSA0MDk2OwogCWludCB4ID0gcGxhbmVfc3RhdGUt PmJhc2Uuc3JjLngxID4+IDE3OwpAQCAtMzUyMSw3ICszNTIxLDcgQEAgc3RhdGljIGludCBza2xf Y2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogCiBzdGF0aWMgaW50IHNrbF9jaGVja19jY3NfYXV4X3N1cmZhY2Uoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWludCBzcmNfeCA9IHBsYW5lX3N0YXRl LT5iYXNlLnNyYy54MSA+PiAxNjsKIAlpbnQgc3JjX3kgPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMu eTEgPj4gMTY7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwpAQCAtMzU0Miw3ICszNTQy LDcgQEAgc3RhdGljIGludCBza2xfY2hlY2tfY2NzX2F1eF9zdXJmYWNlKHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAKIGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJldDsKIAog CXJldCA9IGludGVsX3BsYW5lX2NvbXB1dGVfZ3R0KHBsYW5lX3N0YXRlKTsKQEAgLTM2MjcsOCAr MzYyNyw4IEBAIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAl1MzIgZHNwY250cjsK IAogCWRzcGNudHIgPSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKQEAgLTM3MTIsNyArMzcxMiw3IEBA IGludCBpOXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIAogCS8qIEhTVy9CRFcgZG8gdGhpcyBhdXRvbWFnaWNhbGx5IGluIGhhcmR3 YXJlICovCiAJaWYgKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9w cml2KSkgewotCQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKKwkJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9u OwogCQlpbnQgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+ PiAxNjsKIAkJaW50IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5z cmMpID4+IDE2OwogCkBAIC0zOTY1LDggKzM5NjUsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNr bF9wbGFuZV9zdHJpZGVfbXVsdChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIHUz MiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUsCiAJCSAgICAgaW50IGNvbG9yX3BsYW5lKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0 aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9u ID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCXUzMiBzdHJpZGUgPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbY29sb3JfcGxhbmVdLnN0cmlkZTsKIAogCWlmIChjb2xvcl9wbGFuZSA+PSBm Yi0+Zm9ybWF0LT5udW1fcGxhbmVzKQpAQCAtNDAzNSwxMCArNDAzNSwxMCBAQCBzdGF0aWMgdTMy IHNrbF9wbGFuZV9jdGxfZm9ybWF0KHUzMiBwaXhlbF9mb3JtYXQpCiAKIHN0YXRpYyB1MzIgc2ts X3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogewotCWlmICghcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aGFzX2FscGhhKQor CWlmICghcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmhhc19hbHBoYSkKIAkJcmV0dXJuIFBM QU5FX0NUTF9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxlbmRfbW9k ZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBMQU5FX0NU TF9BTFBIQV9ESVNBQkxFOwogCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6CkBAIC00MDQ2 LDE3ICs0MDQ2LDE3IEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCWNhc2UgRFJNX01PREVfQkxFTkRf Q09WRVJBR0U6CiAJCXJldHVybiBQTEFORV9DVExfQUxQSEFfSFdfUFJFTVVMVElQTFk7CiAJZGVm YXVsdDoKLQkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGUp OworCQlNSVNTSU5HX0NBU0UocGxhbmVfc3RhdGUtPmh3LnBpeGVsX2JsZW5kX21vZGUpOwogCQly ZXR1cm4gUExBTkVfQ1RMX0FMUEhBX0RJU0FCTEU7CiAJfQogfQogCiBzdGF0aWMgdTMyIGdsa19w bGFuZV9jb2xvcl9jdGxfYWxwaGEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKLQlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBo YSkKKwlpZiAoIXBsYW5lX3N0YXRlLT5ody5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpCiAJCXJldHVy biBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFz ZS5waXhlbF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxl bmRfbW9kZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBM QU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJY2FzZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSToK QEAgLTQwNjQsNyArNDA2NCw3IEBAIHN0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBo YShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlCiAJY2FzZSBEUk1f TU9ERV9CTEVORF9DT1ZFUkFHRToKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0hXX1BSRU1V TFRJUExZOwogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKTsKKwkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5ody5waXhlbF9ibGVu ZF9tb2RlKTsKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJfQogfQpAQCAt NDE1MCw4ICs0MTUwLDggQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUz MiBwbGFuZV9jdGw7CiAKQEAgLTQxNjEsMTAgKzQxNjEsMTAgQEAgdTMyIHNrbF9wbGFuZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX2FscGhhKHBsYW5lX3N0YXRlKTsKIAkJcGxhbmVfY3RsIHw9IFBMQU5F X0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwogCi0JCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xv cl9lbmNvZGluZyA9PSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpCisJCWlmIChwbGFuZV9zdGF0ZS0+ aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JUNzA5KQogCQkJcGxhbmVfY3Rs IHw9IFBMQU5FX0NUTF9ZVVZfVE9fUkdCX0NTQ19GT1JNQVRfQlQ3MDk7CiAKLQkJaWYgKHBsYW5l X3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQor CQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxM X1JBTkdFKQogCQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ZVVZfUkFOR0VfQ09SUkVDVElPTl9E SVNBQkxFOwogCX0KIApAQCAtNDIwNiw3ICs0MjA2LDcgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9j dGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmh3LmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IDA7 CiAKQEAgLTQyMTQsMTIgKzQyMTQsMTIgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcGxhbmVfY29sb3JfY3RsIHw9 IGdsa19wbGFuZV9jb2xvcl9jdGxfYWxwaGEocGxhbmVfc3RhdGUpOwogCiAJaWYgKGZiLT5mb3Jt YXQtPmlzX3l1diAmJiAhaWNsX2lzX2hkcl9wbGFuZShkZXZfcHJpdiwgcGxhbmUtPmlkKSkgewot CQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNS X0JUNzA5KQorCQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xP Ul9ZQ0JDUl9CVDcwOSkKIAkJCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9DU0NfTU9E RV9ZVVY3MDlfVE9fUkdCNzA5OwogCQllbHNlCiAJCQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVf Q09MT1JfQ1NDX01PREVfWVVWNjAxX1RPX1JHQjcwOTsKIAotCQlpZiAocGxhbmVfc3RhdGUtPmJh c2UuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCisJCWlmIChwbGFu ZV9zdGF0ZS0+aHcuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCiAJ CQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfWVVWX1JBTkdFX0NPUlJFQ1RJT05fRElT QUJMRTsKIAl9IGVsc2UgaWYgKGZiLT5mb3JtYXQtPmlzX3l1dikgewogCQlwbGFuZV9jb2xvcl9j dGwgfD0gUExBTkVfQ09MT1JfSU5QVVRfQ1NDX0VOQUJMRTsKQEAgLTU1NTMsNyArNTU1Myw3IEBA IHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9CiAJCXRv X2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX3BsYW5lLT5iYXNlLmRldik7Ci0Jc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQgcmV0OwogCWJv b2wgZm9yY2VfZGV0YWNoID0gIWZiIHx8ICFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwogCWJv b2wgbmVlZF9zY2FsZXIgPSBmYWxzZTsKQEAgLTEwNjUzLDcgKzEwNjUzLDcgQEAgc3RhdGljIHUz MiBpbnRlbF9jdXJzb3JfYmFzZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5 MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAl1MzIgYmFzZTsKIApAQCAt MTA3MDEsNyArMTA3MDEsNyBAQCBzdGF0aWMgaW50IGludGVsX2N1cnNvcl9jaGVja19zdXJmYWNl KHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFu ZS0+ZGV2KTsKLQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247 CiAJaW50IHNyY194LCBzcmNfeTsKIAl1MzIgb2Zmc2V0OwogCWludCByZXQ7CkBAIC0xMDc1MSw3 ICsxMDc1MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3Vyc29yX2NoZWNrX3N1cmZhY2Uoc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHN0YXRpYyBpbnQgaW50ZWxfY2hlY2tf Y3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWludCByZXQ7CiAKIAlp ZiAoZmIgJiYgZmItPm1vZGlmaWVyICE9IERSTV9GT1JNQVRfTU9EX0xJTkVBUikgewpAQCAtMTA4 MjUsNyArMTA4MjUsNyBAQCBzdGF0aWMgYm9vbCBpODQ1X2N1cnNvcl9zaXplX29rKGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiBzdGF0aWMgaW50IGk4NDVfY2hl Y2tfY3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJldDsKIAog CXJldCA9IGludGVsX2NoZWNrX2N1cnNvcihjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7CkBAIC0x MDk5MSw3ICsxMDk5MSw3IEBAIHN0YXRpYyB1MzIgaTl4eF9jdXJzb3JfY3RsKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAo cGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQorCWlmIChw bGFuZV9zdGF0ZS0+aHcucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQogCQljbnRsIHw9 IE1DVVJTT1JfUk9UQVRFXzE4MDsKIAogCXJldHVybiBjbnRsOwpAQCAtMTEwMjQsNyArMTEwMjQs NyBAQCBzdGF0aWMgYm9vbCBpOXh4X2N1cnNvcl9zaXplX29rKGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJICogY3Vyc29ycy4KIAkgKi8KIAlpZiAoSEFTX0NV Ul9GQkMoZGV2X3ByaXYpICYmCi0JICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJN X01PREVfUk9UQVRFXzApIHsKKwkgICAgcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uICYgRFJNX01P REVfUk9UQVRFXzApIHsKIAkJaWYgKGhlaWdodCA8IDggfHwgaGVpZ2h0ID4gd2lkdGgpCiAJCQly ZXR1cm4gZmFsc2U7CiAJfSBlbHNlIHsKQEAgLTExMDQwLDcgKzExMDQwLDcgQEAgc3RhdGljIGlu dCBpOXh4X2NoZWNrX2N1cnNvcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3Rh dGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7 CiAJaW50IHJldDsKIApAQCAtMTE2NDQsMTEgKzExNjQ0LDExIEBAIHN0YXRpYyBib29sIGludGVs X3dtX25lZWRfdXBkYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3VyLAogCWlm IChuZXctPmJhc2UudmlzaWJsZSAhPSBjdXItPmJhc2UudmlzaWJsZSkKIAkJcmV0dXJuIHRydWU7 CiAKLQlpZiAoIWN1ci0+YmFzZS5mYiB8fCAhbmV3LT5iYXNlLmZiKQorCWlmICghY3VyLT5ody5m YiB8fCAhbmV3LT5ody5mYikKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKGN1ci0+YmFzZS5mYi0+ bW9kaWZpZXIgIT0gbmV3LT5iYXNlLmZiLT5tb2RpZmllciB8fAotCSAgICBjdXItPmJhc2Uucm90 YXRpb24gIT0gbmV3LT5iYXNlLnJvdGF0aW9uIHx8CisJaWYgKGN1ci0+aHcuZmItPm1vZGlmaWVy ICE9IG5ldy0+aHcuZmItPm1vZGlmaWVyIHx8CisJICAgIGN1ci0+aHcucm90YXRpb24gIT0gbmV3 LT5ody5yb3RhdGlvbiB8fAogCSAgICBkcm1fcmVjdF93aWR0aCgmbmV3LT5iYXNlLnNyYykgIT0g ZHJtX3JlY3Rfd2lkdGgoJmN1ci0+YmFzZS5zcmMpIHx8CiAJICAgIGRybV9yZWN0X2hlaWdodCgm bmV3LT5iYXNlLnNyYykgIT0gZHJtX3JlY3RfaGVpZ2h0KCZjdXItPmJhc2Uuc3JjKSB8fAogCSAg ICBkcm1fcmVjdF93aWR0aCgmbmV3LT5iYXNlLmRzdCkgIT0gZHJtX3JlY3Rfd2lkdGgoJmN1ci0+ YmFzZS5kc3QpIHx8CkBAIC0xMjI4NCw3ICsxMjI4NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpv dXRwdXRfZm9ybWF0cyhlbnVtIGludGVsX291dHB1dF9mb3JtYXQgZm9ybWF0KQogc3RhdGljIHZv aWQgaW50ZWxfZHVtcF9wbGFuZV9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1l X2J1ZiBmb3JtYXRfbmFtZTsKIAogCWlmICghZmIpIHsKQEAgLTEyMzAwLDcgKzEyMzAwLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHVtcF9wbGFuZV9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5m b3JtYXQtPmZvcm1hdCwgJmZvcm1hdF9uYW1lKSwKIAkJICAgICAgeWVzbm8ocGxhbmVfc3RhdGUt PmJhc2UudmlzaWJsZSkpOwogCURSTV9ERUJVR19LTVMoIlx0cm90YXRpb246IDB4JXgsIHNjYWxl cjogJWRcbiIsCi0JCSAgICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uLCBwbGFuZV9zdGF0 ZS0+c2NhbGVyX2lkKTsKKwkJICAgICAgcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uLCBwbGFuZV9z dGF0ZS0+c2NhbGVyX2lkKTsKIAlpZiAocGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkKIAkJRFJN X0RFQlVHX0tNUygiXHRzcmM6ICIgRFJNX1JFQ1RfRlBfRk1UICIgZHN0OiAiIERSTV9SRUNUX0ZN VCAiXG4iLAogCQkJICAgICAgRFJNX1JFQ1RfRlBfQVJHKCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMp LApAQCAtMTQ2NjMsOCArMTQ2NjMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfdHJhY2tf ZmJzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2VhY2hfb2xkbmV3 X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLAogCQkJ CQkgICAgIG5ld19wbGFuZV9zdGF0ZSwgaSkKLQkJaW50ZWxfZnJvbnRidWZmZXJfdHJhY2sodG9f aW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKLQkJCQkJdG9faW50 ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwkJaW50ZWxfZnJvbnRi dWZmZXJfdHJhY2sodG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5ody5mYiks CisJCQkJCXRvX2ludGVsX2Zyb250YnVmZmVyKG5ld19wbGFuZV9zdGF0ZS0+aHcuZmIpLAogCQkJ CQlwbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsKIH0KIApAQCAtMTQ4MjMsNyArMTQ4MjMsNyBAQCBz dGF0aWMgaW50IGludGVsX3BsYW5lX3Bpbl9mYihzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKIAlpZiAo cGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUiAmJgpAQCAtMTQ4ODgsNyArMTQ4ODgsNyBAQCBpbnRl bF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KIAkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5l d19wbGFuZV9zdGF0ZS0+YmFzZS5zdGF0ZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShwbGFuZS0+ZGV2KTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IG5ld19wbGFuZV9zdGF0ZS0+aHcuZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9s ZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPnN0YXRlLT5mYik7CiAJaW50IHJldDsKQEAgLTE0 OTU2LDEyICsxNDk1NiwxMiBAQCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogCiAJCWZlbmNlID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+YmFzZS5y ZXN2KTsKIAkJaWYgKGZlbmNlKSB7Ci0JCQlhZGRfcnBzX2Jvb3N0X2FmdGVyX3ZibGFuayhuZXdf cGxhbmVfc3RhdGUtPmJhc2UuY3J0YywKKwkJCWFkZF9ycHNfYm9vc3RfYWZ0ZXJfdmJsYW5rKG5l d19wbGFuZV9zdGF0ZS0+aHcuY3J0YywKIAkJCQkJCSAgIGZlbmNlKTsKIAkJCWRtYV9mZW5jZV9w dXQoZmVuY2UpOwogCQl9CiAJfSBlbHNlIHsKLQkJYWRkX3Jwc19ib29zdF9hZnRlcl92Ymxhbmso bmV3X3BsYW5lX3N0YXRlLT5iYXNlLmNydGMsCisJCWFkZF9ycHNfYm9vc3RfYWZ0ZXJfdmJsYW5r KG5ld19wbGFuZV9zdGF0ZS0+aHcuY3J0YywKIAkJCQkJICAgbmV3X3BsYW5lX3N0YXRlLT5iYXNl LmZlbmNlKTsKIAl9CiAKQEAgLTE1MjExLDkgKzE1MjExLDEwIEBAIGludGVsX2xlZ2FjeV9jdXJz b3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKIAlpZiAocmV0KQogCQlnb3RvIG91 dF9mcmVlOwogCi0JaW50ZWxfZnJvbnRidWZmZXJfZmx1c2godG9faW50ZWxfZnJvbnRidWZmZXIo bmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwgT1JJR0lOX0ZMSVApOwotCWludGVsX2Zyb250YnVm ZmVyX3RyYWNrKHRvX2ludGVsX2Zyb250YnVmZmVyKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5mYiks Ci0JCQkJdG9faW50ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiKSwKKwlp bnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCh0b19pbnRlbF9mcm9udGJ1ZmZlcihuZXdfcGxhbmVfc3Rh dGUtPmh3LmZiKSwKKwkJCQlPUklHSU5fRkxJUCk7CisJaW50ZWxfZnJvbnRidWZmZXJfdHJhY2so dG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5ody5mYiksCisJCQkJdG9faW50 ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5ody5mYiksCiAJCQkJcGxhbmUtPmZyb250 YnVmZmVyX2JpdCk7CiAKIAkvKiBTd2FwIHBsYW5lIHN0YXRlICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9mYmMuYwppbmRleCBjNmNjMzc3NWYzYjguLjNlYThkMDEwZGI2YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCkBAIC02NjIsNyArNjYy LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2X3ByaXYt PmZiYzsKIAlzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlX2NhY2hlICpjYWNoZSA9ICZmYmMtPnN0YXRl X2NhY2hlOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2Uu ZmI7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAK IAljYWNoZS0+dm1hID0gTlVMTDsKIAljYWNoZS0+ZmxhZ3MgPSAwOwpAQCAtNjcxLDcgKzY3MSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpCiAJCWNhY2hlLT5jcnRjLmhzd19iZHdfcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUt PnBpeGVsX3JhdGU7CiAKLQljYWNoZS0+cGxhbmUucm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFz ZS5yb3RhdGlvbjsKKwljYWNoZS0+cGxhbmUucm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90 YXRpb247CiAJLyoKIAkgKiBTcmMgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgcm90YXRlZCBieSAy NzAgZGVncmVlcyBmb3IKIAkgKiB0aGUgOTAvMjcwIGRlZ3JlZSBwbGFuZSByb3RhdGlvbiBjYXNl cyAodG8gbWF0Y2ggdGhlCkBAIC02ODQsNyArNjg0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJj X3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYWNoZS0+cGxh bmUuYWRqdXN0ZWRfeSA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXS55OwogCWNhY2hlLT5w bGFuZS55ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjLnkxID4+IDE2OwogCi0JY2FjaGUtPnBsYW5l LnBpeGVsX2JsZW5kX21vZGUgPSBwbGFuZV9zdGF0ZS0+YmFzZS5waXhlbF9ibGVuZF9tb2RlOwor CWNhY2hlLT5wbGFuZS5waXhlbF9ibGVuZF9tb2RlID0gcGxhbmVfc3RhdGUtPmh3LnBpeGVsX2Js ZW5kX21vZGU7CiAKIAlpZiAoIWNhY2hlLT5wbGFuZS52aXNpYmxlKQogCQlyZXR1cm47CkBAIC0x MDQ3LDcgKzEwNDcsNyBAQCB2b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogdG8gcGlwZSBvciBwbGFuZSBBLiAqLwogCWZvcl9l YWNoX25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBp KSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwotCQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmVfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+aHcu Y3J0Yyk7CiAKIAkJaWYgKCFwbGFuZS0+aGFzX2ZiYykKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYwppbmRleCA4NDhjZTA3YThlYzIu LjQ2ZTNkNmNmNTk3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9v dmVybGF5LmMKQEAgLTY2OSw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfY29sb3JrZXko c3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJCWZsYWdzIHw9IERTVF9LRVlfRU5BQkxF OwogCiAJaWYgKHN0YXRlLT5iYXNlLnZpc2libGUpCi0JCWZvcm1hdCA9IHN0YXRlLT5iYXNlLmZi LT5mb3JtYXQtPmZvcm1hdDsKKwkJZm9ybWF0ID0gc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmZvcm1h dDsKIAogCXN3aXRjaCAoZm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX0M4OgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKaW5kZXggZmE2ODdjMDViMWVkLi4y NDUyNjMwMzEyOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJp dGUuYwpAQCAtMjQxLDggKzI0MSw4IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIGludCBpbnRlbF9wbGFuZV9jaGVj a19zdHJpZGUoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUt PmJhc2UucGxhbmUpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVf c3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJh c2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJv dGF0aW9uOwogCXUzMiBzdHJpZGUsIG1heF9zdHJpZGU7CiAKIAkvKgpAQCAtMjcyLDEwICsyNzIs MTAgQEAgaW50IGludGVsX3BsYW5lX2NoZWNrX3N0cmlkZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCiBpbnQgaW50ZWxfcGxhbmVfY2hlY2tfc3JjX2Nvb3Jk aW5hdGVzKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1 Y3QgZHJtX3JlY3QgKnNyYyA9ICZwbGFuZV9zdGF0ZS0+YmFzZS5zcmM7CiAJdTMyIHNyY194LCBz cmNfeSwgc3JjX3csIHNyY19oLCBoc3ViLCB2c3ViOwotCWJvb2wgcm90YXRlZCA9IGRybV9yb3Rh dGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24pOworCWJvb2wgcm90YXRl ZCA9IGRybV9yb3RhdGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uKTsKIAog CS8qCiAJICogSGFyZHdhcmUgZG9lc24ndCBoYW5kbGUgc3VicGl4ZWwgY29vcmRpbmF0ZXMuCkBA IC0zNDcsNyArMzQ3LDcgQEAgc2tsX3Byb2dyYW1fc2NhbGVyKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCiAJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3Rh dGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+aHcuZmI7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAlpbnQgc2NhbGVy X2lkID0gcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfc2NhbGVy ICpzY2FsZXIgPQpAQCAtNDkzLDEwICs0OTMsMTAgQEAgaWNsX3Byb2dyYW1faW5wdXRfY3NjKHN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJfTsKIAljb25zdCB1MTYgKmNzYzsKIAotCWlmIChw bGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5H RSkKLQkJY3NjID0gaW5wdXRfY3NjX21hdHJpeFtwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNv ZGluZ107CisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNC Q1JfRlVMTF9SQU5HRSkKKwkJY3NjID0gaW5wdXRfY3NjX21hdHJpeFtwbGFuZV9zdGF0ZS0+aHcu Y29sb3JfZW5jb2RpbmddOwogCWVsc2UKLQkJY3NjID0gaW5wdXRfY3NjX21hdHJpeF9scltwbGFu ZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZ107CisJCWNzYyA9IGlucHV0X2NzY19tYXRyaXhf bHJbcGxhbmVfc3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nXTsKIAogCUk5MTVfV1JJVEVfRlcoUExB TkVfSU5QVVRfQ1NDX0NPRUZGKHBpcGUsIHBsYW5lX2lkLCAwKSwgUk9GRihjc2NbMF0pIHwKIAkJ ICAgICAgR09GRihjc2NbMV0pKTsKQEAgLTUxMCw3ICs1MTAsNyBAQCBpY2xfcHJvZ3JhbV9pbnB1 dF9jc2Moc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAogCUk5MTVfV1JJVEVfRlcoUExBTkVf SU5QVVRfQ1NDX1BSRU9GRihwaXBlLCBwbGFuZV9pZCwgMCksCiAJCSAgICAgIFBSRU9GRl9ZVVZf VE9fUkdCX0hJKTsKLQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfcmFuZ2UgPT0gRFJNX0NP TE9SX1lDQkNSX0ZVTExfUkFOR0UpCisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9yYW5nZSA9 PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKIAkJSTkxNV9XUklURV9GVyhQTEFORV9JTlBV VF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5lX2lkLCAxKSwgMCk7CiAJZWxzZQogCQlJOTE1X1dSSVRF X0ZXKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmVfaWQsIDEpLApAQCAtNTQyLDgg KzU0Miw4IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJ dTMyIHNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7 CiAJdTMyIHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+ IDE2OwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkID0gcGxhbmVfc3RhdGUtPnBsYW5hcl9s aW5rZWRfcGxhbmU7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKLQl1OCBhbHBoYSA9IHBsYW5lX3N0YXRlLT5iYXNlLmFscGhhID4+IDg7 CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7 CisJdTggYWxwaGEgPSBwbGFuZV9zdGF0ZS0+aHcuYWxwaGEgPj4gODsKIAl1MzIgcGxhbmVfY29s b3JfY3RsID0gMDsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwogCXUzMiBrZXltc2ssIGtleW1h eDsKQEAgLTcxOSw3ICs3MTksNyBAQCBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51 bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKIAkvKgogCSAqIHxyfCAgIHwgYzAgYzEg YzIgfCAgIHxjcnwKQEAgLTc0NSw3ICs3NDUsNyBAQCBjaHZfdXBkYXRlX2NzYyhjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCQkJICAgIDAsIDQwOTYsICA3NjAx LAogCQl9LAogCX07Ci0JY29uc3QgczE2ICpjc2MgPSBjc2NfbWF0cml4W3BsYW5lX3N0YXRlLT5i YXNlLmNvbG9yX2VuY29kaW5nXTsKKwljb25zdCBzMTYgKmNzYyA9IGNzY19tYXRyaXhbcGxhbmVf c3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nXTsKIAogCS8qIFNlZW1zIFJHQiBkYXRhIGJ5cGFzc2Vz IHRoZSBDU0MgYWx3YXlzICovCiAJaWYgKCFmYi0+Zm9ybWF0LT5pc195dXYpCkBAIC03NzgsMTMg Kzc3OCwxMyBAQCB2bHZfdXBkYXRlX2NscmMoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBl ID0gcGxhbmUtPnBpcGU7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKIAlp bnQgY29udHJhc3QsIGJyaWdodG5lc3MsIHNoX3NjYWxlLCBzaF9zaW4sIHNoX2NvczsKIAogCWlm IChmYi0+Zm9ybWF0LT5pc195dXYgJiYKLQkgICAgcGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfcmFu Z2UgPT0gRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UpIHsKKwkgICAgcGxhbmVfc3RhdGUt Pmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKSB7CiAJCS8q CiAJCSAqIEV4cGFuZCBsaW1pdGVkIHJhbmdlIHRvIGZ1bGwgcmFuZ2U6CiAJCSAqIENvbnRyYXN0 IGlzIGFwcGxpZWQgZmlyc3QgYW5kIGlzIHVzZWQgdG8gZXhwYW5kIFkgcmFuZ2UuCkBAIC04MjUs OCArODI1LDggQEAgc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHUzMiB2bHZfc3ByaXRlX2N0bChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCBy b3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVs X3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUzMiBzcHJjdGw7 CiAKQEAgLTg3MSw3ICs4NzEsNyBAQCBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlp ZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JU NzA5KQorCWlmIChwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lD QkNSX0JUNzA5KQogCQlzcHJjdGwgfD0gU1BfWVVWX0ZPUk1BVF9CVDcwOTsKIAogCWlmIChmYi0+ bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCkBAIC04OTMsNyArODkzLDcgQEAg c3RhdGljIHZvaWQgdmx2X3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRl bF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBwaXBlIHBp cGUgPSBwbGFuZS0+cGlwZTsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwog CXUxNiBnYW1tYVs4XTsKQEAgLTEwMzYsOCArMTAzNiw4IEBAIHN0YXRpYyB1MzIgaXZiX3Nwcml0 ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+ YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBs YW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRl LT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5o dy5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5 ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUzMiBzcHJjdGw7CiAKQEAgLTEwNzIsMTAgKzEwNzIs MTAgQEAgc3RhdGljIHUzMiBpdmJfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAogCXNwcmN0bCB8PSBTUFJJVEVfSU5UX0dBTU1BX0RJU0FCTEU7 CiAKLQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lD QkNSX0JUNzA5KQorCWlmIChwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NP TE9SX1lDQkNSX0JUNzA5KQogCQlzcHJjdGwgfD0gU1BSSVRFX1lVVl9UT19SR0JfQ1NDX0ZPUk1B VF9CVDcwOTsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PSBEUk1fQ09M T1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09 IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQogCQlzcHJjdGwgfD0gU1BSSVRFX1lVVl9SQU5H RV9DT1JSRUNUSU9OX0RJU0FCTEU7CiAKIAlpZiAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFU X01PRF9YX1RJTEVEKQpAQCAtMTI3MCw4ICsxMjcwLDggQEAgc3RhdGljIHUzMiBnNHhfc3ByaXRl X2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQl0b19pOTE1KHBsYW5lX3N0YXRlLT5i YXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt PmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFu ZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3 LnJvdGF0aW9uOwogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkg PSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJdTMyIGR2c2NudHI7CiAKQEAgLTEzMDQsMTAgKzEzMDQs MTAgQEAgc3RhdGljIHUzMiBnNHhfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHBsYW5lX3N0YXRlLT5i YXNlLmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKKwlpZiAocGxhbmVf c3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKIAkJZHZz Y250ciB8PSBEVlNfWVVWX0ZPUk1BVF9CVDcwOTsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5j b2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwlpZiAocGxhbmVfc3Rh dGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQogCQlkdnNj bnRyIHw9IERWU19ZVVZfUkFOR0VfQ09SUkVDVElPTl9ESVNBQkxFOwogCiAJaWYgKGZiLT5tb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKQEAgLTEzMjgsNyArMTMyOCw3IEBAIHN0 YXRpYyB2b2lkIGc0eF91cGRhdGVfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGlwZSBwaXBl ID0gcGxhbmUtPnBpcGU7CiAJdTE2IGdhbW1hWzhdOwogCWludCBpOwpAQCAtMTM2MCw3ICsxMzYw LDcgQEAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBw aXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAl1MTYgZ2FtbWFbMTddOwogCWludCBpOwpAQCAtMTUw OSw3ICsxNTA5LDcgQEAgc3RhdGljIGludAogZzR4X3Nwcml0ZV9jaGVja19zY2FsaW5nKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZw bGFuZV9zdGF0ZS0+YmFzZS5zcmM7CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmcGxh bmVfc3RhdGUtPmJhc2UuZHN0OwogCWludCBzcmNfeCwgc3JjX3csIHNyY19oLCBjcnRjX3csIGNy dGNfaDsKQEAgLTE1NzYsNyArMTU3Niw3IEBAIGc0eF9zcHJpdGVfY2hlY2soc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaW50IG1heF9zY2FsZSA9IERSTV9QTEFORV9IRUxQ RVJfTk9fU0NBTElORzsKIAlpbnQgcmV0OwogCi0JaWYgKGludGVsX2ZiX3NjYWxhYmxlKHBsYW5l X3N0YXRlLT5iYXNlLmZiKSkgeworCWlmIChpbnRlbF9mYl9zY2FsYWJsZShwbGFuZV9zdGF0ZS0+ aHcuZmIpKSB7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNykgewogCQkJbWluX3NjYWxl ID0gMTsKIAkJCW1heF9zY2FsZSA9IDE2IDw8IDE2OwpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgaW50 IGNodl9wbGFuZV9jaGVja19yb3RhdGlvbihjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCXVuc2lnbmVkIGludCByb3RhdGlv biA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAogCS8qIENIViBpZ25vcmVzIHRoZSBtaXJy b3IgYml0IHdoZW4gdGhlIHJvdGF0ZSBiaXQgaXMgc2V0IDooICovCiAJaWYgKElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpICYmCkBAIC0xNjcyLDggKzE2NzIsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFu ZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUt PmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0 YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g cGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRl LT5ody5yb3RhdGlvbjsKIAlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsK IAogCWlmICghZmIpCkBAIC0xNzczLDggKzE3NzMsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9j aGVja19kc3RfY29vcmRpbmF0ZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf cwogCiBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19udjEyX3JvdGF0aW9uKGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNpZ25lZCBpbnQgcm90 YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25lZCBpbnQgcm90YXRp b24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247CiAJaW50IHNyY193ID0gZHJtX3JlY3Rfd2lk dGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7CiAKIAkvKiBEaXNwbGF5IFdBICMxMTA2 ICovCkBAIC0xNzkzLDcgKzE3OTMsNyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsK LQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi OworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZi OwogCWludCBtaW5fc2NhbGUgPSBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkc7CiAJaW50IG1h eF9zY2FsZSA9IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKIAlpbnQgcmV0OwpAQCAtMTgz NSw3ICsxODM1LDcgQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiByZXQ7CiAKIAkvKiBIVyBvbmx5IGhhcyA4 IGJpdHMgcGl4ZWwgcHJlY2lzaW9uLCBkaXNhYmxlIHBsYW5lIGlmIGludmlzaWJsZSAqLwotCWlm ICghKHBsYW5lX3N0YXRlLT5iYXNlLmFscGhhID4+IDgpKQorCWlmICghKHBsYW5lX3N0YXRlLT5o dy5hbHBoYSA+PiA4KSkKIAkJcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCiAJ cGxhbmVfc3RhdGUtPmN0bCA9IHNrbF9wbGFuZV9jdGwoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYTE1YTY3OWZhYWVmLi4xMWYzNmJhZjEwMjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtODExLDcgKzgxMSw3IEBAIHN0YXRpYyBib29s IGludGVsX3dtX3BsYW5lX3Zpc2libGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJICogYXJvdW5kIHRoaXMgcHJvYmxlbSB3aXRoIHRoZSB3YXRlcm1hcmsgY29k ZS4KIAkgKi8KIAlpZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikKLQkJcmV0dXJuIHBsYW5l X3N0YXRlLT5iYXNlLmZiICE9IE5VTEw7CisJCXJldHVybiBwbGFuZV9zdGF0ZS0+aHcuZmIgIT0g TlVMTDsKIAllbHNlCiAJCXJldHVybiBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwogfQpAQCAt MTA5OCw3ICsxMDk4LDcgQEAgc3RhdGljIHUxNiBnNHhfY29tcHV0ZV93bShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2li bGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcu ZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJLyoKIAkgKiBOb3QgMTAwJSBzdXJlIHdoaWNoIHdheSBF TEsgc2hvdWxkIGdvIGhlcmUgYXMgdGhlCkBAIC0xMzE4LDggKzEzMTgsOCBAQCBzdGF0aWMgaW50 IGc0eF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwKIAkJ CQkJICAgICBvbGRfcGxhbmVfc3RhdGUsCiAJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRlLCBpKSB7 Ci0JCWlmIChuZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyAhPSAmY3J0Yy0+YmFzZSAmJgotCQkg ICAgb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UpCisJCWlmIChuZXdf cGxhbmVfc3RhdGUtPmh3LmNydGMgIT0gJmNydGMtPmJhc2UgJiYKKwkJICAgIG9sZF9wbGFuZV9z dGF0ZS0+aHcuY3J0YyAhPSAmY3J0Yy0+YmFzZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChnNHhf cmF3X3BsYW5lX3dtX2NvbXB1dGUoY3J0Y19zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKSkKQEAgLTE2 MDMsNyArMTYwMyw3IEBAIHN0YXRpYyB1MTYgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92 aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUt Pmh3LmZiLT5mb3JtYXQtPmNwcFswXTsKIAljbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2s7CiAJaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CiAJd2lkdGggPSBjcnRj X3N0YXRlLT5waXBlX3NyY193OwpAQCAtMTgzOSw4ICsxODM5LDggQEAgc3RhdGljIGludCB2bHZf Y29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWZv cl9lYWNoX29sZG5ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsCiAJCQkJCSAg ICAgb2xkX3BsYW5lX3N0YXRlLAogCQkJCQkgICAgIG5ld19wbGFuZV9zdGF0ZSwgaSkgewotCQlp ZiAobmV3X3BsYW5lX3N0YXRlLT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UgJiYKLQkJICAgIG9s ZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjICE9ICZjcnRjLT5iYXNlKQorCQlpZiAobmV3X3BsYW5l X3N0YXRlLT5ody5jcnRjICE9ICZjcnRjLT5iYXNlICYmCisJCSAgICBvbGRfcGxhbmVfc3RhdGUt Pmh3LmNydGMgIT0gJmNydGMtPmJhc2UpCiAJCQljb250aW51ZTsKIAogCQlpZiAodmx2X3Jhd19w bGFuZV93bV9jb21wdXRlKGNydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSkpCkBAIC0yNDg1LDcg KzI0ODUsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUo Y3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5lX3N0 YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmIt PmZvcm1hdC0+Y3BwWzBdOwogCiAJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUt PnBpeGVsX3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKIApAQCAtMjUxNyw3ICsyNTE3LDcgQEAgc3Rh dGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBs YW5lX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+ Zm9ybWF0LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFsw XTsKIAogCW1ldGhvZDEgPSBpbGtfd21fbWV0aG9kMShjcnRjX3N0YXRlLT5waXhlbF9yYXRlLCBj cHAsIG1lbV92YWx1ZSk7CiAJbWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBp eGVsX3JhdGUsCkBAIC0yNTQzLDcgKzI1NDMsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX2N1 cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWlu dGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4g MDsKIAotCWNwcCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAg PSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJcmV0dXJuIGlsa193bV9t ZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCiAJCQkgICAgICBjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLApAQCAtMjU2MSw3ICsyNTYxLDcgQEAgc3RhdGljIHUz MiBpbGtfY29tcHV0ZV9mYmNfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0 LT5jcHBbMF07CisJY3BwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFswXTsKIAog CXJldHVybiBpbGtfd21fZmJjKHByaV92YWwsIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ YmFzZS5kc3QpLCBjcHApOwogfQpAQCAtNDE1MSwxMSArNDE1MSwxMSBAQCBpbnQgc2tsX2NoZWNr X3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCWlm ICghaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJCQlj b250aW51ZTsKIAotCQlpZiAoV0FSTl9PTighcGxhbmVfc3RhdGUtPmJhc2UuZmIpKQorCQlpZiAo V0FSTl9PTighcGxhbmVfc3RhdGUtPmh3LmZiKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCXBs YW5lX2Rvd25zY2FsZSA9IHNrbF9wbGFuZV9kb3duc2NhbGVfYW1vdW50KGNydGNfc3RhdGUsIHBs YW5lX3N0YXRlKTsKLQkJYnBwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBd ICogODsKKwkJYnBwID0gcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmNwcFswXSAqIDg7CiAJ CWlmIChicHAgPT0gNjQpCiAJCQlwbGFuZV9kb3duc2NhbGUgPSBtdWxfZml4ZWQxNihwbGFuZV9k b3duc2NhbGUsCiAJCQkJCQkgICAgICBmcF85X2Rpdl84KTsKQEAgLTQxODgsNyArNDE4OCw3IEBA IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCQkgICAgIGludCBjb2xvcl9wbGFuZSkKIHsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUp OwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2Uu ZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcu ZmI7CiAJdTMyIGRhdGFfcmF0ZTsKIAl1MzIgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogCXVpbnRf Zml4ZWRfMTZfMTZfdCBkb3duX3NjYWxlX2Ftb3VudDsKQEAgLTQ3MDksNyArNDcwOSw3IEBAIHNr bF9jb21wdXRlX3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlLAogCQkJICAgIHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwgaW50IGNvbG9yX3BsYW5l KQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJh c2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ aHcuZmI7CiAJaW50IHdpZHRoOwogCiAJLyoKQEAgLTQ3MjEsNyArNDcyMSw3IEBAIHNrbF9jb21w dXRlX3BsYW5lX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAogCXJldHVybiBza2xfY29tcHV0ZV93bV9wYXJhbXMoY3J0Y19zdGF0ZSwgd2lkdGgs CiAJCQkJICAgICBmYi0+Zm9ybWF0LCBmYi0+bW9kaWZpZXIsCi0JCQkJICAgICBwbGFuZV9zdGF0 ZS0+YmFzZS5yb3RhdGlvbiwKKwkJCQkgICAgIHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbiwKIAkJ CQkgICAgIHNrbF9hZGp1c3RlZF9wbGFuZV9waXhlbF9yYXRlKGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKSwKIAkJCQkgICAgIHdwLCBjb2xvcl9wbGFuZSk7CiB9CkBAIC01MDAwLDcgKzUwMDAsNyBA QCBzdGF0aWMgaW50IHNrbF9idWlsZF9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSBw bGFuZS0+aWQ7CiAJaW50IHJldDsKIApAQCAtNTAzMyw3ICs1MDMzLDcgQEAgc3RhdGljIGludCBp Y2xfYnVpbGRfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CXJldHVybiAwOwogCiAJaWYgKHBsYW5lX3N0YXRlLT5wbGFuYXJfbGlua2VkX3BsYW5lKSB7Ci0J CWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7 CisJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZi OwogCQllbnVtIHBsYW5lX2lkIHlfcGxhbmVfaWQgPSBwbGFuZV9zdGF0ZS0+cGxhbmFyX2xpbmtl ZF9wbGFuZS0+aWQ7CiAKIAkJV0FSTl9PTighaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0 YXRlLCBwbGFuZV9zdGF0ZSkpOwotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=