From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] dma-buf: Rename struct fence to dma_fence Date: Thu, 20 Oct 2016 07:47:47 +0100 Message-ID: <20161020064747.7047-2-chris@chris-wilson.co.uk> References: <20161020064747.7047-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F6DF6E9A7 for ; Thu, 20 Oct 2016 06:47:58 +0000 (UTC) Received: by mail-lf0-x244.google.com with SMTP id x79so5884657lff.2 for ; Wed, 19 Oct 2016 23:47:57 -0700 (PDT) In-Reply-To: <20161020064747.7047-1-chris@chris-wilson.co.uk> 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 List-Id: dri-devel@lists.freedesktop.org SSBwbGFuIHRvIHVzdXJwIHRoZSBzaG9ydCBuYW1lIG9mIHN0cnVjdCBmZW5jZSBmb3IgYSBjb3Jl IGtlcm5lbCBzdHJ1Y3QsCmFuZCBzbyBJIG5lZWQgdG8gcmVuYW1lIHRoZSBzcGVjaWFsaXNlZCBm ZW5jZS90aW1lbGluZSBmb3IgRE1BCm9wZXJhdGlvbnMgdG8gbWFrZSByb29tLgoKQSBjb25zZW5z dXMgd2FzIHJlYWNoZWQgaW4KaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTYtSnVseS8xMTMwODMuaHRtbAp0aGF0IG1ha2luZyBjbGVhciB0aGlzIGZl bmNlIGFwcGxpZXMgdG8gRE1BIG9wZXJhdGlvbnMgd2FzIGEgZ29vZCB0aGluZy4KU2luY2UgdGhl biB0aGUgcGF0Y2ggaGFzIGdyb3duIGEgYml0IGFzIHVzYWdlIGluY3JlYXNlcywgc28gaG9wZWZ1 bGx5IGl0CnJlbWFpbnMgYSBnb29kIHRoaW5nIQoKY29jY2luZWxsZSBzY3JpcHQ6CkBACgpAQAoo Ci0gc3RydWN0IGZlbmNlCisgc3RydWN0IGRtYV9mZW5jZQp8Ci0gc3RydWN0IGZlbmNlX29wcwor IHN0cnVjdCBkbWFfZmVuY2Vfb3BzCnwKLSBzdHJ1Y3QgZmVuY2VfY2IKKyBzdHJ1Y3QgZG1hX2Zl bmNlX2NiCnwKLSBlbnVtIGZlbmNlX2ZsYWdfYml0cworIGVudW0gZG1hX2ZlbmNlX2ZsYWdfYml0 cwopCgpAQAoKQEAKKAotIGZlbmNlX2luaXQKKyBkbWFfZmVuY2VfaW5pdAp8Ci0gZmVuY2VfcmVs ZWFzZQorIGRtYV9mZW5jZV9yZWxlYXNlCnwKLSBmZW5jZV9mcmVlCisgZG1hX2ZlbmNlX2ZyZWUK fAotIGZlbmNlX2dldAorIGRtYV9mZW5jZV9nZXQKfAotIGZlbmNlX2dldF9yY3UKKyBkbWFfZmVu Y2VfZ2V0X3JjdQp8Ci0gZmVuY2VfZ2V0X3JjdV9zYWZlCisgZG1hX2ZlbmNlX2dldF9yY3Vfc2Fm ZQp8Ci0gZmVuY2VfcHV0CisgZG1hX2ZlbmNlX3B1dAp8Ci0gZmVuY2Vfc2lnbmFsCisgZG1hX2Zl bmNlX3NpZ25hbAp8Ci0gZmVuY2Vfc2lnbmFsX2xvY2tlZAorIGRtYV9mZW5jZV9zaWduYWxfbG9j a2VkCnwKLSBmZW5jZV9kZWZhdWx0X3dhaXQKKyBkbWFfZmVuY2VfZGVmYXVsdF93YWl0CnwKLSBm ZW5jZV9hZGRfY2FsbGJhY2sKKyBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrCnwKLSBmZW5jZV9yZW1v dmVfY2FsbGJhY2sKKyBkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrCnwKLSBmZW5jZV9lbmFibGVf c3dfc2lnbmFsaW5nCisgZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcKfAotIGZlbmNlX2lz X3NpZ25hbGVkX2xvY2tlZAorIGRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQKfAotIGZlbmNl X2lzX3NpZ25hbGVkCisgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkCnwKLSBmZW5jZV9pc19sYXRlcgor IGRtYV9mZW5jZV9pc19sYXRlcgp8Ci0gZmVuY2VfbGF0ZXIKKyBkbWFfZmVuY2VfbGF0ZXIKfAot IGZlbmNlX3dhaXRfdGltZW91dAorIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQKfAotIGZlbmNlX3dh aXRfYW55X3RpbWVvdXQKKyBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dAp8Ci0gZmVuY2Vfd2Fp dAorIGRtYV9mZW5jZV93YWl0CnwKLSBmZW5jZV9jb250ZXh0X2FsbG9jCisgZG1hX2ZlbmNlX2Nv bnRleHRfYWxsb2MKfAotIEZFTkNFX1RSQUNFCisgRE1BX0ZFTkNFX1RSQUNFCnwKLSBGRU5DRV9X QVJOCisgRE1BX0ZFTkNFX1dBUk4KfAotIEZFTkNFX0VSUgorIERNQV9GRU5DRV9FUlIKKQogKAog Li4uCiApCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KLS0tCiBkcml2ZXJzL2Jhc2UvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNiArLQogZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDI4ICstLQogLi4uL2RtYS1idWYve2ZlbmNlLWFycmF5LmMgPT4gZG1h LWZlbmNlLWFycmF5LmN9ICAgfCAgODkgKysrKy0tLS0KIGRyaXZlcnMvZG1hLWJ1Zi97ZmVuY2Uu YyA9PiBkbWEtZmVuY2UuY30gICAgICAgICAgIHwgMTk1ICsrKysrKysrLS0tLS0tLS0tCiBkcml2 ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICA5NCArKysr Ky0tLS0KIGRyaXZlcnMvZG1hLWJ1Zi9zZXFuby1mZW5jZS5jICAgICAgICAgICAgICAgICAgICAg IHwgIDE4ICstCiBkcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0OCArKy0tLQogZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuYyAgICAgICAgICAg ICAgICAgICAgICAgfCAgMTMgKy0KIGRyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmggICAgICAg ICAgICAgICAgICAgICAgIHwgICA5ICstCiBkcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICA1OSArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdS5oICAgICAgICAgICAgICAgIHwgIDU0ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYmVuY2htYXJrLmMgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgICAgICAgICAgICAgfCAgMTYgKy0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYyAgICAgICAgICAgIHwgIDIyICstCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgICAgICB8ICAxNCArLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyAgICAgICAgfCAgMTYg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jICAgICAgICAgIHwg IDU4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyAgICAgICAg ICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jICAg ICAgICAgICAgfCAgMjIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuYyAgICAgICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmggICAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3NhLmMgICAgICAgICAgICAgfCAgMjQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfc3luYy5jICAgICAgICAgICB8ICA0OCArKystLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3Rlc3QuYyAgICAgICAgICAgfCAgMTIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgICAgICB8ICAxMCArLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oICAgICAgICAgICAgfCAgIDQgKy0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAgICAgICAgICAgIHwgIDI2ICst LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5oICAgICAgICAgICAgfCAg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyAgICAgICAgICAg IHwgIDI2ICstLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oICAgICAg ICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAg ICAgICAgICAgIHwgIDgwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19z ZG1hLmMgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n ZnhfdjZfMC5jICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y3XzAuYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92OF8wLmMgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zZG1hX3YyXzQuYyAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWRfdHJhY2UuaCAgICB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jICAgICAgfCAgNjcg KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmggICAg ICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMg ICAgICAgIHwgIDQ4ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dlbS5jICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2 aXYvZXRuYXZpdl9ncHUuYyAgICAgICAgICAgICAgfCAgNTAgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgICAgICAgICAgICB8ICAyOCArLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaCAgICAgICAgICAgIHwgIDE4ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMgICAgICAgICAgICAgICB8ICA0MSAr Ky0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggICAgICAgICAgICAgICB8 ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgICAg ICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAg ICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMg ICAgICAgICAgICAgICAgICAgIHwgIDM0ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVu Y2UuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dlbS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ2VtX3N1Ym1pdC5jICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2dwdS5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgICAgICB8ICAgNiArLQogZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5jICAgICAgICAgICAgfCAgODAgKysr LS0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oICAgICAgICAgICAg fCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMgICAgICAgICAg ICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjA0X2ZlbmNlLmMgICAgICAg ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxMF9mZW5jZS5jICAg ICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2Uu YyAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Zl bmNlLmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4 NF9mZW5jZS5jICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X2Rydi5oICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcXhs L3F4bF9yZWxlYXNlLmMgICAgICAgICAgICAgICAgICB8ICAzNSArLS0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uLmggICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jICAgICAgICAgICAgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgICAgICAgICAgICAgIHwgIDU2ICsr LS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMgICAgICAgICAgICAgICB8 ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDI0ICstLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAg ICAgICAgICAgICAgfCAgMjIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgICAg ICAgICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVm X3V0aWwuYyAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9m ZW5jZS5jICAgICAgICAgICAgICAgICAgfCAgNTMgKystLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0 aW8vdmlydGdwdV9kcnYuaCAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfZmVuY2UuYyAgICAgICAgICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1 L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJz L2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21zLmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3BsYW5lLmMgICAgICAgICAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgICAgICAgICAgICAgIHwgIDQ0 ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmggICAgICAgICAgICAg IHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jICAgICAg ICAgICB8ICAgMiArLQogaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJp dmVyLmggICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2RybS90dG0vdHRtX2V4 ZWNidWZfdXRpbC5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9saW51eC9kbWEt YnVmLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvbGludXgv e2ZlbmNlLWFycmF5LmggPT4gZG1hLWZlbmNlLWFycmF5Lmh9IHwgIDQzICsrLS0KIGluY2x1ZGUv bGludXgve2ZlbmNlLmggPT4gZG1hLWZlbmNlLmh9ICAgICAgICAgICAgIHwgMjM1ICsrKysrKysr KysrLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMjggKy0tCiBpbmNsdWRlL2xpbnV4L3NlcW5vLWZlbmNlLmggICAgICAgICAg ICAgICAgICAgICAgICB8ICAxNiArLQogaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3tmZW5jZS5o ID0+IGRtYV9mZW5jZS5ofSAgICAgIHwgIDQ0ICsrLS0KIDEwNyBmaWxlcyBjaGFuZ2VkLCAxMTc0 IGluc2VydGlvbnMoKyksIDExMzYgZGVsZXRpb25zKC0pCiByZW5hbWUgZHJpdmVycy9kbWEtYnVm L3tmZW5jZS1hcnJheS5jID0+IGRtYS1mZW5jZS1hcnJheS5jfSAoNTMlKQogcmVuYW1lIGRyaXZl cnMvZG1hLWJ1Zi97ZmVuY2UuYyA9PiBkbWEtZmVuY2UuY30gKDY1JSkKIHJlbmFtZSBpbmNsdWRl L2xpbnV4L3tmZW5jZS1hcnJheS5oID0+IGRtYS1mZW5jZS1hcnJheS5ofSAoNjIlKQogcmVuYW1l IGluY2x1ZGUvbGludXgve2ZlbmNlLmggPT4gZG1hLWZlbmNlLmh9ICg1OSUpCiByZW5hbWUgaW5j bHVkZS90cmFjZS9ldmVudHMve2ZlbmNlLmggPT4gZG1hX2ZlbmNlLmh9ICg3MiUpCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9iYXNlL0tjb25maWcgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwppbmRleCBm ZGY0NGNhYzA4ZTYuLjM3YmYyNWM2YjRhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL0tjb25m aWcKKysrIGIvZHJpdmVycy9iYXNlL0tjb25maWcKQEAgLTI0OCwxMSArMjQ4LDExIEBAIGNvbmZp ZyBETUFfU0hBUkVEX0JVRkZFUgogCSAgQVBJcyBleHRlbnNpb247IHRoZSBmaWxlJ3MgZGVzY3Jp cHRvciBjYW4gdGhlbiBiZSBwYXNzZWQgb24gdG8gb3RoZXIKIAkgIGRyaXZlci4KIAotY29uZmln IEZFTkNFX1RSQUNFCi0JYm9vbCAiRW5hYmxlIHZlcmJvc2UgRkVOQ0VfVFJBQ0UgbWVzc2FnZXMi Citjb25maWcgRE1BX0ZFTkNFX1RSQUNFCisJYm9vbCAiRW5hYmxlIHZlcmJvc2UgRE1BX0ZFTkNF X1RSQUNFIG1lc3NhZ2VzIgogCWRlcGVuZHMgb24gRE1BX1NIQVJFRF9CVUZGRVIKIAloZWxwCi0J ICBFbmFibGUgdGhlIEZFTkNFX1RSQUNFIHByaW50a3MuIFRoaXMgd2lsbCBhZGQgZXh0cmEKKwkg IEVuYWJsZSB0aGUgRE1BX0ZFTkNFX1RSQUNFIHByaW50a3MuIFRoaXMgd2lsbCBhZGQgZXh0cmEK IAkgIHNwYW0gdG8gdGhlIGNvbnNvbGUgbG9nLCBidXQgd2lsbCBtYWtlIGl0IGVhc2llciB0byBk aWFnbm9zZQogCSAgbG9ja3VwIHJlbGF0ZWQgcHJvYmxlbXMgZm9yIGRtYS1idWZmZXJzIHNoYXJl ZCBhY3Jvc3MgbXVsdGlwbGUKIAkgIGRldmljZXMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1i dWYvTWFrZWZpbGUgYi9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKaW5kZXggMjEwYTEwYmZhZDJi Li5jMzNiZjg4NjMxNDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKQEAgLTEsMyArMSwzIEBACi1vYmoteSA6PSBkbWEt YnVmLm8gZmVuY2UubyByZXNlcnZhdGlvbi5vIHNlcW5vLWZlbmNlLm8gZmVuY2UtYXJyYXkubwor b2JqLXkgOj0gZG1hLWJ1Zi5vIGRtYS1mZW5jZS5vIGRtYS1mZW5jZS1hcnJheS5vIHJlc2VydmF0 aW9uLm8gc2Vxbm8tZmVuY2Uubwogb2JqLSQoQ09ORklHX1NZTkNfRklMRSkJCSs9IHN5bmNfZmls ZS5vCiBvYmotJChDT05GSUdfU1dfU1lOQykJCSs9IHN3X3N5bmMubyBzeW5jX2RlYnVnLm8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1h LWJ1Zi5jCmluZGV4IGNmMDRkMjQ5YTZhNC4uZTcyZTY0NDg0MTMxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKQEAg LTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2Uu aD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KICNpbmNsdWRlIDxsaW51eC9hbm9uX2lu b2Rlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVn ZnMuaD4KQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgbG9mZl90IGRtYV9idWZfbGxzZWVrKHN0 cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKQogCXJldHVybiBiYXNl ICsgb2Zmc2V0OwogfQogCi1zdGF0aWMgdm9pZCBkbWFfYnVmX3BvbGxfY2Ioc3RydWN0IGZlbmNl ICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKK3N0YXRpYyB2b2lkIGRtYV9idWZfcG9sbF9j YihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJ c3RydWN0IGRtYV9idWZfcG9sbF9jYl90ICpkY2IgPSAoc3RydWN0IGRtYV9idWZfcG9sbF9jYl90 ICopY2I7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGRtYV9idWZfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAq cG9sbCkKIAlzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmOwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmpl Y3QgKnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVj dCBmZW5jZSAqZmVuY2VfZXhjbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZV9leGNsOwogCXVu c2lnbmVkIGxvbmcgZXZlbnRzOwogCXVuc2lnbmVkIHNoYXJlZF9jb3VudCwgc2VxOwogCkBAIC0x ODcsMjAgKzE4NywyMCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGRtYV9idWZfcG9sbChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqcG9sbCkKIAkJc3Bpbl91bmxvY2tfaXJxKCZkbWFidWYt PnBvbGwubG9jayk7CiAKIAkJaWYgKGV2ZW50cyAmIHBldmVudHMpIHsKLQkJCWlmICghZmVuY2Vf Z2V0X3JjdShmZW5jZV9leGNsKSkgeworCQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZV9l eGNsKSkgewogCQkJCS8qIGZvcmNlIGEgcmVjaGVjayAqLwogCQkJCWV2ZW50cyAmPSB+cGV2ZW50 czsKIAkJCQlkbWFfYnVmX3BvbGxfY2IoTlVMTCwgJmRjYi0+Y2IpOwotCQkJfSBlbHNlIGlmICgh ZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlX2V4Y2wsICZkY2ItPmNiLAotCQkJCQkJICAgICAgIGRt YV9idWZfcG9sbF9jYikpIHsKKwkJCX0gZWxzZSBpZiAoIWRtYV9mZW5jZV9hZGRfY2FsbGJhY2so ZmVuY2VfZXhjbCwgJmRjYi0+Y2IsCisJCQkJCQkJICAgZG1hX2J1Zl9wb2xsX2NiKSkgewogCQkJ CWV2ZW50cyAmPSB+cGV2ZW50czsKLQkJCQlmZW5jZV9wdXQoZmVuY2VfZXhjbCk7CisJCQkJZG1h X2ZlbmNlX3B1dChmZW5jZV9leGNsKTsKIAkJCX0gZWxzZSB7CiAJCQkJLyoKIAkJCQkgKiBObyBj YWxsYmFjayBxdWV1ZWQsIHdha2UgdXAgYW55IGFkZGl0aW9uYWwKIAkJCQkgKiB3YWl0ZXJzLgog CQkJCSAqLwotCQkJCWZlbmNlX3B1dChmZW5jZV9leGNsKTsKKwkJCQlkbWFfZmVuY2VfcHV0KGZl bmNlX2V4Y2wpOwogCQkJCWRtYV9idWZfcG9sbF9jYihOVUxMLCAmZGNiLT5jYik7CiAJCQl9CiAJ CX0KQEAgLTIyMiw5ICsyMjIsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGRtYV9idWZfcG9sbChz dHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqcG9sbCkKIAkJCWdvdG8gb3V0OwogCiAJCWZv ciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgewotCQkJc3RydWN0IGZlbmNlICpmZW5j ZSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOworCQkJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKIAotCQkJaWYgKCFm ZW5jZV9nZXRfcmN1KGZlbmNlKSkgeworCQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZSkp IHsKIAkJCQkvKgogCQkJCSAqIGZlbmNlIHJlZmNvdW50IGRyb3BwZWQgdG8gemVybywgdGhpcyBt ZWFucwogCQkJCSAqIHRoYXQgZm9iaiBoYXMgYmVlbiBmcmVlZApAQCAtMjM1LDEzICsyMzUsMTMg QEAgc3RhdGljIHVuc2lnbmVkIGludCBkbWFfYnVmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBv bGxfdGFibGUgKnBvbGwpCiAJCQkJZG1hX2J1Zl9wb2xsX2NiKE5VTEwsICZkY2ItPmNiKTsKIAkJ CQlicmVhazsKIAkJCX0KLQkJCWlmICghZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmZGNiLT5j YiwKLQkJCQkJCWRtYV9idWZfcG9sbF9jYikpIHsKLQkJCQlmZW5jZV9wdXQoZmVuY2UpOworCQkJ aWYgKCFkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmZGNiLT5jYiwKKwkJCQkJCSAgICBk bWFfYnVmX3BvbGxfY2IpKSB7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCQkJZXZlbnRz ICY9IH5QT0xMT1VUOwogCQkJCWJyZWFrOwogCQkJfQotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJ CWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQl9CiAKIAkJLyogTm8gY2FsbGJhY2sgcXVldWVkLCB3 YWtlIHVwIGFueSBhZGRpdGlvbmFsIHdhaXRlcnMuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Rt YS1idWYvZmVuY2UtYXJyYXkuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtYXJyYXkuYwpz aW1pbGFyaXR5IGluZGV4IDUzJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2RtYS1idWYvZmVuY2UtYXJy YXkuYwpyZW5hbWUgdG8gZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1hcnJheS5jCmluZGV4IGYx OTg5ZmNhZjM1NC4uNWUxMTBiNzIwNjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvZmVu Y2UtYXJyYXkuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWFycmF5LmMKQEAgLTEs NSArMSw1IEBACiAvKgotICogZmVuY2UtYXJyYXk6IGFnZ3JlZ2F0ZSBmZW5jZXMgdG8gYmUgd2Fp dGVkIHRvZ2V0aGVyCisgKiBkbWEtZmVuY2UtYXJyYXk6IGFnZ3JlZ2F0ZSBmZW5jZXMgdG8gYmUg d2FpdGVkIHRvZ2V0aGVyCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDE2IENvbGxhYm9yYSBMdGQK ICAqIENvcHlyaWdodCAoQykgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCkBAIC0x OSwzNSArMTksMzQgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS1hcnJheS5oPgorI2luY2x1ZGUgPGxp bnV4L2RtYS1mZW5jZS1hcnJheS5oPgogCi1zdGF0aWMgdm9pZCBmZW5jZV9hcnJheV9jYl9mdW5j KHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2NiICpjYik7Ci0KLXN0YXRpYyBjb25zdCBj aGFyICpmZW5jZV9hcnJheV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyBjb25zdCBjaGFyICpkbWFfZmVuY2VfYXJyYXlfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAiZmVuY2VfYXJyYXkiOwogfQogCi1zdGF0aWMg Y29uc3QgY2hhciAqZmVuY2VfYXJyYXlfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpm ZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpkbWFfZmVuY2VfYXJyYXlfZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJ1bmJvdW5kIjsKIH0KIAot c3RhdGljIHZvaWQgZmVuY2VfYXJyYXlfY2JfZnVuYyhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBm ZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBkbWFfZmVuY2VfYXJyYXlfY2JfZnVuYyhzdHJ1Y3Qg ZG1hX2ZlbmNlICpmLAorCQkJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKLQlzdHJ1 Y3QgZmVuY2VfYXJyYXlfY2IgKmFycmF5X2NiID0KLQkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3Qg ZmVuY2VfYXJyYXlfY2IsIGNiKTsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXkgKmFycmF5ID0gYXJyYXlf Y2ItPmFycmF5OworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgKmFycmF5X2NiID0KKwkJY29u dGFpbmVyX29mKGNiLCBzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiLCBjYik7CisJc3RydWN0IGRt YV9mZW5jZV9hcnJheSAqYXJyYXkgPSBhcnJheV9jYi0+YXJyYXk7CiAKIAlpZiAoYXRvbWljX2Rl Y19hbmRfdGVzdCgmYXJyYXktPm51bV9wZW5kaW5nKSkKLQkJZmVuY2Vfc2lnbmFsKCZhcnJheS0+ YmFzZSk7Ci0JZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoJmFy cmF5LT5iYXNlKTsKKwlkbWFfZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CiB9CiAKLXN0YXRpYyBi b29sIGZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyBib29sIGRtYV9mZW5jZV9hcnJheV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKQogewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXkgPSB0b19mZW5jZV9hcnJh eShmZW5jZSk7Ci0Jc3RydWN0IGZlbmNlX2FycmF5X2NiICpjYiA9ICh2b2lkICopKCZhcnJheVsx XSk7CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVuY2VfYXJyYXko ZmVuY2UpOworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgKmNiID0gKHZvaWQgKikoJmFycmF5 WzFdKTsKIAl1bnNpZ25lZCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGFycmF5LT5udW1fZmVuY2Vz OyArK2kpIHsKQEAgLTYwLDEwICs1OSwxMCBAQCBzdGF0aWMgYm9vbCBmZW5jZV9hcnJheV9lbmFi bGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAJCSAqIHVudGlsIHdlIHNpZ25hbCB0 aGUgYXJyYXkgYXMgY29tcGxldGUgKGJ1dCB0aGF0IGlzIG5vdwogCQkgKiBpbnN1ZmZpY2llbnQp LgogCQkgKi8KLQkJZmVuY2VfZ2V0KCZhcnJheS0+YmFzZSk7Ci0JCWlmIChmZW5jZV9hZGRfY2Fs bGJhY2soYXJyYXktPmZlbmNlc1tpXSwgJmNiW2ldLmNiLAotCQkJCSAgICAgICBmZW5jZV9hcnJh eV9jYl9mdW5jKSkgewotCQkJZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CisJCWRtYV9mZW5jZV9n ZXQoJmFycmF5LT5iYXNlKTsKKwkJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soYXJyYXktPmZl bmNlc1tpXSwgJmNiW2ldLmNiLAorCQkJCSAgICAgICBkbWFfZmVuY2VfYXJyYXlfY2JfZnVuYykp IHsKKwkJCWRtYV9mZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKIAkJCWlmIChhdG9taWNfZGVjX2Fu ZF90ZXN0KCZhcnJheS0+bnVtX3BlbmRpbmcpKQogCQkJCXJldHVybiBmYWxzZTsKIAkJfQpAQCAt NzIsNjkgKzcxLDcxIEBAIHN0YXRpYyBib29sIGZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmco c3RydWN0IGZlbmNlICpmZW5jZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZmVu Y2VfYXJyYXlfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIGRtYV9m ZW5jZV9hcnJheV9zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3Qg ZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoZmVuY2UpOworCXN0cnVjdCBkbWFf ZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KGZlbmNlKTsKIAogCXJldHVy biBhdG9taWNfcmVhZCgmYXJyYXktPm51bV9wZW5kaW5nKSA8PSAwOwogfQogCi1zdGF0aWMgdm9p ZCBmZW5jZV9hcnJheV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBk bWFfZmVuY2VfYXJyYXlfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1 Y3QgZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoZmVuY2UpOworCXN0cnVjdCBk bWFfZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KGZlbmNlKTsKIAl1bnNp Z25lZCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGFycmF5LT5udW1fZmVuY2VzOyArK2kpCi0JCWZl bmNlX3B1dChhcnJheS0+ZmVuY2VzW2ldKTsKKwkJZG1hX2ZlbmNlX3B1dChhcnJheS0+ZmVuY2Vz W2ldKTsKIAogCWtmcmVlKGFycmF5LT5mZW5jZXMpOwotCWZlbmNlX2ZyZWUoZmVuY2UpOworCWRt YV9mZW5jZV9mcmVlKGZlbmNlKTsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyBmZW5jZV9h cnJheV9vcHMgPSB7Ci0JLmdldF9kcml2ZXJfbmFtZSA9IGZlbmNlX2FycmF5X2dldF9kcml2ZXJf bmFtZSwKLQkuZ2V0X3RpbWVsaW5lX25hbWUgPSBmZW5jZV9hcnJheV9nZXRfdGltZWxpbmVfbmFt ZSwKLQkuZW5hYmxlX3NpZ25hbGluZyA9IGZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmcsCi0J LnNpZ25hbGVkID0gZmVuY2VfYXJyYXlfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0 X3dhaXQsCi0JLnJlbGVhc2UgPSBmZW5jZV9hcnJheV9yZWxlYXNlLAorY29uc3Qgc3RydWN0IGRt YV9mZW5jZV9vcHMgZG1hX2ZlbmNlX2FycmF5X29wcyA9IHsKKwkuZ2V0X2RyaXZlcl9uYW1lID0g ZG1hX2ZlbmNlX2FycmF5X2dldF9kcml2ZXJfbmFtZSwKKwkuZ2V0X3RpbWVsaW5lX25hbWUgPSBk bWFfZmVuY2VfYXJyYXlfZ2V0X3RpbWVsaW5lX25hbWUsCisJLmVuYWJsZV9zaWduYWxpbmcgPSBk bWFfZmVuY2VfYXJyYXlfZW5hYmxlX3NpZ25hbGluZywKKwkuc2lnbmFsZWQgPSBkbWFfZmVuY2Vf YXJyYXlfc2lnbmFsZWQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAorCS5yZWxl YXNlID0gZG1hX2ZlbmNlX2FycmF5X3JlbGVhc2UsCiB9OwotRVhQT1JUX1NZTUJPTChmZW5jZV9h cnJheV9vcHMpOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfYXJyYXlfb3BzKTsKIAogLyoqCi0g KiBmZW5jZV9hcnJheV9jcmVhdGUgLSBDcmVhdGUgYSBjdXN0b20gZmVuY2UgYXJyYXkKKyAqIGRt YV9mZW5jZV9hcnJheV9jcmVhdGUgLSBDcmVhdGUgYSBjdXN0b20gZmVuY2UgYXJyYXkKICAqIEBu dW1fZmVuY2VzOgkJW2luXQludW1iZXIgb2YgZmVuY2VzIHRvIGFkZCBpbiB0aGUgYXJyYXkKICAq IEBmZW5jZXM6CQlbaW5dCWFycmF5IGNvbnRhaW5pbmcgdGhlIGZlbmNlcwogICogQGNvbnRleHQ6 CQlbaW5dCWZlbmNlIGNvbnRleHQgdG8gdXNlCiAgKiBAc2Vxbm86CQlbaW5dCXNlcXVlbmNlIG51 bWJlciB0byB1c2UKICAqIEBzaWduYWxfb25fYW55OglbaW5dCXNpZ25hbCBvbiBhbnkgZmVuY2Ug aW4gdGhlIGFycmF5CiAgKgotICogQWxsb2NhdGUgYSBmZW5jZV9hcnJheSBvYmplY3QgYW5kIGlu aXRpYWxpemUgdGhlIGJhc2UgZmVuY2Ugd2l0aCBmZW5jZV9pbml0KCkuCisgKiBBbGxvY2F0ZSBh IGZlbmNlX2FycmF5IG9iamVjdCBhbmQgaW5pdGlhbGl6ZSB0aGUgYmFzZSBmZW5jZSB3aXRoIAor ICogZG1hX2ZlbmNlX2luaXQoKS4KICAqIEluIGNhc2Ugb2YgZXJyb3IgaXQgcmV0dXJucyBOVUxM LgogICoKICAqIFRoZSBjYWxsZXIgc2hvdWxkIGFsbG9jYXRlIHRoZSBmZW5jZXMgYXJyYXkgd2l0 aCBudW1fZmVuY2VzIHNpemUKICAqIGFuZCBmaWxsIGl0IHdpdGggdGhlIGZlbmNlcyBpdCB3YW50 cyB0byBhZGQgdG8gdGhlIG9iamVjdC4gT3duZXJzaGlwIG9mIHRoaXMKLSAqIGFycmF5IGlzIHRh a2VuIGFuZCBmZW5jZV9wdXQoKSBpcyB1c2VkIG9uIGVhY2ggZmVuY2Ugb24gcmVsZWFzZS4KKyAq IGFycmF5IGlzIHRha2VuIGFuZCBkbWFfZmVuY2VfcHV0KCkgaXMgdXNlZCBvbiBlYWNoIGZlbmNl IG9uIHJlbGVhc2UuCiAgKgogICogSWYgQHNpZ25hbF9vbl9hbnkgaXMgdHJ1ZSB0aGUgZmVuY2Ug YXJyYXkgc2lnbmFscyBpZiBhbnkgZmVuY2UgaW4gdGhlIGFycmF5CiAgKiBzaWduYWxzLCBvdGhl cndpc2UgaXQgc2lnbmFscyB3aGVuIGFsbCBmZW5jZXMgaW4gdGhlIGFycmF5IHNpZ25hbC4KICAq Lwotc3RydWN0IGZlbmNlX2FycmF5ICpmZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMs IHN0cnVjdCBmZW5jZSAqKmZlbmNlcywKLQkJCQkgICAgICAgdTY0IGNvbnRleHQsIHVuc2lnbmVk IHNlcW5vLAotCQkJCSAgICAgICBib29sIHNpZ25hbF9vbl9hbnkpCitzdHJ1Y3QgZG1hX2ZlbmNl X2FycmF5ICpkbWFfZmVuY2VfYXJyYXlfY3JlYXRlKGludCBudW1fZmVuY2VzLAorCQkJCQkgICAg ICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcywKKwkJCQkJICAgICAgIHU2NCBjb250ZXh0LCB1 bnNpZ25lZCBzZXFubywKKwkJCQkJICAgICAgIGJvb2wgc2lnbmFsX29uX2FueSkKIHsKLQlzdHJ1 Y3QgZmVuY2VfYXJyYXkgKmFycmF5OworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5Owog CXNpemVfdCBzaXplID0gc2l6ZW9mKCphcnJheSk7CiAKIAkvKiBBbGxvY2F0ZSB0aGUgY2FsbGJh Y2sgc3RydWN0dXJlcyBiZWhpbmQgdGhlIGFycmF5LiAqLwotCXNpemUgKz0gbnVtX2ZlbmNlcyAq IHNpemVvZihzdHJ1Y3QgZmVuY2VfYXJyYXlfY2IpOworCXNpemUgKz0gbnVtX2ZlbmNlcyAqIHNp emVvZihzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiKTsKIAlhcnJheSA9IGt6YWxsb2Moc2l6ZSwg R0ZQX0tFUk5FTCk7CiAJaWYgKCFhcnJheSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlzcGluX2xvY2tf aW5pdCgmYXJyYXktPmxvY2spOwotCWZlbmNlX2luaXQoJmFycmF5LT5iYXNlLCAmZmVuY2VfYXJy YXlfb3BzLCAmYXJyYXktPmxvY2ssCi0JCSAgIGNvbnRleHQsIHNlcW5vKTsKKwlkbWFfZmVuY2Vf aW5pdCgmYXJyYXktPmJhc2UsICZkbWFfZmVuY2VfYXJyYXlfb3BzLCAmYXJyYXktPmxvY2ssCisJ CSAgICAgICBjb250ZXh0LCBzZXFubyk7CiAKIAlhcnJheS0+bnVtX2ZlbmNlcyA9IG51bV9mZW5j ZXM7CiAJYXRvbWljX3NldCgmYXJyYXktPm51bV9wZW5kaW5nLCBzaWduYWxfb25fYW55ID8gMSA6 IG51bV9mZW5jZXMpOwpAQCAtMTQyLDQgKzE0Myw0IEBAIHN0cnVjdCBmZW5jZV9hcnJheSAqZmVu Y2VfYXJyYXlfY3JlYXRlKGludCBudW1fZmVuY2VzLCBzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsCiAK IAlyZXR1cm4gYXJyYXk7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX2FycmF5X2NyZWF0ZSk7CitF WFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9hcnJheV9jcmVhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL2ZlbmNlLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKc2ltaWxhcml0 eSBpbmRleCA2NSUKcmVuYW1lIGZyb20gZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMKcmVuYW1lIHRv IGRyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwppbmRleCA0ZDUxZjllODNmYTguLjAxZmY5NGRm YmYyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMKKysrIGIvZHJpdmVycy9k bWEtYnVmL2RtYS1mZW5jZS5jCkBAIC0yMSwxMyArMjEsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvYXRvbWlj Lmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2Uu aD4KIAogI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCi0jaW5jbHVkZSA8dHJhY2UvZXZlbnRz L2ZlbmNlLmg+CisjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPgogCi1FWFBPUlRf VFJBQ0VQT0lOVF9TWU1CT0woZmVuY2VfYW5ub3RhdGVfd2FpdF9vbik7Ci1FWFBPUlRfVFJBQ0VQ T0lOVF9TWU1CT0woZmVuY2VfZW1pdCk7CitFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0woZG1hX2Zl bmNlX2Fubm90YXRlX3dhaXRfb24pOworRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9mZW5j ZV9lbWl0KTsKIAogLyoKICAqIGZlbmNlIGNvbnRleHQgY291bnRlcjogZWFjaCBleGVjdXRpb24g Y29udGV4dCBzaG91bGQgaGF2ZSBpdHMgb3duCkBAIC0zNSwzNyArMzUsMzcgQEAgRVhQT1JUX1RS QUNFUE9JTlRfU1lNQk9MKGZlbmNlX2VtaXQpOwogICogY29udGV4dCBvciBub3QuIE9uZSBkZXZp Y2UgY2FuIGhhdmUgbXVsdGlwbGUgc2VwYXJhdGUgY29udGV4dHMsCiAgKiBhbmQgdGhleSdyZSB1 c2VkIGlmIHNvbWUgZW5naW5lIGNhbiBydW4gaW5kZXBlbmRlbnRseSBvZiBhbm90aGVyLgogICov Ci1zdGF0aWMgYXRvbWljNjRfdCBmZW5jZV9jb250ZXh0X2NvdW50ZXIgPSBBVE9NSUM2NF9JTklU KDApOworc3RhdGljIGF0b21pYzY0X3QgZG1hX2ZlbmNlX2NvbnRleHRfY291bnRlciA9IEFUT01J QzY0X0lOSVQoMCk7CiAKIC8qKgotICogZmVuY2VfY29udGV4dF9hbGxvYyAtIGFsbG9jYXRlIGFu IGFycmF5IG9mIGZlbmNlIGNvbnRleHRzCisgKiBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyAtIGFs bG9jYXRlIGFuIGFycmF5IG9mIGZlbmNlIGNvbnRleHRzCiAgKiBAbnVtOglbaW5dCWFtb3VudCBv ZiBjb250ZXh0cyB0byBhbGxvY2F0ZQogICoKICAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4g dGhlIGZpcnN0IGluZGV4IG9mIHRoZSBudW1iZXIgb2YgZmVuY2VzIGFsbG9jYXRlZC4KICAqIFRo ZSBmZW5jZSBjb250ZXh0IGlzIHVzZWQgZm9yIHNldHRpbmcgZmVuY2UtPmNvbnRleHQgdG8gYSB1 bmlxdWUgbnVtYmVyLgogICovCi11NjQgZmVuY2VfY29udGV4dF9hbGxvYyh1bnNpZ25lZCBudW0p Cit1NjQgZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2ModW5zaWduZWQgbnVtKQogewogCUJVR19PTigh bnVtKTsKLQlyZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybihudW0sICZmZW5jZV9jb250ZXh0X2Nv dW50ZXIpIC0gbnVtOworCXJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKG51bSwgJmRtYV9mZW5j ZV9jb250ZXh0X2NvdW50ZXIpIC0gbnVtOwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9jb250ZXh0 X2FsbG9jKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MpOwogCiAvKioK LSAqIGZlbmNlX3NpZ25hbF9sb2NrZWQgLSBzaWduYWwgY29tcGxldGlvbiBvZiBhIGZlbmNlCisg KiBkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCAtIHNpZ25hbCBjb21wbGV0aW9uIG9mIGEgZmVuY2UK ICAqIEBmZW5jZTogdGhlIGZlbmNlIHRvIHNpZ25hbAogICoKICAqIFNpZ25hbCBjb21wbGV0aW9u IGZvciBzb2Z0d2FyZSBjYWxsYmFja3Mgb24gYSBmZW5jZSwgdGhpcyB3aWxsIHVuYmxvY2sKLSAq IGZlbmNlX3dhaXQoKSBjYWxscyBhbmQgcnVuIGFsbCB0aGUgY2FsbGJhY2tzIGFkZGVkIHdpdGgK LSAqIGZlbmNlX2FkZF9jYWxsYmFjaygpLiBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBi dXQgc2luY2UgYSBmZW5jZQorICogZG1hX2ZlbmNlX3dhaXQoKSBjYWxscyBhbmQgcnVuIGFsbCB0 aGUgY2FsbGJhY2tzIGFkZGVkIHdpdGgKKyAqIGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soKS4gQ2Fu IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcywgYnV0IHNpbmNlIGEgZmVuY2UKICAqIGNhbiBvbmx5 IGdvIGZyb20gdW5zaWduYWxlZCB0byBzaWduYWxlZCBzdGF0ZSwgaXQgd2lsbCBvbmx5IGJlIGVm ZmVjdGl2ZQogICogdGhlIGZpcnN0IHRpbWUuCiAgKgotICogVW5saWtlIGZlbmNlX3NpZ25hbCwg dGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIGZlbmNlLT5sb2NrIGhlbGQuCisgKiBV bmxpa2UgZG1hX2ZlbmNlX3NpZ25hbCwgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRo IGZlbmNlLT5sb2NrIGhlbGQuCiAgKi8KLWludCBmZW5jZV9zaWduYWxfbG9ja2VkKHN0cnVjdCBm ZW5jZSAqZmVuY2UpCitpbnQgZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IGZlbmNlX2NiICpjdXIsICp0bXA7CisJc3RydWN0IGRtYV9m ZW5jZV9jYiAqY3VyLCAqdG1wOwogCWludCByZXQgPSAwOwogCiAJaWYgKFdBUk5fT04oIWZlbmNl KSkKQEAgLTc2LDE1ICs3NiwxNSBAQCBpbnQgZmVuY2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQogCQlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsKIAl9CiAKLQlpZiAodGVzdF9h bmRfc2V0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpIHsKKwlp ZiAodGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ ZmxhZ3MpKSB7CiAJCXJldCA9IC1FSU5WQUw7CiAKIAkJLyoKLQkJICogd2UgbWlnaHQgaGF2ZSBy YWNlZCB3aXRoIHRoZSB1bmxvY2tlZCBmZW5jZV9zaWduYWwsCisJCSAqIHdlIG1pZ2h0IGhhdmUg cmFjZWQgd2l0aCB0aGUgdW5sb2NrZWQgZG1hX2ZlbmNlX3NpZ25hbCwKIAkJICogc3RpbGwgcnVu IHRocm91Z2ggYWxsIGNhbGxiYWNrcwogCQkgKi8KIAl9IGVsc2UKLQkJdHJhY2VfZmVuY2Vfc2ln bmFsZWQoZmVuY2UpOworCQl0cmFjZV9kbWFfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpOwogCiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1wLCAmZmVuY2UtPmNiX2xpc3QsIG5vZGUpIHsK IAkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKQEAgLTkyLDE5ICs5MiwxOSBAQCBpbnQgZmVu Y2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCX0KIAlyZXR1cm4gcmV0Owog fQotRVhQT1JUX1NZTUJPTChmZW5jZV9zaWduYWxfbG9ja2VkKTsKK0VYUE9SVF9TWU1CT0woZG1h X2ZlbmNlX3NpZ25hbF9sb2NrZWQpOwogCiAvKioKLSAqIGZlbmNlX3NpZ25hbCAtIHNpZ25hbCBj b21wbGV0aW9uIG9mIGEgZmVuY2UKKyAqIGRtYV9mZW5jZV9zaWduYWwgLSBzaWduYWwgY29tcGxl dGlvbiBvZiBhIGZlbmNlCiAgKiBAZmVuY2U6IHRoZSBmZW5jZSB0byBzaWduYWwKICAqCiAgKiBT aWduYWwgY29tcGxldGlvbiBmb3Igc29mdHdhcmUgY2FsbGJhY2tzIG9uIGEgZmVuY2UsIHRoaXMg d2lsbCB1bmJsb2NrCi0gKiBmZW5jZV93YWl0KCkgY2FsbHMgYW5kIHJ1biBhbGwgdGhlIGNhbGxi YWNrcyBhZGRlZCB3aXRoCi0gKiBmZW5jZV9hZGRfY2FsbGJhY2soKS4gQ2FuIGJlIGNhbGxlZCBt dWx0aXBsZSB0aW1lcywgYnV0IHNpbmNlIGEgZmVuY2UKKyAqIGRtYV9mZW5jZV93YWl0KCkgY2Fs bHMgYW5kIHJ1biBhbGwgdGhlIGNhbGxiYWNrcyBhZGRlZCB3aXRoCisgKiBkbWFfZmVuY2VfYWRk X2NhbGxiYWNrKCkuIENhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIGJ1dCBzaW5jZSBhIGZl bmNlCiAgKiBjYW4gb25seSBnbyBmcm9tIHVuc2lnbmFsZWQgdG8gc2lnbmFsZWQgc3RhdGUsIGl0 IHdpbGwgb25seSBiZSBlZmZlY3RpdmUKICAqIHRoZSBmaXJzdCB0aW1lLgogICovCi1pbnQgZmVu Y2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitpbnQgZG1hX2ZlbmNlX3NpZ25hbChzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0xMTYs MTMgKzExNiwxMyBAQCBpbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAJCXNt cF9tYl9fYmVmb3JlX2F0b21pYygpOwogCX0KIAotCWlmICh0ZXN0X2FuZF9zZXRfYml0KEZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAodGVzdF9hbmRfc2V0X2Jp dChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKQogCQlyZXR1cm4g LUVJTlZBTDsKIAotCXRyYWNlX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVu Y2Vfc2lnbmFsZWQoZmVuY2UpOwogCi0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfRU5BQkxFX1NJ R05BTF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0JCXN0cnVjdCBmZW5jZV9jYiAqY3VyLCAqdG1w OworCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwgJmZlbmNl LT5mbGFncykpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9jYiAqY3VyLCAqdG1wOwogCiAJCXNwaW5f bG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShjdXIsIHRtcCwgJmZlbmNlLT5jYl9saXN0LCBub2RlKSB7CkBAIC0xMzMsMTAgKzEzMywx MCBAQCBpbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAJfQogCXJldHVybiAw OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9zaWduYWwpOworRVhQT1JUX1NZTUJPTChkbWFfZmVu Y2Vfc2lnbmFsKTsKIAogLyoqCi0gKiBmZW5jZV93YWl0X3RpbWVvdXQgLSBzbGVlcCB1bnRpbCB0 aGUgZmVuY2UgZ2V0cyBzaWduYWxlZAorICogZG1hX2ZlbmNlX3dhaXRfdGltZW91dCAtIHNsZWVw IHVudGlsIHRoZSBmZW5jZSBnZXRzIHNpZ25hbGVkCiAgKiBvciB1bnRpbCB0aW1lb3V0IGVsYXBz ZXMKICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gd2FpdCBvbgogICogQGludHI6CVtpbl0J aWYgdHJ1ZSwgZG8gYW4gaW50ZXJydXB0aWJsZSB3YWl0CkBAIC0xNTIsNyArMTUyLDcgQEAgRVhQ T1JUX1NZTUJPTChmZW5jZV9zaWduYWwpOwogICogZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0 aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KICAqLwogc2lnbmVkIGxvbmcKLWZlbmNlX3dhaXRf dGltZW91dChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVv dXQpCitkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29s IGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiB7CiAJc2lnbmVkIGxvbmcgcmV0OwogCkBAIC0x NjAsNzAgKzE2MCw3MSBAQCBmZW5jZV93YWl0X3RpbWVvdXQoc3RydWN0IGZlbmNlICpmZW5jZSwg Ym9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlm ICh0aW1lb3V0ID09IDApCi0JCXJldHVybiBmZW5jZV9pc19zaWduYWxlZChmZW5jZSk7CisJCXJl dHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOwogCi0JdHJhY2VfZmVuY2Vfd2FpdF9z dGFydChmZW5jZSk7CisJdHJhY2VfZG1hX2ZlbmNlX3dhaXRfc3RhcnQoZmVuY2UpOwogCXJldCA9 IGZlbmNlLT5vcHMtPndhaXQoZmVuY2UsIGludHIsIHRpbWVvdXQpOwotCXRyYWNlX2ZlbmNlX3dh aXRfZW5kKGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVuY2Vfd2FpdF9lbmQoZmVuY2UpOwogCXJldHVy biByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX3dhaXRfdGltZW91dCk7CitFWFBPUlRfU1lN Qk9MKGRtYV9mZW5jZV93YWl0X3RpbWVvdXQpOwogCi12b2lkIGZlbmNlX3JlbGVhc2Uoc3RydWN0 IGtyZWYgKmtyZWYpCit2b2lkIGRtYV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQog ewotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPQotCQkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBm ZW5jZSwgcmVmY291bnQpOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0KKwkJCWNvbnRhaW5l cl9vZihrcmVmLCBzdHJ1Y3QgZG1hX2ZlbmNlLCByZWZjb3VudCk7CiAKLQl0cmFjZV9mZW5jZV9k ZXN0cm95KGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVuY2VfZGVzdHJveShmZW5jZSk7CiAKIAlCVUdf T04oIWxpc3RfZW1wdHkoJmZlbmNlLT5jYl9saXN0KSk7CiAKIAlpZiAoZmVuY2UtPm9wcy0+cmVs ZWFzZSkKIAkJZmVuY2UtPm9wcy0+cmVsZWFzZShmZW5jZSk7CiAJZWxzZQotCQlmZW5jZV9mcmVl KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX2ZyZWUoZmVuY2UpOwogfQotRVhQT1JUX1NZTUJPTChmZW5j ZV9yZWxlYXNlKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX3JlbGVhc2UpOwogCi12b2lkIGZl bmNlX2ZyZWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3ZvaWQgZG1hX2ZlbmNlX2ZyZWUoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJa2ZyZWVfcmN1KGZlbmNlLCByY3UpOwogfQotRVhQT1JU X1NZTUJPTChmZW5jZV9mcmVlKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2ZyZWUpOwogCiAv KioKLSAqIGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcgLSBlbmFibGUgc2lnbmFsaW5nIG9uIGZl bmNlCisgKiBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyAtIGVuYWJsZSBzaWduYWxpbmcg b24gZmVuY2UKICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gZW5hYmxlCiAgKgogICogdGhp cyB3aWxsIHJlcXVlc3QgZm9yIHN3IHNpZ25hbGluZyB0byBiZSBlbmFibGVkLCB0byBtYWtlIHRo ZSBmZW5jZQogICogY29tcGxldGUgYXMgc29vbiBhcyBwb3NzaWJsZQogICovCi12b2lkIGZlbmNl X2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3ZvaWQgZG1hX2ZlbmNl X2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKIAotCWlmICghdGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJM RV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKSAmJgotCSAgICAhdGVzdF9iaXQoRkVOQ0VfRkxB R19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0JCXRyYWNlX2ZlbmNlX2VuYWJsZV9z aWduYWwoZmVuY2UpOworCWlmICghdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFC TEVfU0lHTkFMX0JJVCwKKwkJCSAgICAgICZmZW5jZS0+ZmxhZ3MpICYmCisJICAgICF0ZXN0X2Jp dChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7CisJCXRyYWNl X2RtYV9mZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNlKTsKIAogCQlzcGluX2xvY2tfaXJxc2F2ZShm ZW5jZS0+bG9jaywgZmxhZ3MpOwogCiAJCWlmICghZmVuY2UtPm9wcy0+ZW5hYmxlX3NpZ25hbGlu ZyhmZW5jZSkpCi0JCQlmZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9z aWduYWxfbG9ja2VkKGZlbmNlKTsKIAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGZlbmNlLT5s b2NrLCBmbGFncyk7CiAJfQogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9lbmFibGVfc3dfc2lnbmFs aW5nKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcpOwogCiAv KioKLSAqIGZlbmNlX2FkZF9jYWxsYmFjayAtIGFkZCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3 aGVuIHRoZSBmZW5jZQorICogZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayAtIGFkZCBhIGNhbGxiYWNr IHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmZW5jZQogICogaXMgc2lnbmFsZWQKICAqIEBmZW5jZToJ W2luXQl0aGUgZmVuY2UgdG8gd2FpdCBvbgogICogQGNiOgkJW2luXQl0aGUgY2FsbGJhY2sgdG8g cmVnaXN0ZXIKICAqIEBmdW5jOglbaW5dCXRoZSBmdW5jdGlvbiB0byBjYWxsCiAgKgotICogY2Ig d2lsbCBiZSBpbml0aWFsaXplZCBieSBmZW5jZV9hZGRfY2FsbGJhY2ssIG5vIGluaXRpYWxpemF0 aW9uCisgKiBjYiB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2ss IG5vIGluaXRpYWxpemF0aW9uCiAgKiBieSB0aGUgY2FsbGVyIGlzIHJlcXVpcmVkLiBBbnkgbnVt YmVyIG9mIGNhbGxiYWNrcyBjYW4gYmUgcmVnaXN0ZXJlZAogICogdG8gYSBmZW5jZSwgYnV0IGEg Y2FsbGJhY2sgY2FuIG9ubHkgYmUgcmVnaXN0ZXJlZCB0byBvbmUgZmVuY2UgYXQgYSB0aW1lLgog ICoKQEAgLTIzMiwxNSArMjMzLDE1IEBAIEVYUE9SVF9TWU1CT0woZmVuY2VfZW5hYmxlX3N3X3Np Z25hbGluZyk7CiAgKiAqbm90KiBjYWxsIHRoZSBjYWxsYmFjaykKICAqCiAgKiBBZGQgYSBzb2Z0 d2FyZSBjYWxsYmFjayB0byB0aGUgZmVuY2UuIFNhbWUgcmVzdHJpY3Rpb25zIGFwcGx5IHRvCi0g KiByZWZjb3VudCBhcyBpdCBkb2VzIHRvIGZlbmNlX3dhaXQsIGhvd2V2ZXIgdGhlIGNhbGxlciBk b2Vzbid0IG5lZWQgdG8KKyAqIHJlZmNvdW50IGFzIGl0IGRvZXMgdG8gZG1hX2ZlbmNlX3dhaXQs IGhvd2V2ZXIgdGhlIGNhbGxlciBkb2Vzbid0IG5lZWQgdG8KICAqIGtlZXAgYSByZWZjb3VudCB0 byBmZW5jZSBhZnRlcndhcmRzOiB3aGVuIHNvZnR3YXJlIGFjY2VzcyBpcyBlbmFibGVkLAogICog dGhlIGNyZWF0b3Igb2YgdGhlIGZlbmNlIGlzIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGZlbmNlIGFs aXZlIHVudGlsCi0gKiBhZnRlciBpdCBzaWduYWxzIHdpdGggZmVuY2Vfc2lnbmFsLiBUaGUgY2Fs bGJhY2sgaXRzZWxmIGNhbiBiZSBjYWxsZWQKKyAqIGFmdGVyIGl0IHNpZ25hbHMgd2l0aCBkbWFf ZmVuY2Vfc2lnbmFsLiBUaGUgY2FsbGJhY2sgaXRzZWxmIGNhbiBiZSBjYWxsZWQKICAqIGZyb20g aXJxIGNvbnRleHQuCiAgKgogICovCi1pbnQgZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBmZW5j ZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IsCi0JCSAgICAgICBmZW5jZV9mdW5jX3QgZnVu YykKK2ludCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBz dHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiwKKwkJICAgICAgIGRtYV9mZW5jZV9mdW5jX3QgZnVuYykK IHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQgPSAwOwpAQCAtMjQ5LDIyICsyNTAs MjMgQEAgaW50IGZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qg ZmVuY2VfY2IgKmNiLAogCWlmIChXQVJOX09OKCFmZW5jZSB8fCAhZnVuYykpCiAJCXJldHVybiAt RUlOVkFMOwogCi0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2Ut PmZsYWdzKSkgeworCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZm ZW5jZS0+ZmxhZ3MpKSB7CiAJCUlOSVRfTElTVF9IRUFEKCZjYi0+bm9kZSk7CiAJCXJldHVybiAt RU5PRU5UOwogCX0KIAogCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAK LQl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklU LCAmZmVuY2UtPmZsYWdzKTsKKwl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0Vf RkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwkJCQkgICAmZmVuY2UtPmZsYWdzKTsKIAotCWlmICh0 ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRl c3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXJl dCA9IC1FTk9FTlQ7CiAJZWxzZSBpZiAoIXdhc19zZXQpIHsKLQkJdHJhY2VfZmVuY2VfZW5hYmxl X3NpZ25hbChmZW5jZSk7CisJCXRyYWNlX2RtYV9mZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNlKTsK IAogCQlpZiAoIWZlbmNlLT5vcHMtPmVuYWJsZV9zaWduYWxpbmcoZmVuY2UpKSB7Ci0JCQlmZW5j ZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNl KTsKIAkJCXJldCA9IC1FTk9FTlQ7CiAJCX0KIAl9CkBAIC0yNzgsMTAgKzI4MCwxMCBAQCBpbnQg ZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAq Y2IsCiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9hZGRfY2FsbGJhY2sp OworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKTsKIAogLyoqCi0gKiBmZW5j ZV9yZW1vdmVfY2FsbGJhY2sgLSByZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBzaWduYWxpbmcg bGlzdAorICogZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayAtIHJlbW92ZSBhIGNhbGxiYWNrIGZy b20gdGhlIHNpZ25hbGluZyBsaXN0CiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIHdhaXQg b24KICAqIEBjYjoJCVtpbl0JdGhlIGNhbGxiYWNrIHRvIHJlbW92ZQogICoKQEAgLTI5Niw3ICsy OTgsNyBAQCBFWFBPUlRfU1lNQk9MKGZlbmNlX2FkZF9jYWxsYmFjayk7CiAgKiB3aXRoIGEgcmVm ZXJlbmNlIGhlbGQgdG8gdGhlIGZlbmNlLgogICovCiBib29sCi1mZW5jZV9yZW1vdmVfY2FsbGJh Y2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKK2RtYV9mZW5jZV9y ZW1vdmVfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2Vf Y2IgKmNiKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCByZXQ7CkBAIC0zMTEsMTUg KzMxMywxNSBAQCBmZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3Ry dWN0IGZlbmNlX2NiICpjYikKIAogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNl X3JlbW92ZV9jYWxsYmFjayk7CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJh Y2spOwogCiBzdHJ1Y3QgZGVmYXVsdF93YWl0X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsK KwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJhc2U7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwog fTsKIAogc3RhdGljIHZvaWQKLWZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZl bmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0 IGRlZmF1bHRfd2FpdF9jYiAqd2FpdCA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGRlZmF1 bHRfd2FpdF9jYiwgYmFzZSk7CkBAIC0zMjgsNyArMzMwLDcgQEAgZmVuY2VfZGVmYXVsdF93YWl0 X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiB9CiAKIC8qKgot ICogZmVuY2VfZGVmYXVsdF93YWl0IC0gZGVmYXVsdCBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0 cyBzaWduYWxlZAorICogZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCAtIGRlZmF1bHQgc2xlZXAgdW50 aWwgdGhlIGZlbmNlIGdldHMgc2lnbmFsZWQKICAqIG9yIHVudGlsIHRpbWVvdXQgZWxhcHNlcwog ICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byB3YWl0IG9uCiAgKiBAaW50cjoJW2luXQlpZiB0 cnVlLCBkbyBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQKQEAgLTMzOCwxNCArMzQwLDE0IEBAIGZlbmNl X2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNi KQogICogcmVtYWluaW5nIHRpbWVvdXQgaW4gamlmZmllcyBvbiBzdWNjZXNzLgogICovCiBzaWdu ZWQgbG9uZwotZmVuY2VfZGVmYXVsdF93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50 ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK2RtYV9mZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1 Y3QgZGVmYXVsdF93YWl0X2NiIGNiOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc2lnbmVkIGxv bmcgcmV0ID0gdGltZW91dDsKIAlib29sIHdhc19zZXQ7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKQorCWlmICh0ZXN0X2JpdChETUFfRkVO Q0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKQogCQlyZXR1cm4gdGltZW91dDsK IAogCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CkBAIC0zNTUsMjUgKzM1 NywyNiBAQCBmZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRy LCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCQlnb3RvIG91dDsKIAl9CiAKLQl3YXNfc2V0ID0gdGVz dF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdz KTsKKwl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lH TkFMX0JJVCwKKwkJCQkgICAmZmVuY2UtPmZsYWdzKTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9G TEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5D RV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCWdvdG8gb3V0OwogCiAJaWYg KCF3YXNfc2V0KSB7Ci0JCXRyYWNlX2ZlbmNlX2VuYWJsZV9zaWduYWwoZmVuY2UpOworCQl0cmFj ZV9kbWFfZmVuY2VfZW5hYmxlX3NpZ25hbChmZW5jZSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5l bmFibGVfc2lnbmFsaW5nKGZlbmNlKSkgewotCQkJZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7 CisJCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7CiAJCQlnb3RvIG91dDsKIAkJfQog CX0KIAotCWNiLmJhc2UuZnVuYyA9IGZlbmNlX2RlZmF1bHRfd2FpdF9jYjsKKwljYi5iYXNlLmZ1 bmMgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0X2NiOwogCWNiLnRhc2sgPSBjdXJyZW50OwogCWxp c3RfYWRkKCZjYi5iYXNlLm5vZGUsICZmZW5jZS0+Y2JfbGlzdCk7CiAKLQl3aGlsZSAoIXRlc3Rf Yml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSAmJiByZXQgPiAwKSB7 CisJd2hpbGUgKCF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ ZmxhZ3MpICYmIHJldCA+IDApIHsKIAkJaWYgKGludHIpCiAJCQlfX3NldF9jdXJyZW50X3N0YXRl KFRBU0tfSU5URVJSVVBUSUJMRSk7CiAJCWVsc2UKQEAgLTM5NSwyMyArMzk4LDIzIEBAIGZlbmNl X2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25n IHRpbWVvdXQpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShmZW5jZS0+bG9jaywgZmxhZ3MpOwog CXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX2RlZmF1bHRfd2FpdCk7CitFWFBP UlRfU1lNQk9MKGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQpOwogCiBzdGF0aWMgYm9vbAotZmVuY2Vf dGVzdF9zaWduYWxlZF9hbnkoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCkK K2RtYV9mZW5jZV90ZXN0X3NpZ25hbGVkX2FueShzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLCB1 aW50MzJfdCBjb3VudCkKIHsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytp KSB7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBmZW5jZXNbaV07Ci0JCWlmICh0ZXN0X2JpdChG RU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlID0gZmVuY2VzW2ldOworCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lH TkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJCXJldHVybiB0cnVlOwogCX0KIAlyZXR1cm4g ZmFsc2U7CiB9CiAKIC8qKgotICogZmVuY2Vfd2FpdF9hbnlfdGltZW91dCAtIHNsZWVwIHVudGls IGFueSBmZW5jZSBnZXRzIHNpZ25hbGVkCisgKiBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dCAt IHNsZWVwIHVudGlsIGFueSBmZW5jZSBnZXRzIHNpZ25hbGVkCiAgKiBvciB1bnRpbCB0aW1lb3V0 IGVsYXBzZXMKICAqIEBmZW5jZXM6CVtpbl0JYXJyYXkgb2YgZmVuY2VzIHRvIHdhaXQgb24KICAq IEBjb3VudDoJW2luXQludW1iZXIgb2YgZmVuY2VzIHRvIHdhaXQgb24KQEAgLTQyNyw3ICs0MzAs NyBAQCBmZW5jZV90ZXN0X3NpZ25hbGVkX2FueShzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQz Ml90IGNvdW50KQogICogZmVuY2UgbWlnaHQgYmUgZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0 aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KICAqLwogc2lnbmVkIGxvbmcKLWZlbmNlX3dhaXRf YW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKK2RtYV9m ZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90 IGNvdW50LAogCQkgICAgICAgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0 cnVjdCBkZWZhdWx0X3dhaXRfY2IgKmNiOwpAQCAtNDM5LDcgKzQ0Miw3IEBAIGZlbmNlX3dhaXRf YW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKIAogCWlm ICh0aW1lb3V0ID09IDApIHsKIAkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCi0JCQlpZiAo ZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2VzW2ldKSkKKwkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFs ZWQoZmVuY2VzW2ldKSkKIAkJCQlyZXR1cm4gMTsKIAogCQlyZXR1cm4gMDsKQEAgLTQ1MiwxNiAr NDU1LDE2IEBAIGZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1 aW50MzJfdCBjb3VudCwKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotCQlz dHJ1Y3QgZmVuY2UgKmZlbmNlID0gZmVuY2VzW2ldOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSA9IGZlbmNlc1tpXTsKIAotCQlpZiAoZmVuY2UtPm9wcy0+d2FpdCAhPSBmZW5jZV9kZWZhdWx0 X3dhaXQpIHsKKwkJaWYgKGZlbmNlLT5vcHMtPndhaXQgIT0gZG1hX2ZlbmNlX2RlZmF1bHRfd2Fp dCkgewogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCWdvdG8gZmVuY2Vfcm1fY2I7CiAJCX0KIAogCQlj YltpXS50YXNrID0gY3VycmVudDsKLQkJaWYgKGZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJmNi W2ldLmJhc2UsCi0JCQkJICAgICAgIGZlbmNlX2RlZmF1bHRfd2FpdF9jYikpIHsKKwkJaWYgKGRt YV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZjYltpXS5iYXNlLAorCQkJCSAgICAgICBkbWFf ZmVuY2VfZGVmYXVsdF93YWl0X2NiKSkgewogCQkJLyogVGhpcyBmZW5jZSBpcyBhbHJlYWR5IHNp Z25hbGVkICovCiAJCQlnb3RvIGZlbmNlX3JtX2NiOwogCQl9CkBAIC00NzMsNyArNDc2LDcgQEAg ZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNv dW50LAogCQllbHNlCiAJCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7 CiAKLQkJaWYgKGZlbmNlX3Rlc3Rfc2lnbmFsZWRfYW55KGZlbmNlcywgY291bnQpKQorCQlpZiAo ZG1hX2ZlbmNlX3Rlc3Rfc2lnbmFsZWRfYW55KGZlbmNlcywgY291bnQpKQogCQkJYnJlYWs7CiAK IAkJcmV0ID0gc2NoZWR1bGVfdGltZW91dChyZXQpOwpAQCAtNDg2LDMzICs0ODksMzMgQEAgZmVu Y2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50 LAogCiBmZW5jZV9ybV9jYjoKIAl3aGlsZSAoaS0tID4gMCkKLQkJZmVuY2VfcmVtb3ZlX2NhbGxi YWNrKGZlbmNlc1tpXSwgJmNiW2ldLmJhc2UpOworCQlkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNr KGZlbmNlc1tpXSwgJmNiW2ldLmJhc2UpOwogCiBlcnJfZnJlZV9jYjoKIAlrZnJlZShjYik7CiAK IAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV93YWl0X2FueV90aW1lb3V0KTsK K0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQpOwogCiAvKioKLSAqIGZl bmNlX2luaXQgLSBJbml0aWFsaXplIGEgY3VzdG9tIGZlbmNlLgorICogZG1hX2ZlbmNlX2luaXQg LSBJbml0aWFsaXplIGEgY3VzdG9tIGZlbmNlLgogICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0 byBpbml0aWFsaXplCi0gKiBAb3BzOglbaW5dCXRoZSBmZW5jZV9vcHMgZm9yIG9wZXJhdGlvbnMg b24gdGhpcyBmZW5jZQorICogQG9wczoJW2luXQl0aGUgZG1hX2ZlbmNlX29wcyBmb3Igb3BlcmF0 aW9ucyBvbiB0aGlzIGZlbmNlCiAgKiBAbG9jazoJW2luXQl0aGUgaXJxc2FmZSBzcGlubG9jayB0 byB1c2UgZm9yIGxvY2tpbmcgdGhpcyBmZW5jZQogICogQGNvbnRleHQ6CVtpbl0JdGhlIGV4ZWN1 dGlvbiBjb250ZXh0IHRoaXMgZmVuY2UgaXMgcnVuIG9uCiAgKiBAc2Vxbm86CVtpbl0JYSBsaW5l YXIgaW5jcmVhc2luZyBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgY29udGV4dAogICoKICAqIElu aXRpYWxpemVzIGFuIGFsbG9jYXRlZCBmZW5jZSwgdGhlIGNhbGxlciBkb2Vzbid0IGhhdmUgdG8g a2VlcCBpdHMKICAqIHJlZmNvdW50IGFmdGVyIGNvbW1pdHRpbmcgd2l0aCB0aGlzIGZlbmNlLCBi dXQgaXQgd2lsbCBuZWVkIHRvIGhvbGQgYQotICogcmVmY291bnQgYWdhaW4gaWYgZmVuY2Vfb3Bz LmVuYWJsZV9zaWduYWxpbmcgZ2V0cyBjYWxsZWQuIFRoaXMgY2FuCisgKiByZWZjb3VudCBhZ2Fp biBpZiBkbWFfZmVuY2Vfb3BzLmVuYWJsZV9zaWduYWxpbmcgZ2V0cyBjYWxsZWQuIFRoaXMgY2Fu CiAgKiBiZSB1c2VkIGZvciBvdGhlciBpbXBsZW1lbnRpbmcgb3RoZXIgdHlwZXMgb2YgZmVuY2Uu CiAgKgogICogY29udGV4dCBhbmQgc2Vxbm8gYXJlIHVzZWQgZm9yIGVhc3kgY29tcGFyaXNvbiBi ZXR3ZWVuIGZlbmNlcywgYWxsb3dpbmcKLSAqIHRvIGNoZWNrIHdoaWNoIGZlbmNlIGlzIGxhdGVy IGJ5IHNpbXBseSB1c2luZyBmZW5jZV9sYXRlci4KKyAqIHRvIGNoZWNrIHdoaWNoIGZlbmNlIGlz IGxhdGVyIGJ5IHNpbXBseSB1c2luZyBkbWFfZmVuY2VfbGF0ZXIuCiAgKi8KIHZvaWQKLWZlbmNl X2luaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgY29uc3Qgc3RydWN0IGZlbmNlX29wcyAqb3BzLAor ZG1hX2ZlbmNlX2luaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBkbWFf ZmVuY2Vfb3BzICpvcHMsCiAJICAgICBzcGlubG9ja190ICpsb2NrLCB1NjQgY29udGV4dCwgdW5z aWduZWQgc2Vxbm8pCiB7CiAJQlVHX09OKCFsb2NrKTsKQEAgLTUyNyw2ICs1MzAsNiBAQCBmZW5j ZV9pbml0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgKm9wcywK IAlmZW5jZS0+c2Vxbm8gPSBzZXFubzsKIAlmZW5jZS0+ZmxhZ3MgPSAwVUw7CiAKLQl0cmFjZV9m ZW5jZV9pbml0KGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVuY2VfaW5pdChmZW5jZSk7CiB9Ci1FWFBP UlRfU1lNQk9MKGZlbmNlX2luaXQpOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfaW5pdCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYyBiL2RyaXZlcnMvZG1hLWJ1 Zi9yZXNlcnZhdGlvbi5jCmluZGV4IDgyZGU1OWY3Y2JiZC4uN2VkNTZmM2VkZmI3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYworKysgYi9kcml2ZXJzL2RtYS1idWYv cmVzZXJ2YXRpb24uYwpAQCAtMTAyLDE3ICsxMDIsMTcgQEAgRVhQT1JUX1NZTUJPTChyZXNlcnZh dGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQpOwogc3RhdGljIHZvaWQKIHJlc2VydmF0aW9uX29i amVjdF9hZGRfc2hhcmVkX2lucGxhY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAog CQkJCSAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iaiwKLQkJCQkgICAg ICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewogCXUzMiBpOwogCi0JZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfZ2V0KGZlbmNl KTsKIAogCXByZWVtcHRfZGlzYWJsZSgpOwogCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZvYmotPnNl cSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpIHsKLQkJc3Ry dWN0IGZlbmNlICpvbGRfZmVuY2U7CisJCXN0cnVjdCBkbWFfZmVuY2UgKm9sZF9mZW5jZTsKIAog CQlvbGRfZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwK IAkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwpAQCAtMTIzLDcgKzEyMyw3IEBA IHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2lucGxhY2Uoc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqb2JqLAogCQkJd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7CiAJCQlwcmVl bXB0X2VuYWJsZSgpOwogCi0JCQlmZW5jZV9wdXQob2xkX2ZlbmNlKTsKKwkJCWRtYV9mZW5jZV9w dXQob2xkX2ZlbmNlKTsKIAkJCXJldHVybjsKIAkJfQogCX0KQEAgLTE0MywxMiArMTQzLDEyIEBA IHN0YXRpYyB2b2lkCiByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9yZXBsYWNlKHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJCQkgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0X2xpc3QgKm9sZCwKIAkJCQkgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xp c3QgKmZvYmosCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJCQkgICAgICBzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNpZ25lZCBpOwotCXN0cnVjdCBmZW5jZSAqb2xk X2ZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGRfZmVuY2UgPSBOVUxMOwogCi0J ZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAogCWlmICghb2xkKSB7 CiAJCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkWzBdLCBmZW5jZSk7CkBAIC0xNjUsNyAr MTY1LDcgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfcmVwbGFjZShzdHJ1Y3QgcmVz ZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJZm9iai0+c2hhcmVkX2NvdW50ID0gb2xkLT5zaGFyZWRf Y291bnQ7CiAKIAlmb3IgKGkgPSAwOyBpIDwgb2xkLT5zaGFyZWRfY291bnQ7ICsraSkgewotCQlz dHJ1Y3QgZmVuY2UgKmNoZWNrOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpjaGVjazsKIAogCQljaGVj ayA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xkLT5zaGFyZWRbaV0sCiAJCQkJCQlyZXNl cnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCByZXNlcnZhdGlv bl9vYmplY3RfYWRkX3NoYXJlZF9yZXBsYWNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9i aiwKIAkJa2ZyZWVfcmN1KG9sZCwgcmN1KTsKIAogCWlmIChvbGRfZmVuY2UpCi0JCWZlbmNlX3B1 dChvbGRfZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7CiB9CiAKIC8qKgpAQCAt MjA4LDcgKzIwOCw3IEBAIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX3JlcGxhY2Uoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogICogcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKCkgaGFzIGJlZW4gY2FsbGVkLgogICovCiB2b2lkIHJlc2VydmF0aW9uX29iamVj dF9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkJ IHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwgKmZvYmogPSBvYmotPnN0YWdl ZDsKIApAQCAtMjMxLDkgKzIzMSw5IEBAIEVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0 X2FkZF9zaGFyZWRfZmVuY2UpOwogICogQWRkIGEgZmVuY2UgdG8gdGhlIGV4Y2x1c2l2ZSBzbG90 LiAgVGhlIG9iai0+bG9jayBtdXN0IGJlIGhlbGQuCiAgKi8KIHZvaWQgcmVzZXJ2YXRpb25fb2Jq ZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkg ICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCiB7Ci0Jc3RydWN0IGZlbmNlICpvbGRfZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3Rf Z2V0X2V4Y2wob2JqKTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGRfZmVuY2UgPSByZXNlcnZhdGlv bl9vYmplY3RfZ2V0X2V4Y2wob2JqKTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qg Km9sZDsKIAl1MzIgaSA9IDA7CiAKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lkIHJlc2VydmF0aW9u X29iamVjdF9hZGRfZXhjbF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJ CWkgPSBvbGQtPnNoYXJlZF9jb3VudDsKIAogCWlmIChmZW5jZSkKLQkJZmVuY2VfZ2V0KGZlbmNl KTsKKwkJZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAlwcmVlbXB0X2Rpc2FibGUoKTsKIAl3cml0 ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwpAQCAtMjU1LDExICsyNTUsMTEgQEAgdm9pZCBy ZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAogCiAJLyogaW5wbGFjZSB1cGRhdGUsIG5vIHNoYXJlZCBmZW5jZXMgKi8KIAl3aGls ZSAoaS0tKQotCQlmZW5jZV9wdXQocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvbGQtPnNoYXJl ZFtpXSwKKwkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hh cmVkW2ldLAogCQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSkpOwogCiAJaWYgKG9s ZF9mZW5jZSkKLQkJZmVuY2VfcHV0KG9sZF9mZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQob2xkX2Zl bmNlKTsKIH0KIEVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNl KTsKIApAQCAtMjc2LDEyICsyNzYsMTIgQEAgRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmpl Y3RfYWRkX2V4Y2xfZmVuY2UpOwogICogWmVybyBvciAtZXJybm8KICAqLwogaW50IHJlc2VydmF0 aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmos Ci0JCQkJICAgICAgc3RydWN0IGZlbmNlICoqcGZlbmNlX2V4Y2wsCisJCQkJICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqKnBmZW5jZV9leGNsLAogCQkJCSAgICAgIHVuc2lnbmVkICpwc2hhcmVkX2Nv dW50LAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKipwc2hhcmVkKQorCQkJCSAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKioqcHNoYXJlZCkKIHsKLQlzdHJ1Y3QgZmVuY2UgKipzaGFyZWQgPSBOVUxM OwotCXN0cnVjdCBmZW5jZSAqZmVuY2VfZXhjbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqc2hhcmVk ID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZV9leGNsOwogCXVuc2lnbmVkIGludCBz aGFyZWRfY291bnQ7CiAJaW50IHJldCA9IDE7CiAKQEAgLTI5NiwxMiArMjk2LDEyIEBAIGludCBy ZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAogCQlzZXEgPSByZWFkX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7CiAKIAkJZmVu Y2VfZXhjbCA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlX2V4Y2wpOwotCQlpZiAoZmVuY2Vf ZXhjbCAmJiAhZmVuY2VfZ2V0X3JjdShmZW5jZV9leGNsKSkKKwkJaWYgKGZlbmNlX2V4Y2wgJiYg IWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wpKQogCQkJZ290byB1bmxvY2s7CiAKIAkJZm9i aiA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlKTsKIAkJaWYgKGZvYmopIHsKLQkJCXN0cnVj dCBmZW5jZSAqKm5zaGFyZWQ7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICoqbnNoYXJlZDsKIAkJCXNp emVfdCBzeiA9IHNpemVvZigqc2hhcmVkKSAqIGZvYmotPnNoYXJlZF9tYXg7CiAKIAkJCW5zaGFy ZWQgPSBrcmVhbGxvYyhzaGFyZWQsIHN6LApAQCAtMzIyLDE1ICszMjIsMTUgQEAgaW50IHJlc2Vy dmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpv YmosCiAKIAkJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgewogCQkJCXNoYXJl ZFtpXSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOwotCQkJCWlmICghZmVuY2Vf Z2V0X3JjdShzaGFyZWRbaV0pKQorCQkJCWlmICghZG1hX2ZlbmNlX2dldF9yY3Uoc2hhcmVkW2ld KSkKIAkJCQkJYnJlYWs7CiAJCQl9CiAJCX0KIAogCQlpZiAoaSAhPSBzaGFyZWRfY291bnQgfHwg cmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkpIHsKIAkJCXdoaWxlIChpLS0pCi0J CQkJZmVuY2VfcHV0KHNoYXJlZFtpXSk7Ci0JCQlmZW5jZV9wdXQoZmVuY2VfZXhjbCk7CisJCQkJ ZG1hX2ZlbmNlX3B1dChzaGFyZWRbaV0pOworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZV9leGNsKTsK IAkJCWdvdG8gdW5sb2NrOwogCQl9CiAKQEAgLTM2OCw3ICszNjgsNyBAQCBsb25nIHJlc2VydmF0 aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9i aiwKIAkJCQkJIGJvb2wgd2FpdF9hbGwsIGJvb2wgaW50ciwKIAkJCQkJIHVuc2lnbmVkIGxvbmcg dGltZW91dCkKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOwogCXVuc2lnbmVkIHNlcSwgc2hhcmVkX2NvdW50LCBpID0gMDsKIAlsb25nIHJldCA9IHRp bWVvdXQ7CiAKQEAgLTM4OSwxNiArMzg5LDE3IEBAIGxvbmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dh aXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJc2hhcmVk X2NvdW50ID0gZm9iai0+c2hhcmVkX2NvdW50OwogCiAJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRf Y291bnQ7ICsraSkgewotCQkJc3RydWN0IGZlbmNlICpsZmVuY2UgPSByY3VfZGVyZWZlcmVuY2Uo Zm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmxmZW5jZSA9IHJjdV9kZXJl ZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOwogCi0JCQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19T SUdOQUxFRF9CSVQsICZsZmVuY2UtPmZsYWdzKSkKKwkJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsCisJCQkJICAgICAmbGZlbmNlLT5mbGFncykpCiAJCQkJY29udGlu dWU7CiAKLQkJCWlmICghZmVuY2VfZ2V0X3JjdShsZmVuY2UpKQorCQkJaWYgKCFkbWFfZmVuY2Vf Z2V0X3JjdShsZmVuY2UpKQogCQkJCWdvdG8gdW5sb2NrX3JldHJ5OwogCi0JCQlpZiAoZmVuY2Vf aXNfc2lnbmFsZWQobGZlbmNlKSkgewotCQkJCWZlbmNlX3B1dChsZmVuY2UpOworCQkJaWYgKGRt YV9mZW5jZV9pc19zaWduYWxlZChsZmVuY2UpKSB7CisJCQkJZG1hX2ZlbmNlX3B1dChsZmVuY2Up OwogCQkJCWNvbnRpbnVlOwogCQkJfQogCkBAIC00MDgsMTUgKzQwOSwxNiBAQCBsb25nIHJlc2Vy dmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Qg Km9iaiwKIAl9CiAKIAlpZiAoIXNoYXJlZF9jb3VudCkgewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNl X2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKKwkJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2VfZXhjbCA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlX2V4Y2wpOwogCiAJ CWlmIChmZW5jZV9leGNsICYmCi0JCSAgICAhdGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9C SVQsICZmZW5jZV9leGNsLT5mbGFncykpIHsKLQkJCWlmICghZmVuY2VfZ2V0X3JjdShmZW5jZV9l eGNsKSkKKwkJICAgICF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCisJCQkg ICAgICAmZmVuY2VfZXhjbC0+ZmxhZ3MpKSB7CisJCQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGZl bmNlX2V4Y2wpKQogCQkJCWdvdG8gdW5sb2NrX3JldHJ5OwogCi0JCQlpZiAoZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2VfZXhjbCkpCi0JCQkJZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOworCQkJaWYgKGRt YV9mZW5jZV9pc19zaWduYWxlZChmZW5jZV9leGNsKSkKKwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNl X2V4Y2wpOwogCQkJZWxzZQogCQkJCWZlbmNlID0gZmVuY2VfZXhjbDsKIAkJfQpAQCAtNDI1LDEy ICs0MjcsMTIgQEAgbG9uZyByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAJaWYgKGZl bmNlKSB7CiAJCWlmIChyZWFkX3NlcWNvdW50X3JldHJ5KCZvYmotPnNlcSwgc2VxKSkgewotCQkJ ZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQkJZ290byByZXRy eTsKIAkJfQogCi0JCXJldCA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgaW50ciwgcmV0KTsK LQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5j ZSwgaW50ciwgcmV0KTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCWlmIChyZXQgPiAwICYm IHdhaXRfYWxsICYmIChpICsgMSA8IHNoYXJlZF9jb3VudCkpCiAJCQlnb3RvIHJldHJ5OwogCX0K QEAgLTQ0NCwxOCArNDQ2LDE4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHJlc2VydmF0aW9uX29iamVj dF93YWl0X3RpbWVvdXRfcmN1KTsKIAogCiBzdGF0aWMgaW5saW5lIGludAotcmVzZXJ2YXRpb25f b2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKHN0cnVjdCBmZW5jZSAqcGFzc2VkX2ZlbmNlKQor cmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKHN0cnVjdCBkbWFfZmVuY2Ug KnBhc3NlZF9mZW5jZSkKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlLCAqbGZlbmNlID0gcGFzc2Vk X2ZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCAqbGZlbmNlID0gcGFzc2VkX2ZlbmNl OwogCWludCByZXQgPSAxOwogCi0JaWYgKCF0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJ VCwgJmxmZW5jZS0+ZmxhZ3MpKSB7Ci0JCWZlbmNlID0gZmVuY2VfZ2V0X3JjdShsZmVuY2UpOwor CWlmICghdGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmbGZlbmNlLT5mbGFn cykpIHsKKwkJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3JjdShsZmVuY2UpOwogCQlpZiAoIWZlbmNl KQogCQkJcmV0dXJuIC0xOwogCi0JCXJldCA9ICEhZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOwot CQlmZW5jZV9wdXQoZmVuY2UpOworCQlyZXQgPSAhIWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5j ZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCX0KIAlyZXR1cm4gcmV0OwogfQpAQCAtNDky LDcgKzQ5NCw3IEBAIGJvb2wgcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJCXNoYXJlZF9jb3VudCA9IGZvYmotPnNo YXJlZF9jb3VudDsKIAogCQlmb3IgKGkgPSAwOyBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKLQkJ CXN0cnVjdCBmZW5jZSAqZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsK KwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJl ZFtpXSk7CiAKIAkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3Npbmds ZShmZW5jZSk7CiAJCQlpZiAocmV0IDwgMCkKQEAgLTUwNiw3ICs1MDgsNyBAQCBib29sIHJlc2Vy dmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpvYmosCiAJfQogCiAJaWYgKCFzaGFyZWRfY291bnQpIHsKLQkJc3RydWN0IGZlbmNlICpmZW5j ZV9leGNsID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2VfZXhjbCk7CisJCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKIAog CQlpZiAoZmVuY2VfZXhjbCkgewogCQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2ln bmFsZWRfc2luZ2xlKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMg Yi9kcml2ZXJzL2RtYS1idWYvc2Vxbm8tZmVuY2UuYwppbmRleCA3MTEyN2Y4ZjE2MjYuLmY0NzEx MmE2NDc2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMKKysrIGIv ZHJpdmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMKQEAgLTIxLDM1ICsyMSwzNSBAQAogI2luY2x1 ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcW5vLWZlbmNlLmg+CiAKLXN0 YXRpYyBjb25zdCBjaGFyICpzZXFub19mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNl ICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpzZXFub19mZW5jZV9nZXRfZHJpdmVyX25hbWUo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpzZXFub19m ZW5jZSA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBzZXFub19mZW5jZS0+b3Bz LT5nZXRfZHJpdmVyX25hbWUoZmVuY2UpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqc2Vxbm9f ZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25z dCBjaGFyICpzZXFub19mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSkKIHsKIAlzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKnNlcW5vX2ZlbmNlID0gdG9fc2Vxbm9fZmVu Y2UoZmVuY2UpOwogCiAJcmV0dXJuIHNlcW5vX2ZlbmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1l KGZlbmNlKTsKIH0KIAotc3RhdGljIGJvb2wgc2Vxbm9fZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgc2Vxbm9fZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKnNlcW5vX2ZlbmNlID0g dG9fc2Vxbm9fZmVuY2UoZmVuY2UpOwogCiAJcmV0dXJuIHNlcW5vX2ZlbmNlLT5vcHMtPmVuYWJs ZV9zaWduYWxpbmcoZmVuY2UpOwogfQogCi1zdGF0aWMgYm9vbCBzZXFub19zaWduYWxlZChzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgc2Vxbm9fc2lnbmFsZWQoc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpzZXFub19mZW5jZSA9IHRvX3Nl cW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBzZXFub19mZW5jZS0+b3BzLT5zaWduYWxlZCAm JiBzZXFub19mZW5jZS0+b3BzLT5zaWduYWxlZChmZW5jZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNl cW5vX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyB2b2lkIHNlcW5vX3JlbGVh c2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpmID0g dG9fc2Vxbm9fZmVuY2UoZmVuY2UpOwogCkBAIC01NywxOCArNTcsMTggQEAgc3RhdGljIHZvaWQg c2Vxbm9fcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCWlmIChmLT5vcHMtPnJlbGVhc2Up CiAJCWYtPm9wcy0+cmVsZWFzZShmZW5jZSk7CiAJZWxzZQotCQlmZW5jZV9mcmVlKCZmLT5iYXNl KTsKKwkJZG1hX2ZlbmNlX2ZyZWUoJmYtPmJhc2UpOwogfQogCi1zdGF0aWMgc2lnbmVkIGxvbmcg c2Vxbm9fd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsCi0JCQkJc2lnbmVkIGxv bmcgdGltZW91dCkKK3N0YXRpYyBzaWduZWQgbG9uZyBzZXFub193YWl0KHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlLCBib29sIGludHIsCisJCQkgICAgICBzaWduZWQgbG9uZyB0aW1lb3V0KQogewog CXN0cnVjdCBzZXFub19mZW5jZSAqZiA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVy biBmLT5vcHMtPndhaXQoZmVuY2UsIGludHIsIHRpbWVvdXQpOwogfQogCi1jb25zdCBzdHJ1Y3Qg ZmVuY2Vfb3BzIHNlcW5vX2ZlbmNlX29wcyA9IHsKK2NvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IHNlcW5vX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gc2Vxbm9fZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IHNlcW5vX2ZlbmNlX2dldF90aW1l bGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gc2Vxbm9fZW5hYmxlX3NpZ25hbGluZywK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zd19zeW5jLmMgYi9kcml2ZXJzL2RtYS1idWYv c3dfc3luYy5jCmluZGV4IDYyZThlNmRjNzk1My4uODJlMGNhNGRkMGMxIDEwMDY0NAotLS0gYS9k cml2ZXJzL2RtYS1idWYvc3dfc3luYy5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zd19zeW5jLmMK QEAgLTY4LDkgKzY4LDkgQEAgc3RydWN0IHN3X3N5bmNfY3JlYXRlX2ZlbmNlX2RhdGEgewogCiAj ZGVmaW5lIFNXX1NZTkNfSU9DX0lOQwkJCV9JT1coU1dfU1lOQ19JT0NfTUFHSUMsIDEsIF9fdTMy KQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyB0aW1lbGluZV9mZW5jZV9vcHM7Citz dGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgdGltZWxpbmVfZmVuY2Vfb3BzOwogCi1z dGF0aWMgaW5saW5lIHN0cnVjdCBzeW5jX3B0ICpmZW5jZV90b19zeW5jX3B0KHN0cnVjdCBmZW5j ZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzeW5jX3B0ICpkbWFfZmVuY2VfdG9fc3lu Y19wdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlpZiAoZmVuY2UtPm9wcyAhPSAmdGlt ZWxpbmVfZmVuY2Vfb3BzKQogCQlyZXR1cm4gTlVMTDsKQEAgLTkzLDcgKzkzLDcgQEAgc3RydWN0 IHN5bmNfdGltZWxpbmUgKnN5bmNfdGltZWxpbmVfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUpCiAJ CXJldHVybiBOVUxMOwogCiAJa3JlZl9pbml0KCZvYmotPmtyZWYpOwotCW9iai0+Y29udGV4dCA9 IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJb2JqLT5jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRl eHRfYWxsb2MoMSk7CiAJc3RybGNweShvYmotPm5hbWUsIG5hbWUsIHNpemVvZihvYmotPm5hbWUp KTsKIAogCUlOSVRfTElTVF9IRUFEKCZvYmotPmNoaWxkX2xpc3RfaGVhZCk7CkBAIC0xNDYsNyAr MTQ2LDcgQEAgc3RhdGljIHZvaWQgc3luY190aW1lbGluZV9zaWduYWwoc3RydWN0IHN5bmNfdGlt ZWxpbmUgKm9iaiwgdW5zaWduZWQgaW50IGluYykKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShwdCwgbmV4dCwgJm9iai0+YWN0aXZlX2xpc3RfaGVhZCwKIAkJCQkgYWN0aXZlX2xpc3QpIHsK LQkJaWYgKGZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZCgmcHQtPmJhc2UpKQorCQlpZiAoZG1hX2Zl bmNlX2lzX3NpZ25hbGVkX2xvY2tlZCgmcHQtPmJhc2UpKQogCQkJbGlzdF9kZWxfaW5pdCgmcHQt PmFjdGl2ZV9saXN0KTsKIAl9CiAKQEAgLTE3OSwzMCArMTc5LDMwIEBAIHN0YXRpYyBzdHJ1Y3Qg c3luY19wdCAqc3luY19wdF9jcmVhdGUoc3RydWN0IHN5bmNfdGltZWxpbmUgKm9iaiwgaW50IHNp emUsCiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmb2JqLT5jaGlsZF9saXN0X2xvY2ssIGZsYWdzKTsK IAlzeW5jX3RpbWVsaW5lX2dldChvYmopOwotCWZlbmNlX2luaXQoJnB0LT5iYXNlLCAmdGltZWxp bmVfZmVuY2Vfb3BzLCAmb2JqLT5jaGlsZF9saXN0X2xvY2ssCi0JCSAgIG9iai0+Y29udGV4dCwg dmFsdWUpOworCWRtYV9mZW5jZV9pbml0KCZwdC0+YmFzZSwgJnRpbWVsaW5lX2ZlbmNlX29wcywg Jm9iai0+Y2hpbGRfbGlzdF9sb2NrLAorCQkgICAgICAgb2JqLT5jb250ZXh0LCB2YWx1ZSk7CiAJ bGlzdF9hZGRfdGFpbCgmcHQtPmNoaWxkX2xpc3QsICZvYmotPmNoaWxkX2xpc3RfaGVhZCk7CiAJ SU5JVF9MSVNUX0hFQUQoJnB0LT5hY3RpdmVfbGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmb2JqLT5jaGlsZF9saXN0X2xvY2ssIGZsYWdzKTsKIAlyZXR1cm4gcHQ7CiB9CiAKLXN0YXRp YyBjb25zdCBjaGFyICp0aW1lbGluZV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNl ICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICp0aW1lbGluZV9mZW5jZV9nZXRfZHJpdmVyX25h bWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJzd19zeW5jIjsKIH0KIAot c3RhdGljIGNvbnN0IGNoYXIgKnRpbWVsaW5lX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqdGltZWxpbmVfZmVuY2VfZ2V0X3Rp bWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IHN5bmNfdGlt ZWxpbmUgKnBhcmVudCA9IGZlbmNlX3BhcmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxp bmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCiAJcmV0dXJuIHBhcmVudC0+ bmFtZTsKIH0KIAotc3RhdGljIHZvaWQgdGltZWxpbmVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorc3RhdGljIHZvaWQgdGltZWxpbmVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3Qgc3luY19wdCAqcHQgPSBmZW5jZV90b19zeW5jX3B0 KGZlbmNlKTsKLQlzdHJ1Y3Qgc3luY190aW1lbGluZSAqcGFyZW50ID0gZmVuY2VfcGFyZW50KGZl bmNlKTsKKwlzdHJ1Y3Qgc3luY19wdCAqcHQgPSBkbWFfZmVuY2VfdG9fc3luY19wdChmZW5jZSk7 CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2Up OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9j aywgZmxhZ3MpOwpAQCAtMjEyLDIwICsyMTIsMjAgQEAgc3RhdGljIHZvaWQgdGltZWxpbmVfZmVu Y2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo ZmVuY2UtPmxvY2ssIGZsYWdzKTsKIAogCXN5bmNfdGltZWxpbmVfcHV0KHBhcmVudCk7Ci0JZmVu Y2VfZnJlZShmZW5jZSk7CisJZG1hX2ZlbmNlX2ZyZWUoZmVuY2UpOwogfQogCi1zdGF0aWMgYm9v bCB0aW1lbGluZV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJv b2wgdGltZWxpbmVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0J c3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGZlbmNlX3BhcmVudChmZW5jZSk7CisJc3Ry dWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCiAJ cmV0dXJuIChmZW5jZS0+c2Vxbm8gPiBwYXJlbnQtPnZhbHVlKSA/IGZhbHNlIDogdHJ1ZTsKIH0K IAotc3RhdGljIGJvb2wgdGltZWxpbmVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorc3RhdGljIGJvb2wgdGltZWxpbmVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3Qgc3luY19wdCAqcHQgPSBmZW5jZV90 b19zeW5jX3B0KGZlbmNlKTsKLQlzdHJ1Y3Qgc3luY190aW1lbGluZSAqcGFyZW50ID0gZmVuY2Vf cGFyZW50KGZlbmNlKTsKKwlzdHJ1Y3Qgc3luY19wdCAqcHQgPSBkbWFfZmVuY2VfdG9fc3luY19w dChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJl bnQoZmVuY2UpOwogCiAJaWYgKHRpbWVsaW5lX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKSkKIAkJcmV0 dXJuIGZhbHNlOwpAQCAtMjM0LDI2ICsyMzQsMjYgQEAgc3RhdGljIGJvb2wgdGltZWxpbmVfZmVu Y2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCXJldHVybiB0cnVlOwog fQogCi1zdGF0aWMgdm9pZCB0aW1lbGluZV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpm ZW5jZSwKK3N0YXRpYyB2b2lkIHRpbWVsaW5lX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSwKIAkJCQkgICAgY2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlzbnByaW50Zihz dHIsIHNpemUsICIlZCIsIGZlbmNlLT5zZXFubyk7CiB9CiAKLXN0YXRpYyB2b2lkIHRpbWVsaW5l X2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorc3RhdGljIHZv aWQgdGltZWxpbmVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlLAogCQkJCQkgICAgIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7Ci0Jc3RydWN0IHN5bmNfdGlt ZWxpbmUgKnBhcmVudCA9IGZlbmNlX3BhcmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxp bmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCiAJc25wcmludGYoc3RyLCBz aXplLCAiJWQiLCBwYXJlbnQtPnZhbHVlKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5j ZV9vcHMgdGltZWxpbmVfZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVu Y2Vfb3BzIHRpbWVsaW5lX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gdGltZWxp bmVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IHRpbWVsaW5l X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gdGltZWxpbmVf ZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKIAkuc2lnbmFsZWQgPSB0aW1lbGluZV9mZW5jZV9zaWdu YWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9mZW5jZV9k ZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSB0aW1lbGluZV9mZW5jZV9yZWxlYXNlLAogCS5mZW5j ZV92YWx1ZV9zdHIgPSB0aW1lbGluZV9mZW5jZV92YWx1ZV9zdHIsCiAJLnRpbWVsaW5lX3ZhbHVl X3N0ciA9IHRpbWVsaW5lX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0ciwKQEAgLTMxNyw3ICszMTcs NyBAQCBzdGF0aWMgbG9uZyBzd19zeW5jX2lvY3RsX2NyZWF0ZV9mZW5jZShzdHJ1Y3Qgc3luY190 aW1lbGluZSAqb2JqLAogCiAJc3luY19maWxlID0gc3luY19maWxlX2NyZWF0ZSgmcHQtPmJhc2Up OwogCWlmICghc3luY19maWxlKSB7Ci0JCWZlbmNlX3B1dCgmcHQtPmJhc2UpOworCQlkbWFfZmVu Y2VfcHV0KCZwdC0+YmFzZSk7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gZXJyOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmMgYi9kcml2ZXJzL2RtYS1idWYv c3luY19kZWJ1Zy5jCmluZGV4IDJkZDRjM2RiNmNhYS4uNDhiMjBlMzRmYjZkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5j X2RlYnVnLmMKQEAgLTcxLDEyICs3MSwxMyBAQCBzdGF0aWMgY29uc3QgY2hhciAqc3luY19zdGF0 dXNfc3RyKGludCBzdGF0dXMpCiAJcmV0dXJuICJlcnJvciI7CiB9CiAKLXN0YXRpYyB2b2lkIHN5 bmNfcHJpbnRfZmVuY2Uoc3RydWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBi b29sIHNob3cpCitzdGF0aWMgdm9pZCBzeW5jX3ByaW50X2ZlbmNlKHN0cnVjdCBzZXFfZmlsZSAq cywKKwkJCSAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgc2hvdykKIHsKIAlpbnQg c3RhdHVzID0gMTsKLQlzdHJ1Y3Qgc3luY190aW1lbGluZSAqcGFyZW50ID0gZmVuY2VfcGFyZW50 KGZlbmNlKTsKKwlzdHJ1Y3Qgc3luY190aW1lbGluZSAqcGFyZW50ID0gZG1hX2ZlbmNlX3BhcmVu dChmZW5jZSk7CiAKLQlpZiAoZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKGZlbmNlKSkKKwlpZiAo ZG1hX2ZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZChmZW5jZSkpCiAJCXN0YXR1cyA9IGZlbmNlLT5z dGF0dXM7CiAKIAlzZXFfcHJpbnRmKHMsICIgICVzJXNmZW5jZSAlcyIsCkBAIC0xMzUsMTAgKzEz NiwxMCBAQCBzdGF0aWMgdm9pZCBzeW5jX3ByaW50X3N5bmNfZmlsZShzdHJ1Y3Qgc2VxX2ZpbGUg KnMsCiAJaW50IGk7CiAKIAlzZXFfcHJpbnRmKHMsICJbJXBdICVzOiAlc1xuIiwgc3luY19maWxl LCBzeW5jX2ZpbGUtPm5hbWUsCi0JCSAgIHN5bmNfc3RhdHVzX3N0cighZmVuY2VfaXNfc2lnbmFs ZWQoc3luY19maWxlLT5mZW5jZSkpKTsKKwkJICAgc3luY19zdGF0dXNfc3RyKCFkbWFfZmVuY2Vf aXNfc2lnbmFsZWQoc3luY19maWxlLT5mZW5jZSkpKTsKIAotCWlmIChmZW5jZV9pc19hcnJheShz eW5jX2ZpbGUtPmZlbmNlKSkgewotCQlzdHJ1Y3QgZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZmVu Y2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CisJaWYgKGRtYV9mZW5jZV9pc19hcnJheShzeW5j X2ZpbGUtPmZlbmNlKSkgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheSA9IHRvX2Rt YV9mZW5jZV9hcnJheShzeW5jX2ZpbGUtPmZlbmNlKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgYXJy YXktPm51bV9mZW5jZXM7ICsraSkKIAkJCXN5bmNfcHJpbnRfZmVuY2UocywgYXJyYXktPmZlbmNl c1tpXSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5oIGIv ZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuaAppbmRleCBkMjY5YWE2NzgzYWEuLjI2ZmU4Yjk5 MDdiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuaAorKysgYi9kcml2 ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5oCkBAIC0xNSw3ICsxNSw3IEBACiAKICNpbmNsdWRlIDxs aW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51 eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVkZSA8bGlu dXgvc3luY19maWxlLmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC9zeW5jX2ZpbGUuaD4KQEAgLTQ1 LDEwICs0NSw5IEBAIHN0cnVjdCBzeW5jX3RpbWVsaW5lIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXN5 bmNfdGltZWxpbmVfbGlzdDsKIH07CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IHN5bmNfdGltZWxp bmUgKmZlbmNlX3BhcmVudChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1 Y3Qgc3luY190aW1lbGluZSAqZG1hX2ZlbmNlX3BhcmVudChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGZlbmNlLT5sb2NrLCBzdHJ1Y3Qgc3luY190aW1l bGluZSwKLQkJCSAgICBjaGlsZF9saXN0X2xvY2spOworCXJldHVybiBjb250YWluZXJfb2YoZmVu Y2UtPmxvY2ssIHN0cnVjdCBzeW5jX3RpbWVsaW5lLCBjaGlsZF9saXN0X2xvY2spOwogfQogCiAv KioKQEAgLTU4LDcgKzU3LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3luY190aW1lbGluZSAq ZmVuY2VfcGFyZW50KHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAgKiBAYWN0aXZlX2xpc3Q6IHN5bmMg dGltZWxpbmUgYWN0aXZlIGNoaWxkJ3MgbGlzdAogICovCiBzdHJ1Y3Qgc3luY19wdCB7Ci0Jc3Ry dWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOwogCXN0cnVjdCBsaXN0X2hl YWQgY2hpbGRfbGlzdDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV9saXN0OwogfTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5j X2ZpbGUuYwppbmRleCBiMjlhOWU4MTczMjAuLjJjYWVkYjQxMWQ4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUu YwpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2Fs bG9jKHZvaWQpCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGZlbmNlX2NoZWNrX2Ni X2Z1bmMoc3RydWN0IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQg ZmVuY2VfY2hlY2tfY2JfZnVuYyhzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNl X2NiICpjYikKIHsKIAlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7CiAKQEAgLTcxLDcgKzcx LDcgQEAgc3RhdGljIHZvaWQgZmVuY2VfY2hlY2tfY2JfZnVuYyhzdHJ1Y3QgZmVuY2UgKmYsIHN0 cnVjdCBmZW5jZV9jYiAqY2IpCiAgKiB0YWtlcyBvd25lcnNoaXAgb2YgQGZlbmNlLiBUaGUgc3lu Y19maWxlIGNhbiBiZSByZWxlYXNlZCB3aXRoCiAgKiBmcHV0KHN5bmNfZmlsZS0+ZmlsZSkuIFJl dHVybnMgdGhlIHN5bmNfZmlsZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCiAgKi8KLXN0cnVj dCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0cnVj dCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwogCkBAIC0xMjEsMTYgKzEyMSwxNiBAQCBz dGF0aWMgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2ZkZ2V0KGludCBmZCkKICAqIEVuc3Vy ZXMgQGZkIHJlZmVyZW5jZXMgYSB2YWxpZCBzeW5jX2ZpbGUgYW5kIHJldHVybnMgYSBmZW5jZSB0 aGF0CiAgKiByZXByZXNlbnRzIGFsbCBmZW5jZSBpbiB0aGUgc3luY19maWxlLiBPbiBlcnJvciBO VUxMIGlzIHJldHVybmVkLgogICovCi1zdHJ1Y3QgZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVuY2Uo aW50IGZkKQorc3RydWN0IGRtYV9mZW5jZSAqc3luY19maWxlX2dldF9mZW5jZShpbnQgZmQpCiB7 CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAlzeW5jX2ZpbGUgPSBzeW5jX2ZpbGVfZmRnZXQo ZmQpOwogCWlmICghc3luY19maWxlKQogCQlyZXR1cm4gTlVMTDsKIAotCWZlbmNlID0gZmVuY2Vf Z2V0KHN5bmNfZmlsZS0+ZmVuY2UpOworCWZlbmNlID0gZG1hX2ZlbmNlX2dldChzeW5jX2ZpbGUt PmZlbmNlKTsKIAlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7CiAKIAlyZXR1cm4gZmVuY2U7CkBAIC0x MzgsOSArMTM4LDkgQEAgc3RydWN0IGZlbmNlICpzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGludCBmZCkK IEVYUE9SVF9TWU1CT0woc3luY19maWxlX2dldF9mZW5jZSk7CiAKIHN0YXRpYyBpbnQgc3luY19m aWxlX3NldF9mZW5jZShzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUsCi0JCQkgICAgICAgc3Ry dWN0IGZlbmNlICoqZmVuY2VzLCBpbnQgbnVtX2ZlbmNlcykKKwkJCSAgICAgICBzdHJ1Y3QgZG1h X2ZlbmNlICoqZmVuY2VzLCBpbnQgbnVtX2ZlbmNlcykKIHsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXkg KmFycmF5OworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5OwogCiAJLyoKIAkgKiBUaGUg cmVmZXJlbmNlIGZvciB0aGUgZmVuY2VzIGluIHRoZSBuZXcgc3luY19maWxlIGFuZCBoZWxkCkBA IC0xNTIsOCArMTUyLDkgQEAgc3RhdGljIGludCBzeW5jX2ZpbGVfc2V0X2ZlbmNlKHN0cnVjdCBz eW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAkJc3luY19maWxlLT5mZW5jZSA9IGZlbmNlc1swXTsKIAkJ a2ZyZWUoZmVuY2VzKTsKIAl9IGVsc2UgewotCQlhcnJheSA9IGZlbmNlX2FycmF5X2NyZWF0ZShu dW1fZmVuY2VzLCBmZW5jZXMsCi0JCQkJCSAgIGZlbmNlX2NvbnRleHRfYWxsb2MoMSksIDEsIGZh bHNlKTsKKwkJYXJyYXkgPSBkbWFfZmVuY2VfYXJyYXlfY3JlYXRlKG51bV9mZW5jZXMsIGZlbmNl cywKKwkJCQkJICAgICAgIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpLAorCQkJCQkgICAgICAg MSwgZmFsc2UpOwogCQlpZiAoIWFycmF5KQogCQkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTE2Mywx MCArMTY0LDExIEBAIHN0YXRpYyBpbnQgc3luY19maWxlX3NldF9mZW5jZShzdHJ1Y3Qgc3luY19m aWxlICpzeW5jX2ZpbGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2UgKipn ZXRfZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwgaW50ICpudW1fZmVuY2VzKQor c3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKipnZXRfZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUgKnN5 bmNfZmlsZSwKKwkJCQkgICAgIGludCAqbnVtX2ZlbmNlcykKIHsKLQlpZiAoZmVuY2VfaXNfYXJy YXkoc3luY19maWxlLT5mZW5jZSkpIHsKLQkJc3RydWN0IGZlbmNlX2FycmF5ICphcnJheSA9IHRv X2ZlbmNlX2FycmF5KHN5bmNfZmlsZS0+ZmVuY2UpOworCWlmIChkbWFfZmVuY2VfaXNfYXJyYXko c3luY19maWxlLT5mZW5jZSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0 b19kbWFfZmVuY2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CiAKIAkJKm51bV9mZW5jZXMgPSBh cnJheS0+bnVtX2ZlbmNlczsKIAkJcmV0dXJuIGFycmF5LT5mZW5jZXM7CkBAIC0xNzYsMTIgKzE3 OCwxMyBAQCBzdGF0aWMgc3RydWN0IGZlbmNlICoqZ2V0X2ZlbmNlcyhzdHJ1Y3Qgc3luY19maWxl ICpzeW5jX2ZpbGUsIGludCAqbnVtX2ZlbmNlcykKIAlyZXR1cm4gJnN5bmNfZmlsZS0+ZmVuY2U7 CiB9CiAKLXN0YXRpYyB2b2lkIGFkZF9mZW5jZShzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIGludCAq aSwgc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyB2b2lkIGFkZF9mZW5jZShzdHJ1Y3QgZG1h X2ZlbmNlICoqZmVuY2VzLAorCQkgICAgICBpbnQgKmksIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewogCWZlbmNlc1sqaV0gPSBmZW5jZTsKIAotCWlmICghZmVuY2VfaXNfc2lnbmFsZWQoZmVu Y2UpKSB7Ci0JCWZlbmNlX2dldChmZW5jZSk7CisJaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQo ZmVuY2UpKSB7CisJCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCQkoKmkpKys7CiAJfQogfQpAQCAt MjAwLDcgKzIwMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfbWVyZ2Uo Y29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5bmNfZmlsZSAqYSwKIAkJCQkJIHN0cnVjdCBzeW5j X2ZpbGUgKmIpCiB7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwotCXN0cnVjdCBmZW5j ZSAqKmZlbmNlcywgKipuZmVuY2VzLCAqKmFfZmVuY2VzLCAqKmJfZmVuY2VzOworCXN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZXMsICoqbmZlbmNlcywgKiphX2ZlbmNlcywgKipiX2ZlbmNlczsKIAlp bnQgaSwgaV9hLCBpX2IsIG51bV9mZW5jZXMsIGFfbnVtX2ZlbmNlcywgYl9udW1fZmVuY2VzOwog CiAJc3luY19maWxlID0gc3luY19maWxlX2FsbG9jKCk7CkBAIC0yMjYsOCArMjI5LDggQEAgc3Rh dGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9tZXJnZShjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3Qgc3luY19maWxlICphLAogCSAqIGFuZCBzeW5jX2ZpbGVfY3JlYXRlLCB0aGlzIGlzIGEg cmVhc29uYWJsZSBhc3N1bXB0aW9uLgogCSAqLwogCWZvciAoaSA9IGlfYSA9IGlfYiA9IDA7IGlf YSA8IGFfbnVtX2ZlbmNlcyAmJiBpX2IgPCBiX251bV9mZW5jZXM7ICkgewotCQlzdHJ1Y3QgZmVu Y2UgKnB0X2EgPSBhX2ZlbmNlc1tpX2FdOwotCQlzdHJ1Y3QgZmVuY2UgKnB0X2IgPSBiX2ZlbmNl c1tpX2JdOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpwdF9hID0gYV9mZW5jZXNbaV9hXTsKKwkJc3Ry dWN0IGRtYV9mZW5jZSAqcHRfYiA9IGJfZmVuY2VzW2lfYl07CiAKIAkJaWYgKHB0X2EtPmNvbnRl eHQgPCBwdF9iLT5jb250ZXh0KSB7CiAJCQlhZGRfZmVuY2UoZmVuY2VzLCAmaSwgcHRfYSk7CkBA IC0yNTUsNyArMjU4LDcgQEAgc3RhdGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9tZXJn ZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3luY19maWxlICphLAogCQlhZGRfZmVuY2UoZmVu Y2VzLCAmaSwgYl9mZW5jZXNbaV9iXSk7CiAKIAlpZiAoaSA9PSAwKQotCQlmZW5jZXNbaSsrXSA9 IGZlbmNlX2dldChhX2ZlbmNlc1swXSk7CisJCWZlbmNlc1tpKytdID0gZG1hX2ZlbmNlX2dldChh X2ZlbmNlc1swXSk7CiAKIAlpZiAobnVtX2ZlbmNlcyA+IGkpIHsKIAkJbmZlbmNlcyA9IGtyZWFs bG9jKGZlbmNlcywgaSAqIHNpemVvZigqZmVuY2VzKSwKQEAgLTI4Niw4ICsyODksOCBAQCBzdGF0 aWMgdm9pZCBzeW5jX2ZpbGVfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJCQkJCSAgICAga3Jl Zik7CiAKIAlpZiAodGVzdF9iaXQoUE9MTF9FTkFCTEVELCAmc3luY19maWxlLT5mZW5jZS0+Zmxh Z3MpKQotCQlmZW5jZV9yZW1vdmVfY2FsbGJhY2soc3luY19maWxlLT5mZW5jZSwgJnN5bmNfZmls ZS0+Y2IpOwotCWZlbmNlX3B1dChzeW5jX2ZpbGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3JlbW92 ZV9jYWxsYmFjayhzeW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYik7CisJZG1hX2ZlbmNl X3B1dChzeW5jX2ZpbGUtPmZlbmNlKTsKIAlrZnJlZShzeW5jX2ZpbGUpOwogfQogCkBAIC0zMDcs MTIgKzMxMCwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHN5bmNfZmlsZV9wb2xsKHN0cnVjdCBm aWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQogCiAJaWYgKCFwb2xsX2RvZXNfbm90X3dhaXQo d2FpdCkgJiYKIAkgICAgIXRlc3RfYW5kX3NldF9iaXQoUE9MTF9FTkFCTEVELCAmc3luY19maWxl LT5mZW5jZS0+ZmxhZ3MpKSB7Ci0JCWlmIChmZW5jZV9hZGRfY2FsbGJhY2soc3luY19maWxlLT5m ZW5jZSwgJnN5bmNfZmlsZS0+Y2IsCi0JCQkJICAgICAgIGZlbmNlX2NoZWNrX2NiX2Z1bmMpIDwg MCkKKwkJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soc3luY19maWxlLT5mZW5jZSwgJnN5bmNf ZmlsZS0+Y2IsCisJCQkJCSAgIGZlbmNlX2NoZWNrX2NiX2Z1bmMpIDwgMCkKIAkJCXdha2VfdXBf YWxsKCZzeW5jX2ZpbGUtPndxKTsKIAl9CiAKLQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoc3lu Y19maWxlLT5mZW5jZSkgPyBQT0xMSU4gOiAwOworCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFs ZWQoc3luY19maWxlLT5mZW5jZSkgPyBQT0xMSU4gOiAwOwogfQogCiBzdGF0aWMgbG9uZyBzeW5j X2ZpbGVfaW9jdGxfbWVyZ2Uoc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLApAQCAtMzcwLDE0 ICszNzMsMTQgQEAgc3RhdGljIGxvbmcgc3luY19maWxlX2lvY3RsX21lcmdlKHN0cnVjdCBzeW5j X2ZpbGUgKnN5bmNfZmlsZSwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBzeW5jX2Zp bGxfZmVuY2VfaW5mbyhzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorc3RhdGljIHZvaWQgc3luY19maWxs X2ZlbmNlX2luZm8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCQkJIHN0cnVjdCBzeW5jX2Zl bmNlX2luZm8gKmluZm8pCiB7CiAJc3RybGNweShpbmZvLT5vYmpfbmFtZSwgZmVuY2UtPm9wcy0+ Z2V0X3RpbWVsaW5lX25hbWUoZmVuY2UpLAogCQlzaXplb2YoaW5mby0+b2JqX25hbWUpKTsKIAlz dHJsY3B5KGluZm8tPmRyaXZlcl9uYW1lLCBmZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25hbWUoZmVu Y2UpLAogCQlzaXplb2YoaW5mby0+ZHJpdmVyX25hbWUpKTsKLQlpZiAoZmVuY2VfaXNfc2lnbmFs ZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlpbmZvLT5z dGF0dXMgPSBmZW5jZS0+c3RhdHVzID49IDAgPyAxIDogZmVuY2UtPnN0YXR1czsKIAllbHNlCiAJ CWluZm8tPnN0YXR1cyA9IDA7CkBAIC0zODksNyArMzkyLDcgQEAgc3RhdGljIGxvbmcgc3luY19m aWxlX2lvY3RsX2ZlbmNlX2luZm8oc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogewogCXN0 cnVjdCBzeW5jX2ZpbGVfaW5mbyBpbmZvOwogCXN0cnVjdCBzeW5jX2ZlbmNlX2luZm8gKmZlbmNl X2luZm8gPSBOVUxMOwotCXN0cnVjdCBmZW5jZSAqKmZlbmNlczsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2VzOwogCV9fdTMyIHNpemU7CiAJaW50IG51bV9mZW5jZXMsIHJldCwgaTsKIApAQCAt NDI5LDcgKzQzMiw3IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9pbmZvKHN0 cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAogbm9fZmVuY2VzOgogCXN0cmxjcHkoaW5mby5u YW1lLCBzeW5jX2ZpbGUtPm5hbWUsIHNpemVvZihpbmZvLm5hbWUpKTsKLQlpbmZvLnN0YXR1cyA9 IGZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOworCWluZm8uc3RhdHVzID0gZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOwogCWluZm8ubnVtX2ZlbmNlcyA9 IG51bV9mZW5jZXM7CiAKIAlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywgJmlu Zm8sIHNpemVvZihpbmZvKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDAz OWI1N2U0NjQ0Yy4uMjgzZDA1OTI3ZDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUu aApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxs aW51eC9pbnRlcnZhbF90cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+Ci0jaW5j bHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2lu Y2x1ZGUgPHR0bS90dG1fYm9fYXBpLmg+CiAjaW5jbHVkZSA8dHRtL3R0bV9ib19kcml2ZXIuaD4K QEAgLTM3OCw3ICszNzgsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlX2RyaXZlciB7CiAJc3RydWN0 IHRpbWVyX2xpc3QJCWZhbGxiYWNrX3RpbWVyOwogCXVuc2lnbmVkCQkJbnVtX2ZlbmNlc19tYXNr OwogCXNwaW5sb2NrX3QJCQlsb2NrOwotCXN0cnVjdCBmZW5jZQkJCSoqZmVuY2VzOworCXN0cnVj dCBkbWFfZmVuY2UJCSoqZmVuY2VzOwogfTsKIAogLyogc29tZSBzcGVjaWFsIHZhbHVlcyBmb3Ig dGhlIG93bmVyIGZpZWxkICovCkBAIC0zOTksNyArMzk5LDcgQEAgaW50IGFtZGdwdV9mZW5jZV9k cml2ZXJfc3RhcnRfcmluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCQkJICAgdW5zaWdu ZWQgaXJxX3R5cGUpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3N1c3BlbmQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3Jlc3VtZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci1pbnQgYW1kZ3B1X2ZlbmNlX2VtaXQoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CitpbnQgYW1kZ3B1X2ZlbmNl X2VtaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2Up Owogdm9pZCBhbWRncHVfZmVuY2VfcHJvY2VzcyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwog aW50IGFtZGdwdV9mZW5jZV93YWl0X2VtcHR5KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CiB1 bnNpZ25lZCBhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcpOwpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyB7CiBz dHJ1Y3QgYW1kZ3B1X2JvX3ZhIHsKIAkvKiBwcm90ZWN0ZWQgYnkgYm8gYmVpbmcgcmVzZXJ2ZWQg Ki8KIAlzdHJ1Y3QgbGlzdF9oZWFkCQlib19saXN0OwotCXN0cnVjdCBmZW5jZQkJICAgICAgICAq bGFzdF9wdF91cGRhdGU7CisJc3RydWN0IGRtYV9mZW5jZQkgICAgICAgICpsYXN0X3B0X3VwZGF0 ZTsKIAl1bnNpZ25lZAkJCXJlZl9jb3VudDsKIAogCS8qIHByb3RlY3RlZCBieSB2bSBtdXRleCBh bmQgc3BpbmxvY2sgKi8KQEAgLTU0Myw3ICs1NDMsNyBAQCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvIHsK IAlzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIJKm1hbmFnZXI7CiAJdW5zaWduZWQJCQlzb2Zmc2V0 OwogCXVuc2lnbmVkCQkJZW9mZnNldDsKLQlzdHJ1Y3QgZmVuY2UJCSAgICAgICAgKmZlbmNlOwor CXN0cnVjdCBkbWFfZmVuY2UJICAgICAgICAqZmVuY2U7CiB9OwogCiAvKgpAQCAtNTY2LDE5ICs1 NjYsMTkgQEAgaW50IGFtZGdwdV9tb2RlX2R1bWJfbW1hcChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAs CiAgKi8KIHN0cnVjdCBhbWRncHVfc3luYyB7CiAJREVDTEFSRV9IQVNIVEFCTEUoZmVuY2VzLCA0 KTsKLQlzdHJ1Y3QgZmVuY2UJICAgICAgICAqbGFzdF92bV91cGRhdGU7CisJc3RydWN0IGRtYV9m ZW5jZSAgICAgICAgKmxhc3Rfdm1fdXBkYXRlOwogfTsKIAogdm9pZCBhbWRncHVfc3luY19jcmVh dGUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKTsKIGludCBhbWRncHVfc3luY19mZW5jZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAotCQkgICAg ICBzdHJ1Y3QgZmVuY2UgKmYpOworCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKIGludCBh bWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkgICAgIHN0cnVj dCBhbWRncHVfc3luYyAqc3luYywKIAkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpy ZXN2LAogCQkgICAgIHZvaWQgKm93bmVyKTsKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNfcGVl a19mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCitzdHJ1Y3QgZG1hX2ZlbmNlICphbWRn cHVfc3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKIAkJCQkgICAgIHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZyk7Ci1zdHJ1Y3QgZmVuY2UgKmFtZGdwdV9zeW5jX2dldF9m ZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMpOworc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1 X3N5bmNfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYyk7CiB2b2lkIGFtZGdwdV9z eW5jX2ZyZWUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKTsKIGludCBhbWRncHVfc3luY19pbml0 KHZvaWQpOwogdm9pZCBhbWRncHVfc3luY19maW5pKHZvaWQpOwpAQCAtNzAzLDEwICs3MDMsMTAg QEAgc3RydWN0IGFtZGdwdV9mbGlwX3dvcmsgewogCXVpbnQ2NF90CQkJYmFzZTsKIAlzdHJ1Y3Qg ZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKIAlzdHJ1Y3QgYW1kZ3B1X2JvCQkqb2xk X2FibzsKLQlzdHJ1Y3QgZmVuY2UJCQkqZXhjbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCQkqZXhjbDsK IAl1bnNpZ25lZAkJCXNoYXJlZF9jb3VudDsKLQlzdHJ1Y3QgZmVuY2UJCQkqKnNoYXJlZDsKLQlz dHJ1Y3QgZmVuY2VfY2IJCQljYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCQkqKnNoYXJlZDsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlX2NiCQljYjsKIAlib29sCQkJCWFzeW5jOwogfTsKIApAQCAtNzQyLDcgKzc0 Miw3IEBAIHZvaWQgYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgYW1kZ3B1X2pvYiAq am9iKTsKIHZvaWQgYW1kZ3B1X2pvYl9mcmVlKHN0cnVjdCBhbWRncHVfam9iICpqb2IpOwogaW50 IGFtZGdwdV9qb2Jfc3VibWl0KHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywKIAkJICAgICAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSwgdm9p ZCAqb3duZXIsCi0JCSAgICAgIHN0cnVjdCBmZW5jZSAqKmYpOworCQkgICAgICBzdHJ1Y3QgZG1h X2ZlbmNlICoqZik7CiAKIHN0cnVjdCBhbWRncHVfcmluZyB7CiAJc3RydWN0IGFtZGdwdV9kZXZp Y2UJCSphZGV2OwpAQCAtODQ0LDcgKzg0NCw3IEBAIHN0cnVjdCBhbWRncHVfdm0gewogCS8qIGNv bnRhaW5zIHRoZSBwYWdlIGRpcmVjdG9yeSAqLwogCXN0cnVjdCBhbWRncHVfYm8JKnBhZ2VfZGly ZWN0b3J5OwogCXVuc2lnbmVkCQltYXhfcGRlX3VzZWQ7Ci0Jc3RydWN0IGZlbmNlCQkqcGFnZV9k aXJlY3RvcnlfZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkqcGFnZV9kaXJlY3RvcnlfZmVuY2U7 CiAJdWludDY0X3QJCWxhc3RfZXZpY3Rpb25fY291bnRlcjsKIAogCS8qIGFycmF5IG9mIHBhZ2Ug dGFibGVzLCBvbmUgZm9yIGVhY2ggcGFnZSBkaXJlY3RvcnkgZW50cnkgKi8KQEAgLTg2NSwxNCAr ODY1LDE0IEBAIHN0cnVjdCBhbWRncHVfdm0gewogCiBzdHJ1Y3QgYW1kZ3B1X3ZtX2lkIHsKIAlz dHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Ci0Jc3RydWN0IGZlbmNlCQkqZmlyc3Q7CisJc3RydWN0IGRt YV9mZW5jZQkqZmlyc3Q7CiAJc3RydWN0IGFtZGdwdV9zeW5jCWFjdGl2ZTsKLQlzdHJ1Y3QgZmVu Y2UJCSpsYXN0X2ZsdXNoOworCXN0cnVjdCBkbWFfZmVuY2UJKmxhc3RfZmx1c2g7CiAJYXRvbWlj NjRfdAkJb3duZXI7CiAKIAl1aW50NjRfdAkJcGRfZ3B1X2FkZHI7CiAJLyogbGFzdCBmbHVzaGVk IFBEL1BUIHVwZGF0ZSAqLwotCXN0cnVjdCBmZW5jZQkJKmZsdXNoZWRfdXBkYXRlczsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlCSpmbHVzaGVkX3VwZGF0ZXM7CiAKIAl1aW50MzJfdCAgICAgICAgICAgICAg ICBjdXJyZW50X2dwdV9yZXNldF9jb3VudDsKIApAQCAtOTIxLDcgKzkyMSw3IEBAIHZvaWQgYW1k Z3B1X3ZtX2dldF9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRn cHVfdm0gKnZtLAogdm9pZCBhbWRncHVfdm1fbW92ZV9wdF9ib3NfaW5fbHJ1KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQkJCSAgc3RydWN0IGFtZGdwdV92bSAqdm0pOwogaW50IGFtZGdw dV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsCi0JCSAgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywgc3RydWN0IGZlbmNlICpmZW5j ZSwKKwkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLCBzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSwKIAkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7CiBpbnQgYW1kZ3B1X3ZtX2Zs dXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7CiB2 b2lkIGFtZGdwdV92bV9yZXNldF9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWdu ZWQgdm1faWQpOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX3JtdihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogc3RydWN0IGFtZGdwdV9jdHhfcmluZyB7CiAJdWlu dDY0X3QJCXNlcXVlbmNlOwotCXN0cnVjdCBmZW5jZQkJKipmZW5jZXM7CisJc3RydWN0IGRtYV9m ZW5jZQkqKmZlbmNlczsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eQllbnRpdHk7CiB9OwogCkBA IC05NjYsNyArOTY2LDcgQEAgc3RydWN0IGFtZGdwdV9jdHggewogCXN0cnVjdCBhbWRncHVfZGV2 aWNlICAgICphZGV2OwogCXVuc2lnbmVkCQlyZXNldF9jb3VudGVyOwogCXNwaW5sb2NrX3QJCXJp bmdfbG9jazsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAqKmZlbmNlczsKKwlzdHJ1Y3QgZG1h X2ZlbmNlCSoqZmVuY2VzOwogCXN0cnVjdCBhbWRncHVfY3R4X3JpbmcJcmluZ3NbQU1ER1BVX01B WF9SSU5HU107CiAJYm9vbCBwcmVhbWJsZV9wcmVzZW50ZWQ7CiB9OwpAQCAtOTgyLDggKzk4Miw4 IEBAIHN0cnVjdCBhbWRncHVfY3R4ICphbWRncHVfY3R4X2dldChzdHJ1Y3QgYW1kZ3B1X2Zwcml2 ICpmcHJpdiwgdWludDMyX3QgaWQpOwogaW50IGFtZGdwdV9jdHhfcHV0KHN0cnVjdCBhbWRncHVf Y3R4ICpjdHgpOwogCiB1aW50NjRfdCBhbWRncHVfY3R4X2FkZF9mZW5jZShzdHJ1Y3QgYW1kZ3B1 X2N0eCAqY3R4LCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkgICAgICBzdHJ1Y3QgZmVu Y2UgKmZlbmNlKTsKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X2N0eF9nZXRfZmVuY2Uoc3RydWN0IGFt ZGdwdV9jdHggKmN0eCwKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKK3N0cnVj dCBkbWFfZmVuY2UgKmFtZGdwdV9jdHhfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgs CiAJCQkJICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50NjRfdCBzZXEpOwogCiBpbnQg YW1kZ3B1X2N0eF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLApAQCAt MTE4MSwxMCArMTE4MSwxMCBAQCBzdHJ1Y3QgYW1kZ3B1X2dmeCB7CiBpbnQgYW1kZ3B1X2liX2dl dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCSAg dW5zaWduZWQgc2l6ZSwgc3RydWN0IGFtZGdwdV9pYiAqaWIpOwogdm9pZCBhbWRncHVfaWJfZnJl ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9pYiAqaWIsCi0JCSAg ICBzdHJ1Y3QgZmVuY2UgKmYpOworCQkgICAgc3RydWN0IGRtYV9mZW5jZSAqZik7CiBpbnQgYW1k Z3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgbnVtX2li cywKLQkJICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBzdHJ1Y3QgZmVuY2UgKmxhc3Rfdm1f dXBkYXRlLAotCQkgICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwgc3RydWN0IGZlbmNlICoq Zik7CisJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwgc3RydWN0IGRtYV9mZW5jZSAqbGFz dF92bV91cGRhdGUsCisJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBzdHJ1Y3QgZG1h X2ZlbmNlICoqZik7CiBpbnQgYW1kZ3B1X2liX3Bvb2xfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7CiB2b2lkIGFtZGdwdV9pYl9wb29sX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpOwogaW50IGFtZGdwdV9pYl9yaW5nX3Rlc3RzKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KTsKQEAgLTEyMjUsNyArMTIyNSw3IEBAIHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyIHsKIAlz dHJ1Y3QgYW1kZ3B1X2JvX2xpc3QJCSpib19saXN0OwogCXN0cnVjdCBhbWRncHVfYm9fbGlzdF9l bnRyeQl2bV9wZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQl2YWxpZGF0ZWQ7Ci0Jc3RydWN0IGZlbmNl CQkJKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UJCSpmZW5jZTsKIAl1aW50NjRfdAkJCWJ5dGVz X21vdmVkX3RocmVzaG9sZDsKIAl1aW50NjRfdAkJCWJ5dGVzX21vdmVkOwogCXN0cnVjdCBhbWRn cHVfYm9fbGlzdF9lbnRyeQkqZXZpY3RhYmxlOwpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgc3RydWN0 IGFtZGdwdV9qb2IgewogCXN0cnVjdCBhbWRncHVfcmluZwkqcmluZzsKIAlzdHJ1Y3QgYW1kZ3B1 X3N5bmMJc3luYzsKIAlzdHJ1Y3QgYW1kZ3B1X2liCSppYnM7Ci0Jc3RydWN0IGZlbmNlCQkqZmVu Y2U7IC8qIHRoZSBodyBmZW5jZSAqLworCXN0cnVjdCBkbWFfZmVuY2UJKmZlbmNlOyAvKiB0aGUg aHcgZmVuY2UgKi8KIAl1aW50MzJfdAkJcHJlYW1ibGVfc3RhdHVzOwogCXVpbnQzMl90CQludW1f aWJzOwogCXZvaWQJCQkqb3duZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYmVuY2htYXJrLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYmVuY2htYXJrLmMKaW5kZXggMzQ1MzA1MjM1MzQ5Li5jYzk3ZWVlOTMyMjYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9iZW5jaG1hcmsuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYmVuY2htYXJrLmMKQEAgLTMzLDcgKzMz LDcgQEAgc3RhdGljIGludCBhbWRncHVfYmVuY2htYXJrX2RvX21vdmUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIHVuc2lnbmVkIHNpemUsCiB7CiAJdW5zaWduZWQgbG9uZyBzdGFydF9qaWZm aWVzOwogCXVuc2lnbmVkIGxvbmcgZW5kX2ppZmZpZXM7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSA9 IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCWludCBpLCByOwogCiAJ c3RhcnRfamlmZmllcyA9IGppZmZpZXM7CkBAIC00MywxNyArNDMsMTcgQEAgc3RhdGljIGludCBh bWRncHVfYmVuY2htYXJrX2RvX21vdmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2ln bmVkIHNpemUsCiAJCQkJICAgICAgIGZhbHNlKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGV4aXRfZG9f bW92ZTsKLQkJciA9IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJciA9IGRtYV9mZW5jZV93 YWl0KGZlbmNlLCBmYWxzZSk7CiAJCWlmIChyKQogCQkJZ290byBleGl0X2RvX21vdmU7Ci0JCWZl bmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCX0KIAllbmRfamlmZmll cyA9IGppZmZpZXM7CiAJciA9IGppZmZpZXNfdG9fbXNlY3MoZW5kX2ppZmZpZXMgLSBzdGFydF9q aWZmaWVzKTsKIAogZXhpdF9kb19tb3ZlOgogCWlmIChmZW5jZSkKLQkJZmVuY2VfcHV0KGZlbmNl KTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIHI7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggYjBmNmU2OTU3NTM2Li41ZDU4MjI2NWU5Mjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC03MTksNyArNzE5LDcg QEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKHN0cnVjdCBhbWRncHVfY3NfcGFy c2VyICpwYXJzZXIsIGludCBlcnJvciwgYm8KIAkJdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24o JnBhcnNlci0+dGlja2V0LAogCQkJCQkgICAmcGFyc2VyLT52YWxpZGF0ZWQpOwogCX0KLQlmZW5j ZV9wdXQocGFyc2VyLT5mZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChwYXJzZXItPmZlbmNlKTsKIAog CWlmIChwYXJzZXItPmN0eCkKIAkJYW1kZ3B1X2N0eF9wdXQocGFyc2VyLT5jdHgpOwpAQCAtNzU2 LDcgKzc1Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX3ZtX3VwZGF0ZV9wdGUoc3RydWN0IGFt ZGdwdV9jc19wYXJzZXIgKnAsCiAKIAlpZiAocC0+Ym9fbGlzdCkgewogCQlmb3IgKGkgPSAwOyBp IDwgcC0+Ym9fbGlzdC0+bnVtX2VudHJpZXM7IGkrKykgewotCQkJc3RydWN0IGZlbmNlICpmOwor CQkJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAogCQkJLyogaWdub3JlIGR1cGxpY2F0ZXMgKi8KIAkJ CWJvID0gcC0+Ym9fbGlzdC0+YXJyYXlbaV0ucm9iajsKQEAgLTk1Niw3ICs5NTYsNyBAQCBzdGF0 aWMgaW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs CiAJCWZvciAoaiA9IDA7IGogPCBudW1fZGVwczsgKytqKSB7CiAJCQlzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmc7CiAJCQlzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4OwotCQkJc3RydWN0IGZlbmNlICpm ZW5jZTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCQlyID0gYW1kZ3B1X2NzX2dl dF9yaW5nKGFkZXYsIGRlcHNbal0uaXBfdHlwZSwKIAkJCQkJICAgICAgIGRlcHNbal0uaXBfaW5z dGFuY2UsCkBAIC05NzgsNyArOTc4LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfZGVwZW5kZW5j aWVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJfSBlbHNlIGlmIChmZW5jZSkgewog CQkJCXIgPSBhbWRncHVfc3luY19mZW5jZShhZGV2LCAmcC0+am9iLT5zeW5jLAogCQkJCQkJICAg ICAgZmVuY2UpOwotCQkJCWZlbmNlX3B1dChmZW5jZSk7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5j ZSk7CiAJCQkJYW1kZ3B1X2N0eF9wdXQoY3R4KTsKIAkJCQlpZiAocikKIAkJCQkJcmV0dXJuIHI7 CkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAKIAlqb2ItPm93bmVyID0gcC0+ZmlscDsKIAlqb2ItPmZl bmNlX2N0eCA9IGVudGl0eS0+ZmVuY2VfY29udGV4dDsKLQlwLT5mZW5jZSA9IGZlbmNlX2dldCgm am9iLT5iYXNlLnNfZmVuY2UtPmZpbmlzaGVkKTsKKwlwLT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQo JmpvYi0+YmFzZS5zX2ZlbmNlLT5maW5pc2hlZCk7CiAJY3MtPm91dC5oYW5kbGUgPSBhbWRncHVf Y3R4X2FkZF9mZW5jZShwLT5jdHgsIHJpbmcsIHAtPmZlbmNlKTsKIAlqb2ItPnVmX3NlcXVlbmNl ID0gY3MtPm91dC5oYW5kbGU7CiAJYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhqb2IpOwpAQCAt MTA5MSw3ICsxMDkxLDcgQEAgaW50IGFtZGdwdV9jc193YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gYW1kZ3B1X2dl bV90aW1lb3V0KHdhaXQtPmluLnRpbWVvdXQpOwogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9 IE5VTEw7CiAJc3RydWN0IGFtZGdwdV9jdHggKmN0eDsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOwor CXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWxvbmcgcjsKIAogCXIgPSBhbWRncHVfY3NfZ2V0 X3JpbmcoYWRldiwgd2FpdC0+aW4uaXBfdHlwZSwgd2FpdC0+aW4uaXBfaW5zdGFuY2UsCkBAIC0x MTA3LDggKzExMDcsOCBAQCBpbnQgYW1kZ3B1X2NzX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoSVNfRVJSKGZlbmNlKSkKIAkJciA9IFBUUl9FUlIo ZmVuY2UpOwogCWVsc2UgaWYgKGZlbmNlKSB7Ci0JCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQoZmVu Y2UsIHRydWUsIHRpbWVvdXQpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlyID0gZG1hX2ZlbmNl X3dhaXRfdGltZW91dChmZW5jZSwgdHJ1ZSwgdGltZW91dCk7CisJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCX0gZWxzZQogCQlyID0gMTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2N0eC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2N0eC5jCmluZGV4IGE1ZTJmY2JlZjBmMC4uOTliYmM4NjAzMjJmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCkBAIC0zNSw3ICszNSw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2N0 eCAqY3R4KQogCWtyZWZfaW5pdCgmY3R4LT5yZWZjb3VudCk7CiAJc3Bpbl9sb2NrX2luaXQoJmN0 eC0+cmluZ19sb2NrKTsKIAljdHgtPmZlbmNlcyA9IGtjYWxsb2MoYW1kZ3B1X3NjaGVkX2pvYnMg KiBBTURHUFVfTUFYX1JJTkdTLAotCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBmZW5jZSopLCBHRlBf S0VSTkVMKTsKKwkJCSAgICAgIHNpemVvZihzdHJ1Y3QgZG1hX2ZlbmNlKiksIEdGUF9LRVJORUwp OwogCWlmICghY3R4LT5mZW5jZXMpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC03OSw3ICs3OSw3 IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jdHhfZmluaShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4KQog CiAJZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkKIAkJZm9yIChqID0gMDsg aiA8IGFtZGdwdV9zY2hlZF9qb2JzOyArK2opCi0JCQlmZW5jZV9wdXQoY3R4LT5yaW5nc1tpXS5m ZW5jZXNbal0pOworCQkJZG1hX2ZlbmNlX3B1dChjdHgtPnJpbmdzW2ldLmZlbmNlc1tqXSk7CiAJ a2ZyZWUoY3R4LT5mZW5jZXMpOwogCWN0eC0+ZmVuY2VzID0gTlVMTDsKIApAQCAtMjQxLDM5ICsy NDEsMzkgQEAgaW50IGFtZGdwdV9jdHhfcHV0KHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCiB9CiAK IHVpbnQ2NF90IGFtZGdwdV9jdHhfYWRkX2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgsIHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJ CQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eF9y aW5nICpjcmluZyA9ICYgY3R4LT5yaW5nc1tyaW5nLT5pZHhdOwogCXVpbnQ2NF90IHNlcSA9IGNy aW5nLT5zZXF1ZW5jZTsKIAl1bnNpZ25lZCBpZHggPSAwOwotCXN0cnVjdCBmZW5jZSAqb3RoZXIg PSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKm90aGVyID0gTlVMTDsKIAogCWlkeCA9IHNlcSAm IChhbWRncHVfc2NoZWRfam9icyAtIDEpOwogCW90aGVyID0gY3JpbmctPmZlbmNlc1tpZHhdOwog CWlmIChvdGhlcikgewogCQlzaWduZWQgbG9uZyByOwotCQlyID0gZmVuY2Vfd2FpdF90aW1lb3V0 KG90aGVyLCBmYWxzZSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOworCQlyID0gZG1hX2ZlbmNlX3dh aXRfdGltZW91dChvdGhlciwgZmFsc2UsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAkJaWYgKHIg PCAwKQogCQkJRFJNX0VSUk9SKCJFcnJvciAoJWxkKSB3YWl0aW5nIGZvciBmZW5jZSFcbiIsIHIp OwogCX0KIAotCWZlbmNlX2dldChmZW5jZSk7CisJZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAlz cGluX2xvY2soJmN0eC0+cmluZ19sb2NrKTsKIAljcmluZy0+ZmVuY2VzW2lkeF0gPSBmZW5jZTsK IAljcmluZy0+c2VxdWVuY2UrKzsKIAlzcGluX3VubG9jaygmY3R4LT5yaW5nX2xvY2spOwogCi0J ZmVuY2VfcHV0KG90aGVyKTsKKwlkbWFfZmVuY2VfcHV0KG90aGVyKTsKIAogCXJldHVybiBzZXE7 CiB9CiAKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X2N0eF9nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9j dHggKmN0eCwKLQkJCQkgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNlcSkK K3N0cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9jdHhfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4 ICpjdHgsCisJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDY0X3Qgc2Vx KQogewogCXN0cnVjdCBhbWRncHVfY3R4X3JpbmcgKmNyaW5nID0gJiBjdHgtPnJpbmdzW3Jpbmct PmlkeF07Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsK IAogCXNwaW5fbG9jaygmY3R4LT5yaW5nX2xvY2spOwogCkBAIC0yODgsNyArMjg4LDcgQEAgc3Ry dWN0IGZlbmNlICphbWRncHVfY3R4X2dldF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4LAog CQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlmZW5jZSA9IGZlbmNlX2dldChjcmluZy0+ZmVuY2VzW3Nl cSAmIChhbWRncHVfc2NoZWRfam9icyAtIDEpXSk7CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGNy aW5nLT5mZW5jZXNbc2VxICYgKGFtZGdwdV9zY2hlZF9qb2JzIC0gMSldKTsKIAlzcGluX3VubG9j aygmY3R4LT5yaW5nX2xvY2spOwogCiAJcmV0dXJuIGZlbmNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4IGI0ZjRhOTIzOTA2OS4uMDI2MmI0M2M4ZjBl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCkBAIC0xNTk5 LDcgKzE1OTksNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAogCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX2Z1bmNzID0gTlVMTDsKIAlhZGV2LT52 bV9tYW5hZ2VyLnZtX3B0ZV9udW1fcmluZ3MgPSAwOwogCWFkZXYtPmdhcnQuZ2FydF9mdW5jcyA9 IE5VTEw7Ci0JYWRldi0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoQU1ER1BV X01BWF9SSU5HUyk7CisJYWRldi0+ZmVuY2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2Fs bG9jKEFNREdQVV9NQVhfUklOR1MpOwogCiAJYWRldi0+c21jX3JyZWcgPSAmYW1kZ3B1X2ludmFs aWRfcnJlZzsKIAlhZGV2LT5zbWNfd3JlZyA9ICZhbWRncHVfaW52YWxpZF93cmVnOwpAQCAtMjE5 Myw3ICsyMTkzLDcgQEAgYm9vbCBhbWRncHVfbmVlZF9iYWNrdXAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiBzdGF0aWMgaW50IGFtZGdwdV9yZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3coc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCSAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKIAkJCQkJICAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCi0JCQkJCSAgIHN0cnVjdCBmZW5jZSAq KmZlbmNlKQorCQkJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJdWludDMyX3Qg ZG9tYWluOwogCWludCByOwpAQCAtMjMxMiwzMCArMjMxMiwzMCBAQCBpbnQgYW1kZ3B1X2dwdV9y ZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYgKG5lZWRfZnVsbF9yZXNldCAm JiBhbWRncHVfbmVlZF9iYWNrdXAoYWRldikpIHsKIAkJCXN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZyA9IGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3Jpbmc7CiAJCQlzdHJ1Y3QgYW1kZ3B1X2JvICpi bywgKnRtcDsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMLCAqbmV4dCA9IE5VTEw7CisJ CQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEwsICpuZXh0ID0gTlVMTDsKIAogCQkJRFJN X0lORk8oInJlY292ZXIgdnJhbSBibyBmcm9tIHNoYWRvd1xuIik7CiAJCQltdXRleF9sb2NrKCZh ZGV2LT5zaGFkb3dfbGlzdF9sb2NrKTsKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibywg dG1wLCAmYWRldi0+c2hhZG93X2xpc3QsIHNoYWRvd19saXN0KSB7CiAJCQkJYW1kZ3B1X3JlY292 ZXJfdnJhbV9mcm9tX3NoYWRvdyhhZGV2LCByaW5nLCBibywgJm5leHQpOwogCQkJCWlmIChmZW5j ZSkgewotCQkJCQlyID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCQkJCQlyID0gZG1hX2Zl bmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJCQkJaWYgKHIpIHsKIAkJCQkJCVdBUk4ociwgInJl Y292ZXJ5IGZyb20gc2hhZG93IGlzbid0IGNvbWxldGVkXG4iKTsKIAkJCQkJCWJyZWFrOwogCQkJ CQl9CiAJCQkJfQogCi0JCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCQlkbWFfZmVuY2VfcHV0KGZl bmNlKTsKIAkJCQlmZW5jZSA9IG5leHQ7CiAJCQl9CiAJCQltdXRleF91bmxvY2soJmFkZXYtPnNo YWRvd19saXN0X2xvY2spOwogCQkJaWYgKGZlbmNlKSB7Ci0JCQkJciA9IGZlbmNlX3dhaXQoZmVu Y2UsIGZhbHNlKTsKKwkJCQlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJCQlp ZiAocikKIAkJCQkJV0FSTihyLCAicmVjb3ZlcnkgZnJvbSBzaGFkb3cgaXNuJ3QgY29tbGV0ZWRc biIpOwogCQkJfQotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2Up OwogCQl9CiAJCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKIAkJCXN0 cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYtPnJpbmdzW2ldOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKaW5kZXggMDgzZTJiNDI5ODcyLi4wNzVjMGQ3 ZGIyMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwpA QCAtMzUsMjkgKzM1LDI5IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fZWRpZC5oPgogCi1zdGF0aWMgdm9pZCBhbWRncHVfZmxpcF9jYWxsYmFj ayhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBhbWRn cHVfZmxpcF9jYWxsYmFjayhzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2Ni ICpjYikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2ZsaXBfd29yayAqd29yayA9CiAJCWNvbnRhaW5lcl9v ZihjYiwgc3RydWN0IGFtZGdwdV9mbGlwX3dvcmssIGNiKTsKIAotCWZlbmNlX3B1dChmKTsKKwlk bWFfZmVuY2VfcHV0KGYpOwogCXNjaGVkdWxlX3dvcmsoJndvcmstPmZsaXBfd29yay53b3JrKTsK IH0KIAogc3RhdGljIGJvb2wgYW1kZ3B1X2ZsaXBfaGFuZGxlX2ZlbmNlKHN0cnVjdCBhbWRncHVf ZmxpcF93b3JrICp3b3JrLAotCQkJCSAgICAgc3RydWN0IGZlbmNlICoqZikKKwkJCQkgICAgIHN0 cnVjdCBkbWFfZmVuY2UgKipmKQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U9ICpmOworCXN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlPSAqZjsKIAogCWlmIChmZW5jZSA9PSBOVUxMKQogCQlyZXR1cm4g ZmFsc2U7CiAKIAkqZiA9IE5VTEw7CiAKLQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwg JndvcmstPmNiLCBhbWRncHVfZmxpcF9jYWxsYmFjaykpCisJaWYgKCFkbWFfZmVuY2VfYWRkX2Nh bGxiYWNrKGZlbmNlLCAmd29yay0+Y2IsIGFtZGdwdV9mbGlwX2NhbGxiYWNrKSkKIAkJcmV0dXJu IHRydWU7CiAKLQlmZW5jZV9wdXQoZmVuY2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJl dHVybiBmYWxzZTsKIH0KIApAQCAtMjQ0LDkgKzI0NCw5IEBAIGludCBhbWRncHVfY3J0Y19wYWdl X2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogY2xlYW51cDoKIAlhbWRncHVf Ym9fdW5yZWYoJndvcmstPm9sZF9hYm8pOwotCWZlbmNlX3B1dCh3b3JrLT5leGNsKTsKKwlkbWFf ZmVuY2VfcHV0KHdvcmstPmV4Y2wpOwogCWZvciAoaSA9IDA7IGkgPCB3b3JrLT5zaGFyZWRfY291 bnQ7ICsraSkKLQkJZmVuY2VfcHV0KHdvcmstPnNoYXJlZFtpXSk7CisJCWRtYV9mZW5jZV9wdXQo d29yay0+c2hhcmVkW2ldKTsKIAlrZnJlZSh3b3JrLT5zaGFyZWQpOwogCWtmcmVlKHdvcmspOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCmluZGV4IDNhMmU0MmY0 Yjg5Ny4uNTc1NTJjNzllYzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZmVuY2UuYwpAQCAtNDgsNyArNDgsNyBAQAogICovCiAKIHN0cnVjdCBhbWRncHVfZmVuY2Ugewot CXN0cnVjdCBmZW5jZSBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCS8qIFJCLCBE TUEsIGV0Yy4gKi8KIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcJCSpyaW5nOwpAQCAtNzMsOCArNzMsOCBA QCB2b2lkIGFtZGdwdV9mZW5jZV9zbGFiX2Zpbmkodm9pZCkKIC8qCiAgKiBDYXN0IGhlbHBlcgog ICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBhbWRncHVfZmVuY2Vfb3BzOwotc3Rh dGljIGlubGluZSBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICp0b19hbWRncHVfZmVuY2Uoc3RydWN0IGZl bmNlICpmKQorc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGFtZGdwdV9mZW5jZV9v cHM7CitzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZmVuY2UgKnRvX2FtZGdwdV9mZW5jZShz dHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBhbWRncHVfZmVuY2UgKl9fZiA9IGNvbnRh aW5lcl9vZihmLCBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlLCBiYXNlKTsKIApAQCAtMTMwLDExICsxMzAs MTEgQEAgc3RhdGljIHUzMiBhbWRncHVfZmVuY2VfcmVhZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcpCiAgKiBFbWl0cyBhIGZlbmNlIGNvbW1hbmQgb24gdGhlIHJlcXVlc3RlZCByaW5nIChhbGwg YXNpY3MpLgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1FTk9NRU0gb24gZmFpbHVyZS4KICAq LwotaW50IGFtZGdwdV9mZW5jZV9lbWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0 IGZlbmNlICoqZikKK2ludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICpmZW5jZTsKLQlzdHJ1Y3QgZmVu Y2UgKm9sZCwgKipwdHI7CisJc3RydWN0IGRtYV9mZW5jZSAqb2xkLCAqKnB0cjsKIAl1aW50MzJf dCBzZXE7CiAKIAlmZW5jZSA9IGttZW1fY2FjaGVfYWxsb2MoYW1kZ3B1X2ZlbmNlX3NsYWIsIEdG UF9LRVJORUwpOwpAQCAtMTQzLDEwICsxNDMsMTAgQEAgaW50IGFtZGdwdV9mZW5jZV9lbWl0KHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGZlbmNlICoqZikKIAogCXNlcSA9ICsrcmlu Zy0+ZmVuY2VfZHJ2LnN5bmNfc2VxOwogCWZlbmNlLT5yaW5nID0gcmluZzsKLQlmZW5jZV9pbml0 KCZmZW5jZS0+YmFzZSwgJmFtZGdwdV9mZW5jZV9vcHMsCi0JCSAgICZyaW5nLT5mZW5jZV9kcnYu bG9jaywKLQkJICAgYWRldi0+ZmVuY2VfY29udGV4dCArIHJpbmctPmlkeCwKLQkJICAgc2VxKTsK KwlkbWFfZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZhbWRncHVfZmVuY2Vfb3BzLAorCQkgICAg ICAgJnJpbmctPmZlbmNlX2Rydi5sb2NrLAorCQkgICAgICAgYWRldi0+ZmVuY2VfY29udGV4dCAr IHJpbmctPmlkeCwKKwkJICAgICAgIHNlcSk7CiAJYW1kZ3B1X3JpbmdfZW1pdF9mZW5jZShyaW5n LCByaW5nLT5mZW5jZV9kcnYuZ3B1X2FkZHIsCiAJCQkgICAgICAgc2VxLCBBTURHUFVfRkVOQ0Vf RkxBR19JTlQpOwogCkBAIC0xNTUsMTIgKzE1NSwxMiBAQCBpbnQgYW1kZ3B1X2ZlbmNlX2VtaXQo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVuY2UgKipmKQogCSAqIGVtaXR0aW5n IHRoZSBmZW5jZSB3b3VsZCBtZXNzIHVwIHRoZSBoYXJkd2FyZSByaW5nIGJ1ZmZlci4KIAkgKi8K IAlvbGQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpwdHIsIDEpOwotCWlmIChvbGQgJiYg IWZlbmNlX2lzX3NpZ25hbGVkKG9sZCkpIHsKKwlpZiAob2xkICYmICFkbWFfZmVuY2VfaXNfc2ln bmFsZWQob2xkKSkgewogCQlEUk1fSU5GTygicmN1IHNsb3QgaXMgYnVzeVxuIik7Ci0JCWZlbmNl X3dhaXQob2xkLCBmYWxzZSk7CisJCWRtYV9mZW5jZV93YWl0KG9sZCwgZmFsc2UpOwogCX0KIAot CXJjdV9hc3NpZ25fcG9pbnRlcigqcHRyLCBmZW5jZV9nZXQoJmZlbmNlLT5iYXNlKSk7CisJcmN1 X2Fzc2lnbl9wb2ludGVyKCpwdHIsIGRtYV9mZW5jZV9nZXQoJmZlbmNlLT5iYXNlKSk7CiAKIAkq ZiA9ICZmZW5jZS0+YmFzZTsKIApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgYW1kZ3B1X2ZlbmNl X3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCXNlcSAmPSBkcnYtPm51bV9mZW5j ZXNfbWFzazsKIAogCWRvIHsKLQkJc3RydWN0IGZlbmNlICpmZW5jZSwgKipwdHI7CisJCXN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlLCAqKnB0cjsKIAogCQkrK2xhc3Rfc2VxOwogCQlsYXN0X3NlcSAm PSBkcnYtPm51bV9mZW5jZXNfbWFzazsKQEAgLTIyNCwxMyArMjI0LDEzIEBAIHZvaWQgYW1kZ3B1 X2ZlbmNlX3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCQlpZiAoIWZlbmNlKQog CQkJY29udGludWU7CiAKLQkJciA9IGZlbmNlX3NpZ25hbChmZW5jZSk7CisJCXIgPSBkbWFfZmVu Y2Vfc2lnbmFsKGZlbmNlKTsKIAkJaWYgKCFyKQotCQkJRkVOQ0VfVFJBQ0UoZmVuY2UsICJzaWdu YWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKKwkJCURNQV9GRU5DRV9UUkFDRShmZW5jZSwgInNp Z25hbGVkIGZyb20gaXJxIGNvbnRleHRcbiIpOwogCQllbHNlCiAJCQlCVUcoKTsKIAotCQlmZW5j ZV9wdXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAl9IHdoaWxlIChsYXN0X3Nl cSAhPSBzZXEpOwogfQogCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2Zl bmNlX2ZhbGxiYWNrKHVuc2lnbmVkIGxvbmcgYXJnKQogaW50IGFtZGdwdV9mZW5jZV93YWl0X2Vt cHR5KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsKIAl1aW50NjRfdCBzZXEgPSBBQ0NFU1Nf T05DRShyaW5nLT5mZW5jZV9kcnYuc3luY19zZXEpOwotCXN0cnVjdCBmZW5jZSAqZmVuY2UsICoq cHRyOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCAqKnB0cjsKIAlpbnQgcjsKIAogCWlmICgh c2VxKQpAQCAtMjY5LDE0ICsyNjksMTQgQEAgaW50IGFtZGdwdV9mZW5jZV93YWl0X2VtcHR5KHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAlwdHIgPSAmcmluZy0+ZmVuY2VfZHJ2LmZlbmNlc1tz ZXEgJiByaW5nLT5mZW5jZV9kcnYubnVtX2ZlbmNlc19tYXNrXTsKIAlyY3VfcmVhZF9sb2NrKCk7 CiAJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoKnB0cik7Ci0JaWYgKCFmZW5jZSB8fCAhZmVuY2Vf Z2V0X3JjdShmZW5jZSkpIHsKKwlpZiAoIWZlbmNlIHx8ICFkbWFfZmVuY2VfZ2V0X3JjdShmZW5j ZSkpIHsKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCXJldHVybiAwOwogCX0KIAlyY3VfcmVhZF91 bmxvY2soKTsKIAotCXIgPSBmZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7Ci0JZmVuY2VfcHV0KGZl bmNlKTsKKwlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAtNDUyLDcgKzQ1Miw3IEBAIHZvaWQgYW1kZ3B1 X2ZlbmNlX2RyaXZlcl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlhbWRfc2No ZWRfZmluaSgmcmluZy0+c2NoZWQpOwogCQlkZWxfdGltZXJfc3luYygmcmluZy0+ZmVuY2VfZHJ2 LmZhbGxiYWNrX3RpbWVyKTsKIAkJZm9yIChqID0gMDsgaiA8PSByaW5nLT5mZW5jZV9kcnYubnVt X2ZlbmNlc19tYXNrOyArK2opCi0JCQlmZW5jZV9wdXQocmluZy0+ZmVuY2VfZHJ2LmZlbmNlc1tq XSk7CisJCQlkbWFfZmVuY2VfcHV0KHJpbmctPmZlbmNlX2Rydi5mZW5jZXNbal0pOwogCQlrZnJl ZShyaW5nLT5mZW5jZV9kcnYuZmVuY2VzKTsKIAkJcmluZy0+ZmVuY2VfZHJ2LmZlbmNlcyA9IE5V TEw7CiAJCXJpbmctPmZlbmNlX2Rydi5pbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtNTQxLDEyICs1 NDEsMTIgQEAgdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX2ZvcmNlX2NvbXBsZXRpb24oc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKiBDb21tb24gZmVuY2UgaW1wbGVtZW50YXRpb24KICAq LwogCi1zdGF0aWMgY29uc3QgY2hhciAqYW1kZ3B1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmFtZGdwdV9mZW5jZV9nZXRfZHJp dmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJhbWRncHUiOwog fQogCi1zdGF0aWMgY29uc3QgY2hhciAqYW1kZ3B1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0 cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICphbWRncHVfZmVuY2VfZ2V0X3RpbWVs aW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICpm ZW5jZSA9IHRvX2FtZGdwdV9mZW5jZShmKTsKIAlyZXR1cm4gKGNvbnN0IGNoYXIgKilmZW5jZS0+ cmluZy0+bmFtZTsKQEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqYW1kZ3B1 X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKICAqIHRvIGZlbmNlX3F1 ZXVlIHRoYXQgY2hlY2tzIGlmIHRoaXMgZmVuY2UgaXMgc2lnbmFsZWQsIGFuZCBpZiBzbyBpdAog ICogc2lnbmFscyB0aGUgZmVuY2UgYW5kIHJlbW92ZXMgaXRzZWxmLgogICovCi1zdGF0aWMgYm9v bCBhbWRncHVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMg Ym9vbCBhbWRncHVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQog ewogCXN0cnVjdCBhbWRncHVfZmVuY2UgKmZlbmNlID0gdG9fYW1kZ3B1X2ZlbmNlKGYpOwogCXN0 cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGZlbmNlLT5yaW5nOwpAQCAtNTY4LDcgKzU2OCw3IEBA IHN0YXRpYyBib29sIGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAq ZikKIAlpZiAoIXRpbWVyX3BlbmRpbmcoJnJpbmctPmZlbmNlX2Rydi5mYWxsYmFja190aW1lcikp CiAJCWFtZGdwdV9mZW5jZV9zY2hlZHVsZV9mYWxsYmFjayhyaW5nKTsKIAotCUZFTkNFX1RSQUNF KCZmZW5jZS0+YmFzZSwgImFybWVkIG9uIHJpbmcgJWkhXG4iLCByaW5nLT5pZHgpOworCURNQV9G RU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJhcm1lZCBvbiByaW5nICVpIVxuIiwgcmluZy0+aWR4 KTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtNTgyLDcgKzU4Miw3IEBAIHN0YXRpYyBib29sIGFt ZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKICAqLwogc3RhdGlj IHZvaWQgYW1kZ3B1X2ZlbmNlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpCiB7Ci0Jc3RydWN0 IGZlbmNlICpmID0gY29udGFpbmVyX29mKHJjdSwgc3RydWN0IGZlbmNlLCByY3UpOworCXN0cnVj dCBkbWFfZmVuY2UgKmYgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgZG1hX2ZlbmNlLCByY3Up OwogCXN0cnVjdCBhbWRncHVfZmVuY2UgKmZlbmNlID0gdG9fYW1kZ3B1X2ZlbmNlKGYpOwogCWtt ZW1fY2FjaGVfZnJlZShhbWRncHVfZmVuY2Vfc2xhYiwgZmVuY2UpOwogfQpAQCAtNTk1LDE2ICs1 OTUsMTYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2ZlbmNlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpy Y3UpCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQg YmVjb21lcyB6ZXJvLgogICogSXQganVzdCBSQ1Ugc2NoZWR1bGVzIGZyZWVpbmcgdXAgdGhlIGZl bmNlLgogICovCi1zdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2Ug KmYpCitzdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpm KQogewogCWNhbGxfcmN1KCZmLT5yY3UsIGFtZGdwdV9mZW5jZV9mcmVlKTsKIH0KIAotc3RhdGlj IGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kZ3B1X2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBhbWRncHVfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVy X25hbWUgPSBhbWRncHVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFt ZSA9IGFtZGdwdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9 IGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAotCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93 YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IGFtZGdw dV9mZW5jZV9yZWxlYXNlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2liLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIu YwppbmRleCA2YTZjODZjOWMxNjkuLmMzNjcyZGZjZmQ2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2liLmMKQEAgLTg5LDcgKzg5LDcgQEAgaW50IGFtZGdwdV9pYl9nZXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogICogRnJlZSBh biBJQiAoYWxsIGFzaWNzKS4KICAqLwogdm9pZCBhbWRncHVfaWJfZnJlZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9pYiAqaWIsCi0JCSAgICBzdHJ1Y3QgZmVuY2Ug KmYpCisJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCWFtZGdwdV9zYV9ib19mcmVlKGFk ZXYsICZpYi0+c2FfYm8sIGYpOwogfQpAQCAtMTE2LDggKzExNiw4IEBAIHZvaWQgYW1kZ3B1X2li X2ZyZWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfaWIgKmliLAog ICogdG8gU0kgdGhlcmUgd2FzIGp1c3QgYSBERSBJQi4KICAqLwogaW50IGFtZGdwdV9pYl9zY2hl ZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMsCi0JCSAgICAg ICBzdHJ1Y3QgYW1kZ3B1X2liICppYnMsIHN0cnVjdCBmZW5jZSAqbGFzdF92bV91cGRhdGUsCi0J CSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBzdHJ1Y3QgZmVuY2UgKipmKQorCQkgICAg ICAgc3RydWN0IGFtZGdwdV9pYiAqaWJzLCBzdHJ1Y3QgZG1hX2ZlbmNlICpsYXN0X3ZtX3VwZGF0 ZSwKKwkJICAgICAgIHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBkbWFfZmVuY2UgKipm KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3Qg YW1kZ3B1X2liICppYiA9ICZpYnNbMF07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfam9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf am9iLmMKaW5kZXggOGM1ODA3OTk0MDczLi5hMGRlNjI4NmM0NTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfam9iLmMKQEAgLTgxLDcgKzgxLDcgQEAgaW50IGFtZGdwdV9qb2Jf YWxsb2Nfd2l0aF9pYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgc2l6ZSwK IAogdm9pZCBhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBhbWRncHVfam9iICpqb2Ip CiB7Ci0Jc3RydWN0IGZlbmNlICpmOworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJdW5zaWduZWQg aTsKIAogCS8qIHVzZSBzY2hlZCBmZW5jZSBpZiBhdmFpbGFibGUgKi8KQEAgLTk1LDcgKzk1LDcg QEAgc3RhdGljIHZvaWQgYW1kZ3B1X2pvYl9mcmVlX2NiKHN0cnVjdCBhbWRfc2NoZWRfam9iICpz X2pvYikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iID0gY29udGFpbmVyX29mKHNfam9iLCBz dHJ1Y3QgYW1kZ3B1X2pvYiwgYmFzZSk7CiAKLQlmZW5jZV9wdXQoam9iLT5mZW5jZSk7CisJZG1h X2ZlbmNlX3B1dChqb2ItPmZlbmNlKTsKIAlhbWRncHVfc3luY19mcmVlKCZqb2ItPnN5bmMpOwog CWtmcmVlKGpvYik7CiB9CkBAIC0xMDQsMTQgKzEwNCwxNCBAQCB2b2lkIGFtZGdwdV9qb2JfZnJl ZShzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQogewogCWFtZGdwdV9qb2JfZnJlZV9yZXNvdXJjZXMo am9iKTsKIAotCWZlbmNlX3B1dChqb2ItPmZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGpvYi0+ZmVu Y2UpOwogCWFtZGdwdV9zeW5jX2ZyZWUoJmpvYi0+c3luYyk7CiAJa2ZyZWUoam9iKTsKIH0KIAog aW50IGFtZGdwdV9qb2Jfc3VibWl0KHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIAkJICAgICAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSwg dm9pZCAqb3duZXIsCi0JCSAgICAgIHN0cnVjdCBmZW5jZSAqKmYpCisJCSAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKipmKQogewogCWludCByOwogCWpvYi0+cmluZyA9IHJpbmc7CkBAIC0xMjUsMTkg KzEyNSwxOSBAQCBpbnQgYW1kZ3B1X2pvYl9zdWJtaXQoc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwg c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCiAJam9iLT5vd25lciA9IG93bmVyOwogCWpvYi0+ ZmVuY2VfY3R4ID0gZW50aXR5LT5mZW5jZV9jb250ZXh0OwotCSpmID0gZmVuY2VfZ2V0KCZqb2It PmJhc2Uuc19mZW5jZS0+ZmluaXNoZWQpOworCSpmID0gZG1hX2ZlbmNlX2dldCgmam9iLT5iYXNl LnNfZmVuY2UtPmZpbmlzaGVkKTsKIAlhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKGpvYik7CiAJ YW1kX3NjaGVkX2VudGl0eV9wdXNoX2pvYigmam9iLT5iYXNlKTsKIAogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgc3RydWN0IGZlbmNlICphbWRncHVfam9iX2RlcGVuZGVuY3koc3RydWN0IGFtZF9z Y2hlZF9qb2IgKnNjaGVkX2pvYikKK3N0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfam9i X2RlcGVuZGVuY3koc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2pvYiAqam9iID0gdG9fYW1kZ3B1X2pvYihzY2hlZF9qb2IpOwogCXN0cnVjdCBhbWRn cHVfdm0gKnZtID0gam9iLT52bTsKIAotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBhbWRncHVfc3lu Y19nZXRfZmVuY2UoJmpvYi0+c3luYyk7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBhbWRn cHVfc3luY19nZXRfZmVuY2UoJmpvYi0+c3luYyk7CiAKIAlpZiAoZmVuY2UgPT0gTlVMTCAmJiB2 bSAmJiAham9iLT52bV9pZCkgewogCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBqb2ItPnJp bmc7CkBAIC0xNTUsOSArMTU1LDkgQEAgc3RhdGljIHN0cnVjdCBmZW5jZSAqYW1kZ3B1X2pvYl9k ZXBlbmRlbmN5KHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJcmV0dXJuIGZlbmNl OwogfQogCi1zdGF0aWMgc3RydWN0IGZlbmNlICphbWRncHVfam9iX3J1bihzdHJ1Y3QgYW1kX3Nj aGVkX2pvYiAqc2NoZWRfam9iKQorc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9qb2Jf cnVuKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiB7Ci0Jc3RydWN0IGZlbmNlICpm ZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCXN0cnVjdCBh bWRncHVfam9iICpqb2I7CiAJaW50IHI7CiAKQEAgLTE3Niw4ICsxNzYsOCBAQCBzdGF0aWMgc3Ry dWN0IGZlbmNlICphbWRncHVfam9iX3J1bihzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9i KQogCQlEUk1fRVJST1IoIkVycm9yIHNjaGVkdWxpbmcgSUJzICglZClcbiIsIHIpOwogCiAJLyog aWYgZ3B1IHJlc2V0LCBodyBmZW5jZSB3aWxsIGJlIHJlcGxhY2VkIGhlcmUgKi8KLQlmZW5jZV9w dXQoam9iLT5mZW5jZSk7Ci0Jam9iLT5mZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7CisJZG1hX2Zl bmNlX3B1dChqb2ItPmZlbmNlKTsKKwlqb2ItPmZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7 CiAJYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhqb2IpOwogCXJldHVybiBmZW5jZTsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCBhYTA3NGZhYzBj N2YuLjU1ZTE0MmE1ZmY1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9v YmplY3QuYwpAQCAtMzgzLDcgKzM4Myw3IEBAIGludCBhbWRncHVfYm9fY3JlYXRlX3Jlc3RyaWN0 ZWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlpZiAoZmxhZ3MgJiBBTURHUFVfR0VN X0NSRUFURV9WUkFNX0NMRUFSRUQgJiYKIAkgICAgYm8tPnRiby5tZW0ucGxhY2VtZW50ICYgVFRN X1BMX0ZMQUdfVlJBTSkgewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKIAogCQlpZiAoYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZyA9PSBOVUxM IHx8CiAJCSAgICFhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nLT5yZWFkeSkgewpAQCAtNDAz LDkgKzQwMyw5IEBAIGludCBhbWRncHVfYm9fY3JlYXRlX3Jlc3RyaWN0ZWQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAJCWFtZGdwdV9maWxsX2J1ZmZlcihibywgMCwgYm8tPnRiby5yZXN2 LCAmZmVuY2UpOwogCQlhbWRncHVfYm9fZmVuY2UoYm8sIGZlbmNlLCBmYWxzZSk7CiAJCWFtZGdw dV9ib191bnJlc2VydmUoYm8pOwotCQlmZW5jZV9wdXQoYm8tPnRiby5tb3ZpbmcpOwotCQliby0+ dGJvLm1vdmluZyA9IGZlbmNlX2dldChmZW5jZSk7Ci0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRt YV9mZW5jZV9wdXQoYm8tPnRiby5tb3ZpbmcpOworCQliby0+dGJvLm1vdmluZyA9IGRtYV9mZW5j ZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAl9CiAJKmJvX3B0ciA9IGJv OwogCkBAIC00OTEsNyArNDkxLDcgQEAgaW50IGFtZGdwdV9ib19iYWNrdXBfdG9fc2hhZG93KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywKIAkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCSAgICAgICBzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNl LAorCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwKIAkJCSAgICAgICBib29sIGRp cmVjdCkKIAogewpAQCAtNTIzLDcgKzUyMyw3IEBAIGludCBhbWRncHVfYm9fcmVzdG9yZV9mcm9t X3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkgIHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywKIAkJCQkgIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJCSAgc3RydWN0IHJl c2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJCQkgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLAorCQkJ CSAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLAogCQkJCSAgYm9vbCBkaXJlY3QpCiAKIHsKQEAg LTkyNiw3ICs5MjYsNyBAQCBpbnQgYW1kZ3B1X2JvX2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAgKiBAc2hhcmVkOiB0cnVlIGlmIGZlbmNlIHNob3Vs ZCBiZSBhZGRlZCBzaGFyZWQKICAqCiAgKi8KLXZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVjdCBh bWRncHVfYm8gKmJvLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLAordm9pZCBhbWRncHVfYm9fZmVuY2Uo c3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAgIGJv b2wgc2hhcmVkKQogewogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBiby0+dGJv LnJlc3Y7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKaW5kZXgg ODI1NTAzNGQ3M2ViLi4zZTc4NWVkM2NiNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmgKQEAgLTE1NiwxOSArMTU2LDE5IEBAIGludCBhbWRncHVfYm9fZ2V0 X21ldGFkYXRhKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB2b2lkICpidWZmZXIsCiB2b2lkIGFtZGdw dV9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSAgc3Ry dWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKTsKIGludCBhbWRncHVfYm9fZmF1bHRfcmVzZXJ2ZV9u b3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Ci12b2lkIGFtZGdwdV9ib19mZW5j ZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgc3RydWN0IGZlbmNlICpmZW5jZSwKK3ZvaWQgYW1kZ3B1 X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwK IAkJICAgICBib29sIHNoYXJlZCk7CiB1NjQgYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc3RydWN0IGFt ZGdwdV9ibyAqYm8pOwogaW50IGFtZGdwdV9ib19iYWNrdXBfdG9fc2hhZG93KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAkJ CSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCSAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRp b25fb2JqZWN0ICpyZXN2LAotCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLCBib29sIGRp cmVjdCk7CisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdCk7 CiBpbnQgYW1kZ3B1X2JvX3Jlc3RvcmVfZnJvbV9zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCiAJCQkJICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCQkJICBzdHJ1Y3QgYW1k Z3B1X2JvICpibywKIAkJCQkgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0JCQkJ ICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSwKKwkJCQkgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwK IAkJCQkgIGJvb2wgZGlyZWN0KTsKIAogCkBAIC0yMDAsNyArMjAwLDcgQEAgaW50IGFtZGdwdV9z YV9ib19uZXcoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogCQkgICAgIHVu c2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduKTsKIHZvaWQgYW1kZ3B1X3NhX2JvX2ZyZWUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICoq c2FfYm8sCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJCSAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKTsKICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKIHZvaWQgYW1k Z3B1X3NhX2JvX2R1bXBfZGVidWdfaW5mbyhzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21h bmFnZXIsCiAJCQkJCSBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfc2EuYwppbmRleCBkOGFmMzdhODQ1ZjQuLmZkMjZjNGI4ZDc5MyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMg dm9pZCBhbWRncHVfc2FfYm9fcmVtb3ZlX2xvY2tlZChzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpzYV9i bykKIAl9CiAJbGlzdF9kZWxfaW5pdCgmc2FfYm8tPm9saXN0KTsKIAlsaXN0X2RlbF9pbml0KCZz YV9iby0+Zmxpc3QpOwotCWZlbmNlX3B1dChzYV9iby0+ZmVuY2UpOworCWRtYV9mZW5jZV9wdXQo c2FfYm8tPmZlbmNlKTsKIAlrZnJlZShzYV9ibyk7CiB9CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBz dGF0aWMgdm9pZCBhbWRncHVfc2FfYm9fdHJ5X2ZyZWUoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2Vy ICpzYV9tYW5hZ2VyKQogCXNhX2JvID0gbGlzdF9lbnRyeShzYV9tYW5hZ2VyLT5ob2xlLT5uZXh0 LCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvLCBvbGlzdCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl X2Zyb20oc2FfYm8sIHRtcCwgJnNhX21hbmFnZXItPm9saXN0LCBvbGlzdCkgewogCQlpZiAoc2Ff Ym8tPmZlbmNlID09IE5VTEwgfHwKLQkJICAgICFmZW5jZV9pc19zaWduYWxlZChzYV9iby0+ZmVu Y2UpKSB7CisJCSAgICAhZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHNhX2JvLT5mZW5jZSkpIHsKIAkJ CXJldHVybjsKIAkJfQogCQlhbWRncHVfc2FfYm9fcmVtb3ZlX2xvY2tlZChzYV9ibyk7CkBAIC0y NDQsNyArMjQ0LDcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3NhX2V2ZW50KHN0cnVjdCBhbWRncHVf c2FfbWFuYWdlciAqc2FfbWFuYWdlciwKIH0KIAogc3RhdGljIGJvb2wgYW1kZ3B1X3NhX2JvX25l eHRfaG9sZShzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCi0JCQkJICAgc3Ry dWN0IGZlbmNlICoqZmVuY2VzLAorCQkJCSAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsCiAJ CQkJICAgdW5zaWduZWQgKnRyaWVzKQogewogCXN0cnVjdCBhbWRncHVfc2FfYm8gKmJlc3RfYm8g PSBOVUxMOwpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBib29sIGFtZGdwdV9zYV9ib19uZXh0 X2hvbGUoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogCQlzYV9ibyA9IGxp c3RfZmlyc3RfZW50cnkoJnNhX21hbmFnZXItPmZsaXN0W2ldLAogCQkJCQkgc3RydWN0IGFtZGdw dV9zYV9ibywgZmxpc3QpOwogCi0JCWlmICghZmVuY2VfaXNfc2lnbmFsZWQoc2FfYm8tPmZlbmNl KSkgeworCQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChzYV9iby0+ZmVuY2UpKSB7CiAJCQlm ZW5jZXNbaV0gPSBzYV9iby0+ZmVuY2U7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMzE0LDcgKzMx NCw3IEBAIGludCBhbWRncHVfc2FfYm9fbmV3KHN0cnVjdCBhbWRncHVfc2FfbWFuYWdlciAqc2Ff bWFuYWdlciwKIAkJICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICoqc2FfYm8sCiAJCSAgICAgdW5z aWduZWQgc2l6ZSwgdW5zaWduZWQgYWxpZ24pCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZXNbQU1E R1BVX1NBX05VTV9GRU5DRV9MSVNUU107CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VzW0FNREdQ VV9TQV9OVU1fRkVOQ0VfTElTVFNdOwogCXVuc2lnbmVkIHRyaWVzW0FNREdQVV9TQV9OVU1fRkVO Q0VfTElTVFNdOwogCXVuc2lnbmVkIGNvdW50OwogCWludCBpLCByOwpAQCAtMzU2LDE0ICszNTYs MTQgQEAgaW50IGFtZGdwdV9zYV9ib19uZXcoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9t YW5hZ2VyLAogCiAJCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8IEFNREdQVV9TQV9OVU1fRkVO Q0VfTElTVFM7ICsraSkKIAkJCWlmIChmZW5jZXNbaV0pCi0JCQkJZmVuY2VzW2NvdW50KytdID0g ZmVuY2VfZ2V0KGZlbmNlc1tpXSk7CisJCQkJZmVuY2VzW2NvdW50KytdID0gZG1hX2ZlbmNlX2dl dChmZW5jZXNbaV0pOwogCiAJCWlmIChjb3VudCkgewogCQkJc3Bpbl91bmxvY2soJnNhX21hbmFn ZXItPndxLmxvY2spOwotCQkJdCA9IGZlbmNlX3dhaXRfYW55X3RpbWVvdXQoZmVuY2VzLCBjb3Vu dCwgZmFsc2UsCi0JCQkJCQkgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CisJCQl0ID0gZG1hX2Zl bmNlX3dhaXRfYW55X3RpbWVvdXQoZmVuY2VzLCBjb3VudCwgZmFsc2UsCisJCQkJCQkgICAgICAg TUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCQkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCi0J CQkJZmVuY2VfcHV0KGZlbmNlc1tpXSk7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5jZXNbaV0pOwog CiAJCQlyID0gKHQgPiAwKSA/IDAgOiB0OwogCQkJc3Bpbl9sb2NrKCZzYV9tYW5hZ2VyLT53cS5s b2NrKTsKQEAgLTM4NCw3ICszODQsNyBAQCBpbnQgYW1kZ3B1X3NhX2JvX25ldyhzdHJ1Y3QgYW1k Z3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCiB9CiAKIHZvaWQgYW1kZ3B1X3NhX2JvX2ZyZWUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc2FfYm8gKipzYV9ibywK LQkJICAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXI7CiAKQEAg LTM5NCwxMCArMzk0LDEwIEBAIHZvaWQgYW1kZ3B1X3NhX2JvX2ZyZWUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc2FfYm8gKipzYV9ibywKIAogCXNhX21hbmFnZXIg PSAoKnNhX2JvKS0+bWFuYWdlcjsKIAlzcGluX2xvY2soJnNhX21hbmFnZXItPndxLmxvY2spOwot CWlmIChmZW5jZSAmJiAhZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CisJaWYgKGZlbmNlICYm ICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CiAJCXVpbnQzMl90IGlkeDsKIAotCQko KnNhX2JvKS0+ZmVuY2UgPSBmZW5jZV9nZXQoZmVuY2UpOworCQkoKnNhX2JvKS0+ZmVuY2UgPSBk bWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAkJaWR4ID0gZmVuY2UtPmNvbnRleHQgJSBBTURHUFVfU0Ff TlVNX0ZFTkNFX0xJU1RTOwogCQlsaXN0X2FkZF90YWlsKCYoKnNhX2JvKS0+Zmxpc3QsICZzYV9t YW5hZ2VyLT5mbGlzdFtpZHhdKTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9zeW5jLmMKaW5kZXggNWM4ZDMwMjJmYjg3Li5lZDgxNGU2ZDAyMDcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYwpAQCAtMzQsNyArMzQsNyBAQAogCiBz dHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgewogCXN0cnVjdCBobGlzdF9ub2RlCW5vZGU7Ci0Jc3Ry dWN0IGZlbmNlCQkqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkqZmVuY2U7CiB9OwogCiBzdGF0 aWMgc3RydWN0IGttZW1fY2FjaGUgKmFtZGdwdV9zeW5jX3NsYWI7CkBAIC02MCw3ICs2MCw4IEBA IHZvaWQgYW1kZ3B1X3N5bmNfY3JlYXRlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYykKICAqCiAg KiBUZXN0IGlmIHRoZSBmZW5jZSB3YXMgaXNzdWVkIGJ5IHVzLgogICovCi1zdGF0aWMgYm9vbCBh bWRncHVfc3luY19zYW1lX2RldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGZl bmNlICpmKQorc3RhdGljIGJvb2wgYW1kZ3B1X3N5bmNfc2FtZV9kZXYoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCisJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFtZF9z Y2hlZF9mZW5jZSAqc19mZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShmKTsKIApAQCAtODEsNyAr ODIsNyBAQCBzdGF0aWMgYm9vbCBhbWRncHVfc3luY19zYW1lX2RldihzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgc3RydWN0IGZlbmNlICpmKQogICoKICAqIEV4dHJhY3Qgd2hvIG9yaWdpbmFs bHkgY3JlYXRlZCB0aGUgZmVuY2UuCiAgKi8KLXN0YXRpYyB2b2lkICphbWRncHVfc3luY19nZXRf b3duZXIoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgKmFtZGdwdV9zeW5jX2dldF9vd25l cihzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNfZmVu Y2UgPSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAKQEAgLTk5LDEzICsxMDAsMTQgQEAgc3RhdGlj IHZvaWQgKmFtZGdwdV9zeW5jX2dldF9vd25lcihzdHJ1Y3QgZmVuY2UgKmYpCiAgKgogICogRWl0 aGVyIGtlZXAgdGhlIGV4aXN0aW5nIGZlbmNlIG9yIHRoZSBuZXcgb25lLCBkZXBlbmRpbmcgd2hp Y2ggb25lIGlzIGxhdGVyLgogICovCi1zdGF0aWMgdm9pZCBhbWRncHVfc3luY19rZWVwX2xhdGVy KHN0cnVjdCBmZW5jZSAqKmtlZXAsIHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBh bWRncHVfc3luY19rZWVwX2xhdGVyKHN0cnVjdCBkbWFfZmVuY2UgKiprZWVwLAorCQkJCSAgIHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewotCWlmICgqa2VlcCAmJiBmZW5jZV9pc19sYXRlcigq a2VlcCwgZmVuY2UpKQorCWlmICgqa2VlcCAmJiBkbWFfZmVuY2VfaXNfbGF0ZXIoKmtlZXAsIGZl bmNlKSkKIAkJcmV0dXJuOwogCi0JZmVuY2VfcHV0KCprZWVwKTsKLQkqa2VlcCA9IGZlbmNlX2dl dChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dCgqa2VlcCk7CisJKmtlZXAgPSBkbWFfZmVuY2VfZ2V0 KGZlbmNlKTsKIH0KIAogLyoqCkBAIC0xMTcsNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1 X3N5bmNfa2VlcF9sYXRlcihzdHJ1Y3QgZmVuY2UgKiprZWVwLCBzdHJ1Y3QgZmVuY2UgKmZlbmNl KQogICogVHJpZXMgdG8gYWRkIHRoZSBmZW5jZSB0byBhbiBleGlzdGluZyBoYXNoIGVudHJ5LiBS ZXR1cm5zIHRydWUgd2hlbiBhbiBlbnRyeQogICogd2FzIGZvdW5kLCBmYWxzZSBvdGhlcndpc2Uu CiAgKi8KLXN0YXRpYyBib29sIGFtZGdwdV9zeW5jX2FkZF9sYXRlcihzdHJ1Y3QgYW1kZ3B1X3N5 bmMgKnN5bmMsIHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIGFtZGdwdV9zeW5jX2FkZF9s YXRlcihzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsIHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJ c3RydWN0IGFtZGdwdV9zeW5jX2VudHJ5ICplOwogCkBAIC0xMzksNyArMTQxLDcgQEAgc3RhdGlj IGJvb2wgYW1kZ3B1X3N5bmNfYWRkX2xhdGVyKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywgc3Ry dWN0IGZlbmNlICpmKQogICoKICAqLwogaW50IGFtZGdwdV9zeW5jX2ZlbmNlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCi0JCSAgICAgIHN0cnVj dCBmZW5jZSAqZikKKwkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgYW1k Z3B1X3N5bmNfZW50cnkgKmU7CiAKQEAgLTE1OCw3ICsxNjAsNyBAQCBpbnQgYW1kZ3B1X3N5bmNf ZmVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc3luYyAqc3lu YywKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAloYXNoX2FkZChzeW5jLT5mZW5jZXMsICZlLT5ub2Rl LCBmLT5jb250ZXh0KTsKLQllLT5mZW5jZSA9IGZlbmNlX2dldChmKTsKKwllLT5mZW5jZSA9IGRt YV9mZW5jZV9nZXQoZik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE3Nyw3ICsxNzksNyBAQCBpbnQg YW1kZ3B1X3N5bmNfcmVzdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJICAgICB2b2lk ICpvd25lcikKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZsaXN0OwotCXN0 cnVjdCBmZW5jZSAqZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCXZvaWQgKmZlbmNlX293bmVy OwogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwpAQCAtMjMxLDE1ICsyMzMsMTUgQEAgaW50IGFt ZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAgKiBSZXR1cm5zIHRo ZSBuZXh0IGZlbmNlIG5vdCBzaWduYWxlZCB5ZXQgd2l0aG91dCByZW1vdmluZyBpdCBmcm9tIHRo ZSBzeW5jCiAgKiBvYmplY3QuCiAgKi8KLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNfcGVla19m ZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCi0JCQkJICAgICBzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcpCitzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfc3luY19wZWVrX2ZlbmNlKHN0cnVj dCBhbWRncHVfc3luYyAqc3luYywKKwkJCQkJIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsK IAlzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAJc3RydWN0IGhsaXN0X25vZGUgKnRtcDsK IAlpbnQgaTsKIAogCWhhc2hfZm9yX2VhY2hfc2FmZShzeW5jLT5mZW5jZXMsIGksIHRtcCwgZSwg bm9kZSkgewotCQlzdHJ1Y3QgZmVuY2UgKmYgPSBlLT5mZW5jZTsKKwkJc3RydWN0IGRtYV9mZW5j ZSAqZiA9IGUtPmZlbmNlOwogCQlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gdG9f YW1kX3NjaGVkX2ZlbmNlKGYpOwogCiAJCWlmIChyaW5nICYmIHNfZmVuY2UpIHsKQEAgLTI0Nywx NiArMjQ5LDE2IEBAIHN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNfcGVla19mZW5jZShzdHJ1Y3Qg YW1kZ3B1X3N5bmMgKnN5bmMsCiAJCQkgKiB3aGVuIHRoZXkgYXJlIHNjaGVkdWxlZC4KIAkJCSAq LwogCQkJaWYgKHNfZmVuY2UtPnNjaGVkID09ICZyaW5nLT5zY2hlZCkgewotCQkJCWlmIChmZW5j ZV9pc19zaWduYWxlZCgmc19mZW5jZS0+c2NoZWR1bGVkKSkKKwkJCQlpZiAoZG1hX2ZlbmNlX2lz X3NpZ25hbGVkKCZzX2ZlbmNlLT5zY2hlZHVsZWQpKQogCQkJCQljb250aW51ZTsKIAogCQkJCXJl dHVybiAmc19mZW5jZS0+c2NoZWR1bGVkOwogCQkJfQogCQl9CiAKLQkJaWYgKGZlbmNlX2lzX3Np Z25hbGVkKGYpKSB7CisJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZikpIHsKIAkJCWhhc2hf ZGVsKCZlLT5ub2RlKTsKLQkJCWZlbmNlX3B1dChmKTsKKwkJCWRtYV9mZW5jZV9wdXQoZik7CiAJ CQlrbWVtX2NhY2hlX2ZyZWUoYW1kZ3B1X3N5bmNfc2xhYiwgZSk7CiAJCQljb250aW51ZTsKIAkJ fQpAQCAtMjc0LDExICsyNzYsMTEgQEAgc3RydWN0IGZlbmNlICphbWRncHVfc3luY19wZWVrX2Zl bmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKICAqCiAgKiBHZXQgYW5kIHJlbW92ZXMgdGhl IG5leHQgZmVuY2UgZnJvbSB0aGUgc3luYyBvYmplY3Qgbm90IHNpZ25hbGVkIHlldC4KICAqLwot c3RydWN0IGZlbmNlICphbWRncHVfc3luY19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpz eW5jKQorc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X3N5bmNfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRn cHVfc3luYyAqc3luYykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAJc3RydWN0 IGhsaXN0X25vZGUgKnRtcDsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3RydWN0IGRtYV9mZW5jZSAq ZjsKIAlpbnQgaTsKIAogCWhhc2hfZm9yX2VhY2hfc2FmZShzeW5jLT5mZW5jZXMsIGksIHRtcCwg ZSwgbm9kZSkgewpAQCAtMjg4LDEwICsyOTAsMTAgQEAgc3RydWN0IGZlbmNlICphbWRncHVfc3lu Y19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKQogCQloYXNoX2RlbCgmZS0+bm9k ZSk7CiAJCWttZW1fY2FjaGVfZnJlZShhbWRncHVfc3luY19zbGFiLCBlKTsKIAotCQlpZiAoIWZl bmNlX2lzX3NpZ25hbGVkKGYpKQorCQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChmKSkKIAkJ CXJldHVybiBmOwogCi0JCWZlbmNlX3B1dChmKTsKKwkJZG1hX2ZlbmNlX3B1dChmKTsKIAl9CiAJ cmV0dXJuIE5VTEw7CiB9CkBAIC0zMTEsMTEgKzMxMywxMSBAQCB2b2lkIGFtZGdwdV9zeW5jX2Zy ZWUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKQogCiAJaGFzaF9mb3JfZWFjaF9zYWZlKHN5bmMt PmZlbmNlcywgaSwgdG1wLCBlLCBub2RlKSB7CiAJCWhhc2hfZGVsKCZlLT5ub2RlKTsKLQkJZmVu Y2VfcHV0KGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChlLT5mZW5jZSk7CiAJCWttZW1fY2Fj aGVfZnJlZShhbWRncHVfc3luY19zbGFiLCBlKTsKIAl9CiAKLQlmZW5jZV9wdXQoc3luYy0+bGFz dF92bV91cGRhdGUpOworCWRtYV9mZW5jZV9wdXQoc3luYy0+bGFzdF92bV91cGRhdGUpOwogfQog CiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90ZXN0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IGI4Mjdj NzVlOTVkZS4uZTA1YTI0MzI1ZWViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdGVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90ZXN0LmMKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RvX3Rlc3RfbW92 ZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCXZvaWQgKmd0dF9tYXAsICp2cmFtX21h cDsKIAkJdm9pZCAqKmd0dF9zdGFydCwgKipndHRfZW5kOwogCQl2b2lkICoqdnJhbV9zdGFydCwg Kip2cmFtX2VuZDsKLQkJc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0gTlVMTDsKIAogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBzaXpl LCBQQUdFX1NJWkUsIHRydWUsCiAJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAsIE5V TEwsCkBAIC0xMTgsMTMgKzExOCwxMyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG9fdGVzdF9tb3Zl cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWdvdG8gb3V0X2xjbGVhbl91bnBpbjsK IAkJfQogCi0JCXIgPSBmZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7CisJCXIgPSBkbWFfZmVuY2Vf d2FpdChmZW5jZSwgZmFsc2UpOwogCQlpZiAocikgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g d2FpdCBmb3IgR1RULT5WUkFNIGZlbmNlICVkXG4iLCBpKTsKIAkJCWdvdG8gb3V0X2xjbGVhbl91 bnBpbjsKIAkJfQogCi0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2Up OwogCiAJCXIgPSBhbWRncHVfYm9fa21hcCh2cmFtX29iaiwgJnZyYW1fbWFwKTsKIAkJaWYgKHIp IHsKQEAgLTE2MywxMyArMTYzLDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kb190ZXN0X21vdmVz KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJZ290byBvdXRfbGNsZWFuX3VucGluOwog CQl9CiAKLQkJciA9IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJciA9IGRtYV9mZW5jZV93 YWl0KGZlbmNlLCBmYWxzZSk7CiAJCWlmIChyKSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byB3 YWl0IGZvciBWUkFNLT5HVFQgZmVuY2UgJWRcbiIsIGkpOwogCQkJZ290byBvdXRfbGNsZWFuX3Vu cGluOwogCQl9CiAKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7 CiAKIAkJciA9IGFtZGdwdV9ib19rbWFwKGd0dF9vYmpbaV0sICZndHRfbWFwKTsKIAkJaWYgKHIp IHsKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG9fdGVzdF9tb3Zlcyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWFtZGdwdV9ib191bnJlZigmZ3R0X29ialtp XSk7CiAJCX0KIAkJaWYgKGZlbmNlKQotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5j ZV9wdXQoZmVuY2UpOwogCQlicmVhazsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3RyYWNlLmgKaW5kZXggMDY3ZTVlNjgzYmIzLi5iYjk2NGE4ZmY5MzggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCkBAIC0xMDQsNyArMTA0LDcgQEAg VFJBQ0VfRVZFTlQoYW1kZ3B1X2NzX2lvY3RsLAogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRn cHVfZGV2aWNlICosIGFkZXYpCiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZF9zY2hlZF9qb2Ig Kiwgc2NoZWRfam9iKQogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRncHVfaWIgKiwgaWIpCi0J CQkgICAgIF9fZmllbGQoc3RydWN0IGZlbmNlICosIGZlbmNlKQorCQkJICAgICBfX2ZpZWxkKHN0 cnVjdCBkbWFfZmVuY2UgKiwgZmVuY2UpCiAJCQkgICAgIF9fZmllbGQoY2hhciAqLCByaW5nX25h bWUpCiAJCQkgICAgIF9fZmllbGQodTMyLCBudW1faWJzKQogCQkJICAgICApLApAQCAtMTI5LDcg KzEyOSw3IEBAIFRSQUNFX0VWRU5UKGFtZGdwdV9zY2hlZF9ydW5fam9iLAogCQkJICAgICBfX2Zp ZWxkKHN0cnVjdCBhbWRncHVfZGV2aWNlICosIGFkZXYpCiAJCQkgICAgIF9fZmllbGQoc3RydWN0 IGFtZF9zY2hlZF9qb2IgKiwgc2NoZWRfam9iKQogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRn cHVfaWIgKiwgaWIpCi0JCQkgICAgIF9fZmllbGQoc3RydWN0IGZlbmNlICosIGZlbmNlKQorCQkJ ICAgICBfX2ZpZWxkKHN0cnVjdCBkbWFfZmVuY2UgKiwgZmVuY2UpCiAJCQkgICAgIF9fZmllbGQo Y2hhciAqLCByaW5nX25hbWUpCiAJCQkgICAgIF9fZmllbGQodTMyLCBudW1faWJzKQogCQkJICAg ICApLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCmluZGV4IDg4NzQ4M2I4 YjgxOC4uYjg4OGYyNDkyZDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCkBAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7CiAJ c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCXVpbnQ2NF90IG9sZF9zdGFydCwgbmV3X3N0YXJ0 OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50 IHI7CiAKIAlhZGV2ID0gYW1kZ3B1X2dldF9hZGV2KGJvLT5iZGV2KTsKQEAgLTMxNiw3ICszMTYs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAkJcmV0dXJuIHI7CiAKIAlyID0gdHRtX2JvX3BpcGVsaW5lX21vdmUoYm8sIGZlbmNl LCBldmljdCwgbmV3X21lbSk7Ci0JZmVuY2VfcHV0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGZl bmNlKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgaW50IGFtZGdwdV9j b3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCSAgICAgICB1aW50NjRfdCBk c3Rfb2Zmc2V0LAogCQkgICAgICAgdWludDMyX3QgYnl0ZV9jb3VudCwKIAkJICAgICAgIHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0JCSAgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5j ZSwgYm9vbCBkaXJlY3Rfc3VibWl0KQorCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNl LCBib29sIGRpcmVjdF9zdWJtaXQpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBy aW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CkBAIC0xMjkxLDcgKzEyOTEsNyBA QCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlpZiAo ZGlyZWN0X3N1Ym1pdCkgewogCQlyID0gYW1kZ3B1X2liX3NjaGVkdWxlKHJpbmcsIGpvYi0+bnVt X2licywgam9iLT5pYnMsCiAJCQkJICAgICAgIE5VTEwsIE5VTEwsIGZlbmNlKTsKLQkJam9iLT5m ZW5jZSA9IGZlbmNlX2dldCgqZmVuY2UpOworCQlqb2ItPmZlbmNlID0gZG1hX2ZlbmNlX2dldCgq ZmVuY2UpOwogCQlpZiAocikKIAkJCURSTV9FUlJPUigiRXJyb3Igc2NoZWR1bGluZyBJQnMgKCVk KVxuIiwgcik7CiAJCWFtZGdwdV9qb2JfZnJlZShqb2IpOwpAQCAtMTMxMiw3ICsxMzEyLDcgQEAg aW50IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiBpbnQgYW1k Z3B1X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQl1aW50MzJfdCBzcmNfZGF0 YSwKIAkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJc3RydWN0IGZlbmNlICoq ZmVuY2UpCisJCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IGJvLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKaW5kZXggOTgxMmM4MDUzMjZjLi4zZjI5M2Ux ODkzNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0u aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKQEAgLTc3LDEx ICs3NywxMSBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKIAkJICAgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCSAgICAgICB1aW50MzJfdCBieXRl X2NvdW50LAogCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJICAg ICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQpOworCQkgICAgICAg c3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQpOwogaW50IGFtZGdw dV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCXVpbnQzMl90IHNyY19kYXRh LAogCQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJCXN0cnVjdCBmZW5jZSAq KmZlbmNlKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiAKIGludCBhbWRncHVfbW1h cChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogYm9vbCBh bWRncHVfdHRtX2lzX2JvdW5kKHN0cnVjdCB0dG1fdHQgKnR0bSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdXZkLmMKaW5kZXggZTMyODFjYWNjNTg2Li4wZjY1NzVlN2VmOGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKQEAgLTMzMyw3ICszMzMsNyBA QCB2b2lkIGFtZGdwdV91dmRfZnJlZV9oYW5kbGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnV2ZC5tYXhf aGFuZGxlczsgKytpKSB7CiAJCXVpbnQzMl90IGhhbmRsZSA9IGF0b21pY19yZWFkKCZhZGV2LT51 dmQuaGFuZGxlc1tpXSk7CiAJCWlmIChoYW5kbGUgIT0gMCAmJiBhZGV2LT51dmQuZmlscFtpXSA9 PSBmaWxwKSB7Ci0JCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQkJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7CiAKIAkJCXIgPSBhbWRncHVfdXZkX2dldF9kZXN0cm95X21zZyhyaW5nLCBoYW5kbGUs CiAJCQkJCQkgICAgICAgZmFsc2UsICZmZW5jZSk7CkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCBh bWRncHVfdXZkX2ZyZWVfaGFuZGxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0 IGRybV9maWxlICpmaWxwKQogCQkJCWNvbnRpbnVlOwogCQkJfQogCi0JCQlmZW5jZV93YWl0KGZl bmNlLCBmYWxzZSk7Ci0JCQlmZW5jZV9wdXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3dhaXQoZmVu Y2UsIGZhbHNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCiAJCQlhZGV2LT51dmQuZmls cFtpXSA9IE5VTEw7CiAJCQlhdG9taWNfc2V0KCZhZGV2LT51dmQuaGFuZGxlc1tpXSwgMCk7CkBA IC05MDksMTQgKzkwOSwxNCBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3BhcnNlX2NzKHN0cnVjdCBh bWRncHVfY3NfcGFyc2VyICpwYXJzZXIsIHVpbnQzMl90IGliX2lkeCkKIH0KIAogc3RhdGljIGlu dCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFt ZGdwdV9ibyAqYm8sCi0JCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBmZW5jZSAqKmZlbmNl KQorCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJ c3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7CiAJc3RydWN0IHd3X2FjcXVpcmVfY3R4IHRp Y2tldDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsK IAlzdHJ1Y3QgYW1kZ3B1X2liICppYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVj dCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmlu Zy0+YWRldjsKIAl1aW50NjRfdCBhZGRyOwogCWludCBpLCByOwpAQCAtOTYwLDcgKzk2MCw3IEBA IHN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCiAJaWYgKGRpcmVjdCkgewogCQlyID0gYW1kZ3B1X2li X3NjaGVkdWxlKHJpbmcsIDEsIGliLCBOVUxMLCBOVUxMLCAmZik7Ci0JCWpvYi0+ZmVuY2UgPSBm ZW5jZV9nZXQoZik7CisJCWpvYi0+ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwogCQlpZiAocikK IAkJCWdvdG8gZXJyX2ZyZWU7CiAKQEAgLTk3NSw5ICs5NzUsOSBAQCBzdGF0aWMgaW50IGFtZGdw dV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2Jv ICpibywKIAl0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoJnRpY2tldCwgJmhlYWQsIGYpOwog CiAJaWYgKGZlbmNlKQotCQkqZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJCSpmZW5jZSA9IGRtYV9m ZW5jZV9nZXQoZik7CiAJYW1kZ3B1X2JvX3VucmVmKCZibyk7Ci0JZmVuY2VfcHV0KGYpOworCWRt YV9mZW5jZV9wdXQoZik7CiAKIAlyZXR1cm4gMDsKIApAQCAtOTkzLDcgKzk5Myw3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVj dCBhbWRncHVfYm8gKmJvLAogICAgY3Jhc2ggdGhlIHZjcHUgc28ganVzdCB0cnkgdG8gZW1taXQg YSBkdW1teSBjcmVhdGUvZGVzdHJveSBtc2cgdG8KICAgIGF2b2lkIHRoaXMgKi8KIGludCBhbWRn cHVfdXZkX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3Qg aGFuZGxlLAotCQkJICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5n LT5hZGV2OwogCXN0cnVjdCBhbWRncHVfYm8gKmJvOwpAQCAtMTA0Miw3ICsxMDQyLDcgQEAgaW50 IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50 MzJfdCBoYW5kbGUsCiB9CiAKIGludCBhbWRncHVfdXZkX2dldF9kZXN0cm95X21zZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKLQkJCSAgICAgICBib29sIGRpcmVj dCwgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmct PmFkZXY7CiAJc3RydWN0IGFtZGdwdV9ibyAqYm87CkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2b2lk IGFtZGdwdV91dmRfcmluZ19lbmRfdXNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqLwog aW50IGFtZGdwdV91dmRfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9u ZyB0aW1lb3V0KQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7CiAJbG9uZyByOwogCiAJciA9IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2cocmluZywg MSwgTlVMTCk7CkBAIC0xMTQzLDcgKzExNDMsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rlc3Rf aWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJCWdvdG8gZXJyb3I7 CiAJfQogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQpOwor CXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBmYWxzZSwgdGltZW91dCk7CiAJaWYg KHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFtZGdwdTogSUIgdGVzdCB0aW1lZCBvdXQuXG4iKTsK IAkJciA9IC1FVElNRURPVVQ7CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9y aW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJCXIg PSAwOwogCX0KIAotCWZlbmNlX3B1dChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAK IGVycm9yOgogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3V2ZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5o CmluZGV4IGM4NTAwMDk2MDJkMS4uNjI0OWJhMWJkZTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3V2ZC5oCkBAIC0yOSw5ICsyOSw5IEBAIGludCBhbWRncHVfdXZkX3N3X2Zp bmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFtZGdwdV91dmRfc3VzcGVuZChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X3V2ZF9yZXN1bWUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCi0JCQkgICAgICBzdHJ1Y3Qg ZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwogaW50 IGFtZGdwdV91dmRfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWlu dDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZmVuY2UgKipmZW5j ZSk7CisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiB2 b2lkIGFtZGdwdV91dmRfZnJlZV9oYW5kbGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogaW50IGFtZGdwdV91dmRfcmluZ19wYXJz ZV9jcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLCB1aW50MzJfdCBpYl9pZHgpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCmluZGV4IDdmZThmZDg4NGYwNi4u ZjBmOGFmYjg1NTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCkBA IC0zOTUsMTIgKzM5NSwxMiBAQCB2b2lkIGFtZGdwdV92Y2VfZnJlZV9oYW5kbGVzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAgKiBPcGVuIHVwIGEg c3RyZWFtIGZvciBIVyB0ZXN0CiAgKi8KIGludCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgc3RydWN0 IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJ Y29uc3QgdW5zaWduZWQgaWJfc2l6ZV9kdyA9IDEwMjQ7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpv YjsKIAlzdHJ1Y3QgYW1kZ3B1X2liICppYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0 cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQ2NF90IGR1bW15OwogCWludCBpLCByOwog CkBAIC00NTAsMTQgKzQ1MCwxNCBAQCBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRlX21zZyhzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKIAkJaWItPnB0cltpXSA9IDB4 MDsKIAogCXIgPSBhbWRncHVfaWJfc2NoZWR1bGUocmluZywgMSwgaWIsIE5VTEwsIE5VTEwsICZm KTsKLQlqb2ItPmZlbmNlID0gZmVuY2VfZ2V0KGYpOworCWpvYi0+ZmVuY2UgPSBkbWFfZmVuY2Vf Z2V0KGYpOwogCWlmIChyKQogCQlnb3RvIGVycjsKIAogCWFtZGdwdV9qb2JfZnJlZShqb2IpOwog CWlmIChmZW5jZSkKLQkJKmZlbmNlID0gZmVuY2VfZ2V0KGYpOwotCWZlbmNlX3B1dChmKTsKKwkJ KmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogCXJldHVybiAw OwogCiBlcnI6CkBAIC00NzYsMTIgKzQ3NiwxMiBAQCBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRl X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKICAqIENsb3Nl IHVwIGEgc3RyZWFtIGZvciBIVyB0ZXN0IG9yIGlmIHVzZXJzcGFjZSBmYWlsZWQgdG8gZG8gc28K ICAqLwogaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZmVu Y2UgKipmZW5jZSkKKwkJCSAgICAgICBib29sIGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZl bmNlKQogewogCWNvbnN0IHVuc2lnbmVkIGliX3NpemVfZHcgPSAxMDI0OwogCXN0cnVjdCBhbWRn cHVfam9iICpqb2I7CiAJc3RydWN0IGFtZGdwdV9pYiAqaWI7Ci0Jc3RydWN0IGZlbmNlICpmID0g TlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAlpbnQgaSwgcjsKIAogCXIgPSBh bWRncHVfam9iX2FsbG9jX3dpdGhfaWIocmluZy0+YWRldiwgaWJfc2l6ZV9kdyAqIDQsICZqb2Ip OwpAQCAtNTEzLDcgKzUxMyw3IEBAIGludCBhbWRncHVfdmNlX2dldF9kZXN0cm95X21zZyhzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKIAogCWlmIChkaXJlY3QpIHsK IAkJciA9IGFtZGdwdV9pYl9zY2hlZHVsZShyaW5nLCAxLCBpYiwgTlVMTCwgTlVMTCwgJmYpOwot CQlqb2ItPmZlbmNlID0gZmVuY2VfZ2V0KGYpOworCQlqb2ItPmZlbmNlID0gZG1hX2ZlbmNlX2dl dChmKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGVycjsKIApAQCAtNTI2LDggKzUyNiw4IEBAIGludCBh bWRncHVfdmNlX2dldF9kZXN0cm95X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQz Ml90IGhhbmRsZSwKIAl9CiAKIAlpZiAoZmVuY2UpCi0JCSpmZW5jZSA9IGZlbmNlX2dldChmKTsK LQlmZW5jZV9wdXQoZik7CisJCSpmZW5jZSA9IGRtYV9mZW5jZV9nZXQoZik7CisJZG1hX2ZlbmNl X3B1dChmKTsKIAlyZXR1cm4gMDsKIAogZXJyOgpAQCAtODgzLDcgKzg4Myw3IEBAIGludCBhbWRn cHVfdmNlX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqLwogaW50 IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0 aW1lb3V0KQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlID0gTlVMTDsKIAlsb25nIHI7CiAKIAkvKiBza2lwIHZjZSByaW5nMS8yIGliIHRl c3QgZm9yIG5vdywgc2luY2UgaXQncyBub3QgcmVsaWFibGUgKi8KQEAgLTkwMiw3ICs5MDIsNyBA QCBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBs b25nIHRpbWVvdXQpCiAJCWdvdG8gZXJyb3I7CiAJfQogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91 dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZl bmNlLCBmYWxzZSwgdGltZW91dCk7CiAJaWYgKHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFtZGdw dTogSUIgdGVzdCB0aW1lZCBvdXQuXG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC05MTMsNiAr OTEzLDYgQEAgaW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywgbG9uZyB0aW1lb3V0KQogCQlyID0gMDsKIAl9CiBlcnJvcjoKLQlmZW5jZV9wdXQoZmVu Y2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiByOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCmluZGV4IDEyNzI5ZDI4NTJkZi4uNTY2YzI5ZGRlZWI2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCkBAIC0yOSw5ICsyOSw5 IEBAIGludCBhbWRncHVfdmNlX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwog aW50IGFtZGdwdV92Y2Vfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQg YW1kZ3B1X3ZjZV9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFtZGdw dV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBo YW5kbGUsCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZmVuY2UpOwogaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wgZGly ZWN0LCBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVj dCBkbWFfZmVuY2UgKipmZW5jZSk7CiB2b2lkIGFtZGdwdV92Y2VfZnJlZV9oYW5kbGVzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogaW50IGFtZGdw dV92Y2VfcmluZ19wYXJzZV9jcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdWludDMyX3Qg aWJfaWR4KTsKIHZvaWQgYW1kZ3B1X3ZjZV9yaW5nX2VtaXRfaWIoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2liICppYiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmMKaW5kZXggMDZmMjQzMjJlN2MzLi4zMTcxM2YxODIwOGYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCkBAIC0yNSw3ICsyNSw3IEBACiAgKiAgICAgICAgICBB bGV4IERldWNoZXIKICAqICAgICAgICAgIEplcm9tZSBHbGlzc2UKICAqLwotI2luY2x1ZGUgPGxp bnV4L2ZlbmNlLWFycmF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+CiAj aW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vYW1kZ3B1X2RybS5oPgogI2luY2x1 ZGUgImFtZGdwdS5oIgpAQCAtMTk0LDE0ICsxOTQsMTQgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3Zt X2lzX2dwdV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKICAqIEFsbG9jYXRlIGFu IGlkIGZvciB0aGUgdm0sIGFkZGluZyBmZW5jZXMgdG8gdGhlIHN5bmMgb2JqIGFzIG5lY2Vzc2Fy eS4KICAqLwogaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCSAgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywg c3RydWN0IGZlbmNlICpmZW5jZSwKKwkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLCBz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYikK IHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJdWludDY0X3Qg ZmVuY2VfY29udGV4dCA9IGFkZXYtPmZlbmNlX2NvbnRleHQgKyByaW5nLT5pZHg7Ci0Jc3RydWN0 IGZlbmNlICp1cGRhdGVzID0gc3luYy0+bGFzdF92bV91cGRhdGU7CisJc3RydWN0IGRtYV9mZW5j ZSAqdXBkYXRlcyA9IHN5bmMtPmxhc3Rfdm1fdXBkYXRlOwogCXN0cnVjdCBhbWRncHVfdm1faWQg KmlkLCAqaWRsZTsKLQlzdHJ1Y3QgZmVuY2UgKipmZW5jZXM7CisJc3RydWN0IGRtYV9mZW5jZSAq KmZlbmNlczsKIAl1bnNpZ25lZCBpOwogCWludCByID0gMDsKIApAQCAtMjI1LDE3ICsyMjUsMTcg QEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcsCiAJaWYgKCZpZGxlLT5saXN0ID09ICZhZGV2LT52bV9tYW5hZ2VyLmlk c19scnUpIHsKIAkJdTY0IGZlbmNlX2NvbnRleHQgPSBhZGV2LT52bV9tYW5hZ2VyLmZlbmNlX2Nv bnRleHQgKyByaW5nLT5pZHg7CiAJCXVuc2lnbmVkIHNlcW5vID0gKythZGV2LT52bV9tYW5hZ2Vy LnNlcW5vW3JpbmctPmlkeF07Ci0JCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXk7CisJCXN0cnVj dCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5OwogCQl1bnNpZ25lZCBqOwogCiAJCWZvciAoaiA9IDA7 IGogPCBpOyArK2opCi0JCQlmZW5jZV9nZXQoZmVuY2VzW2pdKTsKKwkJCWRtYV9mZW5jZV9nZXQo ZmVuY2VzW2pdKTsKIAotCQlhcnJheSA9IGZlbmNlX2FycmF5X2NyZWF0ZShpLCBmZW5jZXMsIGZl bmNlX2NvbnRleHQsCisJCWFycmF5ID0gZG1hX2ZlbmNlX2FycmF5X2NyZWF0ZShpLCBmZW5jZXMs IGZlbmNlX2NvbnRleHQsCiAJCQkJCSAgIHNlcW5vLCB0cnVlKTsKIAkJaWYgKCFhcnJheSkgewog CQkJZm9yIChqID0gMDsgaiA8IGk7ICsraikKLQkJCQlmZW5jZV9wdXQoZmVuY2VzW2pdKTsKKwkJ CQlkbWFfZmVuY2VfcHV0KGZlbmNlc1tqXSk7CiAJCQlrZnJlZShmZW5jZXMpOwogCQkJciA9IC1F Tk9NRU07CiAJCQlnb3RvIGVycm9yOwpAQCAtMjQzLDcgKzI0Myw3IEBAIGludCBhbWRncHVfdm1f Z3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAog CiAKIAkJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKHJpbmctPmFkZXYsIHN5bmMsICZhcnJheS0+YmFz ZSk7Ci0JCWZlbmNlX3B1dCgmYXJyYXktPmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZhcnJheS0+ YmFzZSk7CiAJCWlmIChyKQogCQkJZ290byBlcnJvcjsKIApAQCAtMjU3LDcgKzI1Nyw3IEBAIGlu dCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAogCS8qIENoZWNrIGlmIHdlIGNhbiB1c2UgYSBWTUlEIGFscmVhZHkgYXNzaWdu ZWQgdG8gdGhpcyBWTSAqLwogCWkgPSByaW5nLT5pZHg7CiAJZG8gewotCQlzdHJ1Y3QgZmVuY2Ug KmZsdXNoZWQ7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZsdXNoZWQ7CiAKIAkJaWQgPSB2bS0+aWRz W2krK107CiAJCWlmIChpID09IEFNREdQVV9NQVhfUklOR1MpCkBAIC0yNzksMTIgKzI3OSwxMSBA QCBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFtZGdwdV92bSAqdm0sIHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChpZC0+bGFzdF9mbHVzaC0+Y29u dGV4dCAhPSBmZW5jZV9jb250ZXh0ICYmCi0JCSAgICAhZmVuY2VfaXNfc2lnbmFsZWQoaWQtPmxh c3RfZmx1c2gpKQotCQkJY29udGludWU7CisJCSAgICAhZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGlk LT5sYXN0X2ZsdXNoKSkKIAogCQlmbHVzaGVkICA9IGlkLT5mbHVzaGVkX3VwZGF0ZXM7CiAJCWlm ICh1cGRhdGVzICYmCi0JCSAgICAoIWZsdXNoZWQgfHwgZmVuY2VfaXNfbGF0ZXIodXBkYXRlcywg Zmx1c2hlZCkpKQorCQkgICAgKCFmbHVzaGVkIHx8IGRtYV9mZW5jZV9pc19sYXRlcih1cGRhdGVz LCBmbHVzaGVkKSkpCiAJCQljb250aW51ZTsKIAogCQkvKiBHb29kIHdlIGNhbiB1c2UgdGhpcyBW TUlELiBSZW1lbWJlciB0aGlzIHN1Ym1pc3Npb24gYXMKQEAgLTMxNSwxNCArMzE0LDE0IEBAIGlu dCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAogCWlmIChyKQogCQlnb3RvIGVycm9yOwogCi0JZmVuY2VfcHV0KGlkLT5maXJz dCk7Ci0JaWQtPmZpcnN0ID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGlkLT5m aXJzdCk7CisJaWQtPmZpcnN0ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKLQlmZW5jZV9wdXQo aWQtPmxhc3RfZmx1c2gpOworCWRtYV9mZW5jZV9wdXQoaWQtPmxhc3RfZmx1c2gpOwogCWlkLT5s YXN0X2ZsdXNoID0gTlVMTDsKIAotCWZlbmNlX3B1dChpZC0+Zmx1c2hlZF91cGRhdGVzKTsKLQlp ZC0+Zmx1c2hlZF91cGRhdGVzID0gZmVuY2VfZ2V0KHVwZGF0ZXMpOworCWRtYV9mZW5jZV9wdXQo aWQtPmZsdXNoZWRfdXBkYXRlcyk7CisJaWQtPmZsdXNoZWRfdXBkYXRlcyA9IGRtYV9mZW5jZV9n ZXQodXBkYXRlcyk7CiAKIAlpZC0+cGRfZ3B1X2FkZHIgPSBqb2ItPnZtX3BkX2FkZHI7CiAJaWQt PmN1cnJlbnRfZ3B1X3Jlc2V0X2NvdW50ID0gYXRvbWljX3JlYWQoJmFkZXYtPmdwdV9yZXNldF9j b3VudGVyKTsKQEAgLTM5Myw3ICszOTIsNyBAQCBpbnQgYW1kZ3B1X3ZtX2ZsdXNoKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYikKIAogCWlmIChyaW5nLT5m dW5jcy0+ZW1pdF92bV9mbHVzaCAmJiAoam9iLT52bV9uZWVkc19mbHVzaCB8fAogCSAgICBhbWRn cHVfdm1faXNfZ3B1X3Jlc2V0KGFkZXYsIGlkKSkpIHsKLQkJc3RydWN0IGZlbmNlICpmZW5jZTsK KwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJdHJhY2VfYW1kZ3B1X3ZtX2ZsdXNoKGpv Yi0+dm1fcGRfYWRkciwgcmluZy0+aWR4LCBqb2ItPnZtX2lkKTsKIAkJYW1kZ3B1X3JpbmdfZW1p dF92bV9mbHVzaChyaW5nLCBqb2ItPnZtX2lkLCBqb2ItPnZtX3BkX2FkZHIpOwpAQCAtNDAzLDcg KzQwMiw3IEBAIGludCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBz dHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQogCQkJcmV0dXJuIHI7CiAKIAkJbXV0ZXhfbG9jaygmYWRl di0+dm1fbWFuYWdlci5sb2NrKTsKLQkJZmVuY2VfcHV0KGlkLT5sYXN0X2ZsdXNoKTsKKwkJZG1h X2ZlbmNlX3B1dChpZC0+bGFzdF9mbHVzaCk7CiAJCWlkLT5sYXN0X2ZsdXNoID0gZmVuY2U7CiAJ CW11dGV4X3VubG9jaygmYWRldi0+dm1fbWFuYWdlci5sb2NrKTsKIAl9CkBAIC01MzcsNyArNTM2 LDcgQEAgc3RhdGljIGludCBhbWRncHVfdm1fY2xlYXJfYm8oc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCiAJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibykKIHsKIAlzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmc7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UgPSBOVUxMOwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CiAJc3RydWN0IGFt ZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyBwYXJhbXM7CiAJdW5zaWduZWQgZW50cmllczsKQEAgLTU3 OCw3ICs1NzcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVhcl9ibyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKIAkJZ290byBlcnJvcl9mcmVlOwogCiAJYW1kZ3B1X2JvX2ZlbmNlKGJv LCBmZW5jZSwgdHJ1ZSk7Ci0JZmVuY2VfcHV0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGZlbmNl KTsKIAlyZXR1cm4gMDsKIAogZXJyb3JfZnJlZToKQEAgLTYyNSw3ICs2MjQsNyBAQCBzdGF0aWMg aW50IGFtZGdwdV92bV91cGRhdGVfcGRfb3Jfc2hhZG93KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAogCXVuc2lnbmVkIGNvdW50ID0gMCwgcHRfaWR4LCBuZHc7CiAJc3RydWN0IGFtZGdwdV9q b2IgKmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKLQlzdHJ1 Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7 CiAKIAlpbnQgcjsKIApAQCAtNzE0LDkgKzcxMyw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3Vw ZGF0ZV9wZF9vcl9zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlnb3RvIGVy cm9yX2ZyZWU7CiAKIAkJYW1kZ3B1X2JvX2ZlbmNlKHBkLCBmZW5jZSwgdHJ1ZSk7Ci0JCWZlbmNl X3B1dCh2bS0+cGFnZV9kaXJlY3RvcnlfZmVuY2UpOwotCQl2bS0+cGFnZV9kaXJlY3RvcnlfZmVu Y2UgPSBmZW5jZV9nZXQoZmVuY2UpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlkbWFfZmVuY2Vf cHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7CisJCXZtLT5wYWdlX2RpcmVjdG9yeV9mZW5j ZSA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAogCX0g ZWxzZSB7CiAJCWFtZGdwdV9qb2JfZnJlZShqb2IpOwpAQCAtOTI5LDIwICs5MjgsMjAgQEAgc3Rh dGljIHZvaWQgYW1kZ3B1X3ZtX2ZyYWdfcHRlcyhzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFy YW1zCSpwYXJhbXMsCiAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIC1FSU5WQUwgZm9yIGZhaWx1 cmUuCiAgKi8KIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZmVuY2UgKmV4Y2x1c2l2ZSwK KwkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZXhjbHVzaXZlLAogCQkJCSAgICAgICB1aW50 NjRfdCBzcmMsCiAJCQkJICAgICAgIGRtYV9hZGRyX3QgKnBhZ2VzX2FkZHIsCiAJCQkJICAgICAg IHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJCSAgICAgICB1aW50NjRfdCBzdGFydCwgdWludDY0 X3QgbGFzdCwKIAkJCQkgICAgICAgdWludDMyX3QgZmxhZ3MsIHVpbnQ2NF90IGFkZHIsCi0JCQkJ ICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlKQorCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2UpCiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCXZvaWQgKm93bmVyID0g QU1ER1BVX0ZFTkNFX09XTkVSX1ZNOwogCXVuc2lnbmVkIG5wdGVzLCBuY21kcywgbmR3OwogCXN0 cnVjdCBhbWRncHVfam9iICpqb2I7CiAJc3RydWN0IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyBw YXJhbXM7Ci0Jc3RydWN0IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0g TlVMTDsKIAlpbnQgcjsKIAogCW1lbXNldCgmcGFyYW1zLCAwLCBzaXplb2YocGFyYW1zKSk7CkBA IC0xMDQ1LDEwICsxMDQ0LDEwIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBw aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJYW1kZ3B1X2JvX2ZlbmNlKHZtLT5w YWdlX2RpcmVjdG9yeSwgZiwgdHJ1ZSk7CiAJaWYgKGZlbmNlKSB7Ci0JCWZlbmNlX3B1dCgqZmVu Y2UpOwotCQkqZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJCWRtYV9mZW5jZV9wdXQoKmZlbmNlKTsK KwkJKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKIAl9Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9m ZW5jZV9wdXQoZik7CiAJcmV0dXJuIDA7CiAKIGVycm9yX2ZyZWU6CkBAIC0xMDc0LDEzICsxMDcz LDEzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCAtRUlOVkFMIGZvciBm YWlsdXJlLgogICovCiBzdGF0aWMgaW50IGFtZGdwdV92bV9ib19zcGxpdF9tYXBwaW5nKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZXhjbHVzaXZl LAorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmV4Y2x1c2l2ZSwKIAkJCQkgICAgICB1aW50 MzJfdCBndHRfZmxhZ3MsCiAJCQkJICAgICAgZG1hX2FkZHJfdCAqcGFnZXNfYWRkciwKIAkJCQkg ICAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKIAkJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvX3Zh X21hcHBpbmcgKm1hcHBpbmcsCiAJCQkJICAgICAgdWludDMyX3QgZmxhZ3MsIHVpbnQ2NF90IGFk ZHIsCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkJICAgICAgc3RydWN0IGRt YV9mZW5jZSAqKmZlbmNlKQogewogCWNvbnN0IHVpbnQ2NF90IG1heF9zaXplID0gNjRVTEwgKiAx MDI0VUxMICogMTAyNFVMTCAvIEFNREdQVV9HUFVfUEFHRV9TSVpFOwogCkBAIC0xMTQ3LDcgKzEx NDYsNyBAQCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKIAlkbWFfYWRkcl90ICpwYWdlc19hZGRyID0gTlVMTDsKIAl1aW50MzJfdCBndHRfZmxhZ3Ms IGZsYWdzOwogCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtOwotCXN0cnVjdCBmZW5jZSAqZXhjbHVz aXZlOworCXN0cnVjdCBkbWFfZmVuY2UgKmV4Y2x1c2l2ZTsKIAl1aW50NjRfdCBhZGRyOwogCWlu dCByOwogCkBAIC0xNTQ3LDcgKzE1NDYsNyBAQCB2b2lkIGFtZGdwdV92bV9ib19ybXYoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCWtmcmVlKG1hcHBpbmcpOwogCX0KIAotCWZlbmNlX3B1 dChib192YS0+bGFzdF9wdF91cGRhdGUpOworCWRtYV9mZW5jZV9wdXQoYm9fdmEtPmxhc3RfcHRf dXBkYXRlKTsKIAlrZnJlZShib192YSk7CiB9CiAKQEAgLTE3MDksNyArMTcwOCw3IEBAIHZvaWQg YW1kZ3B1X3ZtX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVf dm0gKnZtKQogCiAJYW1kZ3B1X2JvX3VucmVmKCZ2bS0+cGFnZV9kaXJlY3RvcnktPnNoYWRvdyk7 CiAJYW1kZ3B1X2JvX3VucmVmKCZ2bS0+cGFnZV9kaXJlY3RvcnkpOwotCWZlbmNlX3B1dCh2bS0+ cGFnZV9kaXJlY3RvcnlfZmVuY2UpOworCWRtYV9mZW5jZV9wdXQodm0tPnBhZ2VfZGlyZWN0b3J5 X2ZlbmNlKTsKIH0KIAogLyoqCkBAIC0xNzMzLDcgKzE3MzIsOCBAQCB2b2lkIGFtZGdwdV92bV9t YW5hZ2VyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkgICAgICAmYWRldi0+ dm1fbWFuYWdlci5pZHNfbHJ1KTsKIAl9CiAKLQlhZGV2LT52bV9tYW5hZ2VyLmZlbmNlX2NvbnRl eHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKEFNREdQVV9NQVhfUklOR1MpOworCWFkZXYtPnZtX21h bmFnZXIuZmVuY2VfY29udGV4dCA9CisJCWRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKEFNREdQVV9N QVhfUklOR1MpOwogCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpCiAJCWFk ZXYtPnZtX21hbmFnZXIuc2Vxbm9baV0gPSAwOwogCkBAIC0xNzU1LDggKzE3NTUsOCBAQCB2b2lk IGFtZGdwdV92bV9tYW5hZ2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJZm9y IChpID0gMDsgaSA8IEFNREdQVV9OVU1fVk07ICsraSkgewogCQlzdHJ1Y3QgYW1kZ3B1X3ZtX2lk ICppZCA9ICZhZGV2LT52bV9tYW5hZ2VyLmlkc1tpXTsKIAotCQlmZW5jZV9wdXQoYWRldi0+dm1f bWFuYWdlci5pZHNbaV0uZmlyc3QpOworCQlkbWFfZmVuY2VfcHV0KGFkZXYtPnZtX21hbmFnZXIu aWRzW2ldLmZpcnN0KTsKIAkJYW1kZ3B1X3N5bmNfZnJlZSgmYWRldi0+dm1fbWFuYWdlci5pZHNb aV0uYWN0aXZlKTsKLQkJZmVuY2VfcHV0KGlkLT5mbHVzaGVkX3VwZGF0ZXMpOworCQlkbWFfZmVu Y2VfcHV0KGlkLT5mbHVzaGVkX3VwZGF0ZXMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9jaWtfc2RtYS5jCmluZGV4IGNiOTUyYWNjNzEzMy4uMzIxYjlkNWE0ZTZlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKQEAgLTYyMiw3ICs2MjIsNyBAQCBzdGF0aWMgaW50 IGNpa19zZG1hX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGlt ZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3Ry dWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFf ZmVuY2UgKmYgPSBOVUxMOwogCXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2NCBn cHVfYWRkcjsKQEAgLTY1NSw3ICs2NTUsNyBAQCBzdGF0aWMgaW50IGNpa19zZG1hX3JpbmdfdGVz dF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikKIAkJ Z290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7 CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlmIChy ID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsKIAkJ ciA9IC1FVElNRURPVVQ7CkBAIC02NzUsNyArNjc1LDcgQEAgc3RhdGljIGludCBjaWtfc2RtYV9y aW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAKIGVy cjE6CiAJYW1kZ3B1X2liX2ZyZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7CisJ ZG1hX2ZlbmNlX3B1dChmKTsKIGVycjA6CiAJYW1kZ3B1X3diX2ZyZWUoYWRldiwgaW5kZXgpOwog CXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2 XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92Nl8wLmMKaW5kZXggNDBhYmI2 YjgxYzA5Li43ZGMxMWExOWU0OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dmeF92Nl8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAu YwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3RfaWIo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiB7CiAJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfaWIgaWI7Ci0Jc3Ry dWN0IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAl1aW50 MzJfdCBzY3JhdGNoOwogCXVpbnQzMl90IHRtcCA9IDA7CiAJbG9uZyByOwpAQCAtMTU0OCw3ICsx NTQ4LDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMjsKIAotCXIgPSBm ZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vfd2Fp dF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9FUlJP UigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7CiAJCXIgPSAtRVRJTUVET1VUOwpAQCAt MTU2OSw3ICsxNTY5LDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3RfaWIoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAKIGVycjI6CiAJYW1kZ3B1X2liX2Zy ZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsK IGVycjE6CiAJYW1kZ3B1X2dmeF9zY3JhdGNoX2ZyZWUoYWRldiwgc2NyYXRjaCk7CiAJcmV0dXJu IHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwppbmRleCA3MTExNmRhOWU3ODIu LjM4NjVmZmU3ZGU1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y3XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCkBAIC0y Mjg2LDcgKzIyODYsNyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVu Y2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQzMl90IHNj cmF0Y2g7CiAJdWludDMyX3QgdG1wID0gMDsKIAlsb25nIHI7CkBAIC0yMzEyLDcgKzIzMTIsNyBA QCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikKIAkJZ290byBlcnIyOwogCi0JciA9IGZlbmNlX3dh aXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVv dXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRn cHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC0yMzMzLDcg KzIzMzMsNyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAogZXJyMjoKIAlhbWRncHVfaWJfZnJlZShhZGV2 LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogZXJyMToK IAlhbWRncHVfZ2Z4X3NjcmF0Y2hfZnJlZShhZGV2LCBzY3JhdGNoKTsKIAlyZXR1cm4gcjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCmluZGV4IGVlNmE0OGEwOTIxNC4uYTlkZDE4 ODQ3YzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKQEAgLTc5OCw3ICs3 OTgsNyBAQCBzdGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBO VUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQzMl90IHNjcmF0Y2g7CiAJ dWludDMyX3QgdG1wID0gMDsKIAlsb25nIHI7CkBAIC04MjQsNyArODI0LDcgQEAgc3RhdGljIGlu dCBnZnhfdjhfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRp bWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMjsKIAotCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQo ZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNl LCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0 IHRpbWVkIG91dC5cbiIpOwogCQlyID0gLUVUSU1FRE9VVDsKQEAgLTg0NCw3ICs4NDQsNyBAQCBz dGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IGxvbmcgdGltZW91dCkKIAl9CiBlcnIyOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwgTlVM TCk7Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiBlcnIxOgogCWFtZGdwdV9n Znhfc2NyYXRjaF9mcmVlKGFkZXYsIHNjcmF0Y2gpOwogCXJldHVybiByOwpAQCAtMTU3NSw3ICsx NTc1LDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9kb19lZGNfZ3ByX3dvcmthcm91bmRzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZh ZGV2LT5nZnguY29tcHV0ZV9yaW5nWzBdOwogCXN0cnVjdCBhbWRncHVfaWIgaWI7Ci0Jc3RydWN0 IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAlpbnQgciwg aTsKIAl1MzIgdG1wOwogCXVuc2lnbmVkIHRvdGFsX3NpemUsIHZncHJfb2Zmc2V0LCBzZ3ByX29m ZnNldDsKQEAgLTE3MDgsNyArMTcwOCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfZG9fZWRjX2dw cl93b3JrYXJvdW5kcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiAKIAkvKiB3YWl0 IGZvciB0aGUgR1BVIHRvIGZpbmlzaCBwcm9jZXNzaW5nIHRoZSBJQiAqLwotCXIgPSBmZW5jZV93 YWl0KGYsIGZhbHNlKTsKKwlyID0gZG1hX2ZlbmNlX3dhaXQoZiwgZmFsc2UpOwogCWlmIChyKSB7 CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7CiAJ CWdvdG8gZmFpbDsKQEAgLTE3MjksNyArMTcyOSw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfZG9f ZWRjX2dwcl93b3JrYXJvdW5kcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogZmFpbDoK IAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChmKTsKKwlkbWFf ZmVuY2VfcHV0KGYpOwogCiAJcmV0dXJuIHI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjJfNC5jCmluZGV4IDU2NWRhYjNjNzIxOC4uN2VkZjZlOGM2M2RjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYwpAQCAtNjY4LDcgKzY2OCw3IEBAIHN0YXRpYyBpbnQg c2RtYV92Ml80X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGlt ZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3Ry dWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFf ZmVuY2UgKmYgPSBOVUxMOwogCXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2NCBn cHVfYWRkcjsKQEAgLTcwNSw3ICs3MDUsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjJfNF9yaW5nX3Rl c3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIpCiAJ CWdvdG8gZXJyMTsKIAotCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQp OworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAo ciA9PSAwKSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7CiAJ CXIgPSAtRVRJTUVET1VUOwpAQCAtNzI1LDcgKzcyNSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92Ml80 X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAog ZXJyMToKIAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChmKTsK KwlkbWFfZmVuY2VfcHV0KGYpOwogZXJyMDoKIAlhbWRncHVfd2JfZnJlZShhZGV2LCBpbmRleCk7 CiAJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3YzXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCmluZGV4IGE5 ZDEwOTQxZmI1My4uMTkzMmE2N2M2MmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9zZG1hX3YzXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3YzXzAuYwpAQCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3JpbmdfdGVz dF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBpYjsK LQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwog CXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2NCBncHVfYWRkcjsKQEAgLTkwOCw3 ICs5MDgsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjNfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMTsKIAotCXIg PSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vf d2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9F UlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7CiAJCXIgPSAtRVRJTUVET1VUOwpA QCAtOTI3LDcgKzkyNyw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3JpbmdfdGVzdF9pYihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAl9CiBlcnIxOgogCWFtZGdwdV9p Yl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQo Zik7CiBlcnIwOgogCWFtZGdwdV93Yl9mcmVlKGFkZXYsIGluZGV4KTsKIAlyZXR1cm4gcjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvc2lfZG1hLmMKaW5kZXggZGUzNTgxOTNhOGY5Li5iNGNmNGUyNWJm OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jCkBAIC0yNzQsNyArMjc0LDcgQEAg c3RhdGljIGludCBzaV9kbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg bG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRl djsKIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAqZiA9IE5VTEw7CisJc3Ry dWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdW5zaWduZWQgaW5kZXg7CiAJdTMyIHRtcCA9IDA7 CiAJdTY0IGdwdV9hZGRyOwpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBpbnQgc2lfZG1hX3Jp bmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAo cikKIAkJZ290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGlt ZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwog CWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4i KTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC0zMjUsNyArMzI1LDcgQEAgc3RhdGljIGludCBzaV9k bWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQog CiBlcnIxOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7Ci0JZmVuY2VfcHV0KGYp OworCWRtYV9mZW5jZV9wdXQoZik7CiBlcnIwOgogCWFtZGdwdV93Yl9mcmVlKGFkZXYsIGluZGV4 KTsKIAlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVy L2dwdV9zY2hlZF90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3Nj aGVkX3RyYWNlLmgKaW5kZXggYjk2MWExYzZjYWYzLi5kYmQ0ZmQzYTgxMGIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZF90cmFjZS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZF90cmFjZS5oCkBAIC0xNyw3ICsx Nyw3IEBAIFRSQUNFX0VWRU5UKGFtZF9zY2hlZF9qb2IsCiAJICAgIFRQX1NUUlVDVF9fZW50cnko CiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKiwgZW50aXR5KQogCQkJ ICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRfc2NoZWRfam9iICosIHNjaGVkX2pvYikKLQkJCSAgICAg X19maWVsZChzdHJ1Y3QgZmVuY2UgKiwgZmVuY2UpCisJCQkgICAgIF9fZmllbGQoc3RydWN0IGRt YV9mZW5jZSAqLCBmZW5jZSkKIAkJCSAgICAgX19maWVsZChjb25zdCBjaGFyICosIG5hbWUpCiAJ CQkgICAgIF9fZmllbGQodTMyLCBqb2JfY291bnQpCiAJCQkgICAgIF9fZmllbGQoaW50LCBod19q b2JfY291bnQpCkBAIC00Miw3ICs0Miw3IEBAIFRSQUNFX0VWRU5UKGFtZF9zY2hlZF9wcm9jZXNz X2pvYiwKIAkgICAgVFBfUFJPVE8oc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2UpLAogCSAg ICBUUF9BUkdTKGZlbmNlKSwKIAkgICAgVFBfU1RSVUNUX19lbnRyeSgKLQkJICAgIF9fZmllbGQo c3RydWN0IGZlbmNlICosIGZlbmNlKQorCQkgICAgX19maWVsZChzdHJ1Y3QgZG1hX2ZlbmNlICos IGZlbmNlKQogCQkgICAgKSwKIAogCSAgICBUUF9mYXN0X2Fzc2lnbigKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwppbmRleCA5NjNhMjRkNDZhOTMuLjUz NjRlNmE3ZWM4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1 X3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hl ZHVsZXIuYwpAQCAtMzIsNyArMzIsNyBAQAogCiBzdGF0aWMgYm9vbCBhbWRfc2NoZWRfZW50aXR5 X2lzX3JlYWR5KHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5ICplbnRpdHkpOwogc3RhdGljIHZvaWQg YW1kX3NjaGVkX3dha2V1cChzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkKTsKLXN0YXRp YyB2b2lkIGFtZF9zY2hlZF9wcm9jZXNzX2pvYihzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5j ZV9jYiAqY2IpOworc3RhdGljIHZvaWQgYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFf ZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKTsKIAogc3RydWN0IGttZW1fY2FjaGUg KnNjaGVkX2ZlbmNlX3NsYWI7CiBhdG9taWNfdCBzY2hlZF9mZW5jZV9zbGFiX3JlZiA9IEFUT01J Q19JTklUKDApOwpAQCAtMTQxLDcgKzE0MSw3IEBAIGludCBhbWRfc2NoZWRfZW50aXR5X2luaXQo c3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hlZCwKIAkJcmV0dXJuIHI7CiAKIAlhdG9taWNf c2V0KCZlbnRpdHktPmZlbmNlX3NlcSwgMCk7Ci0JZW50aXR5LT5mZW5jZV9jb250ZXh0ID0gZmVu Y2VfY29udGV4dF9hbGxvYygyKTsKKwllbnRpdHktPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVuY2Vf Y29udGV4dF9hbGxvYygyKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjIxLDMyICsyMjEsMzIgQEAg dm9pZCBhbWRfc2NoZWRfZW50aXR5X2Zpbmkoc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hl ZCwKIAlrZmlmb19mcmVlKCZlbnRpdHktPmpvYl9xdWV1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGFt ZF9zY2hlZF9lbnRpdHlfd2FrZXVwKHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2NiICpj YikKK3N0YXRpYyB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfd2FrZXVwKHN0cnVjdCBkbWFfZmVuY2Ug KmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZW50aXR5 ICplbnRpdHkgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5LCBj Yik7CiAJZW50aXR5LT5kZXBlbmRlbmN5ID0gTlVMTDsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2Zl bmNlX3B1dChmKTsKIAlhbWRfc2NoZWRfd2FrZXVwKGVudGl0eS0+c2NoZWQpOwogfQogCi1zdGF0 aWMgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2NsZWFyX2RlcChzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVj dCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2NsZWFyX2RlcChz dHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3Qg YW1kX3NjaGVkX2VudGl0eSAqZW50aXR5ID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgYW1k X3NjaGVkX2VudGl0eSwgY2IpOwogCWVudGl0eS0+ZGVwZW5kZW5jeSA9IE5VTEw7Ci0JZmVuY2Vf cHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiB9CiAKIHN0YXRpYyBib29sIGFtZF9zY2hlZF9l bnRpdHlfYWRkX2RlcGVuZGVuY3lfY2Ioc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSkK IHsKIAlzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gZW50aXR5LT5zY2hlZDsKLQlz dHJ1Y3QgZmVuY2UgKiBmZW5jZSA9IGVudGl0eS0+ZGVwZW5kZW5jeTsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICogZmVuY2UgPSBlbnRpdHktPmRlcGVuZGVuY3k7CiAJc3RydWN0IGFtZF9zY2hlZF9mZW5j ZSAqc19mZW5jZTsKIAogCWlmIChmZW5jZS0+Y29udGV4dCA9PSBlbnRpdHktPmZlbmNlX2NvbnRl eHQpIHsKIAkJLyogV2UgY2FuIGlnbm9yZSBmZW5jZXMgZnJvbSBvdXJzZWxmICovCi0JCWZlbmNl X3B1dChlbnRpdHktPmRlcGVuZGVuY3kpOworCQlkbWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5k ZW5jeSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTI1NywyMyArMjU3LDIzIEBAIHN0YXRp YyBib29sIGFtZF9zY2hlZF9lbnRpdHlfYWRkX2RlcGVuZGVuY3lfY2Ioc3RydWN0IGFtZF9zY2hl ZF9lbnRpdHkgKmVudGl0eSkKIAkJICogRmVuY2UgaXMgZnJvbSB0aGUgc2FtZSBzY2hlZHVsZXIs IG9ubHkgbmVlZCB0byB3YWl0IGZvcgogCQkgKiBpdCB0byBiZSBzY2hlZHVsZWQKIAkJICovCi0J CWZlbmNlID0gZmVuY2VfZ2V0KCZzX2ZlbmNlLT5zY2hlZHVsZWQpOwotCQlmZW5jZV9wdXQoZW50 aXR5LT5kZXBlbmRlbmN5KTsKKwkJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KCZzX2ZlbmNlLT5zY2hl ZHVsZWQpOworCQlkbWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5kZW5jeSk7CiAJCWVudGl0eS0+ ZGVwZW5kZW5jeSA9IGZlbmNlOwotCQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJmVu dGl0eS0+Y2IsCi0JCQkJCWFtZF9zY2hlZF9lbnRpdHlfY2xlYXJfZGVwKSkKKwkJaWYgKCFkbWFf ZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmZW50aXR5LT5jYiwKKwkJCQkJICAgIGFtZF9zY2hl ZF9lbnRpdHlfY2xlYXJfZGVwKSkKIAkJCXJldHVybiB0cnVlOwogCiAJCS8qIElnbm9yZSBpdCB3 aGVuIGl0IGlzIGFscmVhZHkgc2NoZWR1bGVkICovCi0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRt YV9mZW5jZV9wdXQoZmVuY2UpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaWYgKCFmZW5jZV9h ZGRfY2FsbGJhY2soZW50aXR5LT5kZXBlbmRlbmN5LCAmZW50aXR5LT5jYiwKLQkJCQlhbWRfc2No ZWRfZW50aXR5X3dha2V1cCkpCisJaWYgKCFkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGVudGl0eS0+ ZGVwZW5kZW5jeSwgJmVudGl0eS0+Y2IsCisJCQkJICAgIGFtZF9zY2hlZF9lbnRpdHlfd2FrZXVw KSkKIAkJcmV0dXJuIHRydWU7CiAKLQlmZW5jZV9wdXQoZW50aXR5LT5kZXBlbmRlbmN5KTsKKwlk bWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5kZW5jeSk7CiAJcmV0dXJuIGZhbHNlOwogfQogCkBA IC0zNTQsNyArMzU0LDggQEAgc3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2goc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogCXNjaGVkLT5vcHMtPmZyZWVfam9iKHNfam9iKTsKIH0KIAot c3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2hfY2Ioc3RydWN0IGZlbmNlICpmLCBzdHJ1 Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2hfY2Ioc3Ry dWN0IGRtYV9mZW5jZSAqZiwKKwkJCQkgICAgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJ c3RydWN0IGFtZF9zY2hlZF9qb2IgKmpvYiA9IGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGFtZF9z Y2hlZF9qb2IsCiAJCQkJCQkgZmluaXNoX2NiKTsKQEAgLTM4OCw4ICszODksOCBAQCB2b2lkIGFt ZF9zY2hlZF9od19qb2JfcmVzZXQoc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIAog CXNwaW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnlf cmV2ZXJzZShzX2pvYiwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7Ci0JCWlmIChm ZW5jZV9yZW1vdmVfY2FsbGJhY2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwgJnNfam9iLT5zX2Zl bmNlLT5jYikpIHsKLQkJCWZlbmNlX3B1dChzX2pvYi0+c19mZW5jZS0+cGFyZW50KTsKKwkJaWYg KGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwgJnNfam9i LT5zX2ZlbmNlLT5jYikpIHsKKwkJCWRtYV9mZW5jZV9wdXQoc19qb2ItPnNfZmVuY2UtPnBhcmVu dCk7CiAJCQlzX2pvYi0+c19mZW5jZS0+cGFyZW50ID0gTlVMTDsKIAkJfQogCX0KQEAgLTQxMCwy MSArNDExLDIxIEBAIHZvaWQgYW1kX3NjaGVkX2pvYl9yZWNvdmVyeShzdHJ1Y3QgYW1kX2dwdV9z Y2hlZHVsZXIgKnNjaGVkKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0bXAs ICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdHJ1Y3QgYW1kX3NjaGVkX2Zl bmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVuY2U7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJ CXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCXNwaW5fdW5sb2NrKCZzY2hlZC0+am9iX2xp c3RfbG9jayk7CiAJCWZlbmNlID0gc2NoZWQtPm9wcy0+cnVuX2pvYihzX2pvYik7CiAJCWF0b21p Y19pbmMoJnNjaGVkLT5od19ycV9jb3VudCk7CiAJCWlmIChmZW5jZSkgewotCQkJc19mZW5jZS0+ cGFyZW50ID0gZmVuY2VfZ2V0KGZlbmNlKTsKLQkJCXIgPSBmZW5jZV9hZGRfY2FsbGJhY2soZmVu Y2UsICZzX2ZlbmNlLT5jYiwKLQkJCQkJICAgICAgIGFtZF9zY2hlZF9wcm9jZXNzX2pvYik7CisJ CQlzX2ZlbmNlLT5wYXJlbnQgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKKwkJCXIgPSBkbWFfZmVu Y2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmc19mZW5jZS0+Y2IsCisJCQkJCQkgICBhbWRfc2NoZWRf cHJvY2Vzc19qb2IpOwogCQkJaWYgKHIgPT0gLUVOT0VOVCkKIAkJCQlhbWRfc2NoZWRfcHJvY2Vz c19qb2IoZmVuY2UsICZzX2ZlbmNlLT5jYik7CiAJCQllbHNlIGlmIChyKQogCQkJCURSTV9FUlJP UigiZmVuY2UgYWRkIGNhbGxiYWNrIGZhaWxlZCAoJWQpXG4iLAogCQkJCQkgIHIpOwotCQkJZmVu Y2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQl9IGVsc2UgewogCQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gcnVuIGpvYiFcbiIpOwogCQkJYW1kX3NjaGVkX3Byb2Nlc3Nf am9iKE5VTEwsICZzX2ZlbmNlLT5jYik7CkBAIC00NDYsOCArNDQ3LDggQEAgdm9pZCBhbWRfc2No ZWRfZW50aXR5X3B1c2hfam9iKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJc3Ry dWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9IHNjaGVkX2pvYi0+c19lbnRpdHk7CiAKIAl0 cmFjZV9hbWRfc2NoZWRfam9iKHNjaGVkX2pvYik7Ci0JZmVuY2VfYWRkX2NhbGxiYWNrKCZzY2hl ZF9qb2ItPnNfZmVuY2UtPmZpbmlzaGVkLCAmc2NoZWRfam9iLT5maW5pc2hfY2IsCi0JCQkgICBh bWRfc2NoZWRfam9iX2ZpbmlzaF9jYik7CisJZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaygmc2NoZWRf am9iLT5zX2ZlbmNlLT5maW5pc2hlZCwgJnNjaGVkX2pvYi0+ZmluaXNoX2NiLAorCQkJICAgICAg IGFtZF9zY2hlZF9qb2JfZmluaXNoX2NiKTsKIAl3YWl0X2V2ZW50KGVudGl0eS0+c2NoZWQtPmpv Yl9zY2hlZHVsZWQsCiAJCSAgIGFtZF9zY2hlZF9lbnRpdHlfaW4oc2NoZWRfam9iKSk7CiB9CkBA IC01MTEsNyArNTEyLDcgQEAgYW1kX3NjaGVkX3NlbGVjdF9lbnRpdHkoc3RydWN0IGFtZF9ncHVf c2NoZWR1bGVyICpzY2hlZCkKIAlyZXR1cm4gZW50aXR5OwogfQogCi1zdGF0aWMgdm9pZCBhbWRf c2NoZWRfcHJvY2Vzc19qb2Ioc3RydWN0IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQor c3RhdGljIHZvaWQgYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFfZmVuY2UgKmYsIHN0 cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNfZmVu Y2UgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UsIGNiKTsKQEAg LTUyMSw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCBhbWRfc2NoZWRfcHJvY2Vzc19qb2Ioc3RydWN0 IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogCWFtZF9zY2hlZF9mZW5jZV9maW5pc2hl ZChzX2ZlbmNlKTsKIAogCXRyYWNlX2FtZF9zY2hlZF9wcm9jZXNzX2pvYihzX2ZlbmNlKTsKLQlm ZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsKKwlkbWFfZmVuY2VfcHV0KCZzX2ZlbmNlLT5m aW5pc2hlZCk7CiAJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZzY2hlZC0+d2FrZV91cF93b3JrZXIp OwogfQogCkBAIC01NDcsNyArNTQ4LDcgQEAgc3RhdGljIGludCBhbWRfc2NoZWRfbWFpbih2b2lk ICpwYXJhbSkKIAkJc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9IE5VTEw7CiAJCXN0 cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNfZmVuY2U7CiAJCXN0cnVjdCBhbWRfc2NoZWRfam9iICpz Y2hlZF9qb2I7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOwogCiAJCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShzY2hlZC0+d2FrZV91cF93b3JrZXIs CiAJCQkJCSAoIWFtZF9zY2hlZF9ibG9ja2VkKHNjaGVkKSAmJgpAQCAtNTY5LDE1ICs1NzAsMTUg QEAgc3RhdGljIGludCBhbWRfc2NoZWRfbWFpbih2b2lkICpwYXJhbSkKIAkJZmVuY2UgPSBzY2hl ZC0+b3BzLT5ydW5fam9iKHNjaGVkX2pvYik7CiAJCWFtZF9zY2hlZF9mZW5jZV9zY2hlZHVsZWQo c19mZW5jZSk7CiAJCWlmIChmZW5jZSkgewotCQkJc19mZW5jZS0+cGFyZW50ID0gZmVuY2VfZ2V0 KGZlbmNlKTsKLQkJCXIgPSBmZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzX2ZlbmNlLT5jYiwK LQkJCQkJICAgICAgIGFtZF9zY2hlZF9wcm9jZXNzX2pvYik7CisJCQlzX2ZlbmNlLT5wYXJlbnQg PSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKKwkJCXIgPSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZl bmNlLCAmc19mZW5jZS0+Y2IsCisJCQkJCQkgICBhbWRfc2NoZWRfcHJvY2Vzc19qb2IpOwogCQkJ aWYgKHIgPT0gLUVOT0VOVCkKIAkJCQlhbWRfc2NoZWRfcHJvY2Vzc19qb2IoZmVuY2UsICZzX2Zl bmNlLT5jYik7CiAJCQllbHNlIGlmIChyKQogCQkJCURSTV9FUlJPUigiZmVuY2UgYWRkIGNhbGxi YWNrIGZhaWxlZCAoJWQpXG4iLAogCQkJCQkgIHIpOwotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJ CWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQl9IGVsc2UgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gcnVuIGpvYiFcbiIpOwogCQkJYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKE5VTEwsICZzX2ZlbmNl LT5jYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2No ZWR1bGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmgK aW5kZXggN2NiYmJmYjUwMmVmLi44NzZhYTQzYjU3ZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUg X0dQVV9TQ0hFRFVMRVJfSF8KIAogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+Ci0jaW5jbHVkZSA8 bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogc3RydWN0IGFt ZF9ncHVfc2NoZWR1bGVyOwogc3RydWN0IGFtZF9zY2hlZF9ycTsKQEAgLTUwLDggKzUwLDggQEAg c3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgewogCWF0b21pY190CQkJZmVuY2Vfc2VxOwogCXVpbnQ2 NF90ICAgICAgICAgICAgICAgICAgICAgICAgZmVuY2VfY29udGV4dDsKIAotCXN0cnVjdCBmZW5j ZQkJCSpkZXBlbmRlbmN5OwotCXN0cnVjdCBmZW5jZV9jYgkJCWNiOworCXN0cnVjdCBkbWFfZmVu Y2UJCSpkZXBlbmRlbmN5OworCXN0cnVjdCBkbWFfZmVuY2VfY2IJCWNiOwogfTsKIAogLyoqCkBA IC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGFtZF9zY2hlZF9ycSB7CiB9OwogCiBzdHJ1Y3QgYW1k X3NjaGVkX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxl ZDsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkOwotCXN0cnVjdCBm ZW5jZV9jYiAgICAgICAgICAgICAgICAgY2I7Ci0Jc3RydWN0IGZlbmNlICAgICAgICAgICAgICAg ICAgICAqcGFyZW50OworCXN0cnVjdCBkbWFfZmVuY2UgICAgICAgICAgICAgICAgc2NoZWR1bGVk OworCXN0cnVjdCBkbWFfZmVuY2UgICAgICAgICAgICAgICAgZmluaXNoZWQ7CisJc3RydWN0IGRt YV9mZW5jZV9jYiAgICAgICAgICAgICBjYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICAgICAgICAgICAg ICAgICpwYXJlbnQ7CiAJc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyCSpzY2hlZDsKIAlzcGlubG9j a190CQkJbG9jazsKIAl2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvd25lcjsKQEAg LTc5LDE1ICs3OSwxNSBAQCBzdHJ1Y3QgYW1kX3NjaGVkX2pvYiB7CiAJc3RydWN0IGFtZF9ncHVf c2NoZWR1bGVyICAgICAgICAqc2NoZWQ7CiAJc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgICAgICAg ICAqc19lbnRpdHk7CiAJc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAgICAgICAgICAqc19mZW5jZTsK LQlzdHJ1Y3QgZmVuY2VfY2IJCQlmaW5pc2hfY2I7CisJc3RydWN0IGRtYV9mZW5jZV9jYgkJZmlu aXNoX2NiOwogCXN0cnVjdCB3b3JrX3N0cnVjdAkJZmluaXNoX3dvcms7CiAJc3RydWN0IGxpc3Rf aGVhZAkJbm9kZTsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrCQl3b3JrX3RkcjsKIH07CiAKLWV4dGVy biBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkOwot ZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNlX29wc19maW5pc2hl ZDsKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqdG9fYW1kX3NjaGVkX2Zl bmNlKHN0cnVjdCBmZW5jZSAqZikKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBh bWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBhbWRfc2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkOworc3RhdGljIGlubGluZSBzdHJ1 Y3QgYW1kX3NjaGVkX2ZlbmNlICp0b19hbWRfc2NoZWRfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAq ZikKIHsKIAlpZiAoZi0+b3BzID09ICZhbWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZCkKIAkJ cmV0dXJuIGNvbnRhaW5lcl9vZihmLCBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlLCBzY2hlZHVsZWQp OwpAQCAtMTAzLDggKzEwMyw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZF9zY2hlZF9mZW5j ZSAqdG9fYW1kX3NjaGVkX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZikKICAqIHRoZXNlIGZ1bmN0aW9u cyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gZHJpdmVyIHNpZGUKICovCiBzdHJ1Y3QgYW1kX3Nj aGVkX2JhY2tlbmRfb3BzIHsKLQlzdHJ1Y3QgZmVuY2UgKigqZGVwZW5kZW5jeSkoc3RydWN0IGFt ZF9zY2hlZF9qb2IgKnNjaGVkX2pvYik7Ci0Jc3RydWN0IGZlbmNlICooKnJ1bl9qb2IpKHN0cnVj dCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpOworCXN0cnVjdCBkbWFfZmVuY2UgKigqZGVwZW5k ZW5jeSkoc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYik7CisJc3RydWN0IGRtYV9mZW5j ZSAqKCpydW5fam9iKShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKTsKIAl2b2lkICgq dGltZWRvdXRfam9iKShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKTsKIAl2b2lkICgq ZnJlZV9qb2IpKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpOwogfTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL3NjaGVkdWxlci9zY2hlZF9mZW5jZS5jCmluZGV4IDZiNjNiZWFmNzU3NC4u YTEwZDYzZTcwYjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9z Y2hlZF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2Zl bmNlLmMKQEAgLTQyLDQ2ICs0Miw1MCBAQCBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICphbWRfc2No ZWRfZmVuY2VfY3JlYXRlKHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5ICplbnRpdHksCiAJc3Bpbl9s b2NrX2luaXQoJmZlbmNlLT5sb2NrKTsKIAogCXNlcSA9IGF0b21pY19pbmNfcmV0dXJuKCZlbnRp dHktPmZlbmNlX3NlcSk7Ci0JZmVuY2VfaW5pdCgmZmVuY2UtPnNjaGVkdWxlZCwgJmFtZF9zY2hl ZF9mZW5jZV9vcHNfc2NoZWR1bGVkLAotCQkgICAmZmVuY2UtPmxvY2ssIGVudGl0eS0+ZmVuY2Vf Y29udGV4dCwgc2VxKTsKLQlmZW5jZV9pbml0KCZmZW5jZS0+ZmluaXNoZWQsICZhbWRfc2NoZWRf ZmVuY2Vfb3BzX2ZpbmlzaGVkLAotCQkgICAmZmVuY2UtPmxvY2ssIGVudGl0eS0+ZmVuY2VfY29u dGV4dCArIDEsIHNlcSk7CisJZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5zY2hlZHVsZWQsICZhbWRf c2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZCwKKwkJICAgICAgICZmZW5jZS0+bG9jaywgZW50aXR5 LT5mZW5jZV9jb250ZXh0LCBzZXEpOworCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+ZmluaXNoZWQs ICZhbWRfc2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkLAorCQkgICAgICAgJmZlbmNlLT5sb2NrLCBl bnRpdHktPmZlbmNlX2NvbnRleHQgKyAxLCBzZXEpOwogCiAJcmV0dXJuIGZlbmNlOwogfQogCiB2 b2lkIGFtZF9zY2hlZF9mZW5jZV9zY2hlZHVsZWQoc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVu Y2UpCiB7Ci0JaW50IHJldCA9IGZlbmNlX3NpZ25hbCgmZmVuY2UtPnNjaGVkdWxlZCk7CisJaW50 IHJldCA9IGRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5zY2hlZHVsZWQpOwogCiAJaWYgKCFyZXQp Ci0JCUZFTkNFX1RSQUNFKCZmZW5jZS0+c2NoZWR1bGVkLCAic2lnbmFsZWQgZnJvbSBpcnEgY29u dGV4dFxuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPnNjaGVkdWxlZCwKKwkJCSAgICAg ICAJInNpZ25hbGVkIGZyb20gaXJxIGNvbnRleHRcbiIpOwogCWVsc2UKLQkJRkVOQ0VfVFJBQ0Uo JmZlbmNlLT5zY2hlZHVsZWQsICJ3YXMgYWxyZWFkeSBzaWduYWxlZFxuIik7CisJCURNQV9GRU5D RV9UUkFDRSgmZmVuY2UtPnNjaGVkdWxlZCwKKwkJCSAgICAgICAJIndhcyBhbHJlYWR5IHNpZ25h bGVkXG4iKTsKIH0KIAogdm9pZCBhbWRfc2NoZWRfZmVuY2VfZmluaXNoZWQoc3RydWN0IGFtZF9z Y2hlZF9mZW5jZSAqZmVuY2UpCiB7Ci0JaW50IHJldCA9IGZlbmNlX3NpZ25hbCgmZmVuY2UtPmZp bmlzaGVkKTsKKwlpbnQgcmV0ID0gZG1hX2ZlbmNlX3NpZ25hbCgmZmVuY2UtPmZpbmlzaGVkKTsK IAogCWlmICghcmV0KQotCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmZpbmlzaGVkLCAic2lnbmFsZWQg ZnJvbSBpcnEgY29udGV4dFxuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmZpbmlzaGVk LAorCQkJICAgICAgIAkic2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CiAJZWxzZQotCQlG RU5DRV9UUkFDRSgmZmVuY2UtPmZpbmlzaGVkLCAid2FzIGFscmVhZHkgc2lnbmFsZWRcbiIpOwor CQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5maW5pc2hlZCwKKwkJCSAgICAgICAJIndhcyBhbHJl YWR5IHNpZ25hbGVkXG4iKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKmFtZF9zY2hlZF9mZW5j ZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFy ICphbWRfc2NoZWRfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewogCXJldHVybiAiYW1kX3NjaGVkIjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKmFtZF9z Y2hlZF9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgY29u c3QgY2hhciAqYW1kX3NjaGVkX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVu Y2UgKmYpCiB7CiAJc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2UgPSB0b19hbWRfc2NoZWRf ZmVuY2UoZik7CiAJcmV0dXJuIChjb25zdCBjaGFyICopZmVuY2UtPnNjaGVkLT5uYW1lOwogfQog Ci1zdGF0aWMgYm9vbCBhbWRfc2NoZWRfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVu Y2UgKmYpCitzdGF0aWMgYm9vbCBhbWRfc2NoZWRfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1 Y3QgZG1hX2ZlbmNlICpmKQogewogCXJldHVybiB0cnVlOwogfQpAQCAtOTUsMTAgKzk5LDEwIEBA IHN0YXRpYyBib29sIGFtZF9zY2hlZF9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5j ZSAqZikKICAqLwogc3RhdGljIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX2ZyZWUoc3RydWN0IHJjdV9o ZWFkICpyY3UpCiB7Ci0Jc3RydWN0IGZlbmNlICpmID0gY29udGFpbmVyX29mKHJjdSwgc3RydWN0 IGZlbmNlLCByY3UpOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBjb250YWluZXJfb2YocmN1LCBz dHJ1Y3QgZG1hX2ZlbmNlLCByY3UpOwogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKmZlbmNlID0g dG9fYW1kX3NjaGVkX2ZlbmNlKGYpOwogCi0JZmVuY2VfcHV0KGZlbmNlLT5wYXJlbnQpOworCWRt YV9mZW5jZV9wdXQoZmVuY2UtPnBhcmVudCk7CiAJa21lbV9jYWNoZV9mcmVlKHNjaGVkX2ZlbmNl X3NsYWIsIGZlbmNlKTsKIH0KIApAQCAtMTEwLDcgKzExNCw3IEBAIHN0YXRpYyB2b2lkIGFtZF9z Y2hlZF9mZW5jZV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KQogICogVGhpcyBmdW5jdGlvbiBp cyBjYWxsZWQgd2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IGJlY29tZXMgemVyby4KICAqIEl0IGp1 c3QgUkNVIHNjaGVkdWxlcyBmcmVlaW5nIHVwIHRoZSBmZW5jZS4KICAqLwotc3RhdGljIHZvaWQg YW1kX3NjaGVkX2ZlbmNlX3JlbGVhc2Vfc2NoZWR1bGVkKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRp YyB2b2lkIGFtZF9zY2hlZF9mZW5jZV9yZWxlYXNlX3NjaGVkdWxlZChzdHJ1Y3QgZG1hX2ZlbmNl ICpmKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKmZlbmNlID0gdG9fYW1kX3NjaGVkX2Zl bmNlKGYpOwogCkBAIC0xMjQsMjcgKzEyOCwyNyBAQCBzdGF0aWMgdm9pZCBhbWRfc2NoZWRfZmVu Y2VfcmVsZWFzZV9zY2hlZHVsZWQoc3RydWN0IGZlbmNlICpmKQogICoKICAqIERyb3AgdGhlIGV4 dHJhIHJlZmVyZW5jZSBmcm9tIHRoZSBzY2hlZHVsZWQgZmVuY2UgdG8gdGhlIGJhc2UgZmVuY2Uu CiAgKi8KLXN0YXRpYyB2b2lkIGFtZF9zY2hlZF9mZW5jZV9yZWxlYXNlX2ZpbmlzaGVkKHN0cnVj dCBmZW5jZSAqZikKK3N0YXRpYyB2b2lkIGFtZF9zY2hlZF9mZW5jZV9yZWxlYXNlX2ZpbmlzaGVk KHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2Ug PSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAKLQlmZW5jZV9wdXQoJmZlbmNlLT5zY2hlZHVsZWQp OworCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5zY2hlZHVsZWQpOwogfQogCi1jb25zdCBzdHJ1Y3Qg ZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkID0geworY29uc3Qgc3RydWN0 IGRtYV9mZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNlX29wc19zY2hlZHVsZWQgPSB7CiAJLmdldF9k cml2ZXJfbmFtZSA9IGFtZF9zY2hlZF9mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1l bGluZV9uYW1lID0gYW1kX3NjaGVkX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVf c2lnbmFsaW5nID0gYW1kX3NjaGVkX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVk ID0gTlVMTCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9mZW5j ZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9zY2hl ZHVsZWQsCiB9OwogCi1jb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNf ZmluaXNoZWQgPSB7Citjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBhbWRfc2NoZWRfZmVuY2Vf b3BzX2ZpbmlzaGVkID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBhbWRfc2NoZWRfZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IGFtZF9zY2hlZF9mZW5jZV9nZXRf dGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IGFtZF9zY2hlZF9mZW5jZV9lbmFi bGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IE5VTEwsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0 X3dhaXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0gYW1k X3NjaGVkX2ZlbmNlX3JlbGVhc2VfZmluaXNoZWQsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXgg NWRkNzA1NDAyMTljLi5mMDc0NjQ0ZmM2OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMTQ2MSw3 ICsxNDYxLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdCk7 CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpjcmVhdGVfdmJsYW5r X2V2ZW50KAogCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKLQkJc3RydWN0IGZlbmNlICpmZW5jZSwgdWludDY0X3QgdXNlcl9kYXRhKQorCQlzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSwgdWludDY0X3QgdXNlcl9kYXRhKQogewogCXN0cnVjdCBkcm1f cGVuZGluZ192YmxhbmtfZXZlbnQgKmUgPSBOVUxMOwogCWludCByZXQ7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCmluZGV4IDA3YjQzMmY0M2I5OC4uNTdkMDQwMDk4OGQ1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGRy bS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgog I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNl Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKICNpbmNsdWRlICJkcm1fY3J0Y19p bnRlcm5hbC5oIgogCkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMpOwogICogZHJtX2F0b21pY19oZWxwZXJf c3dhcF9zdGF0ZSgpIHNvIGl0IHVzZXMgdGhlIGN1cnJlbnQgcGxhbmUgc3RhdGUgKGFuZAogICog anVzdCB1c2VzIHRoZSBhdG9taWMgc3RhdGUgdG8gZmluZCB0aGUgY2hhbmdlZCBwbGFuZXMpCiAg KgotICogUmV0dXJucyB6ZXJvIGlmIHN1Y2Nlc3Mgb3IgPCAwIGlmIGZlbmNlX3dhaXQoKSBmYWls cy4KKyAqIFJldHVybnMgemVybyBpZiBzdWNjZXNzIG9yIDwgMCBpZiBkbWFfZmVuY2Vfd2FpdCgp IGZhaWxzLgogICovCiBpbnQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmVuY2VzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlLApAQCAtMTA0MSwxMSArMTA0MSwxMSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9m b3JfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAqIHN0aWxsIGludGVycnVwdCB0 aGUgb3BlcmF0aW9uLiBJbnN0ZWFkIG9mIGJsb2NraW5nIHVudGlsIHRoZQogCQkgKiB0aW1lciBl eHBpcmVzLCBtYWtlIHRoZSB3YWl0IGludGVycnVwdGlibGUuCiAJCSAqLwotCQlyZXQgPSBmZW5j ZV93YWl0KHBsYW5lX3N0YXRlLT5mZW5jZSwgcHJlX3N3YXApOworCQlyZXQgPSBkbWFfZmVuY2Vf d2FpdChwbGFuZV9zdGF0ZS0+ZmVuY2UsIHByZV9zd2FwKTsKIAkJaWYgKHJldCkKIAkJCXJldHVy biByZXQ7CiAKLQkJZmVuY2VfcHV0KHBsYW5lX3N0YXRlLT5mZW5jZSk7CisJCWRtYV9mZW5jZV9w dXQocGxhbmVfc3RhdGUtPmZlbmNlKTsKIAkJcGxhbmVfc3RhdGUtPmZlbmNlID0gTlVMTDsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9mb3BzLmMKaW5kZXggZTg0ZmFlY2Y1MjI1Li5jOTQ1OGNiYWE2MTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Zm9wcy5jCkBAIC02OTIsOCArNjkyLDggQEAgdm9pZCBkcm1fc2VuZF9ldmVudF9sb2NrZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50ICplKQogCX0KIAog CWlmIChlLT5mZW5jZSkgewotCQlmZW5jZV9zaWduYWwoZS0+ZmVuY2UpOwotCQlmZW5jZV9wdXQo ZS0+ZmVuY2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsKGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1 dChlLT5mZW5jZSk7CiAJfQogCiAJaWYgKCFlLT5maWxlX3ByaXYpIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRu YXZpdi9ldG5hdml2X2dlbS5jCmluZGV4IDlmZmNhMjQ3OGUwMi4uN2IyYjJhMzM3MDMyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKQEAgLTQ2NiwxMCArNDY2LDEwIEBAIGlu dCBldG5hdml2X2dlbV93YWl0X2JvKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCBzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiwKIH0KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGljIHZv aWQgZXRuYXZpdl9nZW1fZGVzY3JpYmVfZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSwKK3N0YXRp YyB2b2lkIGV0bmF2aXZfZ2VtX2Rlc2NyaWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl LAogCWNvbnN0IGNoYXIgKnR5cGUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKLQlpZiAoIXRlc3Rf Yml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAoIXRlc3Rf Yml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXNlcV9w cmludGYobSwgIlx0JTlzOiAlcyAlcyBzZXEgJXVcbiIsCiAJCQkgICB0eXBlLAogCQkJICAgZmVu Y2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKSwKQEAgLTQ4Miw3ICs0ODIsNyBAQCBzdGF0 aWMgdm9pZCBldG5hdml2X2dlbV9kZXNjcmliZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwg c3RydWN0IHNlcV9maWxlICptKQogCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZf b2JqID0gdG9fZXRuYXZpdl9ibyhvYmopOwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJv YmogPSBldG5hdml2X29iai0+cmVzdjsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qg KmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsK IAl1bnNpZ25lZCBsb25nIG9mZiA9IGRybV92bWFfbm9kZV9zdGFydCgmb2JqLT52bWFfbm9kZSk7 CiAKIAlzZXFfcHJpbnRmKG0sICIlMDh4OiAlYyAlMmQgKCUyZCkgJTA4bHggJXAgJXpkXG4iLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYyBiL2RyaXZl cnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKaW5kZXggYjEyNTRmODg1ZmVkLi44ZWFj YzVmMDNkOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYwpAQCAtMTUsNyAr MTUsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KLSNpbmNsdWRlIDxs aW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxp bnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVk ZSAiZXRuYXZpdl9kdW1wLmgiCkBAIC04ODIsNyArODgyLDcgQEAgc3RhdGljIHZvaWQgcmVjb3Zl cl93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGdwdS0+ZXZlbnQpOyBpKyspIHsKIAkJaWYgKCFncHUtPmV2ZW50W2ldLnVzZWQpCiAJ CQljb250aW51ZTsKLQkJZmVuY2Vfc2lnbmFsKGdwdS0+ZXZlbnRbaV0uZmVuY2UpOworCQlkbWFf ZmVuY2Vfc2lnbmFsKGdwdS0+ZXZlbnRbaV0uZmVuY2UpOwogCQlncHUtPmV2ZW50W2ldLmZlbmNl ID0gTlVMTDsKIAkJZ3B1LT5ldmVudFtpXS51c2VkID0gZmFsc2U7CiAJCWNvbXBsZXRlKCZncHUt PmV2ZW50X2ZyZWUpOwpAQCAtOTUyLDU1ICs5NTIsNTUgQEAgc3RhdGljIHZvaWQgaGFuZ2NoZWNr X2Rpc2FibGUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAvKiBmZW5jZSBvYmplY3QgbWFuYWdl bWVudCAqLwogc3RydWN0IGV0bmF2aXZfZmVuY2UgewogCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1 OwotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIH07CiAKLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGV0bmF2aXZfZmVuY2UgKnRvX2V0bmF2aXZfZmVuY2Uoc3RydWN0 IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV0bmF2aXZfZmVuY2UgKnRvX2V0 bmF2aXZfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGNvbnRhaW5l cl9vZihmZW5jZSwgc3RydWN0IGV0bmF2aXZfZmVuY2UsIGJhc2UpOwogfQogCi1zdGF0aWMgY29u c3QgY2hhciAqZXRuYXZpdl9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5j ZSkKK3N0YXRpYyBjb25zdCBjaGFyICpldG5hdml2X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gImV0bmF2aXYiOwogfQogCi1zdGF0aWMg Y29uc3QgY2hhciAqZXRuYXZpdl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmV0bmF2aXZfZmVuY2VfZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IGV0bmF2aXZfZmVuY2UgKmYg PSB0b19ldG5hdml2X2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBkZXZfbmFtZShmLT5ncHUtPmRl dik7CiB9CiAKLXN0YXRpYyBib29sIGV0bmF2aXZfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgZXRuYXZpdl9mZW5jZV9lbmFibGVfc2lnbmFs aW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiB0cnVlOwogfQogCi1zdGF0 aWMgYm9vbCBldG5hdml2X2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0 aWMgYm9vbCBldG5hdml2X2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQog ewogCXN0cnVjdCBldG5hdml2X2ZlbmNlICpmID0gdG9fZXRuYXZpdl9mZW5jZShmZW5jZSk7CiAK LQlyZXR1cm4gZmVuY2VfY29tcGxldGVkKGYtPmdwdSwgZi0+YmFzZS5zZXFubyk7CisJcmV0dXJu IGRtYV9mZW5jZV9jb21wbGV0ZWQoZi0+Z3B1LCBmLT5iYXNlLnNlcW5vKTsKIH0KIAotc3RhdGlj IHZvaWQgZXRuYXZpdl9mZW5jZV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMg dm9pZCBldG5hdml2X2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJ c3RydWN0IGV0bmF2aXZfZmVuY2UgKmYgPSB0b19ldG5hdml2X2ZlbmNlKGZlbmNlKTsKIAogCWtm cmVlX3JjdShmLCBiYXNlLnJjdSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz IGV0bmF2aXZfZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IGV0bmF2aXZfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBldG5hdml2X2ZlbmNl X2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBldG5hdml2X2ZlbmNlX2dl dF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gZXRuYXZpdl9mZW5jZV9lbmFi bGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IGV0bmF2aXZfZmVuY2Vfc2lnbmFsZWQsCi0JLndh aXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0 LAogCS5yZWxlYXNlID0gZXRuYXZpdl9mZW5jZV9yZWxlYXNlLAogfTsKIAotc3RhdGljIHN0cnVj dCBmZW5jZSAqZXRuYXZpdl9ncHVfZmVuY2VfYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUp CitzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSAqZXRuYXZpdl9ncHVfZmVuY2VfYWxsb2Moc3RydWN0 IGV0bmF2aXZfZ3B1ICpncHUpCiB7CiAJc3RydWN0IGV0bmF2aXZfZmVuY2UgKmY7CiAKQEAgLTEw MTAsOCArMTAxMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZmVuY2UgKmV0bmF2aXZfZ3B1X2ZlbmNlX2Fs bG9jKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCiAJZi0+Z3B1ID0gZ3B1OwogCi0JZmVuY2Vf aW5pdCgmZi0+YmFzZSwgJmV0bmF2aXZfZmVuY2Vfb3BzLCAmZ3B1LT5mZW5jZV9zcGlubG9jaywK LQkJICAgZ3B1LT5mZW5jZV9jb250ZXh0LCArK2dwdS0+bmV4dF9mZW5jZSk7CisJZG1hX2ZlbmNl X2luaXQoJmYtPmJhc2UsICZldG5hdml2X2ZlbmNlX29wcywgJmdwdS0+ZmVuY2Vfc3BpbmxvY2ss CisJCSAgICAgICBncHUtPmZlbmNlX2NvbnRleHQsICsrZ3B1LT5uZXh0X2ZlbmNlKTsKIAogCXJl dHVybiAmZi0+YmFzZTsKIH0KQEAgLTEwMjEsNyArMTAyMSw3IEBAIGludCBldG5hdml2X2dwdV9m ZW5jZV9zeW5jX29iaihzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiwKIHsK IAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqID0gZXRuYXZpdl9vYmotPnJlc3Y7CiAJ c3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVu Y2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50IGksIHJldDsKIAogCWlmICghZXhj bHVzaXZlKSB7CkBAIC0xMDM5LDcgKzEwMzksNyBAQCBpbnQgZXRuYXZpdl9ncHVfZmVuY2Vfc3lu Y19vYmooc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmosCiAJCS8qIFdhaXQg b24gYW55IGV4aXN0aW5nIGV4Y2x1c2l2ZSBmZW5jZSB3aGljaCBpc24ndCBvdXIgb3duICovCiAJ CWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKHJvYmopOwogCQlpZiAoZmVuY2Ug JiYgZmVuY2UtPmNvbnRleHQgIT0gY29udGV4dCkgewotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5j ZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CiAJCQlpZiAo cmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTEwNTIsNyArMTA1Miw3IEBAIGludCBldG5h dml2X2dwdV9mZW5jZV9zeW5jX29iaihzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2 X29iaiwKIAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtp XSwKIAkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKHJvYmopKTsKIAkJaWYgKGZlbmNlLT5j b250ZXh0ICE9IGNvbnRleHQpIHsKLQkJCXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOwor CQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOwogCQkJaWYgKHJldCkKIAkJCQly ZXR1cm4gcmV0OwogCQl9CkBAIC0xMTU4LDExICsxMTU4LDExIEBAIHN0YXRpYyB2b2lkIHJldGly ZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJbXV0ZXhfbG9jaygmZ3B1LT5s b2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY21kYnVmLCB0bXAsICZncHUtPmFjdGl2 ZV9jbWRfbGlzdCwgbm9kZSkgewotCQlpZiAoIWZlbmNlX2lzX3NpZ25hbGVkKGNtZGJ1Zi0+ZmVu Y2UpKQorCQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChjbWRidWYtPmZlbmNlKSkKIAkJCWJy ZWFrOwogCiAJCWxpc3RfZGVsKCZjbWRidWYtPm5vZGUpOwotCQlmZW5jZV9wdXQoY21kYnVmLT5m ZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoY21kYnVmLT5mZW5jZSk7CiAKIAkJZm9yIChpID0gMDsg aSA8IGNtZGJ1Zi0+bnJfYm9zOyBpKyspIHsKIAkJCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGlu ZyAqbWFwcGluZyA9IGNtZGJ1Zi0+Ym9fbWFwW2ldOwpAQCAtMTIwNCw3ICsxMjA0LDcgQEAgaW50 IGV0bmF2aXZfZ3B1X3dhaXRfZmVuY2VfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZXRuYXZpdl9ncHUg KmdwdSwKIAogCWlmICghdGltZW91dCkgewogCQkvKiBObyB0aW1lb3V0IHdhcyByZXF1ZXN0ZWQ6 IGp1c3QgdGVzdCBmb3IgY29tcGxldGlvbiAqLwotCQlyZXQgPSBmZW5jZV9jb21wbGV0ZWQoZ3B1 LCBmZW5jZSkgPyAwIDogLUVCVVNZOworCQlyZXQgPSBkbWFfZmVuY2VfY29tcGxldGVkKGdwdSwg ZmVuY2UpID8gMCA6IC1FQlVTWTsKIAl9IGVsc2UgewogCQl1bnNpZ25lZCBsb25nIHJlbWFpbmlu ZyA9IGV0bmF2aXZfdGltZW91dF90b19qaWZmaWVzKHRpbWVvdXQpOwogCkBAIC0xMjc1LDcgKzEy NzUsNyBAQCB2b2lkIGV0bmF2aXZfZ3B1X3BtX3B1dChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkK IGludCBldG5hdml2X2dwdV9zdWJtaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCiAJc3RydWN0 IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0LCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNtZGJ1 ZikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwog CXVuc2lnbmVkIGludCBldmVudCwgaTsKIAlpbnQgcmV0OwogCkBAIC0xMzkxLDcgKzEzOTEsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKIAkJ fQogCiAJCXdoaWxlICgoZXZlbnQgPSBmZnMoaW50cikpICE9IDApIHsKLQkJCXN0cnVjdCBmZW5j ZSAqZmVuY2U7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQkJZXZlbnQgLT0gMTsK IApAQCAtMTQwMSw3ICsxNDAxLDcgQEAgc3RhdGljIGlycXJldHVybl90IGlycV9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmRhdGEpCiAKIAkJCWZlbmNlID0gZ3B1LT5ldmVudFtldmVudF0uZmVuY2U7 CiAJCQlncHUtPmV2ZW50W2V2ZW50XS5mZW5jZSA9IE5VTEw7Ci0JCQlmZW5jZV9zaWduYWwoZmVu Y2UpOworCQkJZG1hX2ZlbmNlX3NpZ25hbChmZW5jZSk7CiAKIAkJCS8qCiAJCQkgKiBFdmVudHMg Y2FuIGJlIHByb2Nlc3NlZCBvdXQgb2Ygb3JkZXIuICBFZywKQEAgLTE1NTMsNyArMTU1Myw3IEBA IHN0YXRpYyBpbnQgZXRuYXZpdl9ncHVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2UgKm1hc3RlciwKIAkJcmV0dXJuIHJldDsKIAogCWdwdS0+ZHJtID0gZHJtOwotCWdwdS0+ ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJZ3B1LT5mZW5jZV9jb250 ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJc3Bpbl9sb2NrX2luaXQoJmdwdS0+ ZmVuY2Vfc3BpbmxvY2spOwogCiAJSU5JVF9MSVNUX0hFQUQoJmdwdS0+YWN0aXZlX2NtZF9saXN0 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggYi9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5oCmluZGV4IDczYzI3OGRjMzcwNi4u OGM2YjgyNGU5ZDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2dwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKQEAgLTg5 LDcgKzg5LDcgQEAgc3RydWN0IGV0bmF2aXZfY2hpcF9pZGVudGl0eSB7CiAKIHN0cnVjdCBldG5h dml2X2V2ZW50IHsKIAlib29sIHVzZWQ7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZTsKIH07CiAKIHN0cnVjdCBldG5hdml2X2NtZGJ1ZjsKQEAgLTE2Myw3 ICsxNjMsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgewogCS8qIHZyYW0gbm9kZSB1c2VkIGlm IHRoZSBjbWRidWYgaXMgbWFwcGVkIHRocm91Z2ggdGhlIE1NVXYyICovCiAJc3RydWN0IGRybV9t bV9ub2RlIHZyYW1fbm9kZTsKIAkvKiBmZW5jZSBhZnRlciB3aGljaCB0aGlzIGJ1ZmZlciBpcyB0 byBiZSBkaXNwb3NlZCAqLwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2U7CiAJLyogdGFyZ2V0IGV4ZWMgc3RhdGUgKi8KIAl1MzIgZXhlY19zdGF0ZTsKIAkv KiBwZXIgR1BVIGluLWZsaWdodCBsaXN0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9y ZXF1ZXN0LmMKaW5kZXggNzRlZGUxZjUzMzcyLi4xZjkwYmMzZTE4OGQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKQEAgLTI2LDEyICsyNiwxMiBAQAogCiAjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKIAotc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X2RyaXZl cl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9mZW5j ZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJp OTE1IjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2ZlbmNlX2dl dF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCS8qIFRpbWVsaW5l cyBhcmUgYm91bmQgYnkgZXZpY3Rpb24gdG8gYSBWTS4gSG93ZXZlciwgc2luY2UKIAkgKiB3ZSBv bmx5IGhhdmUgYSBnbG9iYWwgc2Vxbm8gYXQgdGhlIG1vbWVudCwgd2Ugb25seSBoYXZlCkBAIC00 MiwxMiArNDIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVsaW5l X25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKIAlyZXR1cm4gImdsb2JhbCI7CiB9CiAKLXN0YXRp YyBib29sIGk5MTVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBi b29sIGk5MTVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0 dXJuIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHRvX3JlcXVlc3QoZmVuY2UpKTsKIH0KIAot c3RhdGljIGJvb2wgaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVu Y2UpCitzdGF0aWMgYm9vbCBpOTE1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGk5MTVfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpKQogCQlyZXR1 cm4gZmFsc2U7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBib29sIGk5MTVfZmVuY2VfZW5hYmxl X3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0 aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsCitzdGF0 aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5jZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAog CQkJCSAgIGJvb2wgaW50ZXJydXB0aWJsZSwKIAkJCQkgICBzaWduZWQgbG9uZyB0aW1lb3V0X2pp ZmZpZXMpCiB7CkBAIC04NSwyNiArODUsMjYgQEAgc3RhdGljIHNpZ25lZCBsb25nIGk5MTVfZmVu Y2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLAogCXJldHVybiB0aW1lb3V0X2ppZmZpZXM7CiB9 CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2Us IGNoYXIgKnN0ciwgaW50IHNpemUpCitzdGF0aWMgdm9pZCBpOTE1X2ZlbmNlX3ZhbHVlX3N0cihz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlzbnByaW50 ZihzdHIsIHNpemUsICIldSIsIGZlbmNlLT5zZXFubyk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVf ZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwK K3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlLCBjaGFyICpzdHIsCiAJCQkJCSAgaW50IHNpemUpCiB7CiAJc25wcmludGYoc3Ry LCBzaXplLCAiJXUiLAogCQkgaW50ZWxfZW5naW5lX2dldF9zZXFubyh0b19yZXF1ZXN0KGZlbmNl KS0+ZW5naW5lKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfcmVsZWFzZShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKQorc3RhdGljIHZvaWQgaTkxNV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gdG9f cmVxdWVzdChmZW5jZSk7CiAKIAlrbWVtX2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywg cmVxKTsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2ZlbmNlX29wcyA9IHsKK2Nv bnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGk5MTVfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVy X25hbWUgPSBpOTE1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUg PSBpOTE1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gaTkx NV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLApAQCAtNDEyLDExICs0MTIsMTEgQEAgaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCWdvdG8gZXJy OwogCiAJc3Bpbl9sb2NrX2luaXQoJnJlcS0+bG9jayk7Ci0JZmVuY2VfaW5pdCgmcmVxLT5mZW5j ZSwKLQkJICAgJmk5MTVfZmVuY2Vfb3BzLAotCQkgICAmcmVxLT5sb2NrLAotCQkgICBlbmdpbmUt PmZlbmNlX2NvbnRleHQsCi0JCSAgIHNlcW5vKTsKKwlkbWFfZmVuY2VfaW5pdCgmcmVxLT5mZW5j ZSwKKwkJICAgICAgICZpOTE1X2ZlbmNlX29wcywKKwkJICAgICAgICZyZXEtPmxvY2ssCisJCSAg ICAgICBlbmdpbmUtPmZlbmNlX2NvbnRleHQsCisJCSAgICAgICBzZXFubyk7CiAKIAlpOTE1X3N3 X2ZlbmNlX2luaXQoJnJlcS0+c3VibWl0LCBzdWJtaXRfbm90aWZ5KTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCmluZGV4IDk3NGJkN2JjYzgwMS4uYmNlZWFhM2E1MTkz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCkBAIC0yNSw3ICsyNSw3 IEBACiAjaWZuZGVmIEk5MTVfR0VNX1JFUVVFU1RfSAogI2RlZmluZSBJOTE1X0dFTV9SRVFVRVNU X0gKIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNl Lmg+CiAKICNpbmNsdWRlICJpOTE1X2dlbS5oIgogI2luY2x1ZGUgImk5MTVfc3dfZmVuY2UuaCIK QEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IGludGVsX3NpZ25hbF9ub2RlIHsKICAqIFRoZSByZXF1 ZXN0cyBhcmUgcmVmZXJlbmNlIGNvdW50ZWQuCiAgKi8KIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCB7Ci0Jc3RydWN0IGZlbmNlIGZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgZmVuY2U7CiAJ c3BpbmxvY2tfdCBsb2NrOwogCiAJLyoqIE9uIFdoaWNoIHJpbmcgdGhpcyByZXF1ZXN0IHdhcyBn ZW5lcmF0ZWQgKi8KQEAgLTE0NSw5ICsxNDUsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgewogCXN0cnVjdCBsaXN0X2hlYWQgZXhlY2xpc3RfbGluazsKIH07CiAKLWV4dGVybiBjb25z dCBzdHJ1Y3QgZmVuY2Vfb3BzIGk5MTVfZmVuY2Vfb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBk bWFfZmVuY2Vfb3BzIGk5MTVfZmVuY2Vfb3BzOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgZmVuY2Vf aXNfaTkxNShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lz X2k5MTUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGZlbmNlLT5vcHMgPT0g Jmk5MTVfZmVuY2Vfb3BzOwogfQpAQCAtMTcyLDcgKzE3Miw3IEBAIGk5MTVfZ2VtX3JlcXVlc3Rf Z2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIH0KIAogc3RhdGlj IGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgotdG9fcmVxdWVzdChzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKQordG9fcmVxdWVzdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAkv KiBXZSBhc3N1bWUgdGhhdCBOVUxMIGZlbmNlL3JlcXVlc3QgYXJlIGludGVyb3BlcmFibGUgKi8K IAlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0LCBmZW5j ZSkgIT0gMCk7CkBAIC0xODMsMTkgKzE4MywxOSBAQCB0b19yZXF1ZXN0KHN0cnVjdCBmZW5jZSAq ZmVuY2UpCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCiBpOTE1 X2dlbV9yZXF1ZXN0X2dldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQly ZXR1cm4gdG9fcmVxdWVzdChmZW5jZV9nZXQoJnJlcS0+ZmVuY2UpKTsKKwlyZXR1cm4gdG9fcmVx dWVzdChkbWFfZmVuY2VfZ2V0KCZyZXEtPmZlbmNlKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JjdShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1cm4gdG9fcmVxdWVzdChmZW5j ZV9nZXRfcmN1KCZyZXEtPmZlbmNlKSk7CisJcmV0dXJuIHRvX3JlcXVlc3QoZG1hX2ZlbmNlX2dl dF9yY3UoJnJlcS0+ZmVuY2UpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCiBpOTE1X2dlbV9y ZXF1ZXN0X3B1dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlmZW5jZV9w dXQoJnJlcS0+ZmVuY2UpOworCWRtYV9mZW5jZV9wdXQoJnJlcS0+ZmVuY2UpOwogfQogCiBzdGF0 aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICoqcGRzdCwKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBfX2k5MTVfZ2VtX2FjdGl2ZV9n ZXRfcmN1KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSkKIAkJICogY29tcGls ZXIuCiAJCSAqCiAJCSAqIFRoZSBhdG9taWMgb3BlcmF0aW9uIGF0IHRoZSBoZWFydCBvZgotCQkg KiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yY3UoKSwgc2VlIGZlbmNlX2dldF9yY3UoKSwgaXMKKwkJ ICogaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmN1KCksIHNlZSBkbWFfZmVuY2VfZ2V0X3JjdSgpLCBp cwogCQkgKiBhdG9taWNfaW5jX25vdF96ZXJvKCkgd2hpY2ggaXMgb25seSBhIGZ1bGwgbWVtb3J5 IGJhcnJpZXIKIAkJICogd2hlbiBzdWNjZXNzZnVsLiBUaGF0IGlzLCBpZiBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9yY3UoKQogCQkgKiByZXR1cm5zIHRoZSByZXF1ZXN0IChhbmQgc28gd2l0aCB0aGUg cmVmZXJlbmNlIGNvdW50ZWQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c3dfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwppbmRleCAx ZTVjYmM1ODVjYTIuLjgxODUwMDJkN2VjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zd19mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVu Y2UuYwpAQCAtOCw3ICs4LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2lu Y2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAjaW5j bHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KIAogI2luY2x1ZGUgImk5MTVfc3dfZmVuY2UuaCIK QEAgLTIyNiw0OSArMjI2LDUwIEBAIGludCBpOTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKHN0 cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAlyZXR1cm4gcGVuZGluZzsKIH0KIAotc3RydWN0 IGRtYV9mZW5jZV9jYiB7Ci0Jc3RydWN0IGZlbmNlX2NiIGJhc2U7CitzdHJ1Y3QgaTkxNV9zd19k bWFfZmVuY2VfY2IgeworCXN0cnVjdCBkbWFfZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgaTkxNV9z d19mZW5jZSAqZmVuY2U7Ci0Jc3RydWN0IGZlbmNlICpkbWE7CisJc3RydWN0IGRtYV9mZW5jZSAq ZG1hOwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwogfTsKIAogc3RhdGljIHZvaWQgdGltZXJf aTkxNV9zd19mZW5jZV93YWtlKHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKLQlzdHJ1Y3QgZG1hX2Zl bmNlX2NiICpjYiA9IChzdHJ1Y3QgZG1hX2ZlbmNlX2NiICopZGF0YTsKKwlzdHJ1Y3QgaTkxNV9z d19kbWFfZmVuY2VfY2IgKmNiID0gKHN0cnVjdCBpOTE1X3N3X2RtYV9mZW5jZV9jYiAqKWRhdGE7 CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJhc3luY2hyb25vdXMgd2FpdCBvbiBmZW5jZSAlczol czoleCB0aW1lZCBvdXRcbiIsCiAJICAgICAgIGNiLT5kbWEtPm9wcy0+Z2V0X2RyaXZlcl9uYW1l KGNiLT5kbWEpLAogCSAgICAgICBjYi0+ZG1hLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGNiLT5k bWEpLAogCSAgICAgICBjYi0+ZG1hLT5zZXFubyk7Ci0JZmVuY2VfcHV0KGNiLT5kbWEpOworCWRt YV9mZW5jZV9wdXQoY2ItPmRtYSk7CiAJY2ItPmRtYSA9IE5VTEw7CiAKIAlpOTE1X3N3X2ZlbmNl X2NvbW1pdChjYi0+ZmVuY2UpOwogCWNiLT50aW1lci5mdW5jdGlvbiA9IE5VTEw7CiB9CiAKLXN0 YXRpYyB2b2lkIGRtYV9pOTE1X3N3X2ZlbmNlX3dha2Uoc3RydWN0IGZlbmNlICpkbWEsIHN0cnVj dCBmZW5jZV9jYiAqZGF0YSkKK3N0YXRpYyB2b2lkIGRtYV9pOTE1X3N3X2ZlbmNlX3dha2Uoc3Ry dWN0IGRtYV9mZW5jZSAqZG1hLAorCQkJCSAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmRhdGEpCiB7 Ci0Jc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IgPSBjb250YWluZXJfb2YoZGF0YSwgdHlwZW9mKCpj YiksIGJhc2UpOworCXN0cnVjdCBpOTE1X3N3X2RtYV9mZW5jZV9jYiAqY2IgPSBjb250YWluZXJf b2YoZGF0YSwgdHlwZW9mKCpjYiksIGJhc2UpOwogCiAJZGVsX3RpbWVyX3N5bmMoJmNiLT50aW1l cik7CiAJaWYgKGNiLT50aW1lci5mdW5jdGlvbikKIAkJaTkxNV9zd19mZW5jZV9jb21taXQoY2It PmZlbmNlKTsKLQlmZW5jZV9wdXQoY2ItPmRtYSk7CisJZG1hX2ZlbmNlX3B1dChjYi0+ZG1hKTsK IAogCWtmcmVlKGNiKTsKIH0KIAogaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0 cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKLQkJCQkgIHN0cnVjdCBmZW5jZSAqZG1hLAorCQkJ CSAgc3RydWN0IGRtYV9mZW5jZSAqZG1hLAogCQkJCSAgdW5zaWduZWQgbG9uZyB0aW1lb3V0LAog CQkJCSAgZ2ZwX3QgZ2ZwKQogewotCXN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiOworCXN0cnVjdCBp OTE1X3N3X2RtYV9mZW5jZV9jYiAqY2I7CiAJaW50IHJldDsKIAotCWlmIChmZW5jZV9pc19zaWdu YWxlZChkbWEpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZG1hKSkKIAkJcmV0dXJuIDA7 CiAKIAljYiA9IGttYWxsb2Moc2l6ZW9mKCpjYiksIGdmcCk7CkBAIC0yNzYsNyArMjc3LDcgQEAg aW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpm ZW5jZSwKIAkJaWYgKCFnZnBmbGFnc19hbGxvd19ibG9ja2luZyhnZnApKQogCQkJcmV0dXJuIC1F Tk9NRU07CiAKLQkJcmV0dXJuIGZlbmNlX3dhaXQoZG1hLCBmYWxzZSk7CisJCXJldHVybiBkbWFf ZmVuY2Vfd2FpdChkbWEsIGZhbHNlKTsKIAl9CiAKIAljYi0+ZmVuY2UgPSBpOTE1X3N3X2ZlbmNl X2dldChmZW5jZSk7CkBAIC0yODcsMTEgKzI4OCwxMSBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2Fp dF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkgICAgICB0aW1lcl9p OTE1X3N3X2ZlbmNlX3dha2UsICh1bnNpZ25lZCBsb25nKWNiLAogCQkgICAgICBUSU1FUl9JUlFT QUZFKTsKIAlpZiAodGltZW91dCkgewotCQljYi0+ZG1hID0gZmVuY2VfZ2V0KGRtYSk7CisJCWNi LT5kbWEgPSBkbWFfZmVuY2VfZ2V0KGRtYSk7CiAJCW1vZF90aW1lcigmY2ItPnRpbWVyLCByb3Vu ZF9qaWZmaWVzX3VwKGppZmZpZXMgKyB0aW1lb3V0KSk7CiAJfQogCi0JcmV0ID0gZmVuY2VfYWRk X2NhbGxiYWNrKGRtYSwgJmNiLT5iYXNlLCBkbWFfaTkxNV9zd19mZW5jZV93YWtlKTsKKwlyZXQg PSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGRtYSwgJmNiLT5iYXNlLCBkbWFfaTkxNV9zd19mZW5j ZV93YWtlKTsKIAlpZiAocmV0ID09IDApIHsKIAkJcmV0ID0gMTsKIAl9IGVsc2UgewpAQCAtMzA1 LDE2ICszMDYsMTYgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBp OTE1X3N3X2ZlbmNlICpmZW5jZSwKIAogaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRp b24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRp b25fb2JqZWN0ICpyZXN2LAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpleGNsdWRl LAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqZXhjbHVkZSwKIAkJCQkgICAg Ym9vbCB3cml0ZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0LAogCQkJCSAgICBnZnBf dCBnZnApCiB7Ci0Jc3RydWN0IGZlbmNlICpleGNsOworCXN0cnVjdCBkbWFfZmVuY2UgKmV4Y2w7 CiAJaW50IHJldCA9IDAsIHBlbmRpbmc7CiAKIAlpZiAod3JpdGUpIHsKLQkJc3RydWN0IGZlbmNl ICoqc2hhcmVkOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICoqc2hhcmVkOwogCQl1bnNpZ25lZCBpbnQg Y291bnQsIGk7CiAKIAkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHJl c3YsCkBAIC0zMzksNyArMzQwLDcgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRp b24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQl9CiAKIAkJZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspCi0JCQlmZW5jZV9wdXQoc2hhcmVkW2ldKTsKKwkJCWRtYV9mZW5jZV9wdXQo c2hhcmVkW2ldKTsKIAkJa2ZyZWUoc2hhcmVkKTsKIAl9IGVsc2UgewogCQlleGNsID0gcmVzZXJ2 YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShyZXN2KTsKQEAgLTM1Niw3ICszNTcsNyBAQCBpbnQg aTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbihzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVu Y2UsCiAJCQlyZXQgfD0gcGVuZGluZzsKIAl9CiAKLQlmZW5jZV9wdXQoZXhjbCk7CisJZG1hX2Zl bmNlX3B1dChleGNsKTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3 X2ZlbmNlLmgKaW5kZXggMzczMTQxNjAyY2E0Li5jZDIzOWU5MmY2N2YgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3N3X2ZlbmNlLmgKQEAgLTE2LDggKzE2LDggQEAKICNpbmNsdWRlIDxsaW51eC93 YWl0Lmg+CiAKIHN0cnVjdCBjb21wbGV0aW9uOwotc3RydWN0IGZlbmNlOwotc3RydWN0IGZlbmNl X29wczsKK3N0cnVjdCBkbWFfZmVuY2U7CitzdHJ1Y3QgZG1hX2ZlbmNlX29wczsKIHN0cnVjdCBy ZXNlcnZhdGlvbl9vYmplY3Q7CiAKIHN0cnVjdCBpOTE1X3N3X2ZlbmNlIHsKQEAgLTQ3LDEyICs0 NywxMiBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9zd19mZW5jZShzdHJ1Y3QgaTkxNV9zd19m ZW5jZSAqZmVuY2UsCiAJCQkJIHN0cnVjdCBpOTE1X3N3X2ZlbmNlICphZnRlciwKIAkJCQkgd2Fp dF9xdWV1ZV90ICp3cSk7CiBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAotCQkJCSAgc3RydWN0IGZlbmNlICpkbWEsCisJCQkJICBz dHJ1Y3QgZG1hX2ZlbmNlICpkbWEsCiAJCQkJICB1bnNpZ25lZCBsb25nIHRpbWVvdXQsCiAJCQkJ ICBnZnBfdCBnZnApOwogaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpyZXN2LAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpleGNsdWRlLAorCQkJCSAg ICBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqZXhjbHVkZSwKIAkJCQkgICAgYm9vbCB3cml0 ZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0LAogCQkJCSAgICBnZnBfdCBnZnApOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCmluZGV4IDE3ODc5ODAwMmE3My4uNWM5MTJjMjVmN2Qz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCkBAIC00OTEsNyArNDkxLDcgQEAgVFJBQ0Vf RVZFTlQoaTkxNV9nZW1fcmluZ19kaXNwYXRjaCwKIAkJCSAgIF9fZW50cnktPnJpbmcgPSByZXEt PmVuZ2luZS0+aWQ7CiAJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJlcS0+ZmVuY2Uuc2Vxbm87CiAJ CQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwotCQkJICAgZmVuY2VfZW5hYmxlX3N3X3NpZ25h bGluZygmcmVxLT5mZW5jZSk7CisJCQkgICBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZygm cmVxLT5mZW5jZSk7CiAJCQkgICApLAogCiAJICAgIFRQX3ByaW50aygiZGV2PSV1LCByaW5nPSV1 LCBzZXFubz0ldSwgZmxhZ3M9JXgiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1 bWJzLmMKaW5kZXggMjNmYzEwNDJmZWQ0Li5kMGIzNjk0NmE1MzEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwpAQCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIodm9pZCAqYXJnKQogCQkJCQkJICZyZXF1ZXN0LT5z aWduYWxpbmcud2FpdCk7CiAKIAkJCWxvY2FsX2JoX2Rpc2FibGUoKTsKLQkJCWZlbmNlX3NpZ25h bCgmcmVxdWVzdC0+ZmVuY2UpOworCQkJZG1hX2ZlbmNlX3NpZ25hbCgmcmVxdWVzdC0+ZmVuY2Up OwogCQkJbG9jYWxfYmhfZW5hYmxlKCk7IC8qIGtpY2sgc3RhcnQgdGhlIHRhc2tsZXRzICovCiAK IAkJCS8qIEZpbmQgdGhlIG5leHQgb2xkZXN0IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggMmRjOTQ4MTJiZWE1Li44 Y2NlYjM0NWFhMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2lu ZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0y NDUsNyArMjQ1LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5leGVjbGlzdF9x dWV1ZSk7CiAJc3Bpbl9sb2NrX2luaXQoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7CiAKLQllbmdp bmUtPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOworCWVuZ2luZS0+ZmVu Y2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCiAJaW50ZWxfZW5naW5l X2luaXRfcmVxdWVzdHMoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2soZW5n aW5lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKaW5kZXggZDBkYTUyZjJhODA2Li4wNmI1MzE3ZjI2N2Ug MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5oCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBtc21fZ2VtX3Z1 bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiBpbnQgbXNtX2dlbV9zeW5jX29iamVj dChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0 ICpmY3R4LCBib29sIGV4Y2x1c2l2ZSk7CiB2b2lkIG1zbV9nZW1fbW92ZV90b19hY3RpdmUoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCi0JCXN0cnVjdCBtc21fZ3B1ICpncHUsIGJvb2wgZXhj bHVzaXZlLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJc3RydWN0IGRtYV9tc21fZ3B1ICpncHUs IGJvb2wgZXhjbHVzaXZlLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CiB2b2lkIG1zbV9nZW1f bW92ZV90b19pbmFjdGl2ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiBpbnQgbXNtX2dl bV9jcHVfcHJlcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgdWludDMyX3Qgb3AsIGt0aW1l X3QgKnRpbWVvdXQpOwogaW50IG1zbV9nZW1fY3B1X2Zpbmkoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMKaW5kZXggYTliOWIxYzk1YTJlLi40MjdhYzc0 NzQyYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuYwpAQCAtMTUsNyArMTUsNyBAQAogICogdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgog ICovCiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5j ZS5oPgogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9mZW5jZS5oIgpAQCAt MzIsNyArMzIsNyBAQCBtc21fZmVuY2VfY29udGV4dF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBjb25zdCBjaGFyICpuYW1lKQogCiAJZmN0eC0+ZGV2ID0gZGV2OwogCWZjdHgtPm5hbWUg PSBuYW1lOwotCWZjdHgtPmNvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOworCWZjdHgt PmNvbnRleHQgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygxKTsKIAlpbml0X3dhaXRxdWV1ZV9o ZWFkKCZmY3R4LT5ldmVudCk7CiAJc3Bpbl9sb2NrX2luaXQoJmZjdHgtPnNwaW5sb2NrKTsKIApA QCAtNDQsNyArNDQsNyBAQCB2b2lkIG1zbV9mZW5jZV9jb250ZXh0X2ZyZWUoc3RydWN0IG1zbV9m ZW5jZV9jb250ZXh0ICpmY3R4KQogCWtmcmVlKGZjdHgpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv b2wgZmVuY2VfY29tcGxldGVkKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwgdWludDMy X3QgZmVuY2UpCitzdGF0aWMgaW5saW5lIGJvb2wgZG1hX2ZlbmNlX2NvbXBsZXRlZChzdHJ1Y3Qg bXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIHVpbnQzMl90IGZlbmNlKQogewogCXJldHVybiAoaW50 MzJfdCkoZmN0eC0+Y29tcGxldGVkX2ZlbmNlIC0gZmVuY2UpID49IDA7CiB9CkBAIC02Myw3ICs2 Myw3IEBAIGludCBtc21fd2FpdF9mZW5jZShzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgs IHVpbnQzMl90IGZlbmNlLAogCiAJaWYgKCF0aW1lb3V0KSB7CiAJCS8qIG5vLXdhaXQ6ICovCi0J CXJldCA9IGZlbmNlX2NvbXBsZXRlZChmY3R4LCBmZW5jZSkgPyAwIDogLUVCVVNZOworCQlyZXQg PSBkbWFfZmVuY2VfY29tcGxldGVkKGZjdHgsIGZlbmNlKSA/IDAgOiAtRUJVU1k7CiAJfSBlbHNl IHsKIAkJdW5zaWduZWQgbG9uZyByZW1haW5pbmdfamlmZmllcyA9IHRpbWVvdXRfdG9famlmZmll cyh0aW1lb3V0KTsKIApAQCAtMTAwLDUyICsxMDAsNTIgQEAgdm9pZCBtc21fdXBkYXRlX2ZlbmNl KHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwgdWludDMyX3QgZmVuY2UpCiAKIHN0cnVj dCBtc21fZmVuY2UgewogCXN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eDsKLQlzdHJ1Y3Qg ZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiB9OwogCi1zdGF0aWMgaW5saW5l IHN0cnVjdCBtc21fZmVuY2UgKnRvX21zbV9mZW5jZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3Rh dGljIGlubGluZSBzdHJ1Y3QgbXNtX2ZlbmNlICp0b19tc21fZmVuY2Uoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IG1zbV9mZW5j ZSwgYmFzZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICptc21fZmVuY2VfZ2V0X2RyaXZlcl9u YW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dl dF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gIm1zbSI7 CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICptc21fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3Ry dWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICptc21fZmVuY2VfZ2V0X3RpbWVs aW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IG1zbV9mZW5jZSAq ZiA9IHRvX21zbV9mZW5jZShmZW5jZSk7CiAJcmV0dXJuIGYtPmZjdHgtPm5hbWU7CiB9CiAKLXN0 YXRpYyBib29sIG1zbV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitzdGF0aWMgYm9vbCBtc21fZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgbXNtX2ZlbmNlX3Np Z25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCBtc21fZmVuY2Vfc2lnbmFs ZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IG1zbV9mZW5jZSAqZiA9IHRv X21zbV9mZW5jZShmZW5jZSk7Ci0JcmV0dXJuIGZlbmNlX2NvbXBsZXRlZChmLT5mY3R4LCBmLT5i YXNlLnNlcW5vKTsKKwlyZXR1cm4gZG1hX2ZlbmNlX2NvbXBsZXRlZChmLT5mY3R4LCBmLT5iYXNl LnNlcW5vKTsKIH0KIAotc3RhdGljIHZvaWQgbXNtX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNl ICpmZW5jZSkKK3N0YXRpYyB2b2lkIG1zbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKQogewogCXN0cnVjdCBtc21fZmVuY2UgKmYgPSB0b19tc21fZmVuY2UoZmVuY2UpOwog CWtmcmVlX3JjdShmLCBiYXNlLnJjdSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vf b3BzIG1zbV9mZW5jZV9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMg bXNtX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gbXNtX2ZlbmNlX2dldF9kcml2 ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBtc21fZmVuY2VfZ2V0X3RpbWVsaW5lX25h bWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBtc21fZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKIAku c2lnbmFsZWQgPSBtc21fZmVuY2Vfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dh aXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0gbXNtX2Zl bmNlX3JlbGVhc2UsCiB9OwogCi1zdHJ1Y3QgZmVuY2UgKgorc3RydWN0IGRtYV9mZW5jZSAqCiBt c21fZmVuY2VfYWxsb2Moc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4KQogewogCXN0cnVj dCBtc21fZmVuY2UgKmY7CkBAIC0xNTYsOCArMTU2LDggQEAgbXNtX2ZlbmNlX2FsbG9jKHN0cnVj dCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCkKIAogCWYtPmZjdHggPSBmY3R4OwogCi0JZmVuY2Vf aW5pdCgmZi0+YmFzZSwgJm1zbV9mZW5jZV9vcHMsICZmY3R4LT5zcGlubG9jaywKLQkJCWZjdHgt PmNvbnRleHQsICsrZmN0eC0+bGFzdF9mZW5jZSk7CisJZG1hX2ZlbmNlX2luaXQoJmYtPmJhc2Us ICZtc21fZmVuY2Vfb3BzLCAmZmN0eC0+c3BpbmxvY2ssCisJCSAgICAgICBmY3R4LT5jb250ZXh0 LCArK2ZjdHgtPmxhc3RfZmVuY2UpOwogCiAJcmV0dXJuICZmLT5iYXNlOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2ZlbmNlLmgKaW5kZXggY2ViNWIzZDMxNGI0Li41NjA2MWFhMTk1OWQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZmVuY2UuaApAQCAtNDEsNiArNDEsNiBAQCBpbnQgbXNtX3F1ZXVlX2ZlbmNlX2NiKHN0 cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwKIAkJc3RydWN0IG1zbV9mZW5jZV9jYiAqY2Is IHVpbnQzMl90IGZlbmNlKTsKIHZvaWQgbXNtX3VwZGF0ZV9mZW5jZShzdHJ1Y3QgbXNtX2ZlbmNl X2NvbnRleHQgKmZjdHgsIHVpbnQzMl90IGZlbmNlKTsKIAotc3RydWN0IGZlbmNlICogbXNtX2Zl bmNlX2FsbG9jKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCk7CitzdHJ1Y3QgZG1hX2Zl bmNlICogbXNtX2ZlbmNlX2FsbG9jKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCk7CiAK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYwppbmRleCBiNmFjMjdlMzE5MjkuLjU3ZGI3ZGJiYjYx OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKQEAgLTUyMSw3ICs1MjEsNyBAQCBpbnQgbXNtX2dlbV9z eW5jX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIHsKIAlzdHJ1Y3QgbXNtX2dl bV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKIAlpbnQgaSwgcmV0OwogCiAJaWYgKCFleGNsdXNpdmUpIHsKQEAgLTU0MCw3 ICs1NDAsNyBAQCBpbnQgbXNtX2dlbV9zeW5jX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiwKIAkJZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wobXNtX29iai0+cmVz dik7CiAJCS8qIGRvbid0IG5lZWQgdG8gd2FpdCBvbiBvdXIgb3duIGZlbmNlcywgc2luY2Ugcmlu ZyBpcyBmaWZvICovCiAJCWlmIChmZW5jZSAmJiAoZmVuY2UtPmNvbnRleHQgIT0gZmN0eC0+Y29u dGV4dCkpIHsKLQkJCXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOworCQkJcmV0ID0gZG1h X2ZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0Owog CQl9CkBAIC01NTMsNyArNTUzLDcgQEAgaW50IG1zbV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmosCiAJCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChm b2JqLT5zaGFyZWRbaV0sCiAJCQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfaGVsZChtc21fb2JqLT5y ZXN2KSk7CiAJCWlmIChmZW5jZS0+Y29udGV4dCAhPSBmY3R4LT5jb250ZXh0KSB7Ci0JCQlyZXQg PSBmZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKKwkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNl LCB0cnVlKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQpAQCAtNTYzLDcgKzU2 Myw3IEBAIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq LAogfQogCiB2b2lkIG1zbV9nZW1fbW92ZV90b19hY3RpdmUoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmosCi0JCXN0cnVjdCBtc21fZ3B1ICpncHUsIGJvb2wgZXhjbHVzaXZlLCBzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorCQlzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBib29sIGV4Y2x1c2l2ZSwgc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2JqID0g dG9fbXNtX2JvKG9iaik7CiAJV0FSTl9PTihtc21fb2JqLT5tYWR2ICE9IE1TTV9NQURWX1dJTExO RUVEKTsKQEAgLTYxNiwxMCArNjE2LDEwIEBAIGludCBtc21fZ2VtX2NwdV9maW5pKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKQogfQogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi1zdGF0aWMg dm9pZCBkZXNjcmliZV9mZW5jZShzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjb25zdCBjaGFyICp0eXBl LAorc3RhdGljIHZvaWQgZGVzY3JpYmVfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNv bnN0IGNoYXIgKnR5cGUsCiAJCXN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKLQlpZiAoIWZlbmNlX2lz X3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCiAJ CXNlcV9wcmludGYobSwgIlx0JTlzOiAlcyAlcyBzZXEgJXVcbiIsIHR5cGUsCiAJCQkJZmVuY2Ut Pm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKSwKIAkJCQlmZW5jZS0+b3BzLT5nZXRfdGltZWxp bmVfbmFtZShmZW5jZSksCkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBtc21fZ2VtX2Rlc2NyaWJl KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAJc3RydWN0 IG1zbV9nZW1fb2JqZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7CiAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdCAqcm9iaiA9IG1zbV9vYmotPnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0aW9u X29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CiAJdWludDY0X3Qgb2ZmID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZvYmotPnZt YV9ub2RlKTsKIAljb25zdCBjaGFyICptYWR2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCmluZGV4IGIy ZjEzY2ZlOTQ1ZS4uMmNiODU1MWZkYTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaApAQCAtMTA0LDcg KzEwNCw3IEBAIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCB7CiAJc3RydWN0IGxpc3RfaGVhZCBub2Rl OyAgIC8qIG5vZGUgaW4gZ3B1IHN1Ym1pdF9saXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBib19s aXN0OwogCXN0cnVjdCB3d19hY3F1aXJlX2N0eCB0aWNrZXQ7Ci0Jc3RydWN0IGZlbmNlICpmZW5j ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgcGlkICpwaWQ7ICAgIC8qIHN1 Ym1pdHRpbmcgcHJvY2VzcyAqLwogCWJvb2wgdmFsaWQ7ICAgICAgICAgLyogdHJ1ZSBpZiBubyBj bWRzdHJlYW0gcGF0Y2hpbmcgbmVlZGVkICovCiAJdW5zaWduZWQgaW50IG5yX2NtZHM7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKaW5kZXggYjZhMGYzN2E2NWYzLi4yNWU4Nzg2ZmE0 Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKQEAgLTYwLDcgKzYwLDcgQEAg c3RhdGljIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0X2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiB2b2lkIG1zbV9nZW1fc3VibWl0X2ZyZWUoc3RydWN0IG1zbV9nZW1fc3Vi bWl0ICpzdWJtaXQpCiB7Ci0JZmVuY2VfcHV0KHN1Ym1pdC0+ZmVuY2UpOworCWRtYV9mZW5jZV9w dXQoc3VibWl0LT5mZW5jZSk7CiAJbGlzdF9kZWwoJnN1Ym1pdC0+bm9kZSk7CiAJcHV0X3BpZChz dWJtaXQtPnBpZCk7CiAJa2ZyZWUoc3VibWl0KTsKQEAgLTM4MCw3ICszODAsNyBAQCBpbnQgbXNt X2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlz dHJ1Y3QgbXNtX2ZpbGVfcHJpdmF0ZSAqY3R4ID0gZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3RydWN0 IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQ7CiAJc3RydWN0IG1zbV9ncHUgKmdwdSA9IHByaXYtPmdw dTsKLQlzdHJ1Y3QgZmVuY2UgKmluX2ZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpp bl9mZW5jZSA9IE5VTEw7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlID0gTlVMTDsKIAlp bnQgb3V0X2ZlbmNlX2ZkID0gLTE7CiAJdW5zaWduZWQgaTsKQEAgLTQzOSw3ICs0MzksNyBAQCBp bnQgbXNtX2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJICovCiAKIAkJaWYgKGluX2ZlbmNlLT5jb250ZXh0ICE9IGdwdS0+ZmN0eC0+Y29udGV4 dCkgewotCQkJcmV0ID0gZmVuY2Vfd2FpdChpbl9mZW5jZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFf ZmVuY2Vfd2FpdChpbl9mZW5jZSwgdHJ1ZSk7CiAJCQlpZiAocmV0KQogCQkJCWdvdG8gb3V0Owog CQl9CkBAIC01NDIsNyArNTQyLDcgQEAgaW50IG1zbV9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIG91dDoKIAlpZiAoaW5fZmVuY2UpCi0JCWZl bmNlX3B1dChpbl9mZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoaW5fZmVuY2UpOwogCXN1Ym1pdF9j bGVhbnVwKHN1Ym1pdCk7CiAJaWYgKHJldCkKIAkJbXNtX2dlbV9zdWJtaXRfZnJlZShzdWJtaXQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9ncHUuYwppbmRleCA1YmIwOTgzOGI1YWUuLjMyNDk3MDdlNjgzNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZ3B1LmMKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCByZXRpcmVf c3VibWl0cyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCQlzdWJtaXQgPSBsaXN0X2ZpcnN0X2VudHJ5 KCZncHUtPnN1Ym1pdF9saXN0LAogCQkJCXN0cnVjdCBtc21fZ2VtX3N1Ym1pdCwgbm9kZSk7CiAK LQkJaWYgKGZlbmNlX2lzX3NpZ25hbGVkKHN1Ym1pdC0+ZmVuY2UpKSB7CisJCWlmIChkbWFfZmVu Y2VfaXNfc2lnbmFsZWQoc3VibWl0LT5mZW5jZSkpIHsKIAkJCXJldGlyZV9zdWJtaXQoZ3B1LCBz dWJtaXQpOwogCQl9IGVsc2UgewogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2JvLmMKaW5kZXggMzQzYjg2NTk0NzJjLi5lYzhhYzc1NmFhYjQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2JvLmMKQEAgLTgzLDEzICs4MywxMyBAQCBudjEwX2JvX2dldF90aWxlX3Jl Z2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaSkKIAogc3RhdGljIHZvaWQKIG52MTBf Ym9fcHV0X3RpbGVfcmVnaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBub3V2ZWF1 X2RybV90aWxlICp0aWxlLAotCQkJc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0o ZGV2KTsKIAogCWlmICh0aWxlKSB7CiAJCXNwaW5fbG9jaygmZHJtLT50aWxlLmxvY2spOwotCQl0 aWxlLT5mZW5jZSA9IChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqKWZlbmNlX2dldChmZW5jZSk7CisJ CXRpbGUtPmZlbmNlID0gKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICopZG1hX2ZlbmNlX2dldChmZW5j ZSk7CiAJCXRpbGUtPnVzZWQgPSBmYWxzZTsKIAkJc3Bpbl91bmxvY2soJmRybS0+dGlsZS5sb2Nr KTsKIAl9CkBAIC0xMjQzLDcgKzEyNDMsNyBAQCBub3V2ZWF1X2JvX3ZtX2NsZWFudXAoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5v dXZlYXVfYmRldihiby0+YmRldik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRybS0+ZGV2 OwotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woYm8t PnJlc3YpOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dl dF9leGNsKGJvLT5yZXN2KTsKIAogCW52MTBfYm9fcHV0X3RpbGVfcmVnaW9uKGRldiwgKm9sZF90 aWxlLCBmZW5jZSk7CiAJKm9sZF90aWxlID0gbmV3X3RpbGU7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2ZlbmNlLmMKaW5kZXggNGJiOWFiODkyYWUxLi5lOTUyOWVlNmJjMjMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAog I2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPgotI2lu Y2x1ZGUgPHRyYWNlL2V2ZW50cy9mZW5jZS5oPgorI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9kbWFf ZmVuY2UuaD4KIAogI2luY2x1ZGUgPG52aWYvY2w4MjZlLmg+CiAjaW5jbHVkZSA8bnZpZi9ub3Rp ZnkuaD4KQEAgLTM4LDExICszOCwxMSBAQAogI2luY2x1ZGUgIm5vdXZlYXVfZG1hLmgiCiAjaW5j bHVkZSAibm91dmVhdV9mZW5jZS5oIgogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBu b3V2ZWF1X2ZlbmNlX29wc191ZXZlbnQ7Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBu b3V2ZWF1X2ZlbmNlX29wc19sZWdhY3k7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9v cHMgbm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50Oworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVu Y2Vfb3BzIG5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qg bm91dmVhdV9mZW5jZSAqCi1mcm9tX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitmcm9tX2Zl bmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiBjb250YWluZXJfb2YoZmVu Y2UsIHN0cnVjdCBub3V2ZWF1X2ZlbmNlLCBiYXNlKTsKIH0KQEAgLTU4LDIzICs1OCwyMyBAQCBu b3V2ZWF1X2ZlbmNlX3NpZ25hbChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UpCiB7CiAJaW50 IGRyb3AgPSAwOwogCi0JZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmJhc2UpOworCWRtYV9m ZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+YmFzZSk7CiAJbGlzdF9kZWwoJmZlbmNlLT5oZWFk KTsKIAlyY3VfYXNzaWduX3BvaW50ZXIoZmVuY2UtPmNoYW5uZWwsIE5VTEwpOwogCi0JaWYgKHRl c3RfYml0KEZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAmZmVuY2UtPmJhc2UuZmxhZ3MpKSB7CisJaWYg KHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1VTRVJfQklUUywgJmZlbmNlLT5iYXNlLmZsYWdzKSkg ewogCQlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0gbm91dmVhdV9mY3R4KGZlbmNl KTsKIAogCQlpZiAoIS0tZmN0eC0+bm90aWZ5X3JlZikKIAkJCWRyb3AgPSAxOwogCX0KIAotCWZl bmNlX3B1dCgmZmVuY2UtPmJhc2UpOworCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAly ZXR1cm4gZHJvcDsKIH0KIAogc3RhdGljIHN0cnVjdCBub3V2ZWF1X2ZlbmNlICoKLW5vdXZlYXVf bG9jYWxfZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0p IHsKK25vdXZlYXVfbG9jYWxfZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBu b3V2ZWF1X2RybSAqZHJtKSB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfcHJpdiAqcHJpdiA9ICh2 b2lkKilkcm0tPmZlbmNlOwogCiAJaWYgKGZlbmNlLT5vcHMgIT0gJm5vdXZlYXVfZmVuY2Vfb3Bz X2xlZ2FjeSAmJgpAQCAtMjAxLDcgKzIwMSw3IEBAIG5vdXZlYXVfZmVuY2VfY29udGV4dF9uZXco c3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhCiAK IHN0cnVjdCBub3V2ZWF1X2ZlbmNlX3dvcmsgewogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwot CXN0cnVjdCBmZW5jZV9jYiBjYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGNiOwogCXZvaWQgKCpm dW5jKSh2b2lkICopOwogCXZvaWQgKmRhdGE7CiB9OwpAQCAtMjE0LDcgKzIxNCw3IEBAIG5vdXZl YXVfZmVuY2Vfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqa3dvcmspCiAJa2ZyZWUo d29yayk7CiB9CiAKLXN0YXRpYyB2b2lkIG5vdXZlYXVfZmVuY2Vfd29ya19jYihzdHJ1Y3QgZmVu Y2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQgbm91dmVhdV9mZW5j ZV93b3JrX2NiKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpj YikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV93b3JrICp3b3JrID0gY29udGFpbmVyX29mKGNi LCB0eXBlb2YoKndvcmspLCBjYik7CiAKQEAgLTIyMiwxMiArMjIyLDEyIEBAIHN0YXRpYyB2b2lk IG5vdXZlYXVfZmVuY2Vfd29ya19jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2Vf Y2IgKmNiKQogfQogCiB2b2lkCi1ub3V2ZWF1X2ZlbmNlX3dvcmsoc3RydWN0IGZlbmNlICpmZW5j ZSwKK25vdXZlYXVfZmVuY2Vfd29yayhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJICAgdm9p ZCAoKmZ1bmMpKHZvaWQgKiksIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2Vf d29yayAqd29yazsKIAotCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJaWYgKGRtYV9m ZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCiAJCWdvdG8gZXJyOwogCiAJd29yayA9IGttYWxsb2Mo c2l6ZW9mKCp3b3JrKSwgR0ZQX0tFUk5FTCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgbm91dmVhdV9m ZW5jZV93b3JrKHN0cnVjdCBmZW5jZSAqZmVuY2UsCiAJd29yay0+ZnVuYyA9IGZ1bmM7CiAJd29y ay0+ZGF0YSA9IGRhdGE7CiAKLQlpZiAoZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmd29yay0+ Y2IsIG5vdXZlYXVfZmVuY2Vfd29ya19jYikgPCAwKQorCWlmIChkbWFfZmVuY2VfYWRkX2NhbGxi YWNrKGZlbmNlLCAmd29yay0+Y2IsIG5vdXZlYXVfZmVuY2Vfd29ya19jYikgPCAwKQogCQlnb3Rv IGVycl9mcmVlOwogCXJldHVybjsKIApAQCAtMjY2LDE3ICsyNjYsMTcgQEAgbm91dmVhdV9mZW5j ZV9lbWl0KHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSwgc3RydWN0IG5vdXZlYXVfY2hhbm5l bCAqY2hhbikKIAlmZW5jZS0+dGltZW91dCAgPSBqaWZmaWVzICsgKDE1ICogSFopOwogCiAJaWYg KHByaXYtPnVldmVudCkKLQkJZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1X2ZlbmNl X29wc191ZXZlbnQsCi0JCQkgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwgKytmY3R4LT5z ZXF1ZW5jZSk7CisJCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJm5vdXZlYXVfZmVuY2Vf b3BzX3VldmVudCwKKwkJCSAgICAgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwgKytmY3R4 LT5zZXF1ZW5jZSk7CiAJZWxzZQotCQlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJm5vdXZlYXVf ZmVuY2Vfb3BzX2xlZ2FjeSwKLQkJCSAgICZmY3R4LT5sb2NrLCBmY3R4LT5jb250ZXh0LCArK2Zj dHgtPnNlcXVlbmNlKTsKKwkJZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmbm91dmVhdV9m ZW5jZV9vcHNfbGVnYWN5LAorCQkJICAgICAgICZmY3R4LT5sb2NrLCBmY3R4LT5jb250ZXh0LCAr K2ZjdHgtPnNlcXVlbmNlKTsKIAlrcmVmX2dldCgmZmN0eC0+ZmVuY2VfcmVmKTsKIAotCXRyYWNl X2ZlbmNlX2VtaXQoJmZlbmNlLT5iYXNlKTsKKwl0cmFjZV9kbWFfZmVuY2VfZW1pdCgmZmVuY2Ut PmJhc2UpOwogCXJldCA9IGZjdHgtPmVtaXQoZmVuY2UpOwogCWlmICghcmV0KSB7Ci0JCWZlbmNl X2dldCgmZmVuY2UtPmJhc2UpOworCQlkbWFfZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7CiAJCXNw aW5fbG9ja19pcnEoJmZjdHgtPmxvY2spOwogCiAJCWlmIChub3V2ZWF1X2ZlbmNlX3VwZGF0ZShj aGFuLCBmY3R4KSkKQEAgLTI5OCw3ICsyOTgsNyBAQCBub3V2ZWF1X2ZlbmNlX2RvbmUoc3RydWN0 IG5vdXZlYXVfZmVuY2UgKmZlbmNlKQogCQlzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuOwog CQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05B TEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKSkKKwkJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9G TEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKSkKIAkJCXJldHVybiB0cnVlOwog CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZmY3R4LT5sb2NrLCBmbGFncyk7CkBAIC0zMDcsMTEgKzMw NywxMSBAQCBub3V2ZWF1X2ZlbmNlX2RvbmUoc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlKQog CQkJbnZpZl9ub3RpZnlfcHV0KCZmY3R4LT5ub3RpZnkpOwogCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZmY3R4LT5sb2NrLCBmbGFncyk7CiAJfQotCXJldHVybiBmZW5jZV9pc19zaWduYWxlZCgm ZmVuY2UtPmJhc2UpOworCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJmZlbmNlLT5iYXNl KTsKIH0KIAogc3RhdGljIGxvbmcKLW5vdXZlYXVfZmVuY2Vfd2FpdF9sZWdhY3koc3RydWN0IGZl bmNlICpmLCBib29sIGludHIsIGxvbmcgd2FpdCkKK25vdXZlYXVfZmVuY2Vfd2FpdF9sZWdhY3ko c3RydWN0IGRtYV9mZW5jZSAqZiwgYm9vbCBpbnRyLCBsb25nIHdhaXQpCiB7CiAJc3RydWN0IG5v dXZlYXVfZmVuY2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAl1bnNpZ25lZCBsb25nIHNsZWVw X3RpbWUgPSBOU0VDX1BFUl9NU0VDIC8gMTAwMDsKQEAgLTM3OCw3ICszNzgsNyBAQCBub3V2ZWF1 X2ZlbmNlX3dhaXQoc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlLCBib29sIGxhenksIGJvb2wg aW50cikKIAlpZiAoIWxhenkpCiAJCXJldHVybiBub3V2ZWF1X2ZlbmNlX3dhaXRfYnVzeShmZW5j ZSwgaW50cik7CiAKLQlyZXQgPSBmZW5jZV93YWl0X3RpbWVvdXQoJmZlbmNlLT5iYXNlLCBpbnRy LCAxNSAqIEhaKTsKKwlyZXQgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KCZmZW5jZS0+YmFzZSwg aW50ciwgMTUgKiBIWik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAJZWxzZSBpZiAo IXJldCkKQEAgLTM5MSw3ICszOTEsNyBAQCBpbnQKIG5vdXZlYXVfZmVuY2Vfc3luYyhzdHJ1Y3Qg bm91dmVhdV9ibyAqbnZibywgc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgYm9vbCBleGNs dXNpdmUsIGJvb2wgaW50cikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0g Y2hhbi0+ZmVuY2U7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gbnZiby0+Ym8ucmVzdjsK IAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7CiAJc3RydWN0IG5vdXZlYXVf ZmVuY2UgKmY7CkBAIC00MjEsNyArNDIxLDcgQEAgbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBu b3V2ZWF1X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIGUKIAkJ fQogCiAJCWlmIChtdXN0X3dhaXQpCi0JCQlyZXQgPSBmZW5jZV93YWl0KGZlbmNlLCBpbnRyKTsK KwkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCBpbnRyKTsKIAogCQlyZXR1cm4gcmV0Owog CX0KQEAgLTQ0Niw3ICs0NDYsNyBAQCBub3V2ZWF1X2ZlbmNlX3N5bmMoc3RydWN0IG5vdXZlYXVf Ym8gKm52Ym8sIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGJvb2wgZQogCQl9CiAKIAkJ aWYgKG11c3Rfd2FpdCkKLQkJCXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIGludHIpOworCQkJcmV0 ID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGludHIpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC00 NTYsNyArNDU2LDcgQEAgdm9pZAogbm91dmVhdV9mZW5jZV91bnJlZihzdHJ1Y3Qgbm91dmVhdV9m ZW5jZSAqKnBmZW5jZSkKIHsKIAlpZiAoKnBmZW5jZSkKLQkJZmVuY2VfcHV0KCYoKnBmZW5jZSkt PmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCYoKnBmZW5jZSktPmJhc2UpOwogCSpwZmVuY2UgPSBO VUxMOwogfQogCkBAIC00ODQsMTIgKzQ4NCwxMiBAQCBub3V2ZWF1X2ZlbmNlX25ldyhzdHJ1Y3Qg bm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIHN5c21lbSwKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgY29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfZ2V0X2RyaXZlcl9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfZ2V0 X2RyaXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAibm91dmVh dSI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpub3V2ZWF1X2ZlbmNlX2dldF90aW1lbGluZV9u YW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICpub3V2ZWF1X2ZlbmNlX2dl dF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IG5vdXZlYXVf ZmVuY2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFu ICpmY3R4ID0gbm91dmVhdV9mY3R4KGZlbmNlKTsKQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMg Y29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2Ug KmYpCiAgKiByZXN1bHQuIFRoZSBkcm0gbm9kZSBzaG91bGQgc3RpbGwgYmUgdGhlcmUsIHNvIHdl IGNhbiBkZXJpdmUgdGhlIGluZGV4IGZyb20KICAqIHRoZSBmZW5jZSBjb250ZXh0LgogICovCi1z dGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKK3N0 YXRpYyBib29sIG5vdXZlYXVfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZikK IHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UgPSBmcm9tX2ZlbmNlKGYpOwogCXN0cnVj dCBub3V2ZWF1X2ZlbmNlX2NoYW4gKmZjdHggPSBub3V2ZWF1X2ZjdHgoZmVuY2UpOwpAQCAtNTE5 LDcgKzUxOSw3IEBAIHN0YXRpYyBib29sIG5vdXZlYXVfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0 IGZlbmNlICpmKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBib29sIG5vdXZlYXVfZmVuY2Vf bm9fc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIG5vdXZlYXVfZmVuY2Vf bm9fc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVu Y2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIApAQCAtNTMwLDMwICs1MzAsMzAgQEAgc3RhdGlj IGJvb2wgbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQogCVdBUk5f T04oYXRvbWljX3JlYWQoJmZlbmNlLT5iYXNlLnJlZmNvdW50LnJlZmNvdW50KSA8PSAxKTsKIAog CS8qCi0JICogVGhpcyBuZWVkcyB1ZXZlbnRzIHRvIHdvcmsgY29ycmVjdGx5LCBidXQgZmVuY2Vf YWRkX2NhbGxiYWNrIHJlbGllcyBvbgorCSAqIFRoaXMgbmVlZHMgdWV2ZW50cyB0byB3b3JrIGNv cnJlY3RseSwgYnV0IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2sgcmVsaWVzIG9uCiAJICogYmVpbmcg YWJsZSB0byBlbmFibGUgc2lnbmFsaW5nLiBJdCB3aWxsIHN0aWxsIGdldCBzaWduYWxlZCBldmVu dHVhbGx5LAogCSAqIGp1c3Qgbm90IHJpZ2h0IGF3YXkuCiAJICovCiAJaWYgKG5vdXZlYXVfZmVu Y2VfaXNfc2lnbmFsZWQoZikpIHsKIAkJbGlzdF9kZWwoJmZlbmNlLT5oZWFkKTsKIAotCQlmZW5j ZV9wdXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCQly ZXR1cm4gZmFsc2U7CiAJfQogCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIG5vdXZl YXVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgdm9pZCBub3V2ZWF1X2Zl bmNlX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5j ZSAqZmVuY2UgPSBmcm9tX2ZlbmNlKGYpOwogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX2NoYW4gKmZj dHggPSBub3V2ZWF1X2ZjdHgoZmVuY2UpOwogCiAJa3JlZl9wdXQoJmZjdHgtPmZlbmNlX3JlZiwg bm91dmVhdV9mZW5jZV9jb250ZXh0X3B1dCk7Ci0JZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOwor CWRtYV9mZW5jZV9mcmVlKCZmZW5jZS0+YmFzZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZG1hX2ZlbmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3kgPSB7CiAJLmdldF9kcml2 ZXJfbmFtZSA9IG5vdXZlYXVfZmVuY2VfZ2V0X2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVs aW5lX25hbWUgPSBub3V2ZWF1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2ln bmFsaW5nID0gbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmcsCkBAIC01NjIsNyArNTYyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNfbGVnYWN5ID0g ewogCS5yZWxlYXNlID0gbm91dmVhdV9mZW5jZV9yZWxlYXNlCiB9OwogCi1zdGF0aWMgYm9vbCBu b3V2ZWF1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJv b2wgbm91dmVhdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7 CiAJc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAlzdHJ1Y3Qg bm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0gbm91dmVhdV9mY3R4KGZlbmNlKTsKQEAgLTU3Mywx OCArNTczLDE4IEBAIHN0YXRpYyBib29sIG5vdXZlYXVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhz dHJ1Y3QgZmVuY2UgKmYpCiAKIAlyZXQgPSBub3V2ZWF1X2ZlbmNlX25vX3NpZ25hbGluZyhmKTsK IAlpZiAocmV0KQotCQlzZXRfYml0KEZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAmZmVuY2UtPmJhc2Uu ZmxhZ3MpOworCQlzZXRfYml0KERNQV9GRU5DRV9GTEFHX1VTRVJfQklUUywgJmZlbmNlLT5iYXNl LmZsYWdzKTsKIAllbHNlIGlmICghLS1mY3R4LT5ub3RpZnlfcmVmKQogCQludmlmX25vdGlmeV9w dXQoJmZjdHgtPm5vdGlmeSk7CiAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IGZlbmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc191ZXZlbnQgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGRtYV9mZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50ID0gewogCS5nZXRf ZHJpdmVyX25hbWUgPSBub3V2ZWF1X2ZlbmNlX2dldF9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90 aW1lbGluZV9uYW1lID0gbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxl X3NpZ25hbGluZyA9IG5vdXZlYXVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKIAkuc2lnbmFsZWQg PSBub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkLAotCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93YWl0 LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IE5VTEwKIH07 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmggYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmgKaW5kZXggNjRjNGNlNzExNWFk Li40MWYzYzAxOWU1MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmgK QEAgLTEsMTQgKzEsMTQgQEAKICNpZm5kZWYgX19OT1VWRUFVX0ZFTkNFX0hfXwogI2RlZmluZSBf X05PVVZFQVVfRkVOQ0VfSF9fCiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUg PGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPG52aWYvbm90aWZ5Lmg+CiAKIHN0cnVjdCBu b3V2ZWF1X2RybTsKIHN0cnVjdCBub3V2ZWF1X2JvOwogCiBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSB7 Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOwogCiAJc3RydWN0 IGxpc3RfaGVhZCBoZWFkOwogCkBAIC0yNCw3ICsyNCw3IEBAIHZvaWQgbm91dmVhdV9mZW5jZV91 bnJlZihzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqKik7CiAKIGludCAgbm91dmVhdV9mZW5jZV9lbWl0 KHN0cnVjdCBub3V2ZWF1X2ZlbmNlICosIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKik7CiBib29s IG5vdXZlYXVfZmVuY2VfZG9uZShzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqKTsKLXZvaWQgbm91dmVh dV9mZW5jZV93b3JrKHN0cnVjdCBmZW5jZSAqLCB2b2lkICgqKSh2b2lkICopLCB2b2lkICopOwor dm9pZCBub3V2ZWF1X2ZlbmNlX3dvcmsoc3RydWN0IGRtYV9mZW5jZSAqLCB2b2lkICgqKSh2b2lk ICopLCB2b2lkICopOwogaW50ICBub3V2ZWF1X2ZlbmNlX3dhaXQoc3RydWN0IG5vdXZlYXVfZmVu Y2UgKiwgYm9vbCBsYXp5LCBib29sIGludHIpOwogaW50ICBub3V2ZWF1X2ZlbmNlX3N5bmMoc3Ry dWN0IG5vdXZlYXVfYm8gKiwgc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqLCBib29sIGV4Y2x1c2l2 ZSwgYm9vbCBpbnRyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMKaW5kZXgg MGJkNzE2NGJjODE3Li43ZjA4M2M5NWY0MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9nZW0uYwpAQCAtMTE5LDcgKzExOSw3IEBAIG5vdXZlYXVfZ2VtX29iamVjdF91bm1hcChzdHJ1 Y3Qgbm91dmVhdV9ibyAqbnZibywgc3RydWN0IG52a21fdm1hICp2bWEpCiAJY29uc3QgYm9vbCBt YXBwZWQgPSBudmJvLT5iby5tZW0ubWVtX3R5cGUgIT0gVFRNX1BMX1NZU1RFTTsKIAlzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0gbnZiby0+Ym8ucmVzdjsKIAlzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCiAJZm9iaiA9IHJlc2VydmF0aW9uX29i amVjdF9nZXRfbGlzdChyZXN2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnYwNF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYwNF9mZW5jZS5jCmlu ZGV4IDE5MTViN2I4MmE1OS4uZmE4ZjIzNzVjMzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjA0X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYw NF9mZW5jZS5jCkBAIC0xMTAsNiArMTEwLDYgQEAgbnYwNF9mZW5jZV9jcmVhdGUoc3RydWN0IG5v dXZlYXVfZHJtICpkcm0pCiAJcHJpdi0+YmFzZS5jb250ZXh0X25ldyA9IG52MDRfZmVuY2VfY29u dGV4dF9uZXc7CiAJcHJpdi0+YmFzZS5jb250ZXh0X2RlbCA9IG52MDRfZmVuY2VfY29udGV4dF9k ZWw7CiAJcHJpdi0+YmFzZS5jb250ZXh0cyA9IDE1OwotCXByaXYtPmJhc2UuY29udGV4dF9iYXNl ID0gZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKKwlwcml2LT5iYXNl LmNvbnRleHRfYmFzZSA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4 dHMpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnYxMF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxMF9mZW5jZS5jCmluZGV4 IDRlM2RlMzRmZjZmNC4uZjk5ZmNmNTY5MjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udjEwX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxMF9m ZW5jZS5jCkBAIC0xMDcsNyArMTA3LDcgQEAgbnYxMF9mZW5jZV9jcmVhdGUoc3RydWN0IG5vdXZl YXVfZHJtICpkcm0pCiAJcHJpdi0+YmFzZS5jb250ZXh0X25ldyA9IG52MTBfZmVuY2VfY29udGV4 dF9uZXc7CiAJcHJpdi0+YmFzZS5jb250ZXh0X2RlbCA9IG52MTBfZmVuY2VfY29udGV4dF9kZWw7 CiAJcHJpdi0+YmFzZS5jb250ZXh0cyA9IDMxOwotCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0g ZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKKwlwcml2LT5iYXNlLmNv bnRleHRfYmFzZSA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMp OwogCXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252MTdfZmVuY2UuYwppbmRleCA3ZDVlNTYyYTU1YzUuLjc5YmMwMTExMTM1MSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxN19mZW5jZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYwpAQCAtMTI2LDcgKzEyNiw3IEBAIG52 MTdfZmVuY2VfY3JlYXRlKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQogCXByaXYtPmJhc2UuY29u dGV4dF9uZXcgPSBudjE3X2ZlbmNlX2NvbnRleHRfbmV3OwogCXByaXYtPmJhc2UuY29udGV4dF9k ZWwgPSBudjEwX2ZlbmNlX2NvbnRleHRfZGVsOwogCXByaXYtPmJhc2UuY29udGV4dHMgPSAzMTsK LQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFz ZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBkbWFfZmVuY2VfY29udGV4 dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bG9j ayk7CiAKIAlyZXQgPSBub3V2ZWF1X2JvX25ldyhkcm0tPmRldiwgNDA5NiwgMHgxMDAwLCBUVE1f UExfRkxBR19WUkFNLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9m ZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCmluZGV4IDRkNmYy MDJiNzc3MC4uOGM1Mjk1NDE0NTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9udjUwX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5j CkBAIC05Nyw3ICs5Nyw3IEBAIG52NTBfZmVuY2VfY3JlYXRlKHN0cnVjdCBub3V2ZWF1X2RybSAq ZHJtKQogCXByaXYtPmJhc2UuY29udGV4dF9uZXcgPSBudjUwX2ZlbmNlX2NvbnRleHRfbmV3Owog CXByaXYtPmJhc2UuY29udGV4dF9kZWwgPSBudjEwX2ZlbmNlX2NvbnRleHRfZGVsOwogCXByaXYt PmJhc2UuY29udGV4dHMgPSAxMjc7Ci0JcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBmZW5jZV9j b250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOworCXByaXYtPmJhc2UuY29udGV4dF9i YXNlID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CiAJc3Bp bl9sb2NrX2luaXQoJnByaXYtPmxvY2spOwogCiAJcmV0ID0gbm91dmVhdV9ib19uZXcoZHJtLT5k ZXYsIDQwOTYsIDB4MTAwMCwgVFRNX1BMX0ZMQUdfVlJBTSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252ODRfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 ODRfZmVuY2UuYwppbmRleCAxOGJkZTlkOGU2ZDYuLjIzZWYwNGI0ZTBiMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4NF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252ODRfZmVuY2UuYwpAQCAtMjI5LDcgKzIyOSw3IEBAIG52ODRfZmVuY2VfY3Jl YXRlKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQogCXByaXYtPmJhc2UuY29udGV4dF9kZWwgPSBu djg0X2ZlbmNlX2NvbnRleHRfZGVsOwogCiAJcHJpdi0+YmFzZS5jb250ZXh0cyA9IGZpZm8tPm5y OwotCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5i YXNlLmNvbnRleHRzKTsKKwlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGRtYV9mZW5jZV9jb250 ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOwogCXByaXYtPmJhc2UudWV2ZW50ID0gdHJ1 ZTsKIAogCS8qIFVzZSBWUkFNIGlmIHRoZXJlIGlzIGFueSA7IG90aGVyd2lzZSBmYWxsYmFjayB0 byBzeXN0ZW0gbWVtb3J5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCmluZGV4IDVmM2U1YWQ5OWRlNy4u ODQ5OTVlYmM2ZmZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaApAQCAtMzEsNyArMzEsNyBAQAogICog RGVmaW5pdGlvbnMgdGFrZW4gZnJvbSBzcGljZS1wcm90b2NvbCwgcGx1cyBrZXJuZWwgZHJpdmVy IHNwZWNpZmljIGJpdHMuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVk ZSA8bGludXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5j bHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KQEAgLTE5MCw3ICsxOTAsNyBAQCBlbnVtIHsKICAqIHNwaWNlLXByb3RvY29sL3F4bF9kZXYu aCAqLwogI2RlZmluZSBRWExfTUFYX1JFUyA5Ngogc3RydWN0IHF4bF9yZWxlYXNlIHsKLQlzdHJ1 Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiAKIAlpbnQgaWQ7CiAJaW50 IHR5cGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMgYi9k cml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKaW5kZXggY2Q4M2YwNTBjZjNlLi4wMGRj NDNiZTEzNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKQEAgLTIxLDcgKzIxLDcgQEAK ICAqLwogI2luY2x1ZGUgInF4bF9kcnYuaCIKICNpbmNsdWRlICJxeGxfb2JqZWN0LmgiCi0jaW5j bHVkZSA8dHJhY2UvZXZlbnRzL2ZlbmNlLmg+CisjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9m ZW5jZS5oPgogCiAvKgogICogZHJhd2FibGUgY21kIGNhY2hlIC0gYWxsb2NhdGUgYSBidW5jaCBv ZiBWUkFNIHBhZ2VzLCBzdWJhbGxvY2F0ZQpAQCAtNDAsMjMgKzQwLDIzIEBACiBzdGF0aWMgY29u c3QgaW50IHJlbGVhc2Vfc2l6ZV9wZXJfYm9bXSA9IHsgUkVMRUFTRV9TSVpFLCBTVVJGQUNFX1JF TEVBU0VfU0laRSwgUkVMRUFTRV9TSVpFIH07CiBzdGF0aWMgY29uc3QgaW50IHJlbGVhc2VzX3Bl cl9ib1tdID0geyBSRUxFQVNFU19QRVJfQk8sIFNVUkZBQ0VfUkVMRUFTRVNfUEVSX0JPLCBSRUxF QVNFU19QRVJfQk8gfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKnF4bF9nZXRfZHJpdmVyX25hbWUo c3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpxeGxfZ2V0X2RyaXZlcl9u YW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAicXhsIjsKIH0KIAotc3Rh dGljIGNvbnN0IGNoYXIgKnF4bF9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmZlbmNl KQorc3RhdGljIGNvbnN0IGNoYXIgKnF4bF9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInJlbGVhc2UiOwogfQogCi1zdGF0aWMgYm9vbCBxeGxf bm9wX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgcXhsX25vcF9z aWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJLyogZmVuY2VzIGFyZSBhbHdh eXMgYXV0b21hdGljYWxseSBzaWduYWxlZCwgc28ganVzdCBwcmV0ZW5kIHdlIGRpZCB0aGlzLi4g Ki8KIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGxvbmcgcXhsX2ZlbmNlX3dhaXQoc3RydWN0 IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQorc3RhdGljIGxv bmcgcXhsX2ZlbmNlX3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2ln bmVkIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgcXhsX2RldmljZSAqcWRldjsKIAlzdHJ1Y3Qg cXhsX3JlbGVhc2UgKnJlbGVhc2U7CkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBsb25nIHF4bF9m ZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGlt ZW91dCkKIHJldHJ5OgogCXNjKys7CiAKLQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQor CWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlnb3RvIHNpZ25hbGVkOwogCiAJ cXhsX2lvX25vdGlmeV9vb20ocWRldik7CkBAIC04MCwxMSArODAsMTEgQEAgc3RhdGljIGxvbmcg cXhsX2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9u ZyB0aW1lb3V0KQogCQlpZiAoIXF4bF9xdWV1ZV9nYXJiYWdlX2NvbGxlY3QocWRldiwgdHJ1ZSkp CiAJCQlicmVhazsKIAotCQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQorCQlpZiAoZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKIAkJCWdvdG8gc2lnbmFsZWQ7CiAJfQogCi0JaWYg KGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZl bmNlKSkKIAkJZ290byBzaWduYWxlZDsKIAogCWlmIChoYXZlX2RyYXdhYmxlX3JlbGVhc2VzIHx8 IHNjIDwgNCkgewpAQCAtOTYsOSArOTYsMTAgQEAgc3RhdGljIGxvbmcgcXhsX2ZlbmNlX3dhaXQo c3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCQkJ cmV0dXJuIDA7CiAKIAkJaWYgKGhhdmVfZHJhd2FibGVfcmVsZWFzZXMgJiYgc2MgPiAzMDApIHsK LQkJCUZFTkNFX1dBUk4oZmVuY2UsICJmYWlsZWQgdG8gd2FpdCBvbiByZWxlYXNlICVsbHUgIgot CQkJCQkgICJhZnRlciBzcGluY291bnQgJWRcbiIsCi0JCQkJCSAgZmVuY2UtPmNvbnRleHQgJiB+ MHhmMDAwMDAwMCwgc2MpOworCQkJRE1BX0ZFTkNFX1dBUk4oZmVuY2UsCisJCQkJICAgICAgICJm YWlsZWQgdG8gd2FpdCBvbiByZWxlYXNlICVsbHUgIgorCQkJCSAgICAgICAiYWZ0ZXIgc3BpbmNv dW50ICVkXG4iLAorCQkJCSAgICAgICBmZW5jZS0+Y29udGV4dCAmIH4weGYwMDAwMDAwLCBzYyk7 CiAJCQlnb3RvIHNpZ25hbGVkOwogCQl9CiAJCWdvdG8gcmV0cnk7CkBAIC0xMTUsNyArMTE2LDcg QEAgc3RhdGljIGxvbmcgcXhsX2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBp bnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCXJldHVybiBlbmQgLSBjdXI7CiB9CiAKLXN0YXRp YyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHF4bF9mZW5jZV9vcHMgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGRtYV9mZW5jZV9vcHMgcXhsX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1l ID0gcXhsX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBxeGxfZ2V0X3Rp bWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBxeGxfbm9wX3NpZ25hbGluZywKQEAg LTE5Miw4ICsxOTMsOCBAQCBxeGxfcmVsZWFzZV9mcmVlKHN0cnVjdCBxeGxfZGV2aWNlICpxZGV2 LAogCQlXQVJOX09OKGxpc3RfZW1wdHkoJnJlbGVhc2UtPmJvcykpOwogCQlxeGxfcmVsZWFzZV9m cmVlX2xpc3QocmVsZWFzZSk7CiAKLQkJZmVuY2Vfc2lnbmFsKCZyZWxlYXNlLT5iYXNlKTsKLQkJ ZmVuY2VfcHV0KCZyZWxlYXNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbCgmcmVsZWFzZS0+ YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJnJlbGVhc2UtPmJhc2UpOwogCX0gZWxzZSB7CiAJCXF4 bF9yZWxlYXNlX2ZyZWVfbGlzdChyZWxlYXNlKTsKIAkJa2ZyZWUocmVsZWFzZSk7CkBAIC00NTMs OSArNDU0LDkgQEAgdm9pZCBxeGxfcmVsZWFzZV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qg cXhsX3JlbGVhc2UgKnJlbGVhc2UpCiAJICogU2luY2Ugd2UgbmV2ZXIgcmVhbGx5IGFsbG9jYXRl ZCBhIGNvbnRleHQgYW5kIHdlIGRvbid0IHdhbnQgdG8gY29uZmxpY3QsCiAJICogc2V0IHRoZSBo aWdoZXN0IGJpdHMuIFRoaXMgd2lsbCBicmVhayBpZiB3ZSByZWFsbHkgYWxsb3cgZXhwb3J0aW5n IG9mIGRtYS1idWZzLgogCSAqLwotCWZlbmNlX2luaXQoJnJlbGVhc2UtPmJhc2UsICZxeGxfZmVu Y2Vfb3BzLCAmcWRldi0+cmVsZWFzZV9sb2NrLAotCQkgICByZWxlYXNlLT5pZCB8IDB4ZjAwMDAw MDAsIHJlbGVhc2UtPmJhc2Uuc2Vxbm8pOwotCXRyYWNlX2ZlbmNlX2VtaXQoJnJlbGVhc2UtPmJh c2UpOworCWRtYV9mZW5jZV9pbml0KCZyZWxlYXNlLT5iYXNlLCAmcXhsX2ZlbmNlX29wcywgJnFk ZXYtPnJlbGVhc2VfbG9jaywKKwkJICAgICAgIHJlbGVhc2UtPmlkIHwgMHhmMDAwMDAwMCwgcmVs ZWFzZS0+YmFzZS5zZXFubyk7CisJdHJhY2VfZG1hX2ZlbmNlX2VtaXQoJnJlbGVhc2UtPmJhc2Up OwogCiAJZHJpdmVyID0gYmRldi0+ZHJpdmVyOwogCWdsb2IgPSBiby0+Z2xvYjsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbi5oCmluZGV4IDFiMGRjYWQ5MTZiMC4uNDRlMGM1ZWQ2NDE4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uLmgKQEAgLTY2LDcgKzY2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+ CiAjaW5jbHVkZSA8bGludXgvaW50ZXJ2YWxfdHJlZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hhc2h0 YWJsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZl bmNlLmg+CiAKICNpbmNsdWRlIDx0dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPHR0bS90dG1f Ym9fZHJpdmVyLmg+CkBAIC0zNjcsNyArMzY3LDcgQEAgc3RydWN0IHJhZGVvbl9mZW5jZV9kcml2 ZXIgewogfTsKIAogc3RydWN0IHJhZGVvbl9mZW5jZSB7Ci0Jc3RydWN0IGZlbmNlCQliYXNlOwor CXN0cnVjdCBkbWFfZmVuY2UJCWJhc2U7CiAKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZQkqcmRldjsK IAl1aW50NjRfdAkJc2VxOwpAQCAtNzQ2LDcgKzc0Niw3IEBAIHN0cnVjdCByYWRlb25fZmxpcF93 b3JrIHsKIAl1aW50NjRfdAkJCWJhc2U7CiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVu dCAqZXZlbnQ7CiAJc3RydWN0IHJhZGVvbl9ibwkJKm9sZF9yYm87Ci0Jc3RydWN0IGZlbmNlCQkJ KmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UJCSpmZW5jZTsKIAlib29sCQkJCWFzeW5jOwogfTsK IApAQCAtMjUxNCw5ICsyNTE0LDkgQEAgdm9pZCBjaWtfbW1fd2Rvb3JiZWxsKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCB1MzIgaW5kZXgsIHUzMiB2KTsKIC8qCiAgKiBDYXN0IGhlbHBlcgog ICovCi1leHRlcm4gY29uc3Qgc3RydWN0IGZlbmNlX29wcyByYWRlb25fZmVuY2Vfb3BzOworZXh0 ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHJhZGVvbl9mZW5jZV9vcHM7CiAKLXN0YXRp YyBpbmxpbmUgc3RydWN0IHJhZGVvbl9mZW5jZSAqdG9fcmFkZW9uX2ZlbmNlKHN0cnVjdCBmZW5j ZSAqZikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJhZGVvbl9mZW5jZSAqdG9fcmFkZW9uX2ZlbmNl KHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqX19mID0gY29u dGFpbmVyX29mKGYsIHN0cnVjdCByYWRlb25fZmVuY2UsIGJhc2UpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2RldmljZS5jCmluZGV4IGViOTJhZWY0NmUzYy4uMzZiN2FjN2U1N2U1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtMTMyMCw3ICsxMzIwLDcg QEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlm b3IgKGkgPSAwOyBpIDwgUkFERU9OX05VTV9SSU5HUzsgaSsrKSB7CiAJCXJkZXYtPnJpbmdbaV0u aWR4ID0gaTsKIAl9Ci0JcmRldi0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2Mo UkFERU9OX05VTV9SSU5HUyk7CisJcmRldi0+ZmVuY2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250 ZXh0X2FsbG9jKFJBREVPTl9OVU1fUklOR1MpOwogCiAJRFJNX0lORk8oImluaXRpYWxpemluZyBr ZXJuZWwgbW9kZXNldHRpbmcgKCVzIDB4JTA0WDoweCUwNFggMHglMDRYOjB4JTA0WCAweCUwMlgp LlxuIiwKIAkJIHJhZGVvbl9mYW1pbHlfbmFtZVtyZGV2LT5mYW1pbHldLCBwZGV2LT52ZW5kb3Is IHBkZXYtPmRldmljZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwppbmRl eCBjZGI4Y2I1NjhjMTUuLmU3NDA5ZThhOWY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2Rpc3BsYXkuYwpAQCAtNDM3LDcgKzQzNyw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9mbGlw X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAkJCQlkb3duX3JlYWQoJnJk ZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKIAkJCX0KIAkJfSBlbHNlCi0JCQlyID0gZmVuY2Vfd2FpdCh3 b3JrLT5mZW5jZSwgZmFsc2UpOworCQkJciA9IGRtYV9mZW5jZV93YWl0KHdvcmstPmZlbmNlLCBm YWxzZSk7CiAKIAkJaWYgKHIpCiAJCQlEUk1fRVJST1IoImZhaWxlZCB0byB3YWl0IG9uIHBhZ2Ug ZmxpcCBmZW5jZSAoJWQpIVxuIiwgcik7CkBAIC00NDcsNyArNDQ3LDcgQEAgc3RhdGljIHZvaWQg cmFkZW9uX2ZsaXBfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCQkgKiBj b25mdXNlZCBhYm91dCB3aGljaCBCTyB0aGUgQ1JUQyBpcyBzY2FubmluZyBvdXQKIAkJICovCiAK LQkJZmVuY2VfcHV0KHdvcmstPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dCh3b3JrLT5mZW5jZSk7 CiAJCXdvcmstPmZlbmNlID0gTlVMTDsKIAl9CiAKQEAgLTU0Miw3ICs1NDIsNyBAQCBzdGF0aWMg aW50IHJhZGVvbl9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQlEUk1fRVJST1IoImZhaWxlZCB0byBwaW4gbmV3IHJibyBidWZmZXIgYmVmb3JlIGZsaXBcbiIp OwogCQlnb3RvIGNsZWFudXA7CiAJfQotCXdvcmstPmZlbmNlID0gZmVuY2VfZ2V0KHJlc2VydmF0 aW9uX29iamVjdF9nZXRfZXhjbChuZXdfcmJvLT50Ym8ucmVzdikpOworCXdvcmstPmZlbmNlID0g ZG1hX2ZlbmNlX2dldChyZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wobmV3X3Jiby0+dGJvLnJl c3YpKTsKIAlyYWRlb25fYm9fZ2V0X3RpbGluZ19mbGFncyhuZXdfcmJvLCAmdGlsaW5nX2ZsYWdz LCBOVUxMKTsKIAlyYWRlb25fYm9fdW5yZXNlcnZlKG5ld19yYm8pOwogCkBAIC02MTcsNyArNjE3 LDcgQEAgc3RhdGljIGludCByYWRlb25fY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAogY2xlYW51cDoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxv Y2tlZCgmd29yay0+b2xkX3Jiby0+Z2VtX2Jhc2UpOwotCWZlbmNlX3B1dCh3b3JrLT5mZW5jZSk7 CisJZG1hX2ZlbmNlX3B1dCh3b3JrLT5mZW5jZSk7CiAJa2ZyZWUod29yayk7CiAJcmV0dXJuIHI7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYwppbmRleCA3ZWYwNzVhY2RlOWMu LmVmMDlmMGE2Mzc1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jCkBAIC0x NDEsOCArMTQxLDEwIEBAIGludCByYWRlb25fZmVuY2VfZW1pdChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwKIAkoKmZlbmNlKS0+c2VxID0gc2VxID0gKytyZGV2LT5mZW5jZV9kcnZbcmluZ10u c3luY19zZXFbcmluZ107CiAJKCpmZW5jZSktPnJpbmcgPSByaW5nOwogCSgqZmVuY2UpLT5pc192 bV91cGRhdGUgPSBmYWxzZTsKLQlmZW5jZV9pbml0KCYoKmZlbmNlKS0+YmFzZSwgJnJhZGVvbl9m ZW5jZV9vcHMsCi0JCSAgICZyZGV2LT5mZW5jZV9xdWV1ZS5sb2NrLCByZGV2LT5mZW5jZV9jb250 ZXh0ICsgcmluZywgc2VxKTsKKwlkbWFfZmVuY2VfaW5pdCgmKCpmZW5jZSktPmJhc2UsICZyYWRl b25fZmVuY2Vfb3BzLAorCQkgICAgICAgJnJkZXYtPmZlbmNlX3F1ZXVlLmxvY2ssCisJCSAgICAg ICByZGV2LT5mZW5jZV9jb250ZXh0ICsgcmluZywKKwkJICAgICAgIHNlcSk7CiAJcmFkZW9uX2Zl bmNlX3JpbmdfZW1pdChyZGV2LCByaW5nLCAqZmVuY2UpOwogCXRyYWNlX3JhZGVvbl9mZW5jZV9l bWl0KHJkZXYtPmRkZXYsIHJpbmcsICgqZmVuY2UpLT5zZXEpOwogCXJhZGVvbl9mZW5jZV9zY2hl ZHVsZV9jaGVjayhyZGV2LCByaW5nKTsKQEAgLTE2OSwxOCArMTcxLDE4IEBAIHN0YXRpYyBpbnQg cmFkZW9uX2ZlbmNlX2NoZWNrX3NpZ25hbGVkKHdhaXRfcXVldWVfdCAqd2FpdCwgdW5zaWduZWQg bW9kZSwgaW50IGZsCiAJICovCiAJc2VxID0gYXRvbWljNjRfcmVhZCgmZmVuY2UtPnJkZXYtPmZl bmNlX2RydltmZW5jZS0+cmluZ10ubGFzdF9zZXEpOwogCWlmIChzZXEgPj0gZmVuY2UtPnNlcSkg ewotCQlpbnQgcmV0ID0gZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmJhc2UpOworCQlpbnQg cmV0ID0gZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKIAogCQlpZiAoIXJl dCkKLQkJCUZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgInNpZ25hbGVkIGZyb20gaXJxIGNvbnRl eHRcbiIpOworCQkJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgInNpZ25hbGVkIGZyb20g aXJxIGNvbnRleHRcbiIpOwogCQllbHNlCi0JCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJ3 YXMgYWxyZWFkeSBzaWduYWxlZFxuIik7CisJCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNl LCAid2FzIGFscmVhZHkgc2lnbmFsZWRcbiIpOwogCiAJCXJhZGVvbl9pcnFfa21zX3N3X2lycV9w dXQoZmVuY2UtPnJkZXYsIGZlbmNlLT5yaW5nKTsKIAkJX19yZW1vdmVfd2FpdF9xdWV1ZSgmZmVu Y2UtPnJkZXYtPmZlbmNlX3F1ZXVlLCAmZmVuY2UtPmZlbmNlX3dha2UpOwotCQlmZW5jZV9wdXQo JmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCX0gZWxzZQot CQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJwZW5kaW5nXG4iKTsKKwkJRE1BX0ZFTkNFX1RS QUNFKCZmZW5jZS0+YmFzZSwgInBlbmRpbmdcbiIpOwogCXJldHVybiAwOwogfQogCkBAIC0zNTEs NyArMzUzLDcgQEAgc3RhdGljIGJvb2wgcmFkZW9uX2ZlbmNlX3NlcV9zaWduYWxlZChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIHJh ZGVvbl9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCByYWRl b25fZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgcmFk ZW9uX2ZlbmNlICpmZW5jZSA9IHRvX3JhZGVvbl9mZW5jZShmKTsKIAlzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiA9IGZlbmNlLT5yZGV2OwpAQCAtMzgxLDcgKzM4Myw3IEBAIHN0YXRpYyBib29s IHJhZGVvbl9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCiAgKiB0byBmZW5jZV9x dWV1ZSB0aGF0IGNoZWNrcyBpZiB0aGlzIGZlbmNlIGlzIHNpZ25hbGVkLCBhbmQgaWYgc28gaXQK ICAqIHNpZ25hbHMgdGhlIGZlbmNlIGFuZCByZW1vdmVzIGl0c2VsZi4KICAqLwotc3RhdGljIGJv b2wgcmFkZW9uX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQorc3RhdGlj IGJvb2wgcmFkZW9uX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZikK IHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSA9IHRvX3JhZGVvbl9mZW5jZShmKTsKIAlz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGZlbmNlLT5yZGV2OwpAQCAtNDE0LDkgKzQxNiw5 IEBAIHN0YXRpYyBib29sIHJhZGVvbl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5j ZSAqZikKIAlmZW5jZS0+ZmVuY2Vfd2FrZS5wcml2YXRlID0gTlVMTDsKIAlmZW5jZS0+ZmVuY2Vf d2FrZS5mdW5jID0gcmFkZW9uX2ZlbmNlX2NoZWNrX3NpZ25hbGVkOwogCV9fYWRkX3dhaXRfcXVl dWUoJnJkZXYtPmZlbmNlX3F1ZXVlLCAmZmVuY2UtPmZlbmNlX3dha2UpOwotCWZlbmNlX2dldChm KTsKKwlkbWFfZmVuY2VfZ2V0KGYpOwogCi0JRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAiYXJt ZWQgb24gcmluZyAlaSFcbiIsIGZlbmNlLT5yaW5nKTsKKwlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNl LT5iYXNlLCAiYXJtZWQgb24gcmluZyAlaSFcbiIsIGZlbmNlLT5yaW5nKTsKIAlyZXR1cm4gdHJ1 ZTsKIH0KIApAQCAtNDM2LDkgKzQzOCw5IEBAIGJvb2wgcmFkZW9uX2ZlbmNlX3NpZ25hbGVkKHN0 cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKQogCWlmIChyYWRlb25fZmVuY2Vfc2VxX3NpZ25hbGVk KGZlbmNlLT5yZGV2LCBmZW5jZS0+c2VxLCBmZW5jZS0+cmluZykpIHsKIAkJaW50IHJldDsKIAot CQlyZXQgPSBmZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsKKwkJcmV0ID0gZG1hX2ZlbmNlX3Np Z25hbCgmZmVuY2UtPmJhc2UpOwogCQlpZiAoIXJldCkKLQkJCUZFTkNFX1RSQUNFKCZmZW5jZS0+ YmFzZSwgInNpZ25hbGVkIGZyb20gcmFkZW9uX2ZlbmNlX3NpZ25hbGVkXG4iKTsKKwkJCURNQV9G RU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIHJhZGVvbl9mZW5jZV9zaWdu YWxlZFxuIik7CiAJCXJldHVybiB0cnVlOwogCX0KIAlyZXR1cm4gZmFsc2U7CkBAIC01NTIsNyAr NTU0LDcgQEAgbG9uZyByYWRlb25fZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCByYWRlb25fZmVu Y2UgKmZlbmNlLCBib29sIGludHIsIGxvbmcgdGltZW8KIAkgKiBleGNsdXNpdmVfbG9jayBpcyBu b3QgaGVsZCBpbiB0aGF0IGNhc2UuCiAJICovCiAJaWYgKFdBUk5fT05fT05DRSghdG9fcmFkZW9u X2ZlbmNlKCZmZW5jZS0+YmFzZSkpKQotCQlyZXR1cm4gZmVuY2Vfd2FpdCgmZmVuY2UtPmJhc2Us IGludHIpOworCQlyZXR1cm4gZG1hX2ZlbmNlX3dhaXQoJmZlbmNlLT5iYXNlLCBpbnRyKTsKIAog CXNlcVtmZW5jZS0+cmluZ10gPSBmZW5jZS0+c2VxOwogCXIgPSByYWRlb25fZmVuY2Vfd2FpdF9z ZXFfdGltZW91dChmZW5jZS0+cmRldiwgc2VxLCBpbnRyLCB0aW1lb3V0KTsKQEAgLTU2MCw5ICs1 NjIsOSBAQCBsb25nIHJhZGVvbl9mZW5jZV93YWl0X3RpbWVvdXQoc3RydWN0IHJhZGVvbl9mZW5j ZSAqZmVuY2UsIGJvb2wgaW50ciwgbG9uZyB0aW1lbwogCQlyZXR1cm4gcjsKIAl9CiAKLQlyX3Np ZyA9IGZlbmNlX3NpZ25hbCgmZmVuY2UtPmJhc2UpOworCXJfc2lnID0gZG1hX2ZlbmNlX3NpZ25h bCgmZmVuY2UtPmJhc2UpOwogCWlmICghcl9zaWcpCi0JCUZFTkNFX1RSQUNFKCZmZW5jZS0+YmFz ZSwgInNpZ25hbGVkIGZyb20gZmVuY2Vfd2FpdFxuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVu Y2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIGZlbmNlX3dhaXRcbiIpOwogCXJldHVybiByOwogfQog CkBAIC02OTcsNyArNjk5LDcgQEAgaW50IHJhZGVvbl9mZW5jZV93YWl0X2VtcHR5KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZykKICAqLwogc3RydWN0IHJhZGVvbl9mZW5jZSAq cmFkZW9uX2ZlbmNlX3JlZihzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSkKIHsKLQlmZW5jZV9n ZXQoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7CiAJcmV0dXJu IGZlbmNlOwogfQogCkBAIC03MTQsNyArNzE2LDcgQEAgdm9pZCByYWRlb25fZmVuY2VfdW5yZWYo c3RydWN0IHJhZGVvbl9mZW5jZSAqKmZlbmNlKQogCiAJKmZlbmNlID0gTlVMTDsKIAlpZiAodG1w KSB7Ci0JCWZlbmNlX3B1dCgmdG1wLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmdG1wLT5iYXNl KTsKIAl9CiB9CiAKQEAgLTEwMjgsMTIgKzEwMzAsMTIgQEAgaW50IHJhZGVvbl9kZWJ1Z2ZzX2Zl bmNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAjZW5kaWYKIH0KIAotc3RhdGlj IGNvbnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpm ZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpyYWRlb25fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAicmFkZW9uIjsKIH0KIAotc3RhdGlj IGNvbnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2Ug KmYpCitzdGF0aWMgY29uc3QgY2hhciAqcmFkZW9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0 cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UgPSB0b19y YWRlb25fZmVuY2UoZik7CiAJc3dpdGNoIChmZW5jZS0+cmluZykgewpAQCAtMTA1MSwxNiArMTA1 MywxNiBAQCBzdGF0aWMgY29uc3QgY2hhciAqcmFkZW9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1l KHN0cnVjdCBmZW5jZSAqZikKIAogc3RhdGljIGlubGluZSBib29sIHJhZGVvbl90ZXN0X3NpZ25h bGVkKHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKQogewotCXJldHVybiB0ZXN0X2JpdChGRU5D RV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKTsKKwlyZXR1cm4gdGVzdF9i aXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmJhc2UuZmxhZ3MpOwogfQog CiBzdHJ1Y3QgcmFkZW9uX3dhaXRfY2IgewotCXN0cnVjdCBmZW5jZV9jYiBiYXNlOworCXN0cnVj dCBkbWFfZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiB9OwogCiBz dGF0aWMgdm9pZAotcmFkZW9uX2ZlbmNlX3dhaXRfY2Ioc3RydWN0IGZlbmNlICpmZW5jZSwgc3Ry dWN0IGZlbmNlX2NiICpjYikKK3JhZGVvbl9mZW5jZV93YWl0X2NiKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3QgcmFkZW9uX3dhaXRf Y2IgKndhaXQgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCByYWRlb25fd2FpdF9jYiwgYmFz ZSk7CkBAIC0xMDY4LDcgKzEwNzAsNyBAQCByYWRlb25fZmVuY2Vfd2FpdF9jYihzdHJ1Y3QgZmVu Y2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50 YXNrKTsKIH0KIAotc3RhdGljIHNpZ25lZCBsb25nIHJhZGVvbl9mZW5jZV9kZWZhdWx0X3dhaXQo c3RydWN0IGZlbmNlICpmLCBib29sIGludHIsCitzdGF0aWMgc2lnbmVkIGxvbmcgcmFkZW9uX2Zl bmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBib29sIGludHIsCiAJCQkJCSAg ICAgc2lnbmVkIGxvbmcgdCkKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSA9IHRvX3Jh ZGVvbl9mZW5jZShmKTsKQEAgLTEwNzcsNyArMTA3OSw3IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBy YWRlb25fZmVuY2VfZGVmYXVsdF93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLAogCiAJ Y2IudGFzayA9IGN1cnJlbnQ7CiAKLQlpZiAoZmVuY2VfYWRkX2NhbGxiYWNrKGYsICZjYi5iYXNl LCByYWRlb25fZmVuY2Vfd2FpdF9jYikpCisJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZiwg JmNiLmJhc2UsIHJhZGVvbl9mZW5jZV93YWl0X2NiKSkKIAkJcmV0dXJuIHQ7CiAKIAl3aGlsZSAo dCA+IDApIHsKQEAgLTExMDUsMTIgKzExMDcsMTIgQEAgc3RhdGljIHNpZ25lZCBsb25nIHJhZGVv bl9mZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGZlbmNlICpmLCBib29sIGludHIsCiAJfQogCiAJ X19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwotCWZlbmNlX3JlbW92ZV9jYWxsYmFj ayhmLCAmY2IuYmFzZSk7CisJZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayhmLCAmY2IuYmFzZSk7 CiAKIAlyZXR1cm4gdDsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyByYWRlb25fZmVuY2Vf b3BzID0geworY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wcyA9IHsK IAkuZ2V0X2RyaXZlcl9uYW1lID0gcmFkZW9uX2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0 X3RpbWVsaW5lX25hbWUgPSByYWRlb25fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJs ZV9zaWduYWxpbmcgPSByYWRlb25fZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3N5bmMuYwppbmRleCAwMmFjOGExZGU0ZmYuLmJlNWQ3YTM4ZDNhYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc3luYy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYwpAQCAtOTIsNyArOTIsNyBAQCBpbnQgcmFk ZW9uX3N5bmNfcmVzdihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJICAgICBib29sIHNo YXJlZCkKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZsaXN0OwotCXN0cnVj dCBmZW5jZSAqZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCXN0cnVjdCByYWRlb25fZmVuY2Ug KmZlbmNlOwogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwpAQCAtMTAzLDcgKzEwMyw3IEBAIGlu dCByYWRlb25fc3luY19yZXN2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCWlmIChmZW5j ZSAmJiBmZW5jZS0+cmRldiA9PSByZGV2KQogCQlyYWRlb25fc3luY19mZW5jZShzeW5jLCBmZW5j ZSk7CiAJZWxzZSBpZiAoZikKLQkJciA9IGZlbmNlX3dhaXQoZiwgdHJ1ZSk7CisJCXIgPSBkbWFf ZmVuY2Vfd2FpdChmLCB0cnVlKTsKIAogCWZsaXN0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9s aXN0KHJlc3YpOwogCWlmIChzaGFyZWQgfHwgIWZsaXN0IHx8IHIpCkBAIC0xMTYsNyArMTE2LDcg QEAgaW50IHJhZGVvbl9zeW5jX3Jlc3Yoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCWlm IChmZW5jZSAmJiBmZW5jZS0+cmRldiA9PSByZGV2KQogCQkJcmFkZW9uX3N5bmNfZmVuY2Uoc3lu YywgZmVuY2UpOwogCQllbHNlCi0JCQlyID0gZmVuY2Vfd2FpdChmLCB0cnVlKTsKKwkJCXIgPSBk bWFfZmVuY2Vfd2FpdChmLCB0cnVlKTsKIAogCQlpZiAocikKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl91dmQuYwppbmRleCAwY2QwZTdiZGVlNTUuLmQzNGQxY2YzMzg5NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBzdGF0aWMg aW50IHJhZGVvbl91dmRfY3NfbXNnKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCBzdHJ1Y3Qg cmFkZW9uX2JvICpibywKIHsKIAlpbnQzMl90ICptc2csIG1zZ190eXBlLCBoYW5kbGU7CiAJdW5z aWduZWQgaW1nX3NpemUgPSAwOwotCXN0cnVjdCBmZW5jZSAqZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICpmOwogCXZvaWQgKnB0cjsKIAogCWludCBpLCByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKaW5kZXggZmM2 MjE3ZGZlNDAxLi45MTVlMGQxYzMxNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwpAQCAtMTQ4LDcgKzE0 OCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlX2xpc3Qoc3RydWN0IGtyZWYgKmxpc3Rf a3JlZikKIAlCVUdfT04oIWxpc3RfZW1wdHkoJmJvLT5kZGVzdHJveSkpOwogCXR0bV90dF9kZXN0 cm95KGJvLT50dG0pOwogCWF0b21pY19kZWMoJmJvLT5nbG9iLT5ib19jb3VudCk7Ci0JZmVuY2Vf cHV0KGJvLT5tb3ZpbmcpOworCWRtYV9mZW5jZV9wdXQoYm8tPm1vdmluZyk7CiAJaWYgKGJvLT5y ZXN2ID09ICZiby0+dHRtX3Jlc3YpCiAJCXJlc2VydmF0aW9uX29iamVjdF9maW5pKCZiby0+dHRt X3Jlc3YpOwogCW11dGV4X2Rlc3Ryb3koJmJvLT53dV9tdXRleCk7CkBAIC00MjYsMjAgKzQyNiwy MCBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKQogc3RhdGljIHZvaWQgdHRtX2JvX2ZsdXNoX2FsbF9mZW5jZXMoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZTsKIAlpbnQgaTsKIAogCWZvYmogPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QoYm8t PnJlc3YpOwogCWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKGJvLT5yZXN2KTsK IAlpZiAoZmVuY2UgJiYgIWZlbmNlLT5vcHMtPnNpZ25hbGVkKQotCQlmZW5jZV9lbmFibGVfc3df c2lnbmFsaW5nKGZlbmNlKTsKKwkJZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVuY2Up OwogCiAJZm9yIChpID0gMDsgZm9iaiAmJiBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpIHsK IAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKIAkJ CQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQoYm8tPnJlc3YpKTsKIAogCQlpZiAoIWZlbmNlLT5v cHMtPnNpZ25hbGVkKQotCQkJZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhmZW5jZSk7CisJCQlk bWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhmZW5jZSk7CiAJfQogfQogCkBAIC03OTIsMTEg Kzc5MiwxMSBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogCQkJCSBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwK IAkJCQkgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsK KwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQgcmV0OwogCiAJc3Bpbl9sb2NrKCZtYW4t Pm1vdmVfbG9jayk7Ci0JZmVuY2UgPSBmZW5jZV9nZXQobWFuLT5tb3ZlKTsKKwlmZW5jZSA9IGRt YV9mZW5jZV9nZXQobWFuLT5tb3ZlKTsKIAlzcGluX3VubG9jaygmbWFuLT5tb3ZlX2xvY2spOwog CiAJaWYgKGZlbmNlKSB7CkBAIC04MDYsNyArODA2LDcgQEAgc3RhdGljIGludCB0dG1fYm9fYWRk X21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJaWYgKHVubGlrZWx5 KHJldCkpCiAJCQlyZXR1cm4gcmV0OwogCi0JCWZlbmNlX3B1dChiby0+bW92aW5nKTsKKwkJZG1h X2ZlbmNlX3B1dChiby0+bW92aW5nKTsKIAkJYm8tPm1vdmluZyA9IGZlbmNlOwogCX0KIApAQCAt MTI4Niw3ICsxMjg2LDcgQEAgc3RhdGljIGludCB0dG1fYm9fZm9yY2VfbGlzdF9jbGVhbihzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIHsKIAlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbiA9ICZiZGV2LT5tYW5bbWVtX3R5cGVdOwogCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9i ID0gYmRldi0+Z2xvYjsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlOwogCWludCByZXQ7CiAKIAkvKgpAQCAtMTMwOSwxMiArMTMwOSwxMiBAQCBzdGF0aWMg aW50IHR0bV9ib19mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAog CXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAKIAlzcGluX2xvY2soJm1hbi0+bW92ZV9s b2NrKTsKLQlmZW5jZSA9IGZlbmNlX2dldChtYW4tPm1vdmUpOworCWZlbmNlID0gZG1hX2ZlbmNl X2dldChtYW4tPm1vdmUpOwogCXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAKIAlpZiAo ZmVuY2UpIHsKLQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOwotCQlmZW5jZV9wdXQo ZmVuY2UpOworCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCQlkbWFfZmVu Y2VfcHV0KGZlbmNlKTsKIAkJaWYgKHJldCkgewogCQkJaWYgKGFsbG93X2Vycm9ycykgewogCQkJ CXJldHVybiByZXQ7CkBAIC0xMzQzLDcgKzEzNDMsNyBAQCBpbnQgdHRtX2JvX2NsZWFuX21tKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBtZW1fdHlwZSkKIAkJICAgICAgIG1l bV90eXBlKTsKIAkJcmV0dXJuIHJldDsKIAl9Ci0JZmVuY2VfcHV0KG1hbi0+bW92ZSk7CisJZG1h X2ZlbmNlX3B1dChtYW4tPm1vdmUpOwogCiAJbWFuLT51c2VfdHlwZSA9IGZhbHNlOwogCW1hbi0+ aGFzX3R5cGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv X3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwppbmRleCBiZjZlMjE2 NTVjNTcuLmQwNDU5YjM5MmU1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpAQCAtNjQ0 LDcgKzY0NCw3IEBAIHZvaWQgdHRtX2JvX2t1bm1hcChzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqICpt YXApCiBFWFBPUlRfU1lNQk9MKHR0bV9ib19rdW5tYXApOwogCiBpbnQgdHRtX2JvX21vdmVfYWNj ZWxfY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJICAgICAgc3RydWN0 IGZlbmNlICpmZW5jZSwKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkJICAg ICAgYm9vbCBldmljdCwKIAkJCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSkKIHsK QEAgLTY3NCw4ICs2NzQsOCBAQCBpbnQgdHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkgKiBvcGVyYXRpb24gaGFzIGNvbXBsZXRlZC4KIAkJ ICovCiAKLQkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwotCQliby0+bW92aW5nID0gZmVuY2VfZ2V0 KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsKKwkJYm8tPm1vdmluZyA9IGRt YV9mZW5jZV9nZXQoZmVuY2UpOwogCiAJCXJldCA9IHR0bV9idWZmZXJfb2JqZWN0X3RyYW5zZmVy KGJvLCAmZ2hvc3Rfb2JqKTsKIAkJaWYgKHJldCkKQEAgLTcwNiw3ICs3MDYsNyBAQCBpbnQgdHRt X2JvX21vdmVfYWNjZWxfY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogRVhQ T1JUX1NZTUJPTCh0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKTsKIAogaW50IHR0bV9ib19waXBl bGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkgc3RydWN0IGZlbmNl ICpmZW5jZSwgYm9vbCBldmljdCwKKwkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBl dmljdCwKIAkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCiB7CiAJc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKQEAgLTczMCw4ICs3MzAsOCBAQCBpbnQgdHRtX2Jv X3BpcGVsaW5lX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJICogb3BlcmF0 aW9uIGhhcyBjb21wbGV0ZWQuCiAJCSAqLwogCi0JCWZlbmNlX3B1dChiby0+bW92aW5nKTsKLQkJ Ym8tPm1vdmluZyA9IGZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoYm8tPm1vdmlu Zyk7CisJCWJvLT5tb3ZpbmcgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAogCQlyZXQgPSB0dG1f YnVmZmVyX29iamVjdF90cmFuc2ZlcihibywgJmdob3N0X29iaik7CiAJCWlmIChyZXQpCkBAIC03 NjEsMTYgKzc2MSwxNiBAQCBpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAkJICovCiAKIAkJc3Bpbl9sb2NrKCZmcm9tLT5tb3ZlX2xvY2spOwot CQlpZiAoIWZyb20tPm1vdmUgfHwgZmVuY2VfaXNfbGF0ZXIoZmVuY2UsIGZyb20tPm1vdmUpKSB7 Ci0JCQlmZW5jZV9wdXQoZnJvbS0+bW92ZSk7Ci0JCQlmcm9tLT5tb3ZlID0gZmVuY2VfZ2V0KGZl bmNlKTsKKwkJaWYgKCFmcm9tLT5tb3ZlIHx8IGRtYV9mZW5jZV9pc19sYXRlcihmZW5jZSwgZnJv bS0+bW92ZSkpIHsKKwkJCWRtYV9mZW5jZV9wdXQoZnJvbS0+bW92ZSk7CisJCQlmcm9tLT5tb3Zl ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAJCX0KIAkJc3Bpbl91bmxvY2soJmZyb20tPm1vdmVf bG9jayk7CiAKIAkJdHRtX2JvX2ZyZWVfb2xkX25vZGUoYm8pOwogCi0JCWZlbmNlX3B1dChiby0+ bW92aW5nKTsKLQkJYm8tPm1vdmluZyA9IGZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9mZW5jZV9w dXQoYm8tPm1vdmluZyk7CisJCWJvLT5tb3ZpbmcgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAog CX0gZWxzZSB7CiAJCS8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9f dm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKaW5kZXggYTZlZDlkNWU1MTY3 Li40NzQ4YWVkYzkzM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3Zt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwpAQCAtNTQsNyArNTQsNyBA QCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCiAJLyoKIAkgKiBRdWljayBub24tc3RhbGxpbmcgY2hlY2sgZm9yIGlkbGUuCiAJICov Ci0JaWYgKGZlbmNlX2lzX3NpZ25hbGVkKGJvLT5tb3ZpbmcpKQorCWlmIChkbWFfZmVuY2VfaXNf c2lnbmFsZWQoYm8tPm1vdmluZykpCiAJCWdvdG8gb3V0X2NsZWFyOwogCiAJLyoKQEAgLTY3LDE0 ICs2NywxNCBAQCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCiAJCQlnb3RvIG91dF91bmxvY2s7CiAKIAkJdXBfcmVhZCgmdm1hLT52 bV9tbS0+bW1hcF9zZW0pOwotCQkodm9pZCkgZmVuY2Vfd2FpdChiby0+bW92aW5nLCB0cnVlKTsK KwkJKHZvaWQpIGRtYV9mZW5jZV93YWl0KGJvLT5tb3ZpbmcsIHRydWUpOwogCQlnb3RvIG91dF91 bmxvY2s7CiAJfQogCiAJLyoKIAkgKiBPcmRpbmFyeSB3YWl0LgogCSAqLwotCXJldCA9IGZlbmNl X3dhaXQoYm8tPm1vdmluZywgdHJ1ZSk7CisJcmV0ID0gZG1hX2ZlbmNlX3dhaXQoYm8tPm1vdmlu ZywgdHJ1ZSk7CiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewogCQlyZXQgPSAocmV0ICE9IC1F UkVTVEFSVFNZUykgPyBWTV9GQVVMVF9TSUdCVVMgOgogCQkJVk1fRkFVTFRfTk9QQUdFOwpAQCAt ODIsNyArODIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJfQogCiBvdXRfY2xlYXI6Ci0JZmVuY2VfcHV0KGJvLT5tb3Zp bmcpOworCWRtYV9mZW5jZV9wdXQoYm8tPm1vdmluZyk7CiAJYm8tPm1vdmluZyA9IE5VTEw7CiAK IG91dF91bmxvY2s6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVm X3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCmluZGV4IGE4 MDcxN2IzNWRjNi4uZDM1YmM0OTFlOGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVm X3V0aWwuYwpAQCAtMTc5LDcgKzE3OSw4IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0 cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogRVhQT1JUX1NZTUJPTCh0dG1fZXVfcmVzZXJ2 ZV9idWZmZXJzKTsKIAogdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHd3 X2FjcXVpcmVfY3R4ICp0aWNrZXQsCi0JCQkJIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIHN0cnVj dCBmZW5jZSAqZmVuY2UpCisJCQkJIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCisJCQkJIHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyICplbnRy eTsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5j ZS5jCmluZGV4IDVjNTdjMWZmYTFmOS4uNDg4OTA5YTIxZWQ4IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdl bV9mZW5jZS5jCkBAIC0yOCw1NiArMjgsNTcgQEAKICNkZWZpbmUgVkdFTV9GRU5DRV9USU1FT1VU ICgxMCpIWikKIAogc3RydWN0IHZnZW1fZmVuY2UgewotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0 cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAlzdHJ1Y3Qgc3BpbmxvY2sgbG9jazsKIAlzdHJ1Y3QgdGlt ZXJfbGlzdCB0aW1lcjsKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2ZlbmNlX2dldF9k cml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKnZnZW1f ZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVy biAidmdlbSI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2ZlbmNlX2dldF90aW1lbGlu ZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5j ZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4g InVuYm91bmQiOwogfQogCi1zdGF0aWMgYm9vbCB2Z2VtX2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBm ZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCB2Z2VtX2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKQogewogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgdmdlbV9m ZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCB2 Z2VtX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJ cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHZnZW1fZmVuY2VfcmVsZWFzZShzdHJ1Y3Qg ZmVuY2UgKmJhc2UpCitzdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGRtYV9m ZW5jZSAqYmFzZSkKIHsKIAlzdHJ1Y3QgdmdlbV9mZW5jZSAqZmVuY2UgPSBjb250YWluZXJfb2Yo YmFzZSwgdHlwZW9mKCpmZW5jZSksIGJhc2UpOwogCiAJZGVsX3RpbWVyX3N5bmMoJmZlbmNlLT50 aW1lcik7Ci0JZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOworCWRtYV9mZW5jZV9mcmVlKCZmZW5j ZS0+YmFzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZnZW1fZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBm ZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB2Z2VtX2ZlbmNl X3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSkK IHsKIAlzbnByaW50ZihzdHIsIHNpemUsICIldSIsIGZlbmNlLT5zZXFubyk7CiB9CiAKLXN0YXRp YyB2b2lkIHZnZW1fZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2Us IGNoYXIgKnN0ciwKK3N0YXRpYyB2b2lkIHZnZW1fZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsCiAJCQkJCSAgaW50IHNpemUpCiB7Ci0J c25wcmludGYoc3RyLCBzaXplLCAiJXUiLCBmZW5jZV9pc19zaWduYWxlZChmZW5jZSkgPyBmZW5j ZS0+c2Vxbm8gOiAwKTsKKwlzbnByaW50ZihzdHIsIHNpemUsICIldSIsCisJCSBkbWFfZmVuY2Vf aXNfc2lnbmFsZWQoZmVuY2UpID8gZmVuY2UtPnNlcW5vIDogMCk7CiB9CiAKLXN0YXRpYyBjb25z dCBzdHJ1Y3QgZmVuY2Vfb3BzIHZnZW1fZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVj dCBkbWFfZmVuY2Vfb3BzIHZnZW1fZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSB2 Z2VtX2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSB2Z2VtX2Zl bmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gdmdlbV9mZW5jZV9l bmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IHZnZW1fZmVuY2Vfc2lnbmFsZWQsCi0JLndh aXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0 LAogCS5yZWxlYXNlID0gdmdlbV9mZW5jZV9yZWxlYXNlLAogCiAJLmZlbmNlX3ZhbHVlX3N0ciA9 IHZnZW1fZmVuY2VfdmFsdWVfc3RyLApAQCAtODgsMTEgKzg5LDExIEBAIHN0YXRpYyB2b2lkIHZn ZW1fZmVuY2VfdGltZW91dCh1bnNpZ25lZCBsb25nIGRhdGEpCiB7CiAJc3RydWN0IHZnZW1fZmVu Y2UgKmZlbmNlID0gKHN0cnVjdCB2Z2VtX2ZlbmNlICopZGF0YTsKIAotCWZlbmNlX3NpZ25hbCgm ZmVuY2UtPmJhc2UpOworCWRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsKIH0KIAotc3Rh dGljIHN0cnVjdCBmZW5jZSAqdmdlbV9mZW5jZV9jcmVhdGUoc3RydWN0IHZnZW1fZmlsZSAqdmZp bGUsCi0JCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK3N0YXRpYyBzdHJ1Y3QgZG1hX2Zl bmNlICp2Z2VtX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSwKKwkJCQkJICAg dW5zaWduZWQgaW50IGZsYWdzKQogewogCXN0cnVjdCB2Z2VtX2ZlbmNlICpmZW5jZTsKIApAQCAt MTAxLDggKzEwMiw4IEBAIHN0YXRpYyBzdHJ1Y3QgZmVuY2UgKnZnZW1fZmVuY2VfY3JlYXRlKHN0 cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlLAogCQlyZXR1cm4gTlVMTDsKIAogCXNwaW5fbG9ja19pbml0 KCZmZW5jZS0+bG9jayk7Ci0JZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZ2Z2VtX2ZlbmNlX29w cywgJmZlbmNlLT5sb2NrLAotCQkgICBmZW5jZV9jb250ZXh0X2FsbG9jKDEpLCAxKTsKKwlkbWFf ZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZ2Z2VtX2ZlbmNlX29wcywgJmZlbmNlLT5sb2NrLAor CQkgICAgICAgZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSksIDEpOwogCiAJc2V0dXBfdGltZXIo JmZlbmNlLT50aW1lciwgdmdlbV9mZW5jZV90aW1lb3V0LCAodW5zaWduZWQgbG9uZylmZW5jZSk7 CiAKQEAgLTE1Nyw3ICsxNTgsNyBAQCBpbnQgdmdlbV9mZW5jZV9hdHRhY2hfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSA9IGZpbGUtPmRyaXZl cl9wcml2OwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3Y7CiAJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZTsKIAlpbnQgcmV0OwogCiAJaWYgKGFyZy0+ZmxhZ3MgJiB+VkdFTV9GRU5DRV9XUklU RSkKQEAgLTIwOSw4ICsyMTAsOCBAQCBpbnQgdmdlbV9mZW5jZV9hdHRhY2hfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAl9CiBlcnJfZmVuY2U6CiAJaWYgKHJldCkgewotCQlmZW5jZV9z aWduYWwoZmVuY2UpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsKGZl bmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJfQogZXJyOgogCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlX3VubG9ja2VkKG9iaik7CkBAIC0yMzksNyArMjQwLDcgQEAgaW50IHZnZW1f ZmVuY2Vfc2lnbmFsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IHZn ZW1fZmlsZSAqdmZpbGUgPSBmaWxlLT5kcml2ZXJfcHJpdjsKIAlzdHJ1Y3QgZHJtX3ZnZW1fZmVu Y2Vfc2lnbmFsICphcmcgPSBkYXRhOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRt YV9mZW5jZSAqZmVuY2U7CiAJaW50IHJldCA9IDA7CiAKIAlpZiAoYXJnLT5mbGFncykKQEAgLTI1 MywxMSArMjU0LDExIEBAIGludCB2Z2VtX2ZlbmNlX3NpZ25hbF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCWlmIChJU19FUlIoZmVuY2UpKQogCQlyZXR1cm4gUFRSX0VSUihmZW5jZSk7 CiAKLQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQogCQlyZXQgPSAtRVRJTUVET1VUOwogCi0JZmVuY2Vfc2lnbmFsKGZlbmNl KTsKLQlmZW5jZV9wdXQoZmVuY2UpOworCWRtYV9mZW5jZV9zaWduYWwoZmVuY2UpOworCWRtYV9m ZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTI3MSw4ICsyNzIsOCBAQCBp bnQgdmdlbV9mZW5jZV9vcGVuKHN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlKQogCiBzdGF0aWMgaW50 IF9fdmdlbV9mZW5jZV9pZHJfZmluaShpbnQgaWQsIHZvaWQgKnAsIHZvaWQgKmRhdGEpCiB7Ci0J ZmVuY2Vfc2lnbmFsKHApOwotCWZlbmNlX3B1dChwKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKHApOwor CWRtYV9mZW5jZV9wdXQocCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmly dGdwdV9kcnYuaAppbmRleCBhZTU5MDgwZDYzZDEuLmVjMWViZGNmZTgwYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92aXJ0aW8vdmlydGdwdV9kcnYuaApAQCAtODIsNyArODIsNyBAQCBzdHJ1Y3QgdmlydGlvX2dw dV9mZW5jZV9kcml2ZXIgewogfTsKIAogc3RydWN0IHZpcnRpb19ncHVfZmVuY2UgewotCXN0cnVj dCBmZW5jZSBmOworCXN0cnVjdCBkbWFfZmVuY2UgZjsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9mZW5j ZV9kcml2ZXIgKmRydjsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CiAJdWludDY0X3Qgc2VxOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYwppbmRleCBmM2Y3MGZhOGE0YzcuLjIz MzUzNTIxZjkwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Zl bmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZlbmNlLmMKQEAgLTI2 LDIyICsyNiwyMiBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAidmlydGdwdV9k cnYuaCIKIAotc3RhdGljIGNvbnN0IGNoYXIgKnZpcnRpb19nZXRfZHJpdmVyX25hbWUoc3RydWN0 IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IGNoYXIgKnZpcnRpb19nZXRfZHJpdmVyX25hbWUoc3Ry dWN0IGRtYV9mZW5jZSAqZikKIHsKIAlyZXR1cm4gInZpcnRpb19ncHUiOwogfQogCi1zdGF0aWMg Y29uc3QgY2hhciAqdmlydGlvX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0 YXRpYyBjb25zdCBjaGFyICp2aXJ0aW9fZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5j ZSAqZikKIHsKIAlyZXR1cm4gImNvbnRyb2xxIjsKIH0KIAotc3RhdGljIGJvb2wgdmlydGlvX2Vu YWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgdmlydGlvX2VuYWJs ZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KIAot c3RhdGljIGJvb2wgdmlydGlvX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29s IHZpcnRpb19zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCB2aXJ0aW9f Z3B1X2ZlbmNlICpmZW5jZSA9IHRvX3ZpcnRpb19mZW5jZShmKTsKIApAQCAtNTAsMjYgKzUwLDI2 IEBAIHN0YXRpYyBib29sIHZpcnRpb19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCiAJcmV0dXJu IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCB2aXJ0aW9fZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBm ZW5jZSAqZiwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHZpcnRpb19mZW5jZV92 YWx1ZV9zdHIoc3RydWN0IGRtYV9mZW5jZSAqZiwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlz dHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSAqZmVuY2UgPSB0b192aXJ0aW9fZmVuY2UoZik7CiAKIAlz bnByaW50ZihzdHIsIHNpemUsICIlbGx1IiwgZmVuY2UtPnNlcSk7CiB9CiAKLXN0YXRpYyB2b2lk IHZpcnRpb190aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmLCBjaGFyICpzdHIsIGlu dCBzaXplKQorc3RhdGljIHZvaWQgdmlydGlvX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZG1h X2ZlbmNlICpmLCBjaGFyICpzdHIsIGludCBzaXplKQogewogCXN0cnVjdCB2aXJ0aW9fZ3B1X2Zl bmNlICpmZW5jZSA9IHRvX3ZpcnRpb19mZW5jZShmKTsKIAogCXNucHJpbnRmKHN0ciwgc2l6ZSwg IiVsbHUiLCAodTY0KWF0b21pYzY0X3JlYWQoJmZlbmNlLT5kcnYtPmxhc3Rfc2VxKSk7CiB9CiAK LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHZpcnRpb19mZW5jZV9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgdmlydGlvX2ZlbmNlX29wcyA9IHsKIAkuZ2V0 X2RyaXZlcl9uYW1lICAgICA9IHZpcnRpb19nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGlu ZV9uYW1lICAgPSB2aXJ0aW9fZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcg ICAgPSB2aXJ0aW9fZW5hYmxlX3NpZ25hbGluZywKIAkuc2lnbmFsZWQgICAgICAgICAgICA9IHZp cnRpb19zaWduYWxlZCwKLQkud2FpdCAgICAgICAgICAgICAgICA9IGZlbmNlX2RlZmF1bHRfd2Fp dCwKKwkud2FpdCAgICAgICAgICAgICAgICA9IGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQsCiAJLmZl bmNlX3ZhbHVlX3N0ciAgICAgPSB2aXJ0aW9fZmVuY2VfdmFsdWVfc3RyLAogCS50aW1lbGluZV92 YWx1ZV9zdHIgID0gdmlydGlvX3RpbWVsaW5lX3ZhbHVlX3N0ciwKIH07CkBAIC04OCw5ICs4OCw5 IEBAIGludCB2aXJ0aW9fZ3B1X2ZlbmNlX2VtaXQoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2 Z2RldiwKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZHJ2LT5sb2NrLCBpcnFfZmxhZ3MpOwogCSgqZmVu Y2UpLT5kcnYgPSBkcnY7CiAJKCpmZW5jZSktPnNlcSA9ICsrZHJ2LT5zeW5jX3NlcTsKLQlmZW5j ZV9pbml0KCYoKmZlbmNlKS0+ZiwgJnZpcnRpb19mZW5jZV9vcHMsICZkcnYtPmxvY2ssCi0JCSAg IGRydi0+Y29udGV4dCwgKCpmZW5jZSktPnNlcSk7Ci0JZmVuY2VfZ2V0KCYoKmZlbmNlKS0+Zik7 CisJZG1hX2ZlbmNlX2luaXQoJigqZmVuY2UpLT5mLCAmdmlydGlvX2ZlbmNlX29wcywgJmRydi0+ bG9jaywKKwkJICAgICAgIGRydi0+Y29udGV4dCwgKCpmZW5jZSktPnNlcSk7CisJZG1hX2ZlbmNl X2dldCgmKCpmZW5jZSktPmYpOwogCWxpc3RfYWRkX3RhaWwoJigqZmVuY2UpLT5ub2RlLCAmZHJ2 LT5mZW5jZXMpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRydi0+bG9jaywgaXJxX2ZsYWdz KTsKIApAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgdmlydGlvX2dwdV9mZW5jZV9ldmVudF9wcm9j ZXNzKHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYsCiAJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGZlbmNlLCB0bXAsICZkcnYtPmZlbmNlcywgbm9kZSkgewogCQlpZiAobGFzdF9zZXEg PCBmZW5jZS0+c2VxKQogCQkJY29udGludWU7Ci0JCWZlbmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNl LT5mKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5mKTsKIAkJbGlzdF9kZWwo JmZlbmNlLT5ub2RlKTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJCWRtYV9mZW5jZV9wdXQo JmZlbmNlLT5mKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHJ2LT5sb2NrLCBpcnFf ZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lv Y3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYwppbmRleCA4MTg0 NzhiNGM0ZjAuLjYxZjNhOTYzYWY5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lv Y3RsLmMKQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfZXhlY2J1ZmZl cl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCS8qIGZlbmNlIHRo ZSBjb21tYW5kIGJvICovCiAJdmlydGlvX2dwdV91bnJlZl9saXN0KCZ2YWxpZGF0ZV9saXN0KTsK IAlkcm1fZnJlZV9sYXJnZShidWZsaXN0KTsKLQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwlkbWFf ZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiAJcmV0dXJuIDA7CiAKIG91dF91bnJlc3Y6CkBAIC0yOTgs NyArMjk4LDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlkcm1fZ2VtX29iamVjdF9yZWxl YXNlKG9iaik7CiAJCWlmICh2Z2Rldi0+aGFzX3ZpcmdsXzNkKSB7CiAJCQl2aXJ0aW9fZ3B1X3Vu cmVmX2xpc3QoJnZhbGlkYXRlX2xpc3QpOwotCQkJZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJCQlk bWFfZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiAJCX0KIAkJcmV0dXJuIHJldDsKIAl9CkBAIC0zMDks MTMgKzMwOSwxMyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfcmVzb3VyY2VfY3JlYXRlX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAlpZiAodmdkZXYtPmhhc192 aXJnbF8zZCkgewogCQl2aXJ0aW9fZ3B1X3VucmVmX2xpc3QoJnZhbGlkYXRlX2xpc3QpOwotCQlm ZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmYpOwogCX0KIAly ZXR1cm4gMDsKIGZhaWxfdW5yZWY6CiAJaWYgKHZnZGV2LT5oYXNfdmlyZ2xfM2QpIHsKIAkJdmly dGlvX2dwdV91bnJlZl9saXN0KCZ2YWxpZGF0ZV9saXN0KTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+ Zik7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAl9CiAvL2ZhaWxfb2JqOgogLy8JZHJt X2dlbV9vYmplY3RfaGFuZGxlX3VucmVmZXJlbmNlX3VubG9ja2VkKG9iaik7CkBAIC0zODMsNyAr MzgzLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3RyYW5zZmVyX2Zyb21faG9zdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5j ZShxb2JqLT50Ym8ucmVzdiwKIAkJCQkJICAmZmVuY2UtPmYpOwogCi0JZmVuY2VfcHV0KCZmZW5j ZS0+Zik7CisJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmYpOwogb3V0X3VucmVzOgogCXZpcnRpb19n cHVfb2JqZWN0X3VucmVzZXJ2ZShxb2JqKTsKIG91dDoKQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0 aWMgaW50IHZpcnRpb19ncHVfdHJhbnNmZXJfdG9faG9zdF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJIGFyZ3MtPmxldmVsLCAmYm94LCAmZmVuY2UpOwogCQly ZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocW9iai0+dGJvLnJlc3YsCiAJCQkJCQkg ICZmZW5jZS0+Zik7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQlkbWFfZmVuY2VfcHV0KCZm ZW5jZS0+Zik7CiAJfQogCiBvdXRfdW5yZXM6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21z LmMKaW5kZXggMDM2YjBmYmFlMGZiLi4xMjM1NTE5ODUzZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlv L3ZpcnRncHVfa21zLmMKQEAgLTE1OSw3ICsxNTksNyBAQCBpbnQgdmlydGlvX2dwdV9kcml2ZXJf bG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCXZpcnRp b19ncHVfaW5pdF92cSgmdmdkZXYtPmN0cmxxLCB2aXJ0aW9fZ3B1X2RlcXVldWVfY3RybF9mdW5j KTsKIAl2aXJ0aW9fZ3B1X2luaXRfdnEoJnZnZGV2LT5jdXJzb3JxLCB2aXJ0aW9fZ3B1X2RlcXVl dWVfY3Vyc29yX2Z1bmMpOwogCi0JdmdkZXYtPmZlbmNlX2Rydi5jb250ZXh0ID0gZmVuY2VfY29u dGV4dF9hbGxvYygxKTsKKwl2Z2Rldi0+ZmVuY2VfZHJ2LmNvbnRleHQgPSBkbWFfZmVuY2VfY29u dGV4dF9hbGxvYygxKTsKIAlzcGluX2xvY2tfaW5pdCgmdmdkZXYtPmZlbmNlX2Rydi5sb2NrKTsK IAlJTklUX0xJU1RfSEVBRCgmdmdkZXYtPmZlbmNlX2Rydi5mZW5jZXMpOwogCUlOSVRfTElTVF9I RUFEKCZ2Z2Rldi0+Y2FwX2NhY2hlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0 aW8vdmlydGdwdV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3BsYW5l LmMKaW5kZXggYmEyOGMwZjZmMjhhLi5jYjc1ZjA2NjNiYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0 aW8vdmlydGdwdV9wbGFuZS5jCkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIHZvaWQgdmlydGlv X2dwdV9jdXJzb3JfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlpZiAo IXJldCkgewogCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT50Ym8ucmVz diwKIAkJCQkJCQkgICZmZW5jZS0+Zik7Ci0JCQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJCWRt YV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAkJCWZlbmNlID0gTlVMTDsKIAkJCXZpcnRpb19ncHVf b2JqZWN0X3VucmVzZXJ2ZShibyk7CiAJCQl2aXJ0aW9fZ3B1X29iamVjdF93YWl0KGJvLCBmYWxz ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwppbmRleCAyNmFjOGU4MGE0Nzgu LjY1NDFkZDhiODJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf ZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCkBAIC0x MDgsNyArMTA4LDcgQEAgZm1hbl9mcm9tX2ZlbmNlKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5j ZSkKICAqIG9iamVjdHMgd2l0aCBhY3Rpb25zIGF0dGFjaGVkIHRvIHRoZW0uCiAgKi8KIAotc3Rh dGljIHZvaWQgdm13X2ZlbmNlX29ial9kZXN0cm95KHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyB2 b2lkIHZtd19mZW5jZV9vYmpfZGVzdHJveShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVj dCB2bXdfZmVuY2Vfb2JqICpmZW5jZSA9CiAJCWNvbnRhaW5lcl9vZihmLCBzdHJ1Y3Qgdm13X2Zl bmNlX29iaiwgYmFzZSk7CkBAIC0xMjMsMTcgKzEyMywxNyBAQCBzdGF0aWMgdm9pZCB2bXdfZmVu Y2Vfb2JqX2Rlc3Ryb3koc3RydWN0IGZlbmNlICpmKQogCWZlbmNlLT5kZXN0cm95KGZlbmNlKTsK IH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnZtd19mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0 IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IGNoYXIgKnZtd19mZW5jZV9nZXRfZHJpdmVyX25hbWUo c3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlyZXR1cm4gInZtd2dmeCI7CiB9CiAKLXN0YXRpYyBj b25zdCBjaGFyICp2bXdfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQor c3RhdGljIGNvbnN0IGNoYXIgKnZtd19mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1h X2ZlbmNlICpmKQogewogCXJldHVybiAic3ZnYSI7CiB9CiAKLXN0YXRpYyBib29sIHZtd19mZW5j ZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIHZtd19mZW5j ZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHZtd19m ZW5jZV9vYmogKmZlbmNlID0KIAkJY29udGFpbmVyX29mKGYsIHN0cnVjdCB2bXdfZmVuY2Vfb2Jq LCBiYXNlKTsKQEAgLTE1MiwxMiArMTUyLDEyIEBAIHN0YXRpYyBib29sIHZtd19mZW5jZV9lbmFi bGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKIH0KIAogc3RydWN0IHZtd2dmeF93YWl0X2Ni IHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJhc2U7CiAJ c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogfTsKIAogc3RhdGljIHZvaWQKLXZtd2dmeF93YWl0 X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCit2bXdnZnhfd2Fp dF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7 CiAJc3RydWN0IHZtd2dmeF93YWl0X2NiICp3YWl0ID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1 Y3Qgdm13Z2Z4X3dhaXRfY2IsIGJhc2UpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZtd2dmeF93YWl0 X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiAKIHN0YXRpYyB2 b2lkIF9fdm13X2ZlbmNlc191cGRhdGUoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuKTsK IAotc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNlICpmLCBib29sIGludHIs IHNpZ25lZCBsb25nIHRpbWVvdXQpCitzdGF0aWMgbG9uZyB2bXdfZmVuY2Vfd2FpdChzdHJ1Y3Qg ZG1hX2ZlbmNlICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiB7CiAJc3RydWN0 IHZtd19mZW5jZV9vYmogKmZlbmNlID0KIAkJY29udGFpbmVyX29mKGYsIHN0cnVjdCB2bXdfZmVu Y2Vfb2JqLCBiYXNlKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgbG9uZyB2bXdfZmVuY2Vf d2FpdChzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAog CXdoaWxlIChyZXQgPiAwKSB7CiAJCV9fdm13X2ZlbmNlc191cGRhdGUoZm1hbik7Ci0JCWlmICh0 ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmYtPmZsYWdzKSkKKwkJaWYgKHRlc3Rf Yml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmYtPmZsYWdzKSkKIAkJCWJyZWFrOwog CiAJCWlmIChpbnRyKQpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBsb25nIHZtd19mZW5jZV93 YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCXJl dHVybiByZXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2Vfb3BzIHZtd19mZW5jZV9vcHMgPSB7 CitzdGF0aWMgc3RydWN0IGRtYV9mZW5jZV9vcHMgdm13X2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2Ry aXZlcl9uYW1lID0gdm13X2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25h bWUgPSB2bXdfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSB2 bXdfZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKQEAgLTI5OCw3ICsyOTgsNyBAQCBzdHJ1Y3Qgdm13 X2ZlbmNlX21hbmFnZXIgKnZtd19mZW5jZV9tYW5hZ2VyX2luaXQoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdikKIAlmbWFuLT5ldmVudF9mZW5jZV9hY3Rpb25fc2l6ZSA9CiAJCXR0bV9yb3Vu ZF9wb3Qoc2l6ZW9mKHN0cnVjdCB2bXdfZXZlbnRfZmVuY2VfYWN0aW9uKSk7CiAJbXV0ZXhfaW5p dCgmZm1hbi0+Z29hbF9pcnFfbXV0ZXgpOwotCWZtYW4tPmN0eCA9IGZlbmNlX2NvbnRleHRfYWxs b2MoMSk7CisJZm1hbi0+Y3R4ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAKIAlyZXR1 cm4gZm1hbjsKIH0KQEAgLTMyNiw4ICszMjYsOCBAQCBzdGF0aWMgaW50IHZtd19mZW5jZV9vYmpf aW5pdChzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4sCiAJdW5zaWduZWQgbG9uZyBpcnFf ZmxhZ3M7CiAJaW50IHJldCA9IDA7CiAKLQlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJnZtd19m ZW5jZV9vcHMsICZmbWFuLT5sb2NrLAotCQkgICBmbWFuLT5jdHgsIHNlcW5vKTsKKwlkbWFfZmVu Y2VfaW5pdCgmZmVuY2UtPmJhc2UsICZ2bXdfZmVuY2Vfb3BzLCAmZm1hbi0+bG9jaywKKwkJICAg ICAgIGZtYW4tPmN0eCwgc2Vxbm8pOwogCUlOSVRfTElTVF9IRUFEKCZmZW5jZS0+c2VxX3Bhc3Nl ZF9hY3Rpb25zKTsKIAlmZW5jZS0+ZGVzdHJveSA9IGRlc3Ryb3k7CiAKQEAgLTQzMSw3ICs0MzEs NyBAQCBzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZ29hbF9jaGVja19sb2NrZWQoc3RydWN0IHZtd19m ZW5jZV9vYmogKmZlbmNlKQogCXUzMiBnb2FsX3NlcW5vOwogCXUzMiAqZmlmb19tZW07CiAKLQlp ZiAoZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKCZmZW5jZS0+YmFzZSkpCisJaWYgKGRtYV9mZW5j ZV9pc19zaWduYWxlZF9sb2NrZWQoJmZlbmNlLT5iYXNlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJ Zmlmb19tZW0gPSBmbWFuLT5kZXZfcHJpdi0+bW1pb192aXJ0OwpAQCAtNDU5LDcgKzQ1OSw3IEBA IHN0YXRpYyB2b2lkIF9fdm13X2ZlbmNlc191cGRhdGUoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2Vy ICpmbWFuKQogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmZW5jZSwgbmV4dF9mZW5jZSwgJmZt YW4tPmZlbmNlX2xpc3QsIGhlYWQpIHsKIAkJaWYgKHNlcW5vIC0gZmVuY2UtPmJhc2Uuc2Vxbm8g PCBWTVdfRkVOQ0VfV1JBUCkgewogCQkJbGlzdF9kZWxfaW5pdCgmZmVuY2UtPmhlYWQpOwotCQkJ ZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmJhc2UpOworCQkJZG1hX2ZlbmNlX3NpZ25hbF9s b2NrZWQoJmZlbmNlLT5iYXNlKTsKIAkJCUlOSVRfTElTVF9IRUFEKCZhY3Rpb25fbGlzdCk7CiAJ CQlsaXN0X3NwbGljZV9pbml0KCZmZW5jZS0+c2VxX3Bhc3NlZF9hY3Rpb25zLAogCQkJCQkgJmFj dGlvbl9saXN0KTsKQEAgLTUwMCwxOCArNTAwLDE4IEBAIGJvb2wgdm13X2ZlbmNlX29ial9zaWdu YWxlZChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiB7CiAJc3RydWN0IHZtd19mZW5jZV9t YW5hZ2VyICpmbWFuID0gZm1hbl9mcm9tX2ZlbmNlKGZlbmNlKTsKIAotCWlmICh0ZXN0X2JpdChG RU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKSkKKwlpZiAodGVzdF9i aXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmJhc2UuZmxhZ3MpKQogCQly ZXR1cm4gMTsKIAogCXZtd19mZW5jZXNfdXBkYXRlKGZtYW4pOwogCi0JcmV0dXJuIGZlbmNlX2lz X3NpZ25hbGVkKCZmZW5jZS0+YmFzZSk7CisJcmV0dXJuIGRtYV9mZW5jZV9pc19zaWduYWxlZCgm ZmVuY2UtPmJhc2UpOwogfQogCiBpbnQgdm13X2ZlbmNlX29ial93YWl0KHN0cnVjdCB2bXdfZmVu Y2Vfb2JqICpmZW5jZSwgYm9vbCBsYXp5LAogCQkgICAgICAgYm9vbCBpbnRlcnJ1cHRpYmxlLCB1 bnNpZ25lZCBsb25nIHRpbWVvdXQpCiB7Ci0JbG9uZyByZXQgPSBmZW5jZV93YWl0X3RpbWVvdXQo JmZlbmNlLT5iYXNlLCBpbnRlcnJ1cHRpYmxlLCB0aW1lb3V0KTsKKwlsb25nIHJldCA9IGRtYV9m ZW5jZV93YWl0X3RpbWVvdXQoJmZlbmNlLT5iYXNlLCBpbnRlcnJ1cHRpYmxlLCB0aW1lb3V0KTsK IAogCWlmIChsaWtlbHkocmV0ID4gMCkpCiAJCXJldHVybiAwOwpAQCAtNTMwLDcgKzUzMCw3IEBA IHZvaWQgdm13X2ZlbmNlX29ial9mbHVzaChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiAK IHN0YXRpYyB2b2lkIHZtd19mZW5jZV9kZXN0cm95KHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5j ZSkKIHsKLQlmZW5jZV9mcmVlKCZmZW5jZS0+YmFzZSk7CisJZG1hX2ZlbmNlX2ZyZWUoJmZlbmNl LT5iYXNlKTsKIH0KIAogaW50IHZtd19mZW5jZV9jcmVhdGUoc3RydWN0IHZtd19mZW5jZV9tYW5h Z2VyICpmbWFuLApAQCAtNjY5LDcgKzY2OSw3IEBAIHZvaWQgdm13X2ZlbmNlX2ZpZm9fZG93bihz dHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCiAJCXN0cnVjdCB2bXdfZmVuY2Vfb2JqICpm ZW5jZSA9CiAJCQlsaXN0X2VudHJ5KGZtYW4tPmZlbmNlX2xpc3QucHJldiwgc3RydWN0IHZtd19m ZW5jZV9vYmosCiAJCQkJICAgaGVhZCk7Ci0JCWZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOworCQlk bWFfZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7CiAJCXNwaW5fdW5sb2NrX2lycSgmZm1hbi0+bG9j ayk7CiAKIAkJcmV0ID0gdm13X2ZlbmNlX29ial93YWl0KGZlbmNlLCBmYWxzZSwgZmFsc2UsCkBA IC02NzcsNyArNjc3LDcgQEAgdm9pZCB2bXdfZmVuY2VfZmlmb19kb3duKHN0cnVjdCB2bXdfZmVu Y2VfbWFuYWdlciAqZm1hbikKIAogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7CiAJCQlsaXN0 X2RlbF9pbml0KCZmZW5jZS0+aGVhZCk7Ci0JCQlmZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsK KwkJCWRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsKIAkJCUlOSVRfTElTVF9IRUFEKCZh Y3Rpb25fbGlzdCk7CiAJCQlsaXN0X3NwbGljZV9pbml0KCZmZW5jZS0+c2VxX3Bhc3NlZF9hY3Rp b25zLAogCQkJCQkgJmFjdGlvbl9saXN0KTsKQEAgLTY4NSw3ICs2ODUsNyBAQCB2b2lkIHZtd19m ZW5jZV9maWZvX2Rvd24oc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuKQogCQl9CiAKIAkJ QlVHX09OKCFsaXN0X2VtcHR5KCZmZW5jZS0+aGVhZCkpOwotCQlmZW5jZV9wdXQoJmZlbmNlLT5i YXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCQlzcGluX2xvY2tfaXJxKCZm bWFuLT5sb2NrKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxKCZmbWFuLT5sb2NrKTsKQEAgLTg4NCw3 ICs4ODQsNyBAQCBzdGF0aWMgdm9pZCB2bXdfZmVuY2Vfb2JqX2FkZF9hY3Rpb24oc3RydWN0IHZt d19mZW5jZV9vYmogKmZlbmNlLAogCXNwaW5fbG9ja19pcnFzYXZlKCZmbWFuLT5sb2NrLCBpcnFf ZmxhZ3MpOwogCiAJZm1hbi0+cGVuZGluZ19hY3Rpb25zW2FjdGlvbi0+dHlwZV0rKzsKLQlpZiAo ZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKCZmZW5jZS0+YmFzZSkpIHsKKwlpZiAoZG1hX2ZlbmNl X2lzX3NpZ25hbGVkX2xvY2tlZCgmZmVuY2UtPmJhc2UpKSB7CiAJCXN0cnVjdCBsaXN0X2hlYWQg YWN0aW9uX2xpc3Q7CiAKIAkJSU5JVF9MSVNUX0hFQUQoJmFjdGlvbl9saXN0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCmluZGV4IDgzYWUzMDFlZTE0MS4uZDlkODVhYTZlZDIw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmgKQEAgLTI3LDcgKzI3LDcgQEAK IAogI2lmbmRlZiBfVk1XR0ZYX0ZFTkNFX0hfCiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgor I2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAjZGVmaW5lIFZNV19GRU5DRV9XQUlUX1RJ TUVPVVQgKDUqSFopCiAKQEAgLTUyLDcgKzUyLDcgQEAgc3RydWN0IHZtd19mZW5jZV9hY3Rpb24g ewogfTsKIAogc3RydWN0IHZtd19mZW5jZV9vYmogewotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0 cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIHNlcV9wYXNzZWRfYWN0aW9uczsKQEAgLTcxLDE0ICs3MSwxNCBAQCB2bXdfZmVu Y2Vfb2JqX3VucmVmZXJlbmNlKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICoqZmVuY2VfcCkKIAogCSpm ZW5jZV9wID0gTlVMTDsKIAlpZiAoZmVuY2UpCi0JCWZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwor CQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0 IHZtd19mZW5jZV9vYmogKgogdm13X2ZlbmNlX29ial9yZWZlcmVuY2Uoc3RydWN0IHZtd19mZW5j ZV9vYmogKmZlbmNlKQogewogCWlmIChmZW5jZSkKLQkJZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7 CisJCWRtYV9mZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKIAlyZXR1cm4gZmVuY2U7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCmluZGV4IDFhODVmYjJkNGRjNi4u OGU4NmQ2ZDQxNDFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9y ZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMK QEAgLTE0NTQsNyArMTQ1NCw3IEBAIHZvaWQgdm13X2ZlbmNlX3NpbmdsZV9ibyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAogCWlmIChmZW5jZSA9PSBOVUxMKSB7CiAJCXZtd19leGVjYnVm X2ZlbmNlX2NvbW1hbmRzKE5VTEwsIGRldl9wcml2LCAmZmVuY2UsIE5VTEwpOwogCQlyZXNlcnZh dGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsICZmZW5jZS0+YmFzZSk7Ci0JCWZl bmNlX3B1dCgmZmVuY2UtPmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJ fSBlbHNlCiAJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+cmVzdiwgJmZl bmNlLT5iYXNlKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUv ZHJtL2RybVAuaAppbmRleCA2NzI2NDQwMzFiZDUuLmUzMzZlMzkwMTg3NiAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtUC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtNTcsNyArNTcs NyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5o PgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+ CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKICNpbmNsdWRlIDxhc20vbW1hbi5oPgog I2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CkBAIC0zNjIsNyArMzYyLDcgQEAgc3RydWN0IGRybV9p b2N0bF9kZXNjIHsKIHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCB7CiAJc3RydWN0IGNvbXBsZXRp b24gKmNvbXBsZXRpb247CiAJc3RydWN0IGRybV9ldmVudCAqZXZlbnQ7Ci0Jc3RydWN0IGZlbmNl ICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxp bms7CiAJc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX2xpbms7CiAJc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXY7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9k cm0vZHJtX2NydGMuaAppbmRleCAyODRjMWIzYWVjMTAuLjgzZTgzNTY3NTI0ZiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBA IC01NCw3ICs1NCw3IEBAIHN0cnVjdCBkcm1fbW9kZV9zZXQ7CiBzdHJ1Y3QgZHJtX2ZpbGU7CiBz dHJ1Y3QgZHJtX2NsaXBfcmVjdDsKIHN0cnVjdCBkZXZpY2Vfbm9kZTsKLXN0cnVjdCBmZW5jZTsK K3N0cnVjdCBkbWFfZmVuY2U7CiBzdHJ1Y3QgZWRpZDsKIAogc3RhdGljIGlubGluZSBpbnQ2NF90 IFU2NDJJNjQodWludDY0X3QgdmFsKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5l LmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAppbmRleCAwMjM1MzkwNGNkYmEuLmM1MGZjMDcz NDc0ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX3BsYW5lLmgKQEAgLTU5LDcgKzU5LDcgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7 CiAKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7ICAgLyogZG8gbm90IHdyaXRlIGRpcmVjdGx5LCB1 c2UgZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUoKSAqLwogCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiOyAgLyogZG8gbm90IHdyaXRlIGRpcmVjdGx5LCB1c2UgZHJtX2F0b21pY19zZXRf ZmJfZm9yX3BsYW5lKCkgKi8KLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwogCiAJLyogU2lnbmVkIGRlc3QgbG9jYXRpb24gYWxsb3dzIGl0IHRvIGJlIHBh cnRpYWxseSBvZmYgc2NyZWVuICovCiAJaW50MzJfdCBjcnRjX3gsIGNydGNfeTsKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2Jv X2FwaS5oCmluZGV4IDllYjk0MGQ2NzU1Zi4uNWJlYWU3OTY5YmY3IDEwMDY0NAotLS0gYS9pbmNs dWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBp LmgKQEAgLTIwOSw3ICsyMDksNyBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgewogCSAqIE1l bWJlcnMgcHJvdGVjdGVkIGJ5IGEgYm8gcmVzZXJ2YXRpb24uCiAJICovCiAKLQlzdHJ1Y3QgZmVu Y2UgKm1vdmluZzsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICptb3Zpbmc7CiAKIAlzdHJ1Y3QgZHJtX3Zt YV9vZmZzZXRfbm9kZSB2bWFfbm9kZTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKaW5kZXggNGYw YTkyMTg1OTk1Li4yN2U5YzI2YzkxNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1f Ym9fZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaApAQCAtMzAz LDcgKzMwMyw3IEBAIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciB7CiAJLyoKIAkgKiBQcm90 ZWN0ZWQgYnkgQG1vdmVfbG9jay4KIAkgKi8KLQlzdHJ1Y3QgZmVuY2UgKm1vdmU7CisJc3RydWN0 IGRtYV9mZW5jZSAqbW92ZTsKIH07CiAKIC8qKgpAQCAtMTAyNSw3ICsxMDI1LDcgQEAgZXh0ZXJu IHZvaWQgdHRtX2JvX2ZyZWVfb2xkX25vZGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7 CiAgKi8KIAogZXh0ZXJuIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCi0JCQkJICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGV2 aWN0LAorCQkJCSAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCiAJCQkJ ICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pOwogCiAvKioKQEAgLTEwNDAsNyArMTA0 MCw3IEBAIGV4dGVybiBpbnQgdHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cChzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogICogaW1tZWRpYXRlbHkgb3IgaGFuZyBpdCBvbiBhIHRlbXBvcmFy eSBidWZmZXIgb2JqZWN0LgogICovCiBpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKLQkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0 LAorCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0LAogCQkJIHN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSk7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmgK aW5kZXggYjYyMGMzMTdjNzcyLi40N2YzNWI4ZTZkMDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L3R0bS90dG1fZXhlY2J1Zl91dGlsLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVjYnVm X3V0aWwuaApAQCAtMTE0LDYgKzExNCw2IEBAIGV4dGVybiBpbnQgdHRtX2V1X3Jlc2VydmVfYnVm ZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAogZXh0ZXJuIHZvaWQgdHRtX2V1 X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCQkJ CQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAotCQkJCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJ CQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKaW5kZXggZTBiMDc0 MWFlNjcxLi44ZGFlYjNjZTAwMTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5o CisrKyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVk ZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVk ZSA8bGludXgvZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4 L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KIAogc3RydWN0IGRldmljZTsK QEAgLTE0Myw3ICsxNDMsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiB7CiAJd2FpdF9xdWV1ZV9oZWFkX3Qg cG9sbDsKIAogCXN0cnVjdCBkbWFfYnVmX3BvbGxfY2JfdCB7Ci0JCXN0cnVjdCBmZW5jZV9jYiBj YjsKKwkJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIAkJd2FpdF9xdWV1ZV9oZWFkX3QgKnBvbGw7 CiAKIAkJdW5zaWduZWQgbG9uZyBhY3RpdmU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Zl bmNlLWFycmF5LmggYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS1hcnJheS5oCnNpbWlsYXJpdHkg aW5kZXggNjIlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbGludXgvZmVuY2UtYXJyYXkuaApyZW5hbWUg dG8gaW5jbHVkZS9saW51eC9kbWEtZmVuY2UtYXJyYXkuaAppbmRleCBhNDQ3OTRlNTA4ZGYuLmNh Njc4ZjA0NDAxNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mZW5jZS1hcnJheS5oCisrKyBi L2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5LmgKQEAgLTE3LDE5ICsxNywxOSBAQAogICog bW9yZSBkZXRhaWxzLgogICovCiAKLSNpZm5kZWYgX19MSU5VWF9GRU5DRV9BUlJBWV9ICi0jZGVm aW5lIF9fTElOVVhfRkVOQ0VfQVJSQVlfSAorI2lmbmRlZiBfX0xJTlVYX0RNQV9GRU5DRV9BUlJB WV9ICisjZGVmaW5lIF9fTElOVVhfRE1BX0ZFTkNFX0FSUkFZX0gKIAotI2luY2x1ZGUgPGxpbnV4 L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKIC8qKgogICogc3RydWN0 IGZlbmNlX2FycmF5X2NiIC0gY2FsbGJhY2sgaGVscGVyIGZvciBmZW5jZSBhcnJheQogICogQGNi OiBmZW5jZSBjYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHNpZ25hbGluZwogICogQGFycmF5OiByZWZl cmVuY2UgdG8gdGhlIHBhcmVudCBmZW5jZSBhcnJheSBvYmplY3QKICAqLwotc3RydWN0IGZlbmNl X2FycmF5X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgY2I7Ci0Jc3RydWN0IGZlbmNlX2FycmF5ICph cnJheTsKK3N0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgeworCXN0cnVjdCBkbWFfZmVuY2VfY2Ig Y2I7CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXk7CiB9OwogCiAvKioKQEAgLTQwLDQ0 ICs0MCw0NyBAQCBzdHJ1Y3QgZmVuY2VfYXJyYXlfY2IgewogICogQG51bV9wZW5kaW5nOiBmZW5j ZXMgaW4gdGhlIGFycmF5IHN0aWxsIHBlbmRpbmcKICAqIEBmZW5jZXM6IGFycmF5IG9mIHRoZSBm ZW5jZXMKICAqLwotc3RydWN0IGZlbmNlX2FycmF5IHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKK3N0 cnVjdCBkbWFfZmVuY2VfYXJyYXkgeworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCXNwaW5s b2NrX3QgbG9jazsKIAl1bnNpZ25lZCBudW1fZmVuY2VzOwogCWF0b21pY190IG51bV9wZW5kaW5n OwotCXN0cnVjdCBmZW5jZSAqKmZlbmNlczsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzOwog fTsKIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgZmVuY2VfYXJyYXlfb3BzOworZXh0 ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGRtYV9mZW5jZV9hcnJheV9vcHM7CiAKIC8q KgogICogZmVuY2VfaXNfYXJyYXkgLSBjaGVjayBpZiBhIGZlbmNlIGlzIGZyb20gdGhlIGFycmF5 IHN1YnNjbGFzcworICogQGZlbmNlOiBmZW5jZSB0byB0ZXN0CiAgKgogICogUmV0dXJuIHRydWUg aWYgaXQgaXMgYSBmZW5jZV9hcnJheSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogICovCi1zdGF0aWMg aW5saW5lIGJvb2wgZmVuY2VfaXNfYXJyYXkoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBp bmxpbmUgYm9vbCBkbWFfZmVuY2VfaXNfYXJyYXkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 Ci0JcmV0dXJuIGZlbmNlLT5vcHMgPT0gJmZlbmNlX2FycmF5X29wczsKKwlyZXR1cm4gZmVuY2Ut Pm9wcyA9PSAmZG1hX2ZlbmNlX2FycmF5X29wczsKIH0KIAogLyoqCi0gKiB0b19mZW5jZV9hcnJh eSAtIGNhc3QgYSBmZW5jZSB0byBhIGZlbmNlX2FycmF5CisgKiB0b19kbWFfZmVuY2VfYXJyYXkg LSBjYXN0IGEgZmVuY2UgdG8gYSBmZW5jZV9hcnJheQogICogQGZlbmNlOiBmZW5jZSB0byBjYXN0 IHRvIGEgZmVuY2VfYXJyYXkKICAqCiAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGZlbmNlIGlzIG5v dCBhIGZlbmNlX2FycmF5LAogICogb3IgdGhlIGZlbmNlX2FycmF5IG90aGVyd2lzZS4KICAqLwot c3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2VfYXJyYXkgKnRvX2ZlbmNlX2FycmF5KHN0cnVjdCBm ZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKgordG9f ZG1hX2ZlbmNlX2FycmF5KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewotCWlmIChmZW5jZS0+ b3BzICE9ICZmZW5jZV9hcnJheV9vcHMpCisJaWYgKGZlbmNlLT5vcHMgIT0gJmRtYV9mZW5jZV9h cnJheV9vcHMpCiAJCXJldHVybiBOVUxMOwogCi0JcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwg c3RydWN0IGZlbmNlX2FycmF5LCBiYXNlKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKGZlbmNlLCBz dHJ1Y3QgZG1hX2ZlbmNlX2FycmF5LCBiYXNlKTsKIH0KIAotc3RydWN0IGZlbmNlX2FycmF5ICpm ZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMsIHN0cnVjdCBmZW5jZSAqKmZlbmNlcywK LQkJCQkgICAgICAgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAotCQkJCSAgICAgICBib29s IHNpZ25hbF9vbl9hbnkpOworc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqZG1hX2ZlbmNlX2FycmF5 X2NyZWF0ZShpbnQgbnVtX2ZlbmNlcywKKwkJCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipm ZW5jZXMsCisJCQkJCSAgICAgICB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8sCisJCQkJCSAg ICAgICBib29sIHNpZ25hbF9vbl9hbnkpOwogCi0jZW5kaWYgLyogX19MSU5VWF9GRU5DRV9BUlJB WV9IICovCisjZW5kaWYgLyogX19MSU5VWF9ETUFfRkVOQ0VfQVJSQVlfSCAqLwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaApzaW1p bGFyaXR5IGluZGV4IDU5JQpyZW5hbWUgZnJvbSBpbmNsdWRlL2xpbnV4L2ZlbmNlLmgKcmVuYW1l IHRvIGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLmgKaW5kZXggYzljNWJhOThjMzAyLi45NDdjMTQ3 M2I1MGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZmVuY2UuaAorKysgYi9pbmNsdWRlL2xp bnV4L2RtYS1mZW5jZS5oCkBAIC0xOCw4ICsxOCw4IEBACiAgKiBtb3JlIGRldGFpbHMuCiAgKi8K IAotI2lmbmRlZiBfX0xJTlVYX0ZFTkNFX0gKLSNkZWZpbmUgX19MSU5VWF9GRU5DRV9ICisjaWZu ZGVmIF9fTElOVVhfRE1BX0ZFTkNFX0gKKyNkZWZpbmUgX19MSU5VWF9ETUFfRkVOQ0VfSAogCiAj aW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgpAQCAtMzAsNDgg KzMwLDQ4IEBACiAjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1 cGRhdGUuaD4KIAotc3RydWN0IGZlbmNlOwotc3RydWN0IGZlbmNlX29wczsKLXN0cnVjdCBmZW5j ZV9jYjsKK3N0cnVjdCBkbWFfZmVuY2U7CitzdHJ1Y3QgZG1hX2ZlbmNlX29wczsKK3N0cnVjdCBk bWFfZmVuY2VfY2I7CiAKIC8qKgotICogc3RydWN0IGZlbmNlIC0gc29mdHdhcmUgc3luY2hyb25p emF0aW9uIHByaW1pdGl2ZQorICogc3RydWN0IGRtYV9mZW5jZSAtIHNvZnR3YXJlIHN5bmNocm9u aXphdGlvbiBwcmltaXRpdmUKICAqIEByZWZjb3VudDogcmVmY291bnQgZm9yIHRoaXMgZmVuY2UK LSAqIEBvcHM6IGZlbmNlX29wcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBmZW5jZQorICogQG9wczog ZG1hX2ZlbmNlX29wcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBmZW5jZQogICogQHJjdTogdXNlZCBm b3IgcmVsZWFzaW5nIGZlbmNlIHdpdGgga2ZyZWVfcmN1CiAgKiBAY2JfbGlzdDogbGlzdCBvZiBh bGwgY2FsbGJhY2tzIHRvIGNhbGwKICAqIEBsb2NrOiBzcGluX2xvY2tfaXJxc2F2ZSB1c2VkIGZv ciBsb2NraW5nCiAgKiBAY29udGV4dDogZXhlY3V0aW9uIGNvbnRleHQgdGhpcyBmZW5jZSBiZWxv bmdzIHRvLCByZXR1cm5lZCBieQotICogICAgICAgICAgIGZlbmNlX2NvbnRleHRfYWxsb2MoKQor ICogICAgICAgICAgIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKCkKICAqIEBzZXFubzogdGhlIHNl cXVlbmNlIG51bWJlciBvZiB0aGlzIGZlbmNlIGluc2lkZSB0aGUgZXhlY3V0aW9uIGNvbnRleHQs CiAgKiBjYW4gYmUgY29tcGFyZWQgdG8gZGVjaWRlIHdoaWNoIGZlbmNlIHdvdWxkIGJlIHNpZ25h bGVkIGxhdGVyLgotICogQGZsYWdzOiBBIG1hc2sgb2YgRkVOQ0VfRkxBR18qIGRlZmluZWQgYmVs b3cKKyAqIEBmbGFnczogQSBtYXNrIG9mIERNQV9GRU5DRV9GTEFHXyogZGVmaW5lZCBiZWxvdwog ICogQHRpbWVzdGFtcDogVGltZXN0YW1wIHdoZW4gdGhlIGZlbmNlIHdhcyBzaWduYWxlZC4KICAq IEBzdGF0dXM6IE9wdGlvbmFsLCBvbmx5IHZhbGlkIGlmIDwgMCwgbXVzdCBiZSBzZXQgYmVmb3Jl IGNhbGxpbmcKLSAqIGZlbmNlX3NpZ25hbCwgaW5kaWNhdGVzIHRoYXQgdGhlIGZlbmNlIGhhcyBj b21wbGV0ZWQgd2l0aCBhbiBlcnJvci4KKyAqIGRtYV9mZW5jZV9zaWduYWwsIGluZGljYXRlcyB0 aGF0IHRoZSBmZW5jZSBoYXMgY29tcGxldGVkIHdpdGggYW4gZXJyb3IuCiAgKgogICogdGhlIGZs YWdzIG1lbWJlciBtdXN0IGJlIG1hbmlwdWxhdGVkIGFuZCByZWFkIHVzaW5nIHRoZSBhcHByb3By aWF0ZQogICogYXRvbWljIG9wcyAoYml0XyopLCBzbyB0YWtpbmcgdGhlIHNwaW5sb2NrIHdpbGwg bm90IGJlIG5lZWRlZCBtb3N0CiAgKiBvZiB0aGUgdGltZS4KICAqCi0gKiBGRU5DRV9GTEFHX1NJ R05BTEVEX0JJVCAtIGZlbmNlIGlzIGFscmVhZHkgc2lnbmFsZWQKLSAqIEZFTkNFX0ZMQUdfRU5B QkxFX1NJR05BTF9CSVQgLSBlbmFibGVfc2lnbmFsaW5nIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQq Ci0gKiBGRU5DRV9GTEFHX1VTRVJfQklUUyAtIHN0YXJ0IG9mIHRoZSB1bnVzZWQgYml0cywgY2Fu IGJlIHVzZWQgYnkgdGhlCisgKiBETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgLSBmZW5jZSBp cyBhbHJlYWR5IHNpZ25hbGVkCisgKiBETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCAt IGVuYWJsZV9zaWduYWxpbmcgbWlnaHQgaGF2ZSBiZWVuIGNhbGxlZAorICogRE1BX0ZFTkNFX0ZM QUdfVVNFUl9CSVRTIC0gc3RhcnQgb2YgdGhlIHVudXNlZCBiaXRzLCBjYW4gYmUgdXNlZCBieSB0 aGUKICAqIGltcGxlbWVudGVyIG9mIHRoZSBmZW5jZSBmb3IgaXRzIG93biBwdXJwb3Nlcy4gQ2Fu IGJlIHVzZWQgaW4gZGlmZmVyZW50CiAgKiB3YXlzIGJ5IGRpZmZlcmVudCBmZW5jZSBpbXBsZW1l bnRlcnMsIHNvIGRvIG5vdCByZWx5IG9uIHRoaXMuCiAgKgogICogU2luY2UgYXRvbWljIGJpdG9w cyBhcmUgdXNlZCwgdGhpcyBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSB0aGUgY2FzZS4KLSAqIFBh cnRpY3VsYXJseSwgaWYgdGhlIGJpdCB3YXMgc2V0LCBidXQgZmVuY2Vfc2lnbmFsIHdhcyBjYWxs ZWQgcmlnaHQKKyAqIFBhcnRpY3VsYXJseSwgaWYgdGhlIGJpdCB3YXMgc2V0LCBidXQgZG1hX2Zl bmNlX3NpZ25hbCB3YXMgY2FsbGVkIHJpZ2h0CiAgKiBiZWZvcmUgdGhpcyBiaXQgd2FzIHNldCwg aXQgd291bGQgaGF2ZSBiZWVuIGFibGUgdG8gc2V0IHRoZQotICogRkVOQ0VfRkxBR19TSUdOQUxF RF9CSVQsIGJlZm9yZSBlbmFibGVfc2lnbmFsaW5nIHdhcyBjYWxsZWQuCi0gKiBBZGRpbmcgYSBj aGVjayBmb3IgRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgYWZ0ZXIgc2V0dGluZwotICogRkVOQ0Vf RkxBR19FTkFCTEVfU0lHTkFMX0JJVCBjbG9zZXMgdGhpcyByYWNlLCBhbmQgbWFrZXMgc3VyZSB0 aGF0Ci0gKiBhZnRlciBmZW5jZV9zaWduYWwgd2FzIGNhbGxlZCwgYW55IGVuYWJsZV9zaWduYWxp bmcgY2FsbCB3aWxsIGhhdmUgZWl0aGVyCisgKiBETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQs IGJlZm9yZSBlbmFibGVfc2lnbmFsaW5nIHdhcyBjYWxsZWQuCisgKiBBZGRpbmcgYSBjaGVjayBm b3IgRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIGFmdGVyIHNldHRpbmcKKyAqIERNQV9GRU5D RV9GTEFHX0VOQUJMRV9TSUdOQUxfQklUIGNsb3NlcyB0aGlzIHJhY2UsIGFuZCBtYWtlcyBzdXJl IHRoYXQKKyAqIGFmdGVyIGRtYV9mZW5jZV9zaWduYWwgd2FzIGNhbGxlZCwgYW55IGVuYWJsZV9z aWduYWxpbmcgY2FsbCB3aWxsIGhhdmUgZWl0aGVyCiAgKiBiZWVuIGNvbXBsZXRlZCwgb3IgbmV2 ZXIgY2FsbGVkIGF0IGFsbC4KICAqLwotc3RydWN0IGZlbmNlIHsKK3N0cnVjdCBkbWFfZmVuY2Ug ewogCXN0cnVjdCBrcmVmIHJlZmNvdW50OwotCWNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgKm9wczsK Kwljb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqb3BzOwogCXN0cnVjdCByY3VfaGVhZCByY3U7 CiAJc3RydWN0IGxpc3RfaGVhZCBjYl9saXN0OwogCXNwaW5sb2NrX3QgKmxvY2s7CkBAIC04Miwz NCArODIsMzUgQEAgc3RydWN0IGZlbmNlIHsKIAlpbnQgc3RhdHVzOwogfTsKIAotZW51bSBmZW5j ZV9mbGFnX2JpdHMgewotCUZFTkNFX0ZMQUdfU0lHTkFMRURfQklULAotCUZFTkNFX0ZMQUdfRU5B QkxFX1NJR05BTF9CSVQsCi0JRkVOQ0VfRkxBR19VU0VSX0JJVFMsIC8qIG11c3QgYWx3YXlzIGJl IGxhc3QgbWVtYmVyICovCitlbnVtIGRtYV9mZW5jZV9mbGFnX2JpdHMgeworCURNQV9GRU5DRV9G TEFHX1NJR05BTEVEX0JJVCwKKwlETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwlE TUFfRkVOQ0VfRkxBR19VU0VSX0JJVFMsIC8qIG11c3QgYWx3YXlzIGJlIGxhc3QgbWVtYmVyICov CiB9OwogCi10eXBlZGVmIHZvaWQgKCpmZW5jZV9mdW5jX3QpKHN0cnVjdCBmZW5jZSAqZmVuY2Us IHN0cnVjdCBmZW5jZV9jYiAqY2IpOwordHlwZWRlZiB2b2lkICgqZG1hX2ZlbmNlX2Z1bmNfdCko c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkJIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKTsK IAogLyoqCi0gKiBzdHJ1Y3QgZmVuY2VfY2IgLSBjYWxsYmFjayBmb3IgZmVuY2VfYWRkX2NhbGxi YWNrCi0gKiBAbm9kZTogdXNlZCBieSBmZW5jZV9hZGRfY2FsbGJhY2sgdG8gYXBwZW5kIHRoaXMg c3RydWN0IHRvIGZlbmNlOjpjYl9saXN0Ci0gKiBAZnVuYzogZmVuY2VfZnVuY190IHRvIGNhbGwK KyAqIHN0cnVjdCBkbWFfZmVuY2VfY2IgLSBjYWxsYmFjayBmb3IgZG1hX2ZlbmNlX2FkZF9jYWxs YmFjaworICogQG5vZGU6IHVzZWQgYnkgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayB0byBhcHBlbmQg dGhpcyBzdHJ1Y3QgdG8gZmVuY2U6OmNiX2xpc3QKKyAqIEBmdW5jOiBkbWFfZmVuY2VfZnVuY190 IHRvIGNhbGwKICAqCi0gKiBUaGlzIHN0cnVjdCB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IGZlbmNl X2FkZF9jYWxsYmFjaywgYWRkaXRpb25hbAotICogZGF0YSBjYW4gYmUgcGFzc2VkIGFsb25nIGJ5 IGVtYmVkZGluZyBmZW5jZV9jYiBpbiBhbm90aGVyIHN0cnVjdC4KKyAqIFRoaXMgc3RydWN0IHdp bGwgYmUgaW5pdGlhbGl6ZWQgYnkgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywgYWRkaXRpb25hbAor ICogZGF0YSBjYW4gYmUgcGFzc2VkIGFsb25nIGJ5IGVtYmVkZGluZyBkbWFfZmVuY2VfY2IgaW4g YW5vdGhlciBzdHJ1Y3QuCiAgKi8KLXN0cnVjdCBmZW5jZV9jYiB7CitzdHJ1Y3QgZG1hX2ZlbmNl X2NiIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Ci0JZmVuY2VfZnVuY190IGZ1bmM7CisJZG1h X2ZlbmNlX2Z1bmNfdCBmdW5jOwogfTsKIAogLyoqCi0gKiBzdHJ1Y3QgZmVuY2Vfb3BzIC0gb3Bl cmF0aW9ucyBpbXBsZW1lbnRlZCBmb3IgZmVuY2UKKyAqIHN0cnVjdCBkbWFfZmVuY2Vfb3BzIC0g b3BlcmF0aW9ucyBpbXBsZW1lbnRlZCBmb3IgZmVuY2UKICAqIEBnZXRfZHJpdmVyX25hbWU6IHJl dHVybnMgdGhlIGRyaXZlciBuYW1lLgogICogQGdldF90aW1lbGluZV9uYW1lOiByZXR1cm4gdGhl IG5hbWUgb2YgdGhlIGNvbnRleHQgdGhpcyBmZW5jZSBiZWxvbmdzIHRvLgogICogQGVuYWJsZV9z aWduYWxpbmc6IGVuYWJsZSBzb2Z0d2FyZSBzaWduYWxpbmcgb2YgZmVuY2UuCiAgKiBAc2lnbmFs ZWQ6IFtvcHRpb25hbF0gcGVlayB3aGV0aGVyIHRoZSBmZW5jZSBpcyBzaWduYWxlZCwgY2FuIGJl IG51bGwuCi0gKiBAd2FpdDogY3VzdG9tIHdhaXQgaW1wbGVtZW50YXRpb24sIG9yIGZlbmNlX2Rl ZmF1bHRfd2FpdC4KKyAqIEB3YWl0OiBjdXN0b20gd2FpdCBpbXBsZW1lbnRhdGlvbiwgb3IgZG1h X2ZlbmNlX2RlZmF1bHRfd2FpdC4KICAqIEByZWxlYXNlOiBbb3B0aW9uYWxdIGNhbGxlZCBvbiBk ZXN0cnVjdGlvbiBvZiBmZW5jZSwgY2FuIGJlIG51bGwKICAqIEBmaWxsX2RyaXZlcl9kYXRhOiBb b3B0aW9uYWxdIGNhbGxiYWNrIHRvIGZpbGwgaW4gZnJlZS1mb3JtIGRlYnVnIGluZm8KICAqIFJl dHVybnMgYW1vdW50IG9mIGJ5dGVzIGZpbGxlZCwgb3IgLWVycm5vLgpAQCAtMTM1LDIwICsxMzYs MjAgQEAgc3RydWN0IGZlbmNlX2NiIHsKICAqIGZlbmNlLT5zdGF0dXMgbWF5IGJlIHNldCBpbiBl bmFibGVfc2lnbmFsaW5nLCBidXQgb25seSB3aGVuIGZhbHNlIGlzCiAgKiByZXR1cm5lZC4KICAq Ci0gKiBDYWxsaW5nIGZlbmNlX3NpZ25hbCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyBpcyBjYWxs ZWQgYWxsb3dzCisgKiBDYWxsaW5nIGRtYV9mZW5jZV9zaWduYWwgYmVmb3JlIGVuYWJsZV9zaWdu YWxpbmcgaXMgY2FsbGVkIGFsbG93cwogICogZm9yIGEgdGlueSByYWNlIHdpbmRvdyBpbiB3aGlj aCBlbmFibGVfc2lnbmFsaW5nIGlzIGNhbGxlZCBkdXJpbmcsCi0gKiBiZWZvcmUsIG9yIGFmdGVy IGZlbmNlX3NpZ25hbC4gVG8gZmlnaHQgdGhpcywgaXQgaXMgcmVjb21tZW5kZWQKKyAqIGJlZm9y ZSwgb3IgYWZ0ZXIgZG1hX2ZlbmNlX3NpZ25hbC4gVG8gZmlnaHQgdGhpcywgaXQgaXMgcmVjb21t ZW5kZWQKICAqIHRoYXQgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgcmV0dXJucyB0cnVlIGFuIGV4 dHJhIHJlZmVyZW5jZSBpcwogICogdGFrZW4gb24gdGhlIGZlbmNlLCB0byBiZSByZWxlYXNlZCB3 aGVuIHRoZSBmZW5jZSBpcyBzaWduYWxlZC4KLSAqIFRoaXMgd2lsbCBtZWFuIGZlbmNlX3NpZ25h bCB3aWxsIHN0aWxsIGJlIGNhbGxlZCB0d2ljZSwgYnV0CisgKiBUaGlzIHdpbGwgbWVhbiBkbWFf ZmVuY2Vfc2lnbmFsIHdpbGwgc3RpbGwgYmUgY2FsbGVkIHR3aWNlLCBidXQKICAqIHRoZSBzZWNv bmQgdGltZSB3aWxsIGJlIGEgbm9vcCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBzaWduYWxlZC4KICAq CiAgKiBOb3RlcyBvbiBzaWduYWxlZDoKICAqIE1heSBzZXQgZmVuY2UtPnN0YXR1cyBpZiByZXR1 cm5pbmcgdHJ1ZS4KICAqCiAgKiBOb3RlcyBvbiB3YWl0OgotICogTXVzdCBub3QgYmUgTlVMTCwg c2V0IHRvIGZlbmNlX2RlZmF1bHRfd2FpdCBmb3IgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KLSAq IHRoZSBmZW5jZV9kZWZhdWx0X3dhaXQgaW1wbGVtZW50YXRpb24gc2hvdWxkIHdvcmsgZm9yIGFu eSBmZW5jZSwgYXMgbG9uZworICogTXVzdCBub3QgYmUgTlVMTCwgc2V0IHRvIGRtYV9mZW5jZV9k ZWZhdWx0X3dhaXQgZm9yIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgKiB0aGUgZG1hX2ZlbmNl X2RlZmF1bHRfd2FpdCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgd29yayBmb3IgYW55IGZlbmNlLCBh cyBsb25nCiAgKiBhcyBlbmFibGVfc2lnbmFsaW5nIHdvcmtzIGNvcnJlY3RseS4KICAqCiAgKiBN dXN0IHJldHVybiAtRVJFU1RBUlRTWVMgaWYgdGhlIHdhaXQgaXMgaW50ciA9IHRydWUgYW5kIHRo ZSB3YWl0IHdhcwpAQCAtMTYzLDQyICsxNjQsNDQgQEAgc3RydWN0IGZlbmNlX2NiIHsKICAqIElm IHBvaW50ZXIgaXMgc2V0IHRvIE5VTEwsIGtmcmVlIHdpbGwgZ2V0IGNhbGxlZCBpbnN0ZWFkLgog ICovCiAKLXN0cnVjdCBmZW5jZV9vcHMgewotCWNvbnN0IGNoYXIgKiAoKmdldF9kcml2ZXJfbmFt ZSkoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci0JY29uc3QgY2hhciAqICgqZ2V0X3RpbWVsaW5lX25h bWUpKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotCWJvb2wgKCplbmFibGVfc2lnbmFsaW5nKShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKTsKLQlib29sICgqc2lnbmFsZWQpKHN0cnVjdCBmZW5jZSAqZmVuY2Up OwotCXNpZ25lZCBsb25nICgqd2FpdCkoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBz aWduZWQgbG9uZyB0aW1lb3V0KTsKLQl2b2lkICgqcmVsZWFzZSkoc3RydWN0IGZlbmNlICpmZW5j ZSk7Ci0KLQlpbnQgKCpmaWxsX2RyaXZlcl9kYXRhKShzdHJ1Y3QgZmVuY2UgKmZlbmNlLCB2b2lk ICpkYXRhLCBpbnQgc2l6ZSk7Ci0Jdm9pZCAoKmZlbmNlX3ZhbHVlX3N0cikoc3RydWN0IGZlbmNl ICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSk7Ci0Jdm9pZCAoKnRpbWVsaW5lX3ZhbHVlX3N0 cikoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSk7CitzdHJ1Y3QgZG1h X2ZlbmNlX29wcyB7CisJY29uc3QgY2hhciAqICgqZ2V0X2RyaXZlcl9uYW1lKShzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSk7CisJY29uc3QgY2hhciAqICgqZ2V0X3RpbWVsaW5lX25hbWUpKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKTsKKwlib29sICgqZW5hYmxlX3NpZ25hbGluZykoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpOworCWJvb2wgKCpzaWduYWxlZCkoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpOworCXNpZ25lZCBsb25nICgqd2FpdCkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkg ICAgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KTsKKwl2b2lkICgqcmVsZWFzZSkoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpOworCisJaW50ICgqZmlsbF9kcml2ZXJfZGF0YSkoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UsIHZvaWQgKmRhdGEsIGludCBzaXplKTsKKwl2b2lkICgqZmVuY2Vf dmFsdWVfc3RyKShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSk7 CisJdm9pZCAoKnRpbWVsaW5lX3ZhbHVlX3N0cikoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJ CQkJICAgY2hhciAqc3RyLCBpbnQgc2l6ZSk7CiB9OwogCi12b2lkIGZlbmNlX2luaXQoc3RydWN0 IGZlbmNlICpmZW5jZSwgY29uc3Qgc3RydWN0IGZlbmNlX29wcyAqb3BzLAotCQlzcGlubG9ja190 ICpsb2NrLCB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8pOwordm9pZCBkbWFfZmVuY2VfaW5p dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9w cywKKwkJICAgIHNwaW5sb2NrX3QgKmxvY2ssIHU2NCBjb250ZXh0LCB1bnNpZ25lZCBzZXFubyk7 CiAKLXZvaWQgZmVuY2VfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZik7Ci12b2lkIGZlbmNlX2Zy ZWUoc3RydWN0IGZlbmNlICpmZW5jZSk7Cit2b2lkIGRtYV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBr cmVmICprcmVmKTsKK3ZvaWQgZG1hX2ZlbmNlX2ZyZWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up OwogCiAvKioKLSAqIGZlbmNlX3B1dCAtIGRlY3JlYXNlcyByZWZjb3VudCBvZiB0aGUgZmVuY2UK KyAqIGRtYV9mZW5jZV9wdXQgLSBkZWNyZWFzZXMgcmVmY291bnQgb2YgdGhlIGZlbmNlCiAgKiBA ZmVuY2U6CVtpbl0JZmVuY2UgdG8gcmVkdWNlIHJlZmNvdW50IG9mCiAgKi8KLXN0YXRpYyBpbmxp bmUgdm9pZCBmZW5jZV9wdXQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBpbmxpbmUgdm9p ZCBkbWFfZmVuY2VfcHV0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCWlmIChmZW5jZSkK LQkJa3JlZl9wdXQoJmZlbmNlLT5yZWZjb3VudCwgZmVuY2VfcmVsZWFzZSk7CisJCWtyZWZfcHV0 KCZmZW5jZS0+cmVmY291bnQsIGRtYV9mZW5jZV9yZWxlYXNlKTsKIH0KIAogLyoqCi0gKiBmZW5j ZV9nZXQgLSBpbmNyZWFzZXMgcmVmY291bnQgb2YgdGhlIGZlbmNlCisgKiBkbWFfZmVuY2VfZ2V0 IC0gaW5jcmVhc2VzIHJlZmNvdW50IG9mIHRoZSBmZW5jZQogICogQGZlbmNlOglbaW5dCWZlbmNl IHRvIGluY3JlYXNlIHJlZmNvdW50IG9mCiAgKgogICogUmV0dXJucyB0aGUgc2FtZSBmZW5jZSwg d2l0aCByZWZjb3VudCBpbmNyZWFzZWQgYnkgMS4KICAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZmVuY2UgKmZlbmNlX2dldChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1 Y3QgZG1hX2ZlbmNlICpkbWFfZmVuY2VfZ2V0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewog CWlmIChmZW5jZSkKIAkJa3JlZl9nZXQoJmZlbmNlLT5yZWZjb3VudCk7CkBAIC0yMDYsMTIgKzIw OSwxMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0KHN0cnVjdCBmZW5j ZSAqZmVuY2UpCiB9CiAKIC8qKgotICogZmVuY2VfZ2V0X3JjdSAtIGdldCBhIGZlbmNlIGZyb20g YSByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCB3aXRoIHJjdSByZWFkIGxvY2sKKyAqIGRtYV9mZW5j ZV9nZXRfcmN1IC0gZ2V0IGEgZmVuY2UgZnJvbSBhIHJlc2VydmF0aW9uX29iamVjdF9saXN0IHdp dGgKKyAqICAgICAgICAgICAgICAgICAgICAgcmN1IHJlYWQgbG9jawogICogQGZlbmNlOglbaW5d CWZlbmNlIHRvIGluY3JlYXNlIHJlZmNvdW50IG9mCiAgKgogICogRnVuY3Rpb24gcmV0dXJucyBO VUxMIGlmIG5vIHJlZmNvdW50IGNvdWxkIGJlIG9idGFpbmVkLCBvciB0aGUgZmVuY2UuCiAgKi8K LXN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICpmZW5jZV9nZXRfcmN1KHN0cnVjdCBmZW5jZSAq ZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKmRtYV9mZW5jZV9nZXRfcmN1 KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCWlmIChrcmVmX2dldF91bmxlc3NfemVybygm ZmVuY2UtPnJlZmNvdW50KSkKIAkJcmV0dXJuIGZlbmNlOwpAQCAtMjIwLDcgKzIyNCw3IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICpmZW5jZV9nZXRfcmN1KHN0cnVjdCBmZW5jZSAqZmVu Y2UpCiB9CiAKIC8qKgotICogZmVuY2VfZ2V0X3JjdV9zYWZlICAtIGFjcXVpcmUgYSByZWZlcmVu Y2UgdG8gYW4gUkNVIHRyYWNrZWQgZmVuY2UKKyAqIGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUgIC0g YWNxdWlyZSBhIHJlZmVyZW5jZSB0byBhbiBSQ1UgdHJhY2tlZCBmZW5jZQogICogQGZlbmNlOglb aW5dCXBvaW50ZXIgdG8gZmVuY2UgdG8gaW5jcmVhc2UgcmVmY291bnQgb2YKICAqCiAgKiBGdW5j dGlvbiByZXR1cm5zIE5VTEwgaWYgbm8gcmVmY291bnQgY291bGQgYmUgb2J0YWluZWQsIG9yIHRo ZSBmZW5jZS4KQEAgLTIzNSwxMyArMjM5LDE0IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNl ICpmZW5jZV9nZXRfcmN1KHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAgKgogICogVGhlIGNhbGxlciBp cyByZXF1aXJlZCB0byBob2xkIHRoZSBSQ1UgcmVhZCBsb2NrLgogICovCi1zdGF0aWMgaW5saW5l IHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdV9zYWZlKHN0cnVjdCBmZW5jZSAqIF9fcmN1ICpm ZW5jZXApCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKgorZG1hX2ZlbmNlX2dldF9y Y3Vfc2FmZShzdHJ1Y3QgZG1hX2ZlbmNlICogX19yY3UgKmZlbmNlcCkKIHsKIAlkbyB7Ci0JCXN0 cnVjdCBmZW5jZSAqZmVuY2U7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCWZlbmNl ID0gcmN1X2RlcmVmZXJlbmNlKCpmZW5jZXApOwotCQlpZiAoIWZlbmNlIHx8ICFmZW5jZV9nZXRf cmN1KGZlbmNlKSkKKwkJaWYgKCFmZW5jZSB8fCAhZG1hX2ZlbmNlX2dldF9yY3UoZmVuY2UpKQog CQkJcmV0dXJuIE5VTEw7CiAKIAkJLyogVGhlIGF0b21pY19pbmNfbm90X3plcm8oKSBpbnNpZGUg ZmVuY2VfZ2V0X3JjdSgpCkBAIC0yNjEsMzcgKzI2Niw0MSBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCBmZW5jZSAqZmVuY2VfZ2V0X3JjdV9zYWZlKHN0cnVjdCBmZW5jZSAqIF9fcmN1ICpmZW5jZXAp CiAJCWlmIChmZW5jZSA9PSByY3VfYWNjZXNzX3BvaW50ZXIoKmZlbmNlcCkpCiAJCQlyZXR1cm4g cmN1X3BvaW50ZXJfaGFuZG9mZihmZW5jZSk7CiAKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1h X2ZlbmNlX3B1dChmZW5jZSk7CiAJfSB3aGlsZSAoMSk7CiB9CiAKLWludCBmZW5jZV9zaWduYWwo c3RydWN0IGZlbmNlICpmZW5jZSk7Ci1pbnQgZmVuY2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVu Y2UgKmZlbmNlKTsKLXNpZ25lZCBsb25nIGZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwotaW50IGZlbmNlX2FkZF9j YWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiLAotCQkgICAg ICAgZmVuY2VfZnVuY190IGZ1bmMpOwotYm9vbCBmZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0 IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYik7Ci12b2lkIGZlbmNlX2VuYWJsZV9z d19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSk7CitpbnQgZG1hX2ZlbmNlX3NpZ25hbChz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CitpbnQgZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpOworc2lnbmVkIGxvbmcgZG1hX2ZlbmNlX2RlZmF1bHRfd2Fp dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJCQkgICBib29sIGludHIsIHNpZ25lZCBsb25n IHRpbWVvdXQpOworaW50IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UsCisJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiwKKwkJCSAgIGRtYV9mZW5jZV9m dW5jX3QgZnVuYyk7Citib29sIGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UsCisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpOwordm9pZCBk bWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CiAK IC8qKgotICogZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkIC0gUmV0dXJuIGFuIGluZGljYXRpb24g aWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVkIHlldC4KKyAqIGRtYV9mZW5jZV9pc19zaWduYWxlZF9s b2NrZWQgLSBSZXR1cm4gYW4gaW5kaWNhdGlvbiBpZiB0aGUgZmVuY2UKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpcyBzaWduYWxlZCB5ZXQuCiAgKiBAZmVuY2U6CVtpbl0JdGhl IGZlbmNlIHRvIGNoZWNrCiAgKgogICogUmV0dXJucyB0cnVlIGlmIHRoZSBmZW5jZSB3YXMgYWxy ZWFkeSBzaWduYWxlZCwgZmFsc2UgaWYgbm90LiBTaW5jZSB0aGlzCiAgKiBmdW5jdGlvbiBkb2Vz bid0IGVuYWJsZSBzaWduYWxpbmcsIGl0IGlzIG5vdCBndWFyYW50ZWVkIHRvIGV2ZXIgcmV0dXJu Ci0gKiB0cnVlIGlmIGZlbmNlX2FkZF9jYWxsYmFjaywgZmVuY2Vfd2FpdCBvciBmZW5jZV9lbmFi bGVfc3dfc2lnbmFsaW5nCi0gKiBoYXZlbid0IGJlZW4gY2FsbGVkIGJlZm9yZS4KKyAqIHRydWUg aWYgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywgZG1hX2ZlbmNlX3dhaXQgb3IKKyAqIGRtYV9mZW5j ZV9lbmFibGVfc3dfc2lnbmFsaW5nIGhhdmVuJ3QgYmVlbiBjYWxsZWQgYmVmb3JlLgogICoKICAq IFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZmVuY2UtPmxvY2sgdG8gYmUgaGVsZC4KICAqLwogc3Rh dGljIGlubGluZSBib29sCi1mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoc3RydWN0IGZlbmNlICpm ZW5jZSkKK2RtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCiB7Ci0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZs YWdzKSkKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2Ut PmZsYWdzKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlpZiAoZmVuY2UtPm9wcy0+c2lnbmFsZWQgJiYg ZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpKSB7Ci0JCWZlbmNlX3NpZ25hbF9sb2NrZWQoZmVu Y2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7CiAJCXJldHVybiB0cnVlOwog CX0KIApAQCAtMjk5LDI3ICszMDgsMjcgQEAgZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKHN0cnVj dCBmZW5jZSAqZmVuY2UpCiB9CiAKIC8qKgotICogZmVuY2VfaXNfc2lnbmFsZWQgLSBSZXR1cm4g YW4gaW5kaWNhdGlvbiBpZiB0aGUgZmVuY2UgaXMgc2lnbmFsZWQgeWV0LgorICogZG1hX2ZlbmNl X2lzX3NpZ25hbGVkIC0gUmV0dXJuIGFuIGluZGljYXRpb24gaWYgdGhlIGZlbmNlIGlzIHNpZ25h bGVkIHlldC4KICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gY2hlY2sKICAqCiAgKiBSZXR1 cm5zIHRydWUgaWYgdGhlIGZlbmNlIHdhcyBhbHJlYWR5IHNpZ25hbGVkLCBmYWxzZSBpZiBub3Qu IFNpbmNlIHRoaXMKICAqIGZ1bmN0aW9uIGRvZXNuJ3QgZW5hYmxlIHNpZ25hbGluZywgaXQgaXMg bm90IGd1YXJhbnRlZWQgdG8gZXZlciByZXR1cm4KLSAqIHRydWUgaWYgZmVuY2VfYWRkX2NhbGxi YWNrLCBmZW5jZV93YWl0IG9yIGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcKLSAqIGhhdmVuJ3Qg YmVlbiBjYWxsZWQgYmVmb3JlLgorICogdHJ1ZSBpZiBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrLCBk bWFfZmVuY2Vfd2FpdCBvcgorICogZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcgaGF2ZW4n dCBiZWVuIGNhbGxlZCBiZWZvcmUuCiAgKgotICogSXQncyByZWNvbW1lbmRlZCBmb3Igc2Vxbm8g ZmVuY2VzIHRvIGNhbGwgZmVuY2Vfc2lnbmFsIHdoZW4gdGhlCisgKiBJdCdzIHJlY29tbWVuZGVk IGZvciBzZXFubyBmZW5jZXMgdG8gY2FsbCBkbWFfZmVuY2Vfc2lnbmFsIHdoZW4gdGhlCiAgKiBv cGVyYXRpb24gaXMgY29tcGxldGUsIGl0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHByZXZlbnQgaXNz dWVzIGZyb20KICAqIHdyYXBhcm91bmQgYmV0d2VlbiB0aW1lIG9mIGlzc3VlIGFuZCB0aW1lIG9m IHVzZSBieSBjaGVja2luZyB0aGUgcmV0dXJuCiAgKiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGJl Zm9yZSBjYWxsaW5nIGhhcmR3YXJlLXNwZWNpZmljIHdhaXQgaW5zdHJ1Y3Rpb25zLgogICovCiBz dGF0aWMgaW5saW5lIGJvb2wKLWZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JaWYg KHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAo dGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJ cmV0dXJuIHRydWU7CiAKIAlpZiAoZmVuY2UtPm9wcy0+c2lnbmFsZWQgJiYgZmVuY2UtPm9wcy0+ c2lnbmFsZWQoZmVuY2UpKSB7Ci0JCWZlbmNlX3NpZ25hbChmZW5jZSk7CisJCWRtYV9mZW5jZV9z aWduYWwoZmVuY2UpOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTMyNywxNCArMzM2LDE1IEBA IGZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiB9CiAKIC8qKgotICogZmVu Y2VfaXNfbGF0ZXIgLSByZXR1cm4gaWYgZjEgaXMgY2hyb25vbG9naWNhbGx5IGxhdGVyIHRoYW4g ZjIKKyAqIGRtYV9mZW5jZV9pc19sYXRlciAtIHJldHVybiBpZiBmMSBpcyBjaHJvbm9sb2dpY2Fs bHkgbGF0ZXIgdGhhbiBmMgogICogQGYxOglbaW5dCXRoZSBmaXJzdCBmZW5jZSBmcm9tIHRoZSBz YW1lIGNvbnRleHQKICAqIEBmMjoJW2luXQl0aGUgc2Vjb25kIGZlbmNlIGZyb20gdGhlIHNhbWUg Y29udGV4dAogICoKICAqIFJldHVybnMgdHJ1ZSBpZiBmMSBpcyBjaHJvbm9sb2dpY2FsbHkgbGF0 ZXIgdGhhbiBmMi4gQm90aCBmZW5jZXMgbXVzdCBiZQogICogZnJvbSB0aGUgc2FtZSBjb250ZXh0 LCBzaW5jZSBhIHNlcW5vIGlzIG5vdCByZS11c2VkIGFjcm9zcyBjb250ZXh0cy4KICAqLwotc3Rh dGljIGlubGluZSBib29sIGZlbmNlX2lzX2xhdGVyKHN0cnVjdCBmZW5jZSAqZjEsIHN0cnVjdCBm ZW5jZSAqZjIpCitzdGF0aWMgaW5saW5lIGJvb2wgZG1hX2ZlbmNlX2lzX2xhdGVyKHN0cnVjdCBk bWFfZmVuY2UgKmYxLAorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmYyKQogewogCWlmIChX QVJOX09OKGYxLT5jb250ZXh0ICE9IGYyLT5jb250ZXh0KSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAt MzQzLDcgKzM1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9pc19sYXRlcihzdHJ1Y3Qg ZmVuY2UgKmYxLCBzdHJ1Y3QgZmVuY2UgKmYyKQogfQogCiAvKioKLSAqIGZlbmNlX2xhdGVyIC0g cmV0dXJuIHRoZSBjaHJvbm9sb2dpY2FsbHkgbGF0ZXIgZmVuY2UKKyAqIGRtYV9mZW5jZV9sYXRl ciAtIHJldHVybiB0aGUgY2hyb25vbG9naWNhbGx5IGxhdGVyIGZlbmNlCiAgKiBAZjE6CVtpbl0J dGhlIGZpcnN0IGZlbmNlIGZyb20gdGhlIHNhbWUgY29udGV4dAogICogQGYyOglbaW5dCXRoZSBz ZWNvbmQgZmVuY2UgZnJvbSB0aGUgc2FtZSBjb250ZXh0CiAgKgpAQCAtMzUxLDI4ICszNjEsMzEg QEAgc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2xhdGVyKHN0cnVjdCBmZW5jZSAqZjEsIHN0 cnVjdCBmZW5jZSAqZjIpCiAgKiBzaWduYWxlZCBsYXN0LiBCb3RoIGZlbmNlcyBtdXN0IGJlIGZy b20gdGhlIHNhbWUgY29udGV4dCwgc2luY2UgYSBzZXFubyBpcwogICogbm90IHJlLXVzZWQgYWNy b3NzIGNvbnRleHRzLgogICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfbGF0 ZXIoc3RydWN0IGZlbmNlICpmMSwgc3RydWN0IGZlbmNlICpmMikKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2xhdGVyKHN0cnVjdCBkbWFfZmVuY2UgKmYxLAorCQkJ CQkgICAgICAgCXN0cnVjdCBkbWFfZmVuY2UgKmYyKQogewogCWlmIChXQVJOX09OKGYxLT5jb250 ZXh0ICE9IGYyLT5jb250ZXh0KSkKIAkJcmV0dXJuIE5VTEw7CiAKIAkvKgotCSAqIGNhbid0IGNo ZWNrIGp1c3QgRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgaGVyZSwgaXQgbWF5IG5ldmVyIGhhdmUg YmVlbgotCSAqIHNldCBpZiBlbmFibGVfc2lnbmFsaW5nIHdhc24ndCBjYWxsZWQsIGFuZCBlbmFi bGluZyB0aGF0IGhlcmUgaXMKLQkgKiBvdmVya2lsbC4KKwkgKiBDYW4ndCBjaGVjayBqdXN0IERN QV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBoZXJlLCBpdCBtYXkgbmV2ZXIKKwkgKiBoYXZlIGJl ZW4gc2V0IGlmIGVuYWJsZV9zaWduYWxpbmcgd2Fzbid0IGNhbGxlZCwgYW5kIGVuYWJsaW5nIHRo YXQKKwkgKiBoZXJlIGlzIG92ZXJraWxsLgogCSAqLwotCWlmIChmZW5jZV9pc19sYXRlcihmMSwg ZjIpKQotCQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoZjEpID8gTlVMTCA6IGYxOworCWlmIChk bWFfZmVuY2VfaXNfbGF0ZXIoZjEsIGYyKSkKKwkJcmV0dXJuIGRtYV9mZW5jZV9pc19zaWduYWxl ZChmMSkgPyBOVUxMIDogZjE7CiAJZWxzZQotCQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoZjIp ID8gTlVMTCA6IGYyOworCQlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGYyKSA/IE5VTEwg OiBmMjsKIH0KIAotc2lnbmVkIGxvbmcgZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCBmZW5jZSAq LCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwotc2lnbmVkIGxvbmcgZmVuY2Vfd2Fp dF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAorc2ln bmVkIGxvbmcgZG1hX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgZG1hX2ZlbmNlICosCiAJCQkJ ICAgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KTsKK3NpZ25lZCBsb25nIGRtYV9mZW5j ZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsCisJCQkJICAgICAg IHVpbnQzMl90IGNvdW50LAorCQkJCSAgICAgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVv dXQpOwogCiAvKioKLSAqIGZlbmNlX3dhaXQgLSBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0cyBz aWduYWxlZAorICogZG1hX2ZlbmNlX3dhaXQgLSBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0cyBz aWduYWxlZAogICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byB3YWl0IG9uCiAgKiBAaW50cjoJ W2luXQlpZiB0cnVlLCBkbyBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQKICAqCkBAIC0zODQsNDEgKzM5 Nyw0MSBAQCBzaWduZWQgbG9uZyBmZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBmZW5jZSAq KmZlbmNlcywgdWludDMyX3QgY291bnQsCiAgKiBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGhvbGRz IGEgcmVmZXJlbmNlIHRvIHRoZSBmZW5jZSwgb3RoZXJ3aXNlIHRoZQogICogZmVuY2UgbWlnaHQg YmUgZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4K ICAqLwotc3RhdGljIGlubGluZSBzaWduZWQgbG9uZyBmZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAq ZmVuY2UsIGJvb2wgaW50cikKK3N0YXRpYyBpbmxpbmUgc2lnbmVkIGxvbmcgZG1hX2ZlbmNlX3dh aXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50cikKIHsKIAlzaWduZWQgbG9uZyBy ZXQ7CiAKLQkvKiBTaW5jZSBmZW5jZV93YWl0X3RpbWVvdXQgY2Fubm90IHRpbWVvdXQgd2l0aAor CS8qIFNpbmNlIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQgY2Fubm90IHRpbWVvdXQgd2l0aAogCSAq IE1BWF9TQ0hFRFVMRV9USU1FT1VULCBvbmx5IHZhbGlkIHJldHVybiB2YWx1ZXMgYXJlCiAJICog LUVSRVNUQVJUU1lTIGFuZCBNQVhfU0NIRURVTEVfVElNRU9VVC4KIAkgKi8KLQlyZXQgPSBmZW5j ZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKKwlyZXQg PSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBpbnRyLCBNQVhfU0NIRURVTEVfVElNRU9V VCk7CiAKIAlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IDA7CiB9CiAKLXU2NCBmZW5jZV9jb250ZXh0 X2FsbG9jKHVuc2lnbmVkIG51bSk7Cit1NjQgZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2ModW5zaWdu ZWQgbnVtKTsKIAotI2RlZmluZSBGRU5DRV9UUkFDRShmLCBmbXQsIGFyZ3MuLi4pIFwKKyNkZWZp bmUgRE1BX0ZFTkNFX1RSQUNFKGYsIGZtdCwgYXJncy4uLikgXAogCWRvIHsJCQkJCQkJCVwKLQkJ c3RydWN0IGZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCi0JCWlmIChJU19FTkFCTEVEKENPTkZJR19G RU5DRV9UUkFDRSkpCQkJXAorCQlzdHJ1Y3QgZG1hX2ZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCisJ CWlmIChJU19FTkFCTEVEKENPTkZJR19ETUFfRkVOQ0VfVFJBQ0UpKQkJCVwKIAkJCXByX2luZm8o ImYgJWxsdSMldTogIiBmbXQsCQkJXAogCQkJCV9fZmYtPmNvbnRleHQsIF9fZmYtPnNlcW5vLCAj I2FyZ3MpOwlcCiAJfSB3aGlsZSAoMCkKIAotI2RlZmluZSBGRU5DRV9XQVJOKGYsIGZtdCwgYXJn cy4uLikgXAorI2RlZmluZSBETUFfRkVOQ0VfV0FSTihmLCBmbXQsIGFyZ3MuLi4pIFwKIAlkbyB7 CQkJCQkJCQlcCi0JCXN0cnVjdCBmZW5jZSAqX19mZiA9IChmKTsJCQkJXAorCQlzdHJ1Y3QgZG1h X2ZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCiAJCXByX3dhcm4oImYgJWxsdSMldTogIiBmbXQsIF9f ZmYtPmNvbnRleHQsIF9fZmYtPnNlcW5vLAlcCiAJCQkgIyNhcmdzKTsJCQkJCVwKIAl9IHdoaWxl ICgwKQogCi0jZGVmaW5lIEZFTkNFX0VSUihmLCBmbXQsIGFyZ3MuLi4pIFwKKyNkZWZpbmUgRE1B X0ZFTkNFX0VSUihmLCBmbXQsIGFyZ3MuLi4pIFwKIAlkbyB7CQkJCQkJCQlcCi0JCXN0cnVjdCBm ZW5jZSAqX19mZiA9IChmKTsJCQkJXAorCQlzdHJ1Y3QgZG1hX2ZlbmNlICpfX2ZmID0gKGYpOwkJ CQlcCiAJCXByX2VycigiZiAlbGx1IyV1OiAiIGZtdCwgX19mZi0+Y29udGV4dCwgX19mZi0+c2Vx bm8sCVwKIAkJCSMjYXJncyk7CQkJCQlcCiAJfSB3aGlsZSAoMCkKIAotI2VuZGlmIC8qIF9fTElO VVhfRkVOQ0VfSCAqLworI2VuZGlmIC8qIF9fTElOVVhfRE1BX0ZFTkNFX0ggKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaCBiL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRp b24uaAppbmRleCBiMGYzMDVlNzdiN2YuLjJlMzEzY2NhMDhmMCAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9yZXNlcnZhdGlvbi5oCisrKyBiL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaApA QCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSBfTElOVVhfUkVTRVJWQVRJT05fSAogCiAjaW5jbHVk ZSA8bGludXgvd3dfbXV0ZXguaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUg PGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxs aW51eC9zZXFsb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KQEAgLTU5LDcgKzU5 LDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgcmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5nW107CiBz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgewogCXN0cnVjdCByY3VfaGVhZCByY3U7CiAJ dTMyIHNoYXJlZF9jb3VudCwgc2hhcmVkX21heDsKLQlzdHJ1Y3QgZmVuY2UgX19yY3UgKnNoYXJl ZFtdOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtdOwogfTsKIAogLyoqCkBAIC03 NCw3ICs3NCw3IEBAIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgewogCXN0cnVjdCB3d19tdXRl eCBsb2NrOwogCXNlcWNvdW50X3Qgc2VxOwogCi0Jc3RydWN0IGZlbmNlIF9fcmN1ICpmZW5jZV9l eGNsOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4Y2w7CiAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0X2xpc3QgKnN0YWdlZDsKIH07CkBAIC0xMDcsNyArMTA3LDcgQEAgcmVzZXJ2YXRpb25fb2Jq ZWN0X2Zpbmkoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQogewogCWludCBpOwogCXN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKLQlzdHJ1Y3QgZmVuY2UgKmV4Y2w7 CisJc3RydWN0IGRtYV9mZW5jZSAqZXhjbDsKIAogCS8qCiAJICogVGhpcyBvYmplY3Qgc2hvdWxk IGJlIGRlYWQgYW5kIGFsbCByZWZlcmVuY2VzIG11c3QgaGF2ZQpAQCAtMTE1LDEyICsxMTUsMTIg QEAgcmVzZXJ2YXRpb25fb2JqZWN0X2Zpbmkoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2Jq KQogCSAqLwogCWV4Y2wgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2VfZXhj bCwgMSk7CiAJaWYgKGV4Y2wpCi0JCWZlbmNlX3B1dChleGNsKTsKKwkJZG1hX2ZlbmNlX3B1dChl eGNsKTsKIAogCWZvYmogPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2UsIDEp OwogCWlmIChmb2JqKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBmb2JqLT5zaGFyZWRfY291bnQ7ICsr aSkKLQkJCWZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtp XSwgMSkpOworCQkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmot PnNoYXJlZFtpXSwgMSkpOwogCiAJCWtmcmVlKGZvYmopOwogCX0KQEAgLTE1NSw3ICsxNTUsNyBA QCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAq b2JqKQogICogUkVUVVJOUwogICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMCiAgKi8KLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5j ZSAqCiByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqKQogewogCXJldHVybiByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVuY2Vf ZXhjbCwKQEAgLTE3MywxMCArMTczLDEwIEBAIHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAgKiBSRVRVUk5TCiAgKiBUaGUgZXhjbHVz aXZlIGZlbmNlIG9yIE5VTEwgaWYgbm9uZQogICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5j ZSAqCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKgogcmVzZXJ2YXRpb25fb2JqZWN0 X2dldF9leGNsX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiB7Ci0Jc3RydWN0 IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAl1bnNpZ25lZCBzZXE7 CiByZXRyeToKIAlzZXEgPSByZWFkX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7CkBAIC0xODYs MjIgKzE4NiwyMiBAQCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKm9iaikKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCWdvdG8gcmV0cnk7 CiAJfQotCWZlbmNlID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlmZW5jZSA9IGRtYV9mZW5jZV9nZXQo ZmVuY2UpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiBmZW5jZTsKIH0KIAogaW50IHJl c2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpvYmopOwogdm9pZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJ CQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIAogdm9pZCByZXNlcnZhdGlvbl9vYmplY3Rf YWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJCSAgICAg ICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpOwogCiBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipwZmVuY2VfZXhj bCwKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCiAJCQkJICAgICAg dW5zaWduZWQgKnBzaGFyZWRfY291bnQsCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoqKnBzaGFy ZWQpOworCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCk7CiAKIGxvbmcgcmVz ZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAogCQkJCQkgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLApkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9zZXFuby1mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9zZXFuby1mZW5jZS5oCmlu ZGV4IGExYmE2YTVjY2RkNi4uYTFmMmRiZWIxYmE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L3NlcW5vLWZlbmNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZXFuby1mZW5jZS5oCkBAIC0yMCw3 ICsyMCw3IEBACiAjaWZuZGVmIF9fTElOVVhfU0VRTk9fRkVOQ0VfSAogI2RlZmluZSBfX0xJTlVY X1NFUU5PX0ZFTkNFX0gKIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGlu dXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogCiBlbnVtIHNlcW5v X2ZlbmNlX2NvbmRpdGlvbiB7CkBAIC0yOSwxNSArMjksMTUgQEAgZW51bSBzZXFub19mZW5jZV9j b25kaXRpb24gewogfTsKIAogc3RydWN0IHNlcW5vX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgYmFz ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiAKLQljb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpv cHM7CisJY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKIAlzdHJ1Y3QgZG1hX2J1ZiAq c3luY19idWY7CiAJdWludDMyX3Qgc2Vxbm9fb2ZzOwogCWVudW0gc2Vxbm9fZmVuY2VfY29uZGl0 aW9uIGNvbmRpdGlvbjsKIH07CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHNlcW5v X2ZlbmNlX29wczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBzZXFub19mZW5j ZV9vcHM7CiAKIC8qKgogICogdG9fc2Vxbm9fZmVuY2UgLSBjYXN0IGEgZmVuY2UgdG8gYSBzZXFu b19mZW5jZQpAQCAtNDcsNyArNDcsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGZlbmNlX29wcyBz ZXFub19mZW5jZV9vcHM7CiAgKiBvciB0aGUgc2Vxbm9fZmVuY2Ugb3RoZXJ3aXNlLgogICovCiBz dGF0aWMgaW5saW5lIHN0cnVjdCBzZXFub19mZW5jZSAqCi10b19zZXFub19mZW5jZShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKQordG9fc2Vxbm9fZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 CiAJaWYgKGZlbmNlLT5vcHMgIT0gJnNlcW5vX2ZlbmNlX29wcykKIAkJcmV0dXJuIE5VTEw7CkBA IC05NiwxOCArOTYsMTggQEAgc2Vxbm9fZmVuY2VfaW5pdChzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKmZl bmNlLCBzcGlubG9ja190ICpsb2NrLAogCQkgc3RydWN0IGRtYV9idWYgKnN5bmNfYnVmLCAgdWlu dDMyX3QgY29udGV4dCwKIAkJIHVpbnQzMl90IHNlcW5vX29mcywgdWludDMyX3Qgc2Vxbm8sCiAJ CSBlbnVtIHNlcW5vX2ZlbmNlX2NvbmRpdGlvbiBjb25kLAotCQkgY29uc3Qgc3RydWN0IGZlbmNl X29wcyAqb3BzKQorCQkgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wcykKIHsKIAlCVUdf T04oIWZlbmNlIHx8ICFzeW5jX2J1ZiB8fCAhb3BzKTsKIAlCVUdfT04oIW9wcy0+d2FpdCB8fCAh b3BzLT5lbmFibGVfc2lnbmFsaW5nIHx8CiAJICAgICAgICFvcHMtPmdldF9kcml2ZXJfbmFtZSB8 fCAhb3BzLT5nZXRfdGltZWxpbmVfbmFtZSk7CiAKIAkvKgotCSAqIG9wcyBpcyB1c2VkIGluIGZl bmNlX2luaXQgZm9yIGdldF9kcml2ZXJfbmFtZSwgc28gbmVlZHMgdG8gYmUKKwkgKiBvcHMgaXMg dXNlZCBpbiBkbWFfZmVuY2VfaW5pdCBmb3IgZ2V0X2RyaXZlcl9uYW1lLCBzbyBuZWVkcyB0byBi ZQogCSAqIGluaXRpYWxpemVkIGZpcnN0CiAJICovCiAJZmVuY2UtPm9wcyA9IG9wczsKLQlmZW5j ZV9pbml0KCZmZW5jZS0+YmFzZSwgJnNlcW5vX2ZlbmNlX29wcywgbG9jaywgY29udGV4dCwgc2Vx bm8pOworCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJnNlcW5vX2ZlbmNlX29wcywgbG9j aywgY29udGV4dCwgc2Vxbm8pOwogCWdldF9kbWFfYnVmKHN5bmNfYnVmKTsKIAlmZW5jZS0+c3lu Y19idWYgPSBzeW5jX2J1ZjsKIAlmZW5jZS0+c2Vxbm9fb2ZzID0gc2Vxbm9fb2ZzOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaCBiL2luY2x1ZGUvbGludXgvc3luY19maWxl LmgKaW5kZXggYWExN2NjZmMyZjU3Li4zZTNhYjg0ZmM0Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvc3luY19maWxlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaApAQCAtMTgs OCArMTgsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbGlz dC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2Uu aD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS1hcnJheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1m ZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgogCiAvKioKICAqIHN0 cnVjdCBzeW5jX2ZpbGUgLSBzeW5jIGZpbGUgdG8gZXhwb3J0IHRvIHRoZSB1c2Vyc3BhY2UKQEAg LTQxLDEzICs0MSwxMyBAQCBzdHJ1Y3Qgc3luY19maWxlIHsKIAogCXdhaXRfcXVldWVfaGVhZF90 CXdxOwogCi0Jc3RydWN0IGZlbmNlCQkqZmVuY2U7Ci0Jc3RydWN0IGZlbmNlX2NiIGNiOworCXN0 cnVjdCBkbWFfZmVuY2UJKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7CiB9OwogCi0j ZGVmaW5lIFBPTExfRU5BQkxFRCBGRU5DRV9GTEFHX1VTRVJfQklUUworI2RlZmluZSBQT0xMX0VO QUJMRUQgRE1BX0ZFTkNFX0ZMQUdfVVNFUl9CSVRTCiAKLXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNf ZmlsZV9jcmVhdGUoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci1zdHJ1Y3QgZmVuY2UgKnN5bmNfZmls ZV9nZXRfZmVuY2UoaW50IGZkKTsKK3N0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworc3RydWN0IGRtYV9mZW5jZSAqc3luY19maWxlX2dl dF9mZW5jZShpbnQgZmQpOwogCiAjZW5kaWYgLyogX0xJTlVYX1NZTkNfSCAqLwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS90cmFjZS9ldmVudHMvZmVuY2UuaCBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2Rt YV9mZW5jZS5oCnNpbWlsYXJpdHkgaW5kZXggNzIlCnJlbmFtZSBmcm9tIGluY2x1ZGUvdHJhY2Uv ZXZlbnRzL2ZlbmNlLmgKcmVuYW1lIHRvIGluY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5o CmluZGV4IGQ2ZGZhMDViYTMyMi4uMTE1N2NiNGMzYzZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3Ry YWNlL2V2ZW50cy9mZW5jZS5oCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5o CkBAIC0xLDE3ICsxLDE3IEBACiAjdW5kZWYgVFJBQ0VfU1lTVEVNCi0jZGVmaW5lIFRSQUNFX1NZ U1RFTSBmZW5jZQorI2RlZmluZSBUUkFDRV9TWVNURU0gZG1hX2ZlbmNlCiAKICNpZiAhZGVmaW5l ZChfVFJBQ0VfRkVOQ0VfSCkgfHwgZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkKLSNk ZWZpbmUgX1RSQUNFX0ZFTkNFX0gKKyNkZWZpbmUgX1RSQUNFX0RNQV9GRU5DRV9ICiAKICNpbmNs dWRlIDxsaW51eC90cmFjZXBvaW50Lmg+CiAKLXN0cnVjdCBmZW5jZTsKK3N0cnVjdCBkbWFfZmVu Y2U7CiAKLVRSQUNFX0VWRU5UKGZlbmNlX2Fubm90YXRlX3dhaXRfb24sCitUUkFDRV9FVkVOVChk bWFfZmVuY2VfYW5ub3RhdGVfd2FpdF9vbiwKIAogCS8qIGZlbmNlOiB0aGUgZmVuY2Ugd2FpdGlu ZyBvbiBmMSwgZjE6IHRoZSBmZW5jZSB0byBiZSB3YWl0ZWQgb24uICovCi0JVFBfUFJPVE8oc3Ry dWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlICpmMSksCisJVFBfUFJPVE8oc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2UgKmYxKSwKIAogCVRQX0FSR1MoZmVuY2Us IGYxKSwKIApAQCAtNDgsOSArNDgsOSBAQCBUUkFDRV9FVkVOVChmZW5jZV9hbm5vdGF0ZV93YWl0 X29uLAogCQkgIF9fZW50cnktPndhaXRpbmdfY29udGV4dCwgX19lbnRyeS0+d2FpdGluZ19zZXFu bykKICk7CiAKLURFQ0xBUkVfRVZFTlRfQ0xBU1MoZmVuY2UsCitERUNMQVJFX0VWRU5UX0NMQVNT KGRtYV9mZW5jZSwKIAotCVRQX1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RP KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpLAogCkBAIC03Myw1 NiArNzMsNTYgQEAgREVDTEFSRV9FVkVOVF9DTEFTUyhmZW5jZSwKIAkJICBfX2VudHJ5LT5zZXFu bykKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVuY2VfZW1pdCwKK0RFRklORV9FVkVOVChk bWFfZmVuY2UsIGRtYV9mZW5jZV9lbWl0LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5j ZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5j ZSkKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVuY2VfaW5pdCwKK0RFRklORV9FVkVOVChk bWFfZmVuY2UsIGRtYV9mZW5jZV9pbml0LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5j ZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5j ZSkKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVuY2VfZGVzdHJveSwKK0RFRklORV9FVkVO VChkbWFfZmVuY2UsIGRtYV9mZW5jZV9kZXN0cm95LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNl ICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJH UyhmZW5jZSkKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVuY2VfZW5hYmxlX3NpZ25hbCwK K0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV9lbmFibGVfc2lnbmFsLAogCi0JVFBf UFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVu Y2Vfc2lnbmFsZWQsCitERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2Vfc2lnbmFsZWQs CiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VWRU5UKGZl bmNlLCBmZW5jZV93YWl0X3N0YXJ0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNl X3dhaXRfc3RhcnQsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9U TyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVG SU5FX0VWRU5UKGZlbmNlLCBmZW5jZV93YWl0X2VuZCwKK0RFRklORV9FVkVOVChkbWFfZmVuY2Us IGRtYV9mZW5jZV93YWl0X2VuZCwKIAotCVRQX1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAor CVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpCiAp OwogCi0jZW5kaWYgLyogIF9UUkFDRV9GRU5DRV9IICovCisjZW5kaWYgLyogIF9UUkFDRV9ETUFf RkVOQ0VfSCAqLwogCiAvKiBUaGlzIHBhcnQgbXVzdCBiZSBvdXRzaWRlIHByb3RlY3Rpb24gKi8K ICNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJhY2UuaD4KLS0gCjIuOS4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK