From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v3 33/37] drm: Nuke fb->pixel_format Date: Wed, 14 Dec 2016 23:32:55 +0200 Message-ID: <1481751175-18463-1-git-send-email-ville.syrjala@linux.intel.com> References: <1479498793-31021-34-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 62EC76E8C2 for ; Wed, 14 Dec 2016 21:32:59 +0000 (UTC) In-Reply-To: <1479498793-31021-34-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl cGxhY2UgdXNlcyBvZiBmYi0+cGl4ZWxfZm9ybWF0IHdpdGggZmItPmZvcm1hdC0+Zm9ybWF0LgpM ZXNzIGR1cGxpY2F0ZWQgaW5mb3JtYXRpb24gaXMgYSBnb29kIHRoaW5nLgoKTm90ZSB0aGF0IGNv Y2NpbmVsbGUgZmFpbGVkIHRvIGVsaW1pbmF0ZSB0aGUKIi8qIGZvdXJjYyBmb3JtYXQgKi8iIGNv bW1lbnQgZnJvbSBkcm1fZnJhbWVidWZmZXIuaCwgc28gSSBoYWQKdG8gZG8gdGhhdCBwYXJ0IG1h bnVhbGx5LgoKQEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqRkI7CmV4cHJlc3Npb24gRTsKQEAK IGRybV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdCguLi4pIHsKCS4uLgotCUZCLT5waXhlbF9m b3JtYXQgPSBFOwoJLi4uCiB9CgpAQApzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpGQjsKZXhwcmVz c2lvbiBFOwpAQAogaTl4eF9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoLi4uKSB7CgkuLi4KLQlG Qi0+cGl4ZWxfZm9ybWF0ID0gRTsKCS4uLgogfQoKQEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq RkI7CmV4cHJlc3Npb24gRTsKQEAKIGlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZygu Li4pIHsKCS4uLgotCUZCLT5waXhlbF9mb3JtYXQgPSBFOwoJLi4uCiB9CgpAQApzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpGQjsKZXhwcmVzc2lvbiBFOwpAQAogc2t5bGFrZV9nZXRfaW5pdGlhbF9w bGFuZV9jb25maWcoLi4uKSB7CgkuLi4KLQlGQi0+cGl4ZWxfZm9ybWF0ID0gRTsKCS4uLgogfQoK QEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqYTsKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBiOwpA QAooCi0gYS0+cGl4ZWxfZm9ybWF0CisgYS0+Zm9ybWF0LT5mb3JtYXQKfAotIGIucGl4ZWxfZm9y bWF0CisgYi5mb3JtYXQtPmZvcm1hdAopCgpAQApzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICphOwpz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIGI7CkBACigKLSBhLT5mYi0+cGl4ZWxfZm9ybWF0CisgYS0+ ZmItPmZvcm1hdC0+Zm9ybWF0CnwKLSBiLmZiLT5waXhlbF9mb3JtYXQKKyBiLmZiLT5mb3JtYXQt PmZvcm1hdAopCgpAQApzdHJ1Y3QgZHJtX2NydGMgKkNSVEM7CkBACigKLSBDUlRDLT5wcmltYXJ5 LT5mYi0+cGl4ZWxfZm9ybWF0CisgQ1JUQy0+cHJpbWFyeS0+ZmItPmZvcm1hdC0+Zm9ybWF0CnwK LSBDUlRDLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdAorIENSVEMtPnByaW1hcnkt PnN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQKKQoKQEAKc3RydWN0IGRybV9tb2RlX3NldCAqc2V0 OwpAQAooCi0gc2V0LT5mYi0+cGl4ZWxfZm9ybWF0Cisgc2V0LT5mYi0+Zm9ybWF0LT5mb3JtYXQK fAotIHNldC0+Y3J0Yy0+cHJpbWFyeS0+ZmItPnBpeGVsX2Zvcm1hdAorIHNldC0+Y3J0Yy0+cHJp bWFyeS0+ZmItPmZvcm1hdC0+Zm9ybWF0CikKCkBACkBACiBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy IHsKCSAuLi4KLQkgdWludDMyX3QgcGl4ZWxfZm9ybWF0OwoJIC4uLgogfTsKCnYyOiBGaXggY29t bWl0IG1lc3NhZ2UgKExhdXJlbnQpCiAgICBSZWJhc2UgZHVlIHRvIGVhcmxpZXIgcmVtb3ZhbCBv ZiBtYW55IGZiLT5waXhlbF9mb3JtYXQgdXNlcywKICAgIGluY2x1ZGluZyB0aGUgJ2ZiLT5mb3Jt YXQgPSBkcm1fZm9ybWF0X2luZm8oZmItPmZvcm1hdC0+Zm9ybWF0KTsnCiAgICBzbmFmdQp2Mzog QWRqdXN0ZWQgdGhlIHNlbWFudGljIHBhdGNoIGEgYml0IGFuZCByZWdlbmVyYXRlZCBkdWUgdG8g Y29kZQogICAgY2hhbmdlcwoKQ2M6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRA aWRlYXNvbmJvYXJkLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFu ZGVyLmRldWNoZXJAYW1kLmNvbT4gKHYxKQpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8 bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2RjZV92MTBfMC5jICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjExXzAuYyAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZGNlX3Y2XzAuYyAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vYXJjL2FyY3BndV9jcnRjLmMgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vYXJtL2hkbGNkX2NydGMuYyAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vYXJtL21hbGlkcF9wbGFuZXMuYyAgICAgICAgICAgICB8ICA4ICsrKy0tLQogZHJpdmVycy9n cHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5jICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMgfCAxOCArKysrKystLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgICAgICAgICB8ICA2ICsr LS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICstLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jICAgICAgICAgICAgICAgfCAg NCArLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYyAgICAgICAgICAgIHwg IDEgLQogZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jICAgICAgICAgICAgICAgICAgICAgfCAg NiArKy0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyAgICAgICAgICAg fCAgOCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3BsYW5lLmMg ICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9h ZGUuYyB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAg ICAgICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAg ICAgICAgICAgIHwgMzMgKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9vdmVybGF5LmMgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgICAgICB8IDEwICsrKystLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAgICAgICAgICB8IDEyICsrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jICAgICAgICAgICAgICAgfCAzNCArKysrKysr KysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFu ZS5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYyAg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxh bmUuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jICAg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9vdmVy bGF5LmMgICAgICB8ICA4ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNw bGF5LmMgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIu YyAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3Nf Y3J0Yy5jICAgICAgICAgIHwgIDggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X3BsYW5lLmMgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV92c3AuYyAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMgICAgIHwgMTggKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMgICAgICAgfCAgNiArKy0tLQogZHJpdmVycy9ncHUv ZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9zdGkvc3RpX2dkcC5jICAgICAgICAgICAgICAgICAgIHwgIDggKysrLS0tCiBkcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jICAgICAgICAgICB8ICAzICsrLQogZHJpdmVy cy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGxhbmUuYyAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYyAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGRyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS96dGUvenhfcGxhbmUuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1 ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oICAgICAgICAgICAgICAgICAgIHwgIDQgLS0tCiA1NCBm aWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgMTUxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKaW5kZXggOGQwZmYxYzhkYjhlLi44NGFmYWFl OTdlNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCkBAIC0yMDcyLDcg KzIwNzIsNyBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAogCXBpcGVfY29uZmlnID0gQU1ER1BVX1RJTElOR19HRVQodGlsaW5n X2ZsYWdzLCBQSVBFX0NPTkZJRyk7CiAKLQlzd2l0Y2ggKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0 KSB7CisJc3dpdGNoICh0YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9S TUFUX0M4OgogCQlmYl9mb3JtYXQgPSBSRUdfU0VUX0ZJRUxEKDAsIEdSUEhfQ09OVFJPTCwgR1JQ SF9ERVBUSCwgMCk7CiAJCWZiX2Zvcm1hdCA9IFJFR19TRVRfRklFTEQoZmJfZm9ybWF0LCBHUlBI X0NPTlRST0wsIEdSUEhfRk9STUFULCAwKTsKQEAgLTIxNDUsNyArMjE0NSw3IEBAIHN0YXRpYyBp bnQgZGNlX3YxMF8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQli cmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQg JXNcbiIsCi0JCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxf Zm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUo dGFyZ2V0X2ZiLT5mb3JtYXQtPmZvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAtRUlO VkFMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwppbmRleCBjMjVl ZGVjYjQ2ZDQuLjdhN2ZhOTZkMmU0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MV8wLmMKQEAgLTIwNTMsNyArMjA1Myw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfZG9f c2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJcGlwZV9jb25maWcgPSBBTURHUFVf VElMSU5HX0dFVCh0aWxpbmdfZmxhZ3MsIFBJUEVfQ09ORklHKTsKIAotCXN3aXRjaCAodGFyZ2V0 X2ZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQp IHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9IFJFR19TRVRfRklFTEQoMCwg R1JQSF9DT05UUk9MLCBHUlBIX0RFUFRILCAwKTsKIAkJZmJfZm9ybWF0ID0gUkVHX1NFVF9GSUVM RChmYl9mb3JtYXQsIEdSUEhfQ09OVFJPTCwgR1JQSF9GT1JNQVQsIDApOwpAQCAtMjEyNiw3ICsy MTI2LDcgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVW5zdXBwb3J0 ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKLQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUo dGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOworCQkgICAgICAgICAgZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0X25hbWUp KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2 XzAuYwppbmRleCBmZmQyMGY5MDc4OGMuLjU5ZWZmNmU5YTg4MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9kY2VfdjZfMC5jCkBAIC0xNTAxLDcgKzE1MDEsNyBAQCBzdGF0aWMgaW50IGRjZV92 Nl8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWFtZGdwdV9ib19n ZXRfdGlsaW5nX2ZsYWdzKGFibywgJnRpbGluZ19mbGFncyk7CiAJYW1kZ3B1X2JvX3VucmVzZXJ2 ZShhYm8pOwogCi0Jc3dpdGNoICh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAo dGFyZ2V0X2ZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJZmJf Zm9ybWF0ID0gKEdSUEhfREVQVEgoR1JQSF9ERVBUSF84QlBQKSB8CiAJCQkgICAgIEdSUEhfRk9S TUFUKEdSUEhfRk9STUFUX0lOREVYRUQpKTsKQEAgLTE1NjcsNyArMTU2Nyw3IEBAIHN0YXRpYyBp bnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJy ZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAl c1xuIiwKLQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9m b3JtYXQsICZmb3JtYXRfbmFtZSkpOworCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZSh0 YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vfdjhf MC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYwppbmRleCBlNmY0NDZh ZjM4MTguLjhkZTgzMmRkOTgxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZGNlX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5j CkBAIC0xOTUwLDcgKzE5NTAsNyBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2NydGNfZG9fc2V0X2Jh c2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJcGlwZV9jb25maWcgPSBBTURHUFVfVElMSU5H X0dFVCh0aWxpbmdfZmxhZ3MsIFBJUEVfQ09ORklHKTsKIAotCXN3aXRjaCAodGFyZ2V0X2ZiLT5w aXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAlj YXNlIERSTV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9ICgoR1JQSF9ERVBUSF84QlBQIDw8IEdS UEhfQ09OVFJPTF9fR1JQSF9ERVBUSF9fU0hJRlQpIHwKIAkJCSAgICAgKEdSUEhfRk9STUFUX0lO REVYRUQgPDwgR1JQSF9DT05UUk9MX19HUlBIX0ZPUk1BVF9fU0hJRlQpKTsKQEAgLTIwMTYsNyAr MjAxNiw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVW5zdXBwb3J0 ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKLQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUo dGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOworCQkgICAgICAgICAgZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0X25hbWUp KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YXJjL2FyY3BndV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9jcnRjLmMKaW5k ZXggNWMyNmM1ZjEyNmEzLi5hZDlhOTU5MTZmMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hcmMvYXJjcGd1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9jcnRj LmMKQEAgLTM2LDcgKzM2LDcgQEAgc3RhdGljIHZvaWQgYXJjX3BndV9zZXRfcHhsX2ZtdChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGFyY3BndV9kcm1fcHJpdmF0ZSAqYXJjcGd1 ID0gY3J0Y190b19hcmNwZ3VfcHJpdihjcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYjsKLQl1aW50MzJfdCBwaXhlbF9mb3Jt YXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCXVpbnQzMl90IHBpeGVsX2Zvcm1hdCA9IGZiLT5mb3Jt YXQtPmZvcm1hdDsKIAlzdHJ1Y3Qgc2ltcGxlZmJfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOwogCWlu dCBpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jCmluZGV4IGVjZGNkOTljOTJjYy4uMjBlYmZi NGZiZGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0 aWMgaW50IGhkbGNkX3NldF9weGxfZm10KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3Qg c2ltcGxlZmJfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOwogCWludCBpOwogCi0JcGl4ZWxfZm9ybWF0 ID0gZmItPnBpeGVsX2Zvcm1hdDsKKwlwaXhlbF9mb3JtYXQgPSBmYi0+Zm9ybWF0LT5mb3JtYXQ7 CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdXBwb3J0ZWRfZm9ybWF0cyk7IGkrKykg ewogCQlpZiAoc3VwcG9ydGVkX2Zvcm1hdHNbaV0uZm91cmNjID09IHBpeGVsX2Zvcm1hdCkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jIGIvZHJpdmVycy9n cHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKaW5kZXggNTMzZWUyZmE2NGJlLi5lZmYyZmU0N2Uy NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCkBAIC0xMTIsNyArMTEyLDcgQEAg c3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJZmIgPSBzdGF0ZS0+ZmI7CiAKIAltcy0+Zm9ybWF0ID0gbWFsaWRwX2h3X2dldF9mb3JtYXRf aWQoJm1wLT5od2Rldi0+bWFwLCBtcC0+bGF5ZXItPmlkLAotCQkJCQkgICAgZmItPnBpeGVsX2Zv cm1hdCk7CisJCQkJCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChtcy0+Zm9ybWF0ID09 IE1BTElEUF9JTlZBTElEX0ZPUk1BVF9JRCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTEzNyw4 ICsxMzcsOCBAQCBzdGF0aWMgaW50IG1hbGlkcF9kZV9wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAogCS8qIHBhY2tlZCBSR0I4ODggLyBCR1I4ODggY2FuJ3QgYmUgcm90YXRl ZCBvciBmbGlwcGVkICovCiAJaWYgKHN0YXRlLT5yb3RhdGlvbiAhPSBEUk1fUk9UQVRFXzAgJiYK LQkgICAgKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9SR0I4ODggfHwKLQkgICAgIGZi LT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9CR1I4ODgpKQorCSAgICAoZmItPmZvcm1hdC0+ Zm9ybWF0ID09IERSTV9GT1JNQVRfUkdCODg4IHx8CisJICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQg PT0gRFJNX0ZPUk1BVF9CR1I4ODgpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCW1zLT5yb3RtZW1f c2l6ZSA9IDA7CkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVf Y2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIAkJdmFsID0gbXAtPmh3ZGV2LT5yb3Rt ZW1fcmVxdWlyZWQobXAtPmh3ZGV2LCBzdGF0ZS0+Y3J0Y19oLAogCQkJCQkJIHN0YXRlLT5jcnRj X3csCi0JCQkJCQkgZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkJCQkgZmItPmZvcm1hdC0+Zm9ybWF0 KTsKIAkJaWYgKHZhbCA8IDApCiAJCQlyZXR1cm4gdmFsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2Fy bWFkYV9jcnRjLmMKaW5kZXggNDI2ZTg2ZjRjZjk2Li40MWZjNmVlOWRhOTEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYXJtYWRhL2FybWFkYV9jcnRjLmMKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHN0YXRpYyBpbnQg YXJtYWRhX2RybV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaW50IHJl dDsKIAogCS8qIFdlIGRvbid0IHN1cHBvcnQgY2hhbmdpbmcgdGhlIHBpeGVsIGZvcm1hdCAqLwot CWlmIChmYi0+cGl4ZWxfZm9ybWF0ICE9IGNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQp CisJaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5m b3JtYXQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJd29yayA9IGttYWxsb2Moc2l6ZW9mKCp3b3Jr KSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFk YV9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMKaW5k ZXggYTA4ODNhMWIzMzg3Li4zNGNiNzNkMGRiNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2Fy bWFkYV9vdmVybGF5LmMKQEAgLTE4Niw3ICsxODYsNyBAQCBhcm1hZGFfb3ZsX3BsYW5lX3VwZGF0 ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJCWFy bWFkYV9kcm1fcGxhbmVfY2FsY19hZGRycyhhZGRycywgZmIsIHNyY194LCBzcmNfeSk7CiAKLQkJ cGl4ZWxfZm9ybWF0ID0gZmItPnBpeGVsX2Zvcm1hdDsKKwkJcGl4ZWxfZm9ybWF0ID0gZmItPmZv cm1hdC0+Zm9ybWF0OwogCQloc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGlu ZyhwaXhlbF9mb3JtYXQpOwogCQludW1fcGxhbmVzID0gZmItPmZvcm1hdC0+bnVtX3BsYW5lczsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3Bs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUuYwpp bmRleCAzZTAwNTEyZWYxODcuLmJkMjc5MWM0YjAwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKQEAgLTM1Niw3ICszNTYsNyBAQCBhdG1l bF9obGNkY19wbGFuZV91cGRhdGVfZ2VuZXJhbF9zZXR0aW5ncyhzdHJ1Y3QgYXRtZWxfaGxjZGNf cGxhbmUgKnBsYW5lLAogCQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfT1ZSIHwgQVRNRUxfSExD RENfTEFZRVJfSVRFUjJCTCB8CiAJCSAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9JVEVSOwogCi0J CWlmIChhdG1lbF9obGNkY19mb3JtYXRfZW1iZWRzX2FscGhhKHN0YXRlLT5iYXNlLmZiLT5waXhl bF9mb3JtYXQpKQorCQlpZiAoYXRtZWxfaGxjZGNfZm9ybWF0X2VtYmVkc19hbHBoYShzdGF0ZS0+ YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQpKQogCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0xB RU47CiAJCWVsc2UKIAkJCWNmZyB8PSBBVE1FTF9ITENEQ19MQVlFUl9HQUVOIHwKQEAgLTM4Niwx MyArMzg2LDEzIEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9mb3JtYXQo c3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwKIAl1MzIgY2ZnOwogCWludCByZXQ7CiAK LQlyZXQgPSBhdG1lbF9obGNkY19mb3JtYXRfdG9fcGxhbmVfbW9kZShzdGF0ZS0+YmFzZS5mYi0+ cGl4ZWxfZm9ybWF0LAorCXJldCA9IGF0bWVsX2hsY2RjX2Zvcm1hdF90b19wbGFuZV9tb2RlKHN0 YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCwKIAkJCQkJICAgICAgICZjZmcpOwogCWlmIChy ZXQpCiAJCXJldHVybjsKIAotCWlmICgoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCA9PSBE Uk1fRk9STUFUX1lVVjQyMiB8fAotCSAgICAgc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCA9 PSBEUk1fRk9STUFUX05WNjEpICYmCisJaWYgKChzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3Jt YXQgPT0gRFJNX0ZPUk1BVF9ZVVY0MjIgfHwKKwkgICAgIHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQt PmZvcm1hdCA9PSBEUk1fRk9STUFUX05WNjEpICYmCiAJICAgIGRybV9yb3RhdGlvbl85MF9vcl8y NzAoc3RhdGUtPmJhc2Uucm90YXRpb24pKQogCQljZmcgfD0gQVRNRUxfSExDRENfWVVWNDIyUk9U OwogCkBAIC00MDUsNyArNDA1LDcgQEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfdXBk YXRlX2Zvcm1hdChzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLAogCSAqIFJvdGF0aW9u IG9wdGltaXphdGlvbiBpcyBub3Qgd29ya2luZyBvbiBSR0I4ODggKHJvdGF0aW9uIGlzIHN0aWxs CiAJICogd29ya2luZyBidXQgd2l0aG91dCBhbnkgb3B0aW1pemF0aW9uKS4KIAkgKi8KLQlpZiAo c3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1JHQjg4OCkKKwlpZiAo c3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfUkdCODg4KQogCQlj ZmcgPSBBVE1FTF9ITENEQ19MQVlFUl9ETUFfUk9URElTOwogCWVsc2UKIAkJY2ZnID0gMDsKQEAg LTUxNCw3ICs1MTQsNyBAQCBhdG1lbF9obGNkY19wbGFuZV9wcmVwYXJlX2Rpc2NfYXJlYShzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNfc3RhdGUpCiAJCW92bF9zdGF0ZSA9IGRybV9wbGFuZV9zdGF0 ZV90b19hdG1lbF9obGNkY19wbGFuZV9zdGF0ZShvdmxfcyk7CiAKIAkJaWYgKCFvdmxfcy0+ZmIg fHwKLQkJICAgIGF0bWVsX2hsY2RjX2Zvcm1hdF9lbWJlZHNfYWxwaGEob3ZsX3MtPmZiLT5waXhl bF9mb3JtYXQpIHx8CisJCSAgICBhdG1lbF9obGNkY19mb3JtYXRfZW1iZWRzX2FscGhhKG92bF9z LT5mYi0+Zm9ybWF0LT5mb3JtYXQpIHx8CiAJCSAgICBvdmxfc3RhdGUtPmFscGhhICE9IDI1NSkK IAkJCWNvbnRpbnVlOwogCkBAIC02NjQsOCArNjY0LDggQEAgc3RhdGljIGludCBhdG1lbF9obGNk Y19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcCwKIAlwYXRjaGVkX3NyY19o ID0gRElWX1JPVU5EX0NMT1NFU1QocGF0Y2hlZF9jcnRjX2ggKiBzdGF0ZS0+c3JjX2gsCiAJCQkJ CSAgc3RhdGUtPmNydGNfaCk7CiAKLQloc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJz YW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKLQl2c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9t YV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKKwloc3ViID0gZHJtX2Zvcm1hdF9ob3J6 X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOworCXZzdWIgPSBkcm1fZm9y bWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgc3RhdGUtPm5wbGFuZXM7IGkrKykgewogCQl1bnNpZ25lZCBpbnQgb2Zmc2V0 ID0gMDsKQEAgLTc0MSw3ICs3NDEsNyBAQCBzdGF0aWMgaW50IGF0bWVsX2hsY2RjX3BsYW5lX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwLAogCiAJaWYgKChzdGF0ZS0+Y3J0Y19oICE9 IHN0YXRlLT5zcmNfaCB8fCBzdGF0ZS0+Y3J0Y193ICE9IHN0YXRlLT5zcmNfdykgJiYKIAkgICAg KCFsYXlvdXQtPm1lbXNpemUgfHwKLQkgICAgIGF0bWVsX2hsY2RjX2Zvcm1hdF9lbWJlZHNfYWxw aGEoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCkpKQorCSAgICAgYXRtZWxfaGxjZGNfZm9y bWF0X2VtYmVkc19hbHBoYShzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQpKSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKIAlpZiAoc3RhdGUtPmNydGNfeCA8IDAgfHwgc3RhdGUtPmNydGNfeSA8 IDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwppbmRleCA2MmYwZjU3NzI4ZTEuLmI2MDJmYWYyODM2NyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCkBAIC05MDIsMTEgKzkwMiwxMSBAQCBzdGF0aWMgaW50IGRybV9hdG9t aWNfcGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJfQogCiAJLyogQ2hlY2sg d2hldGhlciB0aGlzIHBsYW5lIHN1cHBvcnRzIHRoZSBmYiBwaXhlbCBmb3JtYXQuICovCi0JcmV0 ID0gZHJtX3BsYW5lX2NoZWNrX3BpeGVsX2Zvcm1hdChwbGFuZSwgc3RhdGUtPmZiLT5waXhlbF9m b3JtYXQpOworCXJldCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIHN0YXRl LT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChyZXQpIHsKIAkJc3RydWN0IGRybV9mb3JtYXRf bmFtZV9idWYgZm9ybWF0X25hbWU7CiAJCURSTV9ERUJVR19BVE9NSUMoIkludmFsaWQgcGl4ZWwg Zm9ybWF0ICVzXG4iLAotCQkgICAgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoc3Rh dGUtPmZiLT5waXhlbF9mb3JtYXQsCisJCSAgICAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRf bmFtZShzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0LAogCQkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtOTY0 LDcgKzk2NCw3IEBAIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfcGxhbmVfcHJpbnRfc3RhdGUoc3Ry dWN0IGRybV9wcmludGVyICpwLAogCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRf bmFtZTsKIAogCQlkcm1fcHJpbnRmKHAsICJcdFx0Zm9ybWF0PSVzXG4iLAotCQkgICAgICAgICAg ICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7 CisJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9ybWF0LT5mb3JtYXQs ICZmb3JtYXRfbmFtZSkpOwogCQlkcm1fcHJpbnRmKHAsICJcdFx0XHRtb2RpZmllcj0weCVsbHhc biIsIGZiLT5tb2RpZmllcik7CiAJCWRybV9wcmludGYocCwgIlx0XHRzaXplPSVkeCVkXG4iLCBm Yi0+d2lkdGgsIGZiLT5oZWlnaHQpOwogCQlkcm1fcHJpbnRmKHAsICJcdFx0bGF5ZXJzOlxuIik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jCmluZGV4IDE0YzU4MDcyNjUxYi4uMDgwYzhkMzYxZjFmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwpAQCAtNTc1LDExICs1NzUsMTEgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJICovCiAJCWlmICghY3J0Yy0+cHJpbWFyeS0+ Zm9ybWF0X2RlZmF1bHQpIHsKIAkJCXJldCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQo Y3J0Yy0+cHJpbWFyeSwKLQkJCQkJCQkgICBmYi0+cGl4ZWxfZm9ybWF0KTsKKwkJCQkJCQkgICBm Yi0+Zm9ybWF0LT5mb3JtYXQpOwogCQkJaWYgKHJldCkgewogCQkJCXN0cnVjdCBkcm1fZm9ybWF0 X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCQkJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwg Zm9ybWF0ICVzXG4iLAotCQkJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+ cGl4ZWxfZm9ybWF0LAorCQkJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+ Zm9ybWF0LT5mb3JtYXQsCiAJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZm b3JtYXRfbmFtZSkpOwogCQkJCWdvdG8gb3V0OwogCQkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBl ci5jCmluZGV4IDVkMmNiMTM4ZWJhNi4uOTRiY2UwYjQ2MmFhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj X2hlbHBlci5jCkBAIC01ODgsOCArNTg4LDggQEAgaW50IGRybV9jcnRjX2hlbHBlcl9zZXRfY29u ZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAkJaWYgKHNldC0+Y3J0Yy0+cHJpbWFyeS0+ ZmIgPT0gTlVMTCkgewogCQkJRFJNX0RFQlVHX0tNUygiY3J0YyBoYXMgbm8gZmIsIGZ1bGwgbW9k ZSBzZXRcbiIpOwogCQkJbW9kZV9jaGFuZ2VkID0gdHJ1ZTsKLQkJfSBlbHNlIGlmIChzZXQtPmZi LT5waXhlbF9mb3JtYXQgIT0KLQkJCSAgIHNldC0+Y3J0Yy0+cHJpbWFyeS0+ZmItPnBpeGVsX2Zv cm1hdCkgeworCQl9IGVsc2UgaWYgKHNldC0+ZmItPmZvcm1hdC0+Zm9ybWF0ICE9CisJCQkgICBz ZXQtPmNydGMtPnByaW1hcnktPmZiLT5mb3JtYXQtPmZvcm1hdCkgewogCQkJbW9kZV9jaGFuZ2Vk ID0gdHJ1ZTsKIAkJfSBlbHNlCiAJCQlmYl9jaGFuZ2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9jbWFfaGVscGVyLmMKaW5kZXggMTgxYTllYWZlMzRhLi5hYWI0NDY1MzA3ZWQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIHZvaWQg ZHJtX2ZiX2NtYV9kZXNjcmliZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgc3RydWN0IHNl cV9maWxlICptKQogCWludCBpOwogCiAJc2VxX3ByaW50ZihtLCAiZmI6ICVkeCVkQCU0LjRzXG4i LCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCi0JCQkoY2hhciAqKSZmYi0+cGl4ZWxfZm9ybWF0KTsK KwkJCShjaGFyICopJmZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZmIt PmZvbWF0LT5udW1fcGxhbmVzOyBpKyspIHsKIAkJc2VxX3ByaW50ZihtLCAiICAgJWQ6IG9mZnNl dD0lZCBwaXRjaD0lZCwgb2JqOiAiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9t b2Rlc2V0X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCmlu ZGV4IDNjNDQ0MDkyNDRkYy4uNjM5ZTQ3NGU3ZDQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVzZXRfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0 X2hlbHBlci5jCkBAIC05NCw3ICs5NCw2IEBAIHZvaWQgZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJf c3RydWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWZiLT5vZmZzZXRzW2ldID0gbW9kZV9j bWQtPm9mZnNldHNbaV07CiAJfQogCWZiLT5tb2RpZmllciA9IG1vZGVfY21kLT5tb2RpZmllclsw XTsKLQlmYi0+cGl4ZWxfZm9ybWF0ID0gbW9kZV9jbWQtPnBpeGVsX2Zvcm1hdDsKIAlmYi0+Zmxh Z3MgPSBtb2RlX2NtZC0+ZmxhZ3M7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9oZWxwZXJfbW9kZV9m aWxsX2ZiX3N0cnVjdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKaW5kZXggYzJkYzhlNmY4MGZmLi5mNDc5Y2Rh NWZjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKQEAgLTQ4MiwxMSArNDgyLDExIEBAIHN0YXRpYyBpbnQg X19zZXRwbGFuZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9CiAKIAkvKiBD aGVjayB3aGV0aGVyIHRoaXMgcGxhbmUgc3VwcG9ydHMgdGhlIGZiIHBpeGVsIGZvcm1hdC4gKi8K LQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBmYi0+cGl4ZWxfZm9y bWF0KTsKKwlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBmYi0+Zm9y bWF0LT5mb3JtYXQpOwogCWlmIChyZXQpIHsKIAkJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYg Zm9ybWF0X25hbWU7CiAJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4i LAotCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwK KwkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5mb3JtYXQtPmZvcm1hdCwK IAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXRfbmFtZSkpOwogCQln b3RvIG91dDsKIAl9CkBAIC04NTgsNyArODU4LDcgQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0J aWYgKGNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQgIT0gZmItPnBpeGVsX2Zvcm1hdCkg eworCWlmIChjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0gZmItPmZvcm1hdC0+ Zm9ybWF0KSB7CiAJCURSTV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxsb3dlZCB0byBj aGFuZ2UgZnJhbWUgYnVmZmVyIGZvcm1hdC5cbiIpOwogCQlyZXQgPSAtRUlOVkFMOwogCQlnb3Rv IG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1f ZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpp bmRleCBlOGNlNGEzMTg1ODYuLmM1YzAxNjI4YzcxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyB2 b2lkIGRlY29uX3dpbl9zZXRfcGl4Zm10KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgsIHVuc2ln bmVkIGludCB3aW4sCiAJdmFsID0gcmVhZGwoY3R4LT5hZGRyICsgREVDT05fV0lOQ09OeCh3aW4p KTsKIAl2YWwgJj0gfldJTkNPTnhfQlBQTU9ERV9NQVNLOwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxf Zm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JN QVRfWFJHQjE1NTU6CiAJCXZhbCB8PSBXSU5DT054X0JQUE1PREVfMTZCUFBfSTE1NTU7CiAJCXZh bCB8PSBXSU5DT054X0hBV1NXUF9GOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3M3X2RybV9kZWNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2Ry bV9kZWNvbi5jCmluZGV4IDU4ZGM5YTUxOTZiYy4uZjlhYjE5ZTIwNWUyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCkBAIC0yODEsNyArMjgxLDcgQEAgc3Rh dGljIHZvaWQgZGVjb25fd2luX3NldF9waXhmbXQoc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCwg dW5zaWduZWQgaW50IHdpbiwKIAl2YWwgPSByZWFkbChjdHgtPnJlZ3MgKyBXSU5DT04od2luKSk7 CiAJdmFsICY9IH5XSU5DT054X0JQUE1PREVfTUFTSzsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zv cm1hdCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFU X1JHQjU2NToKIAkJdmFsIHw9IFdJTkNPTnhfQlBQTU9ERV8xNkJQUF81NjU7CiAJCXZhbCB8PSBX SU5DT054X0JVUlNUTEVOXzE2V09SRDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9maW1kLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f ZmltZC5jCmluZGV4IDAwMjkwNjU5NzliOC4uNzQ1Y2ZiZGY2YjM5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKQEAgLTgwNCw3ICs4MDQsNyBAQCBzdGF0aWMgdm9p ZCBmaW1kX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCQlEUk1f REVCVUdfS01TKCJvc2Qgc2l6ZSA9IDB4JXhcbiIsICh1bnNpZ25lZCBpbnQpdmFsKTsKIAl9CiAK LQlmaW1kX3dpbl9zZXRfcGl4Zm10KGN0eCwgd2luLCBmYi0+cGl4ZWxfZm9ybWF0LCBzdGF0ZS0+ c3JjLncpOworCWZpbWRfd2luX3NldF9waXhmbXQoY3R4LCB3aW4sIGZiLT5mb3JtYXQtPmZvcm1h dCwgc3RhdGUtPnNyYy53KTsKIAogCS8qIGhhcmR3YXJlIHdpbmRvdyAwIGRvZXNuJ3Qgc3VwcG9y dCBjb2xvciBrZXkuICovCiAJaWYgKHdpbiAhPSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X21peGVyLmMKaW5kZXggYjMxM2U2MWFhYjY1Li5hMTA2MDQ2ZTBjOTMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfbWl4ZXIuYwpAQCAtNDg1LDcgKzQ4NSw3IEBAIHN0YXRpYyB2b2lkIHZw X3ZpZGVvX2J1ZmZlcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAogCWJvb2wgY3JjYl9tb2Rl ID0gZmFsc2U7CiAJdTMyIHZhbDsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3 aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX05WMTI6CiAJCWNy Y2JfbW9kZSA9IGZhbHNlOwogCQlicmVhazsKQEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9p ZCB2cF92aWRlb19idWZmZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJwaXhlbCBmb3JtYXQgZm9yIHZwIGlzIHdyb25nIFslZF0u XG4iLAotCQkJCWZiLT5waXhlbF9mb3JtYXQpOworCQkJCWZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJ CXJldHVybjsKIAl9CiAKQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgdm9pZCBtaXhlcl9ncmFw aF9idWZmZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwKIAl1bnNpZ25lZCBpbnQgZm10Owog CXUzMiB2YWw7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5m b3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9YUkdCNDQ0NDoKIAljYXNlIERSTV9G T1JNQVRfQVJHQjQ0NDQ6CiAJCWZtdCA9IE1YUl9GT1JNQVRfQVJHQjQ0NDQ7CkBAIC02ODEsNyAr NjgxLDcgQEAgc3RhdGljIHZvaWQgbWl4ZXJfZ3JhcGhfYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250 ZXh0ICpjdHgsCiAJbWl4ZXJfY2ZnX3NjYW4oY3R4LCBtb2RlLT52ZGlzcGxheSk7CiAJbWl4ZXJf Y2ZnX3JnYl9mbXQoY3R4LCBtb2RlLT52ZGlzcGxheSk7CiAJbWl4ZXJfY2ZnX2xheWVyKGN0eCwg d2luLCBwcmlvcml0eSwgdHJ1ZSk7Ci0JbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNf YWxwaGFfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpKTsKKwltaXhlcl9jZmdfZ2Z4X2JsZW5kKGN0 eCwgd2luLCBpc19hbHBoYV9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSk7CiAKIAkvKiBsYXll ciB1cGRhdGUgbWFuZGF0b3J5IGZvciBtaXhlciAxNi4wLjMzLjAgKi8KIAlpZiAoY3R4LT5teHJf dmVyID09IE1YUl9WRVJfMTZfMF8zM18wIHx8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNs X2RjdV9kcm1fcGxhbmUuYwppbmRleCBhOTlmNDg4NDc0MjAuLjBhMjA3MjNhYTZlMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jCkBAIC00NCw3ICs0NCw3 IEBAIHN0YXRpYyBpbnQgZnNsX2RjdV9kcm1fcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCWlmICghc3RhdGUtPmZiIHx8ICFzdGF0ZS0+Y3J0YykKIAkJcmV0dXJu IDA7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQt PmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6CiAJY2FzZSBEUk1fRk9STUFUX1JH Qjg4ODoKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CkBAIC05Niw3ICs5Niw3IEBAIHN0YXRp YyB2b2lkIGZzbF9kY3VfZHJtX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAKIAlnZW0gPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKIAotCXN3aXRj aCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJ Y2FzZSBEUk1fRk9STUFUX1JHQjU2NToKIAkJYnBwID0gRlNMX0RDVV9SR0I1NjU7CiAJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1f YWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwpp bmRleCAzZWE3MDQ1OWI5MDEuLjMwN2Q0NjBhYjY4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMKQEAgLTYxNyw3ICs2MTcsNyBAQCBzdGF0 aWMgdm9pZCBhZGVfcmRtYV9zZXQodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKIAkJCSBjaCArIDEsIHksIGluX2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRy KTsKIAlEUk1fREVCVUdfRFJJVkVSKCJhZGRyPTB4JXgsIGZiOiVkeCVkLCBwaXhlbF9mb3JtYXQ9 JWQoJXMpXG4iLAogCQkJIGFkZHIsIGZiLT53aWR0aCwgZmItPmhlaWdodCwgZm10LAotCQkJIGRy bV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CisJCQkg ZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9ybWF0LT5mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwog CiAJLyogZ2V0IHJlZyBvZmZzZXQgKi8KIAlyZWdfY3RybCA9IFJEX0NIX0NUUkwoY2gpOwpAQCAt NzczLDcgKzc3Myw3IEBAIHN0YXRpYyB2b2lkIGFkZV91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgYWRl X3BsYW5lICphcGxhbmUsCiB7CiAJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFwbGFuZS0+Y3R4 OwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGN0eC0+YmFzZTsKLQl1MzIgZm10ID0gYWRlX2dldF9m b3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7CisJdTMyIGZtdCA9IGFkZV9nZXRfZm9ybWF0KGZiLT5m b3JtYXQtPmZvcm1hdCk7CiAJdTMyIGNoID0gYXBsYW5lLT5jaDsKIAl1MzIgaW5fdzsKIAl1MzIg aW5faDsKQEAgLTgzNSw3ICs4MzUsNyBAQCBzdGF0aWMgaW50IGFkZV9wbGFuZV9hdG9taWNfY2hl Y2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKCFjcnRjIHx8ICFmYikKIAkJcmV0dXJu IDA7CiAKLQlmbXQgPSBhZGVfZ2V0X2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlmbXQgPSBh ZGVfZ2V0X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChmbXQgPT0gQURFX0ZPUk1B VF9VTlNVUFBPUlQpCiAJCXJldHVybiAtRUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCmluZGV4IDdlZGVkMDU2MWY3NS4uMTVkZWIyYmM1NjhiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwpAQCAtMzAzMSw3ICszMDMxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf cGxhbmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjKQogCQlzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKIAogCQlpZiAoc3RhdGUtPmZiKSB7Ci0JCQlk cm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUp OworCQkJZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0LAorCQkJ CQkgICAgJmZvcm1hdF9uYW1lKTsKIAkJfSBlbHNlIHsKIAkJCXNwcmludGYoZm9ybWF0X25hbWUu c3RyLCAiTi9BIik7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMKaW5kZXggZGJlOWZiNDFhZTUzLi5lMDQ5ODM4MTU5YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jCkBAIC0xNTUsMTEgKzE1NSwxMSBAQCBzdGF0aWMgaW50 IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJICog UkdCIDE2LWJpdCA1OjY6NSwgYW5kIEluZGV4ZWQgOC1iaXQuCiAJCSAqIFRCRDogQWRkIFJHQjY0 IGNhc2Ugb25jZSBpdHMgYWRkZWQgaW4gc3VwcG9ydGVkIGZvcm1hdCBsaXN0LgogCQkgKi8KLQkJ c3dpdGNoIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgeworCQlzd2l0Y2ggKHN0YXRlLT5mYi0+ Zm9ybWF0LT5mb3JtYXQpIHsKIAkJY2FzZSBEUk1fRk9STUFUX0M4OgogCQljYXNlIERSTV9GT1JN QVRfUkdCNTY1OgogCQkJRFJNX0RFQlVHX0tNUygiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVz IGZvciA5MC8yNzAhXG4iLAotCQkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0 YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LAorCQkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9u YW1lKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmZvcm1hdF9uYW1lKSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGQ0MjVkN2VmYjlmOC4uNDYzOTg0YTVhMjUx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yNDU2LDcgKzI0NTYsNyBA QCB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAl1MzIgYWxp Z25tZW50OwogCiAJLyogQVVYX0RJU1QgbmVlZHMgb25seSA0SyBhbGlnbm1lbnQgKi8KLQlpZiAo ZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0gMSkKKwlpZiAo ZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiBwbGFuZSA9PSAxKQogCQlh bGlnbm1lbnQgPSA0MDk2OwogCWVsc2UKIAkJYWxpZ25tZW50ID0gaW50ZWxfc3VyZl9hbGlnbm1l bnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllcik7CkBAIC0yNzAxLDcgKzI3MDEsNyBAQCBpbnRlbF9h bGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlpZiAocGxh bmVfY29uZmlnLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWCkKIAkJb2JqLT50aWxpbmdfYW5kX3N0 cmlkZSA9IGZiLT5waXRjaGVzWzBdIHwgSTkxNV9USUxJTkdfWDsKIAotCW1vZGVfY21kLnBpeGVs X2Zvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7CisJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZmIt PmZvcm1hdC0+Zm9ybWF0OwogCW1vZGVfY21kLndpZHRoID0gZmItPndpZHRoOwogCW1vZGVfY21k LmhlaWdodCA9IGZiLT5oZWlnaHQ7CiAJbW9kZV9jbWQucGl0Y2hlc1swXSA9IGZiLT5waXRjaGVz WzBdOwpAQCAtMjk3Nyw3ICsyOTc3LDcgQEAgaW50IHNrbF9jaGVja19wbGFuZV9zdXJmYWNlKHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJICogSGFuZGxlIHRoZSBBVVgg c3VyZmFjZSBmaXJzdCBzaW5jZQogCSAqIHRoZSBtYWluIHN1cmZhY2Ugc2V0dXAgZGVwZW5kcyBv biBpdC4KIAkgKi8KLQlpZiAoZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsK KwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewogCQlyZXQgPSBz a2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQpCiAJCQly ZXR1cm4gcmV0OwpAQCAtMzAzMiw3ICszMDMyLDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogCQlJOTE1X1dSSVRFKFBS SU1DTlNUQUxQSEEocGxhbmUpLCAwKTsKIAl9CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQp IHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoK IAkJZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsKIAkJYnJlYWs7CkBAIC0zMTQ3LDcgKzMxNDcs NyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwcmltYXJ5LAogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQogCQlkc3BjbnRyIHw9IERJU1BQTEFORV9QSVBFX0NTQ19FTkFCTEU7CiAK LQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1h dCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsK IAkJYnJlYWs7CkBAIC0zMjgzLDcgKzMyODMsNyBAQCB1MzIgc2tsX3BsYW5lX3N0cmlkZShjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IHBsYW5lLAogCQlzdHJpZGUgLz0gaW50 ZWxfdGlsZV9oZWlnaHQoZGV2X3ByaXYsIGZiLT5tb2RpZmllciwgY3BwKTsKIAl9IGVsc2Ugewog CQlzdHJpZGUgLz0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXZfcHJpdiwgZmItPm1vZGlm aWVyLAotCQkJCQkJICAgIGZiLT5waXhlbF9mb3JtYXQpOworCQkJCQkJICAgIGZiLT5mb3JtYXQt PmZvcm1hdCk7CiAJfQogCiAJcmV0dXJuIHN0cmlkZTsKQEAgLTMzOTgsNyArMzM5OCw3IEBAIHN0 YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJCSAgICBQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAogCQkgICAgUExBTkVf Q1RMX1BJUEVfQ1NDX0VOQUJMRTsKIAotCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1h dChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9mb3JtYXQo ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF90aWxpbmco ZmItPm1vZGlmaWVyKTsKIAlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FC TEU7CiAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwpAQCAt NDc2OSw3ICs0NzY5LDcgQEAgc3RhdGljIGludCBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAkvKiBDaGVjayBzcmMgZm9y bWF0ICovCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0 LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfUkdCNTY1OgogCWNhc2UgRFJNX0ZPUk1BVF9Y QkdSODg4ODoKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CkBAIC00Nzg1LDcgKzQ3ODUsNyBA QCBzdGF0aWMgaW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCWRlZmF1bHQ6CiAJCURSTV9ERUJVR19LTVMoIltQTEFORTolZDol c10gRkI6JWQgdW5zdXBwb3J0ZWQgc2NhbGluZyBmb3JtYXQgMHgleFxuIiwKIAkJCSAgICAgIGlu dGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQsIGludGVsX3BsYW5lLT5iYXNlLm5hbWUsCi0JCQkgICAg ICBmYi0+YmFzZS5pZCwgZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkgICAgICBmYi0+YmFzZS5pZCwg ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC04NzU0LDcg Kzg3NTQsNiBAQCBpOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAogCXBpeGVsX2Zvcm1hdCA9IHZhbCAmIERJU1BQTEFORV9QSVhGT1JNQVRfTUFT SzsKIAlmb3VyY2MgPSBpOXh4X2Zvcm1hdF90b19mb3VyY2MocGl4ZWxfZm9ybWF0KTsKLQlmYi0+ cGl4ZWxfZm9ybWF0ID0gZm91cmNjOwogCWZiLT5mb3JtYXQgPSBkcm1fZm9ybWF0X2luZm8oZm91 cmNjKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKQEAgLTg3NzYsNyArODc3 NSw3IEBAIGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCWZiLT5waXRjaGVzWzBdID0gdmFsICYgMHhmZmZmZmZjMDsKIAogCWFsaWduZWRfaGVp Z2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmItPmhlaWdodCwKLQkJCQkJICAgICAg IGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJ CSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29uZmlnLT5zaXplID0gZmItPnBpdGNo ZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTk3ODAsNyArOTc3OSw2IEBAIHNreWxha2VfZ2V0 X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWZvdXJjYyA9 IHNrbF9mb3JtYXRfdG9fZm91cmNjKHBpeGVsX2Zvcm1hdCwKIAkJCQkgICAgICB2YWwgJiBQTEFO RV9DVExfT1JERVJfUkdCWCwKIAkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfQUxQSEFfTUFTSyk7 Ci0JZmItPnBpeGVsX2Zvcm1hdCA9IGZvdXJjYzsKIAlmYi0+Zm9ybWF0ID0gZHJtX2Zvcm1hdF9p bmZvKGZvdXJjYyk7CiAKIAl0aWxpbmcgPSB2YWwgJiBQTEFORV9DVExfVElMRURfTUFTSzsKQEAg LTk4MTQsMTEgKzk4MTIsMTEgQEAgc2t5bGFrZV9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAKIAl2YWwgPSBJOTE1X1JFQUQoUExBTkVfU1RSSURFKHBp cGUsIDApKTsKIAlzdHJpZGVfbXVsdCA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2X3By aXYsIGZiLT5tb2RpZmllciwKLQkJCQkJCWZiLT5waXhlbF9mb3JtYXQpOworCQkJCQkJZmItPmZv cm1hdC0+Zm9ybWF0KTsKIAlmYi0+cGl0Y2hlc1swXSA9ICh2YWwgJiAweDNmZikgKiBzdHJpZGVf bXVsdDsKIAogCWFsaWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmIt PmhlaWdodCwKLQkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+ Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29u ZmlnLT5zaXplID0gZmItPnBpdGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTk4OTUsNyAr OTg5Myw2IEBAIGlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAogCXBpeGVsX2Zvcm1hdCA9IHZhbCAmIERJU1BQTEFORV9QSVhGT1JNQVRf TUFTSzsKIAlmb3VyY2MgPSBpOXh4X2Zvcm1hdF90b19mb3VyY2MocGl4ZWxfZm9ybWF0KTsKLQlm Yi0+cGl4ZWxfZm9ybWF0ID0gZm91cmNjOwogCWZiLT5mb3JtYXQgPSBkcm1fZm9ybWF0X2luZm8o Zm91cmNjKTsKIAogCWJhc2UgPSBJOTE1X1JFQUQoRFNQU1VSRihwaXBlKSkgJiAweGZmZmZmMDAw OwpAQCAtOTkxNyw3ICs5OTE0LDcgQEAgaXJvbmxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWZiLT5waXRjaGVzWzBdID0gdmFsICYgMHhmZmZm ZmZjMDsKIAogCWFsaWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmIt PmhlaWdodCwKLQkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+ Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29u ZmlnLT5zaXplID0gZmItPnBpdGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTEyMTgzLDcg KzEyMTgwLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCXJldHVybiAtRUJVU1k7CiAKIAkvKiBDYW4ndCBjaGFuZ2UgcGl4ZWwgZm9y bWF0IHZpYSBNSSBkaXNwbGF5IGZsaXBzLiAqLwotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ICE9IGNy dGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQpCisJaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCAh PSBjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQpCiAJCXJldHVybiAtRUlOVkFMOwog CiAJLyoKQEAgLTEyODgwLDcgKzEyODc3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5F OiVkOiVzXSBGQjolZCwgZmIgPSAldXgldSBmb3JtYXQgPSAlc1xuIiwKIAkJCSAgICAgIHBsYW5l LT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwKIAkJCSAgICAgIGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgs IGZiLT5oZWlnaHQsCi0JCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3Jt YXQsICZmb3JtYXRfbmFtZSkpOworCQkJICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9y bWF0LT5mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KQogCQkJRFJNX0RFQlVHX0tNUygiXHRzY2FsZXI6JWQgc3JjICVkeCVkKyVkKyVkIGRzdCAl ZHglZCslZCslZFxuIiwKIAkJCQkgICAgICBzdGF0ZS0+c2NhbGVyX2lkLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiZGV2LmMKaW5kZXggMDZhZmNlMWVhYzQ5Li43M2QwMmQyMWM3NjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtNjMyLDcgKzYzMiw3IEBAIHN0YXRpYyBib29sIGlu dGVsX2ZiZGV2X2luaXRfYmlvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJCWN1cl9zaXpl ID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsK IAkJY3VyX3NpemUgPSBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoZGV2LCBjdXJfc2l6ZSwKLQkJCQkJ CSBmYi0+YmFzZS5waXhlbF9mb3JtYXQsCisJCQkJCQkgZmItPmJhc2UuZm9ybWF0LT5mb3JtYXQs CiAJCQkJCQkgZmItPmJhc2UubW9kaWZpZXIpOwogCQljdXJfc2l6ZSAqPSBmYi0+YmFzZS5waXRj aGVzWzBdOwogCQlEUk1fREVCVUdfS01TKCJwaXBlICVjIGFyZWE6ICVkeCVkLCBicHA6ICVkLCBz aXplOiAlZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCA5MGJhYjUx NmU4OTEuLjQ4OWMxNGZmMmNiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ZlcmxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpA QCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9jb2xvcmtleShzdHJ1Y3QgaW50 ZWxfb3ZlcmxheSAqb3ZlcmxheSwKIAlpZiAob3ZlcmxheS0+Y29sb3Jfa2V5X2VuYWJsZWQpCiAJ CWZsYWdzIHw9IERTVF9LRVlfRU5BQkxFOwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7 CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJ CWtleSA9IDA7CiAJCWZsYWdzIHw9IENMS19SR0I4SV9NQVNLOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKaW5kZXggMzUxNDc2ZTg1NDUyLi5kMDgzNGIzZDRmYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwpAQCAtMzIyMiw3ICszMjIyLDcgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQlyZXR1cm4gMDsKIAogCWZi ID0gcHN0YXRlLT5mYjsKLQlmb3JtYXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCWZvcm1hdCA9IGZi LT5mb3JtYXQtPmZvcm1hdDsKIAogCWlmIChwc3RhdGUtPnBsYW5lLT50eXBlID09IERSTV9QTEFO RV9UWVBFX0NVUlNPUikKIAkJcmV0dXJuIDA7CkBAIC0zMzA5LDcgKzMzMDksNyBAQCBza2xfZGRi X21pbl9hbGxvYyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAJCXJldHVy biAwOwogCiAJLyogRm9yIHBhY2tlZCBmb3JtYXRzLCBubyB5LXBsYW5lLCByZXR1cm4gMCAqLwot CWlmICh5ICYmIGZiLT5waXhlbF9mb3JtYXQgIT0gRFJNX0ZPUk1BVF9OVjEyKQorCWlmICh5ICYm IGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBEUk1fRk9STUFUX05WMTIpCiAJCXJldHVybiAwOwogCiAJ LyogRm9yIE5vbiBZLXRpbGUgcmV0dXJuIDgtYmxvY2tzICovCkBAIC0zMzI0LDEyICszMzI0LDEy IEBAIHNrbF9kZGJfbWluX2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0 ZSwKIAkJc3dhcChzcmNfdywgc3JjX2gpOwogCiAJLyogSGFsdmUgVVYgcGxhbmUgd2lkdGggYW5k IGhlaWdodCBmb3IgTlYxMiAqLwotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRf TlYxMiAmJiAheSkgeworCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEy ICYmICF5KSB7CiAJCXNyY193IC89IDI7CiAJCXNyY19oIC89IDI7CiAJfQogCi0JaWYgKGZiLT5w aXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmICF5KQorCWlmIChmYi0+Zm9ybWF0LT5m b3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmICF5KQogCQlwbGFuZV9icHAgPSBmYi0+Zm9ybWF0 LT5jcHBbMV07CiAJZWxzZQogCQlwbGFuZV9icHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CkBAIC0z NjEwLDcgKzM2MTAsNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlwbGFuZV9waXhlbF9yYXRlID0gc2ts X2FkanVzdGVkX3BsYW5lX3BpeGVsX3JhdGUoY3N0YXRlLCBpbnRlbF9wc3RhdGUpOwogCiAJaWYg KGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlvbikpIHsKLQkJaW50IGNwcCA9 IChmYi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgPworCQlpbnQgY3BwID0gKGZi LT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpID8KIAkJCWZiLT5mb3JtYXQtPmNw cFsxXSA6CiAJCQlmYi0+Zm9ybWF0LT5jcHBbMF07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKaW5kZXggYzI0NDg0NzFmZDkzLi43MDMxYmM3MzNkOTcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCkBAIC0yMjMsNyArMjIzLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJCVBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8 CiAJCVBMQU5FX0NUTF9QSVBFX0NTQ19FTkFCTEU7CiAKLQlwbGFuZV9jdGwgfD0gc2tsX3BsYW5l X2N0bF9mb3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7CisJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9j dGxfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9j dGxfdGlsaW5nKGZiLT5tb2RpZmllcik7CiAKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9y b3RhdGlvbihyb3RhdGlvbik7CkBAIC0zNTcsNyArMzU3LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsCiAKIAlzcHJjdGwgPSBTUF9FTkFCTEU7CiAKLQlzd2l0 Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewog CWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgogCQlzcHJjdGwgfD0gU1BfRk9STUFUX1lVVjQyMiB8IFNQ X1lVVl9PUkRFUl9ZVVlWOwogCQlicmVhazsKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2bHZfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKIAkJc3ByY3RsIHw9IFNQX1NPVVJDRV9L RVk7CiAKIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9PSBQSVBFX0IpCi0J CWNodl91cGRhdGVfY3NjKGludGVsX3BsYW5lLCBmYi0+cGl4ZWxfZm9ybWF0KTsKKwkJY2h2X3Vw ZGF0ZV9jc2MoaW50ZWxfcGxhbmUsIGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlJOTE1X1dSSVRF KFNQU1RSSURFKHBpcGUsIHBsYW5lX2lkKSwgZmItPnBpdGNoZXNbMF0pOwogCUk5MTVfV1JJVEUo U1BQT1MocGlwZSwgcGxhbmVfaWQpLCAoY3J0Y195IDw8IDE2KSB8IGNydGNfeCk7CkBAIC01MDIs NyArNTAyLDcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAog CXNwcmN0bCA9IFNQUklURV9FTkFCTEU7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsK Kwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4 ODoKIAkJc3ByY3RsIHw9IFNQUklURV9GT1JNQVRfUkdCWDg4OCB8IFNQUklURV9SR0JfT1JERVJf UkdCWDsKIAkJYnJlYWs7CkBAIC02NDAsNyArNjQwLDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCWR2c2NudHIgPSBEVlNfRU5BQkxFOwogCi0Jc3dpdGNo IChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAlj YXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6CiAJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9SR0JYODg4 IHwgRFZTX1JHQl9PUkRFUl9YQkdSOwogCQlicmVhazsKQEAgLTg2Niw3ICs4NjYsNyBAQCBpbnRl bF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXNyY195ID0g c3JjLT55MSA+PiAxNjsKIAkJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoc3JjKSA+PiAxNjsKIAot CQlpZiAoZm9ybWF0X2lzX3l1dihmYi0+cGl4ZWxfZm9ybWF0KSkgeworCQlpZiAoZm9ybWF0X2lz X3l1dihmYi0+Zm9ybWF0LT5mb3JtYXQpKSB7CiAJCQlzcmNfeCAmPSB+MTsKIAkJCXNyY193ICY9 IH4xOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMgYi9k cml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKaW5kZXggZjQ0YTgzNjU2MzEwLi4wYjk0 NWYwNzczNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKQEAgLTkyLDggKzkyLDggQEAg ZHJtX3BsYW5lX3N0YXRlX3RvX3VibyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAlj bWFfb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgMSk7CiAJQlVHX09OKCFjbWFfb2Jq KTsKIAotCXggLz0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxf Zm9ybWF0KTsKLQl5IC89IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPnBp eGVsX2Zvcm1hdCk7CisJeCAvPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZi LT5mb3JtYXQtPmZvcm1hdCk7CisJeSAvPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBs aW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+ b2Zmc2V0c1sxXSArIGZiLT5waXRjaGVzWzFdICogeSArCiAJICAgICAgIGZiLT5mb3JtYXQtPmNw cFsxXSAqIHggLSBlYmE7CkBAIC0xMTEsOCArMTExLDggQEAgZHJtX3BsYW5lX3N0YXRlX3RvX3Zi byhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAljbWFfb2JqID0gZHJtX2ZiX2NtYV9n ZXRfZ2VtX29iaihmYiwgMik7CiAJQlVHX09OKCFjbWFfb2JqKTsKIAotCXggLz0gZHJtX2Zvcm1h dF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKLQl5IC89IGRybV9m b3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPnBpeGVsX2Zvcm1hdCk7CisJeCAvPSBk cm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CisJ eSAvPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1h dCk7CiAKIAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+b2Zmc2V0c1syXSArIGZiLT5waXRj aGVzWzJdICogeSArCiAJICAgICAgIGZiLT5mb3JtYXQtPmNwcFsyXSAqIHggLSBlYmE7CkBAIC0y ODEsNyArMjgxLDcgQEAgc3RhdGljIGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCSAqLwogCWlmIChvbGRfZmIgJiYgKHN0YXRlLT5zcmNfdyAhPSBv bGRfc3RhdGUtPnNyY193IHx8CiAJCQkgICAgICBzdGF0ZS0+c3JjX2ggIT0gb2xkX3N0YXRlLT5z cmNfaCB8fAotCQkJICAgICAgZmItPnBpeGVsX2Zvcm1hdCAhPSBvbGRfZmItPnBpeGVsX2Zvcm1h dCkpCisJCQkgICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgIT0gb2xkX2ZiLT5mb3JtYXQtPmZvcm1h dCkpCiAJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CiAKIAllYmEgPSBkcm1fcGxh bmVfc3RhdGVfdG9fZWJhKHN0YXRlKTsKQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW50IGlw dV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKG9sZF9m YiAmJiBmYi0+cGl0Y2hlc1swXSAhPSBvbGRfZmItPnBpdGNoZXNbMF0pCiAJCWNydGNfc3RhdGUt Pm1vZGVfY2hhbmdlZCA9IHRydWU7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlz d2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9ZVVY0MjA6CiAJ Y2FzZSBEUk1fRk9STUFUX1lWVTQyMDoKIAljYXNlIERSTV9GT1JNQVRfWVVWNDIyOgpAQCAtMzE1 LDcgKzMxNSw3IEBAIHN0YXRpYyBpbnQgaXB1X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAkJaWYgKHZibyAmIDB4NyB8fCB2Ym8gPiAweGZmZmZmOCkKIAkJCXJl dHVybiAtRUlOVkFMOwogCi0JCWlmIChvbGRfZmIgJiYgKGZiLT5waXhlbF9mb3JtYXQgPT0gb2xk X2ZiLT5waXhlbF9mb3JtYXQpKSB7CisJCWlmIChvbGRfZmIgJiYgKGZiLT5mb3JtYXQtPmZvcm1h dCA9PSBvbGRfZmItPmZvcm1hdC0+Zm9ybWF0KSkgewogCQkJb2xkX3ZibyA9IGRybV9wbGFuZV9z dGF0ZV90b192Ym8ob2xkX3N0YXRlKTsKIAkJCWlmICh2Ym8gIT0gb2xkX3ZibykKIAkJCQljcnRj X3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBp bnQgaXB1X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJaWYg KHVibyAmIDB4NyB8fCB1Ym8gPiAweGZmZmZmOCkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCWlm IChvbGRfZmIgJiYgKGZiLT5waXhlbF9mb3JtYXQgPT0gb2xkX2ZiLT5waXhlbF9mb3JtYXQpKSB7 CisJCWlmIChvbGRfZmIgJiYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBvbGRfZmItPmZvcm1hdC0+ Zm9ybWF0KSkgewogCQkJb2xkX3VibyA9IGRybV9wbGFuZV9zdGF0ZV90b191Ym8ob2xkX3N0YXRl KTsKIAkJCWlmICh1Ym8gIT0gb2xkX3VibykKIAkJCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQg PSB0cnVlOwpAQCAtMzQ4LDggKzM0OCw4IEBAIHN0YXRpYyBpbnQgaXB1X3BsYW5lX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJICogVGhlIHgveSBvZmZzZXRzIG11c3Qg YmUgZXZlbiBpbiBjYXNlIG9mIGhvcml6b250YWwvdmVydGljYWwKIAkJICogY2hyb21hIHN1YnNh bXBsaW5nLgogCQkgKi8KLQkJaHN1YiA9IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxp bmcoZmItPnBpeGVsX2Zvcm1hdCk7Ci0JCXZzdWIgPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1 YnNhbXBsaW5nKGZiLT5waXhlbF9mb3JtYXQpOworCQloc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2No cm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOworCQl2c3ViID0gZHJtX2Zvcm1h dF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlpZiAoKChz dGF0ZS0+c3JjX3ggPj4gMTYpICYgKGhzdWIgLSAxKSkgfHwKIAkJICAgICgoc3RhdGUtPnNyY195 ID4+IDE2KSAmICh2c3ViIC0gMSkpKQogCQkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zOTIsMTMgKzM5 MiwxMyBAQCBzdGF0aWMgdm9pZCBpcHVfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAkJaXB1X2RwX3NldF9nbG9iYWxfYWxwaGEoaXB1X3BsYW5lLT5kcCwgdHJ1 ZSwgMCwgdHJ1ZSk7CiAJCWJyZWFrOwogCWNhc2UgSVBVX0RQX0ZMT1dfU1lOQ19GRzoKLQkJaWNz ID0gaXB1X2RybV9mb3VyY2NfdG9fY29sb3JzcGFjZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7 CisJCWljcyA9IGlwdV9kcm1fZm91cmNjX3RvX2NvbG9yc3BhY2Uoc3RhdGUtPmZiLT5mb3JtYXQt PmZvcm1hdCk7CiAJCWlwdV9kcF9zZXR1cF9jaGFubmVsKGlwdV9wbGFuZS0+ZHAsIGljcywKIAkJ CQkJSVBVVjNfQ09MT1JTUEFDRV9VTktOT1dOKTsKIAkJaXB1X2RwX3NldF93aW5kb3dfcG9zKGlw dV9wbGFuZS0+ZHAsIHN0YXRlLT5jcnRjX3gsCiAJCQkJCXN0YXRlLT5jcnRjX3kpOwogCQkvKiBF bmFibGUgbG9jYWwgYWxwaGEgb24gcGFydGlhbCBwbGFuZSAqLwotCQlzd2l0Y2ggKHN0YXRlLT5m Yi0+cGl4ZWxfZm9ybWF0KSB7CisJCXN3aXRjaCAoc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdCkg ewogCQljYXNlIERSTV9GT1JNQVRfQVJHQjE1NTU6CiAJCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTU1 NToKIAkJY2FzZSBEUk1fRk9STUFUX1JHQkE1NTUxOgpAQCAtNDIxLDExICs0MjEsMTEgQEAgc3Rh dGljIHZvaWQgaXB1X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJaXB1X2NwbWVtX3plcm8oaXB1X3BsYW5lLT5pcHVfY2gpOwogCWlwdV9jcG1lbV9zZXRfcmVz b2x1dGlvbihpcHVfcGxhbmUtPmlwdV9jaCwgc3RhdGUtPnNyY193ID4+IDE2LAogCQkJCQlzdGF0 ZS0+c3JjX2ggPj4gMTYpOwotCWlwdV9jcG1lbV9zZXRfZm10KGlwdV9wbGFuZS0+aXB1X2NoLCBz dGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJaXB1X2NwbWVtX3NldF9mbXQoaXB1X3BsYW5lLT5p cHVfY2gsIHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlwdV9jcG1lbV9zZXRfaGlnaF9w cmlvcml0eShpcHVfcGxhbmUtPmlwdV9jaCk7CiAJaXB1X2lkbWFjX3NldF9kb3VibGVfYnVmZmVy KGlwdV9wbGFuZS0+aXB1X2NoLCAxKTsKIAlpcHVfY3BtZW1fc2V0X3N0cmlkZShpcHVfcGxhbmUt PmlwdV9jaCwgc3RhdGUtPmZiLT5waXRjaGVzWzBdKTsKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3Jt YXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9Z VVY0MjA6CiAJY2FzZSBEUk1fRk9STUFUX1lWVTQyMDoKIAljYXNlIERSTV9GT1JNQVRfWVVWNDIy OgpAQCAtNDM0LDkgKzQzNCw5IEBAIHN0YXRpYyB2b2lkIGlwdV9wbGFuZV9hdG9taWNfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0NDQ6CiAJCXVi byA9IGRybV9wbGFuZV9zdGF0ZV90b191Ym8oc3RhdGUpOwogCQl2Ym8gPSBkcm1fcGxhbmVfc3Rh dGVfdG9fdmJvKHN0YXRlKTsKLQkJaWYgKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9Z VlU0MjAgfHwKLQkJICAgIGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0MjIgfHwK LQkJICAgIGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0NDQpCisJCWlmIChmYi0+ Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0MjAgfHwKKwkJICAgIGZiLT5mb3JtYXQt PmZvcm1hdCA9PSBEUk1fRk9STUFUX1lWVTQyMiB8fAorCQkgICAgZmItPmZvcm1hdC0+Zm9ybWF0 ID09IERSTV9GT1JNQVRfWVZVNDQ0KQogCQkJc3dhcCh1Ym8sIHZibyk7CiAKIAkJaXB1X2NwbWVt X3NldF95dXZfcGxhbmFyX2Z1bGwoaXB1X3BsYW5lLT5pcHVfY2gsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fcGxhbmUuYwppbmRleCA3MTQyMTkyM2M1OTIuLmU0MDVlODllZDVlNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jCkBAIC0xMzMsNyArMTMz LDcgQEAgc3RhdGljIHZvaWQgbXRrX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJbXRrX2dlbSA9IHRvX210a19nZW1fb2JqKGdlbSk7CiAJYWRkciA9IG10a19n ZW0tPmRtYV9hZGRyOwogCXBpdGNoID0gZmItPnBpdGNoZXNbMF07Ci0JZm9ybWF0ID0gZmItPnBp eGVsX2Zvcm1hdDsKKwlmb3JtYXQgPSBmYi0+Zm9ybWF0LT5mb3JtYXQ7CiAKIAlhZGRyICs9IChw bGFuZS0+c3RhdGUtPnNyYy54MSA+PiAxNikgKiBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJYWRkciAr PSAocGxhbmUtPnN0YXRlLT5zcmMueTEgPj4gMTYpICogcGl0Y2g7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9t ZXNvbl9wbGFuZS5jCmluZGV4IDQ5NDJjYTA5MGI0Ni4uNjQyYjJmYWI0MmZmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbWVzb24vbWVzb25fcGxhbmUuYwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyB2b2lkIG1l c29uX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKG1l c29uX3ZwdV9pc19jb21wYXRpYmxlKHByaXYsICJhbWxvZ2ljLG1lc29uLWd4YmItdnB1IikpCiAJ CXByaXYtPnZpdS5vc2QxX2JsazBfY2ZnWzBdIHw9IE9TRF9PVVRQVVRfQ09MT1JfUkdCOwogCi0J c3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQp IHsKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CiAJCS8qIEZvciBYUkdCLCByZXBsYWNlIHRo ZSBwaXhlbCdzIGFscGhhIGJ5IDB4RkYgKi8KIAkJd3JpdGVsX2JpdHNfcmVsYXhlZChPU0RfUkVQ TEFDRV9FTiwgT1NEX1JFUExBQ0VfRU4sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21kcC9tZHA0L21kcDRfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRw NF9wbGFuZS5jCmluZGV4IDkxMWU0NjkwZDM2YS4uNTM2MTlkMDc2NzdlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYwpAQCAtNDMsNyArNDMsNyBAQCBlbnVtIG1k cDRfZnJhbWVfZm9ybWF0IG1kcDRfZ2V0X2ZyYW1lX2Zvcm1hdChzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYikKIAlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX1NBTVNVTkdfNjRf MzJfVElMRSkKIAkJaXNfdGlsZSA9IHRydWU7CiAKLQlpZiAoZmItPnBpeGVsX2Zvcm1hdCA9PSBE Uk1fRk9STUFUX05WMTIgJiYgaXNfdGlsZSkKKwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERS TV9GT1JNQVRfTlYxMiAmJiBpc190aWxlKQogCQlyZXR1cm4gRlJBTUVfVElMRV9ZQ0JDUl80MjA7 CiAKIAlyZXR1cm4gRlJBTUVfTElORUFSOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKaW5kZXggMDY0OTg2M2Q3 ZmQ3Li41Y2YxNjVjOWMzYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Zi LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIuYwpAQCAtNjgsNyArNjgsNyBAQCB2 b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXNjcmliZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwg c3RydWN0IHNlcV9maWxlICptKQogCWludCBpLCBuID0gZmItPmZvcm1hdC0+bnVtX3BsYW5lczsK IAogCXNlcV9wcmludGYobSwgImZiOiAlZHglZEAlNC40cyAoJTJkLCBJRDolZClcbiIsCi0JCQlm Yi0+d2lkdGgsIGZiLT5oZWlnaHQsIChjaGFyICopJmZiLT5waXhlbF9mb3JtYXQsCisJCQlmYi0+ d2lkdGgsIGZiLT5oZWlnaHQsIChjaGFyICopJmZiLT5mb3JtYXQtPmZvcm1hdCwKIAkJCWRybV9m cmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KGZiKSwgZmItPmJhc2UuaWQpOwogCiAJZm9yIChpID0g MDsgaSA8IG47IGkrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2Zi X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKaW5kZXggMDgxODkw MzM2Y2U3Li5lMTBhNGVkYTQwNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9t eHNmYl9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2NydGMuYwpAQCAt NDYsNyArNDYsNyBAQCBzdGF0aWMgaW50IG14c2ZiX3NldF9waXhlbF9mbXQoc3RydWN0IG14c2Zi X2RybV9wcml2YXRlICpteHNmYikKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmbXhzZmIt PnBpcGUuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gY3J0Yy0+ZGV2OwotCWNvbnN0 IHUzMiBmb3JtYXQgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdDsKKwlj b25zdCB1MzIgZm9ybWF0ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1h dDsKIAl1MzIgY3RybCwgY3RybDE7CiAKIAljdHJsID0gQ1RSTF9CWVBBU1NfQ09VTlQgfCBDVFJM X01BU1RFUjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L292 ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L292ZXJsYXkuYwppbmRl eCBhNzk1MTRkNDQwYjMuLjYyNzVjMjcwZGYyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L2Rpc3BudjA0L292ZXJsYXkuYwpAQCAtMTQ1LDE2ICsxNDUsMTYgQEAgbnYxMF91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAludmlm X3dyMzIoZGV2LCBOVl9QVklERU9fUE9JTlRfT1VUKGZsaXApLCBjcnRjX3kgPDwgMTYgfCBjcnRj X3gpOwogCW52aWZfd3IzMihkZXYsIE5WX1BWSURFT19TSVpFX09VVChmbGlwKSwgY3J0Y19oIDw8 IDE2IHwgY3J0Y193KTsKIAotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ICE9IERSTV9GT1JNQVRfVVlW WSkKKwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ICE9IERSTV9GT1JNQVRfVVlWWSkKIAkJZm9ybWF0 IHw9IE5WX1BWSURFT19GT1JNQVRfQ09MT1JfTEVfQ1I4WUI4Q0I4WUE4OwotCWlmIChmYi0+cGl4 ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikKKwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09 IERSTV9GT1JNQVRfTlYxMikKIAkJZm9ybWF0IHw9IE5WX1BWSURFT19GT1JNQVRfUExBTkFSOwog CWlmIChudl9wbGFuZS0+aXR1cmJ0XzcwOSkKIAkJZm9ybWF0IHw9IE5WX1BWSURFT19GT1JNQVRf TUFUUklYX0lUVVJCVDcwOTsKIAlpZiAobnZfcGxhbmUtPmNvbG9ya2V5ICYgKDEgPDwgMjQpKQog CQlmb3JtYXQgfD0gTlZfUFZJREVPX0ZPUk1BVF9ESVNQTEFZX0NPTE9SX0tFWTsKIAotCWlmIChm Yi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgeworCWlmIChmYi0+Zm9ybWF0LT5m b3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKSB7CiAJCW52aWZfd3IzMihkZXYsIE5WX1BWSURFT19V VlBMQU5FX0JBU0UoZmxpcCksIDApOwogCQludmlmX3dyMzIoZGV2LCBOVl9QVklERU9fVVZQTEFO RV9PRkZTRVRfQlVGRihmbGlwKSwKIAkJCW52X2ZiLT5udmJvLT5iby5vZmZzZXQgKyBmYi0+b2Zm c2V0c1sxXSk7CkBAIC00MTEsNyArNDExLDcgQEAgbnYwNF91cGRhdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWlmIChudl9wbGFuZS0+ Y29sb3JrZXkgJiAoMSA8PCAyNCkpCiAJCW92ZXJsYXkgfD0gMHgxMDsKLQlpZiAoZmItPnBpeGVs X2Zvcm1hdCA9PSBEUk1fRk9STUFUX1lVWVYpCisJaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBE Uk1fRk9STUFUX1lVWVYpCiAJCW92ZXJsYXkgfD0gMHgxMDA7CiAKIAludmlmX3dyMzIoZGV2LCBO Vl9QVklERU9fT1ZFUkxBWSwgb3ZlcmxheSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udjUwX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlz cGxheS5jCmluZGV4IGI2MTdlNWQzMjc3YS4uY2I4NWNiNzJkYzFjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udjUwX2Rpc3BsYXkuYwpAQCAtMTE1Myw3ICsxMTUzLDcgQEAgbnY1MF9jdXJzX2Fj cXVpcmUoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3 LAogCWlmIChhc3l3LT5zdGF0ZS5mYi0+d2lkdGggIT0gYXN5dy0+c3RhdGUuZmItPmhlaWdodCkK IAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlzd2l0Y2ggKGFzeXctPnN0YXRlLmZiLT5waXhlbF9mb3Jt YXQpIHsKKwlzd2l0Y2ggKGFzeXctPnN0YXRlLmZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2Ug RFJNX0ZPUk1BVF9BUkdCODg4ODogYXN5aC0+Y3Vycy5mb3JtYXQgPSAxOyBicmVhazsKIAlkZWZh dWx0OgogCQlXQVJOX09OKDEpOwpAQCAtMTQzOCw3ICsxNDM4LDcgQEAgbnY1MF9iYXNlX2FjcXVp cmUoc3RydWN0IG52NTBfd25kdyAqd25kdywgc3RydWN0IG52NTBfd25kd19hdG9tICphc3l3LAog CWFzeWgtPmJhc2UudyA9IGFzeXctPnN0YXRlLmZiLT53aWR0aDsKIAlhc3loLT5iYXNlLmggPSBh c3l3LT5zdGF0ZS5mYi0+aGVpZ2h0OwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJ c3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzggICAgICAg ICA6IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4MWU7IGJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9S R0I1NjUgICAgIDogYXN5dy0+aW1hZ2UuZm9ybWF0ID0gMHhlODsgYnJlYWs7CiAJY2FzZSBEUk1f Rk9STUFUX1hSR0IxNTU1ICAgOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v b21hcF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYi5jCmluZGV4IGM2ZWY0 NTdiOWZjYS4uYmQ2Yjk0YzM4NjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9vbWFwX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYi5jCkBAIC0z NDYsNyArMzQ2LDcgQEAgdm9pZCBvbWFwX2ZyYW1lYnVmZmVyX2Rlc2NyaWJlKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAJaW50IGksIG4gPSBmYi0+Zm9y bWF0LT5udW1fcGxhbmVzOwogCiAJc2VxX3ByaW50ZihtLCAiZmI6ICVkeCVkQCU0LjRzXG4iLCBm Yi0+d2lkdGgsIGZiLT5oZWlnaHQsCi0JCQkoY2hhciAqKSZmYi0+cGl4ZWxfZm9ybWF0KTsKKwkJ CShjaGFyICopJmZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsr KSB7CiAJCXN0cnVjdCBwbGFuZSAqcGxhbmUgPSAmb21hcF9mYi0+cGxhbmVzW2ldOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwppbmRleCAwZDdmODRmN2Q3MWQuLjNjNDkyYTBh YTZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKQEAgLTExOTUsNyAr MTE5NSw3IEBAIHN0YXRpYyBpbnQgZGNlNF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAlyYWRlb25fYm9fZ2V0X3RpbGluZ19mbGFncyhyYm8sICZ0aWxpbmdfZmxhZ3Ms IE5VTEwpOwogCXJhZGVvbl9ib191bnJlc2VydmUocmJvKTsKIAotCXN3aXRjaCAodGFyZ2V0X2Zi LT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQpIHsK IAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9IChFVkVSR1JFRU5fR1JQSF9ERVBU SChFVkVSR1JFRU5fR1JQSF9ERVBUSF84QlBQKSB8CiAJCQkgICAgIEVWRVJHUkVFTl9HUlBIX0ZP Uk1BVChFVkVSR1JFRU5fR1JQSF9GT1JNQVRfSU5ERVhFRCkpOwpAQCAtMTI2MSw3ICsxMjYxLDcg QEAgc3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBm b3JtYXQgJXNcbiIsCi0JCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+ cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0 X25hbWUodGFyZ2V0X2ZiLT5mb3JtYXQtPmZvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CiAJCXJldHVy biAtRUlOVkFMOwogCX0KIApAQCAtMTUxMSw3ICsxNTExLDcgQEAgc3RhdGljIGludCBhdml2b19j cnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyYWRlb25fYm9fZ2V0X3Rp bGluZ19mbGFncyhyYm8sICZ0aWxpbmdfZmxhZ3MsIE5VTEwpOwogCXJhZGVvbl9ib191bnJlc2Vy dmUocmJvKTsKIAotCXN3aXRjaCAodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2gg KHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWZi X2Zvcm1hdCA9CiAJCSAgICBBVklWT19EMUdSUEhfQ09OVFJPTF9ERVBUSF84QlBQIHwKQEAgLTE1 NjQsNyArMTU2NCw3IEBAIHN0YXRpYyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVW5zdXBw b3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKLQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOworCQkgICAgICAgICAg ZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0X25h bWUpKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X3BsYW5lLmMKaW5kZXggYTc0ZjhlZDhjYTJlLi5kY2RlNjI4OGRhNmMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMKQEAgLTU2NywxMCArNTY3LDEwIEBAIHN0YXRp YyBpbnQgcmNhcl9kdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCXJzdGF0ZS0+Zm9ybWF0ID0gcmNhcl9kdV9mb3Jt YXRfaW5mbyhzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJcnN0YXRlLT5mb3JtYXQgPSByY2Fy X2R1X2Zvcm1hdF9pbmZvKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChyc3RhdGUt PmZvcm1hdCA9PSBOVUxMKSB7CiAJCWRldl9kYmcocmNkdS0+ZGV2LCAiJXM6IHVuc3VwcG9ydGVk IGZvcm1hdCAlMDh4XG4iLCBfX2Z1bmNfXywKLQkJCXN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KTsK KwkJCXN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jCmluZGV4IDgzZWJkMTYyZjNlZi4uYjVi ZmJlNTBiZDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3Zz cC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmMKQEAgLTIwMSwx MCArMjAxLDEwIEBAIHN0YXRpYyBpbnQgcmNhcl9kdV92c3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyc3RhdGUt PmZvcm1hdCA9IHJjYXJfZHVfZm9ybWF0X2luZm8oc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwor CXJzdGF0ZS0+Zm9ybWF0ID0gcmNhcl9kdV9mb3JtYXRfaW5mbyhzdGF0ZS0+ZmItPmZvcm1hdC0+ Zm9ybWF0KTsKIAlpZiAocnN0YXRlLT5mb3JtYXQgPT0gTlVMTCkgewogCQlkZXZfZGJnKHJjZHUt PmRldiwgIiVzOiB1bnN1cHBvcnRlZCBmb3JtYXQgJTA4eFxuIiwgX19mdW5jX18sCi0JCQlzdGF0 ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJCQlzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJ cmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2RybV92b3AuYwppbmRleCA1MGUwODVlNzQyMTQuLmZiNWYwMDFmNTFjMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC02NjgsNyArNjY4LDcgQEAg c3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCWlmICghc3RhdGUtPnZpc2libGUpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gdm9wX2NvbnZl cnRfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpOworCXJldCA9IHZvcF9jb252ZXJ0X2Zvcm1hdChm Yi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCkBAIC02 NzYsNyArNjc2LDcgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCSAqIFNyYy54MSBjYW4gYmUgb2RkIHdoZW4gZG8gY2xpcCwgYnV0 IHl1diBwbGFuZSBzdGFydCBwb2ludAogCSAqIG5lZWQgYWxpZ24gd2l0aCAyIHBpeGVsLgogCSAq LwotCWlmIChpc195dXZfc3VwcG9ydChmYi0+cGl4ZWxfZm9ybWF0KSAmJiAoKHN0YXRlLT5zcmMu eDEgPj4gMTYpICUgMikpCisJaWYgKGlzX3l1dl9zdXBwb3J0KGZiLT5mb3JtYXQtPmZvcm1hdCkg JiYgKChzdGF0ZS0+c3JjLngxID4+IDE2KSAlIDIpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXJl dHVybiAwOwpAQCAtNzUzLDE2ICs3NTMsMTYgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21p Y191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJb2Zmc2V0ICs9IChzcmMtPnkxID4+ IDE2KSAqIGZiLT5waXRjaGVzWzBdOwogCWRtYV9hZGRyID0gcmtfb2JqLT5kbWFfYWRkciArIG9m ZnNldCArIGZiLT5vZmZzZXRzWzBdOwogCi0JZm9ybWF0ID0gdm9wX2NvbnZlcnRfZm9ybWF0KGZi LT5waXhlbF9mb3JtYXQpOworCWZvcm1hdCA9IHZvcF9jb252ZXJ0X2Zvcm1hdChmYi0+Zm9ybWF0 LT5mb3JtYXQpOwogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAogCVZPUF9XSU5fU0VU KHZvcCwgd2luLCBmb3JtYXQsIGZvcm1hdCk7CiAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIHlyZ2Jf dmlyLCBmYi0+cGl0Y2hlc1swXSA+PiAyKTsKIAlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgeXJnYl9t c3QsIGRtYV9hZGRyKTsKLQlpZiAoaXNfeXV2X3N1cHBvcnQoZmItPnBpeGVsX2Zvcm1hdCkpIHsK LQkJaW50IGhzdWIgPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5waXhl bF9mb3JtYXQpOwotCQlpbnQgdnN1YiA9IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxp bmcoZmItPnBpeGVsX2Zvcm1hdCk7CisJaWYgKGlzX3l1dl9zdXBwb3J0KGZiLT5mb3JtYXQtPmZv cm1hdCkpIHsKKwkJaW50IGhzdWIgPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5n KGZiLT5mb3JtYXQtPmZvcm1hdCk7CisJCWludCB2c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9t YV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlpbnQgYnBwID0gZmItPmZvcm1h dC0+Y3BwWzFdOwogCiAJCXV2X29iaiA9IHJvY2tjaGlwX2ZiX2dldF9nZW1fb2JqKGZiLCAxKTsK QEAgLTc3OSwxNiArNzc5LDE2IEBAIHN0YXRpYyB2b2lkIHZvcF9wbGFuZV9hdG9taWNfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmICh3aW4tPnBoeS0+c2NsKQogCQlzY2xfdm9w X2NhbF9zY2xfZmFjKHZvcCwgd2luLCBhY3R1YWxfdywgYWN0dWFsX2gsCiAJCQkJICAgIGRybV9y ZWN0X3dpZHRoKGRlc3QpLCBkcm1fcmVjdF9oZWlnaHQoZGVzdCksCi0JCQkJICAgIGZiLT5waXhl bF9mb3JtYXQpOworCQkJCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCiAJVk9QX1dJTl9TRVQo dm9wLCB3aW4sIGFjdF9pbmZvLCBhY3RfaW5mbyk7CiAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIGRz cF9pbmZvLCBkc3BfaW5mbyk7CiAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIGRzcF9zdCwgZHNwX3N0 KTsKIAotCXJiX3N3YXAgPSBoYXNfcmJfc3dhcHBlZChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlyYl9z d2FwID0gaGFzX3JiX3N3YXBwZWQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlWT1BfV0lOX1NFVCh2 b3AsIHdpbiwgcmJfc3dhcCwgcmJfc3dhcCk7CiAKLQlpZiAoaXNfYWxwaGFfc3VwcG9ydChmYi0+ cGl4ZWxfZm9ybWF0KSkgeworCWlmIChpc19hbHBoYV9zdXBwb3J0KGZiLT5mb3JtYXQtPmZvcm1h dCkpIHsKIAkJVk9QX1dJTl9TRVQodm9wLCB3aW4sIGRzdF9hbHBoYV9jdGwsCiAJCQkgICAgRFNU X0ZBQ1RPUl9NMChBTFBIQV9TUkNfSU5WRVJTRSkpOwogCQl2YWwgPSBTUkNfQUxQSEFfRU4oMSkg fCBTUkNfQ09MT1JfTTAoQUxQSEFfU1JDX1BSRV9NVUwpIHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3NobW9i aWxlL3NobW9iX2RybV9jcnRjLmMKaW5kZXggZGRkYmRkNjJiZWQwLi40NDU0NzY1NTE2OTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0Yy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0Yy5jCkBAIC0xNzQsNyArMTc0 LDcgQEAgc3RhdGljIHZvaWQgc2htb2JfZHJtX2NydGNfc3RhcnQoc3RydWN0IHNobW9iX2RybV9j cnRjICpzY3J0YykKIAlpZiAoc2NydGMtPnN0YXJ0ZWQpCiAJCXJldHVybjsKIAotCWZvcm1hdCA9 IHNobW9iX2RybV9mb3JtYXRfaW5mbyhjcnRjLT5wcmltYXJ5LT5mYi0+cGl4ZWxfZm9ybWF0KTsK Kwlmb3JtYXQgPSBzaG1vYl9kcm1fZm9ybWF0X2luZm8oY3J0Yy0+cHJpbWFyeS0+ZmItPmZvcm1h dC0+Zm9ybWF0KTsKIAlpZiAoV0FSTl9PTihmb3JtYXQgPT0gTlVMTCkpCiAJCXJldHVybjsKIApA QCAtMzc2LDEwICszNzYsMTAgQEAgc3RhdGljIGludCBzaG1vYl9kcm1fY3J0Y19tb2RlX3NldChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJY29uc3Qgc3RydWN0IHNobW9iX2RybV9mb3JtYXRfaW5m byAqZm9ybWF0OwogCXZvaWQgKmNhY2hlOwogCi0JZm9ybWF0ID0gc2htb2JfZHJtX2Zvcm1hdF9p bmZvKGNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQpOworCWZvcm1hdCA9IHNobW9iX2Ry bV9mb3JtYXRfaW5mbyhjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChm b3JtYXQgPT0gTlVMTCkgewogCQlkZXZfZGJnKHNkZXYtPmRldiwgIm1vZGVfc2V0OiB1bnN1cHBv cnRlZCBmb3JtYXQgJTA4eFxuIiwKLQkJCWNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQp OworCQkJY3J0Yy0+cHJpbWFyeS0+ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJt X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX3BsYW5lLmMKaW5k ZXggMTgwNWJiMjNiMTEzLi4yMDIzYTkzY2VlMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9zaG1vYmlsZS9zaG1vYl9kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2Jp bGUvc2htb2JfZHJtX3BsYW5lLmMKQEAgLTE4MywxMCArMTgzLDEwIEBAIHNobW9iX2RybV9wbGFu ZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlzdHJ1Y3Qgc2htb2JfZHJtX2RldmljZSAqc2RldiA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRl OwogCWNvbnN0IHN0cnVjdCBzaG1vYl9kcm1fZm9ybWF0X2luZm8gKmZvcm1hdDsKIAotCWZvcm1h dCA9IHNobW9iX2RybV9mb3JtYXRfaW5mbyhmYi0+cGl4ZWxfZm9ybWF0KTsKKwlmb3JtYXQgPSBz aG1vYl9kcm1fZm9ybWF0X2luZm8oZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlpZiAoZm9ybWF0ID09 IE5VTEwpIHsKIAkJZGV2X2RiZyhzZGV2LT5kZXYsICJ1cGRhdGVfcGxhbmU6IHVuc3VwcG9ydGVk IGZvcm1hdCAlMDh4XG4iLAotCQkJZmItPnBpeGVsX2Zvcm1hdCk7CisJCQlmYi0+Zm9ybWF0LT5m b3JtYXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zdGkvc3RpX2dkcC5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMKaW5kZXgg NTgzMTZiZDZkN2Q2Li44NzdkMDUzZDg2ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9z dGkvc3RpX2dkcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jCkBAIC02MzYs MTAgKzYzNiwxMCBAQCBzdGF0aWMgaW50IHN0aV9nZHBfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKmRybV9wbGFuZSwKIAlzcmNfdyA9IGNsYW1wX3ZhbChzdGF0ZS0+c3JjX3cgPj4gMTYs IDAsIEdBTV9HRFBfU0laRV9NQVgpOwogCXNyY19oID0gY2xhbXBfdmFsKHN0YXRlLT5zcmNfaCA+ PiAxNiwgMCwgR0FNX0dEUF9TSVpFX01BWCk7CiAKLQlmb3JtYXQgPSBzdGlfZ2RwX2ZvdXJjYzJm b3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7CisJZm9ybWF0ID0gc3RpX2dkcF9mb3VyY2MyZm9ybWF0 KGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJaWYgKGZvcm1hdCA9PSAtMSkgewogCQlEUk1fRVJST1Io IkZvcm1hdCBub3Qgc3VwcG9ydGVkIGJ5IEdEUCAlLjRzXG4iLAotCQkJICAoY2hhciAqKSZmYi0+ cGl4ZWxfZm9ybWF0KTsKKwkJCSAgKGNoYXIgKikmZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCkBAIC03NDUsNyArNzQ1LDcgQEAgc3RhdGljIHZvaWQgc3RpX2dk cF9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKIAkvKiBidWlsZCB0 aGUgdG9wIGZpZWxkICovCiAJdG9wX2ZpZWxkLT5nYW1fZ2RwX2FnYyA9IEdBTV9HRFBfQUdDX0ZV TExfUkFOR0U7CiAJdG9wX2ZpZWxkLT5nYW1fZ2RwX2N0bCA9IFdBSVRfTkVYVF9WU1lOQzsKLQlm b3JtYXQgPSBzdGlfZ2RwX2ZvdXJjYzJmb3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7CisJZm9ybWF0 ID0gc3RpX2dkcF9mb3VyY2MyZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJdG9wX2ZpZWxk LT5nYW1fZ2RwX2N0bCB8PSBmb3JtYXQ7CiAJdG9wX2ZpZWxkLT5nYW1fZ2RwX2N0bCB8PSBzdGlf Z2RwX2dldF9hbHBoYXJhbmdlKGZvcm1hdCk7CiAJdG9wX2ZpZWxkLT5nYW1fZ2RwX3BwdCAmPSB+ R0FNX0dEUF9QUFRfSUdOT1JFOwpAQCAtNzUzLDcgKzc1Myw3IEBAIHN0YXRpYyB2b2lkIHN0aV9n ZHBfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJY21hX29iaiA9 IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiZHJt IEZCOiVkIGZvcm1hdDolLjRzIHBoeXNAOjB4JWx4XG4iLCBmYi0+YmFzZS5pZCwKLQkJCSAoY2hh ciAqKSZmYi0+cGl4ZWxfZm9ybWF0LAorCQkJIChjaGFyICopJmZiLT5mb3JtYXQtPmZvcm1hdCwK IAkJCSAodW5zaWduZWQgbG9uZyljbWFfb2JqLT5wYWRkcik7CiAKIAkvKiBwaXhlbCBtZW1vcnkg bG9jYXRpb24gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jCmluZGV4IGY4ODEzMGYyZWI0OC4uYmVj ZjEwZDI1NWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMKQEAgLTExNDcsNyArMTE0Nyw3IEBA IHN0YXRpYyB2b2lkIHN0aV9ocXZkcF9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKmRy bV9wbGFuZSwKIAljbWFfb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgMCk7CiAKIAlE Uk1fREVCVUdfRFJJVkVSKCJkcm0gRkI6JWQgZm9ybWF0OiUuNHMgcGh5c0A6MHglbHhcbiIsIGZi LT5iYXNlLmlkLAotCQkJIChjaGFyICopJmZiLT5waXhlbF9mb3JtYXQsCisJCQkgKGNoYXIgKikm ZmItPmZvcm1hdC0+Zm9ybWF0LAogCQkJICh1bnNpZ25lZCBsb25nKWNtYV9vYmotPnBhZGRyKTsK IAogCS8qIEJ1ZmZlciBwbGFuZXMgYWRkcmVzcyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9i YWNrZW5kLmMKaW5kZXggYTYwNjIwN2Q0ZTI1Li5hMjc4ZTFmNDQ2NjEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3N1bjRpL3N1bjRpX2JhY2tlbmQuYwpAQCAtMTg5LDcgKzE4OSw4IEBAIGludCBzdW40aV9iYWNr ZW5kX3VwZGF0ZV9sYXllcl9mb3JtYXRzKHN0cnVjdCBzdW40aV9iYWNrZW5kICpiYWNrZW5kLAog CURSTV9ERUJVR19EUklWRVIoIlN3aXRjaGluZyBkaXNwbGF5IGJhY2tlbmQgaW50ZXJsYWNlZCBt b2RlICVzXG4iLAogCQkJIGludGVybGFjZWQgPyAib24iIDogIm9mZiIpOwogCi0JcmV0ID0gc3Vu NGlfYmFja2VuZF9kcm1fZm9ybWF0X3RvX2xheWVyKHBsYW5lLCBmYi0+cGl4ZWxfZm9ybWF0LCAm dmFsKTsKKwlyZXQgPSBzdW40aV9iYWNrZW5kX2RybV9mb3JtYXRfdG9fbGF5ZXIocGxhbmUsIGZi LT5mb3JtYXQtPmZvcm1hdCwKKwkJCQkJCSZ2YWwpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVH X0RSSVZFUigiSW52YWxpZCBmb3JtYXRcbiIpOwogCQlyZXR1cm4gdmFsOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwpp bmRleCA2NDJkY2ZmODdlMzQuLjc1NjFhOTVhNTRlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3RlZ3JhL2RjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKQEAgLTUxMSw3 ICs1MTEsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAlpZiAoIXN0YXRlLT5jcnRjKQogCQlyZXR1cm4gMDsKIAotCWVyciA9 IHRlZ3JhX2RjX2Zvcm1hdChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwgJnBsYW5lX3N0YXRlLT5m b3JtYXQsCisJZXJyID0gdGVncmFfZGNfZm9ybWF0KHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQs ICZwbGFuZV9zdGF0ZS0+Zm9ybWF0LAogCQkJICAgICAgJnBsYW5lX3N0YXRlLT5zd2FwKTsKIAlp ZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 aWxjZGMvdGlsY2RjX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMu YwppbmRleCAwZGM5NmUxMmZkMDYuLjQ3YzJmZTY1OWZlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMv dGlsY2RjX2NydGMuYwpAQCAtMzk5LDcgKzM5OSw3IEBAIHN0YXRpYyB2b2lkIHRpbGNkY19jcnRj X3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpZiAoaW5mby0+dGZ0X2FsdF9tb2Rl KQogCQlyZWcgfD0gTENEQ19URlRfQUxUX0VOQUJMRTsKIAlpZiAocHJpdi0+cmV2ID09IDIpIHsK LQkJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9y bWF0KSB7CiAJCWNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6CiAJCWNhc2UgRFJNX0ZPUk1BVF9SR0I1 NjU6CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2Rj X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wbGFuZS5jCmluZGV4IGMw ZmM4NzRlOTFjZi4uNGI3NTE5ZGZkMWI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGls Y2RjL3RpbGNkY19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3Bs YW5lLmMKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIGludCB0aWxjZGNfcGxhbmVfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIAogCWlmIChzdGF0ZS0+ZmIgJiYgb2xk X3N0YXRlLT5mYiAmJgotCSAgICBzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCAhPSBvbGRfc3RhdGUt PmZiLT5waXhlbF9mb3JtYXQpIHsKKwkgICAgc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdCAhPSBv bGRfc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdCkgewogCQlkZXZfZGJnKHBsYW5lLT5kZXYtPmRl diwKIAkJCSIlcygpOiBwaXhlbCBmb3JtYXQgY2hhbmdlIHJlcXVpcmVzIG1vZGVfY2hhbmdlXG4i LAogCQkJX19mdW5jX18pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxh bmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKaW5kZXggZjg0ZjZiZGRkMDE1 Li4xMTBkMTUxOGY1ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5l LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwpAQCAtMjk1LDcgKzI5NSw3 IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX3NldHVwX2NsaXBwaW5nX2FuZF9zY2FsaW5nKHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g c3RhdGUtPmZiOwogCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmJvID0gZHJtX2ZiX2NtYV9n ZXRfZ2VtX29iaihmYiwgMCk7CiAJdTMyIHN1YnBpeGVsX3NyY19tYXNrID0gKDEgPDwgMTYpIC0g MTsKLQl1MzIgZm9ybWF0ID0gZmItPnBpeGVsX2Zvcm1hdDsKKwl1MzIgZm9ybWF0ID0gZmItPmZv cm1hdC0+Zm9ybWF0OwogCWludCBudW1fcGxhbmVzID0gZmItPmZvcm1hdC0+bnVtX3BsYW5lczsK IAl1MzIgaF9zdWJzYW1wbGUgPSAxOwogCXUzMiB2X3N1YnNhbXBsZSA9IDE7CkBAIC00OTYsNyAr NDk2LDcgQEAgc3RhdGljIGludCB2YzRfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJc3RydWN0IHZjNF9wbGFuZV9zdGF0ZSAqdmM0X3N0YXRlID0gdG9fdmM0X3BsYW5l X3N0YXRlKHN0YXRlKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsK IAl1MzIgY3RsMF9vZmZzZXQgPSB2YzRfc3RhdGUtPmRsaXN0X2NvdW50OwotCWNvbnN0IHN0cnVj dCBodnNfZm9ybWF0ICpmb3JtYXQgPSB2YzRfZ2V0X2h2c19mb3JtYXQoZmItPnBpeGVsX2Zvcm1h dCk7CisJY29uc3Qgc3RydWN0IGh2c19mb3JtYXQgKmZvcm1hdCA9IHZjNF9nZXRfaHZzX2Zvcm1h dChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWludCBudW1fcGxhbmVzID0gZHJtX2Zvcm1hdF9udW1f cGxhbmVzKGZvcm1hdC0+ZHJtKTsKIAl1MzIgc2NsMCwgc2NsMTsKIAl1MzIgbGJtX3NpemU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYwppbmRleCA1ODY0M2M1Y2ExZDcuLjg2N2E4NDQyMjIw YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jCkBAIC00ODgsNyArNDg4LDcgQEAgc3Rh dGljIGludCB2bXdfZmJfa21zX2ZyYW1lYnVmZmVyKHN0cnVjdCBmYl9pbmZvICppbmZvKQogCWN1 cl9mYiA9IHBhci0+c2V0X2ZiOwogCWlmIChjdXJfZmIgJiYgY3VyX2ZiLT53aWR0aCA9PSBtb2Rl X2NtZC53aWR0aCAmJgogCSAgICBjdXJfZmItPmhlaWdodCA9PSBtb2RlX2NtZC5oZWlnaHQgJiYK LQkgICAgY3VyX2ZiLT5waXhlbF9mb3JtYXQgPT0gbW9kZV9jbWQucGl4ZWxfZm9ybWF0ICYmCisJ ICAgIGN1cl9mYi0+Zm9ybWF0LT5mb3JtYXQgPT0gbW9kZV9jbWQucGl4ZWxfZm9ybWF0ICYmCiAJ ICAgIGN1cl9mYi0+cGl0Y2hlc1swXSA9PSBtb2RlX2NtZC5waXRjaGVzWzBdKQogCQlyZXR1cm4g MDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCmluZGV4IDcyZDI3YjBhNDhiMi4uYjYzNGIwOTBjZGMx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RhdGljIHZvaWQg enhfZ2xfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAo IWZiKQogCQlyZXR1cm47CiAKLQlmb3JtYXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCWZvcm1hdCA9 IGZiLT5mb3JtYXQtPmZvcm1hdDsKIAlzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsKIAogCXNyY194 ID0gcGxhbmUtPnN0YXRlLT5zcmNfeCA+PiAxNjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9mcmFtZWJ1ZmZlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKaW5kZXggNzJi OWI0ODk4OTE1Li5mMGRkZTFkMDJiZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9mcmFt ZWJ1ZmZlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCkBAIC0xNzUsMTAg KzE3NSw2IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgewogCSAqLwogCWludCBmbGFnczsKIAkv KioKLQkgKiBAcGl4ZWxfZm9ybWF0OiBEUk0gRk9VUkNDIGNvZGUgZGVzY3JpYmluZyB0aGUgcGl4 ZWwgZm9ybWF0LgotCSAqLwotCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsgLyogZm91cmNjIGZvcm1h dCAqLwotCS8qKgogCSAqIEBob3RfeDogWCBjb29yZGluYXRlIG9mIHRoZSBjdXJzb3IgaG90c3Bv dC4gVXNlZCBieSB0aGUgbGVnYWN5IGN1cnNvcgogCSAqIElPQ1RMIHdoZW4gdGhlIGRyaXZlciBz dXBwb3J0cyBjdXJzb3IgdGhyb3VnaCBhIERSTV9QTEFORV9UWVBFX0NVUlNPUgogCSAqIHVuaXZl cnNhbCBwbGFuZS4KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK