From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: [PATCH v2 05/25] drm/panel: add drm_connector argument to get_modes() Date: Sat, 7 Dec 2019 15:03:33 +0100 Message-ID: <20191207140353.23967-6-sam@ravnborg.org> References: <20191207140353.23967-1-sam@ravnborg.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191207140353.23967-1-sam@ravnborg.org> 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, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Cc: Neil Armstrong , David Airlie , =?UTF-8?q?Guido=20G=C3=BCnther?= , linux-samsung-soc@vger.kernel.org, Stefan Mavrodiev , linux-rockchip@lists.infradead.org, Tomi Valkeinen , Jagan Teki , Robert Chiras , NXP Linux Team , Jitao Shi , Pengutronix Kernel Team , linux-mediatek@lists.infradead.org, Abhinav Kumar , linux-tegra@vger.kernel.org, Sean Paul , linux-arm-kernel@lists.infradead.org, Purism Kernel Team , linux-renesas-soc@vger.kernel.org, Boris Brezillon List-Id: linux-tegra@vger.kernel.org VG9kYXkgdGhlIGJyaWRnZSBjcmVhdGVzIHRoZSBkcm1fY29ubmVjdG9yLCBidXQgdGhhdCBpcyBw bGFubmVkCnRvIGJlIG1vdmVkIHRvIHRoZSBkaXNwbGF5IGRyaXZlcnMuClRvIGZhY2lsaXRhdGUg dGhpcywgdXBkYXRlIGRybV9wYW5lbF9mdW5jcy5nZXRfbW9kZXMoKSB0bwp0YWtlIGRybV9jb25u ZWN0b3IgYXMgYW4gYXJndW1lbnQuCkFsbCBwYW5lbCBkcml2ZXJzIGltcGxlbWVudGluZyBnZXRf bW9kZXMoKSBhcmUgdXBkYXRlZC4KCnYyOgogIC0gZHJvcCBhY2NpZGVudGFsIGNoYW5nZSAoTGF1 cmVudCkKICAtIHVwZGF0ZSBkb2NzIGZvciBnZXRfbW9kZXMgKExhdXJlbnQpCgpTaWduZWQtb2Zm LWJ5OiBTYW0gUmF2bmJvcmcgPHNhbUByYXZuYm9yZy5vcmc+ClJldmlld2VkLWJ5OiBMYXVyZW50 IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ClJldmlld2VkLWJ5 OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CkNjOiBUaGllcnJ5IFJl ZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgpDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBhcmQgPG1yaXBh cmRAa2VybmVsLm9yZz4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IExpbnVzIFdhbGxlaWogPGxpbnVzLndh bGxlaWpAbGluYXJvLm9yZz4KQ2M6IEphZ2FuIFRla2kgPGphZ2FuQGFtYXJ1bGFzb2x1dGlvbnMu Y29tPgpDYzogU3RlZmFuIE1hdnJvZGlldiA8c3RlZmFuQG9saW1leC5jb20+CkNjOiBSb2JlcnQg Q2hpcmFzIDxyb2JlcnQuY2hpcmFzQG54cC5jb20+CkNjOiAiR3VpZG8gR8O8bnRoZXIiIDxhZ3hA c2lneGNwdS5vcmc+CkNjOiBQdXJpc20gS2VybmVsIFRlYW0gPGtlcm5lbEBwdXJpLnNtPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jICAgfCAgNCArLS0KIC4u Li9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQuYyB8ICA0ICstLQogZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMgIHwgIDQgKy0tCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgfCAgOCArKystLS0KIGRy aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYyB8IDEzICsrKysrLS0t LQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jICAgIHwgIDkgKysr Ky0tLQogLi4uL2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jICAgIHwgMTEg KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5jICAgICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jICAgICAgIHwg IDggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jICAgICAgICAgICAg fCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIHwg IDQgKy0tCiAuLi4vZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMgICAgfCAg NCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jICB8ICA5 ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8 ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5j ICB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3Jl ZW4uYyB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5 MS5jIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjgy MDAuYyB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5 MDAuYyAgICB8ICA5ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1y YjA3MGQzMC5jICB8IDEwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLWxkOTA0MC5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZkMTZkMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmUzaGEyLmMgfCAgNCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZl NjNqMHgwMy5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmct czZlNjNtMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1z NmU4YWEwLmMgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxxMTAx cjFzeDAxLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxz MDM3djdkdzAxLmMgICB8ICA0ICstLQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHMw NDN0MWxlMDEuYyAgIHwgIDkgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNp bXBsZS5jICAgICAgICAgIHwgMjcgKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jIHwgIDkgKysrKy0tLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDggKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc29ueS1hY3g1NjVha20uYyAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwMjh0dGVjMS5jICB8ICA0ICstLQogZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC10cnVseS1udDM1NTk3LmMgICB8ICA0ICstLQogaW5jbHVkZS9kcm0vZHJt X3BhbmVsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KIDQxIGZpbGVzIGNoYW5n ZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmlu ZGV4IGMzMTJkNWViMjE0ZC4uNGNhYTczNGI0ZmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCkBAIC0yNjEs NyArMjYxLDcgQEAgaW50IGRybV9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVu Y3MtPmdldF9tb2RlcykKLQkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsKTsK KwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsLCBwYW5lbC0+Y29ubmVjdG9y KTsKIAogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IGEwNTc0ZGMwM2UxNi4uNDFhYTkxZjYwOTc5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMKQEAgLTI2MCw5ICsy NjAsOSBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyc2F0aWxlX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdmVyc2F0aWxlX3Bh bmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHZlcnNhdGlsZV9wYW5lbCAqdnBhbmVs ID0gdG9fdmVyc2F0aWxlX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmct ZnkwNzAyNGRpMjZhMzBkLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYwppbmRleCA5OGYxODRiODExODcuLjM3ZDZiNzM5MDk1NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBk LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZh MzBkLmMKQEAgLTE2Miw5ICsxNjIsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgZmVpeWFuZ19kZWZhdWx0X21vZGUgPSB7CiAJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVELAogfTsKIAotc3RhdGljIGludCBmZWl5YW5n X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgZmVpeWFuZ19n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2ZlaXlh bmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jCmluZGV4IDI0OTU1YmVjMTk1OC4u N2U1MDYyYjA3YWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWls aTkzMjIuYwpAQCAtNjQxLDkgKzY0MSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSBpdHVfcl9idF82NTZfNzIwX21vZGUgPSB7CiAJLmZsYWdzID0gMCwKIH07CiAKLXN0 YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IGlsaTkzMjJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBpbGk5MzIyICppbGkg PSBwYW5lbF90b19pbGk5MzIyKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYwppbmRleCBlODc4OWU0NjBhMTYuLjFjNjdhNjY4 ZDZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5 ODgxYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMu YwpAQCAtMzg3LDkgKzM4Nyw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSBiYW5hbmFwaV9kZWZhdWx0X21vZGUgPSB7CiAJLnZ0b3RhbAkJPSAxMjgwICsgMTAgKyAxMCAr IDIwLAogfTsKIAotc3RhdGljIGludCBpbGk5ODgxY19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCitzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0J c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3Ry dWN0IGlsaTk4ODFjICpjdHggPSBwYW5lbF90b19pbGk5ODgxYyhwYW5lbCk7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKQEAgLTQwNyw4ICs0MDcsOCBAQCBzdGF0aWMgaW50IGls aTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAltb2RlLT50eXBlID0g RFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKIAlkcm1fbW9k ZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNw bGF5X2luZm8ud2lkdGhfbW0gPSA2MjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8u aGVpZ2h0X21tID0gMTEwOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjI7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTEwOwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5 emNhLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKaW5k ZXggODNkZjFhYzQyMTFmLi5mYWNmMWJhYjI1MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKQEAgLTQwMyw3ICs0MDMsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHBhbmVsX2Rlc2MgaW5ub2x1eF9wMDk3cGZnX3BhbmVsX2Rlc2MgPSB7CiAJLnNs ZWVwX21vZGVfZGVsYXkgPSAxMDAsIC8qIFQxNSAqLwogfTsKIAotc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgaW5u b2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW5ub2x1eF9wYW5lbCAq aW5ub2x1eCA9IHRvX2lubm9sdXhfcGFuZWwocGFuZWwpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptID0gaW5ub2x1eC0+ZGVzYy0+bW9kZTsKQEAgLTQxOCwxMyArNDE5LDExIEBA IHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQo cGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3Is IG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0KLQkJ CWlubm9sdXgtPmRlc2MtPnNpemUud2lkdGg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9Ci0JCQlpbm5vbHV4LT5kZXNjLT5zaXplLmhlaWdodDsKLQlwYW5lbC0+ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gaW5ub2x1eC0+ZGVzYy0+YnBjOworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gaW5ub2x1eC0+ZGVzYy0+c2l6ZS53aWR0aDsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBpbm5vbHV4LT5kZXNjLT5zaXpl LmhlaWdodDsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBpbm5vbHV4LT5kZXNjLT5i cGM7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRp LWx0MDcwbWUwNTAwMC5jCmluZGV4IDU2MzY0YTkzZjBiOC4uZTZiNjUwYTY0ZmRiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMKQEAgLTMwMCw3 ICszMDAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9t b2RlID0gewogCQkuZmxhZ3MgPSAwLAogfTsKIAotc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJc3Ry dWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3BhbmVsKHBhbmVsKTsKQEAgLTMxNiwxMCArMzE3 LDEwIEBAIHN0YXRpYyBpbnQgamRpX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2Fk ZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rv ciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSA5 NTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTUxOworCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gOTU7CisJY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uaGVpZ2h0X21tID0gMTUxOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jCmluZGV4IDQ1Zjk2NTU2 ZWM4Yy4uZTZmNTNkNTZkYWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYwpAQCAtMzMzLDcgKzMzMyw4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0g NjAsCiB9OwogCi1zdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQga2luZ2Rpc3BsYXlfcGFuZWxfZ2V0X21vZGVz KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NDcsMTEgKzM0OCwxMSBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0J ZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9w cm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm8ud2lkdGhfbW0gPSAxNDc7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IDE5NjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gODsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDE0NzsKKwljb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxOTY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBj ID0gODsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLWxnLWxiMDM1cTAyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGIw MzVxMDIuYwppbmRleCA3YTEzODVlODM0ZjAuLjdhM2JkNGQ4MGM3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKQEAgLTE0MSw5ICsxNDEsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbGIwMzVxMDJfbW9kZSA9IHsKIAkuaGVpZ2h0 X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IGxiMDM1cTAyX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGIwMzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK IHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmxiMDM1cTAyX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLWxnLWxnNDU3My5jCmluZGV4IGRiNDg2NWE0YzJiOS4uZmM2NTcyYjRlMmY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGc0NTczLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jCkBAIC0yMDksOSArMjA5LDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAkudnJl ZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTIyNyw4ICsyMjcsOCBAQCBzdGF0aWMg aW50IGxnNDU3M19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlw ZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJt X21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjE7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IDEwMzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9 IDYxOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEwMzsKIAogCXJldHVy biAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKaW5kZXggMjQwNWYyNmU1ZDMxLi5m NmQ1OGE2MGU1MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwpAQCAtMTA2LDEwICsx MDYsMTAgQEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfbHZkc19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwp OwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBsdmRzLT5wYW5lbC5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf Y3JlYXRlKGx2ZHMtPnBhbmVsLmRybSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1u ZWMtbmw4MDQ4aGwxMS5jCmluZGV4IGZkNTkzNTMyYWIyMy4uYTZjY2RiMDlhYWNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwpAQCAtMTIzLDkgKzEy Myw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBubDgwNDhfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5l Y3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJm5sODA0OF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYwppbmRleCA2MGNjZWRjZTUzMGMuLjkxZWE0 OWMwNTYxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWst bnQzOTAxNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50Mzkw MTYuYwpAQCAtMjA2LDExICsyMDYsMTEgQEAgc3RhdGljIGludCBudDM5MDE2X2Rpc2FibGUoc3Ry dWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG50 MzkwMTZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKmRybV9wYW5lbCkKK3N0YXRpYyBpbnQg bnQzOTAxNl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsLAorCQkJICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBudDM5MDE2ICpwYW5l bCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKIAljb25zdCBzdHJ1Y3QgbnQzOTAxNl9wYW5lbF9p bmZvICpwYW5lbF9pbmZvID0gcGFuZWwtPnBhbmVsX2luZm87Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGRybV9wYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRy bSwgJnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGludXhpbm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jCmluZGV4IDg3MzhlZjFiNjZkYy4uMmI3 ZTBkZmViYzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYwpAQCAtMTQxLDEwICsxNDEsMTAgQEAgc3RhdGljIGludCBsY2Rfb2xp bnV4aW5vX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBsY2Rfb2xpbnV4aW5vX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKK3N0YXRpYyBpbnQgbGNkX29saW51eGlub19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1 Y3QgbGNkX29saW51eGlubyAqbGNkID0gdG9fbGNkX29saW51eGlubyhwYW5lbCk7Ci0Jc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGxjZC0+cGFuZWwuY29ubmVjdG9yOwogCXN0cnVj dCBsY2Rfb2xpbnV4aW5vX2luZm8gKmxjZF9pbmZvID0gJmxjZC0+ZWVwcm9tLmluZm87CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRybSA9IGxjZC0+cGFuZWwuZHJtOwogCXN0cnVjdCBsY2Rfb2xpbnV4 aW5vX21vZGUgKmxjZF9tb2RlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9y aXNldGVjaC1vdG04MDA5YS5jCmluZGV4IGJmMWY5MjhiMjE1Zi4uNGUxNjA2Yzc5MDcyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCkBA IC0zNDksNyArMzQ5LDggQEAgc3RhdGljIGludCBvdG04MDA5YV9lbmFibGUoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgb3RtODAwOWFfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBvdG04MDA5YV9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NjQsMTAgKzM2NSwxMCBAQCBzdGF0aWMgaW50IG90bTgwMDlhX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUg PSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCWRybV9t b2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVk X2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5m by53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYwppbmRleCAyYjQw OTEzODk5ZDguLmIzZTAxMDI4OGMxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKQEAgLTExMiw3ICsxMTIsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9tb2RlX29zZDEwMXQyNTg3ID0g ewogCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMs CiB9OwogCi1zdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewogCXN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcgPSB0 aV9vc2RfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAt MTI4LDEwICsxMjksMTAgQEAgc3RhdGljIGludCBvc2QxMDF0MjU4N19wYW5lbF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAot CWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVf cHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLndpZHRoX21tID0gMjE3OwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2 eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngx MGYwMzRuMDAuYwppbmRleCA2NjQ2MDUwNzFkMzQuLjE5YTZlYjQ2MzdjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5jCkBA IC0xNjYsNyArMTY2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRl ZmF1bHRfbW9kZSA9IHsKIAkudnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgd3V4Z2Ff bnRfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCB3 dXhnYV9udF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGU7CiAKQEAgLTE4MCwxMCArMTgxLDEwIEBAIHN0YXRpYyBpbnQgd3V4Z2FfbnRf cGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCiAJZHJtX21vZGVfc2V0 X25hbWUobW9kZSk7CiAKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1v ZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5j b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKLQlwYW5lbC0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gMjE3OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEz NjsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYwppbmRleCBhZGYyZGFjZTk2ZTMuLjBiOGNjMTk5 YzhkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBp LXRvdWNoc2NyZWVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJy eXBpLXRvdWNoc2NyZWVuLmMKQEAgLTMwOSw5ICszMDksOSBAQCBzdGF0aWMgaW50IHJwaV90b3Vj aHNjcmVlbl9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51 bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUzMiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4 ODhfMVgyNDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVt LXJtNjcxOTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEu YwppbmRleCBmZDY3ZmM2MTg1YzQuLjEyM2JiNjhjZmNiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYwpAQCAtNDM2LDkgKzQzNiw5IEBAIHN0YXRp YyBpbnQgcmFkX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMg aW50IHJhZF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1f bW9kZV9zZXRfbmFtZShtb2RlKTsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIg fCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5j b25uZWN0b3IsIG1vZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsK IAogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CiAJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDk5NGU4 NTU3MjFmNC4uNjZmYTk3NTMwOGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtcmF5ZGl1bS1ybTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJheWRpdW0tcm02ODIwMC5jCkBAIC0zMzUsNyArMzM1LDggQEAgc3RhdGljIGludCBybTY4MjAw X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcm02ODIwMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKQEAgLTM1MCwxMCArMzUxLDEwIEBAIHN0YXRpYyBpbnQgcm02ODIwMF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7 CiAKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BS RUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1vZGUpOwor CWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25uZWN0 b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CisJY29ubmVj dG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBtb2RlLT53aWR0aF9tbTsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CiAKIAlyZXR1cm4gMTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1 N24wMDkwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAw OTAwLmMKaW5kZXggMzEyMzRiNzlkM2IxLi5iMmQ2MWNhYjNjYWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCkBAIC0yMzAsNyAr MjMwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9k ZSA9IHsKIAkuaGVpZ2h0X21tICAgPSAxMzAsCiB9OwogCi1zdGF0aWMgaW50IGpoMDU3bl9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IGpoMDU3bl9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFu ZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAtMjQ2LDkgKzI0Nyw5IEBA IHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlk cm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3Bs YXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07Ci0JZHJtX21vZGVfcHJvYmVk X2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53 aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdo dF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rvciwg bW9kZSk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1yb25iby1yYjA3MGQzMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJv bmJvLXJiMDcwZDMwLmMKaW5kZXggMTcwYTVjZGEyMWI5Li41N2E0NjJjZTIyMWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCkBAIC0xMjAsOSArMTIw LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tCT0gODUsCiB9OwogCi1zdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcmIwNzBkMzBfcGFu ZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCByYjA3MGQzMF9wYW5lbCAqY3R4ID0gcGFu ZWxfdG9fcmIwNzBkMzBfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCXN0YXRpYyBjb25zdCB1MzIgYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4 XzFYMjQ7CkBAIC0xNDAsOSArMTQwLDkgQEAgc3RhdGljIGludCByYjA3MGQzMF9wYW5lbF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlwZSA9IERSTV9NT0RFX1RZ UEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJtX21vZGVfcHJvYmVkX2Fk ZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJw YyA9IDg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+ d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IG1v ZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSA4OworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwogCWRybV9kaXNwbGF5 X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKIAkJCQkJICZi dXNfZm9ybWF0LCAxKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctbGQ5MDQwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1s ZDkwNDAuYwppbmRleCAyNTA4MDliYTM3YzcuLjNjNTJmMTVmN2ExYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKQEAgLTI2MSw5ICsyNjEsOSBAQCBz dGF0aWMgaW50IGxkOTA0MF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBsZDkw NDAgKmN0eCA9IHBhbmVsX3RvX2xkOTA0MChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZDE2ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYwppbmRleCBlM2EwMzk3ZTk1M2UuLjcxOTM5YWI3NTdiMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQzLDkgKzE0Myw5IEBAIHN0 YXRpYyBpbnQgczZkMTZkMF9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IHM2ZDE2ZDBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQorc3RhdGljIGludCBzNmQxNmQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKKwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFu ZWwtPmRybSwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwppbmRleCA5MzhhYjcyYzU1NDAuLjhlMDIzNmJhNjE0 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hh Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpA QCAtNjQ1LDkgKzY0NSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgczZlM2hhMl9wYW5lbF9kZXNj IHNhbXN1bmdfczZlM2hmMiA9IHsKIAkudHlwZSA9IEhGMl9UWVBFLAogfTsKIAotc3RhdGljIGlu dCBzNmUzaGEyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg czZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRh aW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctczZlNjNqMHgwMy5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZlNjNqMHgwMy5jCmluZGV4IGE2MDYzNWU5MjI2ZC4uYzkzOWQ1YmRlNGYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00 MDAsOSArNDAwLDkgQEAgc3RhdGljIGludCBzNmU2M2oweDAzX2VuYWJsZShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzNmU2M2oweDAzX2dldF9t b2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgczZlNjNqMHgwM19nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwt PmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBk cm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMKaW5kZXggYmEwMWFmMGIxNGZk Li4xZDA5OTA5MmU3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z YW1zdW5nLXM2ZTYzbTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmU2M20wLmMKQEAgLTM2Miw5ICszNjIsOSBAQCBzdGF0aWMgaW50IHM2ZTYzbTBfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHM2 ZTYzbTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzNmU2 M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEw LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKaW5kZXgg ZGJjZWQ2NTAxMjA0Li44YTAyOGQyYmQwZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zYW1zdW5nLXM2ZThhYTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKQEAgLTkyMCw5ICs5MjAsOSBAQCBzdGF0aWMgaW50IHM2 ZThhYTBfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IHM2ZThhYTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3Rh dGljIGludCBzNmU4YWEwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAg ICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgczZlOGFhMCAqY3R4 ID0gcGFuZWxfdG9fczZlOGFhMChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCmluZGV4 IGIzNjE5YmE0NDNiZC4uYjg3ODkzMGIxN2U0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zZWlrby00M3d2ZjFnLmMKQEAgLTU2LDkgKzU2LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnRvX3NlaWtvX3BhbmVsKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQog CXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBzZWlrb19wYW5lbCwgYmFzZSk7CiB9 CiAKLXN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19w YW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+ YmFzZS5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRy bTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVt ID0gMDsKQEAgLTIwOCwxMiArMjA4LDEzIEBAIHN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNl aWtvX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBzZWlrb19wYW5lbCAqcCA9 IHRvX3NlaWtvX3BhbmVsKHBhbmVsKTsKIAogCS8qIGFkZCBoYXJkLWNvZGVkIHBhbmVsIG1vZGVz ICovCi0JcmV0dXJuIHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhwKTsKKwlyZXR1cm4gc2Vp a29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHAsIGNvbm5lY3Rvcik7CiB9CiAKIHN0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X3RpbWluZ3Moc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1scTEwMXIxc3gwMS5jCmluZGV4IDVlMTM2 YzNiYTE4NS4uZTc5N2I3MDA2NjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjc4LDcgKzI3OCw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0gNjAs CiB9OwogCi1zdGF0aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAorCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0yOTIsMTAgKzI5MywxMCBAQCBzdGF0 aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAog CWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+ Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7 CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7Ci0JcGFu ZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEzNjsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXggZWVhYjc5OThjN2RlLi43MTAzYTk0 NWYwZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAz N3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3 ZHcwMS5jCkBAIC0xMDAsOSArMTAwLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlIGxzMDM3djdkdzAxX21vZGUgPSB7CiAJLmhlaWdodF9tbSA9IDc1LAogfTsKIAotc3Rh dGljIGludCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitz dGF0aWMgaW50IGxzMDM3djdkdzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwK KwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwg JmxzMDM3djdkdzAxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHMwNDN0MWxlMDEuYwppbmRleCBiOTYzYmE0YWI1ODkuLjg1YWU2Y2ZmZGJmYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIx MCw3ICsyMTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVs dF9tb2RlID0gewogCS52cmVmcmVzaCA9IDYwLAogfTsKIAotc3RhdGljIGludCBzaGFycF9udF9w YW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNoYXJw X250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIApAQCAtMjI0LDEwICsyMjUsMTAgQEAgc3RhdGljIGludCBzaGFycF9udF9wYW5l bF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFt ZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7 CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNTQ7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLmhlaWdodF9tbSA9IDk1OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRo X21tID0gNTQ7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gOTU7CiAKIAly ZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1w bGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBhNWRmNmQ2 ZGQ0NTUuLmQ2Mjk5ZmU2ZDI3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpA QCAtMTE3LDkgKzExNyw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9f cGFuZWxfc2ltcGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiBjb250YWluZXJf b2YocGFuZWwsIHN0cnVjdCBwYW5lbF9zaW1wbGUsIGJhc2UpOwogfQogCi1zdGF0aWMgdW5zaWdu ZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxl ICpwYW5lbCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF90aW1pbmdzX21v ZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAorCQkJCQkJICAgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g cGFuZWwtPmJhc2UuY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+ YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJdW5zaWduZWQgaW50 IGksIG51bSA9IDA7CkBAIC0xNTAsOSArMTUwLDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBwYW5l bF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJ cmV0dXJuIG51bTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9zaW1wbGVfZ2V0X2Rp c3BsYXlfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCitzdGF0aWMgdW5zaWduZWQg aW50IHBhbmVsX3NpbXBsZV9nZXRfZGlzcGxheV9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCwKKwkJCQkJCSAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5iYXNlLmNvbm5lY3RvcjsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwpAQCAtMTgxLDkgKzE4 MSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsKQogCXJldHVybiBudW07CiB9CiAKLXN0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3Qg cGFuZWxfc2ltcGxlICpwYW5lbCwKKwkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2Uu Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9vbCBoYXNfb3ZlcnJpZGUgPSBwYW5l bC0+b3ZlcnJpZGVfbW9kZS50eXBlOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBpbnQgcGFu ZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkK IAogCS8qIE9ubHkgYWRkIHRpbWluZ3MgaWYgb3ZlcnJpZGUgd2FzIG5vdCB0aGVyZSBvciBmYWls ZWQgdG8gdmFsaWRhdGUgKi8KIAlpZiAobnVtID09IDAgJiYgcGFuZWwtPmRlc2MtPm51bV90aW1p bmdzKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwpOworCQlu dW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwsIGNvbm5lY3Rvcik7CiAK IAkvKgogCSAqIE9ubHkgYWRkIGZpeGVkIG1vZGVzIGlmIHRpbWluZ3Mvb3ZlcnJpZGUgYWRkZWQg bm8gbW9kZS4KQEAgLTIxNCw3ICsyMTQsNyBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRf bm9uX2VkaWRfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJICovCiAJV0FSTl9P TihwYW5lbC0+ZGVzYy0+bnVtX3RpbWluZ3MgJiYgcGFuZWwtPmRlc2MtPm51bV9tb2Rlcyk7CiAJ aWYgKG51bSA9PSAwKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFu ZWwpOworCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFuZWwsIGNvbm5l Y3Rvcik7CiAKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBwYW5lbC0+ZGVzYy0+YnBj OwogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gcGFuZWwtPmRlc2MtPnNpemUu d2lkdGg7CkBAIC0zMDQsMjMgKzMwNCwyNCBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9lbmFi bGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg cGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IHBhbmVsX3NpbXBs ZSAqcCA9IHRvX3BhbmVsX3NpbXBsZShwYW5lbCk7CiAJaW50IG51bSA9IDA7CiAKIAkvKiBwcm9i ZSBFRElEIGlmIGEgRERDIGJ1cyBpcyBhdmFpbGFibGUgKi8KIAlpZiAocC0+ZGRjKSB7Ci0JCXN0 cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKHBhbmVsLT5jb25uZWN0b3IsIHAtPmRkYyk7 Ci0JCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkocGFuZWwtPmNvbm5lY3Rvciwg ZWRpZCk7CisJCXN0cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgcC0+ ZGRjKTsKKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVk aWQpOwogCQlpZiAoZWRpZCkgewotCQkJbnVtICs9IGRybV9hZGRfZWRpZF9tb2RlcyhwYW5lbC0+ Y29ubmVjdG9yLCBlZGlkKTsKKwkJCW51bSArPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9y LCBlZGlkKTsKIAkJCWtmcmVlKGVkaWQpOwogCQl9CiAJfQogCiAJLyogYWRkIGhhcmQtY29kZWQg cGFuZWwgbW9kZXMgKi8KLQludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2Rlcyhw KTsKKwludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhwLCBjb25uZWN0b3Ip OwogCiAJcmV0dXJuIG51bTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRy b25peC1zdDc3MDEuYwppbmRleCBlZTNmMjNmNDU3NTUuLjNlZDNiMWQ2ZDgyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjY0LDcgKzI2 NCw4IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 CiAJc3RydWN0IHN0NzcwMSAqc3Q3NzAxID0gcGFuZWxfdG9fc3Q3NzAxKHBhbmVsKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAxLT5kZXNjLT5tb2Rl OwpAQCAtMjgwLDEwICsyODEsMTAgQEAgc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKQogCX0KIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwotCWRy bV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJv YmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLndpZHRoX21tID0gZGVzY19tb2RlLT53aWR0aF9tbTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGVpZ2h0X21tID0gZGVzY19tb2RlLT5oZWlnaHRfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBkZXNjX21vZGUtPndpZHRoX21tOworCWNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGRlc2NfbW9kZS0+aGVpZ2h0X21tOwogCiAJcmV0 dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9u aXgtc3Q3Nzg5di5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4 OXYuYwppbmRleCAxMDhhODViYjY2NjcuLjgzNmIwMTMzMTUwNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4OXYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCkBAIC0xNzAsOSArMTcwLDkgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAku dnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgc3Q3Nzg5dl9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9y OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1 cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTE4OCw4ICsxODgsOCBAQCBz dGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCW1v ZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVE OwogCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDYxOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lk dGhfbW0gPSA2MTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CiAK IAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1 YWttLmMKaW5kZXggZDYzODdkOGY4OGEzLi44NDFkYzczYzQ0M2QgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCkBAIC01MjEsOSArNTIxLDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGFjeDU2NWFrbV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA0NiwKIH07CiAKLXN0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29u bmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmYWN4NTY1YWttX21vZGUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCBjNDRkNmE2NWMwYWEuLjUy MzAxNzZiZDhlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10 ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0 ZWMxLmMKQEAgLTI4Nyw5ICsyODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgdGQwMjh0dGVjMV9tb2RlID0gewogCS5oZWlnaHRfbW0gPSA1OCwKIH07CiAKLXN0YXRp YyBpbnQgdGQwMjh0dGVjMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IHRkMDI4dHRlYzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJ CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDAy OHR0ZWMxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRw by10ZDA0M210ZWExLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYwppbmRleCA2MjFiNjVmZWVjMDcuLjcxNmY4ZWQxY2M0NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKQEAgLTM0Niw5ICszNDYsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgdGQwNDNtdGVhMV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA1NiwKIH07CiAKLXN0YXRpYyBpbnQgdGQwNDNtdGVhMV9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRkMDQzbXRlYTFfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf ZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKaW5kZXggMWE1NDE4YWUyY2NmLi5lNzRjZDlkNDE4Y2Yg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYwpAQCAtMzg0LDkgKzM4 NCw5IEBAIHN0YXRpYyBpbnQgdHBnMTEwX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK ICAqIHByZXNlbnRzIHRoZSBtb2RlIHRoYXQgaXMgY29uZmlndXJlZCBmb3IgdGhlIHN5c3RlbSB1 bmRlciB1c2UsCiAgKiBhbmQgd2hpY2ggaXMgZGV0ZWN0ZWQgYnkgcmVhZGluZyB0aGUgcmVnaXN0 ZXJzIG9mIHRoZSBkaXNwbGF5LgogICovCi1zdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3Rv cjsKIAlzdHJ1Y3QgdHBnMTEwICp0cGcgPSB0b190cGcxMTAocGFuZWwpOwogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHJ1bHktbnQzNTU5Ny5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5 LW50MzU1OTcuYwppbmRleCAwZmVlYTI0NTZlMTQuLjAxMmNhNjJiZjMwZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5LW50MzU1OTcuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtdHJ1bHktbnQzNTU5Ny5jCkBAIC00NTQsOSArNDU0LDkgQEAg c3RhdGljIGludCB0cnVseV9udDM1NTk3X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0cnVseV9udDM1NTk3X2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdHJ1bHlfbnQzNTU5N19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNv bm5lY3RvcjsKIAlzdHJ1Y3QgdHJ1bHlfbnQzNTU5NyAqY3R4ID0gcGFuZWxfdG9fY3R4KHBhbmVs KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAljb25zdCBzdHJ1Y3QgbnQzNTU5 N19jb25maWcgKmNvbmZpZzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oIGIv aW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKaW5kZXggYzc1MWM5YjE3ZGYwLi5mYjAxYjhkZjhjMmEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9wYW5lbC5oCkBAIC0xMDUsMTQgKzEwNSwxNiBAQCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHsK IAkvKioKIAkgKiBAZ2V0X21vZGVzOgogCSAqCi0JICogQWRkIG1vZGVzIHRvIHRoZSBjb25uZWN0 b3IgdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCisJICogQWRkIHBhbmVsIG1vZGVzIHRv IHRoZSBnaXZlbiBjb25uZWN0b3IgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mCisJICogbW9kZXMg YWRkZWQuCiAJICoKIAkgKiBUaGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeS4KIAkgKgogCSAqIFJl dHVybnMgdGhlIG51bWJlciBvZiBtb2RlcyBhZGRlZCwgLUVPUE5PVFNVUFAgaWYgY2FsbGJhY2sK IAkgKiBpcyBtaXNzaW5nLCAtRUlOVkFMIGlmIHBhbmVsIGlzIE5VTEwuCiAJICovCi0JaW50ICgq Z2V0X21vZGVzKShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CisJaW50ICgqZ2V0X21vZGVzKShz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsKIAogCS8qKgogCSAqIEBnZXRfdGltaW5nczoKLS0gCjIuMjAuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 146FEC43603 for ; Sat, 7 Dec 2019 14:04:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AAA2B217BA for ; Sat, 7 Dec 2019 14:04:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pw9uU8qe" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726410AbfLGOEX (ORCPT ); Sat, 7 Dec 2019 09:04:23 -0500 Received: from mail-lj1-f196.google.com ([209.85.208.196]:37725 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726397AbfLGOEX (ORCPT ); Sat, 7 Dec 2019 09:04:23 -0500 Received: by mail-lj1-f196.google.com with SMTP id u17so10723404lja.4; Sat, 07 Dec 2019 06:04:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=Pw9uU8qeJAp8ohytY3XGLh+P4CeKQpO16ye+QVFneSGmEAiwyNngUBtZ8rQrDyT7CR +iC3fJVyy0jX1kbEIWSTs1IXjbcjd2OHH3o6weweZUSp/P97fLLnEVi6FMq4g/HGVIVc zRyRlixn4sVqUvfvRfJGrGbQcTFG3E00U3SHtkv5Isz4y+ef8jblXqn5D3miDZlXM9uK khxIxdOlkATRoi+dqxmOWIS2RGRfEN8Uuh8W3bFyTeMdjQwZiOpqZsLvLGJjgmjSC6sM kBte7/IwXu2Q3/2Wi5zRZy/izSy+xNY3j/dmcYoItgbObw5Sl+bIXCaejiGqZX1F/rv7 gppQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=BNiaARe4Mf8DysWnhDFx+QhpAHeM2BeYbGvogwTFK+2wrJ3fa92RBL8aMxRmuyhBO4 dg6ZgVhzkMSy+zUX6LtdR3hUbmw8PdVD31+XILoAAgeG2cSzZ0oT4an7p7pxm1g5H7K/ vvdsn8Y78eBo/Xm1Sa73lRByVsTkSavQEemHJlqVDdik1OGtpafsIDRCC82/CTWclSx3 PN4XFXyV4e+RyieyDySC3ltc0eES/OM/Hjb1JLF2/1dCyS2y7ZdtCCToWZhKTVlwQuD5 IMAOu/85vxVWdLGpPBzPw8aGGxajvVTifXxL1BNWW3fzYFbtMxRydLSvx2PyjPp8rGn7 190w== X-Gm-Message-State: APjAAAVsJWd8fKoNiK3oX00qSZxHcl3UuDZUVzeOTrd8y6Muhr++d4by ePx+Tn+S6lb1jtlPxYtQHbg= X-Google-Smtp-Source: APXvYqzUTfqUVkzLVVdf6rt4gq/jut8/BT7asCuk0HlLy1tuUb3fl3pA/m4JQLsuw4+2PA3icjL41w== X-Received: by 2002:a2e:9855:: with SMTP id e21mr11600738ljj.170.1575727457823; Sat, 07 Dec 2019 06:04:17 -0800 (PST) Received: from saturn.lan (18.158-248-194.customer.lyse.net. [158.248.194.18]) by smtp.gmail.com with ESMTPSA id w17sm5644188lfn.22.2019.12.07.06.04.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:17 -0800 (PST) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Cc: Abhinav Kumar , Andrzej Hajda , Benjamin Gaignard , Boris Brezillon , Daniel Vetter , David Airlie , Jagan Teki , Jitao Shi , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, Maarten Lankhorst , Maxime Ripard , Neil Armstrong , NXP Linux Team , Pengutronix Kernel Team , Purism Kernel Team , Sean Paul , Stefan Agner , Tomi Valkeinen , Stefan Mavrodiev , Robert Chiras , =?UTF-8?q?Guido=20G=C3=BCnther?= Subject: [PATCH v2 05/25] drm/panel: add drm_connector argument to get_modes() Date: Sat, 7 Dec 2019 15:03:33 +0100 Message-Id: <20191207140353.23967-6-sam@ravnborg.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191207140353.23967-1-sam@ravnborg.org> References: <20191207140353.23967-1-sam@ravnborg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org Today the bridge creates the drm_connector, but that is planned to be moved to the display drivers. To facilitate this, update drm_panel_funcs.get_modes() to take drm_connector as an argument. All panel drivers implementing get_modes() are updated. v2: - drop accidental change (Laurent) - update docs for get_modes (Laurent) Signed-off-by: Sam Ravnborg Reviewed-by: Laurent Pinchart Reviewed-by: Linus Walleij Cc: Thierry Reding Cc: Laurent Pinchart Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: David Airlie Cc: Daniel Vetter Cc: Linus Walleij Cc: Jagan Teki Cc: Stefan Mavrodiev Cc: Robert Chiras Cc: "Guido Günther" Cc: Purism Kernel Team --- drivers/gpu/drm/drm_panel.c | 2 +- drivers/gpu/drm/panel/panel-arm-versatile.c | 4 +-- .../drm/panel/panel-feiyang-fy07024di26a30d.c | 4 +-- drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +-- drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 8 +++--- drivers/gpu/drm/panel/panel-innolux-p079zca.c | 13 +++++---- .../gpu/drm/panel/panel-jdi-lt070me05000.c | 9 ++++--- .../drm/panel/panel-kingdisplay-kd097d04.c | 11 ++++---- drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +-- drivers/gpu/drm/panel/panel-lg-lg4573.c | 8 +++--- drivers/gpu/drm/panel/panel-lvds.c | 4 +-- drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +-- drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +-- .../drm/panel/panel-olimex-lcd-olinuxino.c | 4 +-- .../gpu/drm/panel/panel-orisetech-otm8009a.c | 9 ++++--- .../drm/panel/panel-osd-osd101t2587-53ts.c | 9 ++++--- .../drm/panel/panel-panasonic-vvx10f034n00.c | 9 ++++--- .../drm/panel/panel-raspberrypi-touchscreen.c | 4 +-- drivers/gpu/drm/panel/panel-raydium-rm67191.c | 6 ++--- drivers/gpu/drm/panel/panel-raydium-rm68200.c | 9 ++++--- .../drm/panel/panel-rocktech-jh057n00900.c | 9 ++++--- drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 10 +++---- drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +-- drivers/gpu/drm/panel/panel-samsung-s6d16d0.c | 4 +-- drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 4 +-- .../gpu/drm/panel/panel-samsung-s6e63j0x03.c | 4 +-- drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 4 +-- drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 4 +-- drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 9 ++++--- .../gpu/drm/panel/panel-sharp-lq101r1sx01.c | 9 ++++--- .../gpu/drm/panel/panel-sharp-ls037v7dw01.c | 4 +-- .../gpu/drm/panel/panel-sharp-ls043t1le01.c | 9 ++++--- drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++--------- drivers/gpu/drm/panel/panel-sitronix-st7701.c | 9 ++++--- .../gpu/drm/panel/panel-sitronix-st7789v.c | 8 +++--- drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +-- drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +-- drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +-- drivers/gpu/drm/panel/panel-tpo-tpg110.c | 4 +-- drivers/gpu/drm/panel/panel-truly-nt35597.c | 4 +-- include/drm/drm_panel.h | 6 +++-- 41 files changed, 143 insertions(+), 130 deletions(-) diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index c312d5eb214d..4caa734b4fde 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -261,7 +261,7 @@ int drm_panel_get_modes(struct drm_panel *panel) return -EINVAL; if (panel->funcs && panel->funcs->get_modes) - return panel->funcs->get_modes(panel); + return panel->funcs->get_modes(panel, panel->connector); return -EOPNOTSUPP; } diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c index a0574dc03e16..41aa91f60979 100644 --- a/drivers/gpu/drm/panel/panel-arm-versatile.c +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c @@ -260,9 +260,9 @@ static int versatile_panel_enable(struct drm_panel *panel) return 0; } -static int versatile_panel_get_modes(struct drm_panel *panel) +static int versatile_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct versatile_panel *vpanel = to_versatile_panel(panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c index 98f184b81187..37d6b7390954 100644 --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c @@ -162,9 +162,9 @@ static const struct drm_display_mode feiyang_default_mode = { .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, }; -static int feiyang_get_modes(struct drm_panel *panel) +static int feiyang_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct feiyang *ctx = panel_to_feiyang(panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c index 24955bec1958..7e5062b07ac8 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c @@ -641,9 +641,9 @@ static const struct drm_display_mode itu_r_bt_656_720_mode = { .flags = 0, }; -static int ili9322_get_modes(struct drm_panel *panel) +static int ili9322_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct ili9322 *ili = panel_to_ili9322(panel); struct drm_display_mode *mode; struct drm_display_info *info; diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c index e8789e460a16..1c67a668d6bf 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c @@ -387,9 +387,9 @@ static const struct drm_display_mode bananapi_default_mode = { .vtotal = 1280 + 10 + 10 + 20, }; -static int ili9881c_get_modes(struct drm_panel *panel) +static int ili9881c_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct ili9881c *ctx = panel_to_ili9881c(panel); struct drm_display_mode *mode; @@ -407,8 +407,8 @@ static int ili9881c_get_modes(struct drm_panel *panel) mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 62; - panel->connector->display_info.height_mm = 110; + connector->display_info.width_mm = 62; + connector->display_info.height_mm = 110; return 1; } diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c index 83df1ac4211f..facf1bab2532 100644 --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c @@ -403,7 +403,8 @@ static const struct panel_desc innolux_p097pfg_panel_desc = { .sleep_mode_delay = 100, /* T15 */ }; -static int innolux_panel_get_modes(struct drm_panel *panel) +static int innolux_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct innolux_panel *innolux = to_innolux_panel(panel); const struct drm_display_mode *m = innolux->desc->mode; @@ -418,13 +419,11 @@ static int innolux_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = - innolux->desc->size.width; - panel->connector->display_info.height_mm = - innolux->desc->size.height; - panel->connector->display_info.bpc = innolux->desc->bpc; + connector->display_info.width_mm = innolux->desc->size.width; + connector->display_info.height_mm = innolux->desc->size.height; + connector->display_info.bpc = innolux->desc->bpc; return 1; } diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c index 56364a93f0b8..e6b650a64fdb 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -300,7 +300,8 @@ static const struct drm_display_mode default_mode = { .flags = 0, }; -static int jdi_panel_get_modes(struct drm_panel *panel) +static int jdi_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; struct jdi_panel *jdi = to_jdi_panel(panel); @@ -316,10 +317,10 @@ static int jdi_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 95; - panel->connector->display_info.height_mm = 151; + connector->display_info.width_mm = 95; + connector->display_info.height_mm = 151; return 1; } diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c index 45f96556ec8c..e6f53d56daf9 100644 --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c @@ -333,7 +333,8 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int kingdisplay_panel_get_modes(struct drm_panel *panel) +static int kingdisplay_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -347,11 +348,11 @@ static int kingdisplay_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 147; - panel->connector->display_info.height_mm = 196; - panel->connector->display_info.bpc = 8; + connector->display_info.width_mm = 147; + connector->display_info.height_mm = 196; + connector->display_info.bpc = 8; return 1; } diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c index 7a1385e834f0..7a3bd4d80c79 100644 --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c @@ -141,9 +141,9 @@ static const struct drm_display_mode lb035q02_mode = { .height_mm = 53, }; -static int lb035q02_get_modes(struct drm_panel *panel) +static int lb035q02_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &lb035q02_mode); diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c index db4865a4c2b9..fc6572b4e2f9 100644 --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c @@ -209,9 +209,9 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int lg4573_get_modes(struct drm_panel *panel) +static int lg4573_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &default_mode); @@ -227,8 +227,8 @@ static int lg4573_get_modes(struct drm_panel *panel) mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 61; - panel->connector->display_info.height_mm = 103; + connector->display_info.width_mm = 61; + connector->display_info.height_mm = 103; return 1; } diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c index 2405f26e5d31..f6d58a60e514 100644 --- a/drivers/gpu/drm/panel/panel-lvds.c +++ b/drivers/gpu/drm/panel/panel-lvds.c @@ -106,10 +106,10 @@ static int panel_lvds_enable(struct drm_panel *panel) return 0; } -static int panel_lvds_get_modes(struct drm_panel *panel) +static int panel_lvds_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct panel_lvds *lvds = to_panel_lvds(panel); - struct drm_connector *connector = lvds->panel.connector; struct drm_display_mode *mode; mode = drm_mode_create(lvds->panel.drm); diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c index fd593532ab23..a6ccdb09aace 100644 --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c @@ -123,9 +123,9 @@ static const struct drm_display_mode nl8048_mode = { .height_mm = 53, }; -static int nl8048_get_modes(struct drm_panel *panel) +static int nl8048_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &nl8048_mode); diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c index 60ccedce530c..91ea49c05611 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c @@ -206,11 +206,11 @@ static int nt39016_disable(struct drm_panel *drm_panel) return 0; } -static int nt39016_get_modes(struct drm_panel *drm_panel) +static int nt39016_get_modes(struct drm_panel *drm_panel, + struct drm_connector *connector) { struct nt39016 *panel = to_nt39016(drm_panel); const struct nt39016_panel_info *panel_info = panel->panel_info; - struct drm_connector *connector = drm_panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(drm_panel->drm, &panel_info->display_mode); diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c index 8738ef1b66dc..2b7e0dfebc5e 100644 --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c @@ -141,10 +141,10 @@ static int lcd_olinuxino_enable(struct drm_panel *panel) return 0; } -static int lcd_olinuxino_get_modes(struct drm_panel *panel) +static int lcd_olinuxino_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel); - struct drm_connector *connector = lcd->panel.connector; struct lcd_olinuxino_info *lcd_info = &lcd->eeprom.info; struct drm_device *drm = lcd->panel.drm; struct lcd_olinuxino_mode *lcd_mode; diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index bf1f928b215f..4e1606c79072 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -349,7 +349,8 @@ static int otm8009a_enable(struct drm_panel *panel) return 0; } -static int otm8009a_get_modes(struct drm_panel *panel) +static int otm8009a_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -364,10 +365,10 @@ static int otm8009a_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = mode->width_mm; - panel->connector->display_info.height_mm = mode->height_mm; + connector->display_info.width_mm = mode->width_mm; + connector->display_info.height_mm = mode->height_mm; return 1; } diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c index 2b40913899d8..b3e010288c10 100644 --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c @@ -112,7 +112,8 @@ static const struct drm_display_mode default_mode_osd101t2587 = { .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, }; -static int osd101t2587_panel_get_modes(struct drm_panel *panel) +static int osd101t2587_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct osd101t2587_panel *osd101t2587 = ti_osd_panel(panel); struct drm_display_mode *mode; @@ -128,10 +129,10 @@ static int osd101t2587_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 217; - panel->connector->display_info.height_mm = 136; + connector->display_info.width_mm = 217; + connector->display_info.height_mm = 136; return 1; } diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c index 664605071d34..19a6eb4637c8 100644 --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c @@ -166,7 +166,8 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int wuxga_nt_panel_get_modes(struct drm_panel *panel) +static int wuxga_nt_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -180,10 +181,10 @@ static int wuxga_nt_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 217; - panel->connector->display_info.height_mm = 136; + connector->display_info.width_mm = 217; + connector->display_info.height_mm = 136; return 1; } diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c index adf2dace96e3..0b8cc199c8d2 100644 --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c @@ -309,9 +309,9 @@ static int rpi_touchscreen_enable(struct drm_panel *panel) return 0; } -static int rpi_touchscreen_get_modes(struct drm_panel *panel) +static int rpi_touchscreen_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_device *drm = panel->drm; unsigned int i, num = 0; static const u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c index fd67fc6185c4..123bb68cfcb7 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -436,9 +436,9 @@ static int rad_panel_disable(struct drm_panel *panel) return 0; } -static int rad_panel_get_modes(struct drm_panel *panel) +static int rad_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &default_mode); @@ -451,7 +451,7 @@ static int rad_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); connector->display_info.width_mm = mode->width_mm; connector->display_info.height_mm = mode->height_mm; diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c index 994e855721f4..66fa975308ec 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c @@ -335,7 +335,8 @@ static int rm68200_enable(struct drm_panel *panel) return 0; } -static int rm68200_get_modes(struct drm_panel *panel) +static int rm68200_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -350,10 +351,10 @@ static int rm68200_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = mode->width_mm; - panel->connector->display_info.height_mm = mode->height_mm; + connector->display_info.width_mm = mode->width_mm; + connector->display_info.height_mm = mode->height_mm; return 1; } diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c index 31234b79d3b1..b2d61cab3cad 100644 --- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c +++ b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c @@ -230,7 +230,8 @@ static const struct drm_display_mode default_mode = { .height_mm = 130, }; -static int jh057n_get_modes(struct drm_panel *panel) +static int jh057n_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct jh057n *ctx = panel_to_jh057n(panel); struct drm_display_mode *mode; @@ -246,9 +247,9 @@ static int jh057n_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; - panel->connector->display_info.width_mm = mode->width_mm; - panel->connector->display_info.height_mm = mode->height_mm; - drm_mode_probed_add(panel->connector, mode); + connector->display_info.width_mm = mode->width_mm; + connector->display_info.height_mm = mode->height_mm; + drm_mode_probed_add(connector, mode); return 1; } diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c index 170a5cda21b9..57a462ce221e 100644 --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c @@ -120,9 +120,9 @@ static const struct drm_display_mode default_mode = { .height_mm = 85, }; -static int rb070d30_panel_get_modes(struct drm_panel *panel) +static int rb070d30_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct rb070d30_panel *ctx = panel_to_rb070d30_panel(panel); struct drm_display_mode *mode; static const u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; @@ -140,9 +140,9 @@ static int rb070d30_panel_get_modes(struct drm_panel *panel) mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; drm_mode_probed_add(connector, mode); - panel->connector->display_info.bpc = 8; - panel->connector->display_info.width_mm = mode->width_mm; - panel->connector->display_info.height_mm = mode->height_mm; + connector->display_info.bpc = 8; + connector->display_info.width_mm = mode->width_mm; + connector->display_info.height_mm = mode->height_mm; drm_display_info_set_bus_formats(&connector->display_info, &bus_format, 1); diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c index 250809ba37c7..3c52f15f7a1c 100644 --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c @@ -261,9 +261,9 @@ static int ld9040_enable(struct drm_panel *panel) return 0; } -static int ld9040_get_modes(struct drm_panel *panel) +static int ld9040_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct ld9040 *ctx = panel_to_ld9040(panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c index e3a0397e953e..71939ab757b1 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c @@ -143,9 +143,9 @@ static int s6d16d0_disable(struct drm_panel *panel) return 0; } -static int s6d16d0_get_modes(struct drm_panel *panel) +static int s6d16d0_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &samsung_s6d16d0_mode); diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c index 938ab72c5540..8e0236ba6145 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c @@ -645,9 +645,9 @@ static const struct s6e3ha2_panel_desc samsung_s6e3hf2 = { .type = HF2_TYPE, }; -static int s6e3ha2_get_modes(struct drm_panel *panel) +static int s6e3ha2_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct s6e3ha2 *ctx = container_of(panel, struct s6e3ha2, panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c index a60635e9226d..c939d5bde4f0 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c @@ -400,9 +400,9 @@ static int s6e63j0x03_enable(struct drm_panel *panel) return 0; } -static int s6e63j0x03_get_modes(struct drm_panel *panel) +static int s6e63j0x03_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &default_mode); diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c index ba01af0b14fd..1d099092e754 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c @@ -362,9 +362,9 @@ static int s6e63m0_enable(struct drm_panel *panel) return 0; } -static int s6e63m0_get_modes(struct drm_panel *panel) +static int s6e63m0_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &default_mode); diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c index dbced6501204..8a028d2bd0d6 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c @@ -920,9 +920,9 @@ static int s6e8aa0_enable(struct drm_panel *panel) return 0; } -static int s6e8aa0_get_modes(struct drm_panel *panel) +static int s6e8aa0_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct s6e8aa0 *ctx = panel_to_s6e8aa0(panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c index b3619ba443bd..b878930b17e4 100644 --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c @@ -56,9 +56,9 @@ static inline struct seiko_panel *to_seiko_panel(struct drm_panel *panel) return container_of(panel, struct seiko_panel, base); } -static int seiko_panel_get_fixed_modes(struct seiko_panel *panel) +static int seiko_panel_get_fixed_modes(struct seiko_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->base.connector; struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; @@ -208,12 +208,13 @@ static int seiko_panel_enable(struct drm_panel *panel) return 0; } -static int seiko_panel_get_modes(struct drm_panel *panel) +static int seiko_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct seiko_panel *p = to_seiko_panel(panel); /* add hard-coded panel modes */ - return seiko_panel_get_fixed_modes(p); + return seiko_panel_get_fixed_modes(p, connector); } static int seiko_panel_get_timings(struct drm_panel *panel, diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c index 5e136c3ba185..e797b700661a 100644 --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c @@ -278,7 +278,8 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int sharp_panel_get_modes(struct drm_panel *panel) +static int sharp_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -292,10 +293,10 @@ static int sharp_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 217; - panel->connector->display_info.height_mm = 136; + connector->display_info.width_mm = 217; + connector->display_info.height_mm = 136; return 1; } diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c index eeab7998c7de..7103a945f0e8 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c @@ -100,9 +100,9 @@ static const struct drm_display_mode ls037v7dw01_mode = { .height_mm = 75, }; -static int ls037v7dw01_get_modes(struct drm_panel *panel) +static int ls037v7dw01_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &ls037v7dw01_mode); diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c index b963ba4ab589..85ae6cffdbfb 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c @@ -210,7 +210,8 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int sharp_nt_panel_get_modes(struct drm_panel *panel) +static int sharp_nt_panel_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct drm_display_mode *mode; @@ -224,10 +225,10 @@ static int sharp_nt_panel_get_modes(struct drm_panel *panel) drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 54; - panel->connector->display_info.height_mm = 95; + connector->display_info.width_mm = 54; + connector->display_info.height_mm = 95; return 1; } diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index a5df6d6dd455..d6299fe6d276 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -117,9 +117,9 @@ static inline struct panel_simple *to_panel_simple(struct drm_panel *panel) return container_of(panel, struct panel_simple, base); } -static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel) +static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->base.connector; struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; @@ -150,9 +150,9 @@ static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel) return num; } -static unsigned int panel_simple_get_display_modes(struct panel_simple *panel) +static unsigned int panel_simple_get_display_modes(struct panel_simple *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->base.connector; struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; @@ -181,9 +181,9 @@ static unsigned int panel_simple_get_display_modes(struct panel_simple *panel) return num; } -static int panel_simple_get_non_edid_modes(struct panel_simple *panel) +static int panel_simple_get_non_edid_modes(struct panel_simple *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->base.connector; struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; bool has_override = panel->override_mode.type; @@ -204,7 +204,7 @@ static int panel_simple_get_non_edid_modes(struct panel_simple *panel) /* Only add timings if override was not there or failed to validate */ if (num == 0 && panel->desc->num_timings) - num = panel_simple_get_timings_modes(panel); + num = panel_simple_get_timings_modes(panel, connector); /* * Only add fixed modes if timings/override added no mode. @@ -214,7 +214,7 @@ static int panel_simple_get_non_edid_modes(struct panel_simple *panel) */ WARN_ON(panel->desc->num_timings && panel->desc->num_modes); if (num == 0) - num = panel_simple_get_display_modes(panel); + num = panel_simple_get_display_modes(panel, connector); connector->display_info.bpc = panel->desc->bpc; connector->display_info.width_mm = panel->desc->size.width; @@ -304,23 +304,24 @@ static int panel_simple_enable(struct drm_panel *panel) return 0; } -static int panel_simple_get_modes(struct drm_panel *panel) +static int panel_simple_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct panel_simple *p = to_panel_simple(panel); int num = 0; /* probe EDID if a DDC bus is available */ if (p->ddc) { - struct edid *edid = drm_get_edid(panel->connector, p->ddc); - drm_connector_update_edid_property(panel->connector, edid); + struct edid *edid = drm_get_edid(connector, p->ddc); + drm_connector_update_edid_property(connector, edid); if (edid) { - num += drm_add_edid_modes(panel->connector, edid); + num += drm_add_edid_modes(connector, edid); kfree(edid); } } /* add hard-coded panel modes */ - num += panel_simple_get_non_edid_modes(p); + num += panel_simple_get_non_edid_modes(p, connector); return num; } diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c index ee3f23f45755..3ed3b1d6d82d 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@ -264,7 +264,8 @@ static int st7701_unprepare(struct drm_panel *panel) return 0; } -static int st7701_get_modes(struct drm_panel *panel) +static int st7701_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct st7701 *st7701 = panel_to_st7701(panel); const struct drm_display_mode *desc_mode = st7701->desc->mode; @@ -280,10 +281,10 @@ static int st7701_get_modes(struct drm_panel *panel) } drm_mode_set_name(mode); - drm_mode_probed_add(panel->connector, mode); + drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = desc_mode->width_mm; - panel->connector->display_info.height_mm = desc_mode->height_mm; + connector->display_info.width_mm = desc_mode->width_mm; + connector->display_info.height_mm = desc_mode->height_mm; return 1; } diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c index 108a85bb6667..836b01331505 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c @@ -170,9 +170,9 @@ static const struct drm_display_mode default_mode = { .vrefresh = 60, }; -static int st7789v_get_modes(struct drm_panel *panel) +static int st7789v_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &default_mode); @@ -188,8 +188,8 @@ static int st7789v_get_modes(struct drm_panel *panel) mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; drm_mode_probed_add(connector, mode); - panel->connector->display_info.width_mm = 61; - panel->connector->display_info.height_mm = 103; + connector->display_info.width_mm = 61; + connector->display_info.height_mm = 103; return 1; } diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index d6387d8f88a3..841dc73c443d 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -521,9 +521,9 @@ static const struct drm_display_mode acx565akm_mode = { .height_mm = 46, }; -static int acx565akm_get_modes(struct drm_panel *panel) +static int acx565akm_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &acx565akm_mode); diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c index c44d6a65c0aa..5230176bd8e6 100644 --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c @@ -287,9 +287,9 @@ static const struct drm_display_mode td028ttec1_mode = { .height_mm = 58, }; -static int td028ttec1_get_modes(struct drm_panel *panel) +static int td028ttec1_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &td028ttec1_mode); diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c index 621b65feec07..716f8ed1cc45 100644 --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c @@ -346,9 +346,9 @@ static const struct drm_display_mode td043mtea1_mode = { .height_mm = 56, }; -static int td043mtea1_get_modes(struct drm_panel *panel) +static int td043mtea1_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode; mode = drm_mode_duplicate(panel->drm, &td043mtea1_mode); diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c index 1a5418ae2ccf..e74cd9d418cf 100644 --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c @@ -384,9 +384,9 @@ static int tpg110_enable(struct drm_panel *panel) * presents the mode that is configured for the system under use, * and which is detected by reading the registers of the display. */ -static int tpg110_get_modes(struct drm_panel *panel) +static int tpg110_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct tpg110 *tpg = to_tpg110(panel); struct drm_display_mode *mode; diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c index 0feea2456e14..012ca62bf30e 100644 --- a/drivers/gpu/drm/panel/panel-truly-nt35597.c +++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c @@ -454,9 +454,9 @@ static int truly_nt35597_enable(struct drm_panel *panel) return 0; } -static int truly_nt35597_get_modes(struct drm_panel *panel) +static int truly_nt35597_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { - struct drm_connector *connector = panel->connector; struct truly_nt35597 *ctx = panel_to_ctx(panel); struct drm_display_mode *mode; const struct nt35597_config *config; diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index c751c9b17df0..fb01b8df8c2a 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -105,14 +105,16 @@ struct drm_panel_funcs { /** * @get_modes: * - * Add modes to the connector that the panel is attached to. + * Add panel modes to the given connector and return the number of + * modes added. * * This function is mandatory. * * Returns the number of modes added, -EOPNOTSUPP if callback * is missing, -EINVAL if panel is NULL. */ - int (*get_modes)(struct drm_panel *panel); + int (*get_modes)(struct drm_panel *panel, + struct drm_connector *connector); /** * @get_timings: -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20CD7C43603 for ; Sat, 7 Dec 2019 14:07:02 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9CB9421835 for ; Sat, 7 Dec 2019 14:07:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="K2l6FbCe"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pw9uU8qe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9CB9421835 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+nmNFW7zDRjrNOZgnlTVbOBZS4nfHvhy8RzjndS8Pr4=; b=K2l6FbCe0PjhEN QV4IuCnt7aQ1x0+OsheDW46CqoY6SD1Xox50qpJQMJBSZVq7pJ1c2joZxTAGNuc6ugylCgdcy0XOL TkdwUJMKi04b7h1qrQWszM3upaQpQHyk7h9xMTgS2FFtum8akmoexA/r7ESgH0GP2rxehhqjRnGV5 572AjgYrAxYmCgIRoblNb4DCS8EPaybD+PXSXooiuceYOZ2UYQnHFnu9W3jofrcmYhDWyy1QKOuVy LXWtxkn/c9xVvS+GLfsVVLbNKFb5U7RVuSnGTOSUXIEZGzvlWnUftRiru8I2+mK/4QhbGjzzYqSEs 87Fobi4p+QTvN6J6aMaA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1idaja-0000eR-LT; Sat, 07 Dec 2019 14:06:58 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idah1-0005Zf-Rc; Sat, 07 Dec 2019 14:04:23 +0000 Received: by mail-lj1-x243.google.com with SMTP id 21so10750930ljr.0; Sat, 07 Dec 2019 06:04:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=Pw9uU8qeJAp8ohytY3XGLh+P4CeKQpO16ye+QVFneSGmEAiwyNngUBtZ8rQrDyT7CR +iC3fJVyy0jX1kbEIWSTs1IXjbcjd2OHH3o6weweZUSp/P97fLLnEVi6FMq4g/HGVIVc zRyRlixn4sVqUvfvRfJGrGbQcTFG3E00U3SHtkv5Isz4y+ef8jblXqn5D3miDZlXM9uK khxIxdOlkATRoi+dqxmOWIS2RGRfEN8Uuh8W3bFyTeMdjQwZiOpqZsLvLGJjgmjSC6sM kBte7/IwXu2Q3/2Wi5zRZy/izSy+xNY3j/dmcYoItgbObw5Sl+bIXCaejiGqZX1F/rv7 gppQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=VfOlHpsiiJ8nSQBsVF5xPx4vyGiu9u91xDR5gsfhSbwbYCnuoqDT7s9kII93gF11m4 9cnooG157uwmw1zzGftmeRZSOuANfUHxdjPtb9wnlP1CILonxtC6juRd8U4ALEQNJVPi fzo2udpToAc3FK6JLS+nqgXTWDcKyHHm98FsRZkD9DItZhK8M8io9g2NRHBCF0fu6uAf MUh+MCA6cXu7higOsJbnGJH+43bSS5CQWfPRzX/IGAJJO76oeD041YtWaov+tOcneR4q /P1FiVwgCv0x6W6cOS6QpWDa/7DLtZtlhfEuxrMqYR96jg5iisZpURKzgw06rZ75mVaL HN/A== X-Gm-Message-State: APjAAAVbr05GBSYf9R5BQTFymZWn+7Tdh54mQ/4z6gZI3DS8lCzjsp9w q9dAMVowU13P3QMsuyHDpuY= X-Google-Smtp-Source: APXvYqzUTfqUVkzLVVdf6rt4gq/jut8/BT7asCuk0HlLy1tuUb3fl3pA/m4JQLsuw4+2PA3icjL41w== X-Received: by 2002:a2e:9855:: with SMTP id e21mr11600738ljj.170.1575727457823; Sat, 07 Dec 2019 06:04:17 -0800 (PST) Received: from saturn.lan (18.158-248-194.customer.lyse.net. [158.248.194.18]) by smtp.gmail.com with ESMTPSA id w17sm5644188lfn.22.2019.12.07.06.04.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:17 -0800 (PST) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Subject: [PATCH v2 05/25] drm/panel: add drm_connector argument to get_modes() Date: Sat, 7 Dec 2019 15:03:33 +0100 Message-Id: <20191207140353.23967-6-sam@ravnborg.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191207140353.23967-1-sam@ravnborg.org> References: <20191207140353.23967-1-sam@ravnborg.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191207_060419_978397_ECC7928F X-CRM114-Status: GOOD ( 13.40 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Neil Armstrong , David Airlie , =?UTF-8?q?Guido=20G=C3=BCnther?= , Stefan Agner , Andrzej Hajda , Benjamin Gaignard , linux-samsung-soc@vger.kernel.org, Stefan Mavrodiev , linux-rockchip@lists.infradead.org, Tomi Valkeinen , Jagan Teki , Robert Chiras , NXP Linux Team , Jitao Shi , Pengutronix Kernel Team , Maarten Lankhorst , Maxime Ripard , linux-mediatek@lists.infradead.org, Abhinav Kumar , linux-tegra@vger.kernel.org, Sean Paul , linux-arm-kernel@lists.infradead.org, Purism Kernel Team , linux-renesas-soc@vger.kernel.org, Boris Brezillon , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org VG9kYXkgdGhlIGJyaWRnZSBjcmVhdGVzIHRoZSBkcm1fY29ubmVjdG9yLCBidXQgdGhhdCBpcyBw bGFubmVkCnRvIGJlIG1vdmVkIHRvIHRoZSBkaXNwbGF5IGRyaXZlcnMuClRvIGZhY2lsaXRhdGUg dGhpcywgdXBkYXRlIGRybV9wYW5lbF9mdW5jcy5nZXRfbW9kZXMoKSB0bwp0YWtlIGRybV9jb25u ZWN0b3IgYXMgYW4gYXJndW1lbnQuCkFsbCBwYW5lbCBkcml2ZXJzIGltcGxlbWVudGluZyBnZXRf bW9kZXMoKSBhcmUgdXBkYXRlZC4KCnYyOgogIC0gZHJvcCBhY2NpZGVudGFsIGNoYW5nZSAoTGF1 cmVudCkKICAtIHVwZGF0ZSBkb2NzIGZvciBnZXRfbW9kZXMgKExhdXJlbnQpCgpTaWduZWQtb2Zm LWJ5OiBTYW0gUmF2bmJvcmcgPHNhbUByYXZuYm9yZy5vcmc+ClJldmlld2VkLWJ5OiBMYXVyZW50 IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ClJldmlld2VkLWJ5 OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CkNjOiBUaGllcnJ5IFJl ZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgpDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBhcmQgPG1yaXBh cmRAa2VybmVsLm9yZz4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IExpbnVzIFdhbGxlaWogPGxpbnVzLndh bGxlaWpAbGluYXJvLm9yZz4KQ2M6IEphZ2FuIFRla2kgPGphZ2FuQGFtYXJ1bGFzb2x1dGlvbnMu Y29tPgpDYzogU3RlZmFuIE1hdnJvZGlldiA8c3RlZmFuQG9saW1leC5jb20+CkNjOiBSb2JlcnQg Q2hpcmFzIDxyb2JlcnQuY2hpcmFzQG54cC5jb20+CkNjOiAiR3VpZG8gR8O8bnRoZXIiIDxhZ3hA c2lneGNwdS5vcmc+CkNjOiBQdXJpc20gS2VybmVsIFRlYW0gPGtlcm5lbEBwdXJpLnNtPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jICAgfCAgNCArLS0KIC4u Li9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQuYyB8ICA0ICstLQogZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMgIHwgIDQgKy0tCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgfCAgOCArKystLS0KIGRy aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYyB8IDEzICsrKysrLS0t LQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jICAgIHwgIDkgKysr Ky0tLQogLi4uL2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jICAgIHwgMTEg KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5jICAgICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jICAgICAgIHwg IDggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jICAgICAgICAgICAg fCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIHwg IDQgKy0tCiAuLi4vZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMgICAgfCAg NCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jICB8ICA5 ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8 ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5j ICB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3Jl ZW4uYyB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5 MS5jIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjgy MDAuYyB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5 MDAuYyAgICB8ICA5ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1y YjA3MGQzMC5jICB8IDEwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLWxkOTA0MC5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZkMTZkMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmUzaGEyLmMgfCAgNCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZl NjNqMHgwMy5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmct czZlNjNtMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1z NmU4YWEwLmMgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxxMTAx cjFzeDAxLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxz MDM3djdkdzAxLmMgICB8ICA0ICstLQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHMw NDN0MWxlMDEuYyAgIHwgIDkgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNp bXBsZS5jICAgICAgICAgIHwgMjcgKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jIHwgIDkgKysrKy0tLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDggKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc29ueS1hY3g1NjVha20uYyAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwMjh0dGVjMS5jICB8ICA0ICstLQogZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC10cnVseS1udDM1NTk3LmMgICB8ICA0ICstLQogaW5jbHVkZS9kcm0vZHJt X3BhbmVsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KIDQxIGZpbGVzIGNoYW5n ZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmlu ZGV4IGMzMTJkNWViMjE0ZC4uNGNhYTczNGI0ZmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCkBAIC0yNjEs NyArMjYxLDcgQEAgaW50IGRybV9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVu Y3MtPmdldF9tb2RlcykKLQkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsKTsK KwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsLCBwYW5lbC0+Y29ubmVjdG9y KTsKIAogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IGEwNTc0ZGMwM2UxNi4uNDFhYTkxZjYwOTc5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMKQEAgLTI2MCw5ICsy NjAsOSBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyc2F0aWxlX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdmVyc2F0aWxlX3Bh bmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHZlcnNhdGlsZV9wYW5lbCAqdnBhbmVs ID0gdG9fdmVyc2F0aWxlX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmct ZnkwNzAyNGRpMjZhMzBkLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYwppbmRleCA5OGYxODRiODExODcuLjM3ZDZiNzM5MDk1NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBk LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZh MzBkLmMKQEAgLTE2Miw5ICsxNjIsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgZmVpeWFuZ19kZWZhdWx0X21vZGUgPSB7CiAJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVELAogfTsKIAotc3RhdGljIGludCBmZWl5YW5n X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgZmVpeWFuZ19n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2ZlaXlh bmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jCmluZGV4IDI0OTU1YmVjMTk1OC4u N2U1MDYyYjA3YWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWls aTkzMjIuYwpAQCAtNjQxLDkgKzY0MSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSBpdHVfcl9idF82NTZfNzIwX21vZGUgPSB7CiAJLmZsYWdzID0gMCwKIH07CiAKLXN0 YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IGlsaTkzMjJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBpbGk5MzIyICppbGkg PSBwYW5lbF90b19pbGk5MzIyKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYwppbmRleCBlODc4OWU0NjBhMTYuLjFjNjdhNjY4 ZDZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5 ODgxYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMu YwpAQCAtMzg3LDkgKzM4Nyw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSBiYW5hbmFwaV9kZWZhdWx0X21vZGUgPSB7CiAJLnZ0b3RhbAkJPSAxMjgwICsgMTAgKyAxMCAr IDIwLAogfTsKIAotc3RhdGljIGludCBpbGk5ODgxY19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCitzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0J c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3Ry dWN0IGlsaTk4ODFjICpjdHggPSBwYW5lbF90b19pbGk5ODgxYyhwYW5lbCk7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKQEAgLTQwNyw4ICs0MDcsOCBAQCBzdGF0aWMgaW50IGls aTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAltb2RlLT50eXBlID0g RFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKIAlkcm1fbW9k ZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNw bGF5X2luZm8ud2lkdGhfbW0gPSA2MjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8u aGVpZ2h0X21tID0gMTEwOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjI7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTEwOwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5 emNhLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKaW5k ZXggODNkZjFhYzQyMTFmLi5mYWNmMWJhYjI1MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKQEAgLTQwMyw3ICs0MDMsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHBhbmVsX2Rlc2MgaW5ub2x1eF9wMDk3cGZnX3BhbmVsX2Rlc2MgPSB7CiAJLnNs ZWVwX21vZGVfZGVsYXkgPSAxMDAsIC8qIFQxNSAqLwogfTsKIAotc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgaW5u b2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW5ub2x1eF9wYW5lbCAq aW5ub2x1eCA9IHRvX2lubm9sdXhfcGFuZWwocGFuZWwpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptID0gaW5ub2x1eC0+ZGVzYy0+bW9kZTsKQEAgLTQxOCwxMyArNDE5LDExIEBA IHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQo cGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3Is IG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0KLQkJ CWlubm9sdXgtPmRlc2MtPnNpemUud2lkdGg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9Ci0JCQlpbm5vbHV4LT5kZXNjLT5zaXplLmhlaWdodDsKLQlwYW5lbC0+ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gaW5ub2x1eC0+ZGVzYy0+YnBjOworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gaW5ub2x1eC0+ZGVzYy0+c2l6ZS53aWR0aDsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBpbm5vbHV4LT5kZXNjLT5zaXpl LmhlaWdodDsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBpbm5vbHV4LT5kZXNjLT5i cGM7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRp LWx0MDcwbWUwNTAwMC5jCmluZGV4IDU2MzY0YTkzZjBiOC4uZTZiNjUwYTY0ZmRiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMKQEAgLTMwMCw3 ICszMDAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9t b2RlID0gewogCQkuZmxhZ3MgPSAwLAogfTsKIAotc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJc3Ry dWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3BhbmVsKHBhbmVsKTsKQEAgLTMxNiwxMCArMzE3 LDEwIEBAIHN0YXRpYyBpbnQgamRpX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2Fk ZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rv ciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSA5 NTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTUxOworCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gOTU7CisJY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uaGVpZ2h0X21tID0gMTUxOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jCmluZGV4IDQ1Zjk2NTU2 ZWM4Yy4uZTZmNTNkNTZkYWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYwpAQCAtMzMzLDcgKzMzMyw4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0g NjAsCiB9OwogCi1zdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQga2luZ2Rpc3BsYXlfcGFuZWxfZ2V0X21vZGVz KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NDcsMTEgKzM0OCwxMSBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0J ZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9w cm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm8ud2lkdGhfbW0gPSAxNDc7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IDE5NjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gODsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDE0NzsKKwljb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxOTY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBj ID0gODsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLWxnLWxiMDM1cTAyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGIw MzVxMDIuYwppbmRleCA3YTEzODVlODM0ZjAuLjdhM2JkNGQ4MGM3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKQEAgLTE0MSw5ICsxNDEsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbGIwMzVxMDJfbW9kZSA9IHsKIAkuaGVpZ2h0 X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IGxiMDM1cTAyX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGIwMzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK IHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmxiMDM1cTAyX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLWxnLWxnNDU3My5jCmluZGV4IGRiNDg2NWE0YzJiOS4uZmM2NTcyYjRlMmY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGc0NTczLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jCkBAIC0yMDksOSArMjA5LDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAkudnJl ZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTIyNyw4ICsyMjcsOCBAQCBzdGF0aWMg aW50IGxnNDU3M19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlw ZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJt X21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjE7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IDEwMzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9 IDYxOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEwMzsKIAogCXJldHVy biAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKaW5kZXggMjQwNWYyNmU1ZDMxLi5m NmQ1OGE2MGU1MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwpAQCAtMTA2LDEwICsx MDYsMTAgQEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfbHZkc19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwp OwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBsdmRzLT5wYW5lbC5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf Y3JlYXRlKGx2ZHMtPnBhbmVsLmRybSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1u ZWMtbmw4MDQ4aGwxMS5jCmluZGV4IGZkNTkzNTMyYWIyMy4uYTZjY2RiMDlhYWNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwpAQCAtMTIzLDkgKzEy Myw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBubDgwNDhfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5l Y3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJm5sODA0OF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYwppbmRleCA2MGNjZWRjZTUzMGMuLjkxZWE0 OWMwNTYxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWst bnQzOTAxNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50Mzkw MTYuYwpAQCAtMjA2LDExICsyMDYsMTEgQEAgc3RhdGljIGludCBudDM5MDE2X2Rpc2FibGUoc3Ry dWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG50 MzkwMTZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKmRybV9wYW5lbCkKK3N0YXRpYyBpbnQg bnQzOTAxNl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsLAorCQkJICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBudDM5MDE2ICpwYW5l bCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKIAljb25zdCBzdHJ1Y3QgbnQzOTAxNl9wYW5lbF9p bmZvICpwYW5lbF9pbmZvID0gcGFuZWwtPnBhbmVsX2luZm87Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGRybV9wYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRy bSwgJnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGludXhpbm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jCmluZGV4IDg3MzhlZjFiNjZkYy4uMmI3 ZTBkZmViYzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYwpAQCAtMTQxLDEwICsxNDEsMTAgQEAgc3RhdGljIGludCBsY2Rfb2xp bnV4aW5vX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBsY2Rfb2xpbnV4aW5vX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKK3N0YXRpYyBpbnQgbGNkX29saW51eGlub19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1 Y3QgbGNkX29saW51eGlubyAqbGNkID0gdG9fbGNkX29saW51eGlubyhwYW5lbCk7Ci0Jc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGxjZC0+cGFuZWwuY29ubmVjdG9yOwogCXN0cnVj dCBsY2Rfb2xpbnV4aW5vX2luZm8gKmxjZF9pbmZvID0gJmxjZC0+ZWVwcm9tLmluZm87CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRybSA9IGxjZC0+cGFuZWwuZHJtOwogCXN0cnVjdCBsY2Rfb2xpbnV4 aW5vX21vZGUgKmxjZF9tb2RlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9y aXNldGVjaC1vdG04MDA5YS5jCmluZGV4IGJmMWY5MjhiMjE1Zi4uNGUxNjA2Yzc5MDcyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCkBA IC0zNDksNyArMzQ5LDggQEAgc3RhdGljIGludCBvdG04MDA5YV9lbmFibGUoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgb3RtODAwOWFfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBvdG04MDA5YV9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NjQsMTAgKzM2NSwxMCBAQCBzdGF0aWMgaW50IG90bTgwMDlhX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUg PSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCWRybV9t b2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVk X2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5m by53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYwppbmRleCAyYjQw OTEzODk5ZDguLmIzZTAxMDI4OGMxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKQEAgLTExMiw3ICsxMTIsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9tb2RlX29zZDEwMXQyNTg3ID0g ewogCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMs CiB9OwogCi1zdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewogCXN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcgPSB0 aV9vc2RfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAt MTI4LDEwICsxMjksMTAgQEAgc3RhdGljIGludCBvc2QxMDF0MjU4N19wYW5lbF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAot CWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVf cHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLndpZHRoX21tID0gMjE3OwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2 eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngx MGYwMzRuMDAuYwppbmRleCA2NjQ2MDUwNzFkMzQuLjE5YTZlYjQ2MzdjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5jCkBA IC0xNjYsNyArMTY2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRl ZmF1bHRfbW9kZSA9IHsKIAkudnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgd3V4Z2Ff bnRfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCB3 dXhnYV9udF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGU7CiAKQEAgLTE4MCwxMCArMTgxLDEwIEBAIHN0YXRpYyBpbnQgd3V4Z2FfbnRf cGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCiAJZHJtX21vZGVfc2V0 X25hbWUobW9kZSk7CiAKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1v ZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5j b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKLQlwYW5lbC0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gMjE3OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEz NjsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYwppbmRleCBhZGYyZGFjZTk2ZTMuLjBiOGNjMTk5 YzhkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBp LXRvdWNoc2NyZWVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJy eXBpLXRvdWNoc2NyZWVuLmMKQEAgLTMwOSw5ICszMDksOSBAQCBzdGF0aWMgaW50IHJwaV90b3Vj aHNjcmVlbl9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51 bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUzMiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4 ODhfMVgyNDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVt LXJtNjcxOTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEu YwppbmRleCBmZDY3ZmM2MTg1YzQuLjEyM2JiNjhjZmNiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYwpAQCAtNDM2LDkgKzQzNiw5IEBAIHN0YXRp YyBpbnQgcmFkX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMg aW50IHJhZF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1f bW9kZV9zZXRfbmFtZShtb2RlKTsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIg fCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5j b25uZWN0b3IsIG1vZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsK IAogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CiAJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDk5NGU4 NTU3MjFmNC4uNjZmYTk3NTMwOGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtcmF5ZGl1bS1ybTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJheWRpdW0tcm02ODIwMC5jCkBAIC0zMzUsNyArMzM1LDggQEAgc3RhdGljIGludCBybTY4MjAw X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcm02ODIwMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKQEAgLTM1MCwxMCArMzUxLDEwIEBAIHN0YXRpYyBpbnQgcm02ODIwMF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7 CiAKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BS RUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1vZGUpOwor CWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25uZWN0 b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CisJY29ubmVj dG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBtb2RlLT53aWR0aF9tbTsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CiAKIAlyZXR1cm4gMTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1 N24wMDkwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAw OTAwLmMKaW5kZXggMzEyMzRiNzlkM2IxLi5iMmQ2MWNhYjNjYWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCkBAIC0yMzAsNyAr MjMwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9k ZSA9IHsKIAkuaGVpZ2h0X21tICAgPSAxMzAsCiB9OwogCi1zdGF0aWMgaW50IGpoMDU3bl9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IGpoMDU3bl9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFu ZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAtMjQ2LDkgKzI0Nyw5IEBA IHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlk cm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3Bs YXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07Ci0JZHJtX21vZGVfcHJvYmVk X2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53 aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdo dF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rvciwg bW9kZSk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1yb25iby1yYjA3MGQzMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJv bmJvLXJiMDcwZDMwLmMKaW5kZXggMTcwYTVjZGEyMWI5Li41N2E0NjJjZTIyMWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCkBAIC0xMjAsOSArMTIw LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tCT0gODUsCiB9OwogCi1zdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcmIwNzBkMzBfcGFu ZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCByYjA3MGQzMF9wYW5lbCAqY3R4ID0gcGFu ZWxfdG9fcmIwNzBkMzBfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCXN0YXRpYyBjb25zdCB1MzIgYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4 XzFYMjQ7CkBAIC0xNDAsOSArMTQwLDkgQEAgc3RhdGljIGludCByYjA3MGQzMF9wYW5lbF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlwZSA9IERSTV9NT0RFX1RZ UEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJtX21vZGVfcHJvYmVkX2Fk ZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJw YyA9IDg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+ d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IG1v ZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSA4OworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwogCWRybV9kaXNwbGF5 X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKIAkJCQkJICZi dXNfZm9ybWF0LCAxKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctbGQ5MDQwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1s ZDkwNDAuYwppbmRleCAyNTA4MDliYTM3YzcuLjNjNTJmMTVmN2ExYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKQEAgLTI2MSw5ICsyNjEsOSBAQCBz dGF0aWMgaW50IGxkOTA0MF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBsZDkw NDAgKmN0eCA9IHBhbmVsX3RvX2xkOTA0MChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZDE2ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYwppbmRleCBlM2EwMzk3ZTk1M2UuLjcxOTM5YWI3NTdiMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQzLDkgKzE0Myw5IEBAIHN0 YXRpYyBpbnQgczZkMTZkMF9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IHM2ZDE2ZDBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQorc3RhdGljIGludCBzNmQxNmQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKKwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFu ZWwtPmRybSwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwppbmRleCA5MzhhYjcyYzU1NDAuLjhlMDIzNmJhNjE0 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hh Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpA QCAtNjQ1LDkgKzY0NSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgczZlM2hhMl9wYW5lbF9kZXNj IHNhbXN1bmdfczZlM2hmMiA9IHsKIAkudHlwZSA9IEhGMl9UWVBFLAogfTsKIAotc3RhdGljIGlu dCBzNmUzaGEyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg czZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRh aW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctczZlNjNqMHgwMy5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZlNjNqMHgwMy5jCmluZGV4IGE2MDYzNWU5MjI2ZC4uYzkzOWQ1YmRlNGYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00 MDAsOSArNDAwLDkgQEAgc3RhdGljIGludCBzNmU2M2oweDAzX2VuYWJsZShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzNmU2M2oweDAzX2dldF9t b2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgczZlNjNqMHgwM19nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwt PmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBk cm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMKaW5kZXggYmEwMWFmMGIxNGZk Li4xZDA5OTA5MmU3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z YW1zdW5nLXM2ZTYzbTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmU2M20wLmMKQEAgLTM2Miw5ICszNjIsOSBAQCBzdGF0aWMgaW50IHM2ZTYzbTBfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHM2 ZTYzbTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzNmU2 M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEw LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKaW5kZXgg ZGJjZWQ2NTAxMjA0Li44YTAyOGQyYmQwZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zYW1zdW5nLXM2ZThhYTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKQEAgLTkyMCw5ICs5MjAsOSBAQCBzdGF0aWMgaW50IHM2 ZThhYTBfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IHM2ZThhYTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3Rh dGljIGludCBzNmU4YWEwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAg ICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgczZlOGFhMCAqY3R4 ID0gcGFuZWxfdG9fczZlOGFhMChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCmluZGV4 IGIzNjE5YmE0NDNiZC4uYjg3ODkzMGIxN2U0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zZWlrby00M3d2ZjFnLmMKQEAgLTU2LDkgKzU2LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnRvX3NlaWtvX3BhbmVsKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQog CXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBzZWlrb19wYW5lbCwgYmFzZSk7CiB9 CiAKLXN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19w YW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+ YmFzZS5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRy bTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVt ID0gMDsKQEAgLTIwOCwxMiArMjA4LDEzIEBAIHN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNl aWtvX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBzZWlrb19wYW5lbCAqcCA9 IHRvX3NlaWtvX3BhbmVsKHBhbmVsKTsKIAogCS8qIGFkZCBoYXJkLWNvZGVkIHBhbmVsIG1vZGVz ICovCi0JcmV0dXJuIHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhwKTsKKwlyZXR1cm4gc2Vp a29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHAsIGNvbm5lY3Rvcik7CiB9CiAKIHN0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X3RpbWluZ3Moc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1scTEwMXIxc3gwMS5jCmluZGV4IDVlMTM2 YzNiYTE4NS4uZTc5N2I3MDA2NjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjc4LDcgKzI3OCw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0gNjAs CiB9OwogCi1zdGF0aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAorCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0yOTIsMTAgKzI5MywxMCBAQCBzdGF0 aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAog CWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+ Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7 CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7Ci0JcGFu ZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEzNjsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXggZWVhYjc5OThjN2RlLi43MTAzYTk0 NWYwZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAz N3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3 ZHcwMS5jCkBAIC0xMDAsOSArMTAwLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlIGxzMDM3djdkdzAxX21vZGUgPSB7CiAJLmhlaWdodF9tbSA9IDc1LAogfTsKIAotc3Rh dGljIGludCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitz dGF0aWMgaW50IGxzMDM3djdkdzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwK KwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwg JmxzMDM3djdkdzAxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHMwNDN0MWxlMDEuYwppbmRleCBiOTYzYmE0YWI1ODkuLjg1YWU2Y2ZmZGJmYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIx MCw3ICsyMTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVs dF9tb2RlID0gewogCS52cmVmcmVzaCA9IDYwLAogfTsKIAotc3RhdGljIGludCBzaGFycF9udF9w YW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNoYXJw X250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIApAQCAtMjI0LDEwICsyMjUsMTAgQEAgc3RhdGljIGludCBzaGFycF9udF9wYW5l bF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFt ZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7 CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNTQ7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLmhlaWdodF9tbSA9IDk1OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRo X21tID0gNTQ7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gOTU7CiAKIAly ZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1w bGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBhNWRmNmQ2 ZGQ0NTUuLmQ2Mjk5ZmU2ZDI3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpA QCAtMTE3LDkgKzExNyw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9f cGFuZWxfc2ltcGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiBjb250YWluZXJf b2YocGFuZWwsIHN0cnVjdCBwYW5lbF9zaW1wbGUsIGJhc2UpOwogfQogCi1zdGF0aWMgdW5zaWdu ZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxl ICpwYW5lbCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF90aW1pbmdzX21v ZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAorCQkJCQkJICAgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g cGFuZWwtPmJhc2UuY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+ YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJdW5zaWduZWQgaW50 IGksIG51bSA9IDA7CkBAIC0xNTAsOSArMTUwLDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBwYW5l bF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJ cmV0dXJuIG51bTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9zaW1wbGVfZ2V0X2Rp c3BsYXlfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCitzdGF0aWMgdW5zaWduZWQg aW50IHBhbmVsX3NpbXBsZV9nZXRfZGlzcGxheV9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCwKKwkJCQkJCSAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5iYXNlLmNvbm5lY3RvcjsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwpAQCAtMTgxLDkgKzE4 MSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsKQogCXJldHVybiBudW07CiB9CiAKLXN0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3Qg cGFuZWxfc2ltcGxlICpwYW5lbCwKKwkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2Uu Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9vbCBoYXNfb3ZlcnJpZGUgPSBwYW5l bC0+b3ZlcnJpZGVfbW9kZS50eXBlOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBpbnQgcGFu ZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkK IAogCS8qIE9ubHkgYWRkIHRpbWluZ3MgaWYgb3ZlcnJpZGUgd2FzIG5vdCB0aGVyZSBvciBmYWls ZWQgdG8gdmFsaWRhdGUgKi8KIAlpZiAobnVtID09IDAgJiYgcGFuZWwtPmRlc2MtPm51bV90aW1p bmdzKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwpOworCQlu dW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwsIGNvbm5lY3Rvcik7CiAK IAkvKgogCSAqIE9ubHkgYWRkIGZpeGVkIG1vZGVzIGlmIHRpbWluZ3Mvb3ZlcnJpZGUgYWRkZWQg bm8gbW9kZS4KQEAgLTIxNCw3ICsyMTQsNyBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRf bm9uX2VkaWRfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJICovCiAJV0FSTl9P TihwYW5lbC0+ZGVzYy0+bnVtX3RpbWluZ3MgJiYgcGFuZWwtPmRlc2MtPm51bV9tb2Rlcyk7CiAJ aWYgKG51bSA9PSAwKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFu ZWwpOworCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFuZWwsIGNvbm5l Y3Rvcik7CiAKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBwYW5lbC0+ZGVzYy0+YnBj OwogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gcGFuZWwtPmRlc2MtPnNpemUu d2lkdGg7CkBAIC0zMDQsMjMgKzMwNCwyNCBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9lbmFi bGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg cGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IHBhbmVsX3NpbXBs ZSAqcCA9IHRvX3BhbmVsX3NpbXBsZShwYW5lbCk7CiAJaW50IG51bSA9IDA7CiAKIAkvKiBwcm9i ZSBFRElEIGlmIGEgRERDIGJ1cyBpcyBhdmFpbGFibGUgKi8KIAlpZiAocC0+ZGRjKSB7Ci0JCXN0 cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKHBhbmVsLT5jb25uZWN0b3IsIHAtPmRkYyk7 Ci0JCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkocGFuZWwtPmNvbm5lY3Rvciwg ZWRpZCk7CisJCXN0cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgcC0+ ZGRjKTsKKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVk aWQpOwogCQlpZiAoZWRpZCkgewotCQkJbnVtICs9IGRybV9hZGRfZWRpZF9tb2RlcyhwYW5lbC0+ Y29ubmVjdG9yLCBlZGlkKTsKKwkJCW51bSArPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9y LCBlZGlkKTsKIAkJCWtmcmVlKGVkaWQpOwogCQl9CiAJfQogCiAJLyogYWRkIGhhcmQtY29kZWQg cGFuZWwgbW9kZXMgKi8KLQludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2Rlcyhw KTsKKwludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhwLCBjb25uZWN0b3Ip OwogCiAJcmV0dXJuIG51bTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRy b25peC1zdDc3MDEuYwppbmRleCBlZTNmMjNmNDU3NTUuLjNlZDNiMWQ2ZDgyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjY0LDcgKzI2 NCw4IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 CiAJc3RydWN0IHN0NzcwMSAqc3Q3NzAxID0gcGFuZWxfdG9fc3Q3NzAxKHBhbmVsKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAxLT5kZXNjLT5tb2Rl OwpAQCAtMjgwLDEwICsyODEsMTAgQEAgc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKQogCX0KIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwotCWRy bV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJv YmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLndpZHRoX21tID0gZGVzY19tb2RlLT53aWR0aF9tbTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGVpZ2h0X21tID0gZGVzY19tb2RlLT5oZWlnaHRfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBkZXNjX21vZGUtPndpZHRoX21tOworCWNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGRlc2NfbW9kZS0+aGVpZ2h0X21tOwogCiAJcmV0 dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9u aXgtc3Q3Nzg5di5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4 OXYuYwppbmRleCAxMDhhODViYjY2NjcuLjgzNmIwMTMzMTUwNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4OXYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCkBAIC0xNzAsOSArMTcwLDkgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAku dnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgc3Q3Nzg5dl9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9y OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1 cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTE4OCw4ICsxODgsOCBAQCBz dGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCW1v ZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVE OwogCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDYxOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lk dGhfbW0gPSA2MTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CiAK IAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1 YWttLmMKaW5kZXggZDYzODdkOGY4OGEzLi44NDFkYzczYzQ0M2QgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCkBAIC01MjEsOSArNTIxLDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGFjeDU2NWFrbV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA0NiwKIH07CiAKLXN0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29u bmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmYWN4NTY1YWttX21vZGUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCBjNDRkNmE2NWMwYWEuLjUy MzAxNzZiZDhlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10 ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0 ZWMxLmMKQEAgLTI4Nyw5ICsyODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgdGQwMjh0dGVjMV9tb2RlID0gewogCS5oZWlnaHRfbW0gPSA1OCwKIH07CiAKLXN0YXRp YyBpbnQgdGQwMjh0dGVjMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IHRkMDI4dHRlYzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJ CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDAy OHR0ZWMxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRw by10ZDA0M210ZWExLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYwppbmRleCA2MjFiNjVmZWVjMDcuLjcxNmY4ZWQxY2M0NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKQEAgLTM0Niw5ICszNDYsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgdGQwNDNtdGVhMV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA1NiwKIH07CiAKLXN0YXRpYyBpbnQgdGQwNDNtdGVhMV9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRkMDQzbXRlYTFfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf ZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKaW5kZXggMWE1NDE4YWUyY2NmLi5lNzRjZDlkNDE4Y2Yg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYwpAQCAtMzg0LDkgKzM4 NCw5IEBAIHN0YXRpYyBpbnQgdHBnMTEwX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK ICAqIHByZXNlbnRzIHRoZSBtb2RlIHRoYXQgaXMgY29uZmlndXJlZCBmb3IgdGhlIHN5c3RlbSB1 bmRlciB1c2UsCiAgKiBhbmQgd2hpY2ggaXMgZGV0ZWN0ZWQgYnkgcmVhZGluZyB0aGUgcmVnaXN0 ZXJzIG9mIHRoZSBkaXNwbGF5LgogICovCi1zdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3Rv cjsKIAlzdHJ1Y3QgdHBnMTEwICp0cGcgPSB0b190cGcxMTAocGFuZWwpOwogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHJ1bHktbnQzNTU5Ny5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5 LW50MzU1OTcuYwppbmRleCAwZmVlYTI0NTZlMTQuLjAxMmNhNjJiZjMwZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5LW50MzU1OTcuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtdHJ1bHktbnQzNTU5Ny5jCkBAIC00NTQsOSArNDU0LDkgQEAg c3RhdGljIGludCB0cnVseV9udDM1NTk3X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0cnVseV9udDM1NTk3X2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdHJ1bHlfbnQzNTU5N19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNv bm5lY3RvcjsKIAlzdHJ1Y3QgdHJ1bHlfbnQzNTU5NyAqY3R4ID0gcGFuZWxfdG9fY3R4KHBhbmVs KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAljb25zdCBzdHJ1Y3QgbnQzNTU5 N19jb25maWcgKmNvbmZpZzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oIGIv aW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKaW5kZXggYzc1MWM5YjE3ZGYwLi5mYjAxYjhkZjhjMmEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9wYW5lbC5oCkBAIC0xMDUsMTQgKzEwNSwxNiBAQCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHsK IAkvKioKIAkgKiBAZ2V0X21vZGVzOgogCSAqCi0JICogQWRkIG1vZGVzIHRvIHRoZSBjb25uZWN0 b3IgdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCisJICogQWRkIHBhbmVsIG1vZGVzIHRv IHRoZSBnaXZlbiBjb25uZWN0b3IgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mCisJICogbW9kZXMg YWRkZWQuCiAJICoKIAkgKiBUaGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeS4KIAkgKgogCSAqIFJl dHVybnMgdGhlIG51bWJlciBvZiBtb2RlcyBhZGRlZCwgLUVPUE5PVFNVUFAgaWYgY2FsbGJhY2sK IAkgKiBpcyBtaXNzaW5nLCAtRUlOVkFMIGlmIHBhbmVsIGlzIE5VTEwuCiAJICovCi0JaW50ICgq Z2V0X21vZGVzKShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CisJaW50ICgqZ2V0X21vZGVzKShz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsKIAogCS8qKgogCSAqIEBnZXRfdGltaW5nczoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxp bmcgbGlzdApMaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 145A9C43603 for ; Sat, 7 Dec 2019 14:06:39 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A6F3421835 for ; Sat, 7 Dec 2019 14:06:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qTSSGdKj"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pw9uU8qe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6F3421835 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lU6s+phq3UQnfgTJv7t4jFrh8+x0jRFN23NmWEL6TeA=; b=qTSSGdKjV5QMuB /JhfTZ3ytQPRBqEwqQVa+Fi5LHqMPlBPURMxQB5Pb9I3n1b1nNaFo18tlAa7oC8848hKRDCtOjmeX VNk8hcXNZTos56ItgICUZ3p9Zi0z0FodZ0OfHE1bgK3bJIiJjOQETD7BmxHyWHCfb3odBQEt+LaYs pZ8muUoMuMSqoxVFVIiLbCcvYfHS5DBH/4nbYeThwbd1F6x0yfIoP/wRkJgIYwOd5Mp3FkYJTH9Bl vfeW3ZiU4K7FrhPvbXvBLectXFlPV0Kzg7SpuqKWhLqhV5ZEISUL9swH97HhSrTOFSVVMgMrrcwCH 8/HvRfrIcpTeTLCfNZAQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1idajE-0000II-JH; Sat, 07 Dec 2019 14:06:36 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idah1-0005Zf-Rc; Sat, 07 Dec 2019 14:04:23 +0000 Received: by mail-lj1-x243.google.com with SMTP id 21so10750930ljr.0; Sat, 07 Dec 2019 06:04:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=Pw9uU8qeJAp8ohytY3XGLh+P4CeKQpO16ye+QVFneSGmEAiwyNngUBtZ8rQrDyT7CR +iC3fJVyy0jX1kbEIWSTs1IXjbcjd2OHH3o6weweZUSp/P97fLLnEVi6FMq4g/HGVIVc zRyRlixn4sVqUvfvRfJGrGbQcTFG3E00U3SHtkv5Isz4y+ef8jblXqn5D3miDZlXM9uK khxIxdOlkATRoi+dqxmOWIS2RGRfEN8Uuh8W3bFyTeMdjQwZiOpqZsLvLGJjgmjSC6sM kBte7/IwXu2Q3/2Wi5zRZy/izSy+xNY3j/dmcYoItgbObw5Sl+bIXCaejiGqZX1F/rv7 gppQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=+bbubY9HJTCHfeW+RD8JJSmO1C6KxxFezRDYrdi2hCA=; b=VfOlHpsiiJ8nSQBsVF5xPx4vyGiu9u91xDR5gsfhSbwbYCnuoqDT7s9kII93gF11m4 9cnooG157uwmw1zzGftmeRZSOuANfUHxdjPtb9wnlP1CILonxtC6juRd8U4ALEQNJVPi fzo2udpToAc3FK6JLS+nqgXTWDcKyHHm98FsRZkD9DItZhK8M8io9g2NRHBCF0fu6uAf MUh+MCA6cXu7higOsJbnGJH+43bSS5CQWfPRzX/IGAJJO76oeD041YtWaov+tOcneR4q /P1FiVwgCv0x6W6cOS6QpWDa/7DLtZtlhfEuxrMqYR96jg5iisZpURKzgw06rZ75mVaL HN/A== X-Gm-Message-State: APjAAAVbr05GBSYf9R5BQTFymZWn+7Tdh54mQ/4z6gZI3DS8lCzjsp9w q9dAMVowU13P3QMsuyHDpuY= X-Google-Smtp-Source: APXvYqzUTfqUVkzLVVdf6rt4gq/jut8/BT7asCuk0HlLy1tuUb3fl3pA/m4JQLsuw4+2PA3icjL41w== X-Received: by 2002:a2e:9855:: with SMTP id e21mr11600738ljj.170.1575727457823; Sat, 07 Dec 2019 06:04:17 -0800 (PST) Received: from saturn.lan (18.158-248-194.customer.lyse.net. [158.248.194.18]) by smtp.gmail.com with ESMTPSA id w17sm5644188lfn.22.2019.12.07.06.04.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:17 -0800 (PST) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Subject: [PATCH v2 05/25] drm/panel: add drm_connector argument to get_modes() Date: Sat, 7 Dec 2019 15:03:33 +0100 Message-Id: <20191207140353.23967-6-sam@ravnborg.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191207140353.23967-1-sam@ravnborg.org> References: <20191207140353.23967-1-sam@ravnborg.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191207_060419_978397_ECC7928F X-CRM114-Status: GOOD ( 13.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Neil Armstrong , David Airlie , =?UTF-8?q?Guido=20G=C3=BCnther?= , Stefan Agner , Andrzej Hajda , Benjamin Gaignard , linux-samsung-soc@vger.kernel.org, Stefan Mavrodiev , linux-rockchip@lists.infradead.org, Tomi Valkeinen , Jagan Teki , Robert Chiras , NXP Linux Team , Jitao Shi , Pengutronix Kernel Team , Maarten Lankhorst , Maxime Ripard , linux-mediatek@lists.infradead.org, Abhinav Kumar , linux-tegra@vger.kernel.org, Sean Paul , linux-arm-kernel@lists.infradead.org, Purism Kernel Team , linux-renesas-soc@vger.kernel.org, Boris Brezillon , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VG9kYXkgdGhlIGJyaWRnZSBjcmVhdGVzIHRoZSBkcm1fY29ubmVjdG9yLCBidXQgdGhhdCBpcyBw bGFubmVkCnRvIGJlIG1vdmVkIHRvIHRoZSBkaXNwbGF5IGRyaXZlcnMuClRvIGZhY2lsaXRhdGUg dGhpcywgdXBkYXRlIGRybV9wYW5lbF9mdW5jcy5nZXRfbW9kZXMoKSB0bwp0YWtlIGRybV9jb25u ZWN0b3IgYXMgYW4gYXJndW1lbnQuCkFsbCBwYW5lbCBkcml2ZXJzIGltcGxlbWVudGluZyBnZXRf bW9kZXMoKSBhcmUgdXBkYXRlZC4KCnYyOgogIC0gZHJvcCBhY2NpZGVudGFsIGNoYW5nZSAoTGF1 cmVudCkKICAtIHVwZGF0ZSBkb2NzIGZvciBnZXRfbW9kZXMgKExhdXJlbnQpCgpTaWduZWQtb2Zm LWJ5OiBTYW0gUmF2bmJvcmcgPHNhbUByYXZuYm9yZy5vcmc+ClJldmlld2VkLWJ5OiBMYXVyZW50 IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ClJldmlld2VkLWJ5 OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+CkNjOiBUaGllcnJ5IFJl ZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgpDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBhcmQgPG1yaXBh cmRAa2VybmVsLm9yZz4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IExpbnVzIFdhbGxlaWogPGxpbnVzLndh bGxlaWpAbGluYXJvLm9yZz4KQ2M6IEphZ2FuIFRla2kgPGphZ2FuQGFtYXJ1bGFzb2x1dGlvbnMu Y29tPgpDYzogU3RlZmFuIE1hdnJvZGlldiA8c3RlZmFuQG9saW1leC5jb20+CkNjOiBSb2JlcnQg Q2hpcmFzIDxyb2JlcnQuY2hpcmFzQG54cC5jb20+CkNjOiAiR3VpZG8gR8O8bnRoZXIiIDxhZ3hA c2lneGNwdS5vcmc+CkNjOiBQdXJpc20gS2VybmVsIFRlYW0gPGtlcm5lbEBwdXJpLnNtPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jICAgfCAgNCArLS0KIC4u Li9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQuYyB8ICA0ICstLQogZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMgIHwgIDQgKy0tCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgfCAgOCArKystLS0KIGRy aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYyB8IDEzICsrKysrLS0t LQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jICAgIHwgIDkgKysr Ky0tLQogLi4uL2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jICAgIHwgMTEg KysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5jICAgICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jICAgICAgIHwg IDggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jICAgICAgICAgICAg fCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIHwg IDQgKy0tCiAuLi4vZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMgICAgfCAg NCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jICB8ICA5 ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8 ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5j ICB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3Jl ZW4uYyB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5 MS5jIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjgy MDAuYyB8ICA5ICsrKystLS0KIC4uLi9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5 MDAuYyAgICB8ICA5ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1y YjA3MGQzMC5jICB8IDEwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLWxkOTA0MC5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZkMTZkMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmUzaGEyLmMgfCAgNCArLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZl NjNqMHgwMy5jICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmct czZlNjNtMC5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1z NmU4YWEwLmMgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxxMTAx cjFzeDAxLmMgICB8ICA5ICsrKystLS0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxz MDM3djdkdzAxLmMgICB8ICA0ICstLQogLi4uL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHMw NDN0MWxlMDEuYyAgIHwgIDkgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNp bXBsZS5jICAgICAgICAgIHwgMjcgKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jIHwgIDkgKysrKy0tLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDggKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc29ueS1hY3g1NjVha20uYyAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwMjh0dGVjMS5jICB8ICA0ICstLQogZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC10cnVseS1udDM1NTk3LmMgICB8ICA0ICstLQogaW5jbHVkZS9kcm0vZHJt X3BhbmVsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KIDQxIGZpbGVzIGNoYW5n ZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmlu ZGV4IGMzMTJkNWViMjE0ZC4uNGNhYTczNGI0ZmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCkBAIC0yNjEs NyArMjYxLDcgQEAgaW50IGRybV9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVu Y3MtPmdldF9tb2RlcykKLQkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsKTsK KwkJcmV0dXJuIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKHBhbmVsLCBwYW5lbC0+Y29ubmVjdG9y KTsKIAogCXJldHVybiAtRU9QTk9UU1VQUDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IGEwNTc0ZGMwM2UxNi4uNDFhYTkxZjYwOTc5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMKQEAgLTI2MCw5ICsy NjAsOSBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyc2F0aWxlX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdmVyc2F0aWxlX3Bh bmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHZlcnNhdGlsZV9wYW5lbCAqdnBhbmVs ID0gdG9fdmVyc2F0aWxlX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmct ZnkwNzAyNGRpMjZhMzBkLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYwppbmRleCA5OGYxODRiODExODcuLjM3ZDZiNzM5MDk1NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBk LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZh MzBkLmMKQEAgLTE2Miw5ICsxNjIsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgZmVpeWFuZ19kZWZhdWx0X21vZGUgPSB7CiAJLnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVELAogfTsKIAotc3RhdGljIGludCBmZWl5YW5n X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgZmVpeWFuZ19n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2ZlaXlh bmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jCmluZGV4IDI0OTU1YmVjMTk1OC4u N2U1MDYyYjA3YWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWls aTkzMjIuYwpAQCAtNjQxLDkgKzY0MSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSBpdHVfcl9idF82NTZfNzIwX21vZGUgPSB7CiAJLmZsYWdzID0gMCwKIH07CiAKLXN0 YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IGlsaTkzMjJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBpbGk5MzIyICppbGkg PSBwYW5lbF90b19pbGk5MzIyKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYwppbmRleCBlODc4OWU0NjBhMTYuLjFjNjdhNjY4 ZDZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5 ODgxYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMu YwpAQCAtMzg3LDkgKzM4Nyw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSBiYW5hbmFwaV9kZWZhdWx0X21vZGUgPSB7CiAJLnZ0b3RhbAkJPSAxMjgwICsgMTAgKyAxMCAr IDIwLAogfTsKIAotc3RhdGljIGludCBpbGk5ODgxY19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5l bCAqcGFuZWwpCitzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0J c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3Ry dWN0IGlsaTk4ODFjICpjdHggPSBwYW5lbF90b19pbGk5ODgxYyhwYW5lbCk7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKQEAgLTQwNyw4ICs0MDcsOCBAQCBzdGF0aWMgaW50IGls aTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAltb2RlLT50eXBlID0g RFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKIAlkcm1fbW9k ZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNw bGF5X2luZm8ud2lkdGhfbW0gPSA2MjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8u aGVpZ2h0X21tID0gMTEwOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjI7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTEwOwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5 emNhLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKaW5k ZXggODNkZjFhYzQyMTFmLi5mYWNmMWJhYjI1MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1pbm5vbHV4LXAwNzl6Y2EuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKQEAgLTQwMyw3ICs0MDMsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHBhbmVsX2Rlc2MgaW5ub2x1eF9wMDk3cGZnX3BhbmVsX2Rlc2MgPSB7CiAJLnNs ZWVwX21vZGVfZGVsYXkgPSAxMDAsIC8qIFQxNSAqLwogfTsKIAotc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgaW5u b2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgaW5ub2x1eF9wYW5lbCAq aW5ub2x1eCA9IHRvX2lubm9sdXhfcGFuZWwocGFuZWwpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptID0gaW5ub2x1eC0+ZGVzYy0+bW9kZTsKQEAgLTQxOCwxMyArNDE5LDExIEBA IHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQo cGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3Is IG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0KLQkJ CWlubm9sdXgtPmRlc2MtPnNpemUud2lkdGg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9Ci0JCQlpbm5vbHV4LT5kZXNjLT5zaXplLmhlaWdodDsKLQlwYW5lbC0+ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gaW5ub2x1eC0+ZGVzYy0+YnBjOworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gaW5ub2x1eC0+ZGVzYy0+c2l6ZS53aWR0aDsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBpbm5vbHV4LT5kZXNjLT5zaXpl LmhlaWdodDsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBpbm5vbHV4LT5kZXNjLT5i cGM7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRp LWx0MDcwbWUwNTAwMC5jCmluZGV4IDU2MzY0YTkzZjBiOC4uZTZiNjUwYTY0ZmRiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMKQEAgLTMwMCw3 ICszMDAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9t b2RlID0gewogCQkuZmxhZ3MgPSAwLAogfTsKIAotc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBqZGlfcGFuZWxfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJc3Ry dWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3BhbmVsKHBhbmVsKTsKQEAgLTMxNiwxMCArMzE3 LDEwIEBAIHN0YXRpYyBpbnQgamRpX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2Fk ZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rv ciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSA5 NTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTUxOworCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gOTU7CisJY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uaGVpZ2h0X21tID0gMTUxOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1rZDA5N2QwNC5jCmluZGV4IDQ1Zjk2NTU2 ZWM4Yy4uZTZmNTNkNTZkYWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQuYwpAQCAtMzMzLDcgKzMzMyw4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0g NjAsCiB9OwogCi1zdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQga2luZ2Rpc3BsYXlfcGFuZWxfZ2V0X21vZGVz KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NDcsMTEgKzM0OCwxMSBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0J ZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9w cm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm8ud2lkdGhfbW0gPSAxNDc7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IDE5NjsKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID0gODsK Kwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDE0NzsKKwljb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxOTY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBj ID0gODsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLWxnLWxiMDM1cTAyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGIw MzVxMDIuYwppbmRleCA3YTEzODVlODM0ZjAuLjdhM2JkNGQ4MGM3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLWxnLWxiMDM1cTAyLmMKQEAgLTE0MSw5ICsxNDEsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbGIwMzVxMDJfbW9kZSA9IHsKIAkuaGVpZ2h0 X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IGxiMDM1cTAyX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGIwMzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK IHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmxiMDM1cTAyX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLWxnLWxnNDU3My5jCmluZGV4IGRiNDg2NWE0YzJiOS4uZmM2NTcyYjRlMmY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGctbGc0NTczLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLWxnLWxnNDU3My5jCkBAIC0yMDksOSArMjA5LDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAkudnJl ZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTIyNyw4ICsyMjcsOCBAQCBzdGF0aWMg aW50IGxnNDU3M19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlw ZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJt X21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNjE7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IDEwMzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9 IDYxOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEwMzsKIAogCXJldHVy biAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKaW5kZXggMjQwNWYyNmU1ZDMxLi5m NmQ1OGE2MGU1MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwpAQCAtMTA2LDEwICsx MDYsMTAgQEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfbHZkc19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwp OwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBsdmRzLT5wYW5lbC5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf Y3JlYXRlKGx2ZHMtPnBhbmVsLmRybSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1u ZWMtbmw4MDQ4aGwxMS5jCmluZGV4IGZkNTkzNTMyYWIyMy4uYTZjY2RiMDlhYWNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbmVjLW5sODA0OGhsMTEuYwpAQCAtMTIzLDkgKzEy Myw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBubDgwNDhfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tID0gNTMsCiB9OwogCi1zdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IG5sODA0OF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5l Y3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJm5sODA0OF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50MzkwMTYuYwppbmRleCA2MGNjZWRjZTUzMGMuLjkxZWE0 OWMwNTYxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWst bnQzOTAxNi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ub3ZhdGVrLW50Mzkw MTYuYwpAQCAtMjA2LDExICsyMDYsMTEgQEAgc3RhdGljIGludCBudDM5MDE2X2Rpc2FibGUoc3Ry dWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG50 MzkwMTZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKmRybV9wYW5lbCkKK3N0YXRpYyBpbnQg bnQzOTAxNl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqZHJtX3BhbmVsLAorCQkJICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBudDM5MDE2ICpwYW5l bCA9IHRvX250MzkwMTYoZHJtX3BhbmVsKTsKIAljb25zdCBzdHJ1Y3QgbnQzOTAxNl9wYW5lbF9p bmZvICpwYW5lbF9pbmZvID0gcGFuZWwtPnBhbmVsX2luZm87Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGRybV9wYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRy bSwgJnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGludXhpbm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jCmluZGV4IDg3MzhlZjFiNjZkYy4uMmI3 ZTBkZmViYzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4 LWxjZC1vbGludXhpbm8uYwpAQCAtMTQxLDEwICsxNDEsMTAgQEAgc3RhdGljIGludCBsY2Rfb2xp bnV4aW5vX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBsY2Rfb2xpbnV4aW5vX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKK3N0YXRpYyBpbnQgbGNkX29saW51eGlub19nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAq cGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1 Y3QgbGNkX29saW51eGlubyAqbGNkID0gdG9fbGNkX29saW51eGlubyhwYW5lbCk7Ci0Jc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGxjZC0+cGFuZWwuY29ubmVjdG9yOwogCXN0cnVj dCBsY2Rfb2xpbnV4aW5vX2luZm8gKmxjZF9pbmZvID0gJmxjZC0+ZWVwcm9tLmluZm87CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRybSA9IGxjZC0+cGFuZWwuZHJtOwogCXN0cnVjdCBsY2Rfb2xpbnV4 aW5vX21vZGUgKmxjZF9tb2RlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9y aXNldGVjaC1vdG04MDA5YS5jCmluZGV4IGJmMWY5MjhiMjE1Zi4uNGUxNjA2Yzc5MDcyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCkBA IC0zNDksNyArMzQ5LDggQEAgc3RhdGljIGludCBvdG04MDA5YV9lbmFibGUoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgb3RtODAwOWFfZ2V0X21v ZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBvdG04MDA5YV9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0z NjQsMTAgKzM2NSwxMCBAQCBzdGF0aWMgaW50IG90bTgwMDlhX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUg PSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCWRybV9t b2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJvYmVk X2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLmhlaWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5m by53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhl aWdodF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYwppbmRleCAyYjQw OTEzODk5ZDguLmIzZTAxMDI4OGMxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMKQEAgLTExMiw3ICsxMTIsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVsdF9tb2RlX29zZDEwMXQyNTg3ID0g ewogCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMs CiB9OwogCi1zdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgb3NkMTAxdDI1ODdfcGFuZWxfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewogCXN0cnVjdCBvc2QxMDF0MjU4N19wYW5lbCAqb3NkMTAxdDI1ODcgPSB0 aV9vc2RfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAt MTI4LDEwICsxMjksMTAgQEAgc3RhdGljIGludCBvc2QxMDF0MjU4N19wYW5lbF9nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAot CWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVf cHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLndpZHRoX21tID0gMjE3OwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7 CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2 eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngx MGYwMzRuMDAuYwppbmRleCA2NjQ2MDUwNzFkMzQuLjE5YTZlYjQ2MzdjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4wMC5jCkBA IC0xNjYsNyArMTY2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRl ZmF1bHRfbW9kZSA9IHsKIAkudnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgd3V4Z2Ff bnRfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCB3 dXhnYV9udF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGU7CiAKQEAgLTE4MCwxMCArMTgxLDEwIEBAIHN0YXRpYyBpbnQgd3V4Z2FfbnRf cGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCiAJZHJtX21vZGVfc2V0 X25hbWUobW9kZSk7CiAKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1v ZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5j b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKLQlwYW5lbC0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gMTM2OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LndpZHRoX21tID0gMjE3OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEz NjsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYwppbmRleCBhZGYyZGFjZTk2ZTMuLjBiOGNjMTk5 YzhkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBp LXRvdWNoc2NyZWVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJy eXBpLXRvdWNoc2NyZWVuLmMKQEAgLTMwOSw5ICszMDksOSBAQCBzdGF0aWMgaW50IHJwaV90b3Vj aHNjcmVlbl9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKKwkJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51 bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUzMiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4 ODhfMVgyNDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVt LXJtNjcxOTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEu YwppbmRleCBmZDY3ZmM2MTg1YzQuLjEyM2JiNjhjZmNiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYwpAQCAtNDM2LDkgKzQzNiw5IEBAIHN0YXRp YyBpbnQgcmFkX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgcmFkX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMg aW50IHJhZF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1f bW9kZV9zZXRfbmFtZShtb2RlKTsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIg fCBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5j b25uZWN0b3IsIG1vZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsK IAogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CiAJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDk5NGU4 NTU3MjFmNC4uNjZmYTk3NTMwOGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtcmF5ZGl1bS1ybTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJheWRpdW0tcm02ODIwMC5jCkBAIC0zMzUsNyArMzM1LDggQEAgc3RhdGljIGludCBybTY4MjAw X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcm02ODIwMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKQEAgLTM1MCwxMCArMzUxLDEwIEBAIHN0YXRpYyBpbnQgcm02ODIwMF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7 CiAKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BS RUZFUlJFRDsKLQlkcm1fbW9kZV9wcm9iZWRfYWRkKHBhbmVsLT5jb25uZWN0b3IsIG1vZGUpOwor CWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25uZWN0 b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CisJY29ubmVj dG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBtb2RlLT53aWR0aF9tbTsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07CiAKIAlyZXR1cm4gMTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1 N24wMDkwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvY2t0ZWNoLWpoMDU3bjAw OTAwLmMKaW5kZXggMzEyMzRiNzlkM2IxLi5iMmQ2MWNhYjNjYWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jCkBAIC0yMzAsNyAr MjMwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9k ZSA9IHsKIAkuaGVpZ2h0X21tICAgPSAxMzAsCiB9OwogCi1zdGF0aWMgaW50IGpoMDU3bl9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IGpoMDU3bl9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFu ZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAtMjQ2LDkgKzI0Nyw5IEBA IHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAlk cm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKIAogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RS SVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCXBhbmVsLT5jb25uZWN0b3ItPmRpc3Bs YXlfaW5mby53aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07Ci0JZHJtX21vZGVfcHJvYmVk X2FkZChwYW5lbC0+Y29ubmVjdG9yLCBtb2RlKTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53 aWR0aF9tbSA9IG1vZGUtPndpZHRoX21tOworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdo dF9tbSA9IG1vZGUtPmhlaWdodF9tbTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3Rvciwg bW9kZSk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1yb25iby1yYjA3MGQzMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJv bmJvLXJiMDcwZDMwLmMKaW5kZXggMTcwYTVjZGEyMWI5Li41N2E0NjJjZTIyMWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jCkBAIC0xMjAsOSArMTIw LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9 IHsKIAkuaGVpZ2h0X21tCT0gODUsCiB9OwogCi1zdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVsX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgcmIwNzBkMzBfcGFu ZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCByYjA3MGQzMF9wYW5lbCAqY3R4ID0gcGFu ZWxfdG9fcmIwNzBkMzBfcGFuZWwocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCXN0YXRpYyBjb25zdCB1MzIgYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4 XzFYMjQ7CkBAIC0xNDAsOSArMTQwLDkgQEAgc3RhdGljIGludCByYjA3MGQzMF9wYW5lbF9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJbW9kZS0+dHlwZSA9IERSTV9NT0RFX1RZ UEVfRFJJVkVSIHwgRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7CiAJZHJtX21vZGVfcHJvYmVkX2Fk ZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJw YyA9IDg7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+ d2lkdGhfbW07Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IG1v ZGUtPmhlaWdodF9tbTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSA4OworCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwogCWRybV9kaXNwbGF5 X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKIAkJCQkJICZi dXNfZm9ybWF0LCAxKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctbGQ5MDQwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1s ZDkwNDAuYwppbmRleCAyNTA4MDliYTM3YzcuLjNjNTJmMTVmN2ExYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctbGQ5MDQwLmMKQEAgLTI2MSw5ICsyNjEsOSBAQCBz dGF0aWMgaW50IGxkOTA0MF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3N0YXRpYyBpbnQgbGQ5MDQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKKwkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9yOwogCXN0cnVjdCBsZDkw NDAgKmN0eCA9IHBhbmVsX3RvX2xkOTA0MChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZDE2ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYwppbmRleCBlM2EwMzk3ZTk1M2UuLjcxOTM5YWI3NTdiMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQzLDkgKzE0Myw5IEBAIHN0 YXRpYyBpbnQgczZkMTZkMF9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IHM2ZDE2ZDBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQorc3RhdGljIGludCBzNmQxNmQwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKKwkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFu ZWwtPmRybSwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwppbmRleCA5MzhhYjcyYzU1NDAuLjhlMDIzNmJhNjE0 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hh Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpA QCAtNjQ1LDkgKzY0NSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgczZlM2hhMl9wYW5lbF9kZXNj IHNhbXN1bmdfczZlM2hmMiA9IHsKIAkudHlwZSA9IEhGMl9UWVBFLAogfTsKIAotc3RhdGljIGlu dCBzNmUzaGEyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg czZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRh aW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNhbXN1bmctczZlNjNqMHgwMy5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1 bmctczZlNjNqMHgwMy5jCmluZGV4IGE2MDYzNWU5MjI2ZC4uYzkzOWQ1YmRlNGYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00 MDAsOSArNDAwLDkgQEAgc3RhdGljIGludCBzNmU2M2oweDAzX2VuYWJsZShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzNmU2M2oweDAzX2dldF9t b2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgczZlNjNqMHgwM19nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwt PmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBk cm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20wLmMKaW5kZXggYmEwMWFmMGIxNGZk Li4xZDA5OTA5MmU3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z YW1zdW5nLXM2ZTYzbTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3Vu Zy1zNmU2M20wLmMKQEAgLTM2Miw5ICszNjIsOSBAQCBzdGF0aWMgaW50IHM2ZTYzbTBfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHM2 ZTYzbTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzNmU2 M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEw LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKaW5kZXgg ZGJjZWQ2NTAxMjA0Li44YTAyOGQyYmQwZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zYW1zdW5nLXM2ZThhYTAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2Ftc3VuZy1zNmU4YWEwLmMKQEAgLTkyMCw5ICs5MjAsOSBAQCBzdGF0aWMgaW50IHM2 ZThhYTBfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IHM2ZThhYTBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQorc3Rh dGljIGludCBzNmU4YWEwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAg ICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgczZlOGFhMCAqY3R4 ID0gcGFuZWxfdG9fczZlOGFhMChwYW5lbCk7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2 ZjFnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCmluZGV4 IGIzNjE5YmE0NDNiZC4uYjg3ODkzMGIxN2U0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zZWlrby00M3d2ZjFnLmMKQEAgLTU2LDkgKzU2LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnRvX3NlaWtvX3BhbmVsKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQog CXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBzZWlrb19wYW5lbCwgYmFzZSk7CiB9 CiAKLXN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19w YW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1 Y3Qgc2Vpa29fcGFuZWwgKnBhbmVsLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+ YmFzZS5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRy bTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVt ID0gMDsKQEAgLTIwOCwxMiArMjA4LDEzIEBAIHN0YXRpYyBpbnQgc2Vpa29fcGFuZWxfZW5hYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNl aWtvX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBzZWlrb19wYW5lbCAqcCA9 IHRvX3NlaWtvX3BhbmVsKHBhbmVsKTsKIAogCS8qIGFkZCBoYXJkLWNvZGVkIHBhbmVsIG1vZGVz ICovCi0JcmV0dXJuIHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhwKTsKKwlyZXR1cm4gc2Vp a29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHAsIGNvbm5lY3Rvcik7CiB9CiAKIHN0YXRpYyBpbnQg c2Vpa29fcGFuZWxfZ2V0X3RpbWluZ3Moc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1scTEwMXIxc3gwMS5jCmluZGV4IDVlMTM2 YzNiYTE4NS4uZTc5N2I3MDA2NjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjc4LDcgKzI3OCw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBkZWZhdWx0X21vZGUgPSB7CiAJLnZyZWZyZXNoID0gNjAs CiB9OwogCi1zdGF0aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKK3N0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAorCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCkBAIC0yOTIsMTAgKzI5MywxMCBAQCBzdGF0 aWMgaW50IHNoYXJwX3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAog CWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCi0JZHJtX21vZGVfcHJvYmVkX2FkZChwYW5lbC0+ Y29ubmVjdG9yLCBtb2RlKTsKKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7 CiAKLQlwYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAyMTc7Ci0JcGFu ZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IDEzNjsKKwljb25uZWN0b3It PmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDIxNzsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW0gPSAxMzY7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXggZWVhYjc5OThjN2RlLi43MTAzYTk0 NWYwZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAz N3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3 ZHcwMS5jCkBAIC0xMDAsOSArMTAwLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlIGxzMDM3djdkdzAxX21vZGUgPSB7CiAJLmhlaWdodF9tbSA9IDc1LAogfTsKIAotc3Rh dGljIGludCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitz dGF0aWMgaW50IGxzMDM3djdkdzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwK KwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKIAogCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwg JmxzMDM3djdkdzAxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHMwNDN0MWxlMDEuYwppbmRleCBiOTYzYmE0YWI1ODkuLjg1YWU2Y2ZmZGJmYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIx MCw3ICsyMTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZGVmYXVs dF9tb2RlID0gewogCS52cmVmcmVzaCA9IDYwLAogfTsKIAotc3RhdGljIGludCBzaGFycF9udF9w YW5lbF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHNoYXJw X250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkgICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIApAQCAtMjI0LDEwICsyMjUsMTAgQEAgc3RhdGljIGludCBzaGFycF9udF9wYW5l bF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAKIAlkcm1fbW9kZV9zZXRfbmFt ZShtb2RlKTsKIAotCWRybV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7 CisJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gNTQ7Ci0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLmhlaWdodF9tbSA9IDk1OworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRo X21tID0gNTQ7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gOTU7CiAKIAly ZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1w bGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBhNWRmNmQ2 ZGQ0NTUuLmQ2Mjk5ZmU2ZDI3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpA QCAtMTE3LDkgKzExNyw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9f cGFuZWxfc2ltcGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCXJldHVybiBjb250YWluZXJf b2YocGFuZWwsIHN0cnVjdCBwYW5lbF9zaW1wbGUsIGJhc2UpOwogfQogCi1zdGF0aWMgdW5zaWdu ZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxl ICpwYW5lbCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF90aW1pbmdzX21v ZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAorCQkJCQkJICAgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g cGFuZWwtPmJhc2UuY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+ YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJdW5zaWduZWQgaW50 IGksIG51bSA9IDA7CkBAIC0xNTAsOSArMTUwLDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBwYW5l bF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJ cmV0dXJuIG51bTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9zaW1wbGVfZ2V0X2Rp c3BsYXlfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCitzdGF0aWMgdW5zaWduZWQg aW50IHBhbmVsX3NpbXBsZV9nZXRfZGlzcGxheV9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCwKKwkJCQkJCSAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5iYXNlLmNvbm5lY3RvcjsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwpAQCAtMTgxLDkgKzE4 MSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsKQogCXJldHVybiBudW07CiB9CiAKLXN0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpw YW5lbCkKK3N0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3Qg cGFuZWxfc2ltcGxlICpwYW5lbCwKKwkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2Uu Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9vbCBoYXNfb3ZlcnJpZGUgPSBwYW5l bC0+b3ZlcnJpZGVfbW9kZS50eXBlOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBpbnQgcGFu ZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkK IAogCS8qIE9ubHkgYWRkIHRpbWluZ3MgaWYgb3ZlcnJpZGUgd2FzIG5vdCB0aGVyZSBvciBmYWls ZWQgdG8gdmFsaWRhdGUgKi8KIAlpZiAobnVtID09IDAgJiYgcGFuZWwtPmRlc2MtPm51bV90aW1p bmdzKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwpOworCQlu dW0gPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMocGFuZWwsIGNvbm5lY3Rvcik7CiAK IAkvKgogCSAqIE9ubHkgYWRkIGZpeGVkIG1vZGVzIGlmIHRpbWluZ3Mvb3ZlcnJpZGUgYWRkZWQg bm8gbW9kZS4KQEAgLTIxNCw3ICsyMTQsNyBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRf bm9uX2VkaWRfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJICovCiAJV0FSTl9P TihwYW5lbC0+ZGVzYy0+bnVtX3RpbWluZ3MgJiYgcGFuZWwtPmRlc2MtPm51bV9tb2Rlcyk7CiAJ aWYgKG51bSA9PSAwKQotCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFu ZWwpOworCQludW0gPSBwYW5lbF9zaW1wbGVfZ2V0X2Rpc3BsYXlfbW9kZXMocGFuZWwsIGNvbm5l Y3Rvcik7CiAKIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSBwYW5lbC0+ZGVzYy0+YnBj OwogCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gcGFuZWwtPmRlc2MtPnNpemUu d2lkdGg7CkBAIC0zMDQsMjMgKzMwNCwyNCBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9lbmFi bGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg cGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBp bnQgcGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCQkg IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IHBhbmVsX3NpbXBs ZSAqcCA9IHRvX3BhbmVsX3NpbXBsZShwYW5lbCk7CiAJaW50IG51bSA9IDA7CiAKIAkvKiBwcm9i ZSBFRElEIGlmIGEgRERDIGJ1cyBpcyBhdmFpbGFibGUgKi8KIAlpZiAocC0+ZGRjKSB7Ci0JCXN0 cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKHBhbmVsLT5jb25uZWN0b3IsIHAtPmRkYyk7 Ci0JCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkocGFuZWwtPmNvbm5lY3Rvciwg ZWRpZCk7CisJCXN0cnVjdCBlZGlkICplZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgcC0+ ZGRjKTsKKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVk aWQpOwogCQlpZiAoZWRpZCkgewotCQkJbnVtICs9IGRybV9hZGRfZWRpZF9tb2RlcyhwYW5lbC0+ Y29ubmVjdG9yLCBlZGlkKTsKKwkJCW51bSArPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9y LCBlZGlkKTsKIAkJCWtmcmVlKGVkaWQpOwogCQl9CiAJfQogCiAJLyogYWRkIGhhcmQtY29kZWQg cGFuZWwgbW9kZXMgKi8KLQludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2Rlcyhw KTsKKwludW0gKz0gcGFuZWxfc2ltcGxlX2dldF9ub25fZWRpZF9tb2RlcyhwLCBjb25uZWN0b3Ip OwogCiAJcmV0dXJuIG51bTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRy b25peC1zdDc3MDEuYwppbmRleCBlZTNmMjNmNDU3NTUuLjNlZDNiMWQ2ZDgyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjY0LDcgKzI2 NCw4IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX3VucHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsKQorc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAorCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7 CiAJc3RydWN0IHN0NzcwMSAqc3Q3NzAxID0gcGFuZWxfdG9fc3Q3NzAxKHBhbmVsKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAxLT5kZXNjLT5tb2Rl OwpAQCAtMjgwLDEwICsyODEsMTAgQEAgc3RhdGljIGludCBzdDc3MDFfZ2V0X21vZGVzKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKQogCX0KIAogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwotCWRy bV9tb2RlX3Byb2JlZF9hZGQocGFuZWwtPmNvbm5lY3RvciwgbW9kZSk7CisJZHJtX21vZGVfcHJv YmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwogCi0JcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLndpZHRoX21tID0gZGVzY19tb2RlLT53aWR0aF9tbTsKLQlwYW5lbC0+Y29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGVpZ2h0X21tID0gZGVzY19tb2RlLT5oZWlnaHRfbW07CisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBkZXNjX21vZGUtPndpZHRoX21tOworCWNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IGRlc2NfbW9kZS0+aGVpZ2h0X21tOwogCiAJcmV0 dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9u aXgtc3Q3Nzg5di5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4 OXYuYwppbmRleCAxMDhhODViYjY2NjcuLjgzNmIwMTMzMTUwNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4OXYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCkBAIC0xNzAsOSArMTcwLDkgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKIAku dnJlZnJlc2ggPSA2MCwKIH07CiAKLXN0YXRpYyBpbnQgc3Q3Nzg5dl9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBk cm1fcGFuZWwgKnBhbmVsLAorCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29ubmVjdG9y OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9tb2RlX2R1 cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKQEAgLTE4OCw4ICsxODgsOCBAQCBz dGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogCW1v ZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVE OwogCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKIAotCXBhbmVsLT5jb25u ZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDYxOwotCXBhbmVsLT5jb25uZWN0b3ItPmRp c3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lk dGhfbW0gPSA2MTsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSAxMDM7CiAK IAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1 YWttLmMKaW5kZXggZDYzODdkOGY4OGEzLi44NDFkYzczYzQ0M2QgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jCkBAIC01MjEsOSArNTIxLDkgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGFjeDU2NWFrbV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA0NiwKIH07CiAKLXN0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgYWN4NTY1YWttX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBwYW5lbC0+Y29u bmVjdG9yOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCiAJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmYWN4NTY1YWttX21vZGUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCBjNDRkNmE2NWMwYWEuLjUy MzAxNzZiZDhlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10 ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0 ZWMxLmMKQEAgLTI4Nyw5ICsyODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgdGQwMjh0dGVjMV9tb2RlID0gewogCS5oZWlnaHRfbW0gPSA1OCwKIH07CiAKLXN0YXRp YyBpbnQgdGQwMjh0dGVjMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0 aWMgaW50IHRkMDI4dHRlYzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJ CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDAy OHR0ZWMxX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRw by10ZDA0M210ZWExLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYwppbmRleCA2MjFiNjVmZWVjMDcuLjcxNmY4ZWQxY2M0NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXRwby10ZDA0M210ZWExLmMKQEAgLTM0Niw5ICszNDYsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgdGQwNDNtdGVhMV9tb2RlID0gewogCS5o ZWlnaHRfbW0gPSA1NiwKIH07CiAKLXN0YXRpYyBpbnQgdGQwNDNtdGVhMV9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRkMDQzbXRlYTFfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiB7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHBhbmVsLT5jb25uZWN0 b3I7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKIAltb2RlID0gZHJtX21vZGVf ZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKaW5kZXggMWE1NDE4YWUyY2NmLi5lNzRjZDlkNDE4Y2Yg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBnMTEwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYwpAQCAtMzg0LDkgKzM4 NCw5IEBAIHN0YXRpYyBpbnQgdHBnMTEwX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK ICAqIHByZXNlbnRzIHRoZSBtb2RlIHRoYXQgaXMgY29uZmlndXJlZCBmb3IgdGhlIHN5c3RlbSB1 bmRlciB1c2UsCiAgKiBhbmQgd2hpY2ggaXMgZGV0ZWN0ZWQgYnkgcmVhZGluZyB0aGUgcmVnaXN0 ZXJzIG9mIHRoZSBkaXNwbGF5LgogICovCi1zdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCitzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwsCisJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3Rv cjsKIAlzdHJ1Y3QgdHBnMTEwICp0cGcgPSB0b190cGcxMTAocGFuZWwpOwogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHJ1bHktbnQzNTU5Ny5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5 LW50MzU1OTcuYwppbmRleCAwZmVlYTI0NTZlMTQuLjAxMmNhNjJiZjMwZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRydWx5LW50MzU1OTcuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtdHJ1bHktbnQzNTU5Ny5jCkBAIC00NTQsOSArNDU0LDkgQEAg c3RhdGljIGludCB0cnVseV9udDM1NTk3X2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB0cnVseV9udDM1NTk3X2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3N0YXRpYyBpbnQgdHJ1bHlfbnQzNTU5N19nZXRfbW9kZXMo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCisJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKIHsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNv bm5lY3RvcjsKIAlzdHJ1Y3QgdHJ1bHlfbnQzNTU5NyAqY3R4ID0gcGFuZWxfdG9fY3R4KHBhbmVs KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAljb25zdCBzdHJ1Y3QgbnQzNTU5 N19jb25maWcgKmNvbmZpZzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oIGIv aW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKaW5kZXggYzc1MWM5YjE3ZGYwLi5mYjAxYjhkZjhjMmEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9wYW5lbC5oCkBAIC0xMDUsMTQgKzEwNSwxNiBAQCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHsK IAkvKioKIAkgKiBAZ2V0X21vZGVzOgogCSAqCi0JICogQWRkIG1vZGVzIHRvIHRoZSBjb25uZWN0 b3IgdGhhdCB0aGUgcGFuZWwgaXMgYXR0YWNoZWQgdG8uCisJICogQWRkIHBhbmVsIG1vZGVzIHRv IHRoZSBnaXZlbiBjb25uZWN0b3IgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mCisJICogbW9kZXMg YWRkZWQuCiAJICoKIAkgKiBUaGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeS4KIAkgKgogCSAqIFJl dHVybnMgdGhlIG51bWJlciBvZiBtb2RlcyBhZGRlZCwgLUVPUE5PVFNVUFAgaWYgY2FsbGJhY2sK IAkgKiBpcyBtaXNzaW5nLCAtRUlOVkFMIGlmIHBhbmVsIGlzIE5VTEwuCiAJICovCi0JaW50ICgq Z2V0X21vZGVzKShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7CisJaW50ICgqZ2V0X21vZGVzKShz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKKwkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsKIAogCS8qKgogCSAqIEBnZXRfdGltaW5nczoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK