From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [RFC][PATCH 04/11] drm: Split the display info into static and dynamic parts Date: Tue, 27 Feb 2018 14:56:53 +0200 Message-ID: <20180227125700.6527-5-ville.syrjala@linux.intel.com> References: <20180227125700.6527-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180227125700.6527-1-ville.syrjala@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: dri-devel@lists.freedesktop.org Cc: Marek Vasut , linux-renesas-soc@vger.kernel.org, Daniel Vetter , intel-gfx@lists.freedesktop.org, Alison Wang , Archit Taneja , Stefan Agner , Andrzej Hajda , Hans de Goede , Laurent Pinchart , Philipp Zabel , Manfred Schlaegl , Maxime Ripard , Linus Walleij List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkN1 cnJlbnRseSB3ZSBoYXZlIGEgbWl4IG9mIHN0YXRpYyBhbmQgZHluYW1pYyBpbmZvcm1hdGlvbiBz dG9yZWQgaW4KdGhlIGRpc3BsYXkgaW5mbyBzdHJ1Y3R1cmUuIFRoYXQgbWFrZXMgaXQgcmF0aGVy IGRpZmZpY3VsdCB0byByZXBvcHVsYXRlCnRoZSBkeW5hbWljIHBhcnRzIHdoZW4gYSBuZXcgRURJ RCBhcHBlYXJzLiBMZXQncyBtYWtlIGxpZmUgZWFzaWVyIGJ5CnNwbGl0dGluZyB0aGUgc3RydWN0 dXJlIHVwIGludG8gc3RhdGljIGFuZCBkeW5hbWljIHBhcnRzLgoKVGhlIHN0YXRpYyBwYXJ0IHdp bGwgY29uc2lzdCBvZiBzdWJwaXhlbF9vcmRlciwgcGFuZWxfb3JpZW50YXRpb24sCmFuZCBidXNf Zm9ybWF0cy4KCkFjdHVhbGx5IEknbSBub3Qgc3VyZSB3aGVyZSBidXNfZm9ybWF0cyAmIGNvLiBm aXQgaW4gYWxsIHRoaXMuIEZvciBzb21lCmRyaXZlcnMgdGhvc2Ugc2VlbSB0byBiZSBzdGF0aWMs IGV2ZW4gdGhvdWdoIHRoZXkgbWlnaHQgZmlsbCB0aGVtIG91dApmcm9tIC5nZXRfbW9kZXMoKS4g Rm9yIG90aGVyIGRyaXZlcnMgdGhpcyBzdHVmZiBldmVuIGdldHMgZnJvYmJlZCBhdApydW50aW1l LCBtYWtpbmcgaXQgbW9yZSBzb21lIGtpbmQgb2YgYSBiYXN0YXJkIGVuY29kZXIvY29ubmVjdG9y IHN0YXRlLgpJJ2xsIGp1c3Qgc3RpY2sgaXQgaW50byB0aGUgc3RhdGljIHNpZGUgc28gdGhhdCB0 aGUgYmVoYXZpb3VyIGRvZXNuJ3QKY2hhbmdlIHdoZW4gSSBzdGFydCBjbGVhciBvdXQgdGhlIGVu dGlyZSBkeW5hbWljIHN0YXRlIHdpdGggbWVtc2V0KCkuCgpDYzogS2VpdGggUGFja2FyZCA8a2Vp dGhwQGtlaXRocC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgpDYzogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KQ2M6IFNoYXNoYW5rIFNo YXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KQ2M6IFN0ZWZhbiBBZ25lciA8c3RlZmFu QGFnbmVyLmNoPgpDYzogVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT4K Q2M6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGJvb3RsaW4uY29tPgpDYzogUGhp bGlwcCBaYWJlbCA8cC56YWJlbEBwZW5ndXRyb25peC5kZT4KQ2M6IExhdXJlbnQgUGluY2hhcnQg PGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KQ2M6IE1hbmZyZWQgU2NobGFlZ2wg PG1hbmZyZWQuc2NobGFlZ2xAZ214LmF0PgpDYzogTWFyZWsgVmFzdXQgPG1hcmV4QGRlbnguZGU+ CkNjOiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgpDYzogQW5kcnplaiBI YWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KQ2M6IEFsaXNvbiBXYW5nIDxhbGlzb24ud2FuZ0Bm cmVlc2NhbGUuY29tPgpDYzogRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KQ2M6IExpbnVz IFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz4KQ2M6IGxpbnV4LXJlbmVzYXMtc29j QHZnZXIua2VybmVsLm9yZwpDYzogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGlu LmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVj dG9ycy5jICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1 YWwuYyAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1l bF9obGNkY19jcnRjLmMgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkw MnguYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90 YzM1ODc2Ny5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f Y29ubmVjdG9yLmMgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2hlbHBlci5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUv ZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYyAgICAgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRzLmMgICAgICAgICAgICB8ICAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMgICAgICAgICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfaGRtaS5jICAgICAgICAgICAgIHwg ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYyAgICAgICAgICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5jICAgICAg ICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYyAg ICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMg ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2 by5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9sdmRzLmMgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc2R2by5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p bXgvaW14LWxkYi5jICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9n cHUvZHJtL214c2ZiL214c2ZiX2NydGMuYyAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgICAgICAgIHwgICAyICstCiBk cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYyAgICAgICB8ICAgOCAr LQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYyAgICAgICAgICAgICAgICAgfCAg IDQgKy0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMg IHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jICAg ICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBsZS5jICAgICAg ICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMg ICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25u ZWN0b3JzLmMgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9k dV9lbmNvZGVyLmMgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40 aV90Y29uLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vdHZlMjAw L3R2ZTIwMF9kaXNwbGF5LmMgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfZHBpLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIzICsrKysrKysrKysrKy0t LS0tLS0tLQogMzYgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDEwNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29u bmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMu YwppbmRleCA3NGQyZWZhZWM1MmYuLjFiYTcyZGMyYTg1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCkBAIC0xOTI3LDcgKzE5MjcsNyBAQCBh bWRncHVfY29ubmVjdG9yX2FkZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl9IGVsc2UK IAkJY29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwogCi0JY29ubmVj dG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKKwljb25u ZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRl cjsKIAlkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7CiAKIAlpZiAoaGFzX2F1eCkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdmlydHVhbC5jCmluZGV4IDEyMGRkM2IyNmZj Mi4uN2U5ZjdmMWFiMWIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdmlydHVhbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFs LmMKQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW50IGRjZV92aXJ0dWFsX2Nvbm5lY3Rvcl9l bmNvZGVyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJZHJtX2Nvbm5lY3Rvcl9p bml0KGFkZXYtPmRkZXYsIGNvbm5lY3RvciwgJmRjZV92aXJ0dWFsX2Nvbm5lY3Rvcl9mdW5jcywK IAkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKTsKIAlkcm1fY29ubmVjdG9yX2hlbHBl cl9hZGQoY29ubmVjdG9yLCAmZGNlX3ZpcnR1YWxfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Ci0J Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250 YWxSR0I7CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0g U3ViUGl4ZWxIb3Jpem9udGFsUkdCOwogCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBm YWxzZTsKIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwogCWRybV9jb25u ZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h dG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxj ZGMvYXRtZWxfaGxjZGNfY3J0Yy5jCmluZGV4IGQ3MzI4MTA5NWZhYy4uMmQxOGM4ZWYyMmEwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMKQEAg LTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMgaW50IGF0bWVsX2hsY2RjX2NydGNfc2VsZWN0X291dHB1 dF9tb2RlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCiAJY3J0YyA9IGRybV9jcnRjX3Rv X2F0bWVsX2hsY2RjX2NydGMoc3RhdGUtPmNydGMpOwogCiAJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rv cl9pbl9zdGF0ZShzdGF0ZS0+c3RhdGUsIGNvbm5lY3RvciwgY3N0YXRlLCBpKSB7Ci0JCXN0cnVj dCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOworCQlz dHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvOwogCQl1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX2ZtdHMgPSAwOwogCQlpbnQg ajsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYwppbmRleCBiMWFiNGFiMDk1MzIuLmFiZDBiY2U5 YzMxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0 aWMgaW50IHNpaTkwMnhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip CiAJCWtmcmVlKGVkaWQpOwogCX0KIAotCXJldCA9IGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19m b3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKKwlyZXQgPSBkcm1fZGlzcGxheV9pbmZv X3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLAogCQkJCQkg ICAgICAgJmJ1c19mb3JtYXQsIDEpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RjMzU4NzY3LmMKaW5kZXggMDhhYjdkNmFlYTY1Li4wNDJkZWQ5Y2E3NDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKQEAgLTExOTMsNyArMTE5Myw3IEBAIHN0YXRpYyBpbnQg dGNfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogCWlmICh0Yy0+cGFu ZWwpCiAJCWRybV9wYW5lbF9hdHRhY2godGMtPnBhbmVsLCAmdGMtPmNvbm5lY3Rvcik7CiAKLQlk cm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmdGMtPmNvbm5lY3Rvci5kaXNwbGF5X2lu Zm8sCisJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJnRjLT5jb25uZWN0b3Iuc3Rh dGljX2Rpc3BsYXlfaW5mbywKIAkJCQkJICZidXNfZm9ybWF0LCAxKTsKIAlkcm1fbW9kZV9jb25u ZWN0b3JfYXR0YWNoX2VuY29kZXIoJnRjLT5jb25uZWN0b3IsIHRjLT5icmlkZ2UuZW5jb2Rlcik7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCmluZGV4IGIzY2RlODk3Y2Q4MC4uZDczZTk3ZWQ3ZGZm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKQEAgLTIzNyw3ICsyMzcsNyBAQCBpbnQgZHJtX2Nv bm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJbXV0ZXhfaW5pdCgmY29ubmVj dG9yLT5tdXRleCk7CiAJY29ubmVjdG9yLT5lZGlkX2Jsb2JfcHRyID0gTlVMTDsKIAljb25uZWN0 b3ItPnN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKLQljb25uZWN0b3ItPmRpc3Bs YXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbiA9CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9p bmZvLnBhbmVsX29yaWVudGF0aW9uID0KIAkJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fVU5L Tk9XTjsKIAogCWRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZShjb25uZWN0b3IpOwpAQCAt MzY2LDcgKzM2Niw3IEBAIHZvaWQgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCiAJaWRhX3NpbXBsZV9yZW1vdmUoJmRldi0+bW9kZV9jb25maWcu Y29ubmVjdG9yX2lkYSwKIAkJCSAgY29ubmVjdG9yLT5pbmRleCk7CiAKLQlrZnJlZShjb25uZWN0 b3ItPmRpc3BsYXlfaW5mby5idXNfZm9ybWF0cyk7CisJa2ZyZWUoY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzKTsKIAlkcm1fbW9kZV9vYmplY3RfdW5yZWdpc3Rlcihk ZXYsICZjb25uZWN0b3ItPmJhc2UpOwogCWtmcmVlKGNvbm5lY3Rvci0+bmFtZSk7CiAJY29ubmVj dG9yLT5uYW1lID0gTlVMTDsKQEAgLTY3NCw3ICs2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fbGlua19zdGF0dXNfZW51bV9saXN0W10gPSB7CiAKIC8q KgogICogZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMgLSBzZXQgdGhlIHN1cHBvcnRl ZCBidXMgZm9ybWF0cwotICogQGluZm86IGRpc3BsYXkgaW5mbyB0byBzdG9yZSBidXMgZm9ybWF0 cyBpbgorICogQGluZm86IGZpeGVkIGRpc3BsYXkgaW5mbyB0byBzdG9yZSBidXMgZm9ybWF0cyBp bgogICogQGZvcm1hdHM6IGFycmF5IGNvbnRhaW5pbmcgdGhlIHN1cHBvcnRlZCBidXMgZm9ybWF0 cwogICogQG51bV9mb3JtYXRzOiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGZtdHMgYXJy YXkKICAqCkBAIC02ODIsNyArNjgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9l bnVtX2xpc3QgZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdFtdID0gewogICogU2VlIE1FRElBX0JV U19GTVRfKiBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL3VhcGkvbGludXgvbWVkaWEtYnVzLWZvcm1h dC5oIGZvcgogICogYSBmdWxsIGxpc3Qgb2YgYXZhaWxhYmxlIGZvcm1hdHMuCiAgKi8KLWludCBk cm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAq aW5mbywKK2ludCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX3N0 YXRpY19kaXNwbGF5X2luZm8gKmluZm8sCiAJCQkJICAgICBjb25zdCB1MzIgKmZvcm1hdHMsCiAJ CQkJICAgICB1bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHMpCiB7CkBAIC0xNDYwLDcgKzE0NjAsNyBA QCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0X3BhbmVsX29yaWVudGF0aW9uX3Byb3BlcnR5KAogCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Ci0Jc3RydWN0IGRybV9k aXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CisJc3RydWN0IGRy bV9zdGF0aWNfZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlf aW5mbzsKIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwogCWludCBvcmllbnRhdGlvbl9xdWly azsKIApAQCAtMTYwMiw3ICsxNjAyLDcgQEAgaW50IGRybV9tb2RlX2dldGNvbm5lY3RvcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJb3V0X3Jlc3AtPm1tX3dpZHRoID0g Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW07CiAJb3V0X3Jlc3AtPm1tX2hlaWdodCA9 IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbTsKLQlvdXRfcmVzcC0+c3VicGl4ZWwg PSBjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlcjsKKwlvdXRfcmVzcC0+c3Vi cGl4ZWwgPSBjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXI7CiAJ b3V0X3Jlc3AtPmNvbm5lY3Rpb24gPSBjb25uZWN0b3ItPnN0YXR1czsKIAogCS8qIGRlbGF5ZWQg c28gd2UgZ2V0IG1vZGVzIHJlZ2FyZGxlc3Mgb2YgcHJlLWZpbGxfbW9kZXMgc3RhdGUgKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IDAzNTc4NGRkZDEzMy4uMThjYjYzYjMwZTMzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTI0MzMsNyArMjQzMyw3IEBAIHN0YXRpYyB2b2lkIGRy bV9zZXR1cF9jcnRjX3JvdGF0aW9uKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiAK IAlmYl9jcnRjLT5yb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFURV8wOwogCi0Jc3dpdGNoIChjb25u ZWN0b3ItPmRpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbikgeworCXN3aXRjaCAoY29ubmVj dG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnBhbmVsX29yaWVudGF0aW9uKSB7CiAJY2FzZSBEUk1f TU9ERV9QQU5FTF9PUklFTlRBVElPTl9CT1RUT01fVVA6CiAJCXJvdGF0aW9uID0gRFJNX01PREVf Uk9UQVRFXzE4MDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRj dS9mc2xfZGN1X2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2Ry bV9jcnRjLmMKaW5kZXggMGUzNzUyNDM3ZTQ0Li4yNDQ0YzE0NjM5ZWYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9jcnRjLmMKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGlj IHZvaWQgZnNsX2RjdV9kcm1fY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIAl2c3cgPSBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydDsKIAogCS8qIElO Vl9QWENLIGFzIGRlZmF1bHQgKG1vc3QgZGlzcGxheSBzYW1wbGUgZGF0YSBvbiByaXNpbmcgZWRn ZSkgKi8KLQlpZiAoIShjb24tPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdf UElYREFUQV9QT1NFREdFKSkKKwlpZiAoIShjb24tPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2Zs YWdzICYgRFJNX0JVU19GTEFHX1BJWERBVEFfUE9TRURHRSkpCiAJCXBvbCB8PSBEQ1VfU1lOX1BP TF9JTlZfUFhDSzsKIAogCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTkhTWU5DKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfaGRtaS5jIGIvZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfaGRtaS5jCmluZGV4IDU2M2YxOTNmY2ZhYy4u NmQ2MDhjZTI2MDc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRl bF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfaGRtaS5jCkBA IC0zMjIsNyArMzIyLDcgQEAgdm9pZCBjZHZfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmY2R2X2hkbWlfaGVscGVyX2Z1 bmNzKTsKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLAogCQkJCSAmY2R2X2hk bWlfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Ci0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3Vi cGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7CisJY29ubmVjdG9yLT5zdGF0aWNf ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwogCWNv bm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKIAljb25uZWN0b3ItPmRvdWJsZXNj YW5fYWxsb3dlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAw L2Nkdl9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRz LmMKaW5kZXggZTY0OTYwZGIzMjI0Li4yOTAyMjFmNzNjYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2x2ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL2Nkdl9pbnRlbF9sdmRzLmMKQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIGNkdl9pbnRlbF9s dmRzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRk KGVuY29kZXIsICZjZHZfaW50ZWxfbHZkc19oZWxwZXJfZnVuY3MpOwogCWRybV9jb25uZWN0b3Jf aGVscGVyX2FkZChjb25uZWN0b3IsCiAJCQkJICZjZHZfaW50ZWxfbHZkc19jb25uZWN0b3JfaGVs cGVyX2Z1bmNzKTsKLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1 YlBpeGVsSG9yaXpvbnRhbFJHQjsKKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3Vi cGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7CiAJY29ubmVjdG9yLT5pbnRlcmxh Y2VfYWxsb3dlZCA9IGZhbHNlOwogCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gZmFs c2U7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX291dHB1 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMKaW5kZXggNDFl N2YyNWJhN2UwLi42MDVjODZkZWQxNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvbWRmbGRfZHNpX291dHB1dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRf ZHNpX291dHB1dC5jCkBAIC01NTUsNyArNTU1LDcgQEAgdm9pZCBtZGZsZF9kc2lfb3V0cHV0X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCURSTV9NT0RFX0NPTk5FQ1RPUl9MVkRT KTsKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAmbWRmbGRfZHNpX2Nvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MpOwogCi0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxf b3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxh eV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwogCWNvbm5lY3Rv ci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxs b3dlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3Ry YWlsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfaGRtaS5jCmluZGV4 IDhiMmViMzJlZTk4OC4uYzRlMTZhYjI1ZDFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v Z21hNTAwL29ha3RyYWlsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3Ry YWlsX2hkbWkuYwpAQCAtNjYxLDcgKzY2MSw3IEBAIHZvaWQgb2FrdHJhaWxfaGRtaV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAm b2FrdHJhaWxfaGRtaV9oZWxwZXJfZnVuY3MpOwogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChj b25uZWN0b3IsICZvYWt0cmFpbF9oZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwogCi0JY29u bmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxS R0I7CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3Vi UGl4ZWxIb3Jpem9udGFsUkdCOwogCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxz ZTsKIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwogCWRybV9jb25uZWN0 b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvb2FrdHJhaWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9sdmRz LmMKaW5kZXggZTY5NDNmZWYwNjExLi40YjhkMmI2ZTcyMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvb2FrdHJhaWxfbHZkcy5jCkBAIC0zMzEsNyArMzMxLDcgQEAgdm9pZCBvYWt0cmFpbF9sdmRz X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGVu Y29kZXIsICZvYWt0cmFpbF9sdmRzX2hlbHBlcl9mdW5jcyk7CiAJZHJtX2Nvbm5lY3Rvcl9oZWxw ZXJfYWRkKGNvbm5lY3RvciwKIAkJCQkgJnBzYl9pbnRlbF9sdmRzX2Nvbm5lY3Rvcl9oZWxwZXJf ZnVuY3MpOwotCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4 ZWxIb3Jpem9udGFsUkdCOworCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5zdWJwaXhl bF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKIAljb25uZWN0b3ItPmludGVybGFjZV9h bGxvd2VkID0gZmFsc2U7CiAJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSBmYWxzZTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5jCmluZGV4IGJlM2VlZmVjNTE1 Mi4uZmU0NjY3ZWJhODVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9p bnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5j CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBwc2JfaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmcHNiX2ludGVs X2x2ZHNfaGVscGVyX2Z1bmNzKTsKIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9y LAogCQkJCSAmcHNiX2ludGVsX2x2ZHNfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Ci0JY29ubmVj dG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7 CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4 ZWxIb3Jpem9udGFsUkdCOwogCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsK IAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0v Z21hNTAwL3BzYl9pbnRlbF9zZHZvLmMKaW5kZXggODQ1MDc5MTJiZTg0Li4zYjMxZGRlNGMwNWEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMKQEAgLTIwMTYsNyArMjAx Niw3IEBAIHBzYl9pbnRlbF9zZHZvX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBwc2JfaW50ZWxfc2R2 b19jb25uZWN0b3IgKmNvbm5lY3RvciwKIAogCWNvbm5lY3Rvci0+YmFzZS5iYXNlLmludGVybGFj ZV9hbGxvd2VkID0gMDsKIAljb25uZWN0b3ItPmJhc2UuYmFzZS5kb3VibGVzY2FuX2FsbG93ZWQg PSAwOwotCWNvbm5lY3Rvci0+YmFzZS5iYXNlLmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9 IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKKwljb25uZWN0b3ItPmJhc2UuYmFzZS5zdGF0aWNfZGlz cGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwogCiAJY29u bmVjdG9yLT5iYXNlLnNhdmUgPSBwc2JfaW50ZWxfc2R2b19zYXZlOwogCWNvbm5lY3Rvci0+YmFz ZS5yZXN0b3JlID0gcHNiX2ludGVsX3Nkdm9fcmVzdG9yZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKaW5kZXggMzNmYmYzOTY1MzA5Li5lZDM2YjRlNmU0YWUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yOTcyLDcgKzI5NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9jb25uZWN0b3JfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAJCQkgICBjb25uZWN0b3ItPmRp c3BsYXlfaW5mby53aWR0aF9tbSwKIAkJCSAgIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdo dF9tbSk7CiAJCXNlcV9wcmludGYobSwgIlx0c3VicGl4ZWwgb3JkZXI6ICVzXG4iLAotCQkJICAg ZHJtX2dldF9zdWJwaXhlbF9vcmRlcl9uYW1lKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBp eGVsX29yZGVyKSk7CisJCQkgICBkcm1fZ2V0X3N1YnBpeGVsX29yZGVyX25hbWUoY29ubmVjdG9y LT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyKSk7CiAJCXNlcV9wcmludGYobSwg Ilx0Q0VBIHJldjogJWRcbiIsCiAJCQkgICBjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5jZWFfcmV2 KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4IGM4Y2YzZDVjNzc4My4uM2VhZjli Yjg0OThkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwpAQCAtMTcwMiw3ICsxNzAyLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX2FkZF9wcm9wZXJ0aWVzKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAogCQljb25uZWN0b3ItPmJhc2Uuc3RhdGUtPnNjYWxpbmdfbW9kZSA9 IERSTV9NT0RFX1NDQUxFX0FTUEVDVDsKIAotCQljb25uZWN0b3ItPmJhc2UuZGlzcGxheV9pbmZv LnBhbmVsX29yaWVudGF0aW9uID0KKwkJY29ubmVjdG9yLT5iYXNlLnN0YXRpY19kaXNwbGF5X2lu Zm8ucGFuZWxfb3JpZW50YXRpb24gPQogCQkJaW50ZWxfZHNpX2dldF9wYW5lbF9vcmllbnRhdGlv bihjb25uZWN0b3IpOwogCQlkcm1fY29ubmVjdG9yX2luaXRfcGFuZWxfb3JpZW50YXRpb25fcHJv cGVydHkoCiAJCQkJJmNvbm5lY3Rvci0+YmFzZSwKQEAgLTE4MjYsNyArMTgyNiw3IEBAIHZvaWQg aW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZHJt X2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwgJmludGVsX2RzaV9jb25uZWN0b3JfaGVs cGVyX2Z1bmNzKTsKIAotCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0g U3ViUGl4ZWxIb3Jpem9udGFsUkdCOyAvKlhYWCovCisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxh eV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOyAvKlhYWCovCiAJ Y29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IGZhbHNlOwogCWNvbm5lY3Rvci0+ZG91Ymxl c2Nhbl9hbGxvd2VkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKaW5kZXggZWIw YzU1OWIyNzE1Li42OGZlNDU4NzQ0MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCkBAIC01 MjAsNyArNTIwLDcgQEAgdm9pZCBpbnRlbF9kdm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAKIAkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3RvciwKIAkJ CQkJICZpbnRlbF9kdm9fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Ci0JCWNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOworCQljb25u ZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6 b250YWxSR0I7CiAJCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKIAkJY29u bmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHZkcy5jCmluZGV4IGNkYWU0OTM0Yjg4NS4uYzM1Zjg0NjQyYzc5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHZkcy5jCkBAIC0xMDUwLDcgKzEwNTAsNyBAQCB2b2lkIGludGVsX2x2ZHNfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWludGVsX2VuY29kZXItPmNydGNf bWFzayA9ICgxIDw8IDEpOwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNvbm5lY3Rvciwg JmludGVsX2x2ZHNfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Ci0JY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7CisJY29ubmVjdG9y LT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFs UkdCOwogCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKIAljb25uZWN0b3It PmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMK aW5kZXggMGMxNGQxYzA0Y2JkLi42MzA5YTFkOWY4N2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nkdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z ZHZvLmMKQEAgLTI0NDAsNyArMjQ0MCw3IEBAIGludGVsX3Nkdm9fY29ubmVjdG9yX2luaXQoc3Ry dWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAljb25uZWN0b3ItPmJhc2Uu YmFzZS5pbnRlcmxhY2VfYWxsb3dlZCA9IDE7CiAJY29ubmVjdG9yLT5iYXNlLmJhc2UuZG91Ymxl c2Nhbl9hbGxvd2VkID0gMDsKLQljb25uZWN0b3ItPmJhc2UuYmFzZS5kaXNwbGF5X2luZm8uc3Vi cGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7CisJY29ubmVjdG9yLT5iYXNlLmJh c2Uuc3RhdGljX2Rpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRh bFJHQjsKIAljb25uZWN0b3ItPmJhc2UuZ2V0X2h3X3N0YXRlID0gaW50ZWxfc2R2b19jb25uZWN0 b3JfZ2V0X2h3X3N0YXRlOwogCiAJaW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZjb25u ZWN0b3ItPmJhc2UsICZlbmNvZGVyLT5iYXNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaW14LWxkYi5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKaW5kZXggNTZk ZDdhOWE4ZTI1Li40OTA5ZmU4OWUxNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgv aW14LWxkYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jCkBAIC0yOTksNyAr Mjk5LDcgQEAgaW14X2xkYl9lbmNvZGVyX2F0b21pY19tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCiAKIAlpZiAoIWJ1c19mb3JtYXQpIHsKIAkJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGNvbm5lY3Rvcl9zdGF0ZS0+Y29ubmVjdG9yOwotCQlzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyAqZGkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CisJCXN0cnVjdCBk cm1fc3RhdGljX2Rpc3BsYXlfaW5mbyAqZGkgPSAmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9p bmZvOwogCiAJCWlmIChkaS0+bnVtX2J1c19mb3JtYXRzKQogCQkJYnVzX2Zvcm1hdCA9IGRpLT5i dXNfZm9ybWF0c1swXTsKQEAgLTM1OCw3ICszNTgsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfZW5j b2Rlcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVj dCBpbXhfY3J0Y19zdGF0ZSAqaW14X2NydGNfc3RhdGUgPSB0b19pbXhfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKIAlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lt eF9sZGJfY2goZW5jb2Rlcik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0gJmNvbm5f c3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOworCXN0cnVjdCBkcm1fc3RhdGljX2Rpc3Bs YXlfaW5mbyAqZGkgPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZv OwogCXUzMiBidXNfZm9ybWF0ID0gaW14X2xkYl9jaC0+YnVzX2Zvcm1hdDsKIAogCS8qIEJ1cyBm b3JtYXQgZGVzY3JpcHRpb24gaW4gRFQgb3ZlcnJpZGVzIGNvbm5lY3RvciBkaXNwbGF5IGluZm8u ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCmluZGV4IGFlZGVjZGE5NzI4 YS4uMmFhODA0ODRhMzlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs LWRpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYwpA QCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBpbnQgaW14X3BkX2VuY29kZXJfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGlteF9jcnRjX3N0YXRlICppbXhf Y3J0Y19zdGF0ZSA9IHRvX2lteF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwotCXN0cnVjdCBkcm1f ZGlzcGxheV9pbmZvICpkaSA9ICZjb25uX3N0YXRlLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsK KwlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5l Y3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbzsKIAlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkg KmlteHBkID0gZW5jX3RvX2lteHBkKGVuY29kZXIpOwogCiAJaWYgKCFpbXhwZC0+YnVzX2Zvcm1h dCAmJiBkaS0+bnVtX2J1c19mb3JtYXRzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXhzZmIvbXhzZmJfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2NydGMuYwpp bmRleCAwYWJlNzc2NzViNzYuLjA0MjkwMDYyODhkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL214c2ZiL214c2ZiX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJf Y3J0Yy5jCkBAIC0xMDEsOCArMTAxLDggQEAgc3RhdGljIHZvaWQgbXhzZmJfc2V0X2J1c19mbXQo c3RydWN0IG14c2ZiX2RybV9wcml2YXRlICpteHNmYikKIAogCXJlZyA9IHJlYWRsKG14c2ZiLT5i YXNlICsgTENEQ19DVFJMKTsKIAotCWlmIChteHNmYi0+Y29ubmVjdG9yLmRpc3BsYXlfaW5mby5u dW1fYnVzX2Zvcm1hdHMpCi0JCWJ1c19mb3JtYXQgPSBteHNmYi0+Y29ubmVjdG9yLmRpc3BsYXlf aW5mby5idXNfZm9ybWF0c1swXTsKKwlpZiAobXhzZmItPmNvbm5lY3Rvci5zdGF0aWNfZGlzcGxh eV9pbmZvLm51bV9idXNfZm9ybWF0cykKKwkJYnVzX2Zvcm1hdCA9IG14c2ZiLT5jb25uZWN0b3Iu c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZm9ybWF0c1swXTsKIAogCXJlZyAmPSB+Q1RSTF9CVVNf V0lEVEhfTUFTSzsKIAlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKQEAgLTE5OSw3ICsxOTksNyBAQCBz dGF0aWMgaW50IG14c2ZiX3Jlc2V0X2Jsb2NrKHZvaWQgX19pb21lbSAqcmVzZXRfYWRkcikKIHN0 YXRpYyB2b2lkIG14c2ZiX2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZh dGUgKm14c2ZiKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJm14c2ZiLT5waXBl LmNydGMuc3RhdGUtPmFkanVzdGVkX21vZGU7Ci0JY29uc3QgdTMyIGJ1c19mbGFncyA9IG14c2Zi LT5jb25uZWN0b3IuZGlzcGxheV9pbmZvLmJ1c19mbGFnczsKKwljb25zdCB1MzIgYnVzX2ZsYWdz ID0gbXhzZmItPmNvbm5lY3Rvci5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFnczsKIAl1MzIg dmRjdHJsMCwgdnN5bmNfcHVsc2VfbGVuLCBoc3luY19wdWxzZV9sZW47CiAJaW50IGVycjsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMKaW5kZXggYjQyOGM0 Njc4MTA2Li4yNTk1OGJjNGM1Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1hcm0tdmVyc2F0aWxlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWFy bS12ZXJzYXRpbGUuYwpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBpbnQgdmVyc2F0aWxlX3Bh bmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAkJRFJNX0RJU1BMQVlfSU5G T19MRU4pOwogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gdnBhbmVsLT5wYW5l bF90eXBlLT53aWR0aF9tbTsKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSB2 cGFuZWwtPnBhbmVsX3R5cGUtPmhlaWdodF9tbTsKLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5i dXNfZmxhZ3MgPSB2cGFuZWwtPnBhbmVsX3R5cGUtPmJ1c19mbGFnczsKKwljb25uZWN0b3ItPnN0 YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gdnBhbmVsLT5wYW5lbF90eXBlLT5idXNfZmxh Z3M7CiAKIAltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ2cGFuZWwtPnBh bmVsX3R5cGUtPm1vZGUpOwogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwppbmRleCBiNGVjMGVjZmY4MDcuLjFi YTg5Mzk0MmEyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRl ay1pbGk5MzIyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5 MzIyLmMKQEAgLTQxMSwxOSArNDExLDE5IEBAIHN0YXRpYyBpbnQgaWxpOTMyMl9pbml0KHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsLCBzdHJ1Y3QgaWxpOTMyMiAqaWxpKQogCSAqLwogCWlmIChpbGkt PmNvbmYtPmRjbGtfYWN0aXZlX2hpZ2gpIHsKIAkJcmVnID0gSUxJOTMyMl9QT0xfRENMSzsKLQkJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9CisJCWNvbm5lY3Rvci0+c3RhdGlj X2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgfD0KIAkJCURSTV9CVVNfRkxBR19QSVhEQVRBX1BPU0VE R0U7CiAJfSBlbHNlIHsKIAkJcmVnID0gMDsKLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVz X2ZsYWdzIHw9CisJCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgfD0K IAkJCURSTV9CVVNfRkxBR19QSVhEQVRBX05FR0VER0U7CiAJfQogCWlmIChpbGktPmNvbmYtPmRl X2FjdGl2ZV9oaWdoKSB7CiAJCXJlZyB8PSBJTEk5MzIyX1BPTF9ERTsKLQkJY29ubmVjdG9yLT5k aXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9CisJCWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5m by5idXNfZmxhZ3MgfD0KIAkJCURSTV9CVVNfRkxBR19ERV9ISUdIOwogCX0gZWxzZSB7Ci0JCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQorCQljb25uZWN0b3ItPnN0YXRpY19k aXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9CiAJCQlEUk1fQlVTX0ZMQUdfREVfTE9XOwogCX0KIAlp ZiAoaWxpLT5jb25mLT5oc3luY19hY3RpdmVfaGlnaCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZk cy5jCmluZGV4IGI1ZTM5OTRmMGFhOC4uYjUyMDk1NjY2YmRhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1sdmRzLmMKQEAgLTEyNyw5ICsxMjcsOSBAQCBzdGF0aWMgaW50IHBhbmVsX2x2ZHNfZ2V0 X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCiAJY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8ud2lkdGhfbW0gPSBsdmRzLT53aWR0aDsKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWln aHRfbW0gPSBsdmRzLT5oZWlnaHQ7Ci0JZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMo JmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLAorCWRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3Jt YXRzKCZjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8sCiAJCQkJCSAmbHZkcy0+YnVzX2Zv cm1hdCwgMSk7Ci0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gbHZkcy0+ZGF0 YV9taXJyb3IKKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gbHZk cy0+ZGF0YV9taXJyb3IKIAkJCQkJICA/IERSTV9CVVNfRkxBR19EQVRBX0xTQl9UT19NU0IKIAkJ CQkJICA6IERSTV9CVVNfRkxBR19EQVRBX01TQl9UT19MU0I7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jIGIvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMKaW5kZXggZDk2 NGQ0NTRlNGFlLi45NTI2NDYxYzBlYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCkBAIC0zNTYsNyArMzU2LDcgQEAg c3RhdGljIGludCBycGlfdG91Y2hzY3JlZW5fZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsKQogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA9IDg7CiAJY29ubmVjdG9yLT5kaXNw bGF5X2luZm8ud2lkdGhfbW0gPSAxNTQ7CiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0 X21tID0gODY7Ci0JZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLAorCWRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0 b3ItPnN0YXRpY19kaXNwbGF5X2luZm8sCiAJCQkJCSAmYnVzX2Zvcm1hdCwgMSk7CiAKIAlyZXR1 cm4gbnVtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQz d3ZmMWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMKaW5k ZXggNzFjMDllZDQzNmFlLi5mZmE5ZDFiNmY4NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNlaWtvLTQzd3ZmMWcuYwpAQCAtMTE1LDkgKzExNSw5IEBAIHN0YXRpYyBpbnQgc2Vp a29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19wYW5lbCAqcGFuZWwpCiAJY29u bmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBwYW5lbC0+ZGVzYy0+c2l6ZS53aWR0aDsK IAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBwYW5lbC0+ZGVzYy0+c2l6ZS5o ZWlnaHQ7CiAJaWYgKHBhbmVsLT5kZXNjLT5idXNfZm9ybWF0KQotCQlkcm1fZGlzcGxheV9pbmZv X3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8sCisJCWRybV9kaXNwbGF5 X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8sCiAJ CQkJCQkgJnBhbmVsLT5kZXNjLT5idXNfZm9ybWF0LCAxKTsKLQljb25uZWN0b3ItPmRpc3BsYXlf aW5mby5idXNfZmxhZ3MgPSBwYW5lbC0+ZGVzYy0+YnVzX2ZsYWdzOworCWNvbm5lY3Rvci0+c3Rh dGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBwYW5lbC0+ZGVzYy0+YnVzX2ZsYWdzOwogCiAJ cmV0dXJuIG51bTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z aW1wbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCA1NTkx OTg0YTM5MmIuLmJhM2Y4NWI3MzM4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUu YwpAQCAtMTUyLDkgKzE1Miw5IEBAIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9maXhlZF9t b2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5m by53aWR0aF9tbSA9IHBhbmVsLT5kZXNjLT5zaXplLndpZHRoOwogCWNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLmhlaWdodF9tbSA9IHBhbmVsLT5kZXNjLT5zaXplLmhlaWdodDsKIAlpZiAocGFuZWwt PmRlc2MtPmJ1c19mb3JtYXQpCi0JCWRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKCZj b25uZWN0b3ItPmRpc3BsYXlfaW5mbywKKwkJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1h dHMoJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbywKIAkJCQkJCSAmcGFuZWwtPmRlc2Mt PmJ1c19mb3JtYXQsIDEpOwotCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IHBh bmVsLT5kZXNjLT5idXNfZmxhZ3M7CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1 c19mbGFncyA9IHBhbmVsLT5kZXNjLT5idXNfZmxhZ3M7CiAKIAlyZXR1cm4gbnVtOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMKaW5kZXggNWI4MzY4Yzc2NzM0Li5hZmZkMDUw ZWU0MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rpc3BsYXkuYwpAQCAtMTQ4LDEwICsx NDgsMTAgQEAgc3RhdGljIHZvaWQgcGwxMTFfZGlzcGxheV9lbmFibGUoc3RydWN0IGRybV9zaW1w bGVfZGlzcGxheV9waXBlICpwaXBlLAogCQl0aW0yIHw9IFRJTTJfSVZTOwogCiAJaWYgKGNvbm5l Y3RvcikgewotCQlpZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYgRFJNX0JV U19GTEFHX0RFX0xPVykKKwkJaWYgKGNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNf ZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfREVfTE9XKQogCQkJdGltMiB8PSBUSU0yX0lPRTsKIAotCQlp ZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYKKwkJaWYgKGNvbm5lY3Rvci0+ c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgJgogCQkgICAgRFJNX0JVU19GTEFHX1BJWERB VEFfTkVHRURHRSkKIAkJCXRpbTIgfD0gVElNMl9JUEM7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCmluZGV4IDJlMmNhM2M2YjQ3ZC4uYzhhMGY4NTZmODRl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCkBAIC0yMzYz LDcgKzIzNjMsNyBAQCByYWRlb25fYWRkX2F0b21fY29ubmVjdG9yKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJfSBlbHNlCiAJCWNvbm5lY3Rvci0+cG9sbGVkID0gRFJNX0NPTk5FQ1RPUl9QT0xM X0hQRDsKIAotCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gc3VicGl4 ZWxfb3JkZXI7CisJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVy ID0gc3VicGl4ZWxfb3JkZXI7CiAJZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwog CiAJaWYgKGhhc19hdXgpCkBAIC0yNTI2LDcgKzI1MjYsNyBAQCByYWRlb25fYWRkX2xlZ2FjeV9j b25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl9IGVsc2UKIAkJY29ubmVjdG9yLT5w b2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwogCi0JY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKKwljb25uZWN0b3ItPnN0YXRpY19k aXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKIAlkcm1fY29ubmVj dG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV9lbmNvZGVyLmMKaW5kZXggYmE4ZDI4MDRjMWQxLi43MjcyM2E4MGIxZTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jCkBAIC0xMDIsNyArMTAyLDcgQEAg c3RhdGljIHZvaWQgcmNhcl9kdV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQogewogCXN0cnVjdCByY2FyX2R1X2VuY29kZXIgKnJlbmMgPSB0b19yY2FyX2VuY29kZXIoZW5j b2Rlcik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubl9zdGF0ZS0+Y29u bmVjdG9yLT5kaXNwbGF5X2luZm87CisJc3RydWN0IGRybV9zdGF0aWNfZGlzcGxheV9pbmZvICpp bmZvID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbzsKIAllbnVt IHJjYXJfbHZkc19tb2RlIG1vZGU7CiAKIAlyY2FyX2R1X2NydGNfcm91dGVfb3V0cHV0KGNydGNf c3RhdGUtPmNydGMsIHJlbmMtPm91dHB1dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c3VuNGkvc3VuNGlfdGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3Rjb24uYwpp bmRleCAxZDcxNGMwNmVjOWQuLmQyMGE4NzZiYTRjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3N1bjRpL3N1bjRpX3Rjb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlf dGNvbi5jCkBAIC01NSwxMyArNTUsMTMgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yICpz dW40aV90Y29uX2dldF9jb25uZWN0b3IoY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyICoKIHN0YXRp YyBpbnQgc3VuNGlfdGNvbl9nZXRfcGl4ZWxfZGVwdGgoY29uc3Qgc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0 IGRybV9kaXNwbGF5X2luZm8gKmluZm87CisJc3RydWN0IGRybV9zdGF0aWNfZGlzcGxheV9pbmZv ICppbmZvOwogCiAJY29ubmVjdG9yID0gc3VuNGlfdGNvbl9nZXRfY29ubmVjdG9yKGVuY29kZXIp OwogCWlmICghY29ubmVjdG9yKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWluZm8gPSAmY29ubmVj dG9yLT5kaXNwbGF5X2luZm87CisJaW5mbyA9ICZjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2lu Zm87CiAJaWYgKGluZm8tPm51bV9idXNfZm9ybWF0cyAhPSAxKQogCQlyZXR1cm4gLUVJTlZBTDsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R2ZTIwMC90dmUyMDBfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL3R2ZTIwMC90dmUyMDBfZGlzcGxheS5jCmluZGV4IGRiMzk3ZmNiMzQ1 YS4uYWE4MDVlMmJjMGZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL3R2ZTIw MF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R2ZTIwMC90dmUyMDBfZGlzcGxheS5j CkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgdHZlMjAwX2Rpc3BsYXlfZW5hYmxlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkvKiBWc3luYyBJUlEgYXQgc3Rh cnQgb2YgVnN5bmMgYXQgZmlyc3QgKi8KIAljdHJsMSB8PSBUVkUyMDBfVlNUU1RZUEVfVlNZTkM7 CiAKLQlpZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYgRFJNX0JVU19GTEFH X1BJWERBVEFfTkVHRURHRSkKKwlpZiAoY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1 c19mbGFncyAmIERSTV9CVVNfRkxBR19QSVhEQVRBX05FR0VER0UpCiAJCWN0cmwxIHw9IFRWRTIw MF9DVFJMX1RWQ0xLUDsKIAogCWlmICgobW9kZS0+aGRpc3BsYXkgPT0gMzUyICYmIG1vZGUtPnZk aXNwbGF5ID09IDI0MCkgfHwgLyogU0lGKDUyNSkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMKaW5kZXgg NzJjOWRiZDgxZDdmLi5hNzU3YTI2NzAzNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X2RwaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCkBAIC0xNzAs OCArMTcwLDggQEAgc3RhdGljIHZvaWQgdmM0X2RwaV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCiAJdTMyIGRwaV9jID0gRFBJX0VOQUJMRSB8IERQSV9PVVRQVVRf RU5BQkxFX01PREU7CiAJaW50IHJldDsKIAotCWlmIChkcGktPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLm51bV9idXNfZm9ybWF0cykgewotCQl1MzIgYnVzX2Zvcm1hdCA9IGRwaS0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnVzX2Zvcm1hdHNbMF07CisJaWYgKGRwaS0+Y29ubmVjdG9yLT5zdGF0 aWNfZGlzcGxheV9pbmZvLm51bV9idXNfZm9ybWF0cykgeworCQl1MzIgYnVzX2Zvcm1hdCA9IGRw aS0+Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdOwogCiAJCXN3 aXRjaCAoYnVzX2Zvcm1hdCkgewogCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ6CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKaW5kZXggNjc1Y2MzZjhjZjg1Li5hYWQzMjU4ZmFjZjIgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBlbnVtIGRybV9saW5rX3N0YXR1cyB7CiB9OwogCiAv KioKLSAqIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIC0gcGFuZWxfb3JpZW50YXRpb24gaW5m byBmb3IgJmRybV9kaXNwbGF5X2luZm8KKyAqIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIC0g cGFuZWxfb3JpZW50YXRpb24gaW5mbyBmb3IgJmRybV9zdGF0aWNfZGlzcGxheV9pbmZvCiAgKgog ICogVGhpcyBlbnVtIGlzIHVzZWQgdG8gdHJhY2sgdGhlIChMQ0QpIHBhbmVsIG9yaWVudGF0aW9u LiBUaGVyZSBhcmUgbm8KICAqIHNlcGFyYXRlICNkZWZpbmVzIGZvciB0aGUgdWFwaSEKQEAgLTIw NiwxNCArMjA2LDY3IEBAIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIHsKIH07CiAKIC8qKgot ICogc3RydWN0IGRybV9kaXNwbGF5X2luZm8gLSBydW50aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5l Y3RlZCBzaW5rCisgKiBzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gLSBkYXRhIGFib3V0 IHRoZSBjb25uZWN0ZWQgc2luaworICoKKyAqIFN0YXRpYyBkYXRhIChhcyBpbiBub3QgcGFyc2Vk IGZyb20gRURJRCkgYWJvdXQgdGhlIGNvbm5lY3RlZCBzaW5rLgorICogVGhpcyB3aWxsIG5vdCBi ZSByZXNldCBvbmNlIHNldCwgc28gZHJpdmVycyBjYW4gc2FmZWx5IHBvcHVsYXRlIHRoaXMKKyAq IGF0IGNvbm5lY3RvciBpbml0IHRpbWUuIFRoZXkgY2FuIGFsc28gYWRqdXN0IGl0IGR5bmFtaWNh bGx5IGFzIGxvbmcKKyAqIGFzIHRoZSBkb24ndCBsZWF2ZSBzdGFsZSBnYXJiYWdlIGJlaGluZC4K KyAqLworc3RydWN0IGRybV9zdGF0aWNfZGlzcGxheV9pbmZvIHsKKwkvKioKKwkgKiBAc3VicGl4 ZWxfb3JkZXI6IFN1YnBpeGVsIG9yZGVyIG9mIExDRCBwYW5lbHMuCisJICovCisJZW51bSBzdWJw aXhlbF9vcmRlciBzdWJwaXhlbF9vcmRlcjsKKworCS8qKgorCSAqIEBwYW5lbF9vcmllbnRhdGlv bjogUmVhZCBvbmx5IGNvbm5lY3RvciBwcm9wZXJ0eSBmb3IgYnVpbHQtaW4gcGFuZWxzLAorCSAq IGluZGljYXRpbmcgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbCB2cyB0aGUgZGV2aWNlJ3Mg Y2FzaW5nLgorCSAqIGRybV9jb25uZWN0b3JfaW5pdCgpIHNldHMgdGhpcyB0byBEUk1fTU9ERV9Q QU5FTF9PUklFTlRBVElPTl9VTktOT1dOLgorCSAqIFdoZW4gbm90IFVOS05PV04gdGhpcyBnZXRz IHVzZWQgYnkgdGhlIGRybV9mYl9oZWxwZXJzIHRvIHJvdGF0ZSB0aGUKKwkgKiBmYiB0byBjb21w ZW5zYXRlIGFuZCBnZXRzIGV4cG9ydGVkIGFzIHByb3AgdG8gdXNlcnNwYWNlLgorCSAqLworCWlu dCBwYW5lbF9vcmllbnRhdGlvbjsKKworCS8qKgorCSAqIEBidXNfZm9ybWF0czogUGl4ZWwgZGF0 YSBmb3JtYXQgb24gdGhlIHdpcmUsIHNvbWV3aGF0IHJlZHVuZGFudCB3aXRoCisJICogQGNvbG9y X2Zvcm1hdHMuIEFycmF5IG9mIHNpemUgQG51bV9idXNfZm9ybWF0cyBlbmNvZGVkIHVzaW5nCisJ ICogTUVESUFfQlVTX0ZNVFxfIGRlZmluZXMgc2hhcmVkIHdpdGggdjRsIGFuZCBtZWRpYSBkcml2 ZXJzLgorCSAqLworCWNvbnN0IHUzMiAqYnVzX2Zvcm1hdHM7CisJLyoqCisJICogQG51bV9idXNf Zm9ybWF0czogU2l6ZSBvZiBAYnVzX2Zvcm1hdHMgYXJyYXkuCisJICovCisJdW5zaWduZWQgaW50 IG51bV9idXNfZm9ybWF0czsKKworI2RlZmluZSBEUk1fQlVTX0ZMQUdfREVfTE9XCQkoMTw8MCkK KyNkZWZpbmUgRFJNX0JVU19GTEFHX0RFX0hJR0gJCSgxPDwxKQorLyogZHJpdmUgZGF0YSBvbiBw b3MuIGVkZ2UgKi8KKyNkZWZpbmUgRFJNX0JVU19GTEFHX1BJWERBVEFfUE9TRURHRQkoMTw8MikK Ky8qIGRyaXZlIGRhdGEgb24gbmVnLiBlZGdlICovCisjZGVmaW5lIERSTV9CVVNfRkxBR19QSVhE QVRBX05FR0VER0UJKDE8PDMpCisvKiBkYXRhIGlzIHRyYW5zbWl0dGVkIE1TQiB0byBMU0Igb24g dGhlIGJ1cyAqLworI2RlZmluZSBEUk1fQlVTX0ZMQUdfREFUQV9NU0JfVE9fTFNCCSgxPDw0KQor LyogZGF0YSBpcyB0cmFuc21pdHRlZCBMU0IgdG8gTVNCIG9uIHRoZSBidXMgKi8KKyNkZWZpbmUg RFJNX0JVU19GTEFHX0RBVEFfTFNCX1RPX01TQgkoMTw8NSkKKworCS8qKgorCSAqIEBidXNfZmxh Z3M6IEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gKGxpa2UgcGl4ZWwgc2lnbmFsIHBvbGFyaXR5KSBm b3IKKwkgKiB0aGUgcGl4ZWwgZGF0YSBvbiB0aGUgYnVzLCB1c2luZyBEUk1fQlVTX0ZMQUdTXF8g ZGVmaW5lcy4KKwkgKi8KKwl1MzIgYnVzX2ZsYWdzOworfTsKKworLyoqCisgKiBzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyAtIER5bmFtaWMgZGF0YSBhYm91dCB0aGUgY29ubmVjdGVkIHNpbmsKICAq CiAgKiBEZXNjcmliZXMgYSBnaXZlbiBkaXNwbGF5IChlLmcuIENSVCBvciBmbGF0IHBhbmVsKSBh bmQgaXRzIGxpbWl0YXRpb25zLiBGb3IKICAqIGZpeGVkIGRpc3BsYXkgc2lua3MgbGlrZSBidWls dC1pbiBwYW5lbHMgdGhlcmUncyBub3QgbXVjaCBkaWZmZXJlbmNlIGJldHdlZW4KICAqIHRoaXMg YW5kICZzdHJ1Y3QgZHJtX2Nvbm5lY3Rvci4gQnV0IGZvciBzaW5rcyB3aXRoIGEgcmVhbCBjYWJs ZSB0aGlzCiAgKiBzdHJ1Y3R1cmUgaXMgbWVhbnQgdG8gZGVzY3JpYmUgYWxsIHRoZSB0aGluZ3Mg YXQgdGhlIG90aGVyIGVuZCBvZiB0aGUgY2FibGUuCiAgKgotICogRm9yIHNpbmtzIHdoaWNoIHBy b3ZpZGUgYW4gRURJRCB0aGlzIGNhbiBiZSBmaWxsZWQgb3V0IGJ5IGNhbGxpbmcKKyAqIFRoaXMg c2hvdWxkIGJlIGZpbGxlZCBvdXQgYnkgdGhlIGNvbm5lY3RvciAuZmlsbF9tb2RlcygpLy5nZXRf bW9kZXMoKQorICogaG9va3MuIEZvciBzaW5rcyB3aGljaCBwcm92aWRlIGFuIEVESUQgdGhpcyBj YW4gYmUgZmlsbGVkIG91dCBieSBjYWxsaW5nCiAgKiBkcm1fYWRkX2VkaWRfbW9kZXMoKS4KICAq Lwogc3RydWN0IGRybV9kaXNwbGF5X2luZm8gewpAQCAtMjI1LDcgKzI3OCw3IEBAIHN0cnVjdCBk cm1fZGlzcGxheV9pbmZvIHsKIAkvKioKIAkgKiBAd2lkdGhfbW06IFBoeXNpY2FsIHdpZHRoIGlu IG1tLgogCSAqLwotICAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGhfbW07CisJdW5zaWduZWQgaW50 IHdpZHRoX21tOwogCS8qKgogCSAqIEBoZWlnaHRfbW06IFBoeXNpY2FsIGhlaWdodCBpbiBtbS4K IAkgKi8KQEAgLTI0MiwyNiArMjk1LDEyIEBAIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvIHsKIAkg Ki8KIAl1bnNpZ25lZCBpbnQgYnBjOwogCi0JLyoqCi0JICogQHN1YnBpeGVsX29yZGVyOiBTdWJw aXhlbCBvcmRlciBvZiBMQ0QgcGFuZWxzLgotCSAqLwotCWVudW0gc3VicGl4ZWxfb3JkZXIgc3Vi cGl4ZWxfb3JkZXI7Ci0KICNkZWZpbmUgRFJNX0NPTE9SX0ZPUk1BVF9SR0I0NDQJCSgxPDwwKQog I2RlZmluZSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDQ0CSgxPDwxKQogI2RlZmluZSBEUk1fQ09M T1JfRk9STUFUX1lDUkNCNDIyCSgxPDwyKQogI2RlZmluZSBEUk1fQ09MT1JfRk9STUFUX1lDUkNC NDIwCSgxPDwzKQogCiAJLyoqCi0JICogQHBhbmVsX29yaWVudGF0aW9uOiBSZWFkIG9ubHkgY29u bmVjdG9yIHByb3BlcnR5IGZvciBidWlsdC1pbiBwYW5lbHMsCi0JICogaW5kaWNhdGluZyB0aGUg b3JpZW50YXRpb24gb2YgdGhlIHBhbmVsIHZzIHRoZSBkZXZpY2UncyBjYXNpbmcuCi0JICogZHJt X2Nvbm5lY3Rvcl9pbml0KCkgc2V0cyB0aGlzIHRvIERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9O X1VOS05PV04uCi0JICogV2hlbiBub3QgVU5LTk9XTiB0aGlzIGdldHMgdXNlZCBieSB0aGUgZHJt X2ZiX2hlbHBlcnMgdG8gcm90YXRlIHRoZQotCSAqIGZiIHRvIGNvbXBlbnNhdGUgYW5kIGdldHMg ZXhwb3J0ZWQgYXMgcHJvcCB0byB1c2Vyc3BhY2UuCi0JICovCi0JaW50IHBhbmVsX29yaWVudGF0 aW9uOwotCi0JLyoqCiAJICogQGNvbG9yX2Zvcm1hdHM6IEhETUkgQ29sb3IgZm9ybWF0cywgc2Vs ZWN0cyBiZXR3ZWVuIFJHQiBhbmQgWUNyQ2IKIAkgKiBtb2Rlcy4gVXNlZCBEUk1fQ09MT1JfRk9S TUFUXF8gZGVmaW5lcywgd2hpY2ggYXJlIF9ub3RfIHRoZSBzYW1lIG9uZXMKIAkgKiBhcyB1c2Vk IHRvIGRlc2NyaWJlIHRoZSBwaXhlbCBmb3JtYXQgaW4gZnJhbWVidWZmZXJzLCBhbmQgYWxzbyBk b24ndApAQCAtMjcwLDM0ICszMDksNiBAQCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyB7CiAJdTMy IGNvbG9yX2Zvcm1hdHM7CiAKIAkvKioKLQkgKiBAYnVzX2Zvcm1hdHM6IFBpeGVsIGRhdGEgZm9y bWF0IG9uIHRoZSB3aXJlLCBzb21ld2hhdCByZWR1bmRhbnQgd2l0aAotCSAqIEBjb2xvcl9mb3Jt YXRzLiBBcnJheSBvZiBzaXplIEBudW1fYnVzX2Zvcm1hdHMgZW5jb2RlZCB1c2luZwotCSAqIE1F RElBX0JVU19GTVRcXyBkZWZpbmVzIHNoYXJlZCB3aXRoIHY0bCBhbmQgbWVkaWEgZHJpdmVycy4K LQkgKi8KLQljb25zdCB1MzIgKmJ1c19mb3JtYXRzOwotCS8qKgotCSAqIEBudW1fYnVzX2Zvcm1h dHM6IFNpemUgb2YgQGJ1c19mb3JtYXRzIGFycmF5LgotCSAqLwotCXVuc2lnbmVkIGludCBudW1f YnVzX2Zvcm1hdHM7Ci0KLSNkZWZpbmUgRFJNX0JVU19GTEFHX0RFX0xPVwkJKDE8PDApCi0jZGVm aW5lIERSTV9CVVNfRkxBR19ERV9ISUdICQkoMTw8MSkKLS8qIGRyaXZlIGRhdGEgb24gcG9zLiBl ZGdlICovCi0jZGVmaW5lIERSTV9CVVNfRkxBR19QSVhEQVRBX1BPU0VER0UJKDE8PDIpCi0vKiBk cml2ZSBkYXRhIG9uIG5lZy4gZWRnZSAqLwotI2RlZmluZSBEUk1fQlVTX0ZMQUdfUElYREFUQV9O RUdFREdFCSgxPDwzKQotLyogZGF0YSBpcyB0cmFuc21pdHRlZCBNU0IgdG8gTFNCIG9uIHRoZSBi dXMgKi8KLSNkZWZpbmUgRFJNX0JVU19GTEFHX0RBVEFfTVNCX1RPX0xTQgkoMTw8NCkKLS8qIGRh dGEgaXMgdHJhbnNtaXR0ZWQgTFNCIHRvIE1TQiBvbiB0aGUgYnVzICovCi0jZGVmaW5lIERSTV9C VVNfRkxBR19EQVRBX0xTQl9UT19NU0IJKDE8PDUpCi0KLQkvKioKLQkgKiBAYnVzX2ZsYWdzOiBB ZGRpdGlvbmFsIGluZm9ybWF0aW9uIChsaWtlIHBpeGVsIHNpZ25hbCBwb2xhcml0eSkgZm9yCi0J ICogdGhlIHBpeGVsIGRhdGEgb24gdGhlIGJ1cywgdXNpbmcgRFJNX0JVU19GTEFHU1xfIGRlZmlu ZXMuCi0JICovCi0JdTMyIGJ1c19mbGFnczsKLQotCS8qKgogCSAqIEBtYXhfdG1kc19jbG9jazog TWF4aW11bSBUTURTIGNsb2NrIHJhdGUgc3VwcG9ydGVkIGJ5IHRoZQogCSAqIHNpbmsgaW4ga0h6 LiAwIG1lYW5zIHVuZGVmaW5lZC4KIAkgKi8KQEAgLTMzNSw3ICszNDYsNyBAQCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyB7CiAJYm9vbCBub25fZGVza3RvcDsKIH07CiAKLWludCBkcm1fZGlzcGxh eV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywKK2lu dCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX3N0YXRpY19kaXNw bGF5X2luZm8gKmluZm8sCiAJCQkJICAgICBjb25zdCB1MzIgKmZvcm1hdHMsCiAJCQkJICAgICB1 bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHMpOwogCkBAIC04NTEsMTUgKzg2MiwyMyBAQCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciB7CiAJc3RydWN0IGxpc3RfaGVhZCBwcm9iZWRfbW9kZXM7CiAKIAkvKioK LQkgKiBAZGlzcGxheV9pbmZvOiBEaXNwbGF5IGluZm9ybWF0aW9uIGlzIGZpbGxlZCBmcm9tIEVE SUQgaW5mb3JtYXRpb24KLQkgKiB3aGVuIGEgZGlzcGxheSBpcyBkZXRlY3RlZC4gRm9yIG5vbiBo b3QtcGx1Z2dhYmxlIGRpc3BsYXlzIHN1Y2ggYXMKLQkgKiBmbGF0IHBhbmVscyBpbiBlbWJlZGRl ZCBzeXN0ZW1zLCB0aGUgZHJpdmVyIHNob3VsZCBpbml0aWFsaXplIHRoZQotCSAqICZkcm1fZGlz cGxheV9pbmZvLndpZHRoX21tIGFuZCAmZHJtX2Rpc3BsYXlfaW5mby5oZWlnaHRfbW0gZmllbGRz Ci0JICogd2l0aCB0aGUgcGh5c2ljYWwgc2l6ZSBvZiB0aGUgZGlzcGxheS4KKwkgKiBAc3RhdGlj X2Rpc3BsYXlfaW5mbzogRGlzcGxheSBpbmZvcm1hdGlvbiBpcyBmaWxsZWQgYnkgdGhlIGRyaXZl cgorCSAqCisJICogUHJvdGVjdGVkIGJ5ICZkcm1fbW9kZV9jb25maWcubXV0ZXguCisJICovCisJ c3RydWN0IGRybV9zdGF0aWNfZGlzcGxheV9pbmZvIHN0YXRpY19kaXNwbGF5X2luZm87CisJLyoq CisJICogQGRpc3BsYXlfaW5mbzogRHluYW1pYyBkaXNwbGF5IGluZm9ybWF0aW9uIGlzIGZpbGxl ZCBmcm9tIEVESUQKKwkgKiBpbmZvcm1hdGlvbiB3aGVuIGEgZGlzcGxheSBpcyBkZXRlY3RlZC4g Rm9yIG5vbiBob3QtcGx1Z2dhYmxlCisJICogZGlzcGxheXMgc3VjaCBhcyBmbGF0IHBhbmVscyBp biBlbWJlZGRlZCBzeXN0ZW1zLCB0aGUgZHJpdmVyCisJICogc2hvdWxkIGluaXRpYWxpemUgdGhl ICZkcm1fZGlzcGxheV9pbmZvLndpZHRoX21tIGFuZAorCSAqICZkcm1fZGlzcGxheV9pbmZvLmhl aWdodF9tbSBmaWVsZHMgd2l0aCB0aGUgcGh5c2ljYWwgc2l6ZSBvZgorCSAqIHRoZSBkaXNwbGF5 LgogCSAqCiAJICogUHJvdGVjdGVkIGJ5ICZkcm1fbW9kZV9jb25maWcubXV0ZXguCiAJICovCiAJ c3RydWN0IGRybV9kaXNwbGF5X2luZm8gZGlzcGxheV9pbmZvOworCiAJY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3JfZnVuY3MgKmZ1bmNzOwogCiAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpl ZGlkX2Jsb2JfcHRyOwotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK