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: Tue, 18 Jun 2013 17:02:29 -0700 Message-ID: <1371600150-23557-10-git-send-email-koverstreet@google.com> References: <1371600150-23557-1-git-send-email-koverstreet@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1371600150-23557-1-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@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 To: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org, nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org, bcrl-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: David Airlie , Kent Overstreet , Steve Wise , Tom Tucker , =?UTF-8?q?Kai=20M=C3=A4kisara?= , dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Sean Hefty , Christoph Hellwig , Alasdair Kergon , Roland Dreier , Samuel Ortiz , linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Alon Levy , Dave Airlie , osst-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Chris Ball , Hal Rosenstock , Alex Dubov , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Neil Horman , Greg Kroah-Hartman List-Id: dri-devel@lists.freedesktop.org T3VyIG5ldyBpZHIgaW1wbGVtZW50YXRpb24gZG9lcyBpdHMgb3duIGxvY2tpbmcsIGluc3RlYWQg b2YgZm9yY2luZyBpdApvbnRvIHRoZSBjYWxsZXJzIGxpa2UgdGhlIG9sZCBpbXBsZW1lbnRhdGlv bi4KCk1hbnkgb2YgdGhlIGV4aXN0aW5nIGlkciB1c2VycyBuZWVkIGxvY2tpbmcgZm9yIG1vcmUg dGhhbiBqdXN0Cmlkcl9hbGxvYygpL2lkcl9yZW1vdmUoKS9pZHJfZmluZCgpIC0gdGhleSdyZSB0 YWtpbmcgcmVmY291bnRzIGFuZCBzdWNoCnVuZGVyIHRoZWlyIGxvY2tzIGFuZCB3ZSBjYW4ndCB0 b3VjaCB0aG9zZS4KCkJ1dCBhIHNpZ25pZmljYW50IG51bWJlciBvZiB1c2VycyBoYWQgbG9ja3Mg dGhhdCBwcm90ZWN0ZWQgbm90aGluZyBtb3JlCnRoYW4gdGhlIGlkciBkYXRhIHN0cnVjdHVyZXMg aXRzZWxmIC0gdGhvc2Ugd2UgY2FuIGdldCByaWQgb2YuCgpOb3RlIHRoYXQgd2UgaGF2ZSB0byBi ZSBjYXJlZnVsIHdoZW4gcmVtb3ZpbmcgbG9ja3M7IGluIHNvbWUgcGxhY2VzLApsb2NrcyBhcHBl YXIgdG8gb25seSBiZSBwcm90ZWN0aW5nIGlkcl9hbGxvYygpL2lkcl9yZW1vdmUoKSBjYWxscyBi dXQKdGhleSdyZSBhbHNvIHVzZWQgYnkgb3RoZXIgY29kZSB0aGF0IG5lZWRzIHRvIGVuc3VyZSB0 aGUgaWRyIGlzbid0Cm1vZGlmaWVkIHdoaWxlIGl0J3MgZG9pbmcgc29tZXRoaW5nIGVsc2UgLSBz byBpZGVhbGx5IHdlIHdhbnQgdG8gZGVsZXRlCnRoZSBsb2NrIHRoYXQgcHJvdGVjdGVkIHRoZSBp ZHIsIG9yIGVsc2Ugd2UgaGF2ZSB0byBjYXJlZnVsbHkgYXVkaXQgYWxsCnRoZSBvdGhlciBwbGFj ZXMgaXQncyB1c2VkLgoKVGhlcmUncyBhbHNvIGEgZmFpciBudW1iZXIgb2YgcGxhY2VzIHdoZXJl IHRoaW5ncyB3ZXJlIGJlaW5nIGRvbmUgdW5kZXIKdGhlIGlkciBsb2NrIHVubmVjZXNzYXJpbHk7 IGRyaXZlcnMvZGNhL2RjYS1zeXNmcy5jIGlzIGEgZ29vZCBleGFtcGxlLgpkY2EtPmlkIGlzIHNl dCB0byB0aGUgaWQgaWRyX2FsbG9jKCkgcmV0dXJucyB1bmRlciB0aGUgbG9jayAtIGJ1dAp0aGVy ZSdzIG5vIGlkcl9maW5kKCkgY2FsbHMgdW5kZXIgdGhlIGxvY2ssIGFuZCBkY2EtPmlkIGlzbid0 IHRvdWNoZWQgaW4KdGhlIGlkcl9yZW1vdmUoKSBwYXRocy4gU28gdGhlIGxvY2sgY2FuIGJlIHNh ZmVseSBkZWxldGVkLgoKVGhlIHJlYWxseSBuaWNlIHRoaW5nIGFib3V0IGRlbGV0aW5nIHRoaXMg dW5uZWNlc3NhcnkgbG9ja2luZyBpcyB0aGF0IGl0CmxldHMgdXMgdHJpdmlhbGx5IGRlbGV0ZSBh IGxvdCBvZiBub3cgdW5uZWNlc3NhcnkgaWRyX3ByZWxvYWQoKSAtIHdpdGgKaWRyIGRvaW5nIGl0 cyBvd24gbG9ja2luZywgd2UgY2FuIHBhc3MgR0ZQX0tFUk5FTCB0byBpZHJfYWxsb2MoKSBqdXN0 CmZpbmUuCgpTaWduZWQtb2ZmLWJ5OiBLZW50IE92ZXJzdHJlZXQgPGtvdmVyc3RyZWV0QGdvb2ds ZS5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzog VGVqdW4gSGVvIDx0akBrZXJuZWwub3JnPgpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4 LmllPgpDYzogVG9tIFR1Y2tlciA8dG9tQG9wZW5ncmlkY29tcHV0aW5nLmNvbT4KQ2M6IFN0ZXZl IFdpc2UgPHN3aXNlQG9wZW5ncmlkY29tcHV0aW5nLmNvbT4KQ2M6IFJvbGFuZCBEcmVpZXIgPHJv bGFuZEBrZXJuZWwub3JnPgpDYzogU2VhbiBIZWZ0eSA8c2Vhbi5oZWZ0eUBpbnRlbC5jb20+CkNj OiBIYWwgUm9zZW5zdG9jayA8aGFsLnJvc2Vuc3RvY2tAZ21haWwuY29tPgpDYzogQWxhc2RhaXIg S2VyZ29uIDxhZ2tAcmVkaGF0LmNvbT4KQ2M6IGRtLWRldmVsQHJlZGhhdC5jb20KQ2M6IFNhbXVl bCBPcnRpeiA8c2FtZW9AbGludXguaW50ZWwuY29tPgpDYzogQWxleCBEdWJvdiA8b2FrYWRAeWFo b28uY29tPgpDYzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KQ2M6IEdyZWcgS3JvYWgt SGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+CkNjOiBDaHJpcyBCYWxsIDxjamJA bGFwdG9wLm9yZz4KQ2M6ICJKYW1lcyBFLkouIEJvdHRvbWxleSIgPEpCb3R0b21sZXlAcGFyYWxs ZWxzLmNvbT4KQ2M6IFdpbGxlbSBSaWVkZSA8b3NzdEByaWVkZS5vcmc+CkNjOiAiS2FpIE3DpGtp c2FyYSIgPEthaS5NYWtpc2FyYUBrb2x1bWJ1cy5maT4KQ2M6ICJOaWNob2xhcyBBLiBCZWxsaW5n ZXIiIDxuYWJAbGludXgtaXNjc2kub3JnPgpDYzogTGkgWmVmYW4gPGxpemVmYW5AaHVhd2VpLmNv bT4KQ2M6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBOZWlsIEhvcm1h biA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+CkNjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQWxv biBMZXZ5IDxhbGV2eUByZWRoYXQuY29tPgpDYzogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxp YWtob3ZldHNraUBnbXguZGU+CkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KQ2M6 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKQ2M6IGxpbnV4LXJkbWFAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tbWNAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zY3NpQHZnZXIua2VybmVsLm9yZwpDYzogb3NzdC11c2Vy c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKQ2M6IHRhcmdldC1kZXZlbEB2Z2VyLmtlcm5lbC5vcmcK Q2M6IGNvbnRhaW5lcnNAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKQ2M6IGNncm91cHNAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zY3RwQHZnZXIua2VybmVsLm9yZwpDYzogbmV0ZGV2QHZn ZXIua2VybmVsLm9yZwotLS0KIGRyaXZlcnMvZGNhL2RjYS1zeXNmcy5jICAgICAgICAgICAgICAg ICAgIHwgMTggKysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9jbWQu YyAgICAgICAgICAgICB8ICA0ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAg ICAgICAgICAgIHwgIDEgLQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfa21zLmMgICAgICAgICAg ICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMgICAgICAgICB8IDE5 ICsrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMi5o ICAgICAgIHwgIDEgLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3FwLmMgICAg fCAyMCArKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9tZC9kbS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyMiArKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL21lbXN0aWNr L2NvcmUvbWVtc3RpY2suYyAgICAgICAgICB8IDE3ICsrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L21mZC9ydHN4X3Bjci5jICAgICAgICAgICAgICAgICAgICB8IDEzICsrKy0tLS0tLS0tLS0KIGRy aXZlcnMvbWlzYy9jMnBvcnQvY29yZS5jICAgICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0K IGRyaXZlcnMvbWlzYy90aWZtX2NvcmUuYyAgICAgICAgICAgICAgICAgIHwgMTUgKysrLS0tLS0t LS0tLS0tCiBkcml2ZXJzL21tYy9jb3JlL2hvc3QuYyAgICAgICAgICAgICAgICAgICB8IDEzICsr LS0tLS0tLS0tLS0KIGRyaXZlcnMvc2NzaS9jaC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTQgKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvc2NzaS9zdC5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0 LmMgICAgICAgfCAxNyArKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy90YXJnZXQvaXNjc2kvaXNj c2lfdGFyZ2V0LmggICAgICAgfCAgMSAtCiBkcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJn ZXRfbG9naW4uYyB8IDEyICsrLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9jZ3JvdXAuaCAgICAg ICAgICAgICAgICAgICAgfCAgMSAtCiBpbmNsdWRlL25ldC9zY3RwL3NjdHAuaCAgICAgICAgICAg ICAgICAgICB8ICAxIC0KIGtlcm5lbC9jZ3JvdXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDkgKy0tLS0tLS0tCiBrZXJuZWwvd29ya3F1ZXVlLmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDE1ICsrLS0tLS0tLS0tLS0tLQogbmV0LzlwL3V0aWwuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNSArLS0tLS0tLS0tLS0tLS0KIG5ldC9zY3RwL2Fzc29jaW9sYS5jICAgICAg ICAgICAgICAgICAgICAgIHwgMTQgKystLS0tLS0tLS0tLS0KIG5ldC9zY3RwL3Byb3RvY29sLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgLQogbmV0L3NjdHAvc29ja2V0LmMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiAtLQogMjYgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygr KSwgMjI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZGNhL2RjYS1zeXNmcy5j IGIvZHJpdmVycy9kY2EvZGNhLXN5c2ZzLmMKaW5kZXggZWZmZGE2Ni4uNmJlNWZiZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9kY2EvZGNhLXN5c2ZzLmMKKysrIGIvZHJpdmVycy9kY2EvZGNhLXN5c2Zz LmMKQEAgLTMxLDcgKzMxLDYgQEAKIAogc3RhdGljIHN0cnVjdCBjbGFzcyAqZGNhX2NsYXNzOwog c3RhdGljIHN0cnVjdCBpZHIgZGNhX2lkcjsKLXN0YXRpYyBzcGlubG9ja190IGRjYV9pZHJfbG9j azsKIAogaW50IGRjYV9zeXNmc19hZGRfcmVxKHN0cnVjdCBkY2FfcHJvdmlkZXIgKmRjYSwgc3Ry dWN0IGRldmljZSAqZGV2LCBpbnQgc2xvdCkKIHsKQEAgLTU1LDIzICs1NCwxNSBAQCBpbnQgZGNh X3N5c2ZzX2FkZF9wcm92aWRlcihzdHJ1Y3QgZGNhX3Byb3ZpZGVyICpkY2EsIHN0cnVjdCBkZXZp Y2UgKmRldikKIAlzdHJ1Y3QgZGV2aWNlICpjZDsKIAlpbnQgcmV0OwogCi0JaWRyX3ByZWxvYWQo R0ZQX0tFUk5FTCk7Ci0Jc3Bpbl9sb2NrKCZkY2FfaWRyX2xvY2spOwotCi0JcmV0ID0gaWRyX2Fs bG9jKCZkY2FfaWRyLCBkY2EsIEdGUF9OT1dBSVQpOwotCWlmIChyZXQgPj0gMCkKLQkJZGNhLT5p ZCA9IHJldDsKLQotCXNwaW5fdW5sb2NrKCZkY2FfaWRyX2xvY2spOwotCWlkcl9wcmVsb2FkX2Vu ZCgpOworCXJldCA9IGlkcl9hbGxvYygmZGNhX2lkciwgZGNhLCBHRlBfS0VSTkVMKTsKIAlpZiAo cmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAorCWRjYS0+aWQgPSByZXQ7CisKIAljZCA9IGRldmlj ZV9jcmVhdGUoZGNhX2NsYXNzLCBkZXYsIE1LREVWKDAsIDApLCBOVUxMLCAiZGNhJWQiLCBkY2Et PmlkKTsKIAlpZiAoSVNfRVJSKGNkKSkgewotCQlzcGluX2xvY2soJmRjYV9pZHJfbG9jayk7CiAJ CWlkcl9yZW1vdmUoJmRjYV9pZHIsIGRjYS0+aWQpOwotCQlzcGluX3VubG9jaygmZGNhX2lkcl9s b2NrKTsKIAkJcmV0dXJuIFBUUl9FUlIoY2QpOwogCX0KIAlkY2EtPmNkID0gY2Q7CkBAIC04Miwx NSArNzMsMTIgQEAgdm9pZCBkY2Ffc3lzZnNfcmVtb3ZlX3Byb3ZpZGVyKHN0cnVjdCBkY2FfcHJv dmlkZXIgKmRjYSkKIHsKIAlkZXZpY2VfdW5yZWdpc3RlcihkY2EtPmNkKTsKIAlkY2EtPmNkID0g TlVMTDsKLQlzcGluX2xvY2soJmRjYV9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgmZGNhX2lkciwg ZGNhLT5pZCk7Ci0Jc3Bpbl91bmxvY2soJmRjYV9pZHJfbG9jayk7CiB9CiAKIGludCBfX2luaXQg ZGNhX3N5c2ZzX2luaXQodm9pZCkKIHsKIAlpZHJfaW5pdCgmZGNhX2lkcik7Ci0Jc3Bpbl9sb2Nr X2luaXQoJmRjYV9pZHJfbG9jayk7CiAKIAlkY2FfY2xhc3MgPSBjbGFzc19jcmVhdGUoVEhJU19N T0RVTEUsICJkY2EiKTsKIAlpZiAoSVNfRVJSKGRjYV9jbGFzcykpIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9xeGwvcXhsX2NtZC5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21k LmMKaW5kZXggMmY5OWE2OC4uNmEyYTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfY21kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfY21kLmMKQEAgLTQ0OCwx MSArNDQ4LDkgQEAgaW50IHF4bF9zdXJmYWNlX2lkX2FsbG9jKHN0cnVjdCBxeGxfZGV2aWNlICpx ZGV2LAogCWludCBpZHJfcmV0OwogCWludCBjb3VudCA9IDA7CiBhZ2FpbjoKLQlpZHJfcHJlbG9h ZChHRlBfQVRPTUlDKTsKIAlzcGluX2xvY2soJnFkZXYtPnN1cmZfaWRfaWRyX2xvY2spOwotCWlk cl9yZXQgPSBpZHJfYWxsb2NfcmFuZ2UoJnFkZXYtPnN1cmZfaWRfaWRyLCBOVUxMLCAxLCAwLCBH RlBfTk9XQUlUKTsKKwlpZHJfcmV0ID0gaWRyX2FsbG9jX3JhbmdlKCZxZGV2LT5zdXJmX2lkX2lk ciwgTlVMTCwgMSwgMCwgR0ZQX0FUT01JQyk7CiAJc3Bpbl91bmxvY2soJnFkZXYtPnN1cmZfaWRf aWRyX2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOwogCWlmIChpZHJfcmV0IDwgMCkKIAkJcmV0 dXJuIGlkcl9yZXQ7CiAJaGFuZGxlID0gaWRyX3JldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9xeGwvcXhsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKaW5kZXgg NDNkMDZhYi4uM2NjZjNhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKQEAgLTI3Nyw3ICsyNzcsNiBA QCBzdHJ1Y3QgcXhsX2RldmljZSB7CiAJdWludDY0X3QJdmFfc2xvdF9tYXNrOwogCiAJc3RydWN0 IGlkcglyZWxlYXNlX2lkcjsKLQlzcGlubG9ja190IHJlbGVhc2VfaWRyX2xvY2s7CiAJc3RydWN0 IG11dGV4CWFzeW5jX2lvX211dGV4OwogCXVuc2lnbmVkIGludCBsYXN0X3NlbnRfaW9fY21kOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9rbXMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9xeGwvcXhsX2ttcy5jCmluZGV4IGUyN2NlMmEuLjQ5MjM2NjEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9xeGwvcXhsX2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X2ttcy5jCkBAIC0xOTAsNyArMTkwLDYgQEAgaW50IHF4bF9kZXZpY2VfaW5pdChzdHJ1Y3QgcXhs X2RldmljZSAqcWRldiwKIAkJCUdGUF9LRVJORUwpOwogCiAJaWRyX2luaXQoJnFkZXYtPnJlbGVh c2VfaWRyKTsKLQlzcGluX2xvY2tfaW5pdCgmcWRldi0+cmVsZWFzZV9pZHJfbG9jayk7CiAKIAlp ZHJfaW5pdCgmcWRldi0+c3VyZl9pZF9pZHIpOwogCXNwaW5fbG9ja19pbml0KCZxZGV2LT5zdXJm X2lkX2lkcl9sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVh c2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwppbmRleCA2MWMxYjBjLi4w YWZmNWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC00Myw3ICs0Myw2IEBAIHF4 bF9yZWxlYXNlX2FsbG9jKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2LCBpbnQgdHlwZSwKIAkJICBz dHJ1Y3QgcXhsX3JlbGVhc2UgKipyZXQpCiB7CiAJc3RydWN0IHF4bF9yZWxlYXNlICpyZWxlYXNl OwotCWludCBoYW5kbGU7CiAJc2l6ZV90IHNpemUgPSBzaXplb2YoKnJlbGVhc2UpOwogCWludCBp ZHJfcmV0OwogCkBAIC01NywyMCArNTYsMTYgQEAgcXhsX3JlbGVhc2VfYWxsb2Moc3RydWN0IHF4 bF9kZXZpY2UgKnFkZXYsIGludCB0eXBlLAogCXJlbGVhc2UtPnJlbGVhc2Vfb2Zmc2V0ID0gMDsK IAlyZWxlYXNlLT5zdXJmYWNlX3JlbGVhc2VfaWQgPSAwOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tF Uk5FTCk7Ci0Jc3Bpbl9sb2NrKCZxZGV2LT5yZWxlYXNlX2lkcl9sb2NrKTsKLQlpZHJfcmV0ID0g aWRyX2FsbG9jX3JhbmdlKCZxZGV2LT5yZWxlYXNlX2lkciwgcmVsZWFzZSwgMSwgMCwgR0ZQX05P V0FJVCk7Ci0Jc3Bpbl91bmxvY2soJnFkZXYtPnJlbGVhc2VfaWRyX2xvY2spOwotCWlkcl9wcmVs b2FkX2VuZCgpOwotCWhhbmRsZSA9IGlkcl9yZXQ7CisJaWRyX3JldCA9IGlkcl9hbGxvY19yYW5n ZSgmcWRldi0+cmVsZWFzZV9pZHIsIHJlbGVhc2UsCisJCQkJICAxLCAwLCBHRlBfS0VSTkVMKTsK IAlpZiAoaWRyX3JldCA8IDApCiAJCWdvdG8gcmVsZWFzZV9mYWlsOwogCSpyZXQgPSByZWxlYXNl OwotCVFYTF9JTkZPKHFkZXYsICJhbGxvY2F0ZWQgcmVsZWFzZSAlbGxkXG4iLCBoYW5kbGUpOwot CXJlbGVhc2UtPmlkID0gaGFuZGxlOworCVFYTF9JTkZPKHFkZXYsICJhbGxvY2F0ZWQgcmVsZWFz ZSAlbGxkXG4iLCBpZHJfcmV0KTsKKwlyZWxlYXNlLT5pZCA9IGlkcl9yZXQ7CiByZWxlYXNlX2Zh aWw6CiAKLQlyZXR1cm4gaGFuZGxlOworCXJldHVybiBpZHJfcmV0OwogfQogCiB2b2lkCkBAIC05 Miw5ICs4Nyw3IEBAIHF4bF9yZWxlYXNlX2ZyZWUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsCiAJ CXF4bF9mZW5jZV9yZW1vdmVfcmVsZWFzZSgmcmVsZWFzZS0+Ym9zW2ldLT5mZW5jZSwgcmVsZWFz ZS0+aWQpOwogCQlxeGxfYm9fdW5yZWYoJnJlbGVhc2UtPmJvc1tpXSk7CiAJfQotCXNwaW5fbG9j aygmcWRldi0+cmVsZWFzZV9pZHJfbG9jayk7CiAJaWRyX3JlbW92ZSgmcWRldi0+cmVsZWFzZV9p ZHIsIHJlbGVhc2UtPmlkKTsKLQlzcGluX3VubG9jaygmcWRldi0+cmVsZWFzZV9pZHJfbG9jayk7 CiAJa2ZyZWUocmVsZWFzZSk7CiB9CiAKQEAgLTI2Niw5ICsyNTksNyBAQCBzdHJ1Y3QgcXhsX3Jl bGVhc2UgKnF4bF9yZWxlYXNlX2Zyb21faWRfbG9ja2VkKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2 LAogewogCXN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZTsKIAotCXNwaW5fbG9jaygmcWRldi0+ cmVsZWFzZV9pZHJfbG9jayk7CiAJcmVsZWFzZSA9IGlkcl9maW5kKCZxZGV2LT5yZWxlYXNlX2lk ciwgaWQpOwotCXNwaW5fdW5sb2NrKCZxZGV2LT5yZWxlYXNlX2lkcl9sb2NrKTsKIAlpZiAoIXJl bGVhc2UpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZmluZCBpZCBpbiByZWxlYXNlX2lkclxu Iik7CiAJCXJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ft c28xMTAwL2MyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzIuaAppbmRleCBk NjE5ZDczNTguLjczZjJlOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNv MTEwMC9jMi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMi5oCkBAIC0y NjQsNyArMjY0LDYgQEAgc3RydWN0IGMyX3BkX3RhYmxlIHsKIAogc3RydWN0IGMyX3FwX3RhYmxl IHsKIAlzdHJ1Y3QgaWRyIGlkcjsKLQlzcGlubG9ja190IGxvY2s7CiB9OwogCiBzdHJ1Y3QgYzJf ZWxlbWVudCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJf cXAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9xcC5jCmluZGV4IDg2NzA4 ZGUuLmNiODBhYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9j Ml9xcC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9xcC5jCkBAIC0z ODAsMzYgKzM4MCwyMSBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfcXAoc3RydWN0IGMyX2RldiAqYzJk ZXYsIHN0cnVjdCBjMl9xcCAqcXApCiAKIHN0YXRpYyBpbnQgYzJfYWxsb2NfcXBuKHN0cnVjdCBj Ml9kZXYgKmMyZGV2LCBzdHJ1Y3QgYzJfcXAgKnFwKQogewotCWludCByZXQ7Ci0KLQlpZHJfcHJl bG9hZChHRlBfS0VSTkVMKTsKLQlzcGluX2xvY2tfaXJxKCZjMmRldi0+cXBfdGFibGUubG9jayk7 Ci0KLQlyZXQgPSBpZHJfYWxsb2NfY3ljbGljKCZjMmRldi0+cXBfdGFibGUuaWRyLCBxcCwgMCwg MCwgR0ZQX05PV0FJVCk7CisJaW50IHJldCA9IGlkcl9hbGxvY19jeWNsaWMoJmMyZGV2LT5xcF90 YWJsZS5pZHIsIHFwLCAwLCAwLCBHRlBfS0VSTkVMKTsKIAlpZiAocmV0ID49IDApCiAJCXFwLT5x cG4gPSByZXQ7CiAKLQlzcGluX3VubG9ja19pcnEoJmMyZGV2LT5xcF90YWJsZS5sb2NrKTsKLQlp ZHJfcHJlbG9hZF9lbmQoKTsKIAlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IDA7CiB9CiAKIHN0YXRp YyB2b2lkIGMyX2ZyZWVfcXBuKHN0cnVjdCBjMl9kZXYgKmMyZGV2LCBpbnQgcXBuKQogewotCXNw aW5fbG9ja19pcnEoJmMyZGV2LT5xcF90YWJsZS5sb2NrKTsKIAlpZHJfcmVtb3ZlKCZjMmRldi0+ cXBfdGFibGUuaWRyLCBxcG4pOwotCXNwaW5fdW5sb2NrX2lycSgmYzJkZXYtPnFwX3RhYmxlLmxv Y2spOwogfQogCiBzdHJ1Y3QgYzJfcXAgKmMyX2ZpbmRfcXBuKHN0cnVjdCBjMl9kZXYgKmMyZGV2 LCBpbnQgcXBuKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGMyX3FwICpxcDsK LQotCXNwaW5fbG9ja19pcnFzYXZlKCZjMmRldi0+cXBfdGFibGUubG9jaywgZmxhZ3MpOwotCXFw ID0gaWRyX2ZpbmQoJmMyZGV2LT5xcF90YWJsZS5pZHIsIHFwbik7Ci0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmYzJkZXYtPnFwX3RhYmxlLmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gcXA7CisJcmV0 dXJuIGlkcl9maW5kKCZjMmRldi0+cXBfdGFibGUuaWRyLCBxcG4pOwogfQogCiBpbnQgYzJfYWxs b2NfcXAoc3RydWN0IGMyX2RldiAqYzJkZXYsCkBAIC0xMDE0LDcgKzk5OSw2IEBAIG91dDoKIAog dm9pZCBjMl9pbml0X3FwX3RhYmxlKHN0cnVjdCBjMl9kZXYgKmMyZGV2KQogewotCXNwaW5fbG9j a19pbml0KCZjMmRldi0+cXBfdGFibGUubG9jayk7CiAJaWRyX2luaXQoJmMyZGV2LT5xcF90YWJs ZS5pZHIpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmMgYi9kcml2ZXJzL21kL2Rt LmMKaW5kZXggOGJhNGZkYi4uZTI0YjcwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS5jCisr KyBiL2RyaXZlcnMvbWQvZG0uYwpAQCAtMTc3NSw5ICsxNzc1LDcgQEAgc3RhdGljIGludCBkbV9h bnlfY29uZ2VzdGVkKHZvaWQgKmNvbmdlc3RlZF9kYXRhLCBpbnQgYmRpX2JpdHMpCiAgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSovCiBzdGF0aWMgdm9pZCBmcmVlX21pbm9yKGludCBtaW5vcikKIHsKLQlzcGluX2xvY2soJl9t aW5vcl9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZfbWlub3JfaWRyLCBtaW5vcik7Ci0Jc3Bpbl91bmxv Y2soJl9taW5vcl9sb2NrKTsKIH0KIAogLyoKQEAgLTE3OTAsMTMgKzE3ODgsOCBAQCBzdGF0aWMg aW50IHNwZWNpZmljX21pbm9yKGludCBtaW5vcikKIAlpZiAobWlub3IgPj0gKDEgPDwgTUlOT1JC SVRTKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKLQlz cGluX2xvY2soJl9taW5vcl9sb2NrKTsKLQotCXIgPSBpZHJfYWxsb2NfcmFuZ2UoJl9taW5vcl9p ZHIsIE1JTk9SX0FMTE9DRUQsIG1pbm9yLCBtaW5vciArIDEsIEdGUF9OT1dBSVQpOwotCi0Jc3Bp bl91bmxvY2soJl9taW5vcl9sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlyID0gaWRyX2Fs bG9jX3JhbmdlKCZfbWlub3JfaWRyLCBNSU5PUl9BTExPQ0VELCBtaW5vciwKKwkJCSAgICBtaW5v ciArIDEsIEdGUF9LRVJORUwpOwogCWlmIChyIDwgMCkKIAkJcmV0dXJuIHIgPT0gLUVOT1NQQyA/ IC1FQlVTWSA6IHI7CiAJcmV0dXJuIDA7CkBAIC0xODA2LDEzICsxNzk5LDggQEAgc3RhdGljIGlu dCBuZXh0X2ZyZWVfbWlub3IoaW50ICptaW5vcikKIHsKIAlpbnQgcjsKIAotCWlkcl9wcmVsb2Fk KEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmX21pbm9yX2xvY2spOwotCi0JciA9IGlkcl9hbGxv Y19yYW5nZSgmX21pbm9yX2lkciwgTUlOT1JfQUxMT0NFRCwgMCwgMSA8PCBNSU5PUkJJVFMsIEdG UF9OT1dBSVQpOwotCi0Jc3Bpbl91bmxvY2soJl9taW5vcl9sb2NrKTsKLQlpZHJfcHJlbG9hZF9l bmQoKTsKKwlyID0gaWRyX2FsbG9jX3JhbmdlKCZfbWlub3JfaWRyLCBNSU5PUl9BTExPQ0VELAor CQkJICAgIDAsIDEgPDwgTUlOT1JCSVRTLCBHRlBfS0VSTkVMKTsKIAlpZiAociA8IDApCiAJCXJl dHVybiByOwogCSptaW5vciA9IHI7CkBAIC0xOTIxLDkgKzE5MDksNyBAQCBzdGF0aWMgc3RydWN0 IG1hcHBlZF9kZXZpY2UgKmFsbG9jX2RldihpbnQgbWlub3IpCiAJbWQtPmZsdXNoX2Jpby5iaV9y dyA9IFdSSVRFX0ZMVVNIOwogCiAJLyogUG9wdWxhdGUgdGhlIG1hcHBpbmcsIG5vYm9keSBrbm93 cyB3ZSBleGlzdCB5ZXQgKi8KLQlzcGluX2xvY2soJl9taW5vcl9sb2NrKTsKIAlvbGRfbWQgPSBp ZHJfcmVwbGFjZSgmX21pbm9yX2lkciwgbWQsIG1pbm9yKTsKLQlzcGluX3VubG9jaygmX21pbm9y X2xvY2spOwogCiAJQlVHX09OKG9sZF9tZCAhPSBNSU5PUl9BTExPQ0VEKTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZW1zdGljay9jb3JlL21lbXN0aWNrLmMgYi9kcml2ZXJzL21lbXN0aWNrL2Nv cmUvbWVtc3RpY2suYwppbmRleCA3MGZiMDdjLi5iNzU0NGEzIDEwMDY0NAotLS0gYS9kcml2ZXJz L21lbXN0aWNrL2NvcmUvbWVtc3RpY2suYworKysgYi9kcml2ZXJzL21lbXN0aWNrL2NvcmUvbWVt c3RpY2suYwpAQCAtMjYsNyArMjYsNiBAQCBtb2R1bGVfcGFyYW0oY21kX3JldHJpZXMsIHVpbnQs IDA2NDQpOwogCiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxdWV1ZTsKIHN0 YXRpYyBERUZJTkVfSURSKG1lbXN0aWNrX2hvc3RfaWRyKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxP Q0sobWVtc3RpY2tfaG9zdF9sb2NrKTsKIAogc3RhdGljIGludCBtZW1zdGlja19kZXZfbWF0Y2go c3RydWN0IG1lbXN0aWNrX2RldiAqY2FyZCwKIAkJCSAgICAgIHN0cnVjdCBtZW1zdGlja19kZXZp Y2VfaWQgKmlkKQpAQCAtNTEyLDI1ICs1MTEsMTcgQEAgaW50IG1lbXN0aWNrX2FkZF9ob3N0KHN0 cnVjdCBtZW1zdGlja19ob3N0ICpob3N0KQogewogCWludCByYzsKIAotCWlkcl9wcmVsb2FkKEdG UF9LRVJORUwpOwotCXNwaW5fbG9jaygmbWVtc3RpY2tfaG9zdF9sb2NrKTsKLQotCXJjID0gaWRy X2FsbG9jKCZtZW1zdGlja19ob3N0X2lkciwgaG9zdCwgR0ZQX05PV0FJVCk7Ci0JaWYgKHJjID49 IDApCi0JCWhvc3QtPmlkID0gcmM7Ci0KLQlzcGluX3VubG9jaygmbWVtc3RpY2tfaG9zdF9sb2Nr KTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlyYyA9IGlkcl9hbGxvYygmbWVtc3RpY2tfaG9zdF9p ZHIsIGhvc3QsIEdGUF9LRVJORUwpOwogCWlmIChyYyA8IDApCiAJCXJldHVybiByYzsKIAorCWhv c3QtPmlkID0gcmM7CisKIAlkZXZfc2V0X25hbWUoJmhvc3QtPmRldiwgIm1lbXN0aWNrJXUiLCBo b3N0LT5pZCk7CiAKIAlyYyA9IGRldmljZV9hZGQoJmhvc3QtPmRldik7CiAJaWYgKHJjKSB7Ci0J CXNwaW5fbG9jaygmbWVtc3RpY2tfaG9zdF9sb2NrKTsKIAkJaWRyX3JlbW92ZSgmbWVtc3RpY2tf aG9zdF9pZHIsIGhvc3QtPmlkKTsKLQkJc3Bpbl91bmxvY2soJm1lbXN0aWNrX2hvc3RfbG9jayk7 CiAJCXJldHVybiByYzsKIAl9CiAKQEAgLTU1NCw5ICs1NDUsNyBAQCB2b2lkIG1lbXN0aWNrX3Jl bW92ZV9ob3N0KHN0cnVjdCBtZW1zdGlja19ob3N0ICpob3N0KQogCWhvc3QtPnNldF9wYXJhbSho b3N0LCBNRU1TVElDS19QT1dFUiwgTUVNU1RJQ0tfUE9XRVJfT0ZGKTsKIAltdXRleF91bmxvY2so Jmhvc3QtPmxvY2spOwogCi0Jc3Bpbl9sb2NrKCZtZW1zdGlja19ob3N0X2xvY2spOwogCWlkcl9y ZW1vdmUoJm1lbXN0aWNrX2hvc3RfaWRyLCBob3N0LT5pZCk7Ci0Jc3Bpbl91bmxvY2soJm1lbXN0 aWNrX2hvc3RfbG9jayk7CiAJZGV2aWNlX2RlbCgmaG9zdC0+ZGV2KTsKIH0KIEVYUE9SVF9TWU1C T0wobWVtc3RpY2tfcmVtb3ZlX2hvc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvcnRzeF9w Y3IuYyBiL2RyaXZlcnMvbWZkL3J0c3hfcGNyLmMKaW5kZXggOTA1NTEzZC4uYWQ1M2U0NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9tZmQvcnRzeF9wY3IuYworKysgYi9kcml2ZXJzL21mZC9ydHN4X3Bj ci5jCkBAIC00MCw3ICs0MCw2IEBAIG1vZHVsZV9wYXJhbShtc2lfZW4sIGJvb2wsIFNfSVJVR08g fCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MobXNpX2VuLCAiRW5hYmxlIE1TSSIpOwogCiBz dGF0aWMgREVGSU5FX0lEUihydHN4X3BjaV9pZHIpOwotc3RhdGljIERFRklORV9TUElOTE9DSyhy dHN4X3BjaV9sb2NrKTsKIAogc3RhdGljIHN0cnVjdCBtZmRfY2VsbCBydHN4X3Bjcl9jZWxsc1td ID0gewogCVtSVFNYX1NEX0NBUkRdID0gewpAQCAtMTA5NiwxNiArMTA5NSwxMiBAQCBzdGF0aWMg aW50IHJ0c3hfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2lkZXYsCiAJfQogCWhhbmRsZS0+ cGNyID0gcGNyOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Ci0Jc3Bpbl9sb2NrKCZydHN4 X3BjaV9sb2NrKTsKLQlyZXQgPSBpZHJfYWxsb2MoJnJ0c3hfcGNpX2lkciwgcGNyLCBHRlBfTk9X QUlUKTsKLQlpZiAocmV0ID49IDApCi0JCXBjci0+aWQgPSByZXQ7Ci0Jc3Bpbl91bmxvY2soJnJ0 c3hfcGNpX2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOworCXJldCA9IGlkcl9hbGxvYygmcnRz eF9wY2lfaWRyLCBwY3IsIEdGUF9LRVJORUwpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGZyZWVf aGFuZGxlOwogCisJcGNyLT5pZCA9IHJldDsKKwogCXBjci0+cGNpID0gcGNpZGV2OwogCWRldl9z ZXRfZHJ2ZGF0YSgmcGNpZGV2LT5kZXYsIGhhbmRsZSk7CiAKQEAgLTEyMTEsOSArMTIwNiw3IEBA IHN0YXRpYyB2b2lkIHJ0c3hfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGNpZGV2KQogCXBj aV9yZWxlYXNlX3JlZ2lvbnMocGNpZGV2KTsKIAlwY2lfZGlzYWJsZV9kZXZpY2UocGNpZGV2KTsK IAotCXNwaW5fbG9jaygmcnRzeF9wY2lfbG9jayk7CiAJaWRyX3JlbW92ZSgmcnRzeF9wY2lfaWRy LCBwY3ItPmlkKTsKLQlzcGluX3VubG9jaygmcnRzeF9wY2lfbG9jayk7CiAKIAlrZnJlZShwY3It PnNsb3RzKTsKIAlrZnJlZShwY3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2MycG9ydC9j b3JlLmMgYi9kcml2ZXJzL21pc2MvYzJwb3J0L2NvcmUuYwppbmRleCA4YTFhYjEwLi41Y2Q4Yzk5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvYzJwb3J0L2NvcmUuYworKysgYi9kcml2ZXJzL21p c2MvYzJwb3J0L2NvcmUuYwpAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBEUklWRVJfTkFNRSAg ICAgICAgICAgICAiYzJwb3J0IgogI2RlZmluZSBEUklWRVJfVkVSU0lPTiAgICAgICAgICAiMC41 MS4wIgogCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKGMycG9ydF9pZHJfbG9jayk7CiBzdGF0aWMg REVGSU5FX0lEUihjMnBvcnRfaWRyKTsKIAogLyoKQEAgLTg5NywxMSArODk2LDcgQEAgc3RydWN0 IGMycG9ydF9kZXZpY2UgKmMycG9ydF9kZXZpY2VfcmVnaXN0ZXIoY2hhciAqbmFtZSwKIAlpZiAo dW5saWtlbHkoIWMyZGV2KSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZHJfcHJl bG9hZChHRlBfS0VSTkVMKTsKLQlzcGluX2xvY2tfaXJxKCZjMnBvcnRfaWRyX2xvY2spOwotCXJl dCA9IGlkcl9hbGxvYygmYzJwb3J0X2lkciwgYzJkZXYsIEdGUF9OT1dBSVQpOwotCXNwaW5fdW5s b2NrX2lycSgmYzJwb3J0X2lkcl9sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlyZXQgPSBp ZHJfYWxsb2MoJmMycG9ydF9pZHIsIGMyZGV2LCBHRlBfS0VSTkVMKTsKIAogCWlmIChyZXQgPCAw KQogCQlnb3RvIGVycm9yX2lkcl9hbGxvYzsKQEAgLTk0MSw5ICs5MzYsNyBAQCBlcnJvcl9kZXZp Y2VfY3JlYXRlX2Jpbl9maWxlOgogCWRldmljZV9kZXN0cm95KGMycG9ydF9jbGFzcywgMCk7CiAK IGVycm9yX2RldmljZV9jcmVhdGU6Ci0Jc3Bpbl9sb2NrX2lycSgmYzJwb3J0X2lkcl9sb2NrKTsK IAlpZHJfcmVtb3ZlKCZjMnBvcnRfaWRyLCBjMmRldi0+aWQpOwotCXNwaW5fdW5sb2NrX2lycSgm YzJwb3J0X2lkcl9sb2NrKTsKIAogZXJyb3JfaWRyX2FsbG9jOgogCWtmcmVlKGMyZGV2KTsKQEAg LTk2MCw5ICs5NTMsNyBAQCB2b2lkIGMycG9ydF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgYzJw b3J0X2RldmljZSAqYzJkZXYpCiAJZGV2X2luZm8oYzJkZXYtPmRldiwgIkMyIHBvcnQgJXMgcmVt b3ZlZFxuIiwgYzJkZXYtPm5hbWUpOwogCiAJZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShjMmRldi0+ ZGV2LCAmYzJwb3J0X2Jpbl9hdHRycyk7Ci0Jc3Bpbl9sb2NrX2lycSgmYzJwb3J0X2lkcl9sb2Nr KTsKIAlpZHJfcmVtb3ZlKCZjMnBvcnRfaWRyLCBjMmRldi0+aWQpOwotCXNwaW5fdW5sb2NrX2ly cSgmYzJwb3J0X2lkcl9sb2NrKTsKIAogCWRldmljZV9kZXN0cm95KGMycG9ydF9jbGFzcywgYzJk ZXYtPmlkKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3RpZm1fY29yZS5jIGIvZHJpdmVy cy9taXNjL3RpZm1fY29yZS5jCmluZGV4IGM4MjhjMjcuLmVlN2IxODEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWlzYy90aWZtX2NvcmUuYworKysgYi9kcml2ZXJzL21pc2MvdGlmbV9jb3JlLmMKQEAg LTIwLDcgKzIwLDYgQEAKIAogc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3b3JrcXVl dWU7CiBzdGF0aWMgREVGSU5FX0lEUih0aWZtX2FkYXB0ZXJfaWRyKTsKLXN0YXRpYyBERUZJTkVf U1BJTkxPQ0sodGlmbV9hZGFwdGVyX2xvY2spOwogCiBzdGF0aWMgY29uc3QgY2hhciAqdGlmbV9t ZWRpYV90eXBlX25hbWUodW5zaWduZWQgY2hhciB0eXBlLCB1bnNpZ25lZCBjaGFyIG50KQogewpA QCAtMTk2LDIyICsxOTUsMTYgQEAgaW50IHRpZm1fYWRkX2FkYXB0ZXIoc3RydWN0IHRpZm1fYWRh cHRlciAqZm0pCiB7CiAJaW50IHJjOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Ci0Jc3Bp bl9sb2NrKCZ0aWZtX2FkYXB0ZXJfbG9jayk7Ci0JcmMgPSBpZHJfYWxsb2MoJnRpZm1fYWRhcHRl cl9pZHIsIGZtLCBHRlBfTk9XQUlUKTsKLQlpZiAocmMgPj0gMCkKLQkJZm0tPmlkID0gcmM7Ci0J c3Bpbl91bmxvY2soJnRpZm1fYWRhcHRlcl9sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwly YyA9IGlkcl9hbGxvYygmdGlmbV9hZGFwdGVyX2lkciwgZm0sIEdGUF9LRVJORUwpOwogCWlmIChy YyA8IDApCiAJCXJldHVybiByYzsKIAorCWZtLT5pZCA9IHJjOworCiAJZGV2X3NldF9uYW1lKCZm bS0+ZGV2LCAidGlmbSV1IiwgZm0tPmlkKTsKIAlyYyA9IGRldmljZV9hZGQoJmZtLT5kZXYpOwog CWlmIChyYykgewotCQlzcGluX2xvY2soJnRpZm1fYWRhcHRlcl9sb2NrKTsKIAkJaWRyX3JlbW92 ZSgmdGlmbV9hZGFwdGVyX2lkciwgZm0tPmlkKTsKLQkJc3Bpbl91bmxvY2soJnRpZm1fYWRhcHRl cl9sb2NrKTsKIAl9CiAKIAlyZXR1cm4gcmM7CkBAIC0yMjgsOSArMjIxLDcgQEAgdm9pZCB0aWZt X3JlbW92ZV9hZGFwdGVyKHN0cnVjdCB0aWZtX2FkYXB0ZXIgKmZtKQogCQkJZGV2aWNlX3VucmVn aXN0ZXIoJmZtLT5zb2NrZXRzW2NudF0tPmRldik7CiAJfQogCi0Jc3Bpbl9sb2NrKCZ0aWZtX2Fk YXB0ZXJfbG9jayk7CiAJaWRyX3JlbW92ZSgmdGlmbV9hZGFwdGVyX2lkciwgZm0tPmlkKTsKLQlz cGluX3VubG9jaygmdGlmbV9hZGFwdGVyX2xvY2spOwogCWRldmljZV9kZWwoJmZtLT5kZXYpOwog fQogRVhQT1JUX1NZTUJPTCh0aWZtX3JlbW92ZV9hZGFwdGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbW1jL2NvcmUvaG9zdC5jIGIvZHJpdmVycy9tbWMvY29yZS9ob3N0LmMKaW5kZXggMzM1ODcz Yy4uYmY5YzY4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvY29yZS9ob3N0LmMKKysrIGIvZHJp dmVycy9tbWMvY29yZS9ob3N0LmMKQEAgLTU1LDcgKzU1LDYgQEAgdm9pZCBtbWNfdW5yZWdpc3Rl cl9ob3N0X2NsYXNzKHZvaWQpCiB9CiAKIHN0YXRpYyBERUZJTkVfSURSKG1tY19ob3N0X2lkcik7 Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1tY19ob3N0X2xvY2spOwogCiAjaWZkZWYgQ09ORklH X01NQ19DTEtHQVRFCiBzdGF0aWMgc3NpemVfdCBjbGtnYXRlX2RlbGF5X3Nob3coc3RydWN0IGRl dmljZSAqZGV2LApAQCAtNDM1LDE2ICs0MzQsMTEgQEAgc3RydWN0IG1tY19ob3N0ICptbWNfYWxs b2NfaG9zdChpbnQgZXh0cmEsIHN0cnVjdCBkZXZpY2UgKmRldikKIAogCS8qIHNjYW5uaW5nIHdp bGwgYmUgZW5hYmxlZCB3aGVuIHdlJ3JlIHJlYWR5ICovCiAJaG9zdC0+cmVzY2FuX2Rpc2FibGUg PSAxOwotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmbW1jX2hvc3RfbG9j ayk7Ci0JZXJyID0gaWRyX2FsbG9jKCZtbWNfaG9zdF9pZHIsIGhvc3QsIEdGUF9OT1dBSVQpOwot CWlmIChlcnIgPj0gMCkKLQkJaG9zdC0+aW5kZXggPSBlcnI7Ci0Jc3Bpbl91bmxvY2soJm1tY19o b3N0X2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOworCWVyciA9IGlkcl9hbGxvYygmbW1jX2hv c3RfaWRyLCBob3N0LCBHRlBfS0VSTkVMKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBmcmVlOwog CisJaG9zdC0+aW5kZXggPSBlcnI7CiAJZGV2X3NldF9uYW1lKCZob3N0LT5jbGFzc19kZXYsICJt bWMlZCIsIGhvc3QtPmluZGV4KTsKIAogCWhvc3QtPnBhcmVudCA9IGRldjsKQEAgLTU1MiwxMCAr NTQ2LDcgQEAgRVhQT1JUX1NZTUJPTChtbWNfcmVtb3ZlX2hvc3QpOwogICovCiB2b2lkIG1tY19m cmVlX2hvc3Qoc3RydWN0IG1tY19ob3N0ICpob3N0KQogewotCXNwaW5fbG9jaygmbW1jX2hvc3Rf bG9jayk7CiAJaWRyX3JlbW92ZSgmbW1jX2hvc3RfaWRyLCBob3N0LT5pbmRleCk7Ci0Jc3Bpbl91 bmxvY2soJm1tY19ob3N0X2xvY2spOwotCiAJcHV0X2RldmljZSgmaG9zdC0+Y2xhc3NfZGV2KTsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2NoLmMgYi9kcml2ZXJzL3Njc2kvY2guYwpp bmRleCBjMjY0YmVkLi4wNjkzODc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvY2guYworKysg Yi9kcml2ZXJzL3Njc2kvY2guYwpAQCAtMTE1LDcgKzExNSw2IEBAIHR5cGVkZWYgc3RydWN0IHsK IH0gc2NzaV9jaGFuZ2VyOwogCiBzdGF0aWMgREVGSU5FX0lEUihjaF9pbmRleF9pZHIpOwotc3Rh dGljIERFRklORV9TUElOTE9DSyhjaF9pbmRleF9sb2NrKTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCB7CiAJdW5zaWduZWQgY2hhciAgc2Vuc2U7CkBAIC01ODIsMTUgKzU4MSwxMiBAQCBjaF9vcGVu KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCWludCBtaW5vciA9IGlt aW5vcihpbm9kZSk7CiAKIAltdXRleF9sb2NrKCZjaF9tdXRleCk7Ci0Jc3Bpbl9sb2NrKCZjaF9p bmRleF9sb2NrKTsKIAljaCA9IGlkcl9maW5kKCZjaF9pbmRleF9pZHIsIG1pbm9yKTsKIAogCWlm IChOVUxMID09IGNoIHx8IHNjc2lfZGV2aWNlX2dldChjaC0+ZGV2aWNlKSkgewotCQlzcGluX3Vu bG9jaygmY2hfaW5kZXhfbG9jayk7CiAJCW11dGV4X3VubG9jaygmY2hfbXV0ZXgpOwogCQlyZXR1 cm4gLUVOWElPOwogCX0KLQlzcGluX3VubG9jaygmY2hfaW5kZXhfbG9jayk7CiAKIAlmaWxlLT5w cml2YXRlX2RhdGEgPSBjaDsKIAltdXRleF91bmxvY2soJmNoX211dGV4KTsKQEAgLTkwNSwxMiAr OTAxLDggQEAgc3RhdGljIGludCBjaF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaWYgKE5V TEwgPT0gY2gpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7 Ci0Jc3Bpbl9sb2NrKCZjaF9pbmRleF9sb2NrKTsKLQlyZXQgPSBpZHJfYWxsb2NfcmFuZ2UoJmNo X2luZGV4X2lkciwgY2gsIDAsIENIX01BWF9ERVZTICsgMSwgR0ZQX05PV0FJVCk7Ci0Jc3Bpbl91 bmxvY2soJmNoX2luZGV4X2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOwotCisJcmV0ID0gaWRy X2FsbG9jX3JhbmdlKCZjaF9pbmRleF9pZHIsIGNoLCAwLAorCQkJICAgICAgQ0hfTUFYX0RFVlMg KyAxLCBHRlBfS0VSTkVMKTsKIAlpZiAocmV0IDwgMCkgewogCQlpZiAocmV0ID09IC1FTk9TUEMp CiAJCQlyZXQgPSAtRU5PREVWOwpAQCAtOTUxLDkgKzk0Myw3IEBAIHN0YXRpYyBpbnQgY2hfcmVt b3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzY3NpX2NoYW5nZXIgKmNoID0gZGV2X2dldF9k cnZkYXRhKGRldik7CiAKLQlzcGluX2xvY2soJmNoX2luZGV4X2xvY2spOwogCWlkcl9yZW1vdmUo JmNoX2luZGV4X2lkciwgY2gtPm1pbm9yKTsKLQlzcGluX3VubG9jaygmY2hfaW5kZXhfbG9jayk7 CiAKIAlkZXZpY2VfZGVzdHJveShjaF9zeXNmc19jbGFzcywgTUtERVYoU0NTSV9DSEFOR0VSX01B Sk9SLGNoLT5taW5vcikpOwogCWtmcmVlKGNoLT5kdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Nj c2kvc3QuYyBiL2RyaXZlcnMvc2NzaS9zdC5jCmluZGV4IDc0M2ZkNzIuLjJmMTNiZjggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc2NzaS9zdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9zdC5jCkBAIC0yMTQs NyArMjE0LDYgQEAgc3RhdGljIHZvaWQgc2NzaV90YXBlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKik7 CiAjZGVmaW5lIHRvX3Njc2lfdGFwZShvYmopIGNvbnRhaW5lcl9vZihvYmosIHN0cnVjdCBzY3Np X3RhcGUsIGtyZWYpCiAKIHN0YXRpYyBERUZJTkVfTVVURVgoc3RfcmVmX211dGV4KTsKLXN0YXRp YyBERUZJTkVfU1BJTkxPQ0soc3RfaW5kZXhfbG9jayk7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NL KHN0X3VzZV9sb2NrKTsKIHN0YXRpYyBERUZJTkVfSURSKHN0X2luZGV4X2lkcik7CiAKQEAgLTIz NSw3ICsyMzQsNiBAQCBzdGF0aWMgc3RydWN0IHNjc2lfdGFwZSAqc2NzaV90YXBlX2dldChpbnQg ZGV2KQogCXN0cnVjdCBzY3NpX3RhcGUgKlNUcCA9IE5VTEw7CiAKIAltdXRleF9sb2NrKCZzdF9y ZWZfbXV0ZXgpOwotCXNwaW5fbG9jaygmc3RfaW5kZXhfbG9jayk7CiAKIAlTVHAgPSBpZHJfZmlu ZCgmc3RfaW5kZXhfaWRyLCBkZXYpOwogCWlmICghU1RwKSBnb3RvIG91dDsKQEAgLTI1NCw3ICsy NTIsNiBAQCBvdXRfcHV0OgogCWtyZWZfcHV0KCZTVHAtPmtyZWYsIHNjc2lfdGFwZV9yZWxlYXNl KTsKIAlTVHAgPSBOVUxMOwogb3V0OgotCXNwaW5fdW5sb2NrKCZzdF9pbmRleF9sb2NrKTsKIAlt dXRleF91bmxvY2soJnN0X3JlZl9tdXRleCk7CiAJcmV0dXJuIFNUcDsKIH0KQEAgLTQxODIsMTEg KzQxNzksNyBAQCBzdGF0aWMgaW50IHN0X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKIAkgICAg dHBudC0+Ymxrc2l6ZV9jaGFuZ2VkID0gMDsKIAltdXRleF9pbml0KCZ0cG50LT5sb2NrKTsKIAot CWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmc3RfaW5kZXhfbG9jayk7Ci0J ZXJyb3IgPSBpZHJfYWxsb2NfcmFuZ2UoJnN0X2luZGV4X2lkciwgdHBudCwgMCwgU1RfTUFYX1RB UEVTICsgMSwgR0ZQX05PV0FJVCk7Ci0Jc3Bpbl91bmxvY2soJnN0X2luZGV4X2xvY2spOwotCWlk cl9wcmVsb2FkX2VuZCgpOworCWVycm9yID0gaWRyX2FsbG9jX3JhbmdlKCZzdF9pbmRleF9pZHIs IHRwbnQsIDAsIFNUX01BWF9UQVBFUyArIDEsIEdGUF9LRVJORUwpOwogCWlmIChlcnJvciA8IDAp IHsKIAkJcHJfd2Fybigic3Q6IGlkciBhbGxvY2F0aW9uIGZhaWxlZDogJWRcbiIsIGVycm9yKTsK IAkJZ290byBvdXRfcHV0X3F1ZXVlOwpAQCAtNDIxMiw5ICs0MjA1LDcgQEAgc3RhdGljIGludCBz dF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIG91dF9yZW1vdmVfZGV2czoKIAlyZW1vdmVf Y2RldnModHBudCk7Ci0Jc3Bpbl9sb2NrKCZzdF9pbmRleF9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZz dF9pbmRleF9pZHIsIHRwbnQtPmluZGV4KTsKLQlzcGluX3VubG9jaygmc3RfaW5kZXhfbG9jayk7 CiBvdXRfcHV0X3F1ZXVlOgogCWJsa19wdXRfcXVldWUoZGlzay0+cXVldWUpOwogb3V0X3B1dF9k aXNrOgpAQCAtNDIzOCw5ICs0MjI5LDcgQEAgc3RhdGljIGludCBzdF9yZW1vdmUoc3RydWN0IGRl dmljZSAqZGV2KQogCW11dGV4X2xvY2soJnN0X3JlZl9tdXRleCk7CiAJa3JlZl9wdXQoJnRwbnQt PmtyZWYsIHNjc2lfdGFwZV9yZWxlYXNlKTsKIAltdXRleF91bmxvY2soJnN0X3JlZl9tdXRleCk7 Ci0Jc3Bpbl9sb2NrKCZzdF9pbmRleF9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZzdF9pbmRleF9pZHIs IGluZGV4KTsKLQlzcGluX3VubG9jaygmc3RfaW5kZXhfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jIGIvZHJpdmVy cy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmMKaW5kZXggYjA2ZDJhOC4uYTQ3NzdhNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmMKKysrIGIvZHJpdmVy cy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmMKQEAgLTU5LDcgKzU5LDYgQEAgc3RhdGljIERF RklORV9TUElOTE9DSyhucF9sb2NrKTsKIHN0YXRpYyBzdHJ1Y3QgaWRyIHRpcW5faWRyOwogc3Ry dWN0IGlkciBzZXNzX2lkcjsKIHN0cnVjdCBtdXRleCBhdXRoX2lkX2xvY2s7Ci1zcGlubG9ja190 IHNlc3NfaWRyX2xvY2s7CiAKIHN0cnVjdCBpc2NzaXRfZ2xvYmFsICppc2NzaXRfZ2xvYmFsOwog CkBAIC0xNDcsMjIgKzE0NiwxNyBAQCBzdHJ1Y3QgaXNjc2lfdGlxbiAqaXNjc2l0X2FkZF90aXFu KHVuc2lnbmVkIGNoYXIgKmJ1ZikKIAogCXRpcW4tPnRpcW5fc3RhdGUgPSBUSVFOX1NUQVRFX0FD VElWRTsKIAotCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwotCXNwaW5fbG9jaygmdGlxbl9sb2Nr KTsKLQotCXJldCA9IGlkcl9hbGxvYygmdGlxbl9pZHIsIE5VTEwsIEdGUF9OT1dBSVQpOworCXJl dCA9IGlkcl9hbGxvYygmdGlxbl9pZHIsIE5VTEwsIEdGUF9LRVJORUwpOwogCWlmIChyZXQgPCAw KSB7CiAJCXByX2VycigiaWRyX2FsbG9jKCkgZmFpbGVkIGZvciB0aXFuLT50aXFuX2luZGV4XG4i KTsKLQkJc3Bpbl91bmxvY2soJnRpcW5fbG9jayk7Ci0JCWlkcl9wcmVsb2FkX2VuZCgpOwogCQlr ZnJlZSh0aXFuKTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAJdGlxbi0+dGlxbl9pbmRl eCA9IHJldDsKLQlsaXN0X2FkZF90YWlsKCZ0aXFuLT50aXFuX2xpc3QsICZnX3RpcW5fbGlzdCk7 CiAKKwlzcGluX2xvY2soJnRpcW5fbG9jayk7CisJbGlzdF9hZGRfdGFpbCgmdGlxbi0+dGlxbl9s aXN0LCAmZ190aXFuX2xpc3QpOwogCXNwaW5fdW5sb2NrKCZ0aXFuX2xvY2spOwotCWlkcl9wcmVs b2FkX2VuZCgpOwogCiAJcHJfZGVidWcoIkNPUkVbMF0gLSBBZGRlZCBpU0NTSSBUYXJnZXQgSVFO OiAlc1xuIiwgdGlxbi0+dGlxbik7CiAKQEAgLTIwMSw4ICsxOTUsOCBAQCB2b2lkIGlzY3NpdF9k ZWxfdGlxbihzdHJ1Y3QgaXNjc2lfdGlxbiAqdGlxbikKIAogCXNwaW5fbG9jaygmdGlxbl9sb2Nr KTsKIAlsaXN0X2RlbCgmdGlxbi0+dGlxbl9saXN0KTsKLQlpZHJfcmVtb3ZlKCZ0aXFuX2lkciwg dGlxbi0+dGlxbl9pbmRleCk7CiAJc3Bpbl91bmxvY2soJnRpcW5fbG9jayk7CisJaWRyX3JlbW92 ZSgmdGlxbl9pZHIsIHRpcW4tPnRpcW5faW5kZXgpOwogCiAJcHJfZGVidWcoIkNPUkVbMF0gLSBE ZWxldGVkIGlTQ1NJIFRhcmdldCBJUU46ICVzXG4iLAogCQkJdGlxbi0+dGlxbik7CkBAIC01MTks NyArNTEzLDYgQEAgc3RhdGljIGludCBfX2luaXQgaXNjc2lfdGFyZ2V0X2luaXRfbW9kdWxlKHZv aWQpCiAJCXJldHVybiAtMTsKIAl9CiAJbXV0ZXhfaW5pdCgmYXV0aF9pZF9sb2NrKTsKLQlzcGlu X2xvY2tfaW5pdCgmc2Vzc19pZHJfbG9jayk7CiAJaWRyX2luaXQoJnRpcW5faWRyKTsKIAlpZHJf aW5pdCgmc2Vzc19pZHIpOwogCkBAIC00NDE3LDkgKzQ0MTAsNyBAQCBpbnQgaXNjc2l0X2Nsb3Nl X3Nlc3Npb24oc3RydWN0IGlzY3NpX3Nlc3Npb24gKnNlc3MpCiAJcHJfZGVidWcoIkRlY3JlbWVu dGVkIG51bWJlciBvZiBhY3RpdmUgaVNDU0kgU2Vzc2lvbnMgb24iCiAJCSIgaVNDU0kgVFBHOiAl aHUgdG8gJXVcbiIsIHRwZy0+dHBndCwgdHBnLT5uc2Vzc2lvbnMpOwogCi0Jc3Bpbl9sb2NrKCZz ZXNzX2lkcl9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZzZXNzX2lkciwgc2Vzcy0+c2Vzc2lvbl9pbmRl eCk7Ci0Jc3Bpbl91bmxvY2soJnNlc3NfaWRyX2xvY2spOwogCiAJa2ZyZWUoc2Vzcy0+c2Vzc19v cHMpOwogCXNlc3MtPnNlc3Nfb3BzID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0 L2lzY3NpL2lzY3NpX3RhcmdldC5oIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0 LmgKaW5kZXggYTAwNTBiMi4uYTQ3ZDcxMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGFyZ2V0L2lz Y3NpL2lzY3NpX3RhcmdldC5oCisrKyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3Rhcmdl dC5oCkBAIC00Myw3ICs0Myw2IEBAIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqbGlvX3IydF9j YWNoZTsKIAogZXh0ZXJuIHN0cnVjdCBpZHIgc2Vzc19pZHI7CiBleHRlcm4gc3RydWN0IG11dGV4 IGF1dGhfaWRfbG9jazsKLWV4dGVybiBzcGlubG9ja190IHNlc3NfaWRyX2xvY2s7CiAKIAogI2Vu ZGlmICAgLyoqKiBJU0NTSV9UQVJHRVRfSCAqKiovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Rhcmdl dC9pc2NzaS9pc2NzaV90YXJnZXRfbG9naW4uYyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3Np X3RhcmdldF9sb2dpbi5jCmluZGV4IDg3YTgyYjYuLmEwYjk1MTAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldF9sb2dpbi5jCisrKyBiL2RyaXZlcnMvdGFyZ2V0 L2lzY3NpL2lzY3NpX3RhcmdldF9sb2dpbi5jCkBAIC0yODksMTQgKzI4OSw3IEBAIHN0YXRpYyBp bnQgaXNjc2lfbG9naW5femVyb190c2loX3MxKAogCXNwaW5fbG9ja19pbml0KCZzZXNzLT5zZXNz aW9uX3VzYWdlX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZzZXNzLT50dHRfbG9jayk7CiAKLQlp ZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKLQlzcGluX2xvY2tfYmgoJnNlc3NfaWRyX2xvY2spOwot CXJldCA9IGlkcl9hbGxvYygmc2Vzc19pZHIsIE5VTEwsIEdGUF9OT1dBSVQpOwotCWlmIChyZXQg Pj0gMCkKLQkJc2Vzcy0+c2Vzc2lvbl9pbmRleCA9IHJldDsKLQlzcGluX3VubG9ja19iaCgmc2Vz c19pZHJfbG9jayk7Ci0JaWRyX3ByZWxvYWRfZW5kKCk7Ci0KKwlyZXQgPSBpZHJfYWxsb2MoJnNl c3NfaWRyLCBOVUxMLCBHRlBfS0VSTkVMKTsKIAlpZiAocmV0IDwgMCkgewogCQlwcl9lcnIoImlk cl9hbGxvYygpIGZvciBzZXNzX2lkciBmYWlsZWRcbiIpOwogCQlpc2NzaXRfdHhfbG9naW5fcnNw KGNvbm4sIElTQ1NJX1NUQVRVU19DTFNfVEFSR0VUX0VSUiwKQEAgLTMwNSw2ICsyOTgsNyBAQCBz dGF0aWMgaW50IGlzY3NpX2xvZ2luX3plcm9fdHNpaF9zMSgKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQogCisJc2Vzcy0+c2Vzc2lvbl9pbmRleCA9IHJldDsKIAlzZXNzLT5jcmVhdGlvbl90aW1lID0g Z2V0X2ppZmZpZXNfNjQoKTsKIAlzcGluX2xvY2tfaW5pdCgmc2Vzcy0+c2Vzc2lvbl9zdGF0c19s b2NrKTsKIAkvKgpAQCAtMTMxNSw5ICsxMzA5LDcgQEAgbmV3X3Nlc3Nfb3V0OgogCWlmIChjb25u LT5zZXNzLT5zZV9zZXNzKQogCQl0cmFuc3BvcnRfZnJlZV9zZXNzaW9uKGNvbm4tPnNlc3MtPnNl X3Nlc3MpOwogCWlmIChjb25uLT5zZXNzLT5zZXNzaW9uX2luZGV4ICE9IDApIHsKLQkJc3Bpbl9s b2NrX2JoKCZzZXNzX2lkcl9sb2NrKTsKIAkJaWRyX3JlbW92ZSgmc2Vzc19pZHIsIGNvbm4tPnNl c3MtPnNlc3Npb25faW5kZXgpOwotCQlzcGluX3VubG9ja19iaCgmc2Vzc19pZHJfbG9jayk7CiAJ fQogCWtmcmVlKGNvbm4tPnNlc3MtPnNlc3Nfb3BzKTsKIAlrZnJlZShjb25uLT5zZXNzKTsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2dyb3VwLmggYi9pbmNsdWRlL2xpbnV4L2Nncm91cC5o CmluZGV4IDhiZGExMjkuLjBhNWQ4YWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3Vw LmgKKysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaApAQCAtNjIxLDcgKzYyMSw2IEBAIHN0cnVj dCBjZ3JvdXBfc3Vic3lzIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpYmxpbmc7CiAJLyogdXNlZCB3 aGVuIHVzZV9pZCA9PSB0cnVlICovCiAJc3RydWN0IGlkciBpZHI7Ci0Jc3BpbmxvY2tfdCBpZF9s b2NrOwogCiAJLyogbGlzdCBvZiBjZnR5cGVfc2V0cyAqLwogCXN0cnVjdCBsaXN0X2hlYWQgY2Z0 c2V0czsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc2N0cC5oIGIvaW5jbHVkZS9uZXQv c2N0cC9zY3RwLmgKaW5kZXggY2Q4OTUxMC4uN2Y4Y2U3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9u ZXQvc2N0cC9zY3RwLmgKKysrIGIvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKQEAgLTYwMyw3ICs2 MDMsNiBAQCBleHRlcm4gc3RydWN0IHByb3RvIHNjdHB2Nl9wcm90Owogdm9pZCBzY3RwX3B1dF9w b3J0KHN0cnVjdCBzb2NrICpzayk7CiAKIGV4dGVybiBzdHJ1Y3QgaWRyIHNjdHBfYXNzb2NzX2lk OwotZXh0ZXJuIHNwaW5sb2NrX3Qgc2N0cF9hc3NvY3NfaWRfbG9jazsKIAogLyogU3RhdGljIGlu bGluZSBmdW5jdGlvbnMuICovCiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAuYyBiL2tlcm5l bC9jZ3JvdXAuYwppbmRleCA1NGE1OTFiYi4uOTk4ZjZkZSAxMDA2NDQKLS0tIGEva2VybmVsL2Nn cm91cC5jCisrKyBiL2tlcm5lbC9jZ3JvdXAuYwpAQCAtNTE0Myw5ICs1MTQzLDcgQEAgdm9pZCBm cmVlX2Nzc19pZChzdHJ1Y3QgY2dyb3VwX3N1YnN5cyAqc3MsIHN0cnVjdCBjZ3JvdXBfc3Vic3lz X3N0YXRlICpjc3MpCiAKIAlyY3VfYXNzaWduX3BvaW50ZXIoaWQtPmNzcywgTlVMTCk7CiAJcmN1 X2Fzc2lnbl9wb2ludGVyKGNzcy0+aWQsIE5VTEwpOwotCXNwaW5fbG9jaygmc3MtPmlkX2xvY2sp OwogCWlkcl9yZW1vdmUoJnNzLT5pZHIsIGlkLT5pZCk7Ci0Jc3Bpbl91bmxvY2soJnNzLT5pZF9s b2NrKTsKIAlrZnJlZV9yY3UoaWQsIHJjdV9oZWFkKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGZy ZWVfY3NzX2lkKTsKQEAgLTUxNjcsMTIgKzUxNjUsOCBAQCBzdGF0aWMgc3RydWN0IGNzc19pZCAq Z2V0X25ld19jc3NpZChzdHJ1Y3QgY2dyb3VwX3N1YnN5cyAqc3MsIGludCBkZXB0aCkKIAlpZiAo IW5ld2lkKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlkcl9wcmVsb2FkKEdGUF9L RVJORUwpOwotCXNwaW5fbG9jaygmc3MtPmlkX2xvY2spOwogCS8qIERvbid0IHVzZSAwLiBhbGxv Y2F0ZXMgYW4gSUQgb2YgMS02NTUzNSAqLwotCXJldCA9IGlkcl9hbGxvY19yYW5nZSgmc3MtPmlk ciwgbmV3aWQsIDEsIENTU19JRF9NQVggKyAxLCBHRlBfTk9XQUlUKTsKLQlzcGluX3VubG9jaygm c3MtPmlkX2xvY2spOwotCWlkcl9wcmVsb2FkX2VuZCgpOworCXJldCA9IGlkcl9hbGxvY19yYW5n ZSgmc3MtPmlkciwgbmV3aWQsIDEsIENTU19JRF9NQVggKyAxLCBHRlBfS0VSTkVMKTsKIAogCS8q IFJldHVybnMgZXJyb3Igd2hlbiB0aGVyZSBhcmUgbm8gZnJlZSBzcGFjZXMgZm9yIG5ldyBJRC4q LwogCWlmIChyZXQgPCAwKQpAQCAtNTE5Miw3ICs1MTg2LDYgQEAgc3RhdGljIGludCBfX2luaXRf b3JfbW9kdWxlIGNncm91cF9pbml0X2lkcihzdHJ1Y3QgY2dyb3VwX3N1YnN5cyAqc3MsCiB7CiAJ c3RydWN0IGNzc19pZCAqbmV3aWQ7CiAKLQlzcGluX2xvY2tfaW5pdCgmc3MtPmlkX2xvY2spOwog CWlkcl9pbml0KCZzcy0+aWRyKTsKIAogCW5ld2lkID0gZ2V0X25ld19jc3NpZChzcywgMCk7CmRp ZmYgLS1naXQgYS9rZXJuZWwvd29ya3F1ZXVlLmMgYi9rZXJuZWwvd29ya3F1ZXVlLmMKaW5kZXgg YjQ1Njk0Zi4uYmU1ODUyYyAxMDA2NDQKLS0tIGEva2VybmVsL3dvcmtxdWV1ZS5jCisrKyBiL2tl cm5lbC93b3JrcXVldWUuYwpAQCAtMTY5MCwxMyArMTY5MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgd29y a2VyICpjcmVhdGVfd29ya2VyKHN0cnVjdCB3b3JrZXJfcG9vbCAqcG9vbCkKIAkgKiBJRCBpcyBu ZWVkZWQgdG8gZGV0ZXJtaW5lIGt0aHJlYWQgbmFtZS4gIEFsbG9jYXRlIElEIGZpcnN0CiAJICog d2l0aG91dCBpbnN0YWxsaW5nIHRoZSBwb2ludGVyLgogCSAqLwotCWlkcl9wcmVsb2FkKEdGUF9L RVJORUwpOwotCXNwaW5fbG9ja19pcnEoJnBvb2wtPmxvY2spOwotCi0JaWQgPSBpZHJfYWxsb2Mo JnBvb2wtPndvcmtlcl9pZHIsIE5VTEwsIEdGUF9OT1dBSVQpOwotCi0Jc3Bpbl91bmxvY2tfaXJx KCZwb29sLT5sb2NrKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlpZCA9IGlkcl9hbGxvYygmcG9v bC0+d29ya2VyX2lkciwgTlVMTCwgR0ZQX0tFUk5FTCk7CiAJaWYgKGlkIDwgMCkKIAkJZ290byBm YWlsOwogCkBAIC0xNzM3LDE4ICsxNzMxLDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgd29ya2VyICpjcmVh dGVfd29ya2VyKHN0cnVjdCB3b3JrZXJfcG9vbCAqcG9vbCkKIAkJd29ya2VyLT5mbGFncyB8PSBX T1JLRVJfVU5CT1VORDsKIAogCS8qIHN1Y2Nlc3NmdWwsIGNvbW1pdCB0aGUgcG9pbnRlciB0byBp ZHIgKi8KLQlzcGluX2xvY2tfaXJxKCZwb29sLT5sb2NrKTsKIAlpZHJfcmVwbGFjZSgmcG9vbC0+ d29ya2VyX2lkciwgd29ya2VyLCB3b3JrZXItPmlkKTsKLQlzcGluX3VubG9ja19pcnEoJnBvb2wt PmxvY2spOwogCiAJcmV0dXJuIHdvcmtlcjsKIAogZmFpbDoKLQlpZiAoaWQgPj0gMCkgewotCQlz cGluX2xvY2tfaXJxKCZwb29sLT5sb2NrKTsKKwlpZiAoaWQgPj0gMCkKIAkJaWRyX3JlbW92ZSgm cG9vbC0+d29ya2VyX2lkciwgaWQpOwotCQlzcGluX3VubG9ja19pcnEoJnBvb2wtPmxvY2spOwot CX0KIAlrZnJlZSh3b3JrZXIpOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvbmV0Lzlw L3V0aWwuYyBiL25ldC85cC91dGlsLmMKaW5kZXggY2MzMWM2Mi4uMjM2OTNkNiAxMDA2NDQKLS0t IGEvbmV0LzlwL3V0aWwuYworKysgYi9uZXQvOXAvdXRpbC5jCkBAIC00MSw3ICs0MSw2IEBACiAg Ki8KIAogc3RydWN0IHA5X2lkcG9vbCB7Ci0Jc3BpbmxvY2tfdCBsb2NrOwogCXN0cnVjdCBpZHIg cG9vbDsKIH07CiAKQEAgLTU4LDcgKzU3LDYgQEAgc3RydWN0IHA5X2lkcG9vbCAqcDlfaWRwb29s X2NyZWF0ZSh2b2lkKQogCWlmICghcCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlz cGluX2xvY2tfaW5pdCgmcC0+bG9jayk7CiAJaWRyX2luaXQoJnAtPnBvb2wpOwogCiAJcmV0dXJu IHA7CkBAIC04OCwxNiArODYsOSBAQCBFWFBPUlRfU1lNQk9MKHA5X2lkcG9vbF9kZXN0cm95KTsK IGludCBwOV9pZHBvb2xfZ2V0KHN0cnVjdCBwOV9pZHBvb2wgKnApCiB7CiAJaW50IGk7Ci0JdW5z aWduZWQgbG9uZyBmbGFnczsKLQotCWlkcl9wcmVsb2FkKEdGUF9OT0ZTKTsKLQlzcGluX2xvY2tf aXJxc2F2ZSgmcC0+bG9jaywgZmxhZ3MpOwogCiAJLyogbm8gbmVlZCB0byBzdG9yZSBleGFjdGx5 IHAsIHdlIGp1c3QgbmVlZCBzb21ldGhpbmcgbm9uLW51bGwgKi8KLQlpID0gaWRyX2FsbG9jKCZw LT5wb29sLCBwLCBHRlBfTk9XQUlUKTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnAtPmxv Y2ssIGZsYWdzKTsKLQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlpID0gaWRyX2FsbG9jKCZwLT5wb29s LCBwLCBHRlBfTk9GUyk7CiAJaWYgKGkgPCAwKQogCQlyZXR1cm4gLTE7CiAKQEAgLTExNywxMyAr MTA4LDkgQEAgRVhQT1JUX1NZTUJPTChwOV9pZHBvb2xfZ2V0KTsKIAogdm9pZCBwOV9pZHBvb2xf cHV0KGludCBpZCwgc3RydWN0IHA5X2lkcG9vbCAqcCkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdz OwotCiAJcDlfZGVidWcoUDlfREVCVUdfTVVYLCAiIGlkICVkIHBvb2wgJXBcbiIsIGlkLCBwKTsK IAotCXNwaW5fbG9ja19pcnFzYXZlKCZwLT5sb2NrLCBmbGFncyk7CiAJaWRyX3JlbW92ZSgmcC0+ cG9vbCwgaWQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnAtPmxvY2ssIGZsYWdzKTsKIH0K IEVYUE9SVF9TWU1CT0wocDlfaWRwb29sX3B1dCk7CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fz c29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggOTFjZmQ4Zi4uZDI3MzllMCAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMKKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xh LmMKQEAgLTQ2NywxMSArNDY3LDggQEAgc3RhdGljIHZvaWQgc2N0cF9hc3NvY2lhdGlvbl9kZXN0 cm95KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKQogCXNjdHBfZW5kcG9pbnRfcHV0KGFz b2MtPmVwKTsKIAlzb2NrX3B1dChhc29jLT5iYXNlLnNrKTsKIAotCWlmIChhc29jLT5hc3NvY19p ZCAhPSAwKSB7Ci0JCXNwaW5fbG9ja19iaCgmc2N0cF9hc3NvY3NfaWRfbG9jayk7CisJaWYgKGFz b2MtPmFzc29jX2lkICE9IDApCiAJCWlkcl9yZW1vdmUoJnNjdHBfYXNzb2NzX2lkLCBhc29jLT5h c3NvY19pZCk7Ci0JCXNwaW5fdW5sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsKLQl9CiAK IAlXQVJOX09OKGF0b21pY19yZWFkKCZhc29jLT5ybWVtX2FsbG9jKSk7CiAKQEAgLTE1ODAsMjEg KzE1NzcsMTQgQEAgaW50IHNjdHBfYXNzb2NfbG9va3VwX2xhZGRyKHN0cnVjdCBzY3RwX2Fzc29j aWF0aW9uICphc29jLAogLyogU2V0IGFuIGFzc29jaWF0aW9uIGlkIGZvciBhIGdpdmVuIGFzc29j aWF0aW9uICovCiBpbnQgc2N0cF9hc3NvY19zZXRfaWQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24g KmFzb2MsIGdmcF90IGdmcCkKIHsKLQlib29sIHByZWxvYWQgPSBnZnAgJiBfX0dGUF9XQUlUOwog CWludCByZXQ7CiAKIAkvKiBJZiB0aGUgaWQgaXMgYWxyZWFkeSBhc3NpZ25lZCwga2VlcCBpdC4g Ki8KIAlpZiAoYXNvYy0+YXNzb2NfaWQpCiAJCXJldHVybiAwOwogCi0JaWYgKHByZWxvYWQpCi0J CWlkcl9wcmVsb2FkKGdmcCk7Ci0Jc3Bpbl9sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsK IAkvKiAwIGlzIG5vdCBhIHZhbGlkIGFzc29jX2lkLCBtdXN0IGJlID49IDEgKi8KLQlyZXQgPSBp ZHJfYWxsb2NfY3ljbGljKCZzY3RwX2Fzc29jc19pZCwgYXNvYywgMSwgMCwgR0ZQX05PV0FJVCk7 Ci0Jc3Bpbl91bmxvY2tfYmgoJnNjdHBfYXNzb2NzX2lkX2xvY2spOwotCWlmIChwcmVsb2FkKQot CQlpZHJfcHJlbG9hZF9lbmQoKTsKKwlyZXQgPSBpZHJfYWxsb2NfY3ljbGljKCZzY3RwX2Fzc29j c19pZCwgYXNvYywgMSwgMCwgZ2ZwKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIApk aWZmIC0tZ2l0IGEvbmV0L3NjdHAvcHJvdG9jb2wuYyBiL25ldC9zY3RwL3Byb3RvY29sLmMKaW5k ZXggZWFlZTAwYy4uNGJmZTJlOCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvcHJvdG9jb2wuYworKysg Yi9uZXQvc2N0cC9wcm90b2NvbC5jCkBAIC03MSw3ICs3MSw2IEBACiBzdHJ1Y3Qgc2N0cF9nbG9i YWxzIHNjdHBfZ2xvYmFscyBfX3JlYWRfbW9zdGx5OwogCiBzdHJ1Y3QgaWRyIHNjdHBfYXNzb2Nz X2lkOwotREVGSU5FX1NQSU5MT0NLKHNjdHBfYXNzb2NzX2lkX2xvY2spOwogCiBzdGF0aWMgc3Ry dWN0IHNjdHBfcGYgKnNjdHBfcGZfaW5ldDZfc3BlY2lmaWM7CiBzdGF0aWMgc3RydWN0IHNjdHBf cGYgKnNjdHBfcGZfaW5ldF9zcGVjaWZpYzsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5j IGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggNmFiYjFjYS4uM2ZlOWFiNCAxMDA2NDQKLS0tIGEv bmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTIzMCw5ICsyMzAs NyBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqc2N0cF9pZDJhc3NvYyhzdHJ1Y3Qgc29jayAq c2ssIHNjdHBfYXNzb2NfdCBpZCkKIAlpZiAoIWlkIHx8IChpZCA9PSAoc2N0cF9hc3NvY190KS0x KSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlzcGluX2xvY2tfYmgoJnNjdHBfYXNzb2NzX2lkX2xvY2sp OwogCWFzb2MgPSAoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKilpZHJfZmluZCgmc2N0cF9hc3Nv Y3NfaWQsIChpbnQpaWQpOwotCXNwaW5fdW5sb2NrX2JoKCZzY3RwX2Fzc29jc19pZF9sb2NrKTsK IAogCWlmICghYXNvYyB8fCAoYXNvYy0+YmFzZS5zayAhPSBzaykgfHwgYXNvYy0+YmFzZS5kZWFk KQogCQlyZXR1cm4gTlVMTDsKLS0gCjEuOC4zLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkNvbnRhaW5lcnMgbWFpbGluZyBsaXN0CkNvbnRhaW5lcnNA bGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24u b3JnL21haWxtYW4vbGlzdGluZm8vY29udGFpbmVycw==