From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: [PATCH v2 07/25] drm/panel: drop drm_device from drm_panel Date: Sat, 7 Dec 2019 15:03:35 +0100 Message-ID: <20191207140353.23967-8-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?= , Laurent Pinchart , 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 VGhlIHBhbmVsIGRyaXZlcnMgdXNlZCBkcm1fcGFuZWwuZHJtIGZvciB0d28gcHVycG9zZXM6CjEp IEFyZ3VtZW50IHRvIGRybV9tb2RlX2R1cGxpY2F0ZSgpCjIpIGRybS0+ZGV2IHdhcyB1c2VkIGlu IGVycm9yIG1lc3NhZ2VzCgpUaGUgZmlyc3QgdXNhZ2UgaXMgcmVwbGFjZWQgd2l0aCBkcm1fY29u bmVjdG9yLmRldgotIGRybV9jb25uZWN0b3IgaXMgYWxyZWFkeSBjb25uZWN0ZWQgdG8gYSBkcm1f ZGV2aWNlCiAgYW5kIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0b3IKClRoZSBzZWNvbmQgdXNhZ2Ug aXMgcmVwbGFjZWQgd2l0aCBkcm1fcGFuZWwuZGV2Ci0gdGhpcyBtYWtlcyBkcml2ZXJzIG1vcmUg Y29uc2lzdGVudCBpbiB0aGVpciBkZXYgYXJndW1lbnQKICB1c2VkIGZvciBkZXZfZXJyKCkgYW5k IGZyaWVuZHMKCldpdGggdGhlc2UgcmVwbGFjZW1lbnRzIHRoZXJlIGFyZSBubyBtb3JlIHVzZXMg b2YgZHJtX3BhbmVsLmRybSwKc28gaXQgaXMgcmVtb3ZlZCBmcm9tIHN0cnVjdCBkcm1fcGFuZWwu CldpdGggdGhpcyBjaGFuZ2UgZHJtX3BhbmVsX2F0dGFjaCgpIGFuZCBkcm1fcGFuZWxfZGV0YWNo KCkKbm8gbG9uZ2VyIGhhdmUgYW55IHVzZSBhcyB0aGV5IGFyZSBlbXB0eSBmdW5jdGlvbnMuCgp2 MjoKICAtIGVkaXRvcmlhbCBjb3JyZWN0aW9uIGluIGNoYW5nZWxvZyAoTGF1cmVudCkKClNpZ25l ZC1vZmYtYnk6IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KUmV2aWV3ZWQtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KUmV2aWV3 ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz4KQ2M6IFRoaWVy cnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CkNjOiBMYXVyZW50IFBpbmNoYXJ0 IDxMYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+CkNjOiBTYW0gUmF2bmJvcmcgPHNh bUByYXZuYm9yZy5vcmc+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgpDYzogTWF4aW1lIFJpcGFyZCA8bXJpcGFyZEBrZXJuZWwub3JnPgpD YzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsQGZmd2xsLmNoPgpDYzogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3Jn PgpDYzogSmFnYW4gVGVraSA8amFnYW5AYW1hcnVsYXNvbHV0aW9ucy5jb20+CkNjOiBTdGVmYW4g TWF2cm9kaWV2IDxzdGVmYW5Ab2xpbWV4LmNvbT4KQ2M6IFJvYmVydCBDaGlyYXMgPHJvYmVydC5j aGlyYXNAbnhwLmNvbT4KQ2M6ICJHdWlkbyBHw7xudGhlciIgPGFneEBzaWd4Y3B1Lm9yZz4KQ2M6 IFB1cmlzbSBLZXJuZWwgVGVhbSA8a2VybmVsQHB1cmkuc20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9wYW5lbC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYyAgICAgICB8ICAyICstCiAuLi4vZ3B1 L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5MDcwMjRkaTI2YTMwZC5jIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jICAgICAgfCAxNSArKysrKysr Ky0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5j ICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWpkaS1sdDA3MG1l MDUwMDAuYyAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1r ZDA5N2QwNC5jICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGct bGIwMzVxMDIuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1s Zy1sZzQ1NzMuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtbHZkcy5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1uZWMtbmw4MDQ4aGwxMS5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jICAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9w YW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jICAgIHwgIDUgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1vcmlzZXRlY2gtb3RtODAwOWEuYyAgfCAgMiArLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8ICA0ICsrLS0KIC4uLi9ncHUv ZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYyAgfCAgNCArKy0tCiAuLi4v Z3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jIHwgIDUgKystLS0K IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYyAgICAgfCAgMiAr LQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jICAgICB8ICAy ICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmUzaGEyLmMg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTYzajB4 MDMuYyAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNt MC5jICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYx Zy5jICAgICAgIHwgIDkgKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHExMDFyMXN4MDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDM3djdkdzAxLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHMwNDN0MWxlMDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNpbXBsZS5jICAgICAgICAgICAgICB8IDE1ICsrKysrKy0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jICAgICB8ICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDQgKystLQog ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYyAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL2RybS9kcm1fcGFuZWwuaCAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDcgLS0tLS0tLQogMzggZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgODEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmluZGV4IDNkYWViZjU2ZGM0NC4uOTkzZTQwYzBkNTgy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wYW5lbC5jCkBAIC0xMTQsMTEgKzExNCw2IEBAIEVYUE9SVF9TWU1CT0woZHJt X3BhbmVsX3JlbW92ZSk7CiAgKi8KIGludCBkcm1fcGFuZWxfYXR0YWNoKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCWlmIChwYW5l bC0+ZHJtKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JcGFuZWwtPmRybSA9IGNvbm5lY3Rvci0+ZGV2 OwotCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9hdHRhY2gpOwpAQCAt MTM1LDcgKzEzMCw2IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2F0dGFjaCk7CiAgKi8KIHZv aWQgZHJtX3BhbmVsX2RldGFjaChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlwYW5lbC0+ ZHJtID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2RldGFjaCk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IDQxYWE5MWY2MDk3 OS4uNDE0NDRhNzNjOTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt YXJtLXZlcnNhdGlsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVy c2F0aWxlLmMKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uaGVpZ2h0X21tID0gdnBhbmVsLT5wYW5lbF90eXBlLT5oZWlnaHRfbW07CiAJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gdnBhbmVsLT5wYW5lbF90eXBlLT5idXNfZmxhZ3M7 CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ2cGFuZWwtPnBhbmVs X3R5cGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYs ICZ2cGFuZWwtPnBhbmVsX3R5cGUtPm1vZGUpOwogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwog CW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVS UkVEOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5 MDcwMjRkaTI2YTMwZC5jCmluZGV4IDM3ZDZiNzM5MDk1NC4uMDE1N2QxODQ0ZTNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEz MGQuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgZmVpeWFuZ19nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2Zl aXlhbmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZmVpeWFuZ19kZWZhdWx0X21vZGUpOwor CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZmZWl5YW5nX2RlZmF1 bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9ERVZfRVJST1IoJmN0eC0+ZHNpLT5kZXYs ICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgZmVpeWFuZ19kZWZh dWx0X21vZGUuaGRpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWst aWxpOTMyMi5jCmluZGV4IDdlNTA2MmIwN2FjOC4uZjM5NGQ1M2E3ZGE0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwpAQCAtNjQ1LDYgKzY0NSw3IEBA IHN0YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJ CQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGlsaTkz MjIgKmlsaSA9IHBhbmVsX3RvX2lsaTkzMjIocGFuZWwpOworCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKIApAQCAtNjYzLDI2ICs2NjQsMjYgQEAgc3Rh dGljIGludCBpbGk5MzIyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAogCXN3 aXRjaCAoaWxpLT5pbnB1dCkgewogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzMyMFgy NDA6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzIweDI0 MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzMyMHgyNDBf bW9kZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzM2MFgyNDA6 Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzYweDI0MF9t b2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzM2MHgyNDBfbW9k ZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9QUkdCX1RIUk9VR0g6CiAJY2FzZSBJ TEk5MzIyX0lOUFVUX1BSR0JfQUxJR05FRDoKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShw YW5lbC0+ZHJtLCAmcHJnYl8zMjB4MjQwX21vZGUpOworCQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGRybSwgJnByZ2JfMzIweDI0MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX1lVVl82NDBYMzIwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX1lV Vl83MjBYMzYwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0s ICZ5dXZfNzIweDM2MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZ5 dXZfNzIweDM2MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX0lUVV9SX0JU NjU2XzcyMFgzNjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRy bSwgJml0dV9yX2J0XzY1Nl83MjBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo ZHJtLCAmaXR1X3JfYnRfNjU2XzcyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX0lUVV9SX0JUNjU2XzY0MFgzMjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJml0dV9yX2J0XzY1Nl82NDBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoZHJtLCAmaXR1X3JfYnRfNjU2XzY0MF9tb2RlKTsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJbW9kZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTk4ODFjLmMKaW5kZXggMWM2N2E2NjhkNmJmLi4zMWU1YTRlNjc3NTAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMKQEAgLTM5Myw3ICsz OTMsNyBAQCBzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgaWxpOTg4MWMgKmN0eCA9IHBhbmVsX3RvX2lsaTk4ODFjKHBhbmVsKTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoJmN0eC0+ZHNpLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJYmFuYW5hcGlfZGVmYXVsdF9tb2RlLmhkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jCmluZGV4IGZhY2Yx YmFiMjUzMi4uYjlkZTM3YThhMGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWlubm9sdXgtcDA3OXpjYS5jCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdo dF9lbmFibGUoaW5ub2x1eC0+YmFja2xpZ2h0KTsKIAlpZiAocmV0KSB7Ci0JCURSTV9ERVZfRVJS T1IocGFuZWwtPmRybS0+ZGV2LAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsCiAJCQkgICAg ICAiRmFpbGVkIHRvIGVuYWJsZSBiYWNrbGlnaHQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7 CiAJfQpAQCAtNDEwLDkgKzQxMCw5IEBAIHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm0gPSBpbm5vbHV4LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBtKTsKKwltb2Rl ID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBtKTsKIAlpZiAoIW1vZGUpIHsK LQkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4 JXV4QCV1XG4iLAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgbS0+aGRpc3BsYXksIG0tPnZkaXNwbGF5LCBtLT52 cmVmcmVzaCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCmluZGV4IGU2YjY1MGE2NGZkYi4uNGJmZDhjODc3 YzhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUw NTAwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAw LmMKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW50IGpkaV9wYW5lbF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3Bh bmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmamRpLT5kc2ktPmRldjsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAl dVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3 ZDA0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQu YwppbmRleCBlNmY1M2Q1NmRhZjkuLjM1M2VlNmNhYTAxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKQEAgLTMxMCw3ICszMTAs NyBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdodF9lbmFibGUoa2luZ2Rpc3BsYXktPmJhY2tsaWdo dCk7CiAJaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kcm0tPmRldiwKKwkJRFJN X0RFVl9FUlJPUihwYW5lbC0+ZGV2LAogCQkJICAgICAgIkZhaWxlZCB0byBlbmFibGUgYmFja2xp Z2h0ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTMzOCw5ICszMzgsOSBAQCBz dGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2Rl KSB7Ci0JCURSTV9ERVZfRVJST1IocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2Rl ICV1eCV1eEAldVxuIiwKKwkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVm YXVsdF9tb2RlLnZkaXNwbGF5LAogCQkJICAgICAgZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt bGctbGIwMzVxMDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5j CmluZGV4IDdhM2JkNGQ4MGM3OS4uZTkwZWZlYWJhNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtbGctbGIwMzVxMDIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbGctbGIwMzVxMDIuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQgbGIw MzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ ZHJtLCAmbGIwMzVxMDJfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgJmxiMDM1cTAyX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYwppbmRleCBmYzY1NzJiNGUy ZjkuLjIwMjM1ZmYwYmJjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWxnLWxnNDU3My5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMu YwpAQCAtMjE0LDkgKzIxNCw5IEBAIHN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJ bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7 CiAJaWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LAogCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJcmV0dXJuIC1FTk9N RU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwppbmRleCBmNmQ1OGE2MGU1MTQuLjVlNDBi Njc0YmIxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCkBAIC0xMTIsNyArMTEyLDcg QEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShs dmRzLT5wYW5lbC5kcm0pOworCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5kZXYp OwogCWlmICghbW9kZSkKIAkJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW5lYy1ubDgwNDhobDExLmMKaW5kZXggYTZjY2RiMDlhYWNlLi5jNGY4M2Y2Mzg0ZTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCkBAIC0xMjgs NyArMTI4LDcgQEAgc3RhdGljIGludCBubDgwNDhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmbmw4MDQ4X21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZubDgwNDhfbW9kZSk7CiAJaWYgKCFtb2Rl KQogCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5v dmF0ZWstbnQzOTAxNi5jCmluZGV4IDkxZWE0OWMwNTYxMS4uYTQ3MDgxMGY3ZGJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbm92YXRlay1udDM5MDE2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jCkBAIC0yMTMsNyAr MjEzLDcgQEAgc3RhdGljIGludCBudDM5MDE2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpk cm1fcGFuZWwsCiAJY29uc3Qgc3RydWN0IG50MzkwMTZfcGFuZWxfaW5mbyAqcGFuZWxfaW5mbyA9 IHBhbmVsLT5wYW5lbF9pbmZvOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0J bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRybSwgJnBhbmVsX2luZm8tPmRp c3BsYXlfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwg JnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01F TTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qt b2xpbnV4aW5vLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGlu dXhpbm8uYwppbmRleCAyYjdlMGRmZWJjNWUuLmU1NTNlNTg0Mzk5YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKQEAgLTE0Niw3 ICsxNDYsNiBAQCBzdGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBsY2Rfb2xpbnV4aW5vICpsY2QgPSB0b19sY2Rfb2xp bnV4aW5vKHBhbmVsKTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19pbmZvICpsY2RfaW5mbyA9ICZs Y2QtPmVlcHJvbS5pbmZvOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBsY2QtPnBhbmVsLmRy bTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICpsY2RfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZTsKIAl1MzIgaSwgbnVtID0gMDsKQEAgLTE1NSw5ICsxNTQsOSBAQCBz dGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs LAogCQlsY2RfbW9kZSA9IChzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICopCiAJCQkgICAmbGNk LT5lZXByb20ucmVzZXJ2ZWRbaSAqIHNpemVvZigqbGNkX21vZGUpXTsKIAotCQltb2RlID0gZHJt X21vZGVfY3JlYXRlKGRybSk7CisJCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5k ZXYpOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbGNkX21vZGUtPmhhY3RpdmUsCiAJCQkJbGNkX21vZGUt PnZhY3RpdmUsCiAJCQkJbGNkX21vZGUtPnJlZnJlc2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCmluZGV4IDRlMTYwNmM3OTA3Mi4uYmIw Yzk5MjE3MWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0 ZWNoLW90bTgwMDlhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVj aC1vdG04MDA5YS5jCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIGludCBvdG04MDA5YV9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZh dWx0X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZk ZWZhdWx0X21vZGUpOwogCWlmICghbW9kZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQg bW9kZSAldXgldXhAJXVcbiIsCiAJCQkgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9z ZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9z ZDEwMXQyNTg3LTUzdHMuYwppbmRleCBiM2UwMTAyODhjMTAuLjI3MzRiNDgzNWRmYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK QEAgLTExOCw5ICsxMTgsOSBAQCBzdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwgKm9z ZDEwMXQyNTg3ID0gdGlfb3NkX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgb3NkMTAx dDI1ODctPmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgb3NkMTAxdDI1ODctPmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7Ci0JCWRl dl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK KwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK IAkJCW9zZDEwMXQyNTg3LT5kZWZhdWx0X21vZGUtPmhkaXNwbGF5LAogCQkJb3NkMTAxdDI1ODct PmRlZmF1bHRfbW9kZS0+dmRpc3BsYXksCiAJCQlvc2QxMDF0MjU4Ny0+ZGVmYXVsdF9tb2RlLT52 cmVmcmVzaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNv bmljLXZ2eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25p Yy12dngxMGYwMzRuMDAuYwppbmRleCAxOWE2ZWI0NjM3YzguLjU3OWFjMGQ4NmVhNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4w MC5jCkBAIC0xNzEsOSArMTcxLDkgQEAgc3RhdGljIGludCB3dXhnYV9udF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZhdWx0 X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZkZWZh dWx0X21vZGUpOwogCWlmICghbW9kZSkgewotCQlkZXZfZXJyKHBhbmVsLT5kcm0tPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCisJCWRldl9lcnIocGFuZWwtPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5 LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCiAJCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt cmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1y YXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCmluZGV4IDBiOGNjMTk5YzhkMi4uOGYwNzhiN2RkODll IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91 Y2hzY3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGkt dG91Y2hzY3JlZW4uYwpAQCAtMzEyLDcgKzMxMiw2IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2Ny ZWVuX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBpbnQgcnBpX3RvdWNo c2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAkJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybSA9 IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUz MiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKIApAQCAtMzIwLDkgKzMx OSw5IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAmcnBpX3Rv dWNoc2NyZWVuX21vZGVzW2ldOwogCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJCW1vZGUgPSBkcm1fbW9kZV9k dXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIo ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBh bmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3Bs YXksIG0tPnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCmluZGV4IDEyM2JiNjhj ZmNiNy4uMzEzNjM3ZDUzZDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmF5ZGl1bS1ybTY3MTkxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJh eWRpdW0tcm02NzE5MS5jCkBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGludCByYWRfcGFuZWxf Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRf bW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDY2ZmE5NzUzMDhlYy4uZDZhMDMz MjhlNTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmF5ZGl1bS1y bTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIw MC5jCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9k ZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1 eEAldVxuIiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3Bs YXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgw NTduMDA5MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24w MDkwMC5jCmluZGV4IGIyZDYxY2FiM2NhZC4uM2E0ZjFjMGZjZTg2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYwpAQCAtMjM2LDcg KzIzNiw3IEBAIHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RF Vl9FUlJPUihjdHgtPmRldiwgIkZhaWxlZCB0byBhZGQgbW9kZSAldXgldUAldVxuIiwKIAkJCSAg ICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJvLXJiMDcwZDMwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9uYm8tcmIwNzBkMzAuYwppbmRleCA1N2E0NjJjZTIy MWUuLjc0NmEzYTIyMTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJvbmJvLXJiMDcwZDMwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJv LXJiMDcwZDMwLmMKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVs X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAlzdGF0aWMgY29uc3QgdTMyIGJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1U X1JHQjg4OF8xWDI0OwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUigmY3R4LT5k c2ktPmRldiwKIAkJCSAgICAgICJGYWlsZWQgdG8gYWRkIG1vZGUgIiBEUk1fTU9ERV9GTVQgIlxu IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwppbmRl eCA3MTkzOWFiNzU3YjEuLjIxNTAwNDNkY2Y2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyBpbnQg czZkMTZkMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZzYW1zdW5nX3M2ZDE2ZDBfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsK IAkJRFJNX0VSUk9SKCJiYWQgbW9kZSBvciBmYWlsZWQgdG8gYWRkIG1vZGVcbiIpOwogCQlyZXR1 cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNo YTIuYwppbmRleCA4ZTAyMzZiYTYxNDUuLjM2ZWJkNWE0YWM3YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hhMi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpAQCAtNjUxLDcgKzY1MSw3IEBAIHN0 YXRpYyBpbnQgczZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3Ry dWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRhaW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBh bmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgY3R4LT5kZXNjLT5tb2RlKTsKKwltb2RlID0gZHJtX21v ZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBjdHgtPmRlc2MtPm1vZGUpOwogCWlmICghbW9k ZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQlj dHgtPmRlc2MtPm1vZGUtPmhkaXNwbGF5LCBjdHgtPmRlc2MtPm1vZGUtPnZkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCmluZGV4 IGM5MzlkNWJkZTRmMC4uYTM1NzBlMGE5MGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00MDUsNyArNDA1LDcgQEAgc3RhdGlj IGludCBzNmU2M2oweDAzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9F UlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5o ZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCmluZGV4IDFkMDk5MDkyZTc1NC4uYTVmNzZlYjRmYTI1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCkBA IC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBzNmU2M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxu IiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQzd3ZmMWcuYwppbmRleCBiODc4OTMw YjE3ZTQuLjE4ZTc0NTEwNGFhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNlaWtvLTQzd3ZmMWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vp a28tNDN3dmYxZy5jCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNlaWtv X3BhbmVsICp0b19zZWlrb19wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBp bnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19wYW5lbCAqcGFuZWws CiAJCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRybTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVtID0gMDsKIApAQCAtNzEsOSArNzAsOSBA QCBzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1Y3Qgc2Vpa29fcGFu ZWwgKnBhbmVsLAogCQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwogCiAJCXZpZGVvbW9kZV9mcm9tX3Rp bWluZyhkdCwgJnZtKTsKLQkJbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShkcm0pOworCQltb2RlID0g ZHJtX21vZGVfY3JlYXRlKGNvbm5lY3Rvci0+ZGV2KTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZf ZXJyKGRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAorCQkJZGV2X2Vycihw YW5lbC0+YmFzZS5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVcbiIsCiAJCQkJZHQtPmhh Y3RpdmUudHlwLCBkdC0+dmFjdGl2ZS50eXApOwogCQkJY29udGludWU7CiAJCX0KQEAgLTkyLDkg KzkxLDkgQEAgc3RhdGljIGludCBzZWlrb19wYW5lbF9nZXRfZml4ZWRfbW9kZXMoc3RydWN0IHNl aWtvX3BhbmVsICpwYW5lbCwKIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV9tb2Rl czsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJnBhbmVsLT5k ZXNjLT5tb2Rlc1tpXTsKIAotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJ CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1v ZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVc biIsCisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgl dUAldVxuIiwKIAkJCQltLT5oZGlzcGxheSwgbS0+dmRpc3BsYXksIG0tPnZyZWZyZXNoKTsKIAkJ CWNvbnRpbnVlOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2hhcnAtbHExMDFyMXN4MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1s cTEwMXIxc3gwMS5jCmluZGV4IGU3OTdiNzAwNjYxYS4uMTdkNDA2ZjQ5YzNkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjgzLDkg KzI4Myw5IEBAIHN0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXgg NzEwM2E5NDVmMGU4Li4xY2YzZjAyNDM1YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGlu dCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KHBhbmVsLT5kcm0sICZsczAzN3Y3ZHcwMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGNvbm5lY3Rvci0+ZGV2LCAmbHMwMzd2N2R3MDFfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQly ZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAt bHMwNDN0MWxlMDEuYwppbmRleCA4NWFlNmNmZmRiZmIuLjc5OTVjZjVhOWZjNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIxNSw5 ICsyMTUsOSBAQCBzdGF0aWMgaW50IHNoYXJwX250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKIAkJCQlkZWZhdWx0X21vZGUuaGRpc3BsYXksIGRlZmF1bHRfbW9k ZS52ZGlzcGxheSwKIAkJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01F TTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBkNjI5OWZlNmQyNzYuLmVj NDQ5YzE4YmViYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBs ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpAQCAtMTIwLDcg KzEyMCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9fcGFuZWxfc2lt cGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9z aW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwsCiAJCQkJ CQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAKQEAgLTEyOSw5ICsxMjgsOSBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFu ZWxfc2ltcGxlICpwYW5lbCwKIAkJc3RydWN0IHZpZGVvbW9kZSB2bTsKIAogCQl2aWRlb21vZGVf ZnJvbV90aW1pbmcoZHQsICZ2bSk7Ci0JCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoZHJtKTsKKwkJ bW9kZSA9IGRybV9tb2RlX2NyZWF0ZShjb25uZWN0b3ItPmRldik7CiAJCWlmICghbW9kZSkgewot CQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldVxuIiwKKwkJCWRl dl9lcnIocGFuZWwtPmJhc2UuZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAogCQkJ CWR0LT5oYWN0aXZlLnR5cCwgZHQtPnZhY3RpdmUudHlwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBA IC0xNTMsMTYgKzE1MiwxNSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRf dGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCwKIHN0YXRpYyB1bnNpZ25l ZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUg KnBhbmVsLAogCQkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwogCiAJZm9yIChpID0g MDsgaSA8IHBhbmVsLT5kZXNjLT5udW1fbW9kZXM7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbSA9ICZwYW5lbC0+ZGVzYy0+bW9kZXNbaV07CiAKLQkJbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShkcm0sIG0pOworCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNv bm5lY3Rvci0+ZGV2LCBtKTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZfZXJyKGRybS0+ZGV2LCAi ZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1QCV1XG4iLAorCQkJZGV2X2VycihwYW5lbC0+YmFzZS5k ZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3BsYXksIG0t PnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMTg0LDcgKzE4 Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0 X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQkJCQkgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0g PSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9v bCBoYXNfb3ZlcnJpZGUgPSBwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlOwogCXVuc2lnbmVkIGlu dCBudW0gPSAwOwpAQCAtMTkzLDEyICsxOTAsMTIgQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVf Z2V0X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQlyZXR1cm4g MDsKIAogCWlmIChoYXNfb3ZlcnJpZGUpIHsKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo Y29ubmVjdG9yLT5kZXYsICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CiAJCWlmIChtb2RlKSB7CiAJ CQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAJCQludW0gPSAxOwogCQl9 IGVsc2UgewotCQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJpZGUgbW9k ZVxuIik7CisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJp ZGUgbW9kZVxuIik7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z aXRyb25peC1zdDc3MDEuYwppbmRleCAzZWQzYjFkNmQ4MmQuLmMwOGE4NjVhMmE5MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjcxLDcg KzI3MSw3IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAx LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBkZXNjX21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIGRlc2NfbW9kZSk7CiAJaWYgKCFtb2RlKSB7 CiAJCURSTV9ERVZfRVJST1IoJnN0NzcwMS0+ZHNpLT5kZXYsCiAJCQkgICAgICAiZmFpbGVkIHRv IGFkZCBtb2RlICV1eCV1eEAldVxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2l0cm9uaXgtc3Q3Nzg5di5jCmluZGV4IDgzNmIwMTMzMTUwNS4uZWJlZmUyZjRjMjZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMKQEAgLTE3 NSw5ICsxNzUsOSBAQCBzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMKaW5kZXggODQxZGM3 M2M0NDNkLi41YzRiNmY2ZTVjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jCkBAIC01MjYsNyArNTI2LDcgQEAgc3RhdGljIGludCBhY3g1NjVha21f Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm YWN4NTY1YWttX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5k ZXYsICZhY3g1NjVha21fbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01FTTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCA1MjMw MTc2YmQ4ZTYuLjM3MjUyNTkwYjU0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXRwby10ZDAyOHR0ZWMxLmMKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW50IHRkMDI4dHRl YzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJt LCAmdGQwMjh0dGVjMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rv ci0+ZGV2LCAmdGQwMjh0dGVjMV9tb2RlKTsKIAlpZiAoIW1vZGUpCiAJCXJldHVybiAtRU5PTUVN OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jCmluZGV4 IDcxNmY4ZWQxY2M0NS4uNzVmMWYxZjFiNmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRlYTEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHBvLXRkMDQzbXRlYTEuYwpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbnQgdGQw NDNtdGVhMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29u bmVjdG9yLT5kZXYsICZ0ZDA0M210ZWExX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1F Tk9NRU07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBn MTEwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jCmluZGV4IGU3 NGNkOWQ0MThjZi4uYmVlMjEzZWExYTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtdHBvLXRwZzExMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10 cG8tdHBnMTEwLmMKQEAgLTM5NCw3ICszOTQsNyBAQCBzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVp Z2h0X21tID0gdHBnLT5oZWlnaHQ7CiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdz ID0gdHBnLT5wYW5lbF9tb2RlLT5idXNfZmxhZ3M7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKHBhbmVsLT5kcm0sICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOwogCWRy bV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZF UiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fcGFuZWwuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCmluZGV4IDVjNjJkZmU3M2M2OC4u ZDIxNDJlNDE3MGM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaAorKysgYi9p bmNsdWRlL2RybS9kcm1fcGFuZWwuaApAQCAtMTMyLDEzICsxMzIsNiBAQCBzdHJ1Y3QgZHJtX3Bh bmVsX2Z1bmNzIHsKICAqIHN0cnVjdCBkcm1fcGFuZWwgLSBEUk0gcGFuZWwgb2JqZWN0CiAgKi8K IHN0cnVjdCBkcm1fcGFuZWwgewotCS8qKgotCSAqIEBkcm06Ci0JICoKLQkgKiBEUk0gZGV2aWNl IG93bmluZyB0aGUgcGFuZWwuCi0JICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQogCS8q KgogCSAqIEBkZXY6CiAJICoKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs 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 DF988C43603 for ; Sat, 7 Dec 2019 14:04:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8F05224673 for ; Sat, 7 Dec 2019 14:04:28 +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="sllq2ePX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726464AbfLGOE2 (ORCPT ); Sat, 7 Dec 2019 09:04:28 -0500 Received: from mail-lf1-f66.google.com ([209.85.167.66]:46315 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726397AbfLGOE2 (ORCPT ); Sat, 7 Dec 2019 09:04:28 -0500 Received: by mail-lf1-f66.google.com with SMTP id f15so6583391lfl.13; Sat, 07 Dec 2019 06:04:23 -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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=sllq2ePXGGvjQGN9sJ6Cexg0SaBMhcQyKWuGqbUKfu5i/AsW9wfqVSLH03+bAebhHA NGPvT4RTeDLTrm57YuqVu0LR4pz4GedOlER7XMq1kx/ag5KvZimKe/EuP+OSxsAICImH CiNp5PLXC3lCRPEe8QVI/hzLC3ik3IUhYuism86Iuv4eogkqHGZOFRQd5b0n5d+VPwLC Or2RM3/6xqC4DoWTpz7AaifnUNT8T0LVKWhydoH5tYv4IFQeULxB8gDH92a44WBzEIdF BlEDE6bCZuuqIUfVE3Jf3p2eBrafb+LGNp4jr3/6E398r87FMr1mlGO+dkkIxKdO7IsC 2k6g== 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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=chZBZdDfKBFvsK2jqXPtmS1ZSmCHKdqjyoU4/FnkBXmKpKgVmU7sIYeC6wCe4zqW3G 40ERbz6hb2vnxQQ1GyDqGayzm9BytrpPk31FdBE0mQdet7PpXzqR112luIAj6Iyxzdju JyVQpAwPzYOPP855ZxHZE+jZdNpWk6PeTI5+ZmMeWaEUddOg3Cp53M6uirKjREsB+Z3T 99Zx7Ka6VLXIGW6GITjOkzJigFq9MTFQYLLgSXsym+4QwRmeX/ItGZRwTwv2YEC7uNCj 6IrgtAfoNKb01sfgU6kd0zCJHF5nFnyv4KgYawanLj3uhgLEyE0KU1l2z/XzwdS/a+Yr ywig== X-Gm-Message-State: APjAAAVYh77OU3+EfJlL3fBjjHBjw/13ocbndkUkGYkdXiSNhZkJBL4K 3a6A6I87cqHQZSbILB21inQ= X-Google-Smtp-Source: APXvYqxZY73th5LcErkHNXbzH/+aHgH0/rMHu4A2zTaRLwpzTcNza+wlKndhP+9CbNuVwMShjcPeYQ== X-Received: by 2002:a19:f00d:: with SMTP id p13mr11187974lfc.37.1575727462835; Sat, 07 Dec 2019 06:04:22 -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.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:22 -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 , Laurent Pinchart , Stefan Mavrodiev , Robert Chiras , =?UTF-8?q?Guido=20G=C3=BCnther?= Subject: [PATCH v2 07/25] drm/panel: drop drm_device from drm_panel Date: Sat, 7 Dec 2019 15:03:35 +0100 Message-Id: <20191207140353.23967-8-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 The panel drivers used drm_panel.drm for two purposes: 1) Argument to drm_mode_duplicate() 2) drm->dev was used in error messages The first usage is replaced with drm_connector.dev - drm_connector is already connected to a drm_device and we have a valid connector The second usage is replaced with drm_panel.dev - this makes drivers more consistent in their dev argument used for dev_err() and friends With these replacements there are no more uses of drm_panel.drm, so it is removed from struct drm_panel. With this change drm_panel_attach() and drm_panel_detach() no longer have any use as they are empty functions. v2: - editorial correction in changelog (Laurent) Signed-off-by: Sam Ravnborg Reviewed-by: Laurent Pinchart Reviewed-by: Linus Walleij Cc: Thierry Reding Cc: Laurent Pinchart Cc: Sam Ravnborg 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 | 6 ------ drivers/gpu/drm/panel/panel-arm-versatile.c | 2 +- .../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 2 +- drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 15 ++++++++------- drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 2 +- drivers/gpu/drm/panel/panel-innolux-p079zca.c | 6 +++--- drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 2 +- .../gpu/drm/panel/panel-kingdisplay-kd097d04.c | 6 +++--- drivers/gpu/drm/panel/panel-lg-lb035q02.c | 2 +- drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 ++-- drivers/gpu/drm/panel/panel-lvds.c | 2 +- drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 2 +- drivers/gpu/drm/panel/panel-novatek-nt39016.c | 2 +- .../gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 5 ++--- drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 2 +- .../gpu/drm/panel/panel-osd-osd101t2587-53ts.c | 4 ++-- .../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 4 ++-- .../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 5 ++--- drivers/gpu/drm/panel/panel-raydium-rm67191.c | 2 +- drivers/gpu/drm/panel/panel-raydium-rm68200.c | 2 +- .../gpu/drm/panel/panel-rocktech-jh057n00900.c | 2 +- drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 2 +- drivers/gpu/drm/panel/panel-samsung-s6d16d0.c | 2 +- drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 2 +- drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 2 +- drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 2 +- drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 9 ++++----- drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c | 4 ++-- drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c | 2 +- drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 4 ++-- drivers/gpu/drm/panel/panel-simple.c | 15 ++++++--------- drivers/gpu/drm/panel/panel-sitronix-st7701.c | 2 +- drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 ++-- drivers/gpu/drm/panel/panel-sony-acx565akm.c | 2 +- drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 2 +- drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 2 +- drivers/gpu/drm/panel/panel-tpo-tpg110.c | 2 +- include/drm/drm_panel.h | 7 ------- 38 files changed, 63 insertions(+), 81 deletions(-) diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index 3daebf56dc44..993e40c0d582 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -114,11 +114,6 @@ EXPORT_SYMBOL(drm_panel_remove); */ int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector) { - if (panel->drm) - return -EBUSY; - - panel->drm = connector->dev; - return 0; } EXPORT_SYMBOL(drm_panel_attach); @@ -135,7 +130,6 @@ EXPORT_SYMBOL(drm_panel_attach); */ void drm_panel_detach(struct drm_panel *panel) { - panel->drm = NULL; } EXPORT_SYMBOL(drm_panel_detach); diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c index 41aa91f60979..41444a73c980 100644 --- a/drivers/gpu/drm/panel/panel-arm-versatile.c +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c @@ -270,7 +270,7 @@ static int versatile_panel_get_modes(struct drm_panel *panel, connector->display_info.height_mm = vpanel->panel_type->height_mm; connector->display_info.bus_flags = vpanel->panel_type->bus_flags; - mode = drm_mode_duplicate(panel->drm, &vpanel->panel_type->mode); + mode = drm_mode_duplicate(connector->dev, &vpanel->panel_type->mode); drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c index 37d6b7390954..0157d1844e3e 100644 --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c @@ -168,7 +168,7 @@ static int feiyang_get_modes(struct drm_panel *panel, struct feiyang *ctx = panel_to_feiyang(panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &feiyang_default_mode); + mode = drm_mode_duplicate(connector->dev, &feiyang_default_mode); if (!mode) { DRM_DEV_ERROR(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n", feiyang_default_mode.hdisplay, diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c index 7e5062b07ac8..f394d53a7da4 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c @@ -645,6 +645,7 @@ static int ili9322_get_modes(struct drm_panel *panel, struct drm_connector *connector) { struct ili9322 *ili = panel_to_ili9322(panel); + struct drm_device *drm = connector->dev; struct drm_display_mode *mode; struct drm_display_info *info; @@ -663,26 +664,26 @@ static int ili9322_get_modes(struct drm_panel *panel, switch (ili->input) { case ILI9322_INPUT_SRGB_DUMMY_320X240: - mode = drm_mode_duplicate(panel->drm, &srgb_320x240_mode); + mode = drm_mode_duplicate(drm, &srgb_320x240_mode); break; case ILI9322_INPUT_SRGB_DUMMY_360X240: - mode = drm_mode_duplicate(panel->drm, &srgb_360x240_mode); + mode = drm_mode_duplicate(drm, &srgb_360x240_mode); break; case ILI9322_INPUT_PRGB_THROUGH: case ILI9322_INPUT_PRGB_ALIGNED: - mode = drm_mode_duplicate(panel->drm, &prgb_320x240_mode); + mode = drm_mode_duplicate(drm, &prgb_320x240_mode); break; case ILI9322_INPUT_YUV_640X320_YCBCR: - mode = drm_mode_duplicate(panel->drm, &yuv_640x320_mode); + mode = drm_mode_duplicate(drm, &yuv_640x320_mode); break; case ILI9322_INPUT_YUV_720X360_YCBCR: - mode = drm_mode_duplicate(panel->drm, &yuv_720x360_mode); + mode = drm_mode_duplicate(drm, &yuv_720x360_mode); break; case ILI9322_INPUT_ITU_R_BT656_720X360_YCBCR: - mode = drm_mode_duplicate(panel->drm, &itu_r_bt_656_720_mode); + mode = drm_mode_duplicate(drm, &itu_r_bt_656_720_mode); break; case ILI9322_INPUT_ITU_R_BT656_640X320_YCBCR: - mode = drm_mode_duplicate(panel->drm, &itu_r_bt_656_640_mode); + mode = drm_mode_duplicate(drm, &itu_r_bt_656_640_mode); break; default: mode = NULL; diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c index 1c67a668d6bf..31e5a4e67750 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c @@ -393,7 +393,7 @@ static int ili9881c_get_modes(struct drm_panel *panel, struct ili9881c *ctx = panel_to_ili9881c(panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &bananapi_default_mode); + mode = drm_mode_duplicate(connector->dev, &bananapi_default_mode); if (!mode) { dev_err(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n", bananapi_default_mode.hdisplay, diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c index facf1bab2532..b9de37a8a0c5 100644 --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c @@ -211,7 +211,7 @@ static int innolux_panel_enable(struct drm_panel *panel) ret = backlight_enable(innolux->backlight); if (ret) { - DRM_DEV_ERROR(panel->drm->dev, + DRM_DEV_ERROR(panel->dev, "Failed to enable backlight %d\n", ret); return ret; } @@ -410,9 +410,9 @@ static int innolux_panel_get_modes(struct drm_panel *panel, const struct drm_display_mode *m = innolux->desc->mode; struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, m); + mode = drm_mode_duplicate(connector->dev, m); if (!mode) { - DRM_DEV_ERROR(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n", m->hdisplay, m->vdisplay, m->vrefresh); return -ENOMEM; } diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c index e6b650a64fdb..4bfd8c877c8e 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -307,7 +307,7 @@ static int jdi_panel_get_modes(struct drm_panel *panel, struct jdi_panel *jdi = to_jdi_panel(panel); struct device *dev = &jdi->dsi->dev; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { dev_err(dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c index e6f53d56daf9..353ee6caa01c 100644 --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c @@ -310,7 +310,7 @@ static int kingdisplay_panel_enable(struct drm_panel *panel) ret = backlight_enable(kingdisplay->backlight); if (ret) { - DRM_DEV_ERROR(panel->drm->dev, + DRM_DEV_ERROR(panel->dev, "Failed to enable backlight %d\n", ret); return ret; } @@ -338,9 +338,9 @@ static int kingdisplay_panel_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - DRM_DEV_ERROR(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c index 7a3bd4d80c79..e90efeaba4ad 100644 --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c @@ -146,7 +146,7 @@ static int lb035q02_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &lb035q02_mode); + mode = drm_mode_duplicate(connector->dev, &lb035q02_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c index fc6572b4e2f9..20235ff0bbc4 100644 --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c @@ -214,9 +214,9 @@ static int lg4573_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c index f6d58a60e514..5e40b674bb15 100644 --- a/drivers/gpu/drm/panel/panel-lvds.c +++ b/drivers/gpu/drm/panel/panel-lvds.c @@ -112,7 +112,7 @@ static int panel_lvds_get_modes(struct drm_panel *panel, struct panel_lvds *lvds = to_panel_lvds(panel); struct drm_display_mode *mode; - mode = drm_mode_create(lvds->panel.drm); + mode = drm_mode_create(connector->dev); if (!mode) return 0; diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c index a6ccdb09aace..c4f83f6384e1 100644 --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c @@ -128,7 +128,7 @@ static int nl8048_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &nl8048_mode); + mode = drm_mode_duplicate(connector->dev, &nl8048_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c index 91ea49c05611..a470810f7dbe 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c @@ -213,7 +213,7 @@ static int nt39016_get_modes(struct drm_panel *drm_panel, const struct nt39016_panel_info *panel_info = panel->panel_info; struct drm_display_mode *mode; - mode = drm_mode_duplicate(drm_panel->drm, &panel_info->display_mode); + mode = drm_mode_duplicate(connector->dev, &panel_info->display_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c index 2b7e0dfebc5e..e553e584399b 100644 --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c @@ -146,7 +146,6 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel, { struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel); struct lcd_olinuxino_info *lcd_info = &lcd->eeprom.info; - struct drm_device *drm = lcd->panel.drm; struct lcd_olinuxino_mode *lcd_mode; struct drm_display_mode *mode; u32 i, num = 0; @@ -155,9 +154,9 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel, lcd_mode = (struct lcd_olinuxino_mode *) &lcd->eeprom.reserved[i * sizeof(*lcd_mode)]; - mode = drm_mode_create(drm); + mode = drm_mode_create(connector->dev); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u@%u\n", + dev_err(panel->dev, "failed to add mode %ux%u@%u\n", lcd_mode->hactive, lcd_mode->vactive, lcd_mode->refresh); diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c index 4e1606c79072..bb0c992171e8 100644 --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c @@ -354,7 +354,7 @@ static int otm8009a_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_ERROR("failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c index b3e010288c10..2734b4835dfa 100644 --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c @@ -118,9 +118,9 @@ static int osd101t2587_panel_get_modes(struct drm_panel *panel, struct osd101t2587_panel *osd101t2587 = ti_osd_panel(panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, osd101t2587->default_mode); + mode = drm_mode_duplicate(connector->dev, osd101t2587->default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", osd101t2587->default_mode->hdisplay, osd101t2587->default_mode->vdisplay, osd101t2587->default_mode->vrefresh); diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c index 19a6eb4637c8..579ac0d86ea4 100644 --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c @@ -171,9 +171,9 @@ static int wuxga_nt_panel_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c index 0b8cc199c8d2..8f078b7dd89e 100644 --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c @@ -312,7 +312,6 @@ static int rpi_touchscreen_enable(struct drm_panel *panel) static int rpi_touchscreen_get_modes(struct drm_panel *panel, struct drm_connector *connector) { - struct drm_device *drm = panel->drm; unsigned int i, num = 0; static const u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; @@ -320,9 +319,9 @@ static int rpi_touchscreen_get_modes(struct drm_panel *panel, const struct drm_display_mode *m = &rpi_touchscreen_modes[i]; struct drm_display_mode *mode; - mode = drm_mode_duplicate(drm, m); + mode = drm_mode_duplicate(connector->dev, m); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u@%u\n", + dev_err(panel->dev, "failed to add mode %ux%u@%u\n", m->hdisplay, m->vdisplay, m->vrefresh); continue; } diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c index 123bb68cfcb7..313637d53d28 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -441,7 +441,7 @@ static int rad_panel_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c index 66fa975308ec..d6a03328e594 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c @@ -340,7 +340,7 @@ static int rm68200_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_ERROR("failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c index b2d61cab3cad..3a4f1c0fce86 100644 --- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c +++ b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c @@ -236,7 +236,7 @@ static int jh057n_get_modes(struct drm_panel *panel, struct jh057n *ctx = panel_to_jh057n(panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c index 57a462ce221e..746a3a221100 100644 --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c @@ -127,7 +127,7 @@ static int rb070d30_panel_get_modes(struct drm_panel *panel, struct drm_display_mode *mode; static const u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_DEV_ERROR(&ctx->dsi->dev, "Failed to add mode " DRM_MODE_FMT "\n", diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c index 71939ab757b1..2150043dcf6b 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c @@ -148,7 +148,7 @@ static int s6d16d0_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &samsung_s6d16d0_mode); + mode = drm_mode_duplicate(connector->dev, &samsung_s6d16d0_mode); if (!mode) { DRM_ERROR("bad mode or failed to add mode\n"); return -EINVAL; diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c index 8e0236ba6145..36ebd5a4ac7b 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c @@ -651,7 +651,7 @@ static int s6e3ha2_get_modes(struct drm_panel *panel, struct s6e3ha2 *ctx = container_of(panel, struct s6e3ha2, panel); struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, ctx->desc->mode); + mode = drm_mode_duplicate(connector->dev, ctx->desc->mode); if (!mode) { DRM_ERROR("failed to add mode %ux%ux@%u\n", ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay, diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c index c939d5bde4f0..a3570e0a90a8 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c @@ -405,7 +405,7 @@ static int s6e63j0x03_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_ERROR("failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c index 1d099092e754..a5f76eb4fa25 100644 --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c @@ -367,7 +367,7 @@ static int s6e63m0_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { DRM_ERROR("failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c index b878930b17e4..18e745104aaf 100644 --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c @@ -59,7 +59,6 @@ static inline struct seiko_panel *to_seiko_panel(struct drm_panel *panel) static int seiko_panel_get_fixed_modes(struct seiko_panel *panel, struct drm_connector *connector) { - struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; @@ -71,9 +70,9 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel, struct videomode vm; videomode_from_timing(dt, &vm); - mode = drm_mode_create(drm); + mode = drm_mode_create(connector->dev); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u\n", + dev_err(panel->base.dev, "failed to add mode %ux%u\n", dt->hactive.typ, dt->vactive.typ); continue; } @@ -92,9 +91,9 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel, for (i = 0; i < panel->desc->num_modes; i++) { const struct drm_display_mode *m = &panel->desc->modes[i]; - mode = drm_mode_duplicate(drm, m); + mode = drm_mode_duplicate(connector->dev, m); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u@%u\n", + dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n", m->hdisplay, m->vdisplay, m->vrefresh); continue; } diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c index e797b700661a..17d406f49c3d 100644 --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c @@ -283,9 +283,9 @@ static int sharp_panel_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c index 7103a945f0e8..1cf3f02435c1 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c @@ -105,7 +105,7 @@ static int ls037v7dw01_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &ls037v7dw01_mode); + mode = drm_mode_duplicate(connector->dev, &ls037v7dw01_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c index 85ae6cffdbfb..7995cf5a9fc4 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c @@ -215,9 +215,9 @@ static int sharp_nt_panel_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index d6299fe6d276..ec449c18beba 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -120,7 +120,6 @@ static inline struct panel_simple *to_panel_simple(struct drm_panel *panel) static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel, struct drm_connector *connector) { - struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; @@ -129,9 +128,9 @@ static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel, struct videomode vm; videomode_from_timing(dt, &vm); - mode = drm_mode_create(drm); + mode = drm_mode_create(connector->dev); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u\n", + dev_err(panel->base.dev, "failed to add mode %ux%u\n", dt->hactive.typ, dt->vactive.typ); continue; } @@ -153,16 +152,15 @@ static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel, static unsigned int panel_simple_get_display_modes(struct panel_simple *panel, struct drm_connector *connector) { - struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; unsigned int i, num = 0; for (i = 0; i < panel->desc->num_modes; i++) { const struct drm_display_mode *m = &panel->desc->modes[i]; - mode = drm_mode_duplicate(drm, m); + mode = drm_mode_duplicate(connector->dev, m); if (!mode) { - dev_err(drm->dev, "failed to add mode %ux%u@%u\n", + dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n", m->hdisplay, m->vdisplay, m->vrefresh); continue; } @@ -184,7 +182,6 @@ static unsigned int panel_simple_get_display_modes(struct panel_simple *panel, static int panel_simple_get_non_edid_modes(struct panel_simple *panel, struct drm_connector *connector) { - struct drm_device *drm = panel->base.drm; struct drm_display_mode *mode; bool has_override = panel->override_mode.type; unsigned int num = 0; @@ -193,12 +190,12 @@ static int panel_simple_get_non_edid_modes(struct panel_simple *panel, return 0; if (has_override) { - mode = drm_mode_duplicate(drm, &panel->override_mode); + mode = drm_mode_duplicate(connector->dev, &panel->override_mode); if (mode) { drm_mode_probed_add(connector, mode); num = 1; } else { - dev_err(drm->dev, "failed to add override mode\n"); + dev_err(panel->base.dev, "failed to add override mode\n"); } } diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c index 3ed3b1d6d82d..c08a865a2a93 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@ -271,7 +271,7 @@ static int st7701_get_modes(struct drm_panel *panel, const struct drm_display_mode *desc_mode = st7701->desc->mode; struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, desc_mode); + mode = drm_mode_duplicate(connector->dev, desc_mode); if (!mode) { DRM_DEV_ERROR(&st7701->dsi->dev, "failed to add mode %ux%ux@%u\n", diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c index 836b01331505..ebefe2f4c26b 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c @@ -175,9 +175,9 @@ static int st7789v_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &default_mode); + mode = drm_mode_duplicate(connector->dev, &default_mode); if (!mode) { - dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n", + dev_err(panel->dev, "failed to add mode %ux%ux@%u\n", default_mode.hdisplay, default_mode.vdisplay, default_mode.vrefresh); return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index 841dc73c443d..5c4b6f6e5c2d 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -526,7 +526,7 @@ static int acx565akm_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &acx565akm_mode); + mode = drm_mode_duplicate(connector->dev, &acx565akm_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c index 5230176bd8e6..37252590b541 100644 --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c @@ -292,7 +292,7 @@ static int td028ttec1_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &td028ttec1_mode); + mode = drm_mode_duplicate(connector->dev, &td028ttec1_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c index 716f8ed1cc45..75f1f1f1b6de 100644 --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c @@ -351,7 +351,7 @@ static int td043mtea1_get_modes(struct drm_panel *panel, { struct drm_display_mode *mode; - mode = drm_mode_duplicate(panel->drm, &td043mtea1_mode); + mode = drm_mode_duplicate(connector->dev, &td043mtea1_mode); if (!mode) return -ENOMEM; diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c index e74cd9d418cf..bee213ea1a42 100644 --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c @@ -394,7 +394,7 @@ static int tpg110_get_modes(struct drm_panel *panel, connector->display_info.height_mm = tpg->height; connector->display_info.bus_flags = tpg->panel_mode->bus_flags; - mode = drm_mode_duplicate(panel->drm, &tpg->panel_mode->mode); + mode = drm_mode_duplicate(connector->dev, &tpg->panel_mode->mode); drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 5c62dfe73c68..d2142e4170c8 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -132,13 +132,6 @@ struct drm_panel_funcs { * struct drm_panel - DRM panel object */ struct drm_panel { - /** - * @drm: - * - * DRM device owning the panel. - */ - struct drm_device *drm; - /** * @dev: * -- 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 8DD64C43603 for ; Sat, 7 Dec 2019 14:08:28 +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 E1A7324676 for ; Sat, 7 Dec 2019 14:08:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="uTDTk9FY"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sllq2ePX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E1A7324676 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=Oh+eSbZdGbF9MhWHm9lMbOaPzMsJmwkZVY7ZRhc67Sk=; b=uTDTk9FYDxWoWc eb8x82z4cFQE7KQ4K1ezSU/mh1JKcCjxAXU2Jk/3v9maekIAEh0GpbJr0hDTq+PvRKMov37OXkNfd CDhUYt83ThWnrNLm/MFVUD9evd3dXNyE3L9Vl07tg9tjmzgMflQBtsLrLgVYbq3JqVFL4CQ7bzhyI 6VI6da4UCW5pGvVzmyDrW1LwwmV07Gy7iNiLPbLEpzS2RDb9vb8kLZE8c1xUoyiDFXBi9agMRigyQ d80p5bXYjfviqKN+GgMR0fqnJr/oJXLCjCXnHvHWp5oxQtTBlVZ/ghCrzcgHVkv5ylSya9T5tVpQc hdzdN62+unCuOXK3gASg==; 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 1idakj-0001br-65; Sat, 07 Dec 2019 14:08:09 +0000 Received: from mail-lf1-x142.google.com ([2a00:1450:4864:20::142]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idah7-0005da-3Q; Sat, 07 Dec 2019 14:04:29 +0000 Received: by mail-lf1-x142.google.com with SMTP id 9so7397439lfq.10; Sat, 07 Dec 2019 06:04:24 -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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=sllq2ePXGGvjQGN9sJ6Cexg0SaBMhcQyKWuGqbUKfu5i/AsW9wfqVSLH03+bAebhHA NGPvT4RTeDLTrm57YuqVu0LR4pz4GedOlER7XMq1kx/ag5KvZimKe/EuP+OSxsAICImH CiNp5PLXC3lCRPEe8QVI/hzLC3ik3IUhYuism86Iuv4eogkqHGZOFRQd5b0n5d+VPwLC Or2RM3/6xqC4DoWTpz7AaifnUNT8T0LVKWhydoH5tYv4IFQeULxB8gDH92a44WBzEIdF BlEDE6bCZuuqIUfVE3Jf3p2eBrafb+LGNp4jr3/6E398r87FMr1mlGO+dkkIxKdO7IsC 2k6g== 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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=qA2luY0jC9HtsUqqzGK8DuW1ueB8UKCu9zRoCxa3ZQGqp4+LnhcaTmzdolUnSIb/wK 3AoM/ZpvBa26xKUzu6LxNqMEBNlsjhPkvnmmVTnwmyJ65UOqwSy6Tnl0hE1ymLkOE0+Z frXajTgqUP/JgrD4ELw1NRDmKrdWMEvhTWjf2NxIc+Y6wyQYsitFHLM2YFItjN+IO70R F1b9C3FGTMB7P3slcy5QnJbKAu0LXlnb6dmagBSp4oB4mgp/Qab0JnNLY5CecEifsf9W XWKFp9RkVwshMJJjBwjVPfnG5d7TbWu97Xg9ivNY88TFfPtEa8uL9ZypcTrna4C1QObR Ra6Q== X-Gm-Message-State: APjAAAU7xsLcnUYn0JOu7qJGWAQV0Fc7XZjHs9h8zolcqsJMeDeG4SZM 29W7cq1eOomSLxtPeLn3Cz0= X-Google-Smtp-Source: APXvYqxZY73th5LcErkHNXbzH/+aHgH0/rMHu4A2zTaRLwpzTcNza+wlKndhP+9CbNuVwMShjcPeYQ== X-Received: by 2002:a19:f00d:: with SMTP id p13mr11187974lfc.37.1575727462835; Sat, 07 Dec 2019 06:04:22 -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.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:22 -0800 (PST) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Subject: [PATCH v2 07/25] drm/panel: drop drm_device from drm_panel Date: Sat, 7 Dec 2019 15:03:35 +0100 Message-Id: <20191207140353.23967-8-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_060425_279887_FA275B5A X-CRM114-Status: GOOD ( 15.68 ) 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 , Laurent Pinchart , 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 VGhlIHBhbmVsIGRyaXZlcnMgdXNlZCBkcm1fcGFuZWwuZHJtIGZvciB0d28gcHVycG9zZXM6CjEp IEFyZ3VtZW50IHRvIGRybV9tb2RlX2R1cGxpY2F0ZSgpCjIpIGRybS0+ZGV2IHdhcyB1c2VkIGlu IGVycm9yIG1lc3NhZ2VzCgpUaGUgZmlyc3QgdXNhZ2UgaXMgcmVwbGFjZWQgd2l0aCBkcm1fY29u bmVjdG9yLmRldgotIGRybV9jb25uZWN0b3IgaXMgYWxyZWFkeSBjb25uZWN0ZWQgdG8gYSBkcm1f ZGV2aWNlCiAgYW5kIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0b3IKClRoZSBzZWNvbmQgdXNhZ2Ug aXMgcmVwbGFjZWQgd2l0aCBkcm1fcGFuZWwuZGV2Ci0gdGhpcyBtYWtlcyBkcml2ZXJzIG1vcmUg Y29uc2lzdGVudCBpbiB0aGVpciBkZXYgYXJndW1lbnQKICB1c2VkIGZvciBkZXZfZXJyKCkgYW5k IGZyaWVuZHMKCldpdGggdGhlc2UgcmVwbGFjZW1lbnRzIHRoZXJlIGFyZSBubyBtb3JlIHVzZXMg b2YgZHJtX3BhbmVsLmRybSwKc28gaXQgaXMgcmVtb3ZlZCBmcm9tIHN0cnVjdCBkcm1fcGFuZWwu CldpdGggdGhpcyBjaGFuZ2UgZHJtX3BhbmVsX2F0dGFjaCgpIGFuZCBkcm1fcGFuZWxfZGV0YWNo KCkKbm8gbG9uZ2VyIGhhdmUgYW55IHVzZSBhcyB0aGV5IGFyZSBlbXB0eSBmdW5jdGlvbnMuCgp2 MjoKICAtIGVkaXRvcmlhbCBjb3JyZWN0aW9uIGluIGNoYW5nZWxvZyAoTGF1cmVudCkKClNpZ25l ZC1vZmYtYnk6IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KUmV2aWV3ZWQtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KUmV2aWV3 ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz4KQ2M6IFRoaWVy cnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CkNjOiBMYXVyZW50IFBpbmNoYXJ0 IDxMYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+CkNjOiBTYW0gUmF2bmJvcmcgPHNh bUByYXZuYm9yZy5vcmc+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgpDYzogTWF4aW1lIFJpcGFyZCA8bXJpcGFyZEBrZXJuZWwub3JnPgpD YzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsQGZmd2xsLmNoPgpDYzogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3Jn PgpDYzogSmFnYW4gVGVraSA8amFnYW5AYW1hcnVsYXNvbHV0aW9ucy5jb20+CkNjOiBTdGVmYW4g TWF2cm9kaWV2IDxzdGVmYW5Ab2xpbWV4LmNvbT4KQ2M6IFJvYmVydCBDaGlyYXMgPHJvYmVydC5j aGlyYXNAbnhwLmNvbT4KQ2M6ICJHdWlkbyBHw7xudGhlciIgPGFneEBzaWd4Y3B1Lm9yZz4KQ2M6 IFB1cmlzbSBLZXJuZWwgVGVhbSA8a2VybmVsQHB1cmkuc20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9wYW5lbC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYyAgICAgICB8ICAyICstCiAuLi4vZ3B1 L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5MDcwMjRkaTI2YTMwZC5jIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jICAgICAgfCAxNSArKysrKysr Ky0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5j ICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWpkaS1sdDA3MG1l MDUwMDAuYyAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1r ZDA5N2QwNC5jICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGct bGIwMzVxMDIuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1s Zy1sZzQ1NzMuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtbHZkcy5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1uZWMtbmw4MDQ4aGwxMS5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jICAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9w YW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jICAgIHwgIDUgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1vcmlzZXRlY2gtb3RtODAwOWEuYyAgfCAgMiArLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8ICA0ICsrLS0KIC4uLi9ncHUv ZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYyAgfCAgNCArKy0tCiAuLi4v Z3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jIHwgIDUgKystLS0K IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYyAgICAgfCAgMiAr LQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jICAgICB8ICAy ICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmUzaGEyLmMg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTYzajB4 MDMuYyAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNt MC5jICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYx Zy5jICAgICAgIHwgIDkgKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHExMDFyMXN4MDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDM3djdkdzAxLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHMwNDN0MWxlMDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNpbXBsZS5jICAgICAgICAgICAgICB8IDE1ICsrKysrKy0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jICAgICB8ICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDQgKystLQog ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYyAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL2RybS9kcm1fcGFuZWwuaCAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDcgLS0tLS0tLQogMzggZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgODEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmluZGV4IDNkYWViZjU2ZGM0NC4uOTkzZTQwYzBkNTgy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wYW5lbC5jCkBAIC0xMTQsMTEgKzExNCw2IEBAIEVYUE9SVF9TWU1CT0woZHJt X3BhbmVsX3JlbW92ZSk7CiAgKi8KIGludCBkcm1fcGFuZWxfYXR0YWNoKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCWlmIChwYW5l bC0+ZHJtKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JcGFuZWwtPmRybSA9IGNvbm5lY3Rvci0+ZGV2 OwotCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9hdHRhY2gpOwpAQCAt MTM1LDcgKzEzMCw2IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2F0dGFjaCk7CiAgKi8KIHZv aWQgZHJtX3BhbmVsX2RldGFjaChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlwYW5lbC0+ ZHJtID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2RldGFjaCk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IDQxYWE5MWY2MDk3 OS4uNDE0NDRhNzNjOTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt YXJtLXZlcnNhdGlsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVy c2F0aWxlLmMKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uaGVpZ2h0X21tID0gdnBhbmVsLT5wYW5lbF90eXBlLT5oZWlnaHRfbW07CiAJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gdnBhbmVsLT5wYW5lbF90eXBlLT5idXNfZmxhZ3M7 CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ2cGFuZWwtPnBhbmVs X3R5cGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYs ICZ2cGFuZWwtPnBhbmVsX3R5cGUtPm1vZGUpOwogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwog CW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVS UkVEOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5 MDcwMjRkaTI2YTMwZC5jCmluZGV4IDM3ZDZiNzM5MDk1NC4uMDE1N2QxODQ0ZTNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEz MGQuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgZmVpeWFuZ19nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2Zl aXlhbmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZmVpeWFuZ19kZWZhdWx0X21vZGUpOwor CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZmZWl5YW5nX2RlZmF1 bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9ERVZfRVJST1IoJmN0eC0+ZHNpLT5kZXYs ICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgZmVpeWFuZ19kZWZh dWx0X21vZGUuaGRpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWst aWxpOTMyMi5jCmluZGV4IDdlNTA2MmIwN2FjOC4uZjM5NGQ1M2E3ZGE0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwpAQCAtNjQ1LDYgKzY0NSw3IEBA IHN0YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJ CQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGlsaTkz MjIgKmlsaSA9IHBhbmVsX3RvX2lsaTkzMjIocGFuZWwpOworCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKIApAQCAtNjYzLDI2ICs2NjQsMjYgQEAgc3Rh dGljIGludCBpbGk5MzIyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAogCXN3 aXRjaCAoaWxpLT5pbnB1dCkgewogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzMyMFgy NDA6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzIweDI0 MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzMyMHgyNDBf bW9kZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzM2MFgyNDA6 Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzYweDI0MF9t b2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzM2MHgyNDBfbW9k ZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9QUkdCX1RIUk9VR0g6CiAJY2FzZSBJ TEk5MzIyX0lOUFVUX1BSR0JfQUxJR05FRDoKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShw YW5lbC0+ZHJtLCAmcHJnYl8zMjB4MjQwX21vZGUpOworCQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGRybSwgJnByZ2JfMzIweDI0MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX1lVVl82NDBYMzIwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX1lV Vl83MjBYMzYwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0s ICZ5dXZfNzIweDM2MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZ5 dXZfNzIweDM2MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX0lUVV9SX0JU NjU2XzcyMFgzNjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRy bSwgJml0dV9yX2J0XzY1Nl83MjBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo ZHJtLCAmaXR1X3JfYnRfNjU2XzcyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX0lUVV9SX0JUNjU2XzY0MFgzMjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJml0dV9yX2J0XzY1Nl82NDBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoZHJtLCAmaXR1X3JfYnRfNjU2XzY0MF9tb2RlKTsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJbW9kZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTk4ODFjLmMKaW5kZXggMWM2N2E2NjhkNmJmLi4zMWU1YTRlNjc3NTAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMKQEAgLTM5Myw3ICsz OTMsNyBAQCBzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgaWxpOTg4MWMgKmN0eCA9IHBhbmVsX3RvX2lsaTk4ODFjKHBhbmVsKTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoJmN0eC0+ZHNpLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJYmFuYW5hcGlfZGVmYXVsdF9tb2RlLmhkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jCmluZGV4IGZhY2Yx YmFiMjUzMi4uYjlkZTM3YThhMGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWlubm9sdXgtcDA3OXpjYS5jCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdo dF9lbmFibGUoaW5ub2x1eC0+YmFja2xpZ2h0KTsKIAlpZiAocmV0KSB7Ci0JCURSTV9ERVZfRVJS T1IocGFuZWwtPmRybS0+ZGV2LAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsCiAJCQkgICAg ICAiRmFpbGVkIHRvIGVuYWJsZSBiYWNrbGlnaHQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7 CiAJfQpAQCAtNDEwLDkgKzQxMCw5IEBAIHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm0gPSBpbm5vbHV4LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBtKTsKKwltb2Rl ID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBtKTsKIAlpZiAoIW1vZGUpIHsK LQkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4 JXV4QCV1XG4iLAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgbS0+aGRpc3BsYXksIG0tPnZkaXNwbGF5LCBtLT52 cmVmcmVzaCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCmluZGV4IGU2YjY1MGE2NGZkYi4uNGJmZDhjODc3 YzhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUw NTAwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAw LmMKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW50IGpkaV9wYW5lbF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3Bh bmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmamRpLT5kc2ktPmRldjsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAl dVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3 ZDA0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQu YwppbmRleCBlNmY1M2Q1NmRhZjkuLjM1M2VlNmNhYTAxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKQEAgLTMxMCw3ICszMTAs NyBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdodF9lbmFibGUoa2luZ2Rpc3BsYXktPmJhY2tsaWdo dCk7CiAJaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kcm0tPmRldiwKKwkJRFJN X0RFVl9FUlJPUihwYW5lbC0+ZGV2LAogCQkJICAgICAgIkZhaWxlZCB0byBlbmFibGUgYmFja2xp Z2h0ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTMzOCw5ICszMzgsOSBAQCBz dGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2Rl KSB7Ci0JCURSTV9ERVZfRVJST1IocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2Rl ICV1eCV1eEAldVxuIiwKKwkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVm YXVsdF9tb2RlLnZkaXNwbGF5LAogCQkJICAgICAgZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt bGctbGIwMzVxMDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5j CmluZGV4IDdhM2JkNGQ4MGM3OS4uZTkwZWZlYWJhNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtbGctbGIwMzVxMDIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbGctbGIwMzVxMDIuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQgbGIw MzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ ZHJtLCAmbGIwMzVxMDJfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgJmxiMDM1cTAyX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYwppbmRleCBmYzY1NzJiNGUy ZjkuLjIwMjM1ZmYwYmJjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWxnLWxnNDU3My5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMu YwpAQCAtMjE0LDkgKzIxNCw5IEBAIHN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJ bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7 CiAJaWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LAogCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJcmV0dXJuIC1FTk9N RU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwppbmRleCBmNmQ1OGE2MGU1MTQuLjVlNDBi Njc0YmIxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCkBAIC0xMTIsNyArMTEyLDcg QEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShs dmRzLT5wYW5lbC5kcm0pOworCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5kZXYp OwogCWlmICghbW9kZSkKIAkJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW5lYy1ubDgwNDhobDExLmMKaW5kZXggYTZjY2RiMDlhYWNlLi5jNGY4M2Y2Mzg0ZTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCkBAIC0xMjgs NyArMTI4LDcgQEAgc3RhdGljIGludCBubDgwNDhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmbmw4MDQ4X21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZubDgwNDhfbW9kZSk7CiAJaWYgKCFtb2Rl KQogCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5v dmF0ZWstbnQzOTAxNi5jCmluZGV4IDkxZWE0OWMwNTYxMS4uYTQ3MDgxMGY3ZGJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbm92YXRlay1udDM5MDE2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jCkBAIC0yMTMsNyAr MjEzLDcgQEAgc3RhdGljIGludCBudDM5MDE2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpk cm1fcGFuZWwsCiAJY29uc3Qgc3RydWN0IG50MzkwMTZfcGFuZWxfaW5mbyAqcGFuZWxfaW5mbyA9 IHBhbmVsLT5wYW5lbF9pbmZvOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0J bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRybSwgJnBhbmVsX2luZm8tPmRp c3BsYXlfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwg JnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01F TTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qt b2xpbnV4aW5vLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGlu dXhpbm8uYwppbmRleCAyYjdlMGRmZWJjNWUuLmU1NTNlNTg0Mzk5YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKQEAgLTE0Niw3 ICsxNDYsNiBAQCBzdGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBsY2Rfb2xpbnV4aW5vICpsY2QgPSB0b19sY2Rfb2xp bnV4aW5vKHBhbmVsKTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19pbmZvICpsY2RfaW5mbyA9ICZs Y2QtPmVlcHJvbS5pbmZvOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBsY2QtPnBhbmVsLmRy bTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICpsY2RfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZTsKIAl1MzIgaSwgbnVtID0gMDsKQEAgLTE1NSw5ICsxNTQsOSBAQCBz dGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs LAogCQlsY2RfbW9kZSA9IChzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICopCiAJCQkgICAmbGNk LT5lZXByb20ucmVzZXJ2ZWRbaSAqIHNpemVvZigqbGNkX21vZGUpXTsKIAotCQltb2RlID0gZHJt X21vZGVfY3JlYXRlKGRybSk7CisJCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5k ZXYpOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbGNkX21vZGUtPmhhY3RpdmUsCiAJCQkJbGNkX21vZGUt PnZhY3RpdmUsCiAJCQkJbGNkX21vZGUtPnJlZnJlc2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCmluZGV4IDRlMTYwNmM3OTA3Mi4uYmIw Yzk5MjE3MWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0 ZWNoLW90bTgwMDlhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVj aC1vdG04MDA5YS5jCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIGludCBvdG04MDA5YV9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZh dWx0X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZk ZWZhdWx0X21vZGUpOwogCWlmICghbW9kZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQg bW9kZSAldXgldXhAJXVcbiIsCiAJCQkgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9z ZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9z ZDEwMXQyNTg3LTUzdHMuYwppbmRleCBiM2UwMTAyODhjMTAuLjI3MzRiNDgzNWRmYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK QEAgLTExOCw5ICsxMTgsOSBAQCBzdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwgKm9z ZDEwMXQyNTg3ID0gdGlfb3NkX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgb3NkMTAx dDI1ODctPmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgb3NkMTAxdDI1ODctPmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7Ci0JCWRl dl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK KwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK IAkJCW9zZDEwMXQyNTg3LT5kZWZhdWx0X21vZGUtPmhkaXNwbGF5LAogCQkJb3NkMTAxdDI1ODct PmRlZmF1bHRfbW9kZS0+dmRpc3BsYXksCiAJCQlvc2QxMDF0MjU4Ny0+ZGVmYXVsdF9tb2RlLT52 cmVmcmVzaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNv bmljLXZ2eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25p Yy12dngxMGYwMzRuMDAuYwppbmRleCAxOWE2ZWI0NjM3YzguLjU3OWFjMGQ4NmVhNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4w MC5jCkBAIC0xNzEsOSArMTcxLDkgQEAgc3RhdGljIGludCB3dXhnYV9udF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZhdWx0 X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZkZWZh dWx0X21vZGUpOwogCWlmICghbW9kZSkgewotCQlkZXZfZXJyKHBhbmVsLT5kcm0tPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCisJCWRldl9lcnIocGFuZWwtPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5 LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCiAJCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt cmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1y YXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCmluZGV4IDBiOGNjMTk5YzhkMi4uOGYwNzhiN2RkODll IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91 Y2hzY3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGkt dG91Y2hzY3JlZW4uYwpAQCAtMzEyLDcgKzMxMiw2IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2Ny ZWVuX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBpbnQgcnBpX3RvdWNo c2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAkJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybSA9 IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUz MiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKIApAQCAtMzIwLDkgKzMx OSw5IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAmcnBpX3Rv dWNoc2NyZWVuX21vZGVzW2ldOwogCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJCW1vZGUgPSBkcm1fbW9kZV9k dXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIo ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBh bmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3Bs YXksIG0tPnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCmluZGV4IDEyM2JiNjhj ZmNiNy4uMzEzNjM3ZDUzZDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmF5ZGl1bS1ybTY3MTkxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJh eWRpdW0tcm02NzE5MS5jCkBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGludCByYWRfcGFuZWxf Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRf bW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDY2ZmE5NzUzMDhlYy4uZDZhMDMz MjhlNTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmF5ZGl1bS1y bTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIw MC5jCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9k ZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1 eEAldVxuIiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3Bs YXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgw NTduMDA5MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24w MDkwMC5jCmluZGV4IGIyZDYxY2FiM2NhZC4uM2E0ZjFjMGZjZTg2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYwpAQCAtMjM2LDcg KzIzNiw3IEBAIHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RF Vl9FUlJPUihjdHgtPmRldiwgIkZhaWxlZCB0byBhZGQgbW9kZSAldXgldUAldVxuIiwKIAkJCSAg ICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJvLXJiMDcwZDMwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9uYm8tcmIwNzBkMzAuYwppbmRleCA1N2E0NjJjZTIy MWUuLjc0NmEzYTIyMTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJvbmJvLXJiMDcwZDMwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJv LXJiMDcwZDMwLmMKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVs X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAlzdGF0aWMgY29uc3QgdTMyIGJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1U X1JHQjg4OF8xWDI0OwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUigmY3R4LT5k c2ktPmRldiwKIAkJCSAgICAgICJGYWlsZWQgdG8gYWRkIG1vZGUgIiBEUk1fTU9ERV9GTVQgIlxu IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwppbmRl eCA3MTkzOWFiNzU3YjEuLjIxNTAwNDNkY2Y2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyBpbnQg czZkMTZkMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZzYW1zdW5nX3M2ZDE2ZDBfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsK IAkJRFJNX0VSUk9SKCJiYWQgbW9kZSBvciBmYWlsZWQgdG8gYWRkIG1vZGVcbiIpOwogCQlyZXR1 cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNo YTIuYwppbmRleCA4ZTAyMzZiYTYxNDUuLjM2ZWJkNWE0YWM3YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hhMi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpAQCAtNjUxLDcgKzY1MSw3IEBAIHN0 YXRpYyBpbnQgczZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3Ry dWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRhaW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBh bmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgY3R4LT5kZXNjLT5tb2RlKTsKKwltb2RlID0gZHJtX21v ZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBjdHgtPmRlc2MtPm1vZGUpOwogCWlmICghbW9k ZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQlj dHgtPmRlc2MtPm1vZGUtPmhkaXNwbGF5LCBjdHgtPmRlc2MtPm1vZGUtPnZkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCmluZGV4 IGM5MzlkNWJkZTRmMC4uYTM1NzBlMGE5MGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00MDUsNyArNDA1LDcgQEAgc3RhdGlj IGludCBzNmU2M2oweDAzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9F UlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5o ZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCmluZGV4IDFkMDk5MDkyZTc1NC4uYTVmNzZlYjRmYTI1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCkBA IC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBzNmU2M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxu IiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQzd3ZmMWcuYwppbmRleCBiODc4OTMw YjE3ZTQuLjE4ZTc0NTEwNGFhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNlaWtvLTQzd3ZmMWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vp a28tNDN3dmYxZy5jCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNlaWtv X3BhbmVsICp0b19zZWlrb19wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBp bnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19wYW5lbCAqcGFuZWws CiAJCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRybTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVtID0gMDsKIApAQCAtNzEsOSArNzAsOSBA QCBzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1Y3Qgc2Vpa29fcGFu ZWwgKnBhbmVsLAogCQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwogCiAJCXZpZGVvbW9kZV9mcm9tX3Rp bWluZyhkdCwgJnZtKTsKLQkJbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShkcm0pOworCQltb2RlID0g ZHJtX21vZGVfY3JlYXRlKGNvbm5lY3Rvci0+ZGV2KTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZf ZXJyKGRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAorCQkJZGV2X2Vycihw YW5lbC0+YmFzZS5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVcbiIsCiAJCQkJZHQtPmhh Y3RpdmUudHlwLCBkdC0+dmFjdGl2ZS50eXApOwogCQkJY29udGludWU7CiAJCX0KQEAgLTkyLDkg KzkxLDkgQEAgc3RhdGljIGludCBzZWlrb19wYW5lbF9nZXRfZml4ZWRfbW9kZXMoc3RydWN0IHNl aWtvX3BhbmVsICpwYW5lbCwKIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV9tb2Rl czsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJnBhbmVsLT5k ZXNjLT5tb2Rlc1tpXTsKIAotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJ CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1v ZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVc biIsCisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgl dUAldVxuIiwKIAkJCQltLT5oZGlzcGxheSwgbS0+dmRpc3BsYXksIG0tPnZyZWZyZXNoKTsKIAkJ CWNvbnRpbnVlOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2hhcnAtbHExMDFyMXN4MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1s cTEwMXIxc3gwMS5jCmluZGV4IGU3OTdiNzAwNjYxYS4uMTdkNDA2ZjQ5YzNkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjgzLDkg KzI4Myw5IEBAIHN0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXgg NzEwM2E5NDVmMGU4Li4xY2YzZjAyNDM1YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGlu dCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KHBhbmVsLT5kcm0sICZsczAzN3Y3ZHcwMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGNvbm5lY3Rvci0+ZGV2LCAmbHMwMzd2N2R3MDFfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQly ZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAt bHMwNDN0MWxlMDEuYwppbmRleCA4NWFlNmNmZmRiZmIuLjc5OTVjZjVhOWZjNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIxNSw5 ICsyMTUsOSBAQCBzdGF0aWMgaW50IHNoYXJwX250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKIAkJCQlkZWZhdWx0X21vZGUuaGRpc3BsYXksIGRlZmF1bHRfbW9k ZS52ZGlzcGxheSwKIAkJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01F TTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBkNjI5OWZlNmQyNzYuLmVj NDQ5YzE4YmViYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBs ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpAQCAtMTIwLDcg KzEyMCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9fcGFuZWxfc2lt cGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9z aW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwsCiAJCQkJ CQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAKQEAgLTEyOSw5ICsxMjgsOSBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFu ZWxfc2ltcGxlICpwYW5lbCwKIAkJc3RydWN0IHZpZGVvbW9kZSB2bTsKIAogCQl2aWRlb21vZGVf ZnJvbV90aW1pbmcoZHQsICZ2bSk7Ci0JCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoZHJtKTsKKwkJ bW9kZSA9IGRybV9tb2RlX2NyZWF0ZShjb25uZWN0b3ItPmRldik7CiAJCWlmICghbW9kZSkgewot CQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldVxuIiwKKwkJCWRl dl9lcnIocGFuZWwtPmJhc2UuZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAogCQkJ CWR0LT5oYWN0aXZlLnR5cCwgZHQtPnZhY3RpdmUudHlwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBA IC0xNTMsMTYgKzE1MiwxNSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRf dGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCwKIHN0YXRpYyB1bnNpZ25l ZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUg KnBhbmVsLAogCQkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwogCiAJZm9yIChpID0g MDsgaSA8IHBhbmVsLT5kZXNjLT5udW1fbW9kZXM7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbSA9ICZwYW5lbC0+ZGVzYy0+bW9kZXNbaV07CiAKLQkJbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShkcm0sIG0pOworCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNv bm5lY3Rvci0+ZGV2LCBtKTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZfZXJyKGRybS0+ZGV2LCAi ZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1QCV1XG4iLAorCQkJZGV2X2VycihwYW5lbC0+YmFzZS5k ZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3BsYXksIG0t PnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMTg0LDcgKzE4 Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0 X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQkJCQkgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0g PSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9v bCBoYXNfb3ZlcnJpZGUgPSBwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlOwogCXVuc2lnbmVkIGlu dCBudW0gPSAwOwpAQCAtMTkzLDEyICsxOTAsMTIgQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVf Z2V0X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQlyZXR1cm4g MDsKIAogCWlmIChoYXNfb3ZlcnJpZGUpIHsKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo Y29ubmVjdG9yLT5kZXYsICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CiAJCWlmIChtb2RlKSB7CiAJ CQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAJCQludW0gPSAxOwogCQl9 IGVsc2UgewotCQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJpZGUgbW9k ZVxuIik7CisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJp ZGUgbW9kZVxuIik7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z aXRyb25peC1zdDc3MDEuYwppbmRleCAzZWQzYjFkNmQ4MmQuLmMwOGE4NjVhMmE5MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjcxLDcg KzI3MSw3IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAx LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBkZXNjX21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIGRlc2NfbW9kZSk7CiAJaWYgKCFtb2RlKSB7 CiAJCURSTV9ERVZfRVJST1IoJnN0NzcwMS0+ZHNpLT5kZXYsCiAJCQkgICAgICAiZmFpbGVkIHRv IGFkZCBtb2RlICV1eCV1eEAldVxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2l0cm9uaXgtc3Q3Nzg5di5jCmluZGV4IDgzNmIwMTMzMTUwNS4uZWJlZmUyZjRjMjZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMKQEAgLTE3 NSw5ICsxNzUsOSBAQCBzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMKaW5kZXggODQxZGM3 M2M0NDNkLi41YzRiNmY2ZTVjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jCkBAIC01MjYsNyArNTI2LDcgQEAgc3RhdGljIGludCBhY3g1NjVha21f Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm YWN4NTY1YWttX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5k ZXYsICZhY3g1NjVha21fbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01FTTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCA1MjMw MTc2YmQ4ZTYuLjM3MjUyNTkwYjU0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXRwby10ZDAyOHR0ZWMxLmMKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW50IHRkMDI4dHRl YzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJt LCAmdGQwMjh0dGVjMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rv ci0+ZGV2LCAmdGQwMjh0dGVjMV9tb2RlKTsKIAlpZiAoIW1vZGUpCiAJCXJldHVybiAtRU5PTUVN OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jCmluZGV4 IDcxNmY4ZWQxY2M0NS4uNzVmMWYxZjFiNmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRlYTEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHBvLXRkMDQzbXRlYTEuYwpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbnQgdGQw NDNtdGVhMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29u bmVjdG9yLT5kZXYsICZ0ZDA0M210ZWExX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1F Tk9NRU07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBn MTEwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jCmluZGV4IGU3 NGNkOWQ0MThjZi4uYmVlMjEzZWExYTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtdHBvLXRwZzExMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10 cG8tdHBnMTEwLmMKQEAgLTM5NCw3ICszOTQsNyBAQCBzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVp Z2h0X21tID0gdHBnLT5oZWlnaHQ7CiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdz ID0gdHBnLT5wYW5lbF9tb2RlLT5idXNfZmxhZ3M7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKHBhbmVsLT5kcm0sICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOwogCWRy bV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZF UiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fcGFuZWwuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCmluZGV4IDVjNjJkZmU3M2M2OC4u ZDIxNDJlNDE3MGM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaAorKysgYi9p bmNsdWRlL2RybS9kcm1fcGFuZWwuaApAQCAtMTMyLDEzICsxMzIsNiBAQCBzdHJ1Y3QgZHJtX3Bh bmVsX2Z1bmNzIHsKICAqIHN0cnVjdCBkcm1fcGFuZWwgLSBEUk0gcGFuZWwgb2JqZWN0CiAgKi8K IHN0cnVjdCBkcm1fcGFuZWwgewotCS8qKgotCSAqIEBkcm06Ci0JICoKLQkgKiBEUk0gZGV2aWNl IG93bmluZyB0aGUgcGFuZWwuCi0JICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQogCS8q KgogCSAqIEBkZXY6CiAJICoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1t ZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK 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 0CDBDC43603 for ; Sat, 7 Dec 2019 14:07:24 +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 C72D5206D6 for ; Sat, 7 Dec 2019 14:07:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="iLiCNwsl"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sllq2ePX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C72D5206D6 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=g3SU1ljIcGqW8Dw9c5AZQFVVzM0JX5/fo7ExGww/Ehc=; b=iLiCNwslk2IfYa dA7+QLs7xKqYHo8LglO6PyVW4ybc7r8rXXkea5CQ8NunTuzdaXRP8394cXSMjc0X/ye/MZsKqc3RE PckhQaszi7DGMZ6AwQf5aaeEb2begaKNqimQm/4aAx2G2rGWIo9KtdC10Zl39RzD2yAEjGD7oSHT2 bNAsWjqJSiYyJ1OrFuyUht18GWEvrTG+B0iLqWCaHZ2G/rFEPPaJ1fWrcUfdxZYWY+QscMgccC9S2 tY9y46SDomVv+0Li0ZA2pp1zMDbnetMyyb7po1+xpAzlzY3NByCXOu2gWXrv0UjPP/hQKa8g+myU3 t8jB5pGUa0A5sNFD0sow==; 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 1idajx-0000xn-FM; Sat, 07 Dec 2019 14:07:21 +0000 Received: from mail-lf1-x142.google.com ([2a00:1450:4864:20::142]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1idah7-0005da-3Q; Sat, 07 Dec 2019 14:04:29 +0000 Received: by mail-lf1-x142.google.com with SMTP id 9so7397439lfq.10; Sat, 07 Dec 2019 06:04:24 -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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=sllq2ePXGGvjQGN9sJ6Cexg0SaBMhcQyKWuGqbUKfu5i/AsW9wfqVSLH03+bAebhHA NGPvT4RTeDLTrm57YuqVu0LR4pz4GedOlER7XMq1kx/ag5KvZimKe/EuP+OSxsAICImH CiNp5PLXC3lCRPEe8QVI/hzLC3ik3IUhYuism86Iuv4eogkqHGZOFRQd5b0n5d+VPwLC Or2RM3/6xqC4DoWTpz7AaifnUNT8T0LVKWhydoH5tYv4IFQeULxB8gDH92a44WBzEIdF BlEDE6bCZuuqIUfVE3Jf3p2eBrafb+LGNp4jr3/6E398r87FMr1mlGO+dkkIxKdO7IsC 2k6g== 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=gR58eaxcFb3u7zE/4U+FDGi+VP78py5ZvZcYPjpTaLg=; b=qA2luY0jC9HtsUqqzGK8DuW1ueB8UKCu9zRoCxa3ZQGqp4+LnhcaTmzdolUnSIb/wK 3AoM/ZpvBa26xKUzu6LxNqMEBNlsjhPkvnmmVTnwmyJ65UOqwSy6Tnl0hE1ymLkOE0+Z frXajTgqUP/JgrD4ELw1NRDmKrdWMEvhTWjf2NxIc+Y6wyQYsitFHLM2YFItjN+IO70R F1b9C3FGTMB7P3slcy5QnJbKAu0LXlnb6dmagBSp4oB4mgp/Qab0JnNLY5CecEifsf9W XWKFp9RkVwshMJJjBwjVPfnG5d7TbWu97Xg9ivNY88TFfPtEa8uL9ZypcTrna4C1QObR Ra6Q== X-Gm-Message-State: APjAAAU7xsLcnUYn0JOu7qJGWAQV0Fc7XZjHs9h8zolcqsJMeDeG4SZM 29W7cq1eOomSLxtPeLn3Cz0= X-Google-Smtp-Source: APXvYqxZY73th5LcErkHNXbzH/+aHgH0/rMHu4A2zTaRLwpzTcNza+wlKndhP+9CbNuVwMShjcPeYQ== X-Received: by 2002:a19:f00d:: with SMTP id p13mr11187974lfc.37.1575727462835; Sat, 07 Dec 2019 06:04:22 -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.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Dec 2019 06:04:22 -0800 (PST) From: Sam Ravnborg To: dri-devel@lists.freedesktop.org, Thierry Reding , Laurent Pinchart , Linus Walleij , Sam Ravnborg Subject: [PATCH v2 07/25] drm/panel: drop drm_device from drm_panel Date: Sat, 7 Dec 2019 15:03:35 +0100 Message-Id: <20191207140353.23967-8-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_060425_279887_FA275B5A X-CRM114-Status: GOOD ( 15.68 ) 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 , Laurent Pinchart , 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 VGhlIHBhbmVsIGRyaXZlcnMgdXNlZCBkcm1fcGFuZWwuZHJtIGZvciB0d28gcHVycG9zZXM6CjEp IEFyZ3VtZW50IHRvIGRybV9tb2RlX2R1cGxpY2F0ZSgpCjIpIGRybS0+ZGV2IHdhcyB1c2VkIGlu IGVycm9yIG1lc3NhZ2VzCgpUaGUgZmlyc3QgdXNhZ2UgaXMgcmVwbGFjZWQgd2l0aCBkcm1fY29u bmVjdG9yLmRldgotIGRybV9jb25uZWN0b3IgaXMgYWxyZWFkeSBjb25uZWN0ZWQgdG8gYSBkcm1f ZGV2aWNlCiAgYW5kIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0b3IKClRoZSBzZWNvbmQgdXNhZ2Ug aXMgcmVwbGFjZWQgd2l0aCBkcm1fcGFuZWwuZGV2Ci0gdGhpcyBtYWtlcyBkcml2ZXJzIG1vcmUg Y29uc2lzdGVudCBpbiB0aGVpciBkZXYgYXJndW1lbnQKICB1c2VkIGZvciBkZXZfZXJyKCkgYW5k IGZyaWVuZHMKCldpdGggdGhlc2UgcmVwbGFjZW1lbnRzIHRoZXJlIGFyZSBubyBtb3JlIHVzZXMg b2YgZHJtX3BhbmVsLmRybSwKc28gaXQgaXMgcmVtb3ZlZCBmcm9tIHN0cnVjdCBkcm1fcGFuZWwu CldpdGggdGhpcyBjaGFuZ2UgZHJtX3BhbmVsX2F0dGFjaCgpIGFuZCBkcm1fcGFuZWxfZGV0YWNo KCkKbm8gbG9uZ2VyIGhhdmUgYW55IHVzZSBhcyB0aGV5IGFyZSBlbXB0eSBmdW5jdGlvbnMuCgp2 MjoKICAtIGVkaXRvcmlhbCBjb3JyZWN0aW9uIGluIGNoYW5nZWxvZyAoTGF1cmVudCkKClNpZ25l ZC1vZmYtYnk6IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KUmV2aWV3ZWQtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KUmV2aWV3 ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz4KQ2M6IFRoaWVy cnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+CkNjOiBMYXVyZW50IFBpbmNoYXJ0 IDxMYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+CkNjOiBTYW0gUmF2bmJvcmcgPHNh bUByYXZuYm9yZy5vcmc+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgpDYzogTWF4aW1lIFJpcGFyZCA8bXJpcGFyZEBrZXJuZWwub3JnPgpD YzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsQGZmd2xsLmNoPgpDYzogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3Jn PgpDYzogSmFnYW4gVGVraSA8amFnYW5AYW1hcnVsYXNvbHV0aW9ucy5jb20+CkNjOiBTdGVmYW4g TWF2cm9kaWV2IDxzdGVmYW5Ab2xpbWV4LmNvbT4KQ2M6IFJvYmVydCBDaGlyYXMgPHJvYmVydC5j aGlyYXNAbnhwLmNvbT4KQ2M6ICJHdWlkbyBHw7xudGhlciIgPGFneEBzaWd4Y3B1Lm9yZz4KQ2M6 IFB1cmlzbSBLZXJuZWwgVGVhbSA8a2VybmVsQHB1cmkuc20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9wYW5lbC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYyAgICAgICB8ICAyICstCiAuLi4vZ3B1 L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5MDcwMjRkaTI2YTMwZC5jIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jICAgICAgfCAxNSArKysrKysr Ky0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYyAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5j ICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWpkaS1sdDA3MG1l MDUwMDAuYyAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1raW5nZGlzcGxheS1r ZDA5N2QwNC5jICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbGct bGIwMzVxMDIuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1s Zy1sZzQ1NzMuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtbHZkcy5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1uZWMtbmw4MDQ4aGwxMS5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jICAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9wYW5lbC9w YW5lbC1vbGltZXgtbGNkLW9saW51eGluby5jICAgIHwgIDUgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1vcmlzZXRlY2gtb3RtODAwOWEuYyAgfCAgMiArLQogLi4uL2dwdS9kcm0v cGFuZWwvcGFuZWwtb3NkLW9zZDEwMXQyNTg3LTUzdHMuYyAgICB8ICA0ICsrLS0KIC4uLi9ncHUv ZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAuYyAgfCAgNCArKy0tCiAuLi4v Z3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jIHwgIDUgKystLS0K IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXlkaXVtLXJtNjcxOTEuYyAgICAgfCAgMiAr LQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jICAgICB8ICAy ICstCiAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24wMDkwMC5jICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb25iby1yYjA3MGQzMC5jICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmUzaGEyLmMg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTYzajB4 MDMuYyAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNt MC5jICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYx Zy5jICAgICAgIHwgIDkgKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hh cnAtbHExMDFyMXN4MDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDM3djdkdzAxLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtc2hhcnAtbHMwNDN0MWxlMDEuYyAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNpbXBsZS5jICAgICAgICAgICAgICB8IDE1ICsrKysrKy0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jICAgICB8ICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jICAgIHwgIDQgKystLQog ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYyAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10cGcxMTAuYyAgICAgICAgICB8 ICAyICstCiBpbmNsdWRlL2RybS9kcm1fcGFuZWwuaCAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDcgLS0tLS0tLQogMzggZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgODEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmluZGV4IDNkYWViZjU2ZGM0NC4uOTkzZTQwYzBkNTgy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wYW5lbC5jCkBAIC0xMTQsMTEgKzExNCw2IEBAIEVYUE9SVF9TWU1CT0woZHJt X3BhbmVsX3JlbW92ZSk7CiAgKi8KIGludCBkcm1fcGFuZWxfYXR0YWNoKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCWlmIChwYW5l bC0+ZHJtKQotCQlyZXR1cm4gLUVCVVNZOwotCi0JcGFuZWwtPmRybSA9IGNvbm5lY3Rvci0+ZGV2 OwotCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9hdHRhY2gpOwpAQCAt MTM1LDcgKzEzMCw2IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2F0dGFjaCk7CiAgKi8KIHZv aWQgZHJtX3BhbmVsX2RldGFjaChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlwYW5lbC0+ ZHJtID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2RldGFjaCk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVyc2F0aWxlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jCmluZGV4IDQxYWE5MWY2MDk3 OS4uNDE0NDRhNzNjOTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt YXJtLXZlcnNhdGlsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1hcm0tdmVy c2F0aWxlLmMKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5lbF9n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uaGVpZ2h0X21tID0gdnBhbmVsLT5wYW5lbF90eXBlLT5oZWlnaHRfbW07CiAJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gdnBhbmVsLT5wYW5lbF90eXBlLT5idXNfZmxhZ3M7 CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZ2cGFuZWwtPnBhbmVs X3R5cGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYs ICZ2cGFuZWwtPnBhbmVsX3R5cGUtPm1vZGUpOwogCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwog CW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZUEVfUFJFRkVS UkVEOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1m eTA3MDI0ZGkyNmEzMGQuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1mZWl5YW5nLWZ5 MDcwMjRkaTI2YTMwZC5jCmluZGV4IDM3ZDZiNzM5MDk1NC4uMDE1N2QxODQ0ZTNlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEz MGQuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgZmVpeWFuZ19nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGZlaXlhbmcgKmN0eCA9IHBhbmVsX3RvX2Zl aXlhbmcocGFuZWwpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZmVpeWFuZ19kZWZhdWx0X21vZGUpOwor CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZmZWl5YW5nX2RlZmF1 bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9ERVZfRVJST1IoJmN0eC0+ZHNpLT5kZXYs ICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgZmVpeWFuZ19kZWZh dWx0X21vZGUuaGRpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtaWxpdGVrLWlsaTkzMjIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWst aWxpOTMyMi5jCmluZGV4IDdlNTA2MmIwN2FjOC4uZjM5NGQ1M2E3ZGE0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwpAQCAtNjQ1LDYgKzY0NSw3IEBA IHN0YXRpYyBpbnQgaWxpOTMyMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJ CQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGlsaTkz MjIgKmlsaSA9IHBhbmVsX3RvX2lsaTkzMjIocGFuZWwpOworCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKIApAQCAtNjYzLDI2ICs2NjQsMjYgQEAgc3Rh dGljIGludCBpbGk5MzIyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAogCXN3 aXRjaCAoaWxpLT5pbnB1dCkgewogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzMyMFgy NDA6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzIweDI0 MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzMyMHgyNDBf bW9kZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9TUkdCX0RVTU1ZXzM2MFgyNDA6 Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJnNyZ2JfMzYweDI0MF9t b2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZzcmdiXzM2MHgyNDBfbW9k ZSk7CiAJCWJyZWFrOwogCWNhc2UgSUxJOTMyMl9JTlBVVF9QUkdCX1RIUk9VR0g6CiAJY2FzZSBJ TEk5MzIyX0lOUFVUX1BSR0JfQUxJR05FRDoKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShw YW5lbC0+ZHJtLCAmcHJnYl8zMjB4MjQwX21vZGUpOworCQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGRybSwgJnByZ2JfMzIweDI0MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX1lVVl82NDBYMzIwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZ5dXZfNjQweDMyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX1lV Vl83MjBYMzYwX1lDQkNSOgotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0s ICZ5dXZfNzIweDM2MF9tb2RlKTsKKwkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm0sICZ5 dXZfNzIweDM2MF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lOUFVUX0lUVV9SX0JU NjU2XzcyMFgzNjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRy bSwgJml0dV9yX2J0XzY1Nl83MjBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo ZHJtLCAmaXR1X3JfYnRfNjU2XzcyMF9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBJTEk5MzIyX0lO UFVUX0lUVV9SX0JUNjU2XzY0MFgzMjBfWUNCQ1I6Ci0JCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJml0dV9yX2J0XzY1Nl82NDBfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoZHJtLCAmaXR1X3JfYnRfNjU2XzY0MF9tb2RlKTsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJbW9kZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxp dGVrLWlsaTk4ODFjLmMKaW5kZXggMWM2N2E2NjhkNmJmLi4zMWU1YTRlNjc3NTAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTg4MWMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTk4ODFjLmMKQEAgLTM5Myw3ICsz OTMsNyBAQCBzdGF0aWMgaW50IGlsaTk4ODFjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgaWxpOTg4MWMgKmN0eCA9IHBhbmVsX3RvX2lsaTk4ODFjKHBhbmVsKTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBs aWNhdGUocGFuZWwtPmRybSwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmJhbmFuYXBpX2RlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoJmN0eC0+ZHNpLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJYmFuYW5hcGlfZGVmYXVsdF9tb2RlLmhkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlubm9sdXgtcDA3OXpjYS5jCmluZGV4IGZhY2Yx YmFiMjUzMi4uYjlkZTM3YThhMGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtaW5ub2x1eC1wMDc5emNhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWlubm9sdXgtcDA3OXpjYS5jCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGludCBpbm5vbHV4 X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdo dF9lbmFibGUoaW5ub2x1eC0+YmFja2xpZ2h0KTsKIAlpZiAocmV0KSB7Ci0JCURSTV9ERVZfRVJS T1IocGFuZWwtPmRybS0+ZGV2LAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsCiAJCQkgICAg ICAiRmFpbGVkIHRvIGVuYWJsZSBiYWNrbGlnaHQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7 CiAJfQpAQCAtNDEwLDkgKzQxMCw5IEBAIHN0YXRpYyBpbnQgaW5ub2x1eF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm0gPSBpbm5vbHV4LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBtKTsKKwltb2Rl ID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBtKTsKIAlpZiAoIW1vZGUpIHsK LQkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4 JXV4QCV1XG4iLAorCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1v ZGUgJXV4JXV4QCV1XG4iLAogCQkJICAgICAgbS0+aGRpc3BsYXksIG0tPnZkaXNwbGF5LCBtLT52 cmVmcmVzaCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5jCmluZGV4IGU2YjY1MGE2NGZkYi4uNGJmZDhjODc3 YzhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtamRpLWx0MDcwbWUw NTAwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1qZGktbHQwNzBtZTA1MDAw LmMKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW50IGpkaV9wYW5lbF9nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3RydWN0IGpkaV9wYW5lbCAqamRpID0gdG9famRpX3Bh bmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmamRpLT5kc2ktPmRldjsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAl dVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3 ZDA0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwta2luZ2Rpc3BsYXkta2QwOTdkMDQu YwppbmRleCBlNmY1M2Q1NmRhZjkuLjM1M2VlNmNhYTAxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWtpbmdkaXNwbGF5LWtkMDk3ZDA0LmMKQEAgLTMxMCw3ICszMTAs NyBAQCBzdGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCkKIAogCXJldCA9IGJhY2tsaWdodF9lbmFibGUoa2luZ2Rpc3BsYXktPmJhY2tsaWdo dCk7CiAJaWYgKHJldCkgewotCQlEUk1fREVWX0VSUk9SKHBhbmVsLT5kcm0tPmRldiwKKwkJRFJN X0RFVl9FUlJPUihwYW5lbC0+ZGV2LAogCQkJICAgICAgIkZhaWxlZCB0byBlbmFibGUgYmFja2xp Z2h0ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTMzOCw5ICszMzgsOSBAQCBz dGF0aWMgaW50IGtpbmdkaXNwbGF5X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9t b2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2Rl KSB7Ci0JCURSTV9ERVZfRVJST1IocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2Rl ICV1eCV1eEAldVxuIiwKKwkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVm YXVsdF9tb2RlLnZkaXNwbGF5LAogCQkJICAgICAgZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt bGctbGIwMzVxMDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sYjAzNXEwMi5j CmluZGV4IDdhM2JkNGQ4MGM3OS4uZTkwZWZlYWJhNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtbGctbGIwMzVxMDIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtbGctbGIwMzVxMDIuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQgbGIw MzVxMDJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ ZHJtLCAmbGIwMzVxMDJfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgJmxiMDM1cTAyX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMuYwppbmRleCBmYzY1NzJiNGUy ZjkuLjIwMjM1ZmYwYmJjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LWxnLWxnNDU3My5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sZy1sZzQ1NzMu YwpAQCAtMjE0LDkgKzIxNCw5IEBAIHN0YXRpYyBpbnQgbGc0NTczX2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJ bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7 CiAJaWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFk ZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LAogCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJcmV0dXJuIC1FTk9N RU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwppbmRleCBmNmQ1OGE2MGU1MTQuLjVlNDBi Njc0YmIxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCkBAIC0xMTIsNyArMTEyLDcg QEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCwKIAlzdHJ1Y3QgcGFuZWxfbHZkcyAqbHZkcyA9IHRvX3BhbmVsX2x2ZHMocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShs dmRzLT5wYW5lbC5kcm0pOworCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5kZXYp OwogCWlmICghbW9kZSkKIAkJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLW5lYy1ubDgwNDhobDExLmMKaW5kZXggYTZjY2RiMDlhYWNlLi5jNGY4M2Y2Mzg0ZTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1uZWMtbmw4MDQ4aGwxMS5jCkBAIC0xMjgs NyArMTI4LDcgQEAgc3RhdGljIGludCBubDgwNDhfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmbmw4MDQ4X21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZubDgwNDhfbW9kZSk7CiAJaWYgKCFtb2Rl KQogCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5v dmF0ZWstbnQzOTAxNi5jCmluZGV4IDkxZWE0OWMwNTYxMS4uYTQ3MDgxMGY3ZGJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbm92YXRlay1udDM5MDE2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW5vdmF0ZWstbnQzOTAxNi5jCkBAIC0yMTMsNyAr MjEzLDcgQEAgc3RhdGljIGludCBudDM5MDE2X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpk cm1fcGFuZWwsCiAJY29uc3Qgc3RydWN0IG50MzkwMTZfcGFuZWxfaW5mbyAqcGFuZWxfaW5mbyA9 IHBhbmVsLT5wYW5lbF9pbmZvOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0J bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkcm1fcGFuZWwtPmRybSwgJnBhbmVsX2luZm8tPmRp c3BsYXlfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwg JnBhbmVsX2luZm8tPmRpc3BsYXlfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01F TTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qt b2xpbnV4aW5vLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb2xpbWV4LWxjZC1vbGlu dXhpbm8uYwppbmRleCAyYjdlMGRmZWJjNWUuLmU1NTNlNTg0Mzk5YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9saW1leC1sY2Qtb2xpbnV4aW5vLmMKQEAgLTE0Niw3 ICsxNDYsNiBAQCBzdGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1f cGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBsY2Rfb2xpbnV4aW5vICpsY2QgPSB0b19sY2Rfb2xp bnV4aW5vKHBhbmVsKTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19pbmZvICpsY2RfaW5mbyA9ICZs Y2QtPmVlcHJvbS5pbmZvOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBsY2QtPnBhbmVsLmRy bTsKIAlzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICpsY2RfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZTsKIAl1MzIgaSwgbnVtID0gMDsKQEAgLTE1NSw5ICsxNTQsOSBAQCBz dGF0aWMgaW50IGxjZF9vbGludXhpbm9fZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs LAogCQlsY2RfbW9kZSA9IChzdHJ1Y3QgbGNkX29saW51eGlub19tb2RlICopCiAJCQkgICAmbGNk LT5lZXByb20ucmVzZXJ2ZWRbaSAqIHNpemVvZigqbGNkX21vZGUpXTsKIAotCQltb2RlID0gZHJt X21vZGVfY3JlYXRlKGRybSk7CisJCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9yLT5k ZXYpOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRk IG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbGNkX21vZGUtPmhhY3RpdmUsCiAJCQkJbGNkX21vZGUt PnZhY3RpdmUsCiAJCQkJbGNkX21vZGUtPnJlZnJlc2gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLW9yaXNldGVjaC1vdG04MDA5YS5jCmluZGV4IDRlMTYwNmM3OTA3Mi4uYmIw Yzk5MjE3MWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0 ZWNoLW90bTgwMDlhLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9yaXNldGVj aC1vdG04MDA5YS5jCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIGludCBvdG04MDA5YV9nZXRf bW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZh dWx0X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZk ZWZhdWx0X21vZGUpOwogCWlmICghbW9kZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQg bW9kZSAldXgldXhAJXVcbiIsCiAJCQkgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9t b2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9z ZC1vc2QxMDF0MjU4Ny01M3RzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtb3NkLW9z ZDEwMXQyNTg3LTUzdHMuYwppbmRleCBiM2UwMTAyODhjMTAuLjI3MzRiNDgzNWRmYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLW9zZC1vc2QxMDF0MjU4Ny01M3RzLmMK QEAgLTExOCw5ICsxMTgsOSBAQCBzdGF0aWMgaW50IG9zZDEwMXQyNTg3X3BhbmVsX2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3Qgb3NkMTAxdDI1ODdfcGFuZWwgKm9z ZDEwMXQyNTg3ID0gdGlfb3NkX3BhbmVsKHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgb3NkMTAx dDI1ODctPmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0 b3ItPmRldiwgb3NkMTAxdDI1ODctPmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7Ci0JCWRl dl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK KwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwK IAkJCW9zZDEwMXQyNTg3LT5kZWZhdWx0X21vZGUtPmhkaXNwbGF5LAogCQkJb3NkMTAxdDI1ODct PmRlZmF1bHRfbW9kZS0+dmRpc3BsYXksCiAJCQlvc2QxMDF0MjU4Ny0+ZGVmYXVsdF9tb2RlLT52 cmVmcmVzaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNv bmljLXZ2eDEwZjAzNG4wMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25p Yy12dngxMGYwMzRuMDAuYwppbmRleCAxOWE2ZWI0NjM3YzguLjU3OWFjMGQ4NmVhNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXBhbmFzb25pYy12dngxMGYwMzRuMDAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcGFuYXNvbmljLXZ2eDEwZjAzNG4w MC5jCkBAIC0xNzEsOSArMTcxLDkgQEAgc3RhdGljIGludCB3dXhnYV9udF9wYW5lbF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVsLT5kcm0sICZkZWZhdWx0 X21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZkZWZh dWx0X21vZGUpOwogCWlmICghbW9kZSkgewotCQlkZXZfZXJyKHBhbmVsLT5kcm0tPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCisJCWRldl9lcnIocGFuZWwtPmRldiwgImZh aWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5 LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCiAJCQkJZGVmYXVsdF9tb2RlLnZyZWZyZXNoKTsKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt cmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1y YXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCmluZGV4IDBiOGNjMTk5YzhkMi4uOGYwNzhiN2RkODll IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91 Y2hzY3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGkt dG91Y2hzY3JlZW4uYwpAQCAtMzEyLDcgKzMxMiw2IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2Ny ZWVuX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBpbnQgcnBpX3RvdWNo c2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAkJCQkgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybSA9 IHBhbmVsLT5kcm07CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAJc3RhdGljIGNvbnN0IHUz MiBidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKIApAQCAtMzIwLDkgKzMx OSw5IEBAIHN0YXRpYyBpbnQgcnBpX3RvdWNoc2NyZWVuX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCwKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAmcnBpX3Rv dWNoc2NyZWVuX21vZGVzW2ldOwogCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAot CQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJCW1vZGUgPSBkcm1fbW9kZV9k dXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1vZGUpIHsKLQkJCWRldl9lcnIo ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCisJCQlkZXZfZXJyKHBh bmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3Bs YXksIG0tPnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jIGIvZHJp dmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02NzE5MS5jCmluZGV4IDEyM2JiNjhj ZmNiNy4uMzEzNjM3ZDUzZDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFu ZWwtcmF5ZGl1bS1ybTY3MTkxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJh eWRpdW0tcm02NzE5MS5jCkBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGludCByYWRfcGFuZWxf Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUihwYW5lbC0+ ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCSAgICAgIGRlZmF1bHRf bW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIwMC5jCmluZGV4IDY2ZmE5NzUzMDhlYy4uZDZhMDMz MjhlNTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcmF5ZGl1bS1y bTY4MjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJheWRpdW0tcm02ODIw MC5jCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGludCBybTY4MjAwX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK IAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7 CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9k ZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1 eEAldVxuIiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3Bs YXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgw NTduMDA5MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1yb2NrdGVjaC1qaDA1N24w MDkwMC5jCmluZGV4IGIyZDYxY2FiM2NhZC4uM2E0ZjFjMGZjZTg2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9ja3RlY2gtamgwNTduMDA5MDAuYwpAQCAtMjM2LDcg KzIzNiw3IEBAIHN0YXRpYyBpbnQgamgwNTduX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAlzdHJ1Y3QgamgwNTduICpjdHggPSBwYW5lbF90b19qaDA1N24ocGFuZWwpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RF Vl9FUlJPUihjdHgtPmRldiwgIkZhaWxlZCB0byBhZGQgbW9kZSAldXgldUAldVxuIiwKIAkJCSAg ICAgIGRlZmF1bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJvLXJiMDcwZDMwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtcm9uYm8tcmIwNzBkMzAuYwppbmRleCA1N2E0NjJjZTIy MWUuLjc0NmEzYTIyMTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXJvbmJvLXJiMDcwZDMwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJvbmJv LXJiMDcwZDMwLmMKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW50IHJiMDcwZDMwX3BhbmVs X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAlzdGF0aWMgY29uc3QgdTMyIGJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1U X1JHQjg4OF8xWDI0OwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm ZGVmYXVsdF9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2 LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsKIAkJRFJNX0RFVl9FUlJPUigmY3R4LT5k c2ktPmRldiwKIAkJCSAgICAgICJGYWlsZWQgdG8gYWRkIG1vZGUgIiBEUk1fTU9ERV9GTVQgIlxu IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2 ZDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwppbmRl eCA3MTkzOWFiNzU3YjEuLjIxNTAwNDNkY2Y2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNhbXN1bmctczZkMTZkMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zYW1zdW5nLXM2ZDE2ZDAuYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyBpbnQg czZkMTZkMF9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZzYW1zdW5nX3M2ZDE2ZDBfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJnNhbXN1bmdfczZkMTZkMF9tb2RlKTsKIAlpZiAoIW1vZGUpIHsK IAkJRFJNX0VSUk9SKCJiYWQgbW9kZSBvciBmYWlsZWQgdG8gYWRkIG1vZGVcbiIpOwogCQlyZXR1 cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1z dW5nLXM2ZTNoYTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNo YTIuYwppbmRleCA4ZTAyMzZiYTYxNDUuLjM2ZWJkNWE0YWM3YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlM2hhMi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zYW1zdW5nLXM2ZTNoYTIuYwpAQCAtNjUxLDcgKzY1MSw3IEBAIHN0 YXRpYyBpbnQgczZlM2hhMl9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJc3Ry dWN0IHM2ZTNoYTIgKmN0eCA9IGNvbnRhaW5lcl9vZihwYW5lbCwgc3RydWN0IHM2ZTNoYTIsIHBh bmVsKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgY3R4LT5kZXNjLT5tb2RlKTsKKwltb2RlID0gZHJtX21v ZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBjdHgtPmRlc2MtPm1vZGUpOwogCWlmICghbW9k ZSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCiAJCQlj dHgtPmRlc2MtPm1vZGUtPmhkaXNwbGF5LCBjdHgtPmRlc2MtPm1vZGUtPnZkaXNwbGF5LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCmluZGV4 IGM5MzlkNWJkZTRmMC4uYTM1NzBlMGE5MGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M2oweDAzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNhbXN1bmctczZlNjNqMHgwMy5jCkBAIC00MDUsNyArNDA1LDcgQEAgc3RhdGlj IGludCBzNmU2M2oweDAzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKIHsKIAlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNh dGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0 ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJaWYgKCFtb2RlKSB7CiAJCURSTV9F UlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxuIiwKIAkJCWRlZmF1bHRfbW9kZS5o ZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCmluZGV4IDFkMDk5MDkyZTc1NC4uYTVmNzZlYjRmYTI1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Ftc3VuZy1zNmU2M20w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNhbXN1bmctczZlNjNtMC5jCkBA IC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIGludCBzNmU2M20wX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1eEAldVxu IiwKIAkJCSAgZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRpc3BsYXksCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQzd3ZmMWcuYwppbmRleCBiODc4OTMw YjE3ZTQuLjE4ZTc0NTEwNGFhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLXNlaWtvLTQzd3ZmMWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vp a28tNDN3dmYxZy5jCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNlaWtv X3BhbmVsICp0b19zZWlrb19wYW5lbChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHN0YXRpYyBp bnQgc2Vpa29fcGFuZWxfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdCBzZWlrb19wYW5lbCAqcGFuZWws CiAJCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRybSA9IHBhbmVsLT5iYXNlLmRybTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAl1bnNpZ25lZCBpbnQgaSwgbnVtID0gMDsKIApAQCAtNzEsOSArNzAsOSBA QCBzdGF0aWMgaW50IHNlaWtvX3BhbmVsX2dldF9maXhlZF9tb2RlcyhzdHJ1Y3Qgc2Vpa29fcGFu ZWwgKnBhbmVsLAogCQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwogCiAJCXZpZGVvbW9kZV9mcm9tX3Rp bWluZyhkdCwgJnZtKTsKLQkJbW9kZSA9IGRybV9tb2RlX2NyZWF0ZShkcm0pOworCQltb2RlID0g ZHJtX21vZGVfY3JlYXRlKGNvbm5lY3Rvci0+ZGV2KTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZf ZXJyKGRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAorCQkJZGV2X2Vycihw YW5lbC0+YmFzZS5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVcbiIsCiAJCQkJZHQtPmhh Y3RpdmUudHlwLCBkdC0+dmFjdGl2ZS50eXApOwogCQkJY29udGludWU7CiAJCX0KQEAgLTkyLDkg KzkxLDkgQEAgc3RhdGljIGludCBzZWlrb19wYW5lbF9nZXRfZml4ZWRfbW9kZXMoc3RydWN0IHNl aWtvX3BhbmVsICpwYW5lbCwKIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV9tb2Rl czsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJnBhbmVsLT5k ZXNjLT5tb2Rlc1tpXTsKIAotCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJ CW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOwogCQlpZiAoIW1v ZGUpIHsKLQkJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVc biIsCisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgl dUAldVxuIiwKIAkJCQltLT5oZGlzcGxheSwgbS0+dmRpc3BsYXksIG0tPnZyZWZyZXNoKTsKIAkJ CWNvbnRpbnVlOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2hhcnAtbHExMDFyMXN4MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1s cTEwMXIxc3gwMS5jCmluZGV4IGU3OTdiNzAwNjYxYS4uMTdkNDA2ZjQ5YzNkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAtbHExMDFyMXN4MDEuYwpAQCAtMjgzLDkg KzI4Myw5IEBAIHN0YXRpYyBpbnQgc2hhcnBfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5j IGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDM3djdkdzAxLmMKaW5kZXgg NzEwM2E5NDVmMGU4Li4xY2YzZjAyNDM1YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaGFycC1sczAzN3Y3ZHcwMS5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGlu dCBsczAzN3Y3ZHcwMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KHBhbmVsLT5kcm0sICZsczAzN3Y3ZHcwMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGNvbm5lY3Rvci0+ZGV2LCAmbHMwMzd2N2R3MDFfbW9kZSk7CiAJaWYgKCFtb2RlKQogCQly ZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNoYXJwLWxzMDQzdDFsZTAxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2hhcnAt bHMwNDN0MWxlMDEuYwppbmRleCA4NWFlNmNmZmRiZmIuLjc5OTVjZjVhOWZjNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNoYXJwLWxzMDQzdDFsZTAxLmMKQEAgLTIxNSw5 ICsyMTUsOSBAQCBzdGF0aWMgaW50IHNoYXJwX250X3BhbmVsX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCwKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAotCW1v ZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRybSwgJmRlZmF1bHRfbW9kZSk7CisJbW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwgJmRlZmF1bHRfbW9kZSk7CiAJ aWYgKCFtb2RlKSB7Ci0JCWRldl9lcnIocGFuZWwtPmRybS0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGFkZCBt b2RlICV1eCV1eEAldVxuIiwKIAkJCQlkZWZhdWx0X21vZGUuaGRpc3BsYXksIGRlZmF1bHRfbW9k ZS52ZGlzcGxheSwKIAkJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01F TTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwppbmRleCBkNjI5OWZlNmQyNzYuLmVj NDQ5YzE4YmViYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBs ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwpAQCAtMTIwLDcg KzEyMCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9fcGFuZWxfc2lt cGxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogc3RhdGljIHVuc2lnbmVkIGludCBwYW5lbF9z aW1wbGVfZ2V0X3RpbWluZ3NfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwsCiAJCQkJ CQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAKQEAgLTEyOSw5ICsxMjgsOSBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFu ZWxfc2ltcGxlICpwYW5lbCwKIAkJc3RydWN0IHZpZGVvbW9kZSB2bTsKIAogCQl2aWRlb21vZGVf ZnJvbV90aW1pbmcoZHQsICZ2bSk7Ci0JCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoZHJtKTsKKwkJ bW9kZSA9IGRybV9tb2RlX2NyZWF0ZShjb25uZWN0b3ItPmRldik7CiAJCWlmICghbW9kZSkgewot CQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldVxuIiwKKwkJCWRl dl9lcnIocGFuZWwtPmJhc2UuZGV2LCAiZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1XG4iLAogCQkJ CWR0LT5oYWN0aXZlLnR5cCwgZHQtPnZhY3RpdmUudHlwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBA IC0xNTMsMTYgKzE1MiwxNSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBsZV9nZXRf dGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCwKIHN0YXRpYyB1bnNpZ25l ZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUg KnBhbmVsLAogCQkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcGFuZWwtPmJhc2UuZHJtOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCXVuc2lnbmVkIGludCBpLCBudW0gPSAwOwogCiAJZm9yIChpID0g MDsgaSA8IHBhbmVsLT5kZXNjLT5udW1fbW9kZXM7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbSA9ICZwYW5lbC0+ZGVzYy0+bW9kZXNbaV07CiAKLQkJbW9kZSA9IGRy bV9tb2RlX2R1cGxpY2F0ZShkcm0sIG0pOworCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNv bm5lY3Rvci0+ZGV2LCBtKTsKIAkJaWYgKCFtb2RlKSB7Ci0JCQlkZXZfZXJyKGRybS0+ZGV2LCAi ZmFpbGVkIHRvIGFkZCBtb2RlICV1eCV1QCV1XG4iLAorCQkJZGV2X2VycihwYW5lbC0+YmFzZS5k ZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUgJXV4JXVAJXVcbiIsCiAJCQkJbS0+aGRpc3BsYXksIG0t PnZkaXNwbGF5LCBtLT52cmVmcmVzaCk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMTg0LDcgKzE4 Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9kaXNwbGF5X21vZGVz KHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0 X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQkJCQkgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0g PSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CiAJYm9v bCBoYXNfb3ZlcnJpZGUgPSBwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlOwogCXVuc2lnbmVkIGlu dCBudW0gPSAwOwpAQCAtMTkzLDEyICsxOTAsMTIgQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVf Z2V0X25vbl9lZGlkX21vZGVzKHN0cnVjdCBwYW5lbF9zaW1wbGUgKnBhbmVsLAogCQlyZXR1cm4g MDsKIAogCWlmIChoYXNfb3ZlcnJpZGUpIHsKLQkJbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShk cm0sICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo Y29ubmVjdG9yLT5kZXYsICZwYW5lbC0+b3ZlcnJpZGVfbW9kZSk7CiAJCWlmIChtb2RlKSB7CiAJ CQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CiAJCQludW0gPSAxOwogCQl9 IGVsc2UgewotCQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJpZGUgbW9k ZVxuIik7CisJCQlkZXZfZXJyKHBhbmVsLT5iYXNlLmRldiwgImZhaWxlZCB0byBhZGQgb3ZlcnJp ZGUgbW9kZVxuIik7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z aXRyb25peC1zdDc3MDEuYwppbmRleCAzZWQzYjFkNmQ4MmQuLmMwOGE4NjVhMmE5MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0NzcwMS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3MDEuYwpAQCAtMjcxLDcg KzI3MSw3IEBAIHN0YXRpYyBpbnQgc3Q3NzAxX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzY19tb2RlID0gc3Q3NzAx LT5kZXNjLT5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCBkZXNjX21vZGUpOworCW1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIGRlc2NfbW9kZSk7CiAJaWYgKCFtb2RlKSB7 CiAJCURSTV9ERVZfRVJST1IoJnN0NzcwMS0+ZHNpLT5kZXYsCiAJCQkgICAgICAiZmFpbGVkIHRv IGFkZCBtb2RlICV1eCV1eEAldVxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt c2l0cm9uaXgtc3Q3Nzg5di5jCmluZGV4IDgzNmIwMTMzMTUwNS4uZWJlZmUyZjRjMjZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMKQEAgLTE3 NSw5ICsxNzUsOSBAQCBzdGF0aWMgaW50IHN0Nzc4OXZfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAmZGVmYXVsdF9tb2RlKTsKKwltb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmZGVmYXVsdF9tb2RlKTsKIAlpZiAo IW1vZGUpIHsKLQkJZGV2X2VycihwYW5lbC0+ZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAorCQlkZXZfZXJyKHBhbmVsLT5kZXYsICJmYWlsZWQgdG8gYWRkIG1vZGUg JXV4JXV4QCV1XG4iLAogCQkJZGVmYXVsdF9tb2RlLmhkaXNwbGF5LCBkZWZhdWx0X21vZGUudmRp c3BsYXksCiAJCQlkZWZhdWx0X21vZGUudnJlZnJlc2gpOwogCQlyZXR1cm4gLUVOT01FTTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zb255LWFjeDU2NWFrbS5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNvbnktYWN4NTY1YWttLmMKaW5kZXggODQxZGM3 M2M0NDNkLi41YzRiNmY2ZTVjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zb255LWFjeDU2NWFrbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1z b255LWFjeDU2NWFrbS5jCkBAIC01MjYsNyArNTI2LDcgQEAgc3RhdGljIGludCBhY3g1NjVha21f Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJtLCAm YWN4NTY1YWttX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5k ZXYsICZhY3g1NjVha21fbW9kZSk7CiAJaWYgKCFtb2RlKQogCQlyZXR1cm4gLUVOT01FTTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDI4dHRlYzEuYwppbmRleCA1MjMw MTc2YmQ4ZTYuLjM3MjUyNTkwYjU0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVs L3BhbmVsLXRwby10ZDAyOHR0ZWMxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXRwby10ZDAyOHR0ZWMxLmMKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW50IHRkMDI4dHRl YzFfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAogewogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwogCi0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShwYW5lbC0+ZHJt LCAmdGQwMjh0dGVjMV9tb2RlKTsKKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rv ci0+ZGV2LCAmdGQwMjh0dGVjMV9tb2RlKTsKIAlpZiAoIW1vZGUpCiAJCXJldHVybiAtRU5PTUVN OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRl YTEuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdGQwNDNtdGVhMS5jCmluZGV4 IDcxNmY4ZWQxY2M0NS4uNzVmMWYxZjFiNmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtdHBvLXRkMDQzbXRlYTEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtdHBvLXRkMDQzbXRlYTEuYwpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbnQgdGQw NDNtdGVhMV9nZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiB7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKHBhbmVs LT5kcm0sICZ0ZDA0M210ZWExX21vZGUpOworCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoY29u bmVjdG9yLT5kZXYsICZ0ZDA0M210ZWExX21vZGUpOwogCWlmICghbW9kZSkKIAkJcmV0dXJuIC1F Tk9NRU07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10cG8tdHBn MTEwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtdHBvLXRwZzExMC5jCmluZGV4IGU3 NGNkOWQ0MThjZi4uYmVlMjEzZWExYTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZWwvcGFuZWwtdHBvLXRwZzExMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC10 cG8tdHBnMTEwLmMKQEAgLTM5NCw3ICszOTQsNyBAQCBzdGF0aWMgaW50IHRwZzExMF9nZXRfbW9k ZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVp Z2h0X21tID0gdHBnLT5oZWlnaHQ7CiAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdz ID0gdHBnLT5wYW5lbF9tb2RlLT5idXNfZmxhZ3M7CiAKLQltb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKHBhbmVsLT5kcm0sICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOworCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsICZ0cGctPnBhbmVsX21vZGUtPm1vZGUpOwogCWRy bV9tb2RlX3NldF9uYW1lKG1vZGUpOwogCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZF UiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fcGFuZWwuaCBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCmluZGV4IDVjNjJkZmU3M2M2OC4u ZDIxNDJlNDE3MGM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaAorKysgYi9p bmNsdWRlL2RybS9kcm1fcGFuZWwuaApAQCAtMTMyLDEzICsxMzIsNiBAQCBzdHJ1Y3QgZHJtX3Bh bmVsX2Z1bmNzIHsKICAqIHN0cnVjdCBkcm1fcGFuZWwgLSBEUk0gcGFuZWwgb2JqZWN0CiAgKi8K IHN0cnVjdCBkcm1fcGFuZWwgewotCS8qKgotCSAqIEBkcm06Ci0JICoKLQkgKiBEUk0gZGV2aWNl IG93bmluZyB0aGUgcGFuZWwuCi0JICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQogCS8q KgogCSAqIEBkZXY6CiAJICoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK