From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kent Overstreet Subject: [PATCH 09/10] idr: Remove unneeded idr locking, idr_preload() usage Date: Fri, 5 Jul 2013 22:08:20 -0700 Message-ID: <1373087301-23730-10-git-send-email-kmo@daterainc.com> References: <1373087301-23730-1-git-send-email-kmo@daterainc.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Airlie , Kent Overstreet , Steve Wise , nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org, =?UTF-8?q?Kai=20M=C3=A4kisara?= , dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Sean Hefty , Christoph Hellwig , Alasdair Kergon , Roland Dreier , sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org, Samuel Ortiz , linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Alon Levy , Dave Airlie , osst-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Chris Ball , Hal Rosenstock , Alex Dubov , Kent Overstreet , Tom Tucker , cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, To: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: In-Reply-To: <1373087301-23730-1-git-send-email-kmo-PEzghdH756F8UrSeD/g0lQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: netdev.vger.kernel.org RnJvbTogS2VudCBPdmVyc3RyZWV0IDxrb3ZlcnN0cmVldEBnb29nbGUuY29tPgoKT3VyIG5ldyBp ZHIgaW1wbGVtZW50YXRpb24gZG9lcyBpdHMgb3duIGxvY2tpbmcsIGluc3RlYWQgb2YgZm9yY2lu ZyBpdApvbnRvIHRoZSBjYWxsZXJzIGxpa2UgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbi4KCk1hbnkg b2YgdGhlIGV4aXN0aW5nIGlkciB1c2VycyBuZWVkIGxvY2tpbmcgZm9yIG1vcmUgdGhhbiBqdXN0 Cmlkcl9hbGxvYygpL2lkcl9yZW1vdmUoKS9pZHJfZmluZCgpIC0gdGhleSdyZSB0YWtpbmcgcmVm Y291bnRzIGFuZCBzdWNoCnVuZGVyIHRoZWlyIGxvY2tzIGFuZCB3ZSBjYW4ndCB0b3VjaCB0aG9z ZS4KCkJ1dCBhIHNpZ25pZmljYW50IG51bWJlciBvZiB1c2VycyBoYWQgbG9ja3MgdGhhdCBwcm90 ZWN0ZWQgbm90aGluZyBtb3JlCnRoYW4gdGhlIGlkciBkYXRhIHN0cnVjdHVyZXMgaXRzZWxmIC0g dGhvc2Ugd2UgY2FuIGdldCByaWQgb2YuCgpOb3RlIHRoYXQgd2UgaGF2ZSB0byBiZSBjYXJlZnVs IHdoZW4gcmVtb3ZpbmcgbG9ja3M7IGluIHNvbWUgcGxhY2VzLApsb2NrcyBhcHBlYXIgdG8gb25s eSBiZSBwcm90ZWN0aW5nIGlkcl9hbGxvYygpL2lkcl9yZW1vdmUoKSBjYWxscyBidXQKdGhleSdy ZSBhbHNvIHVzZWQgYnkgb3RoZXIgY29kZSB0aGF0IG5lZWRzIHRvIGVuc3VyZSB0aGUgaWRyIGlz bid0Cm1vZGlmaWVkIHdoaWxlIGl0J3MgZG9pbmcgc29tZXRoaW5nIGVsc2UgLSBzbyBpZGVhbGx5 IHdlIHdhbnQgdG8gZGVsZXRlCnRoZSBsb2NrIHRoYXQgcHJvdGVjdGVkIHRoZSBpZHIsIG9yIGVs c2Ugd2UgaGF2ZSB0byBjYXJlZnVsbHkgYXVkaXQgYWxsCnRoZSBvdGhlciBwbGFjZXMgaXQncyB1 c2VkLgoKVGhlcmUncyBhbHNvIGEgZmFpciBudW1iZXIgb2YgcGxhY2VzIHdoZXJlIHRoaW5ncyB3 ZXJlIGJlaW5nIGRvbmUgdW5kZXIKdGhlIGlkciBsb2NrIHVubmVjZXNzYXJpbHk7IGRyaXZlcnMv ZGNhL2RjYS1zeXNmcy5jIGlzIGEgZ29vZCBleGFtcGxlLgpkY2EtPmlkIGlzIHNldCB0byB0aGUg aWQgaWRyX2FsbG9jKCkgcmV0dXJucyB1bmRlciB0aGUgbG9jayAtIGJ1dAp0aGVyZSdzIG5vIGlk cl9maW5kKCkgY2FsbHMgdW5kZXIgdGhlIGxvY2ssIGFuZCBkY2EtPmlkIGlzbid0IHRvdWNoZWQg aW4KdGhlIGlkcl9yZW1vdmUoKSBwYXRocy4gU28gdGhlIGxvY2sgY2FuIGJlIHNhZmVseSBkZWxl dGVkLgoKVGhlIHJlYWxseSBuaWNlIHRoaW5nIGFib3V0IGRlbGV0aW5nIHRoaXMgdW5uZWNlc3Nh cnkgbG9ja2luZyBpcyB0aGF0IGl0CmxldHMgdXMgdHJpdmlhbGx5IGRlbGV0ZSBhIGxvdCBvZiBu b3cgdW5uZWNlc3NhcnkgaWRyX3ByZWxvYWQoKSAtIHdpdGgKaWRyIGRvaW5nIGl0cyBvd24gbG9j a2luZywgd2UgY2FuIHBhc3MgR0ZQX0tFUk5FTCB0byBpZHJfYWxsb2MoKSBqdXN0CmZpbmUuCgpT aWduZWQtb2ZmLWJ5OiBLZW50IE92ZXJzdHJlZXQgPGtvdmVyc3RyZWV0QGdvb2dsZS5jb20+CkNj OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogVGVqdW4gSGVv IDx0akBrZXJuZWwub3JnPgpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzog VG9tIFR1Y2tlciA8dG9tQG9wZW5ncmlkY29tcHV0aW5nLmNvbT4KQ2M6IFN0ZXZlIFdpc2UgPHN3 aXNlQG9wZW5ncmlkY29tcHV0aW5nLmNvbT4KQ2M6IFJvbGFuZCBEcmVpZXIgPHJvbGFuZEBrZXJu ZWwub3JnPgpDYzogU2VhbiBIZWZ0eSA8c2Vhbi5oZWZ0eUBpbnRlbC5jb20+CkNjOiBIYWwgUm9z ZW5zdG9jayA8aGFsLnJvc2Vuc3RvY2tAZ21haWwuY29tPgpDYzogQWxhc2RhaXIgS2VyZ29uIDxh Z2tAcmVkaGF0LmNvbT4KQ2M6IGRtLWRldmVsQHJlZGhhdC5jb20KQ2M6IFNhbXVlbCBPcnRpeiA8 c2FtZW9AbGludXguaW50ZWwuY29tPgpDYzogQWxleCBEdWJvdiA8b2FrYWRAeWFob28uY29tPgpD YzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KQ2M6IEdyZWcgS3JvYWgtSGFydG1hbiA8 Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+CkNjOiBDaHJpcyBCYWxsIDxjamJAbGFwdG9wLm9y Zz4KQ2M6ICJKYW1lcyBFLkouIEJvdHRvbWxleSIgPEpCb3R0b21sZXlAcGFyYWxsZWxzLmNvbT4K Q2M6IFdpbGxlbSBSaWVkZSA8b3NzdEByaWVkZS5vcmc+CkNjOiAiS2FpIE3DpGtpc2FyYSIgPEth aS5NYWtpc2FyYUBrb2x1bWJ1cy5maT4KQ2M6ICJOaWNob2xhcyBBLiBCZWxsaW5nZXIiIDxuYWJA bGludXgtaXNjc2kub3JnPgpDYzogTGkgWmVmYW4gPGxpemVmYW5AaHVhd2VpLmNvbT4KQ2M6IFZs YWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+CkNjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQWxvbiBMZXZ5IDxh bGV2eUByZWRoYXQuY29tPgpDYzogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNr aUBnbXguZGU+CkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KQ2M6IGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK Q2M6IGxpbnV4LXJkbWFAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tbWNAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1zY3NpQHZnZXIua2VybmVsLm9yZwpDYzogb3NzdC11c2Vyc0BsaXN0cy5z b3VyY2Vmb3JnZS5uZXQKQ2M6IHRhcmdldC1kZXZlbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGNvbnRh aW5lcnNAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKQ2M6IGNncm91cHNAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1zY3RwQHZnZXIua2VybmVsLm9yZwpDYzogbmV0ZGV2QHZnZXIua2VybmVs Lm9yZwpTaWduZWQtb2ZmLWJ5OiBLZW50IE92ZXJzdHJlZXQgPGttb0BkYXRlcmFpbmMuY29tPgot LS0KIGRyaXZlcnMvZGNhL2RjYS1zeXNmcy5jICAgICAgICAgICAgICAgICAgIHwgMTggKysrLS0t LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9jbWQuYyAgICAgICAgICAgICB8 ICA0ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAgICAgICAgICAgIHwgIDEg LQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfa21zLmMgICAgICAgICAgICAgfCAgMSAtCiBkcml2 ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMgICAgICAgICB8IDE5ICsrKysrLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMi5oICAgICAgIHwgIDEgLQog ZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3FwLmMgICAgfCAyMCArKy0tLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9tZC9kbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy MiArKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL21lbXN0aWNrL2NvcmUvbWVtc3RpY2su YyAgICAgICAgICB8IDE3ICsrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL21mZC9ydHN4X3Bjci5j ICAgICAgICAgICAgICAgICAgICB8IDEzICsrKy0tLS0tLS0tLS0KIGRyaXZlcnMvbWlzYy9jMnBv cnQvY29yZS5jICAgICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0KIGRyaXZlcnMvbWlzYy90 aWZtX2NvcmUuYyAgICAgICAgICAgICAgICAgIHwgMTUgKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJz L21tYy9jb3JlL2hvc3QuYyAgICAgICAgICAgICAgICAgICB8IDEzICsrLS0tLS0tLS0tLS0KIGRy aXZlcnMvc2NzaS9jaC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKystLS0tLS0tLS0t LS0KIGRyaXZlcnMvc2NzaS9zdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKy0tLS0t LS0tLS0tLQogZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmMgICAgICAgfCAxNyAr KysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmggICAg ICAgfCAgMSAtCiBkcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfbG9naW4uYyB8IDEy ICsrLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9jZ3JvdXAuaCAgICAgICAgICAgICAgICAgICAg fCAgMSAtCiBpbmNsdWRlL25ldC9zY3RwL3NjdHAuaCAgICAgICAgICAgICAgICAgICB8ICAxIC0K IGtlcm5lbC9jZ3JvdXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKy0tLS0tLS0t CiBrZXJuZWwvd29ya3F1ZXVlLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrLS0tLS0t LS0tLS0tLQogbmV0LzlwL3V0aWwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr LS0tLS0tLS0tLS0tLS0KIG5ldC9zY3RwL2Fzc29jaW9sYS5jICAgICAgICAgICAgICAgICAgICAg IHwgMTQgKystLS0tLS0tLS0tLS0KIG5ldC9zY3RwL3Byb3RvY29sLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEgLQogbmV0L3NjdHAvc29ja2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiAtLQogMjYgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjI4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZGNhL2RjYS1zeXNmcy5jIGIvZHJpdmVycy9kY2Ev ZGNhLXN5c2ZzLmMKaW5kZXggZWZmZGE2Ni4uNmJlNWZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9k Y2EvZGNhLXN5c2ZzLmMKKysrIGIvZHJpdmVycy9kY2EvZGNhLXN5c2ZzLmMKQEAgLTMxLDcgKzMx LDYgQEAKIAogc3RhdGljIHN0cnVjdCBjbGFzcyAqZGNhX2NsYXNzOwogc3RhdGljIHN0cnVjdCBp ZHIgZGNhX2lkcjsKLXN0YXRpYyBzcGlubG9ja190IGRjYV9pZHJfbG9jazsKIAogaW50IGRjYV9z eXNmc19hZGRfcmVxKHN0cnVjdCBkY2FfcHJvdmlkZXIgKmRjYSwgc3RydWN0IGRldmljZSAqZGV2 LCBpbnQgc2xvdCkKIHsKQEAgLTU1LDIzICs1NCwxNSBAQCBpbnQgZGNhX3N5c2ZzX2FkZF9wcm92 aWRlcihzdHJ1Y3QgZGNhX3Byb3ZpZGVyICpkY2EsIHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1 Y3QgZGV2aWNlICpjZDsKIAlpbnQgcmV0OwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Ci0J c3Bpbl9sb2NrKCZkY2FfaWRyX2xvY2spOwotCi0JcmV0ID0gaWRyX2FsbG9jKCZkY2FfaWRyLCBk Y2EsIEdGUF9OT1dBSVQpOwotCWlmIChyZXQgPj0gMCkKLQkJZGNhLT5pZCA9IHJldDsKLQotCXNw aW5fdW5sb2NrKCZkY2FfaWRyX2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOworCXJldCA9IGlk cl9hbGxvYygmZGNhX2lkciwgZGNhLCBHRlBfS0VSTkVMKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0 dXJuIHJldDsKIAorCWRjYS0+aWQgPSByZXQ7CisKIAljZCA9IGRldmljZV9jcmVhdGUoZGNhX2Ns YXNzLCBkZXYsIE1LREVWKDAsIDApLCBOVUxMLCAiZGNhJWQiLCBkY2EtPmlkKTsKIAlpZiAoSVNf RVJSKGNkKSkgewotCQlzcGluX2xvY2soJmRjYV9pZHJfbG9jayk7CiAJCWlkcl9yZW1vdmUoJmRj YV9pZHIsIGRjYS0+aWQpOwotCQlzcGluX3VubG9jaygmZGNhX2lkcl9sb2NrKTsKIAkJcmV0dXJu IFBUUl9FUlIoY2QpOwogCX0KIAlkY2EtPmNkID0gY2Q7CkBAIC04MiwxNSArNzMsMTIgQEAgdm9p ZCBkY2Ffc3lzZnNfcmVtb3ZlX3Byb3ZpZGVyKHN0cnVjdCBkY2FfcHJvdmlkZXIgKmRjYSkKIHsK IAlkZXZpY2VfdW5yZWdpc3RlcihkY2EtPmNkKTsKIAlkY2EtPmNkID0gTlVMTDsKLQlzcGluX2xv Y2soJmRjYV9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgmZGNhX2lkciwgZGNhLT5pZCk7Ci0Jc3Bp bl91bmxvY2soJmRjYV9pZHJfbG9jayk7CiB9CiAKIGludCBfX2luaXQgZGNhX3N5c2ZzX2luaXQo dm9pZCkKIHsKIAlpZHJfaW5pdCgmZGNhX2lkcik7Ci0Jc3Bpbl9sb2NrX2luaXQoJmRjYV9pZHJf bG9jayk7CiAKIAlkY2FfY2xhc3MgPSBjbGFzc19jcmVhdGUoVEhJU19NT0RVTEUsICJkY2EiKTsK IAlpZiAoSVNfRVJSKGRjYV9jbGFzcykpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX2NtZC5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21kLmMKaW5kZXggMmY5OWE2 OC4uNmEyYTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21kLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21kLmMKQEAgLTQ0OCwxMSArNDQ4LDkgQEAgaW50 IHF4bF9zdXJmYWNlX2lkX2FsbG9jKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LAogCWludCBpZHJf cmV0OwogCWludCBjb3VudCA9IDA7CiBhZ2FpbjoKLQlpZHJfcHJlbG9hZChHRlBfQVRPTUlDKTsK IAlzcGluX2xvY2soJnFkZXYtPnN1cmZfaWRfaWRyX2xvY2spOwotCWlkcl9yZXQgPSBpZHJfYWxs b2NfcmFuZ2UoJnFkZXYtPnN1cmZfaWRfaWRyLCBOVUxMLCAxLCAwLCBHRlBfTk9XQUlUKTsKKwlp ZHJfcmV0ID0gaWRyX2FsbG9jX3JhbmdlKCZxZGV2LT5zdXJmX2lkX2lkciwgTlVMTCwgMSwgMCwg R0ZQX0FUT01JQyk7CiAJc3Bpbl91bmxvY2soJnFkZXYtPnN1cmZfaWRfaWRyX2xvY2spOwotCWlk cl9wcmVsb2FkX2VuZCgpOwogCWlmIChpZHJfcmV0IDwgMCkKIAkJcmV0dXJuIGlkcl9yZXQ7CiAJ aGFuZGxlID0gaWRyX3JldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKaW5kZXggNDNkMDZhYi4uM2NjZjNh MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKQEAgLTI3Nyw3ICsyNzcsNiBAQCBzdHJ1Y3QgcXhsX2Rl dmljZSB7CiAJdWludDY0X3QJdmFfc2xvdF9tYXNrOwogCiAJc3RydWN0IGlkcglyZWxlYXNlX2lk cjsKLQlzcGlubG9ja190IHJlbGVhc2VfaWRyX2xvY2s7CiAJc3RydWN0IG11dGV4CWFzeW5jX2lv X211dGV4OwogCXVuc2lnbmVkIGludCBsYXN0X3NlbnRfaW9fY21kOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2tt cy5jCmluZGV4IGUyN2NlMmEuLjQ5MjM2NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2ttcy5jCkBAIC0xOTAs NyArMTkwLDYgQEAgaW50IHF4bF9kZXZpY2VfaW5pdChzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwK IAkJCUdGUF9LRVJORUwpOwogCiAJaWRyX2luaXQoJnFkZXYtPnJlbGVhc2VfaWRyKTsKLQlzcGlu X2xvY2tfaW5pdCgmcWRldi0+cmVsZWFzZV9pZHJfbG9jayk7CiAKIAlpZHJfaW5pdCgmcWRldi0+ c3VyZl9pZF9pZHIpOwogCXNwaW5fbG9ja19pbml0KCZxZGV2LT5zdXJmX2lkX2lkcl9sb2NrKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwppbmRleCA2MWMxYjBjLi4wYWZmNWYzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC00Myw3ICs0Myw2IEBAIHF4bF9yZWxlYXNlX2FsbG9j KHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LCBpbnQgdHlwZSwKIAkJICBzdHJ1Y3QgcXhsX3JlbGVh c2UgKipyZXQpCiB7CiAJc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNlOwotCWludCBoYW5kbGU7 CiAJc2l6ZV90IHNpemUgPSBzaXplb2YoKnJlbGVhc2UpOwogCWludCBpZHJfcmV0OwogCkBAIC01 NywyMCArNTYsMTYgQEAgcXhsX3JlbGVhc2VfYWxsb2Moc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYs IGludCB0eXBlLAogCXJlbGVhc2UtPnJlbGVhc2Vfb2Zmc2V0ID0gMDsKIAlyZWxlYXNlLT5zdXJm YWNlX3JlbGVhc2VfaWQgPSAwOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Ci0Jc3Bpbl9s b2NrKCZxZGV2LT5yZWxlYXNlX2lkcl9sb2NrKTsKLQlpZHJfcmV0ID0gaWRyX2FsbG9jX3Jhbmdl KCZxZGV2LT5yZWxlYXNlX2lkciwgcmVsZWFzZSwgMSwgMCwgR0ZQX05PV0FJVCk7Ci0Jc3Bpbl91 bmxvY2soJnFkZXYtPnJlbGVhc2VfaWRyX2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOwotCWhh bmRsZSA9IGlkcl9yZXQ7CisJaWRyX3JldCA9IGlkcl9hbGxvY19yYW5nZSgmcWRldi0+cmVsZWFz ZV9pZHIsIHJlbGVhc2UsCisJCQkJICAxLCAwLCBHRlBfS0VSTkVMKTsKIAlpZiAoaWRyX3JldCA8 IDApCiAJCWdvdG8gcmVsZWFzZV9mYWlsOwogCSpyZXQgPSByZWxlYXNlOwotCVFYTF9JTkZPKHFk ZXYsICJhbGxvY2F0ZWQgcmVsZWFzZSAlbGxkXG4iLCBoYW5kbGUpOwotCXJlbGVhc2UtPmlkID0g aGFuZGxlOworCVFYTF9JTkZPKHFkZXYsICJhbGxvY2F0ZWQgcmVsZWFzZSAlbGxkXG4iLCBpZHJf cmV0KTsKKwlyZWxlYXNlLT5pZCA9IGlkcl9yZXQ7CiByZWxlYXNlX2ZhaWw6CiAKLQlyZXR1cm4g aGFuZGxlOworCXJldHVybiBpZHJfcmV0OwogfQogCiB2b2lkCkBAIC05Miw5ICs4Nyw3IEBAIHF4 bF9yZWxlYXNlX2ZyZWUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsCiAJCXF4bF9mZW5jZV9yZW1v dmVfcmVsZWFzZSgmcmVsZWFzZS0+Ym9zW2ldLT5mZW5jZSwgcmVsZWFzZS0+aWQpOwogCQlxeGxf Ym9fdW5yZWYoJnJlbGVhc2UtPmJvc1tpXSk7CiAJfQotCXNwaW5fbG9jaygmcWRldi0+cmVsZWFz ZV9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgmcWRldi0+cmVsZWFzZV9pZHIsIHJlbGVhc2UtPmlk KTsKLQlzcGluX3VubG9jaygmcWRldi0+cmVsZWFzZV9pZHJfbG9jayk7CiAJa2ZyZWUocmVsZWFz ZSk7CiB9CiAKQEAgLTI2Niw5ICsyNTksNyBAQCBzdHJ1Y3QgcXhsX3JlbGVhc2UgKnF4bF9yZWxl YXNlX2Zyb21faWRfbG9ja2VkKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LAogewogCXN0cnVjdCBx eGxfcmVsZWFzZSAqcmVsZWFzZTsKIAotCXNwaW5fbG9jaygmcWRldi0+cmVsZWFzZV9pZHJfbG9j ayk7CiAJcmVsZWFzZSA9IGlkcl9maW5kKCZxZGV2LT5yZWxlYXNlX2lkciwgaWQpOwotCXNwaW5f dW5sb2NrKCZxZGV2LT5yZWxlYXNlX2lkcl9sb2NrKTsKIAlpZiAoIXJlbGVhc2UpIHsKIAkJRFJN X0VSUk9SKCJmYWlsZWQgdG8gZmluZCBpZCBpbiByZWxlYXNlX2lkclxuIik7CiAJCXJldHVybiBO VUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyLmggYi9k cml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzIuaAppbmRleCBkNjE5ZDczLi43M2YyZTk2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzIuaAorKysgYi9k cml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzIuaApAQCAtMjY0LDcgKzI2NCw2IEBAIHN0 cnVjdCBjMl9wZF90YWJsZSB7CiAKIHN0cnVjdCBjMl9xcF90YWJsZSB7CiAJc3RydWN0IGlkciBp ZHI7Ci0Jc3BpbmxvY2tfdCBsb2NrOwogfTsKIAogc3RydWN0IGMyX2VsZW1lbnQgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3FwLmMgYi9kcml2ZXJzL2lu ZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcXAuYwppbmRleCA4NjcwOGRlLi5jYjgwYWE5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcXAuYworKysgYi9kcml2 ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcXAuYwpAQCAtMzgwLDM2ICszODAsMjEgQEAg c3RhdGljIGludCBkZXN0cm95X3FwKHN0cnVjdCBjMl9kZXYgKmMyZGV2LCBzdHJ1Y3QgYzJfcXAg KnFwKQogCiBzdGF0aWMgaW50IGMyX2FsbG9jX3FwbihzdHJ1Y3QgYzJfZGV2ICpjMmRldiwgc3Ry dWN0IGMyX3FwICpxcCkKIHsKLQlpbnQgcmV0OwotCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7 Ci0Jc3Bpbl9sb2NrX2lycSgmYzJkZXYtPnFwX3RhYmxlLmxvY2spOwotCi0JcmV0ID0gaWRyX2Fs bG9jX2N5Y2xpYygmYzJkZXYtPnFwX3RhYmxlLmlkciwgcXAsIDAsIDAsIEdGUF9OT1dBSVQpOwor CWludCByZXQgPSBpZHJfYWxsb2NfY3ljbGljKCZjMmRldi0+cXBfdGFibGUuaWRyLCBxcCwgMCwg MCwgR0ZQX0tFUk5FTCk7CiAJaWYgKHJldCA+PSAwKQogCQlxcC0+cXBuID0gcmV0OwogCi0Jc3Bp bl91bmxvY2tfaXJxKCZjMmRldi0+cXBfdGFibGUubG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7 CiAJcmV0dXJuIHJldCA8IDAgPyByZXQgOiAwOwogfQogCiBzdGF0aWMgdm9pZCBjMl9mcmVlX3Fw bihzdHJ1Y3QgYzJfZGV2ICpjMmRldiwgaW50IHFwbikKIHsKLQlzcGluX2xvY2tfaXJxKCZjMmRl di0+cXBfdGFibGUubG9jayk7CiAJaWRyX3JlbW92ZSgmYzJkZXYtPnFwX3RhYmxlLmlkciwgcXBu KTsKLQlzcGluX3VubG9ja19pcnEoJmMyZGV2LT5xcF90YWJsZS5sb2NrKTsKIH0KIAogc3RydWN0 IGMyX3FwICpjMl9maW5kX3FwbihzdHJ1Y3QgYzJfZGV2ICpjMmRldiwgaW50IHFwbikKIHsKLQl1 bnNpZ25lZCBsb25nIGZsYWdzOwotCXN0cnVjdCBjMl9xcCAqcXA7Ci0KLQlzcGluX2xvY2tfaXJx c2F2ZSgmYzJkZXYtPnFwX3RhYmxlLmxvY2ssIGZsYWdzKTsKLQlxcCA9IGlkcl9maW5kKCZjMmRl di0+cXBfdGFibGUuaWRyLCBxcG4pOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmMyZGV2LT5x cF90YWJsZS5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIHFwOworCXJldHVybiBpZHJfZmluZCgmYzJk ZXYtPnFwX3RhYmxlLmlkciwgcXBuKTsKIH0KIAogaW50IGMyX2FsbG9jX3FwKHN0cnVjdCBjMl9k ZXYgKmMyZGV2LApAQCAtMTAxNCw3ICs5OTksNiBAQCBvdXQ6CiAKIHZvaWQgYzJfaW5pdF9xcF90 YWJsZShzdHJ1Y3QgYzJfZGV2ICpjMmRldikKIHsKLQlzcGluX2xvY2tfaW5pdCgmYzJkZXYtPnFw X3RhYmxlLmxvY2spOwogCWlkcl9pbml0KCZjMmRldi0+cXBfdGFibGUuaWRyKTsKIH0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZC9kbS5jIGIvZHJpdmVycy9tZC9kbS5jCmluZGV4IDhiYTRmZGIu LmUyNGI3MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0uYworKysgYi9kcml2ZXJzL21kL2Rt LmMKQEAgLTE3NzUsOSArMTc3NSw3IEBAIHN0YXRpYyBpbnQgZG1fYW55X2Nvbmdlc3RlZCh2b2lk ICpjb25nZXN0ZWRfZGF0YSwgaW50IGJkaV9iaXRzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogc3RhdGljIHZvaWQg ZnJlZV9taW5vcihpbnQgbWlub3IpCiB7Ci0Jc3Bpbl9sb2NrKCZfbWlub3JfbG9jayk7CiAJaWRy X3JlbW92ZSgmX21pbm9yX2lkciwgbWlub3IpOwotCXNwaW5fdW5sb2NrKCZfbWlub3JfbG9jayk7 CiB9CiAKIC8qCkBAIC0xNzkwLDEzICsxNzg4LDggQEAgc3RhdGljIGludCBzcGVjaWZpY19taW5v cihpbnQgbWlub3IpCiAJaWYgKG1pbm9yID49ICgxIDw8IE1JTk9SQklUUykpCiAJCXJldHVybiAt RUlOVkFMOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Ci0Jc3Bpbl9sb2NrKCZfbWlub3Jf bG9jayk7Ci0KLQlyID0gaWRyX2FsbG9jX3JhbmdlKCZfbWlub3JfaWRyLCBNSU5PUl9BTExPQ0VE LCBtaW5vciwgbWlub3IgKyAxLCBHRlBfTk9XQUlUKTsKLQotCXNwaW5fdW5sb2NrKCZfbWlub3Jf bG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7CisJciA9IGlkcl9hbGxvY19yYW5nZSgmX21pbm9y X2lkciwgTUlOT1JfQUxMT0NFRCwgbWlub3IsCisJCQkgICAgbWlub3IgKyAxLCBHRlBfS0VSTkVM KTsKIAlpZiAociA8IDApCiAJCXJldHVybiByID09IC1FTk9TUEMgPyAtRUJVU1kgOiByOwogCXJl dHVybiAwOwpAQCAtMTgwNiwxMyArMTc5OSw4IEBAIHN0YXRpYyBpbnQgbmV4dF9mcmVlX21pbm9y KGludCAqbWlub3IpCiB7CiAJaW50IHI7CiAKLQlpZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKLQlz cGluX2xvY2soJl9taW5vcl9sb2NrKTsKLQotCXIgPSBpZHJfYWxsb2NfcmFuZ2UoJl9taW5vcl9p ZHIsIE1JTk9SX0FMTE9DRUQsIDAsIDEgPDwgTUlOT1JCSVRTLCBHRlBfTk9XQUlUKTsKLQotCXNw aW5fdW5sb2NrKCZfbWlub3JfbG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7CisJciA9IGlkcl9h bGxvY19yYW5nZSgmX21pbm9yX2lkciwgTUlOT1JfQUxMT0NFRCwKKwkJCSAgICAwLCAxIDw8IE1J Tk9SQklUUywgR0ZQX0tFUk5FTCk7CiAJaWYgKHIgPCAwKQogCQlyZXR1cm4gcjsKIAkqbWlub3Ig PSByOwpAQCAtMTkyMSw5ICsxOTA5LDcgQEAgc3RhdGljIHN0cnVjdCBtYXBwZWRfZGV2aWNlICph bGxvY19kZXYoaW50IG1pbm9yKQogCW1kLT5mbHVzaF9iaW8uYmlfcncgPSBXUklURV9GTFVTSDsK IAogCS8qIFBvcHVsYXRlIHRoZSBtYXBwaW5nLCBub2JvZHkga25vd3Mgd2UgZXhpc3QgeWV0ICov Ci0Jc3Bpbl9sb2NrKCZfbWlub3JfbG9jayk7CiAJb2xkX21kID0gaWRyX3JlcGxhY2UoJl9taW5v cl9pZHIsIG1kLCBtaW5vcik7Ci0Jc3Bpbl91bmxvY2soJl9taW5vcl9sb2NrKTsKIAogCUJVR19P TihvbGRfbWQgIT0gTUlOT1JfQUxMT0NFRCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVtc3Rp Y2svY29yZS9tZW1zdGljay5jIGIvZHJpdmVycy9tZW1zdGljay9jb3JlL21lbXN0aWNrLmMKaW5k ZXggNzBmYjA3Yy4uYjc1NDRhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZW1zdGljay9jb3JlL21l bXN0aWNrLmMKKysrIGIvZHJpdmVycy9tZW1zdGljay9jb3JlL21lbXN0aWNrLmMKQEAgLTI2LDcg KzI2LDYgQEAgbW9kdWxlX3BhcmFtKGNtZF9yZXRyaWVzLCB1aW50LCAwNjQ0KTsKIAogc3RhdGlj IHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3b3JrcXVldWU7CiBzdGF0aWMgREVGSU5FX0lEUiht ZW1zdGlja19ob3N0X2lkcik7Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1lbXN0aWNrX2hvc3Rf bG9jayk7CiAKIHN0YXRpYyBpbnQgbWVtc3RpY2tfZGV2X21hdGNoKHN0cnVjdCBtZW1zdGlja19k ZXYgKmNhcmQsCiAJCQkgICAgICBzdHJ1Y3QgbWVtc3RpY2tfZGV2aWNlX2lkICppZCkKQEAgLTUx MiwyNSArNTExLDE3IEBAIGludCBtZW1zdGlja19hZGRfaG9zdChzdHJ1Y3QgbWVtc3RpY2tfaG9z dCAqaG9zdCkKIHsKIAlpbnQgcmM7CiAKLQlpZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKLQlzcGlu X2xvY2soJm1lbXN0aWNrX2hvc3RfbG9jayk7Ci0KLQlyYyA9IGlkcl9hbGxvYygmbWVtc3RpY2tf aG9zdF9pZHIsIGhvc3QsIEdGUF9OT1dBSVQpOwotCWlmIChyYyA+PSAwKQotCQlob3N0LT5pZCA9 IHJjOwotCi0Jc3Bpbl91bmxvY2soJm1lbXN0aWNrX2hvc3RfbG9jayk7Ci0JaWRyX3ByZWxvYWRf ZW5kKCk7CisJcmMgPSBpZHJfYWxsb2MoJm1lbXN0aWNrX2hvc3RfaWRyLCBob3N0LCBHRlBfS0VS TkVMKTsKIAlpZiAocmMgPCAwKQogCQlyZXR1cm4gcmM7CiAKKwlob3N0LT5pZCA9IHJjOworCiAJ ZGV2X3NldF9uYW1lKCZob3N0LT5kZXYsICJtZW1zdGljayV1IiwgaG9zdC0+aWQpOwogCiAJcmMg PSBkZXZpY2VfYWRkKCZob3N0LT5kZXYpOwogCWlmIChyYykgewotCQlzcGluX2xvY2soJm1lbXN0 aWNrX2hvc3RfbG9jayk7CiAJCWlkcl9yZW1vdmUoJm1lbXN0aWNrX2hvc3RfaWRyLCBob3N0LT5p ZCk7Ci0JCXNwaW5fdW5sb2NrKCZtZW1zdGlja19ob3N0X2xvY2spOwogCQlyZXR1cm4gcmM7CiAJ fQogCkBAIC01NTQsOSArNTQ1LDcgQEAgdm9pZCBtZW1zdGlja19yZW1vdmVfaG9zdChzdHJ1Y3Qg bWVtc3RpY2tfaG9zdCAqaG9zdCkKIAlob3N0LT5zZXRfcGFyYW0oaG9zdCwgTUVNU1RJQ0tfUE9X RVIsIE1FTVNUSUNLX1BPV0VSX09GRik7CiAJbXV0ZXhfdW5sb2NrKCZob3N0LT5sb2NrKTsKIAot CXNwaW5fbG9jaygmbWVtc3RpY2tfaG9zdF9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZtZW1zdGlja19o b3N0X2lkciwgaG9zdC0+aWQpOwotCXNwaW5fdW5sb2NrKCZtZW1zdGlja19ob3N0X2xvY2spOwog CWRldmljZV9kZWwoJmhvc3QtPmRldik7CiB9CiBFWFBPUlRfU1lNQk9MKG1lbXN0aWNrX3JlbW92 ZV9ob3N0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3J0c3hfcGNyLmMgYi9kcml2ZXJzL21m ZC9ydHN4X3Bjci5jCmluZGV4IDkwNTUxM2QuLmFkNTNlNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWZkL3J0c3hfcGNyLmMKKysrIGIvZHJpdmVycy9tZmQvcnRzeF9wY3IuYwpAQCAtNDAsNyArNDAs NiBAQCBtb2R1bGVfcGFyYW0obXNpX2VuLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CiBNT0RV TEVfUEFSTV9ERVNDKG1zaV9lbiwgIkVuYWJsZSBNU0kiKTsKIAogc3RhdGljIERFRklORV9JRFIo cnRzeF9wY2lfaWRyKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0socnRzeF9wY2lfbG9jayk7CiAK IHN0YXRpYyBzdHJ1Y3QgbWZkX2NlbGwgcnRzeF9wY3JfY2VsbHNbXSA9IHsKIAlbUlRTWF9TRF9D QVJEXSA9IHsKQEAgLTEwOTYsMTYgKzEwOTUsMTIgQEAgc3RhdGljIGludCBydHN4X3BjaV9wcm9i ZShzdHJ1Y3QgcGNpX2RldiAqcGNpZGV2LAogCX0KIAloYW5kbGUtPnBjciA9IHBjcjsKIAotCWlk cl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmcnRzeF9wY2lfbG9jayk7Ci0JcmV0 ID0gaWRyX2FsbG9jKCZydHN4X3BjaV9pZHIsIHBjciwgR0ZQX05PV0FJVCk7Ci0JaWYgKHJldCA+ PSAwKQotCQlwY3ItPmlkID0gcmV0OwotCXNwaW5fdW5sb2NrKCZydHN4X3BjaV9sb2NrKTsKLQlp ZHJfcHJlbG9hZF9lbmQoKTsKKwlyZXQgPSBpZHJfYWxsb2MoJnJ0c3hfcGNpX2lkciwgcGNyLCBH RlBfS0VSTkVMKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBmcmVlX2hhbmRsZTsKIAorCXBjci0+ aWQgPSByZXQ7CisKIAlwY3ItPnBjaSA9IHBjaWRldjsKIAlkZXZfc2V0X2RydmRhdGEoJnBjaWRl di0+ZGV2LCBoYW5kbGUpOwogCkBAIC0xMjExLDkgKzEyMDYsNyBAQCBzdGF0aWMgdm9pZCBydHN4 X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBjaWRldikKIAlwY2lfcmVsZWFzZV9yZWdpb25z KHBjaWRldik7CiAJcGNpX2Rpc2FibGVfZGV2aWNlKHBjaWRldik7CiAKLQlzcGluX2xvY2soJnJ0 c3hfcGNpX2xvY2spOwogCWlkcl9yZW1vdmUoJnJ0c3hfcGNpX2lkciwgcGNyLT5pZCk7Ci0Jc3Bp bl91bmxvY2soJnJ0c3hfcGNpX2xvY2spOwogCiAJa2ZyZWUocGNyLT5zbG90cyk7CiAJa2ZyZWUo cGNyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9jMnBvcnQvY29yZS5jIGIvZHJpdmVycy9t aXNjL2MycG9ydC9jb3JlLmMKaW5kZXggOGExYWIxMC4uNWNkOGM5OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9taXNjL2MycG9ydC9jb3JlLmMKKysrIGIvZHJpdmVycy9taXNjL2MycG9ydC9jb3JlLmMK QEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgRFJJVkVSX05BTUUgICAgICAgICAgICAgImMycG9y dCIKICNkZWZpbmUgRFJJVkVSX1ZFUlNJT04gICAgICAgICAgIjAuNTEuMCIKIAotc3RhdGljIERF RklORV9TUElOTE9DSyhjMnBvcnRfaWRyX2xvY2spOwogc3RhdGljIERFRklORV9JRFIoYzJwb3J0 X2lkcik7CiAKIC8qCkBAIC04OTcsMTEgKzg5Niw3IEBAIHN0cnVjdCBjMnBvcnRfZGV2aWNlICpj MnBvcnRfZGV2aWNlX3JlZ2lzdGVyKGNoYXIgKm5hbWUsCiAJaWYgKHVubGlrZWx5KCFjMmRldikp CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7 Ci0Jc3Bpbl9sb2NrX2lycSgmYzJwb3J0X2lkcl9sb2NrKTsKLQlyZXQgPSBpZHJfYWxsb2MoJmMy cG9ydF9pZHIsIGMyZGV2LCBHRlBfTk9XQUlUKTsKLQlzcGluX3VubG9ja19pcnEoJmMycG9ydF9p ZHJfbG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7CisJcmV0ID0gaWRyX2FsbG9jKCZjMnBvcnRf aWRyLCBjMmRldiwgR0ZQX0tFUk5FTCk7CiAKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJvcl9p ZHJfYWxsb2M7CkBAIC05NDEsOSArOTM2LDcgQEAgZXJyb3JfZGV2aWNlX2NyZWF0ZV9iaW5fZmls ZToKIAlkZXZpY2VfZGVzdHJveShjMnBvcnRfY2xhc3MsIDApOwogCiBlcnJvcl9kZXZpY2VfY3Jl YXRlOgotCXNwaW5fbG9ja19pcnEoJmMycG9ydF9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgmYzJw b3J0X2lkciwgYzJkZXYtPmlkKTsKLQlzcGluX3VubG9ja19pcnEoJmMycG9ydF9pZHJfbG9jayk7 CiAKIGVycm9yX2lkcl9hbGxvYzoKIAlrZnJlZShjMmRldik7CkBAIC05NjAsOSArOTUzLDcgQEAg dm9pZCBjMnBvcnRfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGMycG9ydF9kZXZpY2UgKmMyZGV2 KQogCWRldl9pbmZvKGMyZGV2LT5kZXYsICJDMiBwb3J0ICVzIHJlbW92ZWRcbiIsIGMyZGV2LT5u YW1lKTsKIAogCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoYzJkZXYtPmRldiwgJmMycG9ydF9iaW5f YXR0cnMpOwotCXNwaW5fbG9ja19pcnEoJmMycG9ydF9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgm YzJwb3J0X2lkciwgYzJkZXYtPmlkKTsKLQlzcGluX3VubG9ja19pcnEoJmMycG9ydF9pZHJfbG9j ayk7CiAKIAlkZXZpY2VfZGVzdHJveShjMnBvcnRfY2xhc3MsIGMyZGV2LT5pZCk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWlzYy90aWZtX2NvcmUuYyBiL2RyaXZlcnMvbWlzYy90aWZtX2NvcmUu YwppbmRleCBjODI4YzI3Li5lZTdiMTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvdGlmbV9j b3JlLmMKKysrIGIvZHJpdmVycy9taXNjL3RpZm1fY29yZS5jCkBAIC0yMCw3ICsyMCw2IEBACiAK IHN0YXRpYyBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd29ya3F1ZXVlOwogc3RhdGljIERFRklO RV9JRFIodGlmbV9hZGFwdGVyX2lkcik7Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRpZm1fYWRh cHRlcl9sb2NrKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnRpZm1fbWVkaWFfdHlwZV9uYW1lKHVu c2lnbmVkIGNoYXIgdHlwZSwgdW5zaWduZWQgY2hhciBudCkKIHsKQEAgLTE5NiwyMiArMTk1LDE2 IEBAIGludCB0aWZtX2FkZF9hZGFwdGVyKHN0cnVjdCB0aWZtX2FkYXB0ZXIgKmZtKQogewogCWlu dCByYzsKIAotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmdGlmbV9hZGFw dGVyX2xvY2spOwotCXJjID0gaWRyX2FsbG9jKCZ0aWZtX2FkYXB0ZXJfaWRyLCBmbSwgR0ZQX05P V0FJVCk7Ci0JaWYgKHJjID49IDApCi0JCWZtLT5pZCA9IHJjOwotCXNwaW5fdW5sb2NrKCZ0aWZt X2FkYXB0ZXJfbG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7CisJcmMgPSBpZHJfYWxsb2MoJnRp Zm1fYWRhcHRlcl9pZHIsIGZtLCBHRlBfS0VSTkVMKTsKIAlpZiAocmMgPCAwKQogCQlyZXR1cm4g cmM7CiAKKwlmbS0+aWQgPSByYzsKKwogCWRldl9zZXRfbmFtZSgmZm0tPmRldiwgInRpZm0ldSIs IGZtLT5pZCk7CiAJcmMgPSBkZXZpY2VfYWRkKCZmbS0+ZGV2KTsKIAlpZiAocmMpIHsKLQkJc3Bp bl9sb2NrKCZ0aWZtX2FkYXB0ZXJfbG9jayk7CiAJCWlkcl9yZW1vdmUoJnRpZm1fYWRhcHRlcl9p ZHIsIGZtLT5pZCk7Ci0JCXNwaW5fdW5sb2NrKCZ0aWZtX2FkYXB0ZXJfbG9jayk7CiAJfQogCiAJ cmV0dXJuIHJjOwpAQCAtMjI4LDkgKzIyMSw3IEBAIHZvaWQgdGlmbV9yZW1vdmVfYWRhcHRlcihz dHJ1Y3QgdGlmbV9hZGFwdGVyICpmbSkKIAkJCWRldmljZV91bnJlZ2lzdGVyKCZmbS0+c29ja2V0 c1tjbnRdLT5kZXYpOwogCX0KIAotCXNwaW5fbG9jaygmdGlmbV9hZGFwdGVyX2xvY2spOwogCWlk cl9yZW1vdmUoJnRpZm1fYWRhcHRlcl9pZHIsIGZtLT5pZCk7Ci0Jc3Bpbl91bmxvY2soJnRpZm1f YWRhcHRlcl9sb2NrKTsKIAlkZXZpY2VfZGVsKCZmbS0+ZGV2KTsKIH0KIEVYUE9SVF9TWU1CT0wo dGlmbV9yZW1vdmVfYWRhcHRlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL2hvc3Qu YyBiL2RyaXZlcnMvbW1jL2NvcmUvaG9zdC5jCmluZGV4IDMzNTg3M2MuLmJmOWM2OGYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvaG9zdC5jCisrKyBiL2RyaXZlcnMvbW1jL2NvcmUvaG9z dC5jCkBAIC01NSw3ICs1NSw2IEBAIHZvaWQgbW1jX3VucmVnaXN0ZXJfaG9zdF9jbGFzcyh2b2lk KQogfQogCiBzdGF0aWMgREVGSU5FX0lEUihtbWNfaG9zdF9pZHIpOwotc3RhdGljIERFRklORV9T UElOTE9DSyhtbWNfaG9zdF9sb2NrKTsKIAogI2lmZGVmIENPTkZJR19NTUNfQ0xLR0FURQogc3Rh dGljIHNzaXplX3QgY2xrZ2F0ZV9kZWxheV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKQEAgLTQz NSwxNiArNDM0LDExIEBAIHN0cnVjdCBtbWNfaG9zdCAqbW1jX2FsbG9jX2hvc3QoaW50IGV4dHJh LCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAkvKiBzY2FubmluZyB3aWxsIGJlIGVuYWJsZWQgd2hl biB3ZSdyZSByZWFkeSAqLwogCWhvc3QtPnJlc2Nhbl9kaXNhYmxlID0gMTsKLQlpZHJfcHJlbG9h ZChHRlBfS0VSTkVMKTsKLQlzcGluX2xvY2soJm1tY19ob3N0X2xvY2spOwotCWVyciA9IGlkcl9h bGxvYygmbW1jX2hvc3RfaWRyLCBob3N0LCBHRlBfTk9XQUlUKTsKLQlpZiAoZXJyID49IDApCi0J CWhvc3QtPmluZGV4ID0gZXJyOwotCXNwaW5fdW5sb2NrKCZtbWNfaG9zdF9sb2NrKTsKLQlpZHJf cHJlbG9hZF9lbmQoKTsKKwllcnIgPSBpZHJfYWxsb2MoJm1tY19ob3N0X2lkciwgaG9zdCwgR0ZQ X0tFUk5FTCk7CiAJaWYgKGVyciA8IDApCiAJCWdvdG8gZnJlZTsKIAorCWhvc3QtPmluZGV4ID0g ZXJyOwogCWRldl9zZXRfbmFtZSgmaG9zdC0+Y2xhc3NfZGV2LCAibW1jJWQiLCBob3N0LT5pbmRl eCk7CiAKIAlob3N0LT5wYXJlbnQgPSBkZXY7CkBAIC01NTIsMTAgKzU0Niw3IEBAIEVYUE9SVF9T WU1CT0wobW1jX3JlbW92ZV9ob3N0KTsKICAqLwogdm9pZCBtbWNfZnJlZV9ob3N0KHN0cnVjdCBt bWNfaG9zdCAqaG9zdCkKIHsKLQlzcGluX2xvY2soJm1tY19ob3N0X2xvY2spOwogCWlkcl9yZW1v dmUoJm1tY19ob3N0X2lkciwgaG9zdC0+aW5kZXgpOwotCXNwaW5fdW5sb2NrKCZtbWNfaG9zdF9s b2NrKTsKLQogCXB1dF9kZXZpY2UoJmhvc3QtPmNsYXNzX2Rldik7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc2NzaS9jaC5jIGIvZHJpdmVycy9zY3NpL2NoLmMKaW5kZXggYzI2NGJlZC4uMDY5 Mzg3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2NoLmMKKysrIGIvZHJpdmVycy9zY3NpL2No LmMKQEAgLTExNSw3ICsxMTUsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiB9IHNjc2lfY2hhbmdlcjsK IAogc3RhdGljIERFRklORV9JRFIoY2hfaW5kZXhfaWRyKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxP Q0soY2hfaW5kZXhfbG9jayk7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXVuc2lnbmVkIGNo YXIgIHNlbnNlOwpAQCAtNTgyLDE1ICs1ODEsMTIgQEAgY2hfb3BlbihzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwogCiAJ bXV0ZXhfbG9jaygmY2hfbXV0ZXgpOwotCXNwaW5fbG9jaygmY2hfaW5kZXhfbG9jayk7CiAJY2gg PSBpZHJfZmluZCgmY2hfaW5kZXhfaWRyLCBtaW5vcik7CiAKIAlpZiAoTlVMTCA9PSBjaCB8fCBz Y3NpX2RldmljZV9nZXQoY2gtPmRldmljZSkpIHsKLQkJc3Bpbl91bmxvY2soJmNoX2luZGV4X2xv Y2spOwogCQltdXRleF91bmxvY2soJmNoX211dGV4KTsKIAkJcmV0dXJuIC1FTlhJTzsKIAl9Ci0J c3Bpbl91bmxvY2soJmNoX2luZGV4X2xvY2spOwogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gY2g7 CiAJbXV0ZXhfdW5sb2NrKCZjaF9tdXRleCk7CkBAIC05MDUsMTIgKzkwMSw4IEBAIHN0YXRpYyBp bnQgY2hfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQogCWlmIChOVUxMID09IGNoKQogCQlyZXR1 cm4gLUVOT01FTTsKIAotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmY2hf aW5kZXhfbG9jayk7Ci0JcmV0ID0gaWRyX2FsbG9jX3JhbmdlKCZjaF9pbmRleF9pZHIsIGNoLCAw LCBDSF9NQVhfREVWUyArIDEsIEdGUF9OT1dBSVQpOwotCXNwaW5fdW5sb2NrKCZjaF9pbmRleF9s b2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKLQorCXJldCA9IGlkcl9hbGxvY19yYW5nZSgmY2hf aW5kZXhfaWRyLCBjaCwgMCwKKwkJCSAgICAgIENIX01BWF9ERVZTICsgMSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKHJldCA8IDApIHsKIAkJaWYgKHJldCA9PSAtRU5PU1BDKQogCQkJcmV0ID0gLUVOT0RF VjsKQEAgLTk1MSw5ICs5NDMsNyBAQCBzdGF0aWMgaW50IGNoX3JlbW92ZShzdHJ1Y3QgZGV2aWNl ICpkZXYpCiB7CiAJc2NzaV9jaGFuZ2VyICpjaCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCi0J c3Bpbl9sb2NrKCZjaF9pbmRleF9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZjaF9pbmRleF9pZHIsIGNo LT5taW5vcik7Ci0Jc3Bpbl91bmxvY2soJmNoX2luZGV4X2xvY2spOwogCiAJZGV2aWNlX2Rlc3Ry b3koY2hfc3lzZnNfY2xhc3MsIE1LREVWKFNDU0lfQ0hBTkdFUl9NQUpPUixjaC0+bWlub3IpKTsK IAlrZnJlZShjaC0+ZHQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0LmMgYi9kcml2ZXJz L3Njc2kvc3QuYwppbmRleCA3NDNmZDcyLi4yZjEzYmY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nj c2kvc3QuYworKysgYi9kcml2ZXJzL3Njc2kvc3QuYwpAQCAtMjE0LDcgKzIxNCw2IEBAIHN0YXRp YyB2b2lkIHNjc2lfdGFwZV9yZWxlYXNlKHN0cnVjdCBrcmVmICopOwogI2RlZmluZSB0b19zY3Np X3RhcGUob2JqKSBjb250YWluZXJfb2Yob2JqLCBzdHJ1Y3Qgc2NzaV90YXBlLCBrcmVmKQogCiBz dGF0aWMgREVGSU5FX01VVEVYKHN0X3JlZl9tdXRleCk7Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NL KHN0X2luZGV4X2xvY2spOwogc3RhdGljIERFRklORV9TUElOTE9DSyhzdF91c2VfbG9jayk7CiBz dGF0aWMgREVGSU5FX0lEUihzdF9pbmRleF9pZHIpOwogCkBAIC0yMzUsNyArMjM0LDYgQEAgc3Rh dGljIHN0cnVjdCBzY3NpX3RhcGUgKnNjc2lfdGFwZV9nZXQoaW50IGRldikKIAlzdHJ1Y3Qgc2Nz aV90YXBlICpTVHAgPSBOVUxMOwogCiAJbXV0ZXhfbG9jaygmc3RfcmVmX211dGV4KTsKLQlzcGlu X2xvY2soJnN0X2luZGV4X2xvY2spOwogCiAJU1RwID0gaWRyX2ZpbmQoJnN0X2luZGV4X2lkciwg ZGV2KTsKIAlpZiAoIVNUcCkgZ290byBvdXQ7CkBAIC0yNTQsNyArMjUyLDYgQEAgb3V0X3B1dDoK IAlrcmVmX3B1dCgmU1RwLT5rcmVmLCBzY3NpX3RhcGVfcmVsZWFzZSk7CiAJU1RwID0gTlVMTDsK IG91dDoKLQlzcGluX3VubG9jaygmc3RfaW5kZXhfbG9jayk7CiAJbXV0ZXhfdW5sb2NrKCZzdF9y ZWZfbXV0ZXgpOwogCXJldHVybiBTVHA7CiB9CkBAIC00MTgyLDExICs0MTc5LDcgQEAgc3RhdGlj IGludCBzdF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJICAgIHRwbnQtPmJsa3NpemVfY2hh bmdlZCA9IDA7CiAJbXV0ZXhfaW5pdCgmdHBudC0+bG9jayk7CiAKLQlpZHJfcHJlbG9hZChHRlBf S0VSTkVMKTsKLQlzcGluX2xvY2soJnN0X2luZGV4X2xvY2spOwotCWVycm9yID0gaWRyX2FsbG9j X3JhbmdlKCZzdF9pbmRleF9pZHIsIHRwbnQsIDAsIFNUX01BWF9UQVBFUyArIDEsIEdGUF9OT1dB SVQpOwotCXNwaW5fdW5sb2NrKCZzdF9pbmRleF9sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsK KwllcnJvciA9IGlkcl9hbGxvY19yYW5nZSgmc3RfaW5kZXhfaWRyLCB0cG50LCAwLCBTVF9NQVhf VEFQRVMgKyAxLCBHRlBfS0VSTkVMKTsKIAlpZiAoZXJyb3IgPCAwKSB7CiAJCXByX3dhcm4oInN0 OiBpZHIgYWxsb2NhdGlvbiBmYWlsZWQ6ICVkXG4iLCBlcnJvcik7CiAJCWdvdG8gb3V0X3B1dF9x dWV1ZTsKQEAgLTQyMTIsOSArNDIwNSw3IEBAIHN0YXRpYyBpbnQgc3RfcHJvYmUoc3RydWN0IGRl dmljZSAqZGV2KQogCiBvdXRfcmVtb3ZlX2RldnM6CiAJcmVtb3ZlX2NkZXZzKHRwbnQpOwotCXNw aW5fbG9jaygmc3RfaW5kZXhfbG9jayk7CiAJaWRyX3JlbW92ZSgmc3RfaW5kZXhfaWRyLCB0cG50 LT5pbmRleCk7Ci0Jc3Bpbl91bmxvY2soJnN0X2luZGV4X2xvY2spOwogb3V0X3B1dF9xdWV1ZToK IAlibGtfcHV0X3F1ZXVlKGRpc2stPnF1ZXVlKTsKIG91dF9wdXRfZGlzazoKQEAgLTQyMzgsOSAr NDIyOSw3IEBAIHN0YXRpYyBpbnQgc3RfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIAltdXRl eF9sb2NrKCZzdF9yZWZfbXV0ZXgpOwogCWtyZWZfcHV0KCZ0cG50LT5rcmVmLCBzY3NpX3RhcGVf cmVsZWFzZSk7CiAJbXV0ZXhfdW5sb2NrKCZzdF9yZWZfbXV0ZXgpOwotCXNwaW5fbG9jaygmc3Rf aW5kZXhfbG9jayk7CiAJaWRyX3JlbW92ZSgmc3RfaW5kZXhfaWRyLCBpbmRleCk7Ci0Jc3Bpbl91 bmxvY2soJnN0X2luZGV4X2xvY2spOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQuYyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lz Y3NpX3RhcmdldC5jCmluZGV4IGIwNmQyYTguLmE0Nzc3YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jCisrKyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lz Y3NpX3RhcmdldC5jCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobnBf bG9jayk7CiBzdGF0aWMgc3RydWN0IGlkciB0aXFuX2lkcjsKIHN0cnVjdCBpZHIgc2Vzc19pZHI7 CiBzdHJ1Y3QgbXV0ZXggYXV0aF9pZF9sb2NrOwotc3BpbmxvY2tfdCBzZXNzX2lkcl9sb2NrOwog CiBzdHJ1Y3QgaXNjc2l0X2dsb2JhbCAqaXNjc2l0X2dsb2JhbDsKIApAQCAtMTQ3LDIyICsxNDYs MTcgQEAgc3RydWN0IGlzY3NpX3RpcW4gKmlzY3NpdF9hZGRfdGlxbih1bnNpZ25lZCBjaGFyICpi dWYpCiAKIAl0aXFuLT50aXFuX3N0YXRlID0gVElRTl9TVEFURV9BQ1RJVkU7CiAKLQlpZHJfcHJl bG9hZChHRlBfS0VSTkVMKTsKLQlzcGluX2xvY2soJnRpcW5fbG9jayk7Ci0KLQlyZXQgPSBpZHJf YWxsb2MoJnRpcW5faWRyLCBOVUxMLCBHRlBfTk9XQUlUKTsKKwlyZXQgPSBpZHJfYWxsb2MoJnRp cW5faWRyLCBOVUxMLCBHRlBfS0VSTkVMKTsKIAlpZiAocmV0IDwgMCkgewogCQlwcl9lcnIoImlk cl9hbGxvYygpIGZhaWxlZCBmb3IgdGlxbi0+dGlxbl9pbmRleFxuIik7Ci0JCXNwaW5fdW5sb2Nr KCZ0aXFuX2xvY2spOwotCQlpZHJfcHJlbG9hZF9lbmQoKTsKIAkJa2ZyZWUodGlxbik7CiAJCXJl dHVybiBFUlJfUFRSKHJldCk7CiAJfQogCXRpcW4tPnRpcW5faW5kZXggPSByZXQ7Ci0JbGlzdF9h ZGRfdGFpbCgmdGlxbi0+dGlxbl9saXN0LCAmZ190aXFuX2xpc3QpOwogCisJc3Bpbl9sb2NrKCZ0 aXFuX2xvY2spOworCWxpc3RfYWRkX3RhaWwoJnRpcW4tPnRpcW5fbGlzdCwgJmdfdGlxbl9saXN0 KTsKIAlzcGluX3VubG9jaygmdGlxbl9sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKIAogCXBy X2RlYnVnKCJDT1JFWzBdIC0gQWRkZWQgaVNDU0kgVGFyZ2V0IElRTjogJXNcbiIsIHRpcW4tPnRp cW4pOwogCkBAIC0yMDEsOCArMTk1LDggQEAgdm9pZCBpc2NzaXRfZGVsX3RpcW4oc3RydWN0IGlz Y3NpX3RpcW4gKnRpcW4pCiAKIAlzcGluX2xvY2soJnRpcW5fbG9jayk7CiAJbGlzdF9kZWwoJnRp cW4tPnRpcW5fbGlzdCk7Ci0JaWRyX3JlbW92ZSgmdGlxbl9pZHIsIHRpcW4tPnRpcW5faW5kZXgp OwogCXNwaW5fdW5sb2NrKCZ0aXFuX2xvY2spOworCWlkcl9yZW1vdmUoJnRpcW5faWRyLCB0aXFu LT50aXFuX2luZGV4KTsKIAogCXByX2RlYnVnKCJDT1JFWzBdIC0gRGVsZXRlZCBpU0NTSSBUYXJn ZXQgSVFOOiAlc1xuIiwKIAkJCXRpcW4tPnRpcW4pOwpAQCAtNTE5LDcgKzUxMyw2IEBAIHN0YXRp YyBpbnQgX19pbml0IGlzY3NpX3RhcmdldF9pbml0X21vZHVsZSh2b2lkKQogCQlyZXR1cm4gLTE7 CiAJfQogCW11dGV4X2luaXQoJmF1dGhfaWRfbG9jayk7Ci0Jc3Bpbl9sb2NrX2luaXQoJnNlc3Nf aWRyX2xvY2spOwogCWlkcl9pbml0KCZ0aXFuX2lkcik7CiAJaWRyX2luaXQoJnNlc3NfaWRyKTsK IApAQCAtNDQxNyw5ICs0NDEwLDcgQEAgaW50IGlzY3NpdF9jbG9zZV9zZXNzaW9uKHN0cnVjdCBp c2NzaV9zZXNzaW9uICpzZXNzKQogCXByX2RlYnVnKCJEZWNyZW1lbnRlZCBudW1iZXIgb2YgYWN0 aXZlIGlTQ1NJIFNlc3Npb25zIG9uIgogCQkiIGlTQ1NJIFRQRzogJWh1IHRvICV1XG4iLCB0cGct PnRwZ3QsIHRwZy0+bnNlc3Npb25zKTsKIAotCXNwaW5fbG9jaygmc2Vzc19pZHJfbG9jayk7CiAJ aWRyX3JlbW92ZSgmc2Vzc19pZHIsIHNlc3MtPnNlc3Npb25faW5kZXgpOwotCXNwaW5fdW5sb2Nr KCZzZXNzX2lkcl9sb2NrKTsKIAogCWtmcmVlKHNlc3MtPnNlc3Nfb3BzKTsKIAlzZXNzLT5zZXNz X29wcyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJn ZXQuaCBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5oCmluZGV4IGEwMDUwYjIu LmE0N2Q3MTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQu aAorKysgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQuaApAQCAtNDMsNyArNDMs NiBAQCBleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmxpb19yMnRfY2FjaGU7CiAKIGV4dGVybiBz dHJ1Y3QgaWRyIHNlc3NfaWRyOwogZXh0ZXJuIHN0cnVjdCBtdXRleCBhdXRoX2lkX2xvY2s7Ci1l eHRlcm4gc3BpbmxvY2tfdCBzZXNzX2lkcl9sb2NrOwogCiAKICNlbmRpZiAgIC8qKiogSVNDU0lf VEFSR0VUX0ggKioqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFy Z2V0X2xvZ2luLmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfbG9naW4uYwpp bmRleCA4N2E4MmI2Li5hMGI5NTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9p c2NzaV90YXJnZXRfbG9naW4uYworKysgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJn ZXRfbG9naW4uYwpAQCAtMjg5LDE0ICsyODksNyBAQCBzdGF0aWMgaW50IGlzY3NpX2xvZ2luX3pl cm9fdHNpaF9zMSgKIAlzcGluX2xvY2tfaW5pdCgmc2Vzcy0+c2Vzc2lvbl91c2FnZV9sb2NrKTsK IAlzcGluX2xvY2tfaW5pdCgmc2Vzcy0+dHR0X2xvY2spOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tF Uk5FTCk7Ci0Jc3Bpbl9sb2NrX2JoKCZzZXNzX2lkcl9sb2NrKTsKLQlyZXQgPSBpZHJfYWxsb2Mo JnNlc3NfaWRyLCBOVUxMLCBHRlBfTk9XQUlUKTsKLQlpZiAocmV0ID49IDApCi0JCXNlc3MtPnNl c3Npb25faW5kZXggPSByZXQ7Ci0Jc3Bpbl91bmxvY2tfYmgoJnNlc3NfaWRyX2xvY2spOwotCWlk cl9wcmVsb2FkX2VuZCgpOwotCisJcmV0ID0gaWRyX2FsbG9jKCZzZXNzX2lkciwgTlVMTCwgR0ZQ X0tFUk5FTCk7CiAJaWYgKHJldCA8IDApIHsKIAkJcHJfZXJyKCJpZHJfYWxsb2MoKSBmb3Igc2Vz c19pZHIgZmFpbGVkXG4iKTsKIAkJaXNjc2l0X3R4X2xvZ2luX3JzcChjb25uLCBJU0NTSV9TVEFU VVNfQ0xTX1RBUkdFVF9FUlIsCkBAIC0zMDUsNiArMjk4LDcgQEAgc3RhdGljIGludCBpc2NzaV9s b2dpbl96ZXJvX3RzaWhfczEoCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAorCXNlc3MtPnNlc3Np b25faW5kZXggPSByZXQ7CiAJc2Vzcy0+Y3JlYXRpb25fdGltZSA9IGdldF9qaWZmaWVzXzY0KCk7 CiAJc3Bpbl9sb2NrX2luaXQoJnNlc3MtPnNlc3Npb25fc3RhdHNfbG9jayk7CiAJLyoKQEAgLTEz MTUsOSArMTMwOSw3IEBAIG5ld19zZXNzX291dDoKIAlpZiAoY29ubi0+c2Vzcy0+c2Vfc2VzcykK IAkJdHJhbnNwb3J0X2ZyZWVfc2Vzc2lvbihjb25uLT5zZXNzLT5zZV9zZXNzKTsKIAlpZiAoY29u bi0+c2Vzcy0+c2Vzc2lvbl9pbmRleCAhPSAwKSB7Ci0JCXNwaW5fbG9ja19iaCgmc2Vzc19pZHJf bG9jayk7CiAJCWlkcl9yZW1vdmUoJnNlc3NfaWRyLCBjb25uLT5zZXNzLT5zZXNzaW9uX2luZGV4 KTsKLQkJc3Bpbl91bmxvY2tfYmgoJnNlc3NfaWRyX2xvY2spOwogCX0KIAlrZnJlZShjb25uLT5z ZXNzLT5zZXNzX29wcyk7CiAJa2ZyZWUoY29ubi0+c2Vzcyk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2Nncm91cC5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaAppbmRleCA4YmRhMTI5Li4w YTVkOGFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nncm91cC5oCisrKyBiL2luY2x1ZGUv bGludXgvY2dyb3VwLmgKQEAgLTYyMSw3ICs2MjEsNiBAQCBzdHJ1Y3QgY2dyb3VwX3N1YnN5cyB7 CiAJc3RydWN0IGxpc3RfaGVhZCBzaWJsaW5nOwogCS8qIHVzZWQgd2hlbiB1c2VfaWQgPT0gdHJ1 ZSAqLwogCXN0cnVjdCBpZHIgaWRyOwotCXNwaW5sb2NrX3QgaWRfbG9jazsKIAogCS8qIGxpc3Qg b2YgY2Z0eXBlX3NldHMgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGNmdHNldHM7CmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaCBiL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCmluZGV4 IGNkODk1MTAuLjdmOGNlNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCisr KyBiL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oCkBAIC02MDMsNyArNjAzLDYgQEAgZXh0ZXJuIHN0 cnVjdCBwcm90byBzY3RwdjZfcHJvdDsKIHZvaWQgc2N0cF9wdXRfcG9ydChzdHJ1Y3Qgc29jayAq c2spOwogCiBleHRlcm4gc3RydWN0IGlkciBzY3RwX2Fzc29jc19pZDsKLWV4dGVybiBzcGlubG9j a190IHNjdHBfYXNzb2NzX2lkX2xvY2s7CiAKIC8qIFN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zLiAq LwogCmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3VwLmMgYi9rZXJuZWwvY2dyb3VwLmMKaW5kZXgg NTRhNTkxYi4uOTk4ZjZkZSAxMDA2NDQKLS0tIGEva2VybmVsL2Nncm91cC5jCisrKyBiL2tlcm5l bC9jZ3JvdXAuYwpAQCAtNTE0Myw5ICs1MTQzLDcgQEAgdm9pZCBmcmVlX2Nzc19pZChzdHJ1Y3Qg Y2dyb3VwX3N1YnN5cyAqc3MsIHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpCiAKIAly Y3VfYXNzaWduX3BvaW50ZXIoaWQtPmNzcywgTlVMTCk7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKGNz cy0+aWQsIE5VTEwpOwotCXNwaW5fbG9jaygmc3MtPmlkX2xvY2spOwogCWlkcl9yZW1vdmUoJnNz LT5pZHIsIGlkLT5pZCk7Ci0Jc3Bpbl91bmxvY2soJnNzLT5pZF9sb2NrKTsKIAlrZnJlZV9yY3Uo aWQsIHJjdV9oZWFkKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGZyZWVfY3NzX2lkKTsKQEAgLTUx NjcsMTIgKzUxNjUsOCBAQCBzdGF0aWMgc3RydWN0IGNzc19pZCAqZ2V0X25ld19jc3NpZChzdHJ1 Y3QgY2dyb3VwX3N1YnN5cyAqc3MsIGludCBkZXB0aCkKIAlpZiAoIW5ld2lkKQogCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKIAotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9j aygmc3MtPmlkX2xvY2spOwogCS8qIERvbid0IHVzZSAwLiBhbGxvY2F0ZXMgYW4gSUQgb2YgMS02 NTUzNSAqLwotCXJldCA9IGlkcl9hbGxvY19yYW5nZSgmc3MtPmlkciwgbmV3aWQsIDEsIENTU19J RF9NQVggKyAxLCBHRlBfTk9XQUlUKTsKLQlzcGluX3VubG9jaygmc3MtPmlkX2xvY2spOwotCWlk cl9wcmVsb2FkX2VuZCgpOworCXJldCA9IGlkcl9hbGxvY19yYW5nZSgmc3MtPmlkciwgbmV3aWQs IDEsIENTU19JRF9NQVggKyAxLCBHRlBfS0VSTkVMKTsKIAogCS8qIFJldHVybnMgZXJyb3Igd2hl biB0aGVyZSBhcmUgbm8gZnJlZSBzcGFjZXMgZm9yIG5ldyBJRC4qLwogCWlmIChyZXQgPCAwKQpA QCAtNTE5Miw3ICs1MTg2LDYgQEAgc3RhdGljIGludCBfX2luaXRfb3JfbW9kdWxlIGNncm91cF9p bml0X2lkcihzdHJ1Y3QgY2dyb3VwX3N1YnN5cyAqc3MsCiB7CiAJc3RydWN0IGNzc19pZCAqbmV3 aWQ7CiAKLQlzcGluX2xvY2tfaW5pdCgmc3MtPmlkX2xvY2spOwogCWlkcl9pbml0KCZzcy0+aWRy KTsKIAogCW5ld2lkID0gZ2V0X25ld19jc3NpZChzcywgMCk7CmRpZmYgLS1naXQgYS9rZXJuZWwv d29ya3F1ZXVlLmMgYi9rZXJuZWwvd29ya3F1ZXVlLmMKaW5kZXggYjQ1Njk0Zi4uYmU1ODUyYyAx MDA2NDQKLS0tIGEva2VybmVsL3dvcmtxdWV1ZS5jCisrKyBiL2tlcm5lbC93b3JrcXVldWUuYwpA QCAtMTY5MCwxMyArMTY5MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgd29ya2VyICpjcmVhdGVfd29ya2Vy KHN0cnVjdCB3b3JrZXJfcG9vbCAqcG9vbCkKIAkgKiBJRCBpcyBuZWVkZWQgdG8gZGV0ZXJtaW5l IGt0aHJlYWQgbmFtZS4gIEFsbG9jYXRlIElEIGZpcnN0CiAJICogd2l0aG91dCBpbnN0YWxsaW5n IHRoZSBwb2ludGVyLgogCSAqLwotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9j a19pcnEoJnBvb2wtPmxvY2spOwotCi0JaWQgPSBpZHJfYWxsb2MoJnBvb2wtPndvcmtlcl9pZHIs IE5VTEwsIEdGUF9OT1dBSVQpOwotCi0Jc3Bpbl91bmxvY2tfaXJxKCZwb29sLT5sb2NrKTsKLQlp ZHJfcHJlbG9hZF9lbmQoKTsKKwlpZCA9IGlkcl9hbGxvYygmcG9vbC0+d29ya2VyX2lkciwgTlVM TCwgR0ZQX0tFUk5FTCk7CiAJaWYgKGlkIDwgMCkKIAkJZ290byBmYWlsOwogCkBAIC0xNzM3LDE4 ICsxNzMxLDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgd29ya2VyICpjcmVhdGVfd29ya2VyKHN0cnVjdCB3 b3JrZXJfcG9vbCAqcG9vbCkKIAkJd29ya2VyLT5mbGFncyB8PSBXT1JLRVJfVU5CT1VORDsKIAog CS8qIHN1Y2Nlc3NmdWwsIGNvbW1pdCB0aGUgcG9pbnRlciB0byBpZHIgKi8KLQlzcGluX2xvY2tf aXJxKCZwb29sLT5sb2NrKTsKIAlpZHJfcmVwbGFjZSgmcG9vbC0+d29ya2VyX2lkciwgd29ya2Vy LCB3b3JrZXItPmlkKTsKLQlzcGluX3VubG9ja19pcnEoJnBvb2wtPmxvY2spOwogCiAJcmV0dXJu IHdvcmtlcjsKIAogZmFpbDoKLQlpZiAoaWQgPj0gMCkgewotCQlzcGluX2xvY2tfaXJxKCZwb29s LT5sb2NrKTsKKwlpZiAoaWQgPj0gMCkKIAkJaWRyX3JlbW92ZSgmcG9vbC0+d29ya2VyX2lkciwg aWQpOwotCQlzcGluX3VubG9ja19pcnEoJnBvb2wtPmxvY2spOwotCX0KIAlrZnJlZSh3b3JrZXIp OwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvbmV0LzlwL3V0aWwuYyBiL25ldC85cC91 dGlsLmMKaW5kZXggY2MzMWM2Mi4uMjM2OTNkNiAxMDA2NDQKLS0tIGEvbmV0LzlwL3V0aWwuYwor KysgYi9uZXQvOXAvdXRpbC5jCkBAIC00MSw3ICs0MSw2IEBACiAgKi8KIAogc3RydWN0IHA5X2lk cG9vbCB7Ci0Jc3BpbmxvY2tfdCBsb2NrOwogCXN0cnVjdCBpZHIgcG9vbDsKIH07CiAKQEAgLTU4 LDcgKzU3LDYgQEAgc3RydWN0IHA5X2lkcG9vbCAqcDlfaWRwb29sX2NyZWF0ZSh2b2lkKQogCWlm ICghcCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlzcGluX2xvY2tfaW5pdCgmcC0+ bG9jayk7CiAJaWRyX2luaXQoJnAtPnBvb2wpOwogCiAJcmV0dXJuIHA7CkBAIC04OCwxNiArODYs OSBAQCBFWFBPUlRfU1lNQk9MKHA5X2lkcG9vbF9kZXN0cm95KTsKIGludCBwOV9pZHBvb2xfZ2V0 KHN0cnVjdCBwOV9pZHBvb2wgKnApCiB7CiAJaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsK LQotCWlkcl9wcmVsb2FkKEdGUF9OT0ZTKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcC0+bG9jaywg ZmxhZ3MpOwogCiAJLyogbm8gbmVlZCB0byBzdG9yZSBleGFjdGx5IHAsIHdlIGp1c3QgbmVlZCBz b21ldGhpbmcgbm9uLW51bGwgKi8KLQlpID0gaWRyX2FsbG9jKCZwLT5wb29sLCBwLCBHRlBfTk9X QUlUKTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnAtPmxvY2ssIGZsYWdzKTsKLQlpZHJf cHJlbG9hZF9lbmQoKTsKKwlpID0gaWRyX2FsbG9jKCZwLT5wb29sLCBwLCBHRlBfTk9GUyk7CiAJ aWYgKGkgPCAwKQogCQlyZXR1cm4gLTE7CiAKQEAgLTExNywxMyArMTA4LDkgQEAgRVhQT1JUX1NZ TUJPTChwOV9pZHBvb2xfZ2V0KTsKIAogdm9pZCBwOV9pZHBvb2xfcHV0KGludCBpZCwgc3RydWN0 IHA5X2lkcG9vbCAqcCkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCiAJcDlfZGVidWcoUDlf REVCVUdfTVVYLCAiIGlkICVkIHBvb2wgJXBcbiIsIGlkLCBwKTsKIAotCXNwaW5fbG9ja19pcnFz YXZlKCZwLT5sb2NrLCBmbGFncyk7CiAJaWRyX3JlbW92ZSgmcC0+cG9vbCwgaWQpOwotCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnAtPmxvY2ssIGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0wocDlf aWRwb29sX3B1dCk7CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3Nj dHAvYXNzb2Npb2xhLmMKaW5kZXggOTFjZmQ4Zi4uZDI3MzllMCAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvYXNzb2Npb2xhLmMKKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKQEAgLTQ2NywxMSArNDY3 LDggQEAgc3RhdGljIHZvaWQgc2N0cF9hc3NvY2lhdGlvbl9kZXN0cm95KHN0cnVjdCBzY3RwX2Fz c29jaWF0aW9uICphc29jKQogCXNjdHBfZW5kcG9pbnRfcHV0KGFzb2MtPmVwKTsKIAlzb2NrX3B1 dChhc29jLT5iYXNlLnNrKTsKIAotCWlmIChhc29jLT5hc3NvY19pZCAhPSAwKSB7Ci0JCXNwaW5f bG9ja19iaCgmc2N0cF9hc3NvY3NfaWRfbG9jayk7CisJaWYgKGFzb2MtPmFzc29jX2lkICE9IDAp CiAJCWlkcl9yZW1vdmUoJnNjdHBfYXNzb2NzX2lkLCBhc29jLT5hc3NvY19pZCk7Ci0JCXNwaW5f dW5sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsKLQl9CiAKIAlXQVJOX09OKGF0b21pY19y ZWFkKCZhc29jLT5ybWVtX2FsbG9jKSk7CiAKQEAgLTE1ODAsMjEgKzE1NzcsMTQgQEAgaW50IHNj dHBfYXNzb2NfbG9va3VwX2xhZGRyKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogLyog U2V0IGFuIGFzc29jaWF0aW9uIGlkIGZvciBhIGdpdmVuIGFzc29jaWF0aW9uICovCiBpbnQgc2N0 cF9hc3NvY19zZXRfaWQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsIGdmcF90IGdmcCkK IHsKLQlib29sIHByZWxvYWQgPSBnZnAgJiBfX0dGUF9XQUlUOwogCWludCByZXQ7CiAKIAkvKiBJ ZiB0aGUgaWQgaXMgYWxyZWFkeSBhc3NpZ25lZCwga2VlcCBpdC4gKi8KIAlpZiAoYXNvYy0+YXNz b2NfaWQpCiAJCXJldHVybiAwOwogCi0JaWYgKHByZWxvYWQpCi0JCWlkcl9wcmVsb2FkKGdmcCk7 Ci0Jc3Bpbl9sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsKIAkvKiAwIGlzIG5vdCBhIHZh bGlkIGFzc29jX2lkLCBtdXN0IGJlID49IDEgKi8KLQlyZXQgPSBpZHJfYWxsb2NfY3ljbGljKCZz Y3RwX2Fzc29jc19pZCwgYXNvYywgMSwgMCwgR0ZQX05PV0FJVCk7Ci0Jc3Bpbl91bmxvY2tfYmgo JnNjdHBfYXNzb2NzX2lkX2xvY2spOwotCWlmIChwcmVsb2FkKQotCQlpZHJfcHJlbG9hZF9lbmQo KTsKKwlyZXQgPSBpZHJfYWxsb2NfY3ljbGljKCZzY3RwX2Fzc29jc19pZCwgYXNvYywgMSwgMCwg Z2ZwKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvcHJvdG9jb2wuYyBiL25ldC9zY3RwL3Byb3RvY29sLmMKaW5kZXggZWFlZTAwYy4uNGJmZTJl OCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvcHJvdG9jb2wuYworKysgYi9uZXQvc2N0cC9wcm90b2Nv bC5jCkBAIC03MSw3ICs3MSw2IEBACiBzdHJ1Y3Qgc2N0cF9nbG9iYWxzIHNjdHBfZ2xvYmFscyBf X3JlYWRfbW9zdGx5OwogCiBzdHJ1Y3QgaWRyIHNjdHBfYXNzb2NzX2lkOwotREVGSU5FX1NQSU5M T0NLKHNjdHBfYXNzb2NzX2lkX2xvY2spOwogCiBzdGF0aWMgc3RydWN0IHNjdHBfcGYgKnNjdHBf cGZfaW5ldDZfc3BlY2lmaWM7CiBzdGF0aWMgc3RydWN0IHNjdHBfcGYgKnNjdHBfcGZfaW5ldF9z cGVjaWZpYzsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0 LmMKaW5kZXggNmFiYjFjYS4uM2ZlOWFiNCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMK KysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTIzMCw5ICsyMzAsNyBAQCBzdHJ1Y3Qgc2N0cF9h c3NvY2lhdGlvbiAqc2N0cF9pZDJhc3NvYyhzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBp ZCkKIAlpZiAoIWlkIHx8IChpZCA9PSAoc2N0cF9hc3NvY190KS0xKSkKIAkJcmV0dXJuIE5VTEw7 CiAKLQlzcGluX2xvY2tfYmgoJnNjdHBfYXNzb2NzX2lkX2xvY2spOwogCWFzb2MgPSAoc3RydWN0 IHNjdHBfYXNzb2NpYXRpb24gKilpZHJfZmluZCgmc2N0cF9hc3NvY3NfaWQsIChpbnQpaWQpOwot CXNwaW5fdW5sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsKIAogCWlmICghYXNvYyB8fCAo YXNvYy0+YmFzZS5zayAhPSBzaykgfHwgYXNvYy0+YmFzZS5kZWFkKQogCQlyZXR1cm4gTlVMTDsK LS0gCjEuOC4zLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkNvbnRhaW5lcnMgbWFpbGluZyBsaXN0CkNvbnRhaW5lcnNAbGlzdHMubGludXgtZm91bmRh dGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGlu Zm8vY29udGFpbmVycw==