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, 17 Oct 2019 15:21:02 +0200 Message-ID: <20191017132105.15528-11-maarten.lankhorst@linux.intel.com> References: <20191017132105.15528-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 58B6E6EA8D for ; Thu, 17 Oct 2019 13:21:10 +0000 (UTC) In-Reply-To: <20191017132105.15528-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 IDc2NDAyZGY4ZTY5OC4uOTFlOWZiMmI0ZGY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjE4OSw3ICsyMTg5LDcgQEAgdTMyIGludGVsX2Zi X3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqc3RhdGUsCiAJCQkgIGludCBjb2xvcl9wbGFuZSkKIHsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmh3LmZiOwogCXVuc2lnbmVkIGludCBjcHAgPSBmYi0+ Zm9ybWF0LT5jcHBbY29sb3JfcGxhbmVdOwogCXVuc2lnbmVkIGludCBwaXRjaCA9IHN0YXRlLT5j b2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCkBAIC0yMjkwLDggKzIyOTAsOCBAQCBz dGF0aWMgdTMyIGludGVsX3BsYW5lX2FkanVzdF9hbGlnbmVkX29mZnNldChpbnQgKngsIGludCAq eSwKIAkJCQkJICAgICBpbnQgY29sb3JfcGxhbmUsCiAJCQkJCSAgICAgdTMyIG9sZF9vZmZzZXQs IHUzMiBuZXdfb2Zmc2V0KQogewotCXJldHVybiBpbnRlbF9hZGp1c3RfYWxpZ25lZF9vZmZzZXQo eCwgeSwgc3RhdGUtPmJhc2UuZmIsIGNvbG9yX3BsYW5lLAotCQkJCQkgICBzdGF0ZS0+YmFzZS5y b3RhdGlvbiwKKwlyZXR1cm4gaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KHgsIHksIHN0YXRl LT5ody5mYiwgY29sb3JfcGxhbmUsCisJCQkJCSAgIHN0YXRlLT5ody5yb3RhdGlvbiwKIAkJCQkJ ICAgc3RhdGUtPmNvbG9yX3BsYW5lW2NvbG9yX3BsYW5lXS5zdHJpZGUsCiAJCQkJCSAgIG9sZF9v ZmZzZXQsIG5ld19vZmZzZXQpOwogfQpAQCAtMjM2Nyw4ICsyMzY3LDggQEAgc3RhdGljIHUzMiBp bnRlbF9wbGFuZV9jb21wdXRlX2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5LAogewogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShzdGF0ZS0+YmFz ZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9wbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmJhc2Uu cm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+aHcu ZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCBw aXRjaCA9IHN0YXRlLT5jb2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0uc3RyaWRlOwogCXUzMiBhbGln bm1lbnQ7CiAKQEAgLTI1NTUsNyArMjU1NSw3IEBAIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFw KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBs YW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5l LT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5ody5mYjsKIAlpbnQgaTsKIAogCS8qIFdlIGRvbid0IHdhbnQgdG8gZGVhbCB3aXRo IHJlbWFwcGluZyB3aXRoIGN1cnNvcnMgKi8KQEAgLTI1OTQsOCArMjU5NCw4IEBAIGJvb2wgaW50 ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCiBzdGF0aWMgYm9vbCBpbnRlbF9wbGFuZV9uZWVkc19yZW1hcChjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNp Z25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25l ZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb247CiAJdTMyIHN0cmlkZSwg bWF4X3N0cmlkZTsKIAogCS8qCkBAIC0yNzg2LDEwICsyNzg2LDEwIEBAIGludGVsX3BsYW5lX3Jl bWFwX2d0dChzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJh c2UucGxhbmUtPmRldik7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5o dy5mYjsKIAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJh bWVidWZmZXIoZmIpOwogCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICppbmZvID0gJnBsYW5l X3N0YXRlLT52aWV3LnJvdGF0ZWQ7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3Rh dGUtPmJhc2Uucm90YXRpb247CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt Pmh3LnJvdGF0aW9uOwogCWludCBpLCBudW1fcGxhbmVzID0gZmItPmZvcm1hdC0+bnVtX3BsYW5l czsKIAl1bnNpZ25lZCBpbnQgdGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsK IAl1bnNpZ25lZCBpbnQgc3JjX3gsIHNyY195OwpAQCAtMjg5NSw4ICsyODk1LDggQEAgc3RhdGlj IGludAogaW50ZWxfcGxhbmVfY29tcHV0ZV9ndHQoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmZiID0KLQkJ dG9faW50ZWxfZnJhbWVidWZmZXIocGxhbmVfc3RhdGUtPmJhc2UuZmIpOwotCXVuc2lnbmVkIGlu dCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCQl0b19pbnRlbF9mcmFt ZWJ1ZmZlcihwbGFuZV9zdGF0ZS0+aHcuZmIpOworCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBs YW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAlpbnQgaSwgbnVtX3BsYW5lczsKIAogCWlmICghZmIp CkBAIC0zMTk2LDcgKzMxOTYsNyBAQCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCQkJY29udGludWU7CiAKIAkJaWYgKGludGVsX3Bs YW5lX2dndHRfb2Zmc2V0KHN0YXRlKSA9PSBwbGFuZV9jb25maWctPmJhc2UpIHsKLQkJCWZiID0g c3RhdGUtPmJhc2UuZmI7CisJCQlmYiA9IHN0YXRlLT5ody5mYjsKIAkJCWRybV9mcmFtZWJ1ZmZl cl9nZXQoZmIpOwogCQkJZ290byB2YWxpZF9mYjsKIAkJfQpAQCAtMzIxNCwxMSArMzIxNCwxMSBA QCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAogCXJldHVybjsKIAogdmFsaWRfZmI6Ci0JaW50ZWxfc3RhdGUtPmJhc2Uucm90YXRpb24g PSBwbGFuZV9jb25maWctPnJvdGF0aW9uOworCWludGVsX3N0YXRlLT5ody5yb3RhdGlvbiA9IHBs YW5lX2NvbmZpZy0+cm90YXRpb247CiAJaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoJmludGVsX3N0 YXRlLT52aWV3LCBmYiwKLQkJCQlpbnRlbF9zdGF0ZS0+YmFzZS5yb3RhdGlvbik7CisJCQkJaW50 ZWxfc3RhdGUtPmh3LnJvdGF0aW9uKTsKIAlpbnRlbF9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0uc3Ry aWRlID0KLQkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5iYXNlLnJvdGF0aW9u KTsKKwkJaW50ZWxfZmJfcGl0Y2goZmIsIDAsIGludGVsX3N0YXRlLT5ody5yb3RhdGlvbik7CiAK IAlpbnRlbF9zdGF0ZS0+dm1hID0KIAkJaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsCkBA IC0zMzQ1LDcgKzMzNDUsNyBAQCBzdGF0aWMgaW50IGljbF9tYXhfcGxhbmVfaGVpZ2h0KHZvaWQp CiBzdGF0aWMgYm9vbCBza2xfY2hlY2tfbWFpbl9jY3NfY29vcmRpbmF0ZXMoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJCQkJICAgaW50IG1haW5feCwgaW50IG1haW5f eSwgdTMyIG1haW5fb2Zmc2V0KQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwog CWludCB2c3ViID0gZmItPmZvcm1hdC0+dnN1YjsKIAlpbnQgYXV4X3ggPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbMV0ueDsKQEAgLTMzODMsOCArMzM4Myw4IEBAIHN0YXRpYyBib29sIHNrbF9j aGVja19tYWluX2Njc19jb29yZGluYXRlcyhzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlCiBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZhY2Uoc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQg aW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCWludCB4ID0gcGxhbmVf c3RhdGUtPmJhc2Uuc3JjLngxID4+IDE2OwogCWludCB5ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3Jj LnkxID4+IDE2OwogCWludCB3ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLnNy YykgPj4gMTY7CkBAIC0zNDc5LDggKzM0NzksOCBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWlu X3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAogc3RhdGlj IGludCBza2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUt PmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFu ZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3 LnJvdGF0aW9uOwogCWludCBtYXhfd2lkdGggPSBza2xfbWF4X3BsYW5lX3dpZHRoKGZiLCAxLCBy b3RhdGlvbik7CiAJaW50IG1heF9oZWlnaHQgPSA0MDk2OwogCWludCB4ID0gcGxhbmVfc3RhdGUt PmJhc2Uuc3JjLngxID4+IDE3OwpAQCAtMzUwOCw3ICszNTA4LDcgQEAgc3RhdGljIGludCBza2xf Y2hlY2tfbnYxMl9hdXhfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogCiBzdGF0aWMgaW50IHNrbF9jaGVja19jY3NfYXV4X3N1cmZhY2Uoc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWludCBzcmNfeCA9IHBsYW5lX3N0YXRl LT5iYXNlLnNyYy54MSA+PiAxNjsKIAlpbnQgc3JjX3kgPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMu eTEgPj4gMTY7CiAJaW50IGhzdWIgPSBmYi0+Zm9ybWF0LT5oc3ViOwpAQCAtMzUyOSw3ICszNTI5 LDcgQEAgc3RhdGljIGludCBza2xfY2hlY2tfY2NzX2F1eF9zdXJmYWNlKHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAKIGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJldDsKIAog CXJldCA9IGludGVsX3BsYW5lX2NvbXB1dGVfZ3R0KHBsYW5lX3N0YXRlKTsKQEAgLTM2MTQsOCAr MzYxNCw4IEBAIHN0YXRpYyB1MzIgaTl4eF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAl1MzIgZHNwY250cjsK IAogCWRzcGNudHIgPSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKQEAgLTM2OTksNyArMzY5OSw3IEBA IGludCBpOXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSkKIAogCS8qIEhTVy9CRFcgZG8gdGhpcyBhdXRvbWFnaWNhbGx5IGluIGhhcmR3 YXJlICovCiAJaWYgKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9w cml2KSkgewotCQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKKwkJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9u OwogCQlpbnQgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+ PiAxNjsKIAkJaW50IHNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5z cmMpID4+IDE2OwogCkBAIC0zOTUyLDggKzM5NTIsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNr bF9wbGFuZV9zdHJpZGVfbXVsdChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIHUz MiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUsCiAJCSAgICAgaW50IGNvbG9yX3BsYW5lKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0 aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9u ID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCXUzMiBzdHJpZGUgPSBwbGFuZV9zdGF0ZS0+ Y29sb3JfcGxhbmVbY29sb3JfcGxhbmVdLnN0cmlkZTsKIAogCWlmIChjb2xvcl9wbGFuZSA+PSBm Yi0+Zm9ybWF0LT5udW1fcGxhbmVzKQpAQCAtNDAyMiwxMCArNDAyMiwxMCBAQCBzdGF0aWMgdTMy IHNrbF9wbGFuZV9jdGxfZm9ybWF0KHUzMiBwaXhlbF9mb3JtYXQpCiAKIHN0YXRpYyB1MzIgc2ts X3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogewotCWlmICghcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+aGFzX2FscGhhKQor CWlmICghcGxhbmVfc3RhdGUtPmh3LmZiLT5mb3JtYXQtPmhhc19hbHBoYSkKIAkJcmV0dXJuIFBM QU5FX0NUTF9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxlbmRfbW9k ZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBMQU5FX0NU TF9BTFBIQV9ESVNBQkxFOwogCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6CkBAIC00MDMz LDE3ICs0MDMzLDE3IEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9hbHBoYShjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCWNhc2UgRFJNX01PREVfQkxFTkRf Q09WRVJBR0U6CiAJCXJldHVybiBQTEFORV9DVExfQUxQSEFfSFdfUFJFTVVMVElQTFk7CiAJZGVm YXVsdDoKLQkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGUp OworCQlNSVNTSU5HX0NBU0UocGxhbmVfc3RhdGUtPmh3LnBpeGVsX2JsZW5kX21vZGUpOwogCQly ZXR1cm4gUExBTkVfQ1RMX0FMUEhBX0RJU0FCTEU7CiAJfQogfQogCiBzdGF0aWMgdTMyIGdsa19w bGFuZV9jb2xvcl9jdGxfYWxwaGEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKLQlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBo YSkKKwlpZiAoIXBsYW5lX3N0YXRlLT5ody5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpCiAJCXJldHVy biBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwogCi0Jc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFz ZS5waXhlbF9ibGVuZF9tb2RlKSB7CisJc3dpdGNoIChwbGFuZV9zdGF0ZS0+aHcucGl4ZWxfYmxl bmRfbW9kZSkgewogCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKIAkJcmV0dXJuIFBM QU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJY2FzZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSToK QEAgLTQwNTEsNyArNDA1MSw3IEBAIHN0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBo YShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlCiAJY2FzZSBEUk1f TU9ERV9CTEVORF9DT1ZFUkFHRToKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0hXX1BSRU1V TFRJUExZOwogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwbGFuZV9zdGF0ZS0+YmFzZS5waXhl bF9ibGVuZF9tb2RlKTsKKwkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5ody5waXhlbF9ibGVu ZF9tb2RlKTsKIAkJcmV0dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0RJU0FCTEU7CiAJfQogfQpAQCAt NDEzNyw4ICs0MTM3LDggQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2ln bmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwogCXUz MiBwbGFuZV9jdGw7CiAKQEAgLTQxNDgsMTAgKzQxNDgsMTAgQEAgdTMyIHNrbF9wbGFuZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX2FscGhhKHBsYW5lX3N0YXRlKTsKIAkJcGxhbmVfY3RsIHw9IFBMQU5F X0NUTF9QTEFORV9HQU1NQV9ESVNBQkxFOwogCi0JCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xv cl9lbmNvZGluZyA9PSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpCisJCWlmIChwbGFuZV9zdGF0ZS0+ aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JUNzA5KQogCQkJcGxhbmVfY3Rs IHw9IFBMQU5FX0NUTF9ZVVZfVE9fUkdCX0NTQ19GT1JNQVRfQlQ3MDk7CiAKLQkJaWYgKHBsYW5l X3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQor CQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxM X1JBTkdFKQogCQkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ZVVZfUkFOR0VfQ09SUkVDVElPTl9E SVNBQkxFOwogCX0KIApAQCAtNDE5Myw3ICs0MTkzLDcgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9j dGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZS0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmVfc3RhdGUtPmh3LmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IDA7 CiAKQEAgLTQyMDEsMTIgKzQyMDEsMTIgQEAgdTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcGxhbmVfY29sb3JfY3RsIHw9 IGdsa19wbGFuZV9jb2xvcl9jdGxfYWxwaGEocGxhbmVfc3RhdGUpOwogCiAJaWYgKGZiLT5mb3Jt YXQtPmlzX3l1diAmJiAhaWNsX2lzX2hkcl9wbGFuZShkZXZfcHJpdiwgcGxhbmUtPmlkKSkgewot CQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNS X0JUNzA5KQorCQlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX2VuY29kaW5nID09IERSTV9DT0xP Ul9ZQ0JDUl9CVDcwOSkKIAkJCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9DU0NfTU9E RV9ZVVY3MDlfVE9fUkdCNzA5OwogCQllbHNlCiAJCQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVf Q09MT1JfQ1NDX01PREVfWVVWNjAxX1RPX1JHQjcwOTsKIAotCQlpZiAocGxhbmVfc3RhdGUtPmJh c2UuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCisJCWlmIChwbGFu ZV9zdGF0ZS0+aHcuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCiAJ CQlwbGFuZV9jb2xvcl9jdGwgfD0gUExBTkVfQ09MT1JfWVVWX1JBTkdFX0NPUlJFQ1RJT05fRElT QUJMRTsKIAl9IGVsc2UgaWYgKGZiLT5mb3JtYXQtPmlzX3l1dikgewogCQlwbGFuZV9jb2xvcl9j dGwgfD0gUExBTkVfQ09MT1JfSU5QVVRfQ1NDX0VOQUJMRTsKQEAgLTU0OTEsNyArNTQ5MSw3IEBA IHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9CiAJCXRv X2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX3BsYW5lLT5iYXNlLmRldik7Ci0Jc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQgcmV0OwogCWJv b2wgZm9yY2VfZGV0YWNoID0gIWZiIHx8ICFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwogCWJv b2wgbmVlZF9zY2FsZXIgPSBmYWxzZTsKQEAgLTEwNTIzLDcgKzEwNTIzLDcgQEAgc3RhdGljIHUz MiBpbnRlbF9jdXJzb3JfYmFzZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5 MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAl1MzIgYmFzZTsKIApAQCAt MTA1MzYsNyArMTA1MzYsNyBAQCBzdGF0aWMgdTMyIGludGVsX2N1cnNvcl9iYXNlKGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAKIAkvKiBJTEsrIGRvIHRoaXMg YXV0b21hZ2ljYWxseSAqLwogCWlmIChIQVNfR01DSChkZXZfcHJpdikgJiYKLQkgICAgcGxhbmVf c3RhdGUtPmJhc2Uucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQorCSAgICBwbGFuZV9z dGF0ZS0+aHcucm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfMTgwKQogCQliYXNlICs9IChkcm1f cmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5iYXNlLmRzdCkgKgogCQkJIGRybV9yZWN0X3dpZHRo KCZwbGFuZV9zdGF0ZS0+YmFzZS5kc3QpIC0gMSkgKiBmYi0+Zm9ybWF0LT5jcHBbMF07CiAKQEAg LTEwNjA4LDcgKzEwNjA4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jdXJzb3JfY2hlY2tfc3VyZmFj ZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogc3RhdGljIGludCBpbnRl bF9jaGVja19jdXJzb3Ioc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJaW50IHJl dDsKIAogCWlmIChmYiAmJiBmYi0+bW9kaWZpZXIgIT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSKSB7 CkBAIC0xMDY4Miw3ICsxMDY4Miw3IEBAIHN0YXRpYyBib29sIGk4NDVfY3Vyc29yX3NpemVfb2so Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHN0YXRpYyBpbnQg aTg0NV9jaGVja19jdXJzb3Ioc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQg cmV0OwogCiAJcmV0ID0gaW50ZWxfY2hlY2tfY3Vyc29yKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRl KTsKQEAgLTEwODQ4LDcgKzEwODQ4LDcgQEAgc3RhdGljIHUzMiBpOXh4X2N1cnNvcl9jdGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiAwOwogCX0K IAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiAmIERSTV9NT0RFX1JPVEFURV8xODAp CisJaWYgKHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbiAmIERSTV9NT0RFX1JPVEFURV8xODApCiAJ CWNudGwgfD0gTUNVUlNPUl9ST1RBVEVfMTgwOwogCiAJcmV0dXJuIGNudGw7CkBAIC0xMDg4MSw3 ICsxMDg4MSw3IEBAIHN0YXRpYyBib29sIGk5eHhfY3Vyc29yX3NpemVfb2soY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAkgKiBjdXJzb3JzLgogCSAqLwogCWlm IChIQVNfQ1VSX0ZCQyhkZXZfcHJpdikgJiYKLQkgICAgcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRp b24gJiBEUk1fTU9ERV9ST1RBVEVfMCkgeworCSAgICBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb24g JiBEUk1fTU9ERV9ST1RBVEVfMCkgewogCQlpZiAoaGVpZ2h0IDwgOCB8fCBoZWlnaHQgPiB3aWR0 aCkKIAkJCXJldHVybiBmYWxzZTsKIAl9IGVsc2UgewpAQCAtMTA4OTcsNyArMTA4OTcsNyBAQCBz dGF0aWMgaW50IGk5eHhfY2hlY2tfY3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShw bGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFu ZS0+cGlwZTsKIAlpbnQgcmV0OwogCkBAIC0xMTUwMSwxMSArMTE1MDEsMTEgQEAgc3RhdGljIGJv b2wgaW50ZWxfd21fbmVlZF91cGRhdGUoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpj dXIsCiAJaWYgKG5ldy0+YmFzZS52aXNpYmxlICE9IGN1ci0+YmFzZS52aXNpYmxlKQogCQlyZXR1 cm4gdHJ1ZTsKIAotCWlmICghY3VyLT5iYXNlLmZiIHx8ICFuZXctPmJhc2UuZmIpCisJaWYgKCFj dXItPmh3LmZiIHx8ICFuZXctPmh3LmZiKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoY3VyLT5i YXNlLmZiLT5tb2RpZmllciAhPSBuZXctPmJhc2UuZmItPm1vZGlmaWVyIHx8Ci0JICAgIGN1ci0+ YmFzZS5yb3RhdGlvbiAhPSBuZXctPmJhc2Uucm90YXRpb24gfHwKKwlpZiAoY3VyLT5ody5mYi0+ bW9kaWZpZXIgIT0gbmV3LT5ody5mYi0+bW9kaWZpZXIgfHwKKwkgICAgY3VyLT5ody5yb3RhdGlv biAhPSBuZXctPmh3LnJvdGF0aW9uIHx8CiAJICAgIGRybV9yZWN0X3dpZHRoKCZuZXctPmJhc2Uu c3JjKSAhPSBkcm1fcmVjdF93aWR0aCgmY3VyLT5iYXNlLnNyYykgfHwKIAkgICAgZHJtX3JlY3Rf aGVpZ2h0KCZuZXctPmJhc2Uuc3JjKSAhPSBkcm1fcmVjdF9oZWlnaHQoJmN1ci0+YmFzZS5zcmMp IHx8CiAJICAgIGRybV9yZWN0X3dpZHRoKCZuZXctPmJhc2UuZHN0KSAhPSBkcm1fcmVjdF93aWR0 aCgmY3VyLT5iYXNlLmRzdCkgfHwKQEAgLTEyMDU2LDcgKzEyMDU2LDcgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKm91dHB1dF9mb3JtYXRzKGVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBmb3JtYXQpCiBz dGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BsYW5lX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKLQljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCXN0cnVjdCBkcm1fZm9y bWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCiAJaWYgKCFmYikgewpAQCAtMTIwNzIsNyArMTIw NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BsYW5lX3N0YXRlKGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJCSAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUoZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0X25hbWUpLAogCQkgICAgICB5ZXNubyhwbGFu ZV9zdGF0ZS0+YmFzZS52aXNpYmxlKSk7CiAJRFJNX0RFQlVHX0tNUygiXHRyb3RhdGlvbjogMHgl eCwgc2NhbGVyOiAlZFxuIiwKLQkJICAgICAgcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24sIHBs YW5lX3N0YXRlLT5zY2FsZXJfaWQpOworCQkgICAgICBwbGFuZV9zdGF0ZS0+aHcucm90YXRpb24s IHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQpOwogCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxl KQogCQlEUk1fREVCVUdfS01TKCJcdHNyYzogIiBEUk1fUkVDVF9GUF9GTVQgIiBkc3Q6ICIgRFJN X1JFQ1RfRk1UICJcbiIsCiAJCQkgICAgICBEUk1fUkVDVF9GUF9BUkcoJnBsYW5lX3N0YXRlLT5i YXNlLnNyYyksCkBAIC0xNDIzOCw4ICsxNDIzOCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21p Y190cmFja19mYnMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAlmb3JfZWFj aF9vbGRuZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3Rh dGUsCiAJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRlLCBpKQotCQlpbnRlbF9mcm9udGJ1ZmZlcl90 cmFjayh0b19pbnRlbF9mcm9udGJ1ZmZlcihvbGRfcGxhbmVfc3RhdGUtPmJhc2UuZmIpLAotCQkJ CQl0b19pbnRlbF9mcm9udGJ1ZmZlcihuZXdfcGxhbmVfc3RhdGUtPmJhc2UuZmIpLAorCQlpbnRl bF9mcm9udGJ1ZmZlcl90cmFjayh0b19pbnRlbF9mcm9udGJ1ZmZlcihvbGRfcGxhbmVfc3RhdGUt Pmh3LmZiKSwKKwkJCQkJdG9faW50ZWxfZnJvbnRidWZmZXIobmV3X3BsYW5lX3N0YXRlLT5ody5m YiksCiAJCQkJCXBsYW5lLT5mcm9udGJ1ZmZlcl9iaXQpOwogfQogCkBAIC0xNDM5OCw3ICsxNDM5 OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxhbmVfcGluX2ZiKHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2lu dGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK IAogCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SICYmCkBAIC0xNDQ2Myw3ICsxNDQ2Myw3 IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQogCQl0b19pbnRlbF9hdG9taWNf c3RhdGUobmV3X3BsYW5lX3N0YXRlLT5iYXNlLnN0YXRlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5kZXYpOwotCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5iYXNlLmZiOworCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5ody5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3RhdGUtPmZiKTsKIAlpbnQgcmV0 OwpAQCAtMTQ1MzEsMTIgKzE0NTMxLDEyIEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAKIAkJZmVuY2UgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2Jq LT5iYXNlLnJlc3YpOwogCQlpZiAoZmVuY2UpIHsKLQkJCWFkZF9ycHNfYm9vc3RfYWZ0ZXJfdmJs YW5rKG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjLAorCQkJYWRkX3Jwc19ib29zdF9hZnRlcl92 YmxhbmsobmV3X3BsYW5lX3N0YXRlLT5ody5jcnRjLAogCQkJCQkJICAgZmVuY2UpOwogCQkJZG1h X2ZlbmNlX3B1dChmZW5jZSk7CiAJCX0KIAl9IGVsc2UgewotCQlhZGRfcnBzX2Jvb3N0X2FmdGVy X3ZibGFuayhuZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YywKKwkJYWRkX3Jwc19ib29zdF9hZnRl cl92YmxhbmsobmV3X3BsYW5lX3N0YXRlLT5ody5jcnRjLAogCQkJCQkgICBuZXdfcGxhbmVfc3Rh dGUtPmJhc2UuZmVuY2UpOwogCX0KIApAQCAtMTQ3ODYsOSArMTQ3ODYsMTAgQEAgaW50ZWxfbGVn YWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqX3BsYW5lLAogCWlmIChyZXQpCiAJ CWdvdG8gb3V0X2ZyZWU7CiAKLQlpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaCh0b19pbnRlbF9mcm9u dGJ1ZmZlcihuZXdfcGxhbmVfc3RhdGUtPmJhc2UuZmIpLCBPUklHSU5fRkxJUCk7Ci0JaW50ZWxf ZnJvbnRidWZmZXJfdHJhY2sodG9faW50ZWxfZnJvbnRidWZmZXIob2xkX3BsYW5lX3N0YXRlLT5i YXNlLmZiKSwKLQkJCQl0b19pbnRlbF9mcm9udGJ1ZmZlcihuZXdfcGxhbmVfc3RhdGUtPmJhc2Uu ZmIpLAorCWludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHRvX2ludGVsX2Zyb250YnVmZmVyKG5ld19w bGFuZV9zdGF0ZS0+aHcuZmIpLAorCQkJCU9SSUdJTl9GTElQKTsKKwlpbnRlbF9mcm9udGJ1ZmZl cl90cmFjayh0b19pbnRlbF9mcm9udGJ1ZmZlcihvbGRfcGxhbmVfc3RhdGUtPmh3LmZiKSwKKwkJ CQl0b19pbnRlbF9mcm9udGJ1ZmZlcihuZXdfcGxhbmVfc3RhdGUtPmh3LmZiKSwKIAkJCQlwbGFu ZS0+ZnJvbnRidWZmZXJfYml0KTsKIAogCS8qIFN3YXAgcGxhbmUgc3RhdGUgKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCmluZGV4IGM2Y2MzNzc1ZjNiOC4uM2VhOGQw MTBkYjZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zi Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKQEAgLTY2 Miw3ICs2NjIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZk ZXZfcHJpdi0+ZmJjOwogCXN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2FjaGUgKmNhY2hlID0gJmZi Yy0+c3RhdGVfY2FjaGU7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+YmFzZS5mYjsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5o dy5mYjsKIAogCWNhY2hlLT52bWEgPSBOVUxMOwogCWNhY2hlLT5mbGFncyA9IDA7CkBAIC02NzEs NyArNjcxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJP QURXRUxMKGRldl9wcml2KSkKIAkJY2FjaGUtPmNydGMuaHN3X2Jkd19waXhlbF9yYXRlID0gY3J0 Y19zdGF0ZS0+cGl4ZWxfcmF0ZTsKIAotCWNhY2hlLT5wbGFuZS5yb3RhdGlvbiA9IHBsYW5lX3N0 YXRlLT5iYXNlLnJvdGF0aW9uOworCWNhY2hlLT5wbGFuZS5yb3RhdGlvbiA9IHBsYW5lX3N0YXRl LT5ody5yb3RhdGlvbjsKIAkvKgogCSAqIFNyYyBjb29yZGluYXRlcyBhcmUgYWxyZWFkeSByb3Rh dGVkIGJ5IDI3MCBkZWdyZWVzIGZvcgogCSAqIHRoZSA5MC8yNzAgZGVncmVlIHBsYW5lIHJvdGF0 aW9uIGNhc2VzICh0byBtYXRjaCB0aGUKQEAgLTY4NCw3ICs2ODQsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNh Y2hlLT5wbGFuZS5hZGp1c3RlZF95ID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLnk7CiAJ Y2FjaGUtPnBsYW5lLnkgPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueTEgPj4gMTY7CiAKLQljYWNo ZS0+cGxhbmUucGl4ZWxfYmxlbmRfbW9kZSA9IHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2JsZW5k X21vZGU7CisJY2FjaGUtPnBsYW5lLnBpeGVsX2JsZW5kX21vZGUgPSBwbGFuZV9zdGF0ZS0+aHcu cGl4ZWxfYmxlbmRfbW9kZTsKIAogCWlmICghY2FjaGUtPnBsYW5lLnZpc2libGUpCiAJCXJldHVy bjsKQEAgLTEwNDcsNyArMTA0Nyw3IEBAIHZvaWQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiB0byBwaXBlIG9yIHBsYW5lIEEuICov CiAJZm9yX2VhY2hfbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVf c3RhdGUsIGkpIHsKIAkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Ci0JCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+YmFzZS5j cnRjKTsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBsYW5lX3N0 YXRlLT5ody5jcnRjKTsKIAogCQlpZiAoIXBsYW5lLT5oYXNfZmJjKQogCQkJY29udGludWU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCmluZGV4IDIzNjBm MTlmOTY5NC4uYjVmMTA1ZTM0NmI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX292ZXJsYXkuYwpAQCAtNjY4LDcgKzY2OCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9j b2xvcmtleShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKIAkJZmxhZ3MgfD0gRFNUX0tF WV9FTkFCTEU7CiAKIAlpZiAoc3RhdGUtPmJhc2UudmlzaWJsZSkKLQkJZm9ybWF0ID0gc3RhdGUt PmJhc2UuZmItPmZvcm1hdC0+Zm9ybWF0OworCQlmb3JtYXQgPSBzdGF0ZS0+aHcuZmItPmZvcm1h dC0+Zm9ybWF0OwogCiAJc3dpdGNoIChmb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwppbmRleCBmYTY4N2Mw NWIxZWQuLjI0NTI2MzAzMTI5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Nwcml0ZS5jCkBAIC0yNDEsOCArMjQxLDggQEAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9l bmQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogaW50IGludGVsX3Bs YW5lX2NoZWNrX3N0cmlkZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZV9zdGF0ZS0+YmFzZS5wbGFuZSk7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9z dGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0 ZS0+aHcucm90YXRpb247CiAJdTMyIHN0cmlkZSwgbWF4X3N0cmlkZTsKIAogCS8qCkBAIC0yNzIs MTAgKzI3MiwxMCBAQCBpbnQgaW50ZWxfcGxhbmVfY2hlY2tfc3RyaWRlKGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAKIGludCBpbnRlbF9wbGFuZV9jaGVja19z cmNfY29vcmRpbmF0ZXMoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsK LQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi OworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZi OwogCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnBsYW5lX3N0YXRlLT5iYXNlLnNyYzsKIAl1MzIg c3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2gsIGhzdWIsIHZzdWI7Ci0JYm9vbCByb3RhdGVkID0g ZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbik7CisJYm9v bCByb3RhdGVkID0gZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0+aHcucm90YXRp b24pOwogCiAJLyoKIAkgKiBIYXJkd2FyZSBkb2Vzbid0IGhhbmRsZSBzdWJwaXhlbCBjb29yZGlu YXRlcy4KQEAgLTM0Nyw3ICszNDcsNyBAQCBza2xfcHJvZ3JhbV9zY2FsZXIoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKIAkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHBsYW5lLT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5ody5mYjsKIAllbnVtIHBpcGUgcGlwZSA9IHBsYW5lLT5waXBlOwogCWlu dCBzY2FsZXJfaWQgPSBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwogCWNvbnN0IHN0cnVjdCBpbnRl bF9zY2FsZXIgKnNjYWxlciA9CkBAIC00OTMsMTAgKzQ5MywxMCBAQCBpY2xfcHJvZ3JhbV9pbnB1 dF9jc2Moc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAl9OwogCWNvbnN0IHUxNiAqY3NjOwog Ci0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9G VUxMX1JBTkdFKQotCQljc2MgPSBpbnB1dF9jc2NfbWF0cml4W3BsYW5lX3N0YXRlLT5iYXNlLmNv bG9yX2VuY29kaW5nXTsKKwlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9yX3JhbmdlID09IERSTV9D T0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQorCQljc2MgPSBpbnB1dF9jc2NfbWF0cml4W3BsYW5lX3N0 YXRlLT5ody5jb2xvcl9lbmNvZGluZ107CiAJZWxzZQotCQljc2MgPSBpbnB1dF9jc2NfbWF0cml4 X2xyW3BsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX2VuY29kaW5nXTsKKwkJY3NjID0gaW5wdXRfY3Nj X21hdHJpeF9scltwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmddOwogCiAJSTkxNV9XUklU RV9GVyhQTEFORV9JTlBVVF9DU0NfQ09FRkYocGlwZSwgcGxhbmVfaWQsIDApLCBST0ZGKGNzY1sw XSkgfAogCQkgICAgICBHT0ZGKGNzY1sxXSkpOwpAQCAtNTEwLDcgKzUxMCw3IEBAIGljbF9wcm9n cmFtX2lucHV0X2NzYyhzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCiAJSTkxNV9XUklURV9G VyhQTEFORV9JTlBVVF9DU0NfUFJFT0ZGKHBpcGUsIHBsYW5lX2lkLCAwKSwKIAkJICAgICAgUFJF T0ZGX1lVVl9UT19SR0JfSEkpOwotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9 PSBEUk1fQ09MT1JfWUNCQ1JfRlVMTF9SQU5HRSkKKwlpZiAocGxhbmVfc3RhdGUtPmh3LmNvbG9y X3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQogCQlJOTE1X1dSSVRFX0ZXKFBM QU5FX0lOUFVUX0NTQ19QUkVPRkYocGlwZSwgcGxhbmVfaWQsIDEpLCAwKTsKIAllbHNlCiAJCUk5 MTVfV1JJVEVfRlcoUExBTkVfSU5QVVRfQ1NDX1BSRU9GRihwaXBlLCBwbGFuZV9pZCwgMSksCkBA IC01NDIsOCArNTQyLDggQEAgc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSwKIAl1MzIgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3Jj KSA+PiAxNjsKIAl1MzIgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5iYXNl LnNyYykgPj4gMTY7CiAJc3RydWN0IGludGVsX3BsYW5lICpsaW5rZWQgPSBwbGFuZV9zdGF0ZS0+ cGxhbmFyX2xpbmtlZF9wbGFuZTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXU4IGFscGhhID0gcGxhbmVfc3RhdGUtPmJhc2UuYWxw aGEgPj4gODsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRl LT5ody5mYjsKKwl1OCBhbHBoYSA9IHBsYW5lX3N0YXRlLT5ody5hbHBoYSA+PiA4OwogCXUzMiBw bGFuZV9jb2xvcl9jdGwgPSAwOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJdTMyIGtleW1z aywga2V5bWF4OwpAQCAtNzE5LDcgKzcxOSw3IEBAIGNodl91cGRhdGVfY3NjKGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7 Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5m YjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5m YjsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwogCS8qCiAJICogfHJ8ICAg fCBjMCBjMSBjMiB8ICAgfGNyfApAQCAtNzQ1LDcgKzc0NSw3IEBAIGNodl91cGRhdGVfY3NjKGNv bnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJCQkgICAgMCwgNDA5 NiwgIDc2MDEsCiAJCX0sCiAJfTsKLQljb25zdCBzMTYgKmNzYyA9IGNzY19tYXRyaXhbcGxhbmVf c3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmddOworCWNvbnN0IHMxNiAqY3NjID0gY3NjX21hdHJp eFtwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmddOwogCiAJLyogU2VlbXMgUkdCIGRhdGEg YnlwYXNzZXMgdGhlIENTQyBhbHdheXMgKi8KIAlpZiAoIWZiLT5mb3JtYXQtPmlzX3l1dikKQEAg LTc3OCwxMyArNzc4LDEzIEBAIHZsdl91cGRhdGVfY2xyYyhjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBw aXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUt PmlkOwogCWludCBjb250cmFzdCwgYnJpZ2h0bmVzcywgc2hfc2NhbGUsIHNoX3Npbiwgc2hfY29z OwogCiAJaWYgKGZiLT5mb3JtYXQtPmlzX3l1diAmJgotCSAgICBwbGFuZV9zdGF0ZS0+YmFzZS5j b2xvcl9yYW5nZSA9PSBEUk1fQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRSkgeworCSAgICBwbGFu ZV9zdGF0ZS0+aHcuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0Up IHsKIAkJLyoKIAkJICogRXhwYW5kIGxpbWl0ZWQgcmFuZ2UgdG8gZnVsbCByYW5nZToKIAkJICog Q29udHJhc3QgaXMgYXBwbGllZCBmaXJzdCBhbmQgaXMgdXNlZCB0byBleHBhbmQgWSByYW5nZS4K QEAgLTgyNSw4ICs4MjUsOCBAQCBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsX2NydGMoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdTMyIHZsdl9zcHJp dGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICBj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQg aW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCWNvbnN0IHN0cnVjdCBk cm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJdTMy IHNwcmN0bDsKIApAQCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyB1MzIgdmx2X3Nwcml0ZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiAwOwog CX0KIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZyA9PSBEUk1fQ09MT1Jf WUNCQ1JfQlQ3MDkpCisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9lbmNvZGluZyA9PSBEUk1f Q09MT1JfWUNCQ1JfQlQ3MDkpCiAJCXNwcmN0bCB8PSBTUF9ZVVZfRk9STUFUX0JUNzA5OwogCiAJ aWYgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKQEAgLTg5Myw3ICs4 OTMsNyBAQCBzdGF0aWMgdm9pZCB2bHZfdXBkYXRlX2dhbW1hKGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9 IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0JY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKKwljb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAllbnVt IHBpcGUgcGlwZSA9IHBsYW5lLT5waXBlOwogCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSBwbGFu ZS0+aWQ7CiAJdTE2IGdhbW1hWzhdOwpAQCAtMTAzNiw4ICsxMDM2LDggQEAgc3RhdGljIHUzMiBp dmJfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQl0b19pOTE1KHBsYW5l X3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxh bmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVf c3RhdGUtPmh3LnJvdGF0aW9uOwogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9y a2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJdTMyIHNwcmN0bDsKIApAQCAtMTA3Miwx MCArMTA3MiwxMCBAQCBzdGF0aWMgdTMyIGl2Yl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiAJc3ByY3RsIHw9IFNQUklURV9JTlRfR0FNTUFf RElTQUJMRTsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZyA9PSBEUk1f Q09MT1JfWUNCQ1JfQlQ3MDkpCisJaWYgKHBsYW5lX3N0YXRlLT5ody5jb2xvcl9lbmNvZGluZyA9 PSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpCiAJCXNwcmN0bCB8PSBTUFJJVEVfWVVWX1RPX1JHQl9D U0NfRk9STUFUX0JUNzA5OwogCi0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNvbG9yX3JhbmdlID09 IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQorCWlmIChwbGFuZV9zdGF0ZS0+aHcuY29sb3Jf cmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UpCiAJCXNwcmN0bCB8PSBTUFJJVEVf WVVWX1JBTkdFX0NPUlJFQ1RJT05fRElTQUJMRTsKIAogCWlmIChmYi0+bW9kaWZpZXIgPT0gSTkx NV9GT1JNQVRfTU9EX1hfVElMRUQpCkBAIC0xMjcwLDggKzEyNzAsOCBAQCBzdGF0aWMgdTMyIGc0 eF9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRvX2k5MTUocGxhbmVf c3RhdGUtPmJhc2UucGxhbmUtPmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKLQl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFu ZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9z dGF0ZS0+aHcucm90YXRpb247CiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3Jr ZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKIAl1MzIgZHZzY250cjsKIApAQCAtMTMwNCwx MCArMTMwNCwxMCBAQCBzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAocGxhbmVf c3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JUNzA5KQorCWlm IChwbGFuZV9zdGF0ZS0+aHcuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NPTE9SX1lDQkNSX0JUNzA5 KQogCQlkdnNjbnRyIHw9IERWU19ZVVZfRk9STUFUX0JUNzA5OwogCi0JaWYgKHBsYW5lX3N0YXRl LT5iYXNlLmNvbG9yX3JhbmdlID09IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQorCWlmIChw bGFuZV9zdGF0ZS0+aHcuY29sb3JfcmFuZ2UgPT0gRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0Up CiAJCWR2c2NudHIgfD0gRFZTX1lVVl9SQU5HRV9DT1JSRUNUSU9OX0RJU0FCTEU7CiAKIAlpZiAo ZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEKQpAQCAtMTMyOCw3ICsxMzI4 LDcgQEAgc3RhdGljIHZvaWQgZzR4X3VwZGF0ZV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBw aXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAl1MTYgZ2FtbWFbOF07CiAJaW50IGk7CkBAIC0xMzYw LDcgKzEzNjAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfdXBkYXRlX2dhbW1hKGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0J Y29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsK Kwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsK IAllbnVtIHBpcGUgcGlwZSA9IHBsYW5lLT5waXBlOwogCXUxNiBnYW1tYVsxN107CiAJaW50IGk7 CkBAIC0xNTA5LDcgKzE1MDksNyBAQCBzdGF0aWMgaW50CiBnNHhfc3ByaXRlX2NoZWNrX3NjYWxp bmcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwogCWNvbnN0IHN0cnVjdCBkcm1fcmVjdCAq c3JjID0gJnBsYW5lX3N0YXRlLT5iYXNlLnNyYzsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmRz dCA9ICZwbGFuZV9zdGF0ZS0+YmFzZS5kc3Q7CiAJaW50IHNyY194LCBzcmNfdywgc3JjX2gsIGNy dGNfdywgY3J0Y19oOwpAQCAtMTU3Niw3ICsxNTc2LDcgQEAgZzR4X3Nwcml0ZV9jaGVjayhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpbnQgbWF4X3NjYWxlID0gRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HOwogCWludCByZXQ7CiAKLQlpZiAoaW50ZWxfZmJfc2NhbGFi bGUocGxhbmVfc3RhdGUtPmJhc2UuZmIpKSB7CisJaWYgKGludGVsX2ZiX3NjYWxhYmxlKHBsYW5l X3N0YXRlLT5ody5mYikpIHsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA3KSB7CiAJCQlt aW5fc2NhbGUgPSAxOwogCQkJbWF4X3NjYWxlID0gMTYgPDwgMTY7CkBAIC0xNjIwLDcgKzE2MjAs NyBAQCBpbnQgY2h2X3BsYW5lX2NoZWNrX3JvdGF0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0JdW5zaWduZWQg aW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJdW5zaWduZWQgaW50 IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCiAJLyogQ0hWIGlnbm9yZXMg dGhlIG1pcnJvciBiaXQgd2hlbiB0aGUgcm90YXRlIGJpdCBpcyBzZXQgOiggKi8KIAlpZiAoSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikgJiYKQEAgLTE2NzIsOCArMTY3Miw4IEBAIHN0YXRpYyBpbnQg c2tsX3BsYW5lX2NoZWNrX2ZiKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Ci0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0g cGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxh bmVfc3RhdGUtPmh3LnJvdGF0aW9uOwogCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1h dF9uYW1lOwogCiAJaWYgKCFmYikKQEAgLTE3NzMsOCArMTc3Myw4IEBAIHN0YXRpYyBpbnQgc2ts X3BsYW5lX2NoZWNrX2RzdF9jb29yZGluYXRlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zCiAKIHN0YXRpYyBpbnQgc2tsX3BsYW5lX2NoZWNrX252MTJfcm90YXRpb24oY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQljb25zdCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwotCXVuc2lnbmVk IGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOworCWNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOworCXVuc2lnbmVkIGlu dCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5ody5yb3RhdGlvbjsKIAlpbnQgc3JjX3cgPSBkcm1f cmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKIAogCS8qIERpc3BsYXkg V0EgIzExMDYgKi8KQEAgLTE3OTMsNyArMTc5Myw3IEBAIHN0YXRpYyBpbnQgc2tsX3BsYW5lX2No ZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogewogCXN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFz ZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUt PmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+aHcuZmI7CiAJaW50IG1pbl9zY2FsZSA9IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsK IAlpbnQgbWF4X3NjYWxlID0gRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HOwogCWludCByZXQ7 CkBAIC0xODM1LDcgKzE4MzUsNyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIHJldDsKIAogCS8qIEhXIG9u bHkgaGFzIDggYml0cyBwaXhlbCBwcmVjaXNpb24sIGRpc2FibGUgcGxhbmUgaWYgaW52aXNpYmxl ICovCi0JaWYgKCEocGxhbmVfc3RhdGUtPmJhc2UuYWxwaGEgPj4gOCkpCisJaWYgKCEocGxhbmVf c3RhdGUtPmh3LmFscGhhID4+IDgpKQogCQlwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlID0gZmFs c2U7CiAKIAlwbGFuZV9zdGF0ZS0+Y3RsID0gc2tsX3BsYW5lX2N0bChjcnRjX3N0YXRlLCBwbGFu ZV9zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA3NmY4ZWVhMTVkZGYuLjUwMjBm NmVmNGQwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC04MTAsNyArODEwLDcgQEAgc3Rh dGljIGJvb2wgaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkgKiBhcm91bmQgdGhpcyBwcm9ibGVtIHdpdGggdGhlIHdhdGVy bWFyayBjb2RlLgogCSAqLwogCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKQotCQlyZXR1 cm4gcGxhbmVfc3RhdGUtPmJhc2UuZmIgIT0gTlVMTDsKKwkJcmV0dXJuIHBsYW5lX3N0YXRlLT5o dy5mYiAhPSBOVUxMOwogCWVsc2UKIAkJcmV0dXJuIHBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGU7 CiB9CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWlmICghaW50ZWxfd21fcGxh bmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJCXJldHVybiAwOwogCi0JY3Bw ID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOworCWNwcCA9IHBsYW5lX3N0 YXRlLT5ody5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAkvKgogCSAqIE5vdCAxMDAlIHN1cmUgd2hp Y2ggd2F5IEVMSyBzaG91bGQgZ28gaGVyZSBhcyB0aGUKQEAgLTEzMTcsOCArMTMxNyw4IEBAIHN0 YXRpYyBpbnQgZzR4X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBs YW5lLAogCQkJCQkgICAgIG9sZF9wbGFuZV9zdGF0ZSwKIAkJCQkJICAgICBuZXdfcGxhbmVfc3Rh dGUsIGkpIHsKLQkJaWYgKG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjICE9ICZjcnRjLT5iYXNl ICYmCi0JCSAgICBvbGRfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyAhPSAmY3J0Yy0+YmFzZSkKKwkJ aWYgKG5ld19wbGFuZV9zdGF0ZS0+aHcuY3J0YyAhPSAmY3J0Yy0+YmFzZSAmJgorCQkgICAgb2xk X3BsYW5lX3N0YXRlLT5ody5jcnRjICE9ICZjcnRjLT5iYXNlKQogCQkJY29udGludWU7CiAKIAkJ aWYgKGc0eF9yYXdfcGxhbmVfd21fY29tcHV0ZShjcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUp KQpAQCAtMTYwMiw3ICsxNjAyLDcgQEAgc3RhdGljIHUxNiB2bHZfY29tcHV0ZV93bV9sZXZlbChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dt X3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAot CWNwcCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFu ZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jazsKIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKIAl3aWR0 aCA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX3c7CkBAIC0xODM4LDggKzE4MzgsOCBAQCBzdGF0aWMg aW50IHZsdl9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwK IAkJCQkJICAgICBvbGRfcGxhbmVfc3RhdGUsCiAJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRlLCBp KSB7Ci0JCWlmIChuZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyAhPSAmY3J0Yy0+YmFzZSAmJgot CQkgICAgb2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UpCisJCWlmIChu ZXdfcGxhbmVfc3RhdGUtPmh3LmNydGMgIT0gJmNydGMtPmJhc2UgJiYKKwkJICAgIG9sZF9wbGFu ZV9zdGF0ZS0+aHcuY3J0YyAhPSAmY3J0Yy0+YmFzZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmICh2 bHZfcmF3X3BsYW5lX3dtX2NvbXB1dGUoY3J0Y19zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKSkKQEAg LTI0ODQsNyArMjQ4NCw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfcHJpX3dtKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWlmICghaW50ZWxfd21fcGxhbmVf dmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJCXJldHVybiAwOwogCi0JY3BwID0g cGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOworCWNwcCA9IHBsYW5lX3N0YXRl LT5ody5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAltZXRob2QxID0gaWxrX3dtX21ldGhvZDEoY3J0 Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwogCkBAIC0yNTE2LDcgKzI1MTYs NyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3Nwcl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19z dGF0ZSwgcGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5lX3N0YXRlLT5i YXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1h dC0+Y3BwWzBdOwogCiAJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUtPnBpeGVs X3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKIAltZXRob2QyID0gaWxrX3dtX21ldGhvZDIoY3J0Y19z dGF0ZS0+cGl4ZWxfcmF0ZSwKQEAgLTI1NDIsNyArMjU0Miw3IEBAIHN0YXRpYyB1MzIgaWxrX2Nv bXB1dGVfY3VyX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CWlmICghaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSkpCiAJ CXJldHVybiAwOwogCi0JY3BwID0gcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBd OworCWNwcCA9IHBsYW5lX3N0YXRlLT5ody5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAlyZXR1cm4g aWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKIAkJCSAgICAgIGNydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCkBAIC0yNTYwLDcgKzI1NjAsNyBAQCBz dGF0aWMgdTMyIGlsa19jb21wdXRlX2ZiY193bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWNwcCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi LT5mb3JtYXQtPmNwcFswXTsKKwljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3Bw WzBdOwogCiAJcmV0dXJuIGlsa193bV9mYmMocHJpX3ZhbCwgZHJtX3JlY3Rfd2lkdGgoJnBsYW5l X3N0YXRlLT5iYXNlLmRzdCksIGNwcCk7CiB9CkBAIC00MTUwLDExICs0MTUwLDExIEBAIGludCBz a2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKIAkJaWYgKCFpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRl KSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChXQVJOX09OKCFwbGFuZV9zdGF0ZS0+YmFzZS5mYikp CisJCWlmIChXQVJOX09OKCFwbGFuZV9zdGF0ZS0+aHcuZmIpKQogCQkJcmV0dXJuIC1FSU5WQUw7 CiAKIAkJcGxhbmVfZG93bnNjYWxlID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3J0Y19z dGF0ZSwgcGxhbmVfc3RhdGUpOwotCQlicHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0 LT5jcHBbMF0gKiA4OworCQlicHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBd ICogODsKIAkJaWYgKGJwcCA9PSA2NCkKIAkJCXBsYW5lX2Rvd25zY2FsZSA9IG11bF9maXhlZDE2 KHBsYW5lX2Rvd25zY2FsZSwKIAkJCQkJCSAgICAgIGZwXzlfZGl2XzgpOwpAQCAtNDE4Nyw3ICs0 MTg3LDcgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgaW50IGNvbG9yX3BsYW5lKQogewogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZSk7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0 YXRlLT5ody5mYjsKIAl1MzIgZGF0YV9yYXRlOwogCXUzMiB3aWR0aCA9IDAsIGhlaWdodCA9IDA7 CiAJdWludF9maXhlZF8xNl8xNl90IGRvd25fc2NhbGVfYW1vdW50OwpAQCAtNDcwOCw3ICs0NzA4 LDcgQEAgc2tsX2NvbXB1dGVfcGxhbmVfd21fcGFyYW1zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUsCiAJCQkgICAgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLCBpbnQgY29s b3JfcGxhbmUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5ody5mYjsKIAlpbnQgd2lkdGg7CiAKIAkvKgpAQCAtNDcyMCw3ICs0NzIwLDcgQEAg c2tsX2NvbXB1dGVfcGxhbmVfd21fcGFyYW1zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCiAJcmV0dXJuIHNrbF9jb21wdXRlX3dtX3BhcmFtcyhjcnRjX3N0YXRl LCB3aWR0aCwKIAkJCQkgICAgIGZiLT5mb3JtYXQsIGZiLT5tb2RpZmllciwKLQkJCQkgICAgIHBs YW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uLAorCQkJCSAgICAgcGxhbmVfc3RhdGUtPmh3LnJvdGF0 aW9uLAogCQkJCSAgICAgc2tsX2FkanVzdGVkX3BsYW5lX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpLAogCQkJCSAgICAgd3AsIGNvbG9yX3BsYW5lKTsKIH0KQEAgLTQ5OTksNyAr NDk5OSw3IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50 ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwotCWNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CiAJZW51bSBwbGFuZV9pZCBwbGFu ZV9pZCA9IHBsYW5lLT5pZDsKIAlpbnQgcmV0OwogCkBAIC01MDMyLDcgKzUwMzIsNyBAQCBzdGF0 aWMgaW50IGljbF9idWlsZF9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJcmV0dXJuIDA7CiAKIAlpZiAocGxhbmVfc3RhdGUtPnBsYW5hcl9saW5rZWRfcGxh bmUpIHsKLQkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ YmFzZS5mYjsKKwkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0 ZS0+aHcuZmI7CiAJCWVudW0gcGxhbmVfaWQgeV9wbGFuZV9pZCA9IHBsYW5lX3N0YXRlLT5wbGFu YXJfbGlua2VkX3BsYW5lLT5pZDsKIAogCQlXQVJOX09OKCFpbnRlbF93bV9wbGFuZV92aXNpYmxl KGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKSk7Ci0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==