From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2] dma-buf: Rename struct fence to dma_fence Date: Tue, 25 Oct 2016 10:25:49 +0100 Message-ID: <20161025092549.1983-1-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: In-Reply-To: <20161020064747.7047-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SSBwbGFuIHRvIHVzdXJwIHRoZSBzaG9ydCBuYW1lIG9mIHN0cnVjdCBmZW5jZSBmb3IgYSBjb3Jl IGtlcm5lbCBzdHJ1Y3QsCmFuZCBzbyBJIG5lZWQgdG8gcmVuYW1lIHRoZSBzcGVjaWFsaXNlZCBm ZW5jZS90aW1lbGluZSBmb3IgRE1BCm9wZXJhdGlvbnMgdG8gbWFrZSByb29tLgoKQSBjb25zZW5z dXMgd2FzIHJlYWNoZWQgaW4KaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTYtSnVseS8xMTMwODMuaHRtbAp0aGF0IG1ha2luZyBjbGVhciB0aGlzIGZl bmNlIGFwcGxpZXMgdG8gRE1BIG9wZXJhdGlvbnMgd2FzIGEgZ29vZCB0aGluZy4KU2luY2UgdGhl biB0aGUgcGF0Y2ggaGFzIGdyb3duIGEgYml0IGFzIHVzYWdlIGluY3JlYXNlcywgc28gaG9wZWZ1 bGx5IGl0CnJlbWFpbnMgYSBnb29kIHRoaW5nIQoKKHYyLi4uOiByZWJhc2UsIHJlcnVuIHNwYXRj aCkKCmNvY2NpbmVsbGUgc2NyaXB0OgpAQAoKQEAKLSBzdHJ1Y3QgZmVuY2UKKyBzdHJ1Y3QgZG1h X2ZlbmNlCkBACgpAQAotIHN0cnVjdCBmZW5jZV9vcHMKKyBzdHJ1Y3QgZG1hX2ZlbmNlX29wcwpA QAoKQEAKLSBzdHJ1Y3QgZmVuY2VfY2IKKyBzdHJ1Y3QgZG1hX2ZlbmNlX2NiCkBACgpAQAotIHN0 cnVjdCBmZW5jZV9hcnJheQorIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXkKQEAKCkBACi0gZW51bSBm ZW5jZV9mbGFnX2JpdHMKKyBlbnVtIGRtYV9mZW5jZV9mbGFnX2JpdHMKQEAKCkBACigKLSBmZW5j ZV9pbml0CisgZG1hX2ZlbmNlX2luaXQKfAotIGZlbmNlX3JlbGVhc2UKKyBkbWFfZmVuY2VfcmVs ZWFzZQp8Ci0gZmVuY2VfZnJlZQorIGRtYV9mZW5jZV9mcmVlCnwKLSBmZW5jZV9nZXQKKyBkbWFf ZmVuY2VfZ2V0CnwKLSBmZW5jZV9nZXRfcmN1CisgZG1hX2ZlbmNlX2dldF9yY3UKfAotIGZlbmNl X3B1dAorIGRtYV9mZW5jZV9wdXQKfAotIGZlbmNlX3NpZ25hbAorIGRtYV9mZW5jZV9zaWduYWwK fAotIGZlbmNlX3NpZ25hbF9sb2NrZWQKKyBkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZAp8Ci0gZmVu Y2VfZGVmYXVsdF93YWl0CisgZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdAp8Ci0gZmVuY2VfYWRkX2Nh bGxiYWNrCisgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjawp8Ci0gZmVuY2VfcmVtb3ZlX2NhbGxiYWNr CisgZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjawp8Ci0gZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGlu ZworIGRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nCnwKLSBmZW5jZV9pc19zaWduYWxlZF9s b2NrZWQKKyBkbWFfZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkCnwKLSBmZW5jZV9pc19zaWduYWxl ZAorIGRtYV9mZW5jZV9pc19zaWduYWxlZAp8Ci0gZmVuY2VfaXNfbGF0ZXIKKyBkbWFfZmVuY2Vf aXNfbGF0ZXIKfAotIGZlbmNlX2xhdGVyCisgZG1hX2ZlbmNlX2xhdGVyCnwKLSBmZW5jZV93YWl0 X3RpbWVvdXQKKyBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0CnwKLSBmZW5jZV93YWl0X2FueV90aW1l b3V0CisgZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQKfAotIGZlbmNlX3dhaXQKKyBkbWFfZmVu Y2Vfd2FpdAp8Ci0gZmVuY2VfY29udGV4dF9hbGxvYworIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9j CnwKLSBmZW5jZV9hcnJheV9jcmVhdGUKKyBkbWFfZmVuY2VfYXJyYXlfY3JlYXRlCnwKLSB0b19m ZW5jZV9hcnJheQorIHRvX2RtYV9mZW5jZV9hcnJheQp8Ci0gZmVuY2VfaXNfYXJyYXkKKyBkbWFf ZmVuY2VfaXNfYXJyYXkKfAotIHRyYWNlX2ZlbmNlX2VtaXQKKyB0cmFjZV9kbWFfZmVuY2VfZW1p dAp8Ci0gRkVOQ0VfVFJBQ0UKKyBETUFfRkVOQ0VfVFJBQ0UKfAotIEZFTkNFX1dBUk4KKyBETUFf RkVOQ0VfV0FSTgp8Ci0gRkVOQ0VfRVJSCisgRE1BX0ZFTkNFX0VSUgopCiAoCiAuLi4KICkKClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZp ZXdlZC1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVr PgpBY2tlZC1ieTogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxAbGluYXJvLm9yZz4KQWNrZWQt Ynk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBEb2N1 bWVudGF0aW9uL3N5bmNfZmlsZS50eHQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQog ZHJpdmVycy9iYXNlL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYg Ky0KIGRyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyOCArLS0KIC4uLi9kbWEtYnVmL3tmZW5jZS1hcnJheS5jID0+IGRtYS1mZW5jZS1hcnJh eS5jfSAgIHwgIDkxICsrKystLS0tCiBkcml2ZXJzL2RtYS1idWYve2ZlbmNlLmMgPT4gZG1hLWZl bmNlLmN9ICAgICAgICAgICB8IDE5NSArKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9kbWEtYnVm L3Jlc2VydmF0aW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAgOTQgKysrKy0tLS0KIGRyaXZl cnMvZG1hLWJ1Zi9zZXFuby1mZW5jZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBk cml2ZXJzL2RtYS1idWYvc3dfc3luYy5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OCAr Ky0tLQogZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgMTMgKy0KIGRyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmggICAgICAgICAgICAgICAgICAg ICAgIHwgICA5ICstCiBkcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICA2MyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5o ICAgICAgICAgICAgICAgIHwgIDU0ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYmVuY2htYXJrLmMgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2NzLmMgICAgICAgICAgICAgfCAgMTYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jdHguYyAgICAgICAgICAgIHwgIDIyICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyAgICAgICAgfCAgMTYgKy0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jICAgICAgICAgIHwgIDU4ICsrLS0tCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyAgICAgICAgICAgICB8ICAgNiAr LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5jICAgICAgICAgICAgfCAg MjIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAgICAgICAg IHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmggICAg ICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMgICAg ICAgICAgICAgfCAgMjQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3lu Yy5jICAgICAgICAgICB8ICA0OCArKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3Rlc3QuYyAgICAgICAgICAgfCAgMTIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90cmFjZS5oICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdHRtLmMgICAgICAgICAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3R0bS5oICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAgICAgICAgICAgIHwgIDI2ICstLQogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5oICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyAgICAgICAgICAgIHwgIDI2ICstLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oICAgICAgICAgICAgfCAgIDQg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICAgICAgICAgIHwg IDgwICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgICAgICAg ICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjZfMC5jICAg ICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAu YyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92 OF8wLmMgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z ZG1hX3YyXzQuYyAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2RtYV92M18wLmMgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NpX2RtYS5jICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0v YW1kL3NjaGVkdWxlci9ncHVfc2NoZWRfdHJhY2UuaCAgICB8ICAgNCArLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jICAgICAgfCAgNjcgKysrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmggICAgICB8ICAyNiArLS0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMgICAgICAgIHwgIDQ4 ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICAgICAg ICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5j ICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9n cHUuYyAgICAgICAgICAgICAgfCAgNTAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0 bmF2aXZfZ3B1LmggICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZXF1ZXN0LmMgICAgICAgICAgICB8ICAzMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlcXVlc3QuaCAgICAgICAgICAgIHwgIDE4ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmMgICAgICAgICAgICAgICB8ICA0MSArKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggICAgICAgICAgICAgICB8ICAgOCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgICAgICAgICAgIHwgICA0 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgICAgICAgICB8 ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMgICAgICAgICAgICAg ICAgICAgIHwgIDM0ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuaCAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jICAgICAg ICAgICAgICAgICAgICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2Vt X3N1Ym1pdC5jICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dwdS5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9mZW5jZS5jICAgICAgICAgICAgfCAgODAgKysrLS0tLQogZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMgICAgICAgICAgICAgIHwgICAyICst CiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjA0X2ZlbmNlLmMgICAgICAgICAgICAgICB8ICAg MiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxMF9mZW5jZS5jICAgICAgICAgICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyAgICAgICAgICAg ICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2ZlbmNlLmMgICAgICAg ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4NF9mZW5jZS5jICAg ICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAgICAg ICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMgICAgICAgICAgICAgICAgICB8ICAzNSArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uLmggICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kZXZpY2UuYyAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZGlzcGxheS5jICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgICAgICAgICAgICAgIHwgIDU2ICsrLS0tCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMgICAgICAgICAgICAgICB8ICAgNiArLQogZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0 ICstLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgICAgICAg fCAgMjIgKy0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgICAgICAgICAgICAgICAg ICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyAgICAg ICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jICAgICAg ICAgICAgICAgICAgfCAgNTMgKystLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9k cnYuaCAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRn cHVfZmVuY2UuYyAgICAgICAgICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8v dmlydGdwdV9pb2N0bC5jICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vdmly dGlvL3ZpcnRncHVfa21zLmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X3BsYW5lLmMgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgICAgICAgICAgICAgIHwgIDQ0ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmggICAgICAgICAgICAgIHwgICA4ICstCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jICAgICAgICAgICB8ICAgMiAr LQogaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDQgKy0KIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAg ICAgICAgICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5o ICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFy cmF5LmggICAgICAgICAgICAgICAgICAgIHwgIDg2ICsrKysrKysrCiBpbmNsdWRlL2xpbnV4L3tm ZW5jZS5oID0+IGRtYS1mZW5jZS5ofSAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKy0tLS0t LS0tLS0KIGluY2x1ZGUvbGludXgvZmVuY2UtYXJyYXkuaCAgICAgICAgICAgICAgICAgICAgICAg IHwgIDg0IC0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggICAgICAgICAgICAg ICAgICAgICAgICB8ICAyOCArLS0KIGluY2x1ZGUvbGludXgvc2Vxbm8tZmVuY2UuaCAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICstCiBpbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogaW5jbHVkZS90cmFjZS9ldmVudHMve2ZlbmNl LmggPT4gZG1hX2ZlbmNlLmh9ICAgICAgfCAgNDQgKystLQogMTA5IGZpbGVzIGNoYW5nZWQsIDEy NTEgaW5zZXJ0aW9ucygrKSwgMTIxNCBkZWxldGlvbnMoLSkKIHJlbmFtZSBkcml2ZXJzL2RtYS1i dWYve2ZlbmNlLWFycmF5LmMgPT4gZG1hLWZlbmNlLWFycmF5LmN9ICg1MSUpCiByZW5hbWUgZHJp dmVycy9kbWEtYnVmL3tmZW5jZS5jID0+IGRtYS1mZW5jZS5jfSAoNjUlKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5LmgKIHJlbmFtZSBpbmNsdWRlL2xp bnV4L3tmZW5jZS5oID0+IGRtYS1mZW5jZS5ofSAoNTklKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUvbGludXgvZmVuY2UtYXJyYXkuaAogcmVuYW1lIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3tm ZW5jZS5oID0+IGRtYV9mZW5jZS5ofSAoNzIlKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v c3luY19maWxlLnR4dCBiL0RvY3VtZW50YXRpb24vc3luY19maWxlLnR4dAppbmRleCBiNjNhNjg1 MzFhZmQuLjU3ZWZmYjJmMWI5MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zeW5jX2ZpbGUu dHh0CisrKyBiL0RvY3VtZW50YXRpb24vc3luY19maWxlLnR4dApAQCAtMzIsOSArMzIsOSBAQCBp bi1mZW5jZXMgYW5kIG91dC1mZW5jZXMKIFN5bmMgZmlsZXMgY2FuIGdvIGVpdGhlciB0byBvciBm cm9tIHVzZXJzcGFjZS4gV2hlbiBhIHN5bmNfZmlsZSBpcyBzZW50IGZyb20KIHRoZSBkcml2ZXIg dG8gdXNlcnNwYWNlIHdlIGNhbGwgdGhlIGZlbmNlcyBpdCBjb250YWlucyAnb3V0LWZlbmNlcycu IFRoZXkgYXJlCiByZWxhdGVkIHRvIGEgYnVmZmVyIHRoYXQgdGhlIGRyaXZlciBpcyBwcm9jZXNz aW5nIG9yIGlzIGdvaW5nIHRvIHByb2Nlc3MsIHNvCi10aGUgZHJpdmVyIGNyZWF0ZXMgYW4gb3V0 LWZlbmNlIHRvIGJlIGFibGUgdG8gbm90aWZ5LCB0aHJvdWdoIGZlbmNlX3NpZ25hbCgpLAotd2hl biBpdCBoYXMgZmluaXNoZWQgdXNpbmcgKG9yIHByb2Nlc3NpbmcpIHRoYXQgYnVmZmVyLiBPdXQt ZmVuY2VzIGFyZSBmZW5jZXMKLXRoYXQgdGhlIGRyaXZlciBjcmVhdGVzLgordGhlIGRyaXZlciBj cmVhdGVzIGFuIG91dC1mZW5jZSB0byBiZSBhYmxlIHRvIG5vdGlmeSwgdGhyb3VnaAorZG1hX2Zl bmNlX3NpZ25hbCgpLCB3aGVuIGl0IGhhcyBmaW5pc2hlZCB1c2luZyAob3IgcHJvY2Vzc2luZykg dGhhdCBidWZmZXIuCitPdXQtZmVuY2VzIGFyZSBmZW5jZXMgdGhhdCB0aGUgZHJpdmVyIGNyZWF0 ZXMuCiAKIE9uIHRoZSBvdGhlciBoYW5kIGlmIHRoZSBkcml2ZXIgcmVjZWl2ZXMgZmVuY2Uocykg dGhyb3VnaCBhIHN5bmNfZmlsZSBmcm9tCiB1c2Vyc3BhY2Ugd2UgY2FsbCB0aGVzZSBmZW5jZShz KSAnaW4tZmVuY2VzJy4gUmVjZWl2ZWluZyBpbi1mZW5jZXMgbWVhbnMgdGhhdApAQCAtNzYsNyAr NzYsNyBAQCBJbnRlcmZhY2U6CiAKIAogVGhlIHJldHVybmVkIHJlZmVyZW5jZSBpcyBvd25lZCBi eSB0aGUgY2FsbGVyIGFuZCBtdXN0IGJlIGRpc3Bvc2VkIG9mCi1hZnRlcndhcmRzIHVzaW5nIGZl bmNlX3B1dCgpLiBJbiBjYXNlIG9mIGVycm9yLCBhIE5VTEwgaXMgcmV0dXJuZWQgaW5zdGVhZC4K K2FmdGVyd2FyZHMgdXNpbmcgZG1hX2ZlbmNlX3B1dCgpLiBJbiBjYXNlIG9mIGVycm9yLCBhIE5V TEwgaXMgcmV0dXJuZWQgaW5zdGVhZC4KIAogUmVmZXJlbmNlczoKIFsxXSBzdHJ1Y3Qgc3luY19m aWxlIGluIGluY2x1ZGUvbGludXgvc3luY19maWxlLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFz ZS9LY29uZmlnIGIvZHJpdmVycy9iYXNlL0tjb25maWcKaW5kZXggZmRmNDRjYWMwOGU2Li4zN2Jm MjVjNmI0YTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9LY29uZmlnCisrKyBiL2RyaXZlcnMv YmFzZS9LY29uZmlnCkBAIC0yNDgsMTEgKzI0OCwxMSBAQCBjb25maWcgRE1BX1NIQVJFRF9CVUZG RVIKIAkgIEFQSXMgZXh0ZW5zaW9uOyB0aGUgZmlsZSdzIGRlc2NyaXB0b3IgY2FuIHRoZW4gYmUg cGFzc2VkIG9uIHRvIG90aGVyCiAJICBkcml2ZXIuCiAKLWNvbmZpZyBGRU5DRV9UUkFDRQotCWJv b2wgIkVuYWJsZSB2ZXJib3NlIEZFTkNFX1RSQUNFIG1lc3NhZ2VzIgorY29uZmlnIERNQV9GRU5D RV9UUkFDRQorCWJvb2wgIkVuYWJsZSB2ZXJib3NlIERNQV9GRU5DRV9UUkFDRSBtZXNzYWdlcyIK IAlkZXBlbmRzIG9uIERNQV9TSEFSRURfQlVGRkVSCiAJaGVscAotCSAgRW5hYmxlIHRoZSBGRU5D RV9UUkFDRSBwcmludGtzLiBUaGlzIHdpbGwgYWRkIGV4dHJhCisJICBFbmFibGUgdGhlIERNQV9G RU5DRV9UUkFDRSBwcmludGtzLiBUaGlzIHdpbGwgYWRkIGV4dHJhCiAJICBzcGFtIHRvIHRoZSBj b25zb2xlIGxvZywgYnV0IHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gZGlhZ25vc2UKIAkgIGxvY2t1 cCByZWxhdGVkIHByb2JsZW1zIGZvciBkbWEtYnVmZmVycyBzaGFyZWQgYWNyb3NzIG11bHRpcGxl CiAJICBkZXZpY2VzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlIGIvZHJp dmVycy9kbWEtYnVmL01ha2VmaWxlCmluZGV4IDIxMGExMGJmYWQyYi4uYzMzYmY4ODYzMTQ3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9kbWEtYnVm L01ha2VmaWxlCkBAIC0xLDMgKzEsMyBAQAotb2JqLXkgOj0gZG1hLWJ1Zi5vIGZlbmNlLm8gcmVz ZXJ2YXRpb24ubyBzZXFuby1mZW5jZS5vIGZlbmNlLWFycmF5Lm8KK29iai15IDo9IGRtYS1idWYu byBkbWEtZmVuY2UubyBkbWEtZmVuY2UtYXJyYXkubyByZXNlcnZhdGlvbi5vIHNlcW5vLWZlbmNl Lm8KIG9iai0kKENPTkZJR19TWU5DX0ZJTEUpCQkrPSBzeW5jX2ZpbGUubwogb2JqLSQoQ09ORklH X1NXX1NZTkMpCQkrPSBzd19zeW5jLm8gc3luY19kZWJ1Zy5vCmRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwppbmRleCBjZjA0 ZDI0OWE2YTQuLmU3MmU2NDQ4NDEzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1i dWYuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCkBAIC0yNSw3ICsyNSw3IEBACiAj aW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8 bGludXgvZG1hLWJ1Zi5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGlu dXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvYW5vbl9pbm9kZXMuaD4KICNpbmNsdWRl IDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CkBAIC0xMjQsNyAr MTI0LDcgQEAgc3RhdGljIGxvZmZfdCBkbWFfYnVmX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwg bG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSkKIAlyZXR1cm4gYmFzZSArIG9mZnNldDsKIH0KIAot c3RhdGljIHZvaWQgZG1hX2J1Zl9wb2xsX2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBm ZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBkbWFfYnVmX3BvbGxfY2Ioc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBkbWFfYnVmX3Bv bGxfY2JfdCAqZGNiID0gKHN0cnVjdCBkbWFfYnVmX3BvbGxfY2JfdCAqKWNiOwogCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkbWFf YnVmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKnBvbGwpCiAJc3RydWN0IGRt YV9idWYgKmRtYWJ1ZjsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwogCXN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlX2V4 Y2w7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VfZXhjbDsKIAl1bnNpZ25lZCBsb25nIGV2ZW50 czsKIAl1bnNpZ25lZCBzaGFyZWRfY291bnQsIHNlcTsKIApAQCAtMTg3LDIwICsxODcsMjAgQEAg c3RhdGljIHVuc2lnbmVkIGludCBkbWFfYnVmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxf dGFibGUgKnBvbGwpCiAJCXNwaW5fdW5sb2NrX2lycSgmZG1hYnVmLT5wb2xsLmxvY2spOwogCiAJ CWlmIChldmVudHMgJiBwZXZlbnRzKSB7Ci0JCQlpZiAoIWZlbmNlX2dldF9yY3UoZmVuY2VfZXhj bCkpIHsKKwkJCWlmICghZG1hX2ZlbmNlX2dldF9yY3UoZmVuY2VfZXhjbCkpIHsKIAkJCQkvKiBm b3JjZSBhIHJlY2hlY2sgKi8KIAkJCQlldmVudHMgJj0gfnBldmVudHM7CiAJCQkJZG1hX2J1Zl9w b2xsX2NiKE5VTEwsICZkY2ItPmNiKTsKLQkJCX0gZWxzZSBpZiAoIWZlbmNlX2FkZF9jYWxsYmFj ayhmZW5jZV9leGNsLCAmZGNiLT5jYiwKLQkJCQkJCSAgICAgICBkbWFfYnVmX3BvbGxfY2IpKSB7 CisJCQl9IGVsc2UgaWYgKCFkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlX2V4Y2wsICZkY2It PmNiLAorCQkJCQkJCSAgIGRtYV9idWZfcG9sbF9jYikpIHsKIAkJCQlldmVudHMgJj0gfnBldmVu dHM7Ci0JCQkJZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOworCQkJCWRtYV9mZW5jZV9wdXQoZmVuY2Vf ZXhjbCk7CiAJCQl9IGVsc2UgewogCQkJCS8qCiAJCQkJICogTm8gY2FsbGJhY2sgcXVldWVkLCB3 YWtlIHVwIGFueSBhZGRpdGlvbmFsCiAJCQkJICogd2FpdGVycy4KIAkJCQkgKi8KLQkJCQlmZW5j ZV9wdXQoZmVuY2VfZXhjbCk7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5jZV9leGNsKTsKIAkJCQlk bWFfYnVmX3BvbGxfY2IoTlVMTCwgJmRjYi0+Y2IpOwogCQkJfQogCQl9CkBAIC0yMjIsOSArMjIy LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkbWFfYnVmX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUs IHBvbGxfdGFibGUgKnBvbGwpCiAJCQlnb3RvIG91dDsKIAogCQlmb3IgKGkgPSAwOyBpIDwgc2hh cmVkX2NvdW50OyArK2kpIHsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSByY3VfZGVyZWZlcmVu Y2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmN1X2Rl cmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CiAKLQkJCWlmICghZmVuY2VfZ2V0X3JjdShmZW5j ZSkpIHsKKwkJCWlmICghZG1hX2ZlbmNlX2dldF9yY3UoZmVuY2UpKSB7CiAJCQkJLyoKIAkJCQkg KiBmZW5jZSByZWZjb3VudCBkcm9wcGVkIHRvIHplcm8sIHRoaXMgbWVhbnMKIAkJCQkgKiB0aGF0 IGZvYmogaGFzIGJlZW4gZnJlZWQKQEAgLTIzNSwxMyArMjM1LDEzIEBAIHN0YXRpYyB1bnNpZ25l ZCBpbnQgZG1hX2J1Zl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICpwb2xsKQog CQkJCWRtYV9idWZfcG9sbF9jYihOVUxMLCAmZGNiLT5jYik7CiAJCQkJYnJlYWs7CiAJCQl9Ci0J CQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJmRjYi0+Y2IsCi0JCQkJCQlkbWFfYnVm X3BvbGxfY2IpKSB7Ci0JCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWlmICghZG1hX2ZlbmNlX2Fk ZF9jYWxsYmFjayhmZW5jZSwgJmRjYi0+Y2IsCisJCQkJCQkgICAgZG1hX2J1Zl9wb2xsX2NiKSkg eworCQkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQkJCWV2ZW50cyAmPSB+UE9MTE9VVDsKIAkJ CQlicmVhazsKIAkJCX0KLQkJCWZlbmNlX3B1dChmZW5jZSk7CisJCQlkbWFfZmVuY2VfcHV0KGZl bmNlKTsKIAkJfQogCiAJCS8qIE5vIGNhbGxiYWNrIHF1ZXVlZCwgd2FrZSB1cCBhbnkgYWRkaXRp b25hbCB3YWl0ZXJzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLWFycmF5 LmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWFycmF5LmMKc2ltaWxhcml0eSBpbmRleCA1 MSUKcmVuYW1lIGZyb20gZHJpdmVycy9kbWEtYnVmL2ZlbmNlLWFycmF5LmMKcmVuYW1lIHRvIGRy aXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtYXJyYXkuYwppbmRleCBmMTk4OWZjYWYzNTQuLmQ5YWE3 NWRmZjA4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLWFycmF5LmMKKysrIGIv ZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1hcnJheS5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq IGZlbmNlLWFycmF5OiBhZ2dyZWdhdGUgZmVuY2VzIHRvIGJlIHdhaXRlZCB0b2dldGhlcgorICog ZG1hLWZlbmNlLWFycmF5OiBhZ2dyZWdhdGUgZmVuY2VzIHRvIGJlIHdhaXRlZCB0b2dldGhlcgog ICoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDb2xsYWJvcmEgTHRkCiAgKiBDb3B5cmlnaHQgKEMp IDIwMTYgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgpAQCAtMTksMzUgKzE5LDM0IEBACiAK ICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5j bHVkZSA8bGludXgvZmVuY2UtYXJyYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UtYXJy YXkuaD4KIAotc3RhdGljIHZvaWQgZmVuY2VfYXJyYXlfY2JfZnVuYyhzdHJ1Y3QgZmVuY2UgKmYs IHN0cnVjdCBmZW5jZV9jYiAqY2IpOwotCi1zdGF0aWMgY29uc3QgY2hhciAqZmVuY2VfYXJyYXlf Z2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAq ZG1hX2ZlbmNlX2FycmF5X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkK IHsKLQlyZXR1cm4gImZlbmNlX2FycmF5IjsKKwlyZXR1cm4gImRtYV9mZW5jZV9hcnJheSI7CiB9 CiAKLXN0YXRpYyBjb25zdCBjaGFyICpmZW5jZV9hcnJheV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmRtYV9mZW5jZV9hcnJheV9nZXRf dGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInVuYm91 bmQiOwogfQogCi1zdGF0aWMgdm9pZCBmZW5jZV9hcnJheV9jYl9mdW5jKHN0cnVjdCBmZW5jZSAq Ziwgc3RydWN0IGZlbmNlX2NiICpjYikKK3N0YXRpYyB2b2lkIGRtYV9mZW5jZV9hcnJheV9jYl9m dW5jKHN0cnVjdCBkbWFfZmVuY2UgKmYsCisJCQkJICAgIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNi KQogewotCXN0cnVjdCBmZW5jZV9hcnJheV9jYiAqYXJyYXlfY2IgPQotCQljb250YWluZXJfb2Yo Y2IsIHN0cnVjdCBmZW5jZV9hcnJheV9jYiwgY2IpOwotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJy YXkgPSBhcnJheV9jYi0+YXJyYXk7CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheV9jYiAqYXJyYXlf Y2IgPQorCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IsIGNiKTsK KwlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheSA9IGFycmF5X2NiLT5hcnJheTsKIAogCWlm IChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcnJheS0+bnVtX3BlbmRpbmcpKQotCQlmZW5jZV9zaWdu YWwoJmFycmF5LT5iYXNlKTsKLQlmZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKKwkJZG1hX2ZlbmNl X3NpZ25hbCgmYXJyYXktPmJhc2UpOworCWRtYV9mZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKIH0K IAotc3RhdGljIGJvb2wgZmVuY2VfYXJyYXlfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGJvb2wgZG1hX2ZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmcoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IGZlbmNlX2FycmF5ICphcnJheSA9IHRv X2ZlbmNlX2FycmF5KGZlbmNlKTsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXlfY2IgKmNiID0gKHZvaWQg KikoJmFycmF5WzFdKTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheSA9IHRvX2RtYV9m ZW5jZV9hcnJheShmZW5jZSk7CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheV9jYiAqY2IgPSAodm9p ZCAqKSgmYXJyYXlbMV0pOwogCXVuc2lnbmVkIGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYXJyYXkt Pm51bV9mZW5jZXM7ICsraSkgewpAQCAtNjAsMTAgKzU5LDEwIEBAIHN0YXRpYyBib29sIGZlbmNl X2FycmF5X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKIAkJICogdW50aWwg d2Ugc2lnbmFsIHRoZSBhcnJheSBhcyBjb21wbGV0ZSAoYnV0IHRoYXQgaXMgbm93CiAJCSAqIGlu c3VmZmljaWVudCkuCiAJCSAqLwotCQlmZW5jZV9nZXQoJmFycmF5LT5iYXNlKTsKLQkJaWYgKGZl bmNlX2FkZF9jYWxsYmFjayhhcnJheS0+ZmVuY2VzW2ldLCAmY2JbaV0uY2IsCi0JCQkJICAgICAg IGZlbmNlX2FycmF5X2NiX2Z1bmMpKSB7Ci0JCQlmZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKKwkJ ZG1hX2ZlbmNlX2dldCgmYXJyYXktPmJhc2UpOworCQlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFj ayhhcnJheS0+ZmVuY2VzW2ldLCAmY2JbaV0uY2IsCisJCQkJICAgICAgIGRtYV9mZW5jZV9hcnJh eV9jYl9mdW5jKSkgeworCQkJZG1hX2ZlbmNlX3B1dCgmYXJyYXktPmJhc2UpOwogCQkJaWYgKGF0 b21pY19kZWNfYW5kX3Rlc3QoJmFycmF5LT5udW1fcGVuZGluZykpCiAJCQkJcmV0dXJuIGZhbHNl OwogCQl9CkBAIC03Miw2OSArNzEsNzEgQEAgc3RhdGljIGJvb2wgZmVuY2VfYXJyYXlfZW5hYmxl X3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0 aWMgYm9vbCBmZW5jZV9hcnJheV9zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGlj IGJvb2wgZG1hX2ZlbmNlX2FycmF5X3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQog ewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXkgPSB0b19mZW5jZV9hcnJheShmZW5jZSk7CisJ c3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVuY2VfYXJyYXkoZmVuY2Up OwogCiAJcmV0dXJuIGF0b21pY19yZWFkKCZhcnJheS0+bnVtX3BlbmRpbmcpIDw9IDA7CiB9CiAK LXN0YXRpYyB2b2lkIGZlbmNlX2FycmF5X3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyB2b2lkIGRtYV9mZW5jZV9hcnJheV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXkgPSB0b19mZW5jZV9hcnJheShmZW5jZSk7 CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVuY2VfYXJyYXkoZmVu Y2UpOwogCXVuc2lnbmVkIGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYXJyYXktPm51bV9mZW5jZXM7 ICsraSkKLQkJZmVuY2VfcHV0KGFycmF5LT5mZW5jZXNbaV0pOworCQlkbWFfZmVuY2VfcHV0KGFy cmF5LT5mZW5jZXNbaV0pOwogCiAJa2ZyZWUoYXJyYXktPmZlbmNlcyk7Ci0JZmVuY2VfZnJlZShm ZW5jZSk7CisJZG1hX2ZlbmNlX2ZyZWUoZmVuY2UpOwogfQogCi1jb25zdCBzdHJ1Y3QgZmVuY2Vf b3BzIGZlbmNlX2FycmF5X29wcyA9IHsKLQkuZ2V0X2RyaXZlcl9uYW1lID0gZmVuY2VfYXJyYXlf Z2V0X2RyaXZlcl9uYW1lLAotCS5nZXRfdGltZWxpbmVfbmFtZSA9IGZlbmNlX2FycmF5X2dldF90 aW1lbGluZV9uYW1lLAotCS5lbmFibGVfc2lnbmFsaW5nID0gZmVuY2VfYXJyYXlfZW5hYmxlX3Np Z25hbGluZywKLQkuc2lnbmFsZWQgPSBmZW5jZV9hcnJheV9zaWduYWxlZCwKLQkud2FpdCA9IGZl bmNlX2RlZmF1bHRfd2FpdCwKLQkucmVsZWFzZSA9IGZlbmNlX2FycmF5X3JlbGVhc2UsCitjb25z dCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBkbWFfZmVuY2VfYXJyYXlfb3BzID0geworCS5nZXRfZHJp dmVyX25hbWUgPSBkbWFfZmVuY2VfYXJyYXlfZ2V0X2RyaXZlcl9uYW1lLAorCS5nZXRfdGltZWxp bmVfbmFtZSA9IGRtYV9mZW5jZV9hcnJheV9nZXRfdGltZWxpbmVfbmFtZSwKKwkuZW5hYmxlX3Np Z25hbGluZyA9IGRtYV9mZW5jZV9hcnJheV9lbmFibGVfc2lnbmFsaW5nLAorCS5zaWduYWxlZCA9 IGRtYV9mZW5jZV9hcnJheV9zaWduYWxlZCwKKwkud2FpdCA9IGRtYV9mZW5jZV9kZWZhdWx0X3dh aXQsCisJLnJlbGVhc2UgPSBkbWFfZmVuY2VfYXJyYXlfcmVsZWFzZSwKIH07Ci1FWFBPUlRfU1lN Qk9MKGZlbmNlX2FycmF5X29wcyk7CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9hcnJheV9vcHMp OwogCiAvKioKLSAqIGZlbmNlX2FycmF5X2NyZWF0ZSAtIENyZWF0ZSBhIGN1c3RvbSBmZW5jZSBh cnJheQorICogZG1hX2ZlbmNlX2FycmF5X2NyZWF0ZSAtIENyZWF0ZSBhIGN1c3RvbSBmZW5jZSBh cnJheQogICogQG51bV9mZW5jZXM6CQlbaW5dCW51bWJlciBvZiBmZW5jZXMgdG8gYWRkIGluIHRo ZSBhcnJheQogICogQGZlbmNlczoJCVtpbl0JYXJyYXkgY29udGFpbmluZyB0aGUgZmVuY2VzCiAg KiBAY29udGV4dDoJCVtpbl0JZmVuY2UgY29udGV4dCB0byB1c2UKICAqIEBzZXFubzoJCVtpbl0J c2VxdWVuY2UgbnVtYmVyIHRvIHVzZQogICogQHNpZ25hbF9vbl9hbnk6CVtpbl0Jc2lnbmFsIG9u IGFueSBmZW5jZSBpbiB0aGUgYXJyYXkKICAqCi0gKiBBbGxvY2F0ZSBhIGZlbmNlX2FycmF5IG9i amVjdCBhbmQgaW5pdGlhbGl6ZSB0aGUgYmFzZSBmZW5jZSB3aXRoIGZlbmNlX2luaXQoKS4KKyAq IEFsbG9jYXRlIGEgZG1hX2ZlbmNlX2FycmF5IG9iamVjdCBhbmQgaW5pdGlhbGl6ZSB0aGUgYmFz ZSBmZW5jZSB3aXRoCisgKiBkbWFfZmVuY2VfaW5pdCgpLgogICogSW4gY2FzZSBvZiBlcnJvciBp dCByZXR1cm5zIE5VTEwuCiAgKgogICogVGhlIGNhbGxlciBzaG91bGQgYWxsb2NhdGUgdGhlIGZl bmNlcyBhcnJheSB3aXRoIG51bV9mZW5jZXMgc2l6ZQogICogYW5kIGZpbGwgaXQgd2l0aCB0aGUg ZmVuY2VzIGl0IHdhbnRzIHRvIGFkZCB0byB0aGUgb2JqZWN0LiBPd25lcnNoaXAgb2YgdGhpcwot ICogYXJyYXkgaXMgdGFrZW4gYW5kIGZlbmNlX3B1dCgpIGlzIHVzZWQgb24gZWFjaCBmZW5jZSBv biByZWxlYXNlLgorICogYXJyYXkgaXMgdGFrZW4gYW5kIGRtYV9mZW5jZV9wdXQoKSBpcyB1c2Vk IG9uIGVhY2ggZmVuY2Ugb24gcmVsZWFzZS4KICAqCiAgKiBJZiBAc2lnbmFsX29uX2FueSBpcyB0 cnVlIHRoZSBmZW5jZSBhcnJheSBzaWduYWxzIGlmIGFueSBmZW5jZSBpbiB0aGUgYXJyYXkKICAq IHNpZ25hbHMsIG90aGVyd2lzZSBpdCBzaWduYWxzIHdoZW4gYWxsIGZlbmNlcyBpbiB0aGUgYXJy YXkgc2lnbmFsLgogICovCi1zdHJ1Y3QgZmVuY2VfYXJyYXkgKmZlbmNlX2FycmF5X2NyZWF0ZShp bnQgbnVtX2ZlbmNlcywgc3RydWN0IGZlbmNlICoqZmVuY2VzLAotCQkJCSAgICAgICB1NjQgY29u dGV4dCwgdW5zaWduZWQgc2Vxbm8sCi0JCQkJICAgICAgIGJvb2wgc2lnbmFsX29uX2FueSkKK3N0 cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmRtYV9mZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5j ZXMsCisJCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLAorCQkJCQkgICAgICAg dTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAorCQkJCQkgICAgICAgYm9vbCBzaWduYWxfb25f YW55KQogewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXk7CisJc3RydWN0IGRtYV9mZW5jZV9h cnJheSAqYXJyYXk7CiAJc2l6ZV90IHNpemUgPSBzaXplb2YoKmFycmF5KTsKIAogCS8qIEFsbG9j YXRlIHRoZSBjYWxsYmFjayBzdHJ1Y3R1cmVzIGJlaGluZCB0aGUgYXJyYXkuICovCi0Jc2l6ZSAr PSBudW1fZmVuY2VzICogc2l6ZW9mKHN0cnVjdCBmZW5jZV9hcnJheV9jYik7CisJc2l6ZSArPSBu dW1fZmVuY2VzICogc2l6ZW9mKHN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IpOwogCWFycmF5ID0g a3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWFycmF5KQogCQlyZXR1cm4gTlVMTDsK IAogCXNwaW5fbG9ja19pbml0KCZhcnJheS0+bG9jayk7Ci0JZmVuY2VfaW5pdCgmYXJyYXktPmJh c2UsICZmZW5jZV9hcnJheV9vcHMsICZhcnJheS0+bG9jaywKLQkJICAgY29udGV4dCwgc2Vxbm8p OworCWRtYV9mZW5jZV9pbml0KCZhcnJheS0+YmFzZSwgJmRtYV9mZW5jZV9hcnJheV9vcHMsICZh cnJheS0+bG9jaywKKwkJICAgICAgIGNvbnRleHQsIHNlcW5vKTsKIAogCWFycmF5LT5udW1fZmVu Y2VzID0gbnVtX2ZlbmNlczsKIAlhdG9taWNfc2V0KCZhcnJheS0+bnVtX3BlbmRpbmcsIHNpZ25h bF9vbl9hbnkgPyAxIDogbnVtX2ZlbmNlcyk7CkBAIC0xNDIsNCArMTQzLDQgQEAgc3RydWN0IGZl bmNlX2FycmF5ICpmZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMsIHN0cnVjdCBmZW5j ZSAqKmZlbmNlcywKIAogCXJldHVybiBhcnJheTsKIH0KLUVYUE9SVF9TWU1CT0woZmVuY2VfYXJy YXlfY3JlYXRlKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2FycmF5X2NyZWF0ZSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZmVuY2UuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVu Y2UuYwpzaW1pbGFyaXR5IGluZGV4IDY1JQpyZW5hbWUgZnJvbSBkcml2ZXJzL2RtYS1idWYvZmVu Y2UuYwpyZW5hbWUgdG8gZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS5jCmluZGV4IGNjMDVkZGRj NzdhNi4uYmY3MzczMGNmMmJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvZmVuY2UuYwor KysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKQEAgLTIxLDEzICsyMSwxMyBAQAogI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRl IDxsaW51eC9hdG9taWMuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxp bnV4L2RtYS1mZW5jZS5oPgogCiAjZGVmaW5lIENSRUFURV9UUkFDRV9QT0lOVFMKLSNpbmNsdWRl IDx0cmFjZS9ldmVudHMvZmVuY2UuaD4KKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNl Lmg+CiAKLUVYUE9SVF9UUkFDRVBPSU5UX1NZTUJPTChmZW5jZV9hbm5vdGF0ZV93YWl0X29uKTsK LUVYUE9SVF9UUkFDRVBPSU5UX1NZTUJPTChmZW5jZV9lbWl0KTsKK0VYUE9SVF9UUkFDRVBPSU5U X1NZTUJPTChkbWFfZmVuY2VfYW5ub3RhdGVfd2FpdF9vbik7CitFWFBPUlRfVFJBQ0VQT0lOVF9T WU1CT0woZG1hX2ZlbmNlX2VtaXQpOwogCiAvKgogICogZmVuY2UgY29udGV4dCBjb3VudGVyOiBl YWNoIGV4ZWN1dGlvbiBjb250ZXh0IHNob3VsZCBoYXZlIGl0cyBvd24KQEAgLTM1LDM3ICszNSwz NyBAQCBFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0woZmVuY2VfZW1pdCk7CiAgKiBjb250ZXh0IG9y IG5vdC4gT25lIGRldmljZSBjYW4gaGF2ZSBtdWx0aXBsZSBzZXBhcmF0ZSBjb250ZXh0cywKICAq IGFuZCB0aGV5J3JlIHVzZWQgaWYgc29tZSBlbmdpbmUgY2FuIHJ1biBpbmRlcGVuZGVudGx5IG9m IGFub3RoZXIuCiAgKi8KLXN0YXRpYyBhdG9taWM2NF90IGZlbmNlX2NvbnRleHRfY291bnRlciA9 IEFUT01JQzY0X0lOSVQoMCk7CitzdGF0aWMgYXRvbWljNjRfdCBkbWFfZmVuY2VfY29udGV4dF9j b3VudGVyID0gQVRPTUlDNjRfSU5JVCgwKTsKIAogLyoqCi0gKiBmZW5jZV9jb250ZXh0X2FsbG9j IC0gYWxsb2NhdGUgYW4gYXJyYXkgb2YgZmVuY2UgY29udGV4dHMKKyAqIGRtYV9mZW5jZV9jb250 ZXh0X2FsbG9jIC0gYWxsb2NhdGUgYW4gYXJyYXkgb2YgZmVuY2UgY29udGV4dHMKICAqIEBudW06 CVtpbl0JYW1vdW50IG9mIGNvbnRleHRzIHRvIGFsbG9jYXRlCiAgKgogICogVGhpcyBmdW5jdGlv biB3aWxsIHJldHVybiB0aGUgZmlyc3QgaW5kZXggb2YgdGhlIG51bWJlciBvZiBmZW5jZXMgYWxs b2NhdGVkLgogICogVGhlIGZlbmNlIGNvbnRleHQgaXMgdXNlZCBmb3Igc2V0dGluZyBmZW5jZS0+ Y29udGV4dCB0byBhIHVuaXF1ZSBudW1iZXIuCiAgKi8KLXU2NCBmZW5jZV9jb250ZXh0X2FsbG9j KHVuc2lnbmVkIG51bSkKK3U2NCBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyh1bnNpZ25lZCBudW0p CiB7CiAJQlVHX09OKCFudW0pOwotCXJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKG51bSwgJmZl bmNlX2NvbnRleHRfY291bnRlcikgLSBudW07CisJcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4o bnVtLCAmZG1hX2ZlbmNlX2NvbnRleHRfY291bnRlcikgLSBudW07CiB9Ci1FWFBPUlRfU1lNQk9M KGZlbmNlX2NvbnRleHRfYWxsb2MpOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfY29udGV4dF9h bGxvYyk7CiAKIC8qKgotICogZmVuY2Vfc2lnbmFsX2xvY2tlZCAtIHNpZ25hbCBjb21wbGV0aW9u IG9mIGEgZmVuY2UKKyAqIGRtYV9mZW5jZV9zaWduYWxfbG9ja2VkIC0gc2lnbmFsIGNvbXBsZXRp b24gb2YgYSBmZW5jZQogICogQGZlbmNlOiB0aGUgZmVuY2UgdG8gc2lnbmFsCiAgKgogICogU2ln bmFsIGNvbXBsZXRpb24gZm9yIHNvZnR3YXJlIGNhbGxiYWNrcyBvbiBhIGZlbmNlLCB0aGlzIHdp bGwgdW5ibG9jawotICogZmVuY2Vfd2FpdCgpIGNhbGxzIGFuZCBydW4gYWxsIHRoZSBjYWxsYmFj a3MgYWRkZWQgd2l0aAotICogZmVuY2VfYWRkX2NhbGxiYWNrKCkuIENhbiBiZSBjYWxsZWQgbXVs dGlwbGUgdGltZXMsIGJ1dCBzaW5jZSBhIGZlbmNlCisgKiBkbWFfZmVuY2Vfd2FpdCgpIGNhbGxz IGFuZCBydW4gYWxsIHRoZSBjYWxsYmFja3MgYWRkZWQgd2l0aAorICogZG1hX2ZlbmNlX2FkZF9j YWxsYmFjaygpLiBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBidXQgc2luY2UgYSBmZW5j ZQogICogY2FuIG9ubHkgZ28gZnJvbSB1bnNpZ25hbGVkIHRvIHNpZ25hbGVkIHN0YXRlLCBpdCB3 aWxsIG9ubHkgYmUgZWZmZWN0aXZlCiAgKiB0aGUgZmlyc3QgdGltZS4KICAqCi0gKiBVbmxpa2Ug ZmVuY2Vfc2lnbmFsLCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggZmVuY2UtPmxv Y2sgaGVsZC4KKyAqIFVubGlrZSBkbWFfZmVuY2Vfc2lnbmFsLCB0aGlzIGZ1bmN0aW9uIG11c3Qg YmUgY2FsbGVkIHdpdGggZmVuY2UtPmxvY2sgaGVsZC4KICAqLwotaW50IGZlbmNlX3NpZ25hbF9s b2NrZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK2ludCBkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgKmN1ciwgKnRtcDsK KwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjdXIsICp0bXA7CiAJaW50IHJldCA9IDA7CiAKIAlsb2Nr ZGVwX2Fzc2VydF9oZWxkKGZlbmNlLT5sb2NrKTsKQEAgLTc4LDE1ICs3OCwxNSBAQCBpbnQgZmVu Y2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCQlzbXBfbWJfX2JlZm9yZV9h dG9taWMoKTsKIAl9CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVE X0JJVCwgJmZlbmNlLT5mbGFncykpIHsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7CiAJCXJldCA9IC1FSU5WQUw7CiAK IAkJLyoKLQkJICogd2UgbWlnaHQgaGF2ZSByYWNlZCB3aXRoIHRoZSB1bmxvY2tlZCBmZW5jZV9z aWduYWwsCisJCSAqIHdlIG1pZ2h0IGhhdmUgcmFjZWQgd2l0aCB0aGUgdW5sb2NrZWQgZG1hX2Zl bmNlX3NpZ25hbCwKIAkJICogc3RpbGwgcnVuIHRocm91Z2ggYWxsIGNhbGxiYWNrcwogCQkgKi8K IAl9IGVsc2UKLQkJdHJhY2VfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpOworCQl0cmFjZV9kbWFfZmVu Y2Vfc2lnbmFsZWQoZmVuY2UpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1w LCAmZmVuY2UtPmNiX2xpc3QsIG5vZGUpIHsKIAkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsK QEAgLTk0LDE5ICs5NCwxOSBAQCBpbnQgZmVuY2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQogCX0KIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9zaWduYWxf bG9ja2VkKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQpOwogCiAvKioK LSAqIGZlbmNlX3NpZ25hbCAtIHNpZ25hbCBjb21wbGV0aW9uIG9mIGEgZmVuY2UKKyAqIGRtYV9m ZW5jZV9zaWduYWwgLSBzaWduYWwgY29tcGxldGlvbiBvZiBhIGZlbmNlCiAgKiBAZmVuY2U6IHRo ZSBmZW5jZSB0byBzaWduYWwKICAqCiAgKiBTaWduYWwgY29tcGxldGlvbiBmb3Igc29mdHdhcmUg Y2FsbGJhY2tzIG9uIGEgZmVuY2UsIHRoaXMgd2lsbCB1bmJsb2NrCi0gKiBmZW5jZV93YWl0KCkg Y2FsbHMgYW5kIHJ1biBhbGwgdGhlIGNhbGxiYWNrcyBhZGRlZCB3aXRoCi0gKiBmZW5jZV9hZGRf Y2FsbGJhY2soKS4gQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcywgYnV0IHNpbmNlIGEgZmVu Y2UKKyAqIGRtYV9mZW5jZV93YWl0KCkgY2FsbHMgYW5kIHJ1biBhbGwgdGhlIGNhbGxiYWNrcyBh ZGRlZCB3aXRoCisgKiBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKCkuIENhbiBiZSBjYWxsZWQgbXVs dGlwbGUgdGltZXMsIGJ1dCBzaW5jZSBhIGZlbmNlCiAgKiBjYW4gb25seSBnbyBmcm9tIHVuc2ln bmFsZWQgdG8gc2lnbmFsZWQgc3RhdGUsIGl0IHdpbGwgb25seSBiZSBlZmZlY3RpdmUKICAqIHRo ZSBmaXJzdCB0aW1lLgogICovCi1pbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitpbnQgZG1hX2ZlbmNlX3NpZ25hbChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCkBAIC0xMTgsMTMgKzExOCwxMyBAQCBpbnQgZmVuY2Vfc2lnbmFs KHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAJCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwogCX0KIAot CWlmICh0ZXN0X2FuZF9zZXRfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZs YWdzKSkKKwlpZiAodGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQs ICZmZW5jZS0+ZmxhZ3MpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXRyYWNlX2ZlbmNlX3NpZ25h bGVkKGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpOwogCi0JaWYgKHRl c3RfYml0KEZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0J CXN0cnVjdCBmZW5jZV9jYiAqY3VyLCAqdG1wOworCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxB R19FTkFCTEVfU0lHTkFMX0JJVCwgJmZlbmNlLT5mbGFncykpIHsKKwkJc3RydWN0IGRtYV9mZW5j ZV9jYiAqY3VyLCAqdG1wOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFn cyk7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJmZlbmNlLT5jYl9saXN0 LCBub2RlKSB7CkBAIC0xMzUsMTAgKzEzNSwxMCBAQCBpbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBm ZW5jZSAqZmVuY2UpCiAJfQogCXJldHVybiAwOwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9zaWdu YWwpOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2Vfc2lnbmFsKTsKIAogLyoqCi0gKiBmZW5jZV93 YWl0X3RpbWVvdXQgLSBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0cyBzaWduYWxlZAorICogZG1h X2ZlbmNlX3dhaXRfdGltZW91dCAtIHNsZWVwIHVudGlsIHRoZSBmZW5jZSBnZXRzIHNpZ25hbGVk CiAgKiBvciB1bnRpbCB0aW1lb3V0IGVsYXBzZXMKICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2Ug dG8gd2FpdCBvbgogICogQGludHI6CVtpbl0JaWYgdHJ1ZSwgZG8gYW4gaW50ZXJydXB0aWJsZSB3 YWl0CkBAIC0xNTQsNyArMTU0LDcgQEAgRVhQT1JUX1NZTUJPTChmZW5jZV9zaWduYWwpOwogICog ZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KICAq Lwogc2lnbmVkIGxvbmcKLWZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBi b29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCitkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiB7 CiAJc2lnbmVkIGxvbmcgcmV0OwogCkBAIC0xNjIsNzAgKzE2Miw3MSBAQCBmZW5jZV93YWl0X3Rp bWVvdXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0 KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmICh0aW1lb3V0ID09IDApCi0JCXJldHVybiBmZW5j ZV9pc19zaWduYWxlZChmZW5jZSk7CisJCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVu Y2UpOwogCi0JdHJhY2VfZmVuY2Vfd2FpdF9zdGFydChmZW5jZSk7CisJdHJhY2VfZG1hX2ZlbmNl X3dhaXRfc3RhcnQoZmVuY2UpOwogCXJldCA9IGZlbmNlLT5vcHMtPndhaXQoZmVuY2UsIGludHIs IHRpbWVvdXQpOwotCXRyYWNlX2ZlbmNlX3dhaXRfZW5kKGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVu Y2Vfd2FpdF9lbmQoZmVuY2UpOwogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNl X3dhaXRfdGltZW91dCk7CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV93YWl0X3RpbWVvdXQpOwog Ci12b2lkIGZlbmNlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCit2b2lkIGRtYV9mZW5jZV9y ZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPQotCQkJ Y29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBmZW5jZSwgcmVmY291bnQpOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0KKwkJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgZG1hX2ZlbmNlLCBy ZWZjb3VudCk7CiAKLQl0cmFjZV9mZW5jZV9kZXN0cm95KGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVu Y2VfZGVzdHJveShmZW5jZSk7CiAKIAlCVUdfT04oIWxpc3RfZW1wdHkoJmZlbmNlLT5jYl9saXN0 KSk7CiAKIAlpZiAoZmVuY2UtPm9wcy0+cmVsZWFzZSkKIAkJZmVuY2UtPm9wcy0+cmVsZWFzZShm ZW5jZSk7CiAJZWxzZQotCQlmZW5jZV9mcmVlKGZlbmNlKTsKKwkJZG1hX2ZlbmNlX2ZyZWUoZmVu Y2UpOwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9yZWxlYXNlKTsKK0VYUE9SVF9TWU1CT0woZG1h X2ZlbmNlX3JlbGVhc2UpOwogCi12b2lkIGZlbmNlX2ZyZWUoc3RydWN0IGZlbmNlICpmZW5jZSkK K3ZvaWQgZG1hX2ZlbmNlX2ZyZWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJa2ZyZWVf cmN1KGZlbmNlLCByY3UpOwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9mcmVlKTsKK0VYUE9SVF9T WU1CT0woZG1hX2ZlbmNlX2ZyZWUpOwogCiAvKioKLSAqIGZlbmNlX2VuYWJsZV9zd19zaWduYWxp bmcgLSBlbmFibGUgc2lnbmFsaW5nIG9uIGZlbmNlCisgKiBkbWFfZmVuY2VfZW5hYmxlX3N3X3Np Z25hbGluZyAtIGVuYWJsZSBzaWduYWxpbmcgb24gZmVuY2UKICAqIEBmZW5jZToJW2luXQl0aGUg ZmVuY2UgdG8gZW5hYmxlCiAgKgogICogdGhpcyB3aWxsIHJlcXVlc3QgZm9yIHN3IHNpZ25hbGlu ZyB0byBiZSBlbmFibGVkLCB0byBtYWtlIHRoZSBmZW5jZQogICogY29tcGxldGUgYXMgc29vbiBh cyBwb3NzaWJsZQogICovCi12b2lkIGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGZl bmNlICpmZW5jZSkKK3ZvaWQgZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCWlmICghdGVzdF9h bmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKSAm JgotCSAgICAhdGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3Mp KSB7Ci0JCXRyYWNlX2ZlbmNlX2VuYWJsZV9zaWduYWwoZmVuY2UpOworCWlmICghdGVzdF9hbmRf c2V0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwkJCSAgICAgICZmZW5j ZS0+ZmxhZ3MpICYmCisJICAgICF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQs ICZmZW5jZS0+ZmxhZ3MpKSB7CisJCXRyYWNlX2RtYV9mZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNl KTsKIAogCQlzcGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwogCiAJCWlmICgh ZmVuY2UtPm9wcy0+ZW5hYmxlX3NpZ25hbGluZyhmZW5jZSkpCi0JCQlmZW5jZV9zaWduYWxfbG9j a2VkKGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKIAogCQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAJfQogfQotRVhQT1JUX1NZ TUJPTChmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNl X2VuYWJsZV9zd19zaWduYWxpbmcpOwogCiAvKioKLSAqIGZlbmNlX2FkZF9jYWxsYmFjayAtIGFk ZCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmZW5jZQorICogZG1hX2ZlbmNlX2Fk ZF9jYWxsYmFjayAtIGFkZCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmZW5jZQog ICogaXMgc2lnbmFsZWQKICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gd2FpdCBvbgogICog QGNiOgkJW2luXQl0aGUgY2FsbGJhY2sgdG8gcmVnaXN0ZXIKICAqIEBmdW5jOglbaW5dCXRoZSBm dW5jdGlvbiB0byBjYWxsCiAgKgotICogY2Igd2lsbCBiZSBpbml0aWFsaXplZCBieSBmZW5jZV9h ZGRfY2FsbGJhY2ssIG5vIGluaXRpYWxpemF0aW9uCisgKiBjYiB3aWxsIGJlIGluaXRpYWxpemVk IGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2ssIG5vIGluaXRpYWxpemF0aW9uCiAgKiBieSB0aGUg Y2FsbGVyIGlzIHJlcXVpcmVkLiBBbnkgbnVtYmVyIG9mIGNhbGxiYWNrcyBjYW4gYmUgcmVnaXN0 ZXJlZAogICogdG8gYSBmZW5jZSwgYnV0IGEgY2FsbGJhY2sgY2FuIG9ubHkgYmUgcmVnaXN0ZXJl ZCB0byBvbmUgZmVuY2UgYXQgYSB0aW1lLgogICoKQEAgLTIzNCwxNSArMjM1LDE1IEBAIEVYUE9S VF9TWU1CT0woZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyk7CiAgKiAqbm90KiBjYWxsIHRoZSBj YWxsYmFjaykKICAqCiAgKiBBZGQgYSBzb2Z0d2FyZSBjYWxsYmFjayB0byB0aGUgZmVuY2UuIFNh bWUgcmVzdHJpY3Rpb25zIGFwcGx5IHRvCi0gKiByZWZjb3VudCBhcyBpdCBkb2VzIHRvIGZlbmNl X3dhaXQsIGhvd2V2ZXIgdGhlIGNhbGxlciBkb2Vzbid0IG5lZWQgdG8KKyAqIHJlZmNvdW50IGFz IGl0IGRvZXMgdG8gZG1hX2ZlbmNlX3dhaXQsIGhvd2V2ZXIgdGhlIGNhbGxlciBkb2Vzbid0IG5l ZWQgdG8KICAqIGtlZXAgYSByZWZjb3VudCB0byBmZW5jZSBhZnRlcndhcmRzOiB3aGVuIHNvZnR3 YXJlIGFjY2VzcyBpcyBlbmFibGVkLAogICogdGhlIGNyZWF0b3Igb2YgdGhlIGZlbmNlIGlzIHJl cXVpcmVkIHRvIGtlZXAgdGhlIGZlbmNlIGFsaXZlIHVudGlsCi0gKiBhZnRlciBpdCBzaWduYWxz IHdpdGggZmVuY2Vfc2lnbmFsLiBUaGUgY2FsbGJhY2sgaXRzZWxmIGNhbiBiZSBjYWxsZWQKKyAq IGFmdGVyIGl0IHNpZ25hbHMgd2l0aCBkbWFfZmVuY2Vfc2lnbmFsLiBUaGUgY2FsbGJhY2sgaXRz ZWxmIGNhbiBiZSBjYWxsZWQKICAqIGZyb20gaXJxIGNvbnRleHQuCiAgKgogICovCi1pbnQgZmVu Y2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2Is Ci0JCSAgICAgICBmZW5jZV9mdW5jX3QgZnVuYykKK2ludCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNr KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiwKKwkJICAg ICAgIGRtYV9mZW5jZV9mdW5jX3QgZnVuYykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWlu dCByZXQgPSAwOwpAQCAtMjUxLDIyICsyNTIsMjMgQEAgaW50IGZlbmNlX2FkZF9jYWxsYmFjayhz dHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiLAogCWlmIChXQVJOX09OKCFm ZW5jZSB8fCAhZnVuYykpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKHRlc3RfYml0KEZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkgeworCWlmICh0ZXN0X2JpdChETUFf RkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7CiAJCUlOSVRfTElTVF9I RUFEKCZjYi0+bm9kZSk7CiAJCXJldHVybiAtRU5PRU5UOwogCX0KIAogCXNwaW5fbG9ja19pcnFz YXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAKLQl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChG RU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKTsKKwl3YXNfc2V0ID0g dGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwkJCQkg ICAmZmVuY2UtPmZsYWdzKTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJ VCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVE X0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXJldCA9IC1FTk9FTlQ7CiAJZWxzZSBpZiAoIXdhc19z ZXQpIHsKLQkJdHJhY2VfZmVuY2VfZW5hYmxlX3NpZ25hbChmZW5jZSk7CisJCXRyYWNlX2RtYV9m ZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNlKTsKIAogCQlpZiAoIWZlbmNlLT5vcHMtPmVuYWJsZV9z aWduYWxpbmcoZmVuY2UpKSB7Ci0JCQlmZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJCWRt YV9mZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKIAkJCXJldCA9IC1FTk9FTlQ7CiAJCX0KIAl9 CkBAIC0yODAsMTAgKzI4MiwxMCBAQCBpbnQgZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBmZW5j ZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IsCiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JU X1NZTUJPTChmZW5jZV9hZGRfY2FsbGJhY2spOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfYWRk X2NhbGxiYWNrKTsKIAogLyoqCi0gKiBmZW5jZV9yZW1vdmVfY2FsbGJhY2sgLSByZW1vdmUgYSBj YWxsYmFjayBmcm9tIHRoZSBzaWduYWxpbmcgbGlzdAorICogZG1hX2ZlbmNlX3JlbW92ZV9jYWxs YmFjayAtIHJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIHNpZ25hbGluZyBsaXN0CiAgKiBAZmVu Y2U6CVtpbl0JdGhlIGZlbmNlIHRvIHdhaXQgb24KICAqIEBjYjoJCVtpbl0JdGhlIGNhbGxiYWNr IHRvIHJlbW92ZQogICoKQEAgLTI5OCw3ICszMDAsNyBAQCBFWFBPUlRfU1lNQk9MKGZlbmNlX2Fk ZF9jYWxsYmFjayk7CiAgKiB3aXRoIGEgcmVmZXJlbmNlIGhlbGQgdG8gdGhlIGZlbmNlLgogICov CiBib29sCi1mZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0 IGZlbmNlX2NiICpjYikKK2RtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAJYm9vbCByZXQ7CkBAIC0zMTMsMTUgKzMxNSwxNSBAQCBmZW5jZV9yZW1vdmVfY2FsbGJh Y2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKIAogCXJldHVybiBy ZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX3JlbW92ZV9jYWxsYmFjayk7CitFWFBPUlRfU1lN Qk9MKGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2spOwogCiBzdHJ1Y3QgZGVmYXVsdF93YWl0X2Ni IHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJhc2U7CiAJ c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogfTsKIAogc3RhdGljIHZvaWQKLWZlbmNlX2RlZmF1 bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorZG1h X2ZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRt YV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0IGRlZmF1bHRfd2FpdF9jYiAqd2FpdCA9CiAJCWNv bnRhaW5lcl9vZihjYiwgc3RydWN0IGRlZmF1bHRfd2FpdF9jYiwgYmFzZSk7CkBAIC0zMzAsNyAr MzMyLDcgQEAgZmVuY2VfZGVmYXVsdF93YWl0X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVj dCBmZW5jZV9jYiAqY2IpCiB9CiAKIC8qKgotICogZmVuY2VfZGVmYXVsdF93YWl0IC0gZGVmYXVs dCBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0cyBzaWduYWxlZAorICogZG1hX2ZlbmNlX2RlZmF1 bHRfd2FpdCAtIGRlZmF1bHQgc2xlZXAgdW50aWwgdGhlIGZlbmNlIGdldHMgc2lnbmFsZWQKICAq IG9yIHVudGlsIHRpbWVvdXQgZWxhcHNlcwogICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byB3 YWl0IG9uCiAgKiBAaW50cjoJW2luXQlpZiB0cnVlLCBkbyBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQK QEAgLTM0MCwxNCArMzQyLDE0IEBAIGZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogICogcmVtYWluaW5nIHRpbWVvdXQgaW4gamlm ZmllcyBvbiBzdWNjZXNzLgogICovCiBzaWduZWQgbG9uZwotZmVuY2VfZGVmYXVsdF93YWl0KHN0 cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK2RtYV9m ZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2ln bmVkIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgZGVmYXVsdF93YWl0X2NiIGNiOwogCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CiAJc2lnbmVkIGxvbmcgcmV0ID0gdGltZW91dDsKIAlib29sIHdhc19z ZXQ7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+Zmxh Z3MpKQorCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ ZmxhZ3MpKQogCQlyZXR1cm4gdGltZW91dDsKIAogCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5s b2NrLCBmbGFncyk7CkBAIC0zNTcsMjUgKzM1OSwyNiBAQCBmZW5jZV9kZWZhdWx0X3dhaXQoc3Ry dWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCQlnb3Rv IG91dDsKIAl9CiAKLQl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJM RV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKTsKKwl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2Jp dChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwkJCQkgICAmZmVuY2UtPmZsYWdz KTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFn cykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5m bGFncykpCiAJCWdvdG8gb3V0OwogCiAJaWYgKCF3YXNfc2V0KSB7Ci0JCXRyYWNlX2ZlbmNlX2Vu YWJsZV9zaWduYWwoZmVuY2UpOworCQl0cmFjZV9kbWFfZmVuY2VfZW5hYmxlX3NpZ25hbChmZW5j ZSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5lbmFibGVfc2lnbmFsaW5nKGZlbmNlKSkgewotCQkJ ZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7CisJCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChm ZW5jZSk7CiAJCQlnb3RvIG91dDsKIAkJfQogCX0KIAotCWNiLmJhc2UuZnVuYyA9IGZlbmNlX2Rl ZmF1bHRfd2FpdF9jYjsKKwljYi5iYXNlLmZ1bmMgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0X2Ni OwogCWNiLnRhc2sgPSBjdXJyZW50OwogCWxpc3RfYWRkKCZjYi5iYXNlLm5vZGUsICZmZW5jZS0+ Y2JfbGlzdCk7CiAKLQl3aGlsZSAoIXRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAm ZmVuY2UtPmZsYWdzKSAmJiByZXQgPiAwKSB7CisJd2hpbGUgKCF0ZXN0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpICYmIHJldCA+IDApIHsKIAkJaWYgKGlu dHIpCiAJCQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CiAJCWVsc2UK QEAgLTM5NywyMyArNDAwLDIzIEBAIGZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmZl bmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZShmZW5jZS0+bG9jaywgZmxhZ3MpOwogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9M KGZlbmNlX2RlZmF1bHRfd2FpdCk7CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9kZWZhdWx0X3dh aXQpOwogCiBzdGF0aWMgYm9vbAotZmVuY2VfdGVzdF9zaWduYWxlZF9hbnkoc3RydWN0IGZlbmNl ICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCkKK2RtYV9mZW5jZV90ZXN0X3NpZ25hbGVkX2FueShz dHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCkKIHsKIAlpbnQgaTsKIAog CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBm ZW5jZXNbaV07Ci0JCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNl LT5mbGFncykpCisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gZmVuY2VzW2ldOworCQlpZiAo dGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJ CXJldHVybiB0cnVlOwogCX0KIAlyZXR1cm4gZmFsc2U7CiB9CiAKIC8qKgotICogZmVuY2Vfd2Fp dF9hbnlfdGltZW91dCAtIHNsZWVwIHVudGlsIGFueSBmZW5jZSBnZXRzIHNpZ25hbGVkCisgKiBk bWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dCAtIHNsZWVwIHVudGlsIGFueSBmZW5jZSBnZXRzIHNp Z25hbGVkCiAgKiBvciB1bnRpbCB0aW1lb3V0IGVsYXBzZXMKICAqIEBmZW5jZXM6CVtpbl0JYXJy YXkgb2YgZmVuY2VzIHRvIHdhaXQgb24KICAqIEBjb3VudDoJW2luXQludW1iZXIgb2YgZmVuY2Vz IHRvIHdhaXQgb24KQEAgLTQyOSw3ICs0MzIsNyBAQCBmZW5jZV90ZXN0X3NpZ25hbGVkX2FueShz dHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50KQogICogZmVuY2UgbWlnaHQgYmUg ZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KICAq Lwogc2lnbmVkIGxvbmcKLWZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVu Y2VzLCB1aW50MzJfdCBjb3VudCwKK2RtYV9mZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAogCQkgICAgICAgYm9vbCBpbnRyLCBz aWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBkZWZhdWx0X3dhaXRfY2IgKmNiOwpAQCAt NDQxLDcgKzQ0NCw3IEBAIGZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVu Y2VzLCB1aW50MzJfdCBjb3VudCwKIAogCWlmICh0aW1lb3V0ID09IDApIHsKIAkJZm9yIChpID0g MDsgaSA8IGNvdW50OyArK2kpCi0JCQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2VzW2ldKSkK KwkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2VzW2ldKSkKIAkJCQlyZXR1cm4gMTsK IAogCQlyZXR1cm4gMDsKQEAgLTQ1NCwxNiArNDU3LDE2IEBAIGZlbmNlX3dhaXRfYW55X3RpbWVv dXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKIAl9CiAKIAlmb3IgKGkg PSAwOyBpIDwgY291bnQ7ICsraSkgewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gZmVuY2VzW2ld OworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IGZlbmNlc1tpXTsKIAotCQlpZiAoZmVuY2Ut Pm9wcy0+d2FpdCAhPSBmZW5jZV9kZWZhdWx0X3dhaXQpIHsKKwkJaWYgKGZlbmNlLT5vcHMtPndh aXQgIT0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCkgewogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCWdv dG8gZmVuY2Vfcm1fY2I7CiAJCX0KIAogCQljYltpXS50YXNrID0gY3VycmVudDsKLQkJaWYgKGZl bmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJmNiW2ldLmJhc2UsCi0JCQkJICAgICAgIGZlbmNlX2Rl ZmF1bHRfd2FpdF9jYikpIHsKKwkJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZj YltpXS5iYXNlLAorCQkJCSAgICAgICBkbWFfZmVuY2VfZGVmYXVsdF93YWl0X2NiKSkgewogCQkJ LyogVGhpcyBmZW5jZSBpcyBhbHJlYWR5IHNpZ25hbGVkICovCiAJCQlnb3RvIGZlbmNlX3JtX2Ni OwogCQl9CkBAIC00NzUsNyArNDc4LDcgQEAgZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3Qg ZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAogCQllbHNlCiAJCQlzZXRfY3VycmVudF9z dGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7CiAKLQkJaWYgKGZlbmNlX3Rlc3Rfc2lnbmFsZWRf YW55KGZlbmNlcywgY291bnQpKQorCQlpZiAoZG1hX2ZlbmNlX3Rlc3Rfc2lnbmFsZWRfYW55KGZl bmNlcywgY291bnQpKQogCQkJYnJlYWs7CiAKIAkJcmV0ID0gc2NoZWR1bGVfdGltZW91dChyZXQp OwpAQCAtNDg4LDMzICs0OTEsMzMgQEAgZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVu Y2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAogCiBmZW5jZV9ybV9jYjoKIAl3aGlsZSAoaS0t ID4gMCkKLQkJZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKGZlbmNlc1tpXSwgJmNiW2ldLmJhc2UpOwor CQlkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKGZlbmNlc1tpXSwgJmNiW2ldLmJhc2UpOwogCiBl cnJfZnJlZV9jYjoKIAlrZnJlZShjYik7CiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJP TChmZW5jZV93YWl0X2FueV90aW1lb3V0KTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX3dhaXRf YW55X3RpbWVvdXQpOwogCiAvKioKLSAqIGZlbmNlX2luaXQgLSBJbml0aWFsaXplIGEgY3VzdG9t IGZlbmNlLgorICogZG1hX2ZlbmNlX2luaXQgLSBJbml0aWFsaXplIGEgY3VzdG9tIGZlbmNlLgog ICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byBpbml0aWFsaXplCi0gKiBAb3BzOglbaW5dCXRo ZSBmZW5jZV9vcHMgZm9yIG9wZXJhdGlvbnMgb24gdGhpcyBmZW5jZQorICogQG9wczoJW2luXQl0 aGUgZG1hX2ZlbmNlX29wcyBmb3Igb3BlcmF0aW9ucyBvbiB0aGlzIGZlbmNlCiAgKiBAbG9jazoJ W2luXQl0aGUgaXJxc2FmZSBzcGlubG9jayB0byB1c2UgZm9yIGxvY2tpbmcgdGhpcyBmZW5jZQog ICogQGNvbnRleHQ6CVtpbl0JdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRoaXMgZmVuY2UgaXMgcnVu IG9uCiAgKiBAc2Vxbm86CVtpbl0JYSBsaW5lYXIgaW5jcmVhc2luZyBzZXF1ZW5jZSBudW1iZXIg Zm9yIHRoaXMgY29udGV4dAogICoKICAqIEluaXRpYWxpemVzIGFuIGFsbG9jYXRlZCBmZW5jZSwg dGhlIGNhbGxlciBkb2Vzbid0IGhhdmUgdG8ga2VlcCBpdHMKICAqIHJlZmNvdW50IGFmdGVyIGNv bW1pdHRpbmcgd2l0aCB0aGlzIGZlbmNlLCBidXQgaXQgd2lsbCBuZWVkIHRvIGhvbGQgYQotICog cmVmY291bnQgYWdhaW4gaWYgZmVuY2Vfb3BzLmVuYWJsZV9zaWduYWxpbmcgZ2V0cyBjYWxsZWQu IFRoaXMgY2FuCisgKiByZWZjb3VudCBhZ2FpbiBpZiBkbWFfZmVuY2Vfb3BzLmVuYWJsZV9zaWdu YWxpbmcgZ2V0cyBjYWxsZWQuIFRoaXMgY2FuCiAgKiBiZSB1c2VkIGZvciBvdGhlciBpbXBsZW1l bnRpbmcgb3RoZXIgdHlwZXMgb2YgZmVuY2UuCiAgKgogICogY29udGV4dCBhbmQgc2Vxbm8gYXJl IHVzZWQgZm9yIGVhc3kgY29tcGFyaXNvbiBiZXR3ZWVuIGZlbmNlcywgYWxsb3dpbmcKLSAqIHRv IGNoZWNrIHdoaWNoIGZlbmNlIGlzIGxhdGVyIGJ5IHNpbXBseSB1c2luZyBmZW5jZV9sYXRlci4K KyAqIHRvIGNoZWNrIHdoaWNoIGZlbmNlIGlzIGxhdGVyIGJ5IHNpbXBseSB1c2luZyBkbWFfZmVu Y2VfbGF0ZXIuCiAgKi8KIHZvaWQKLWZlbmNlX2luaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgY29u c3Qgc3RydWN0IGZlbmNlX29wcyAqb3BzLAorZG1hX2ZlbmNlX2luaXQoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpvcHMsCiAJICAgICBzcGlubG9j a190ICpsb2NrLCB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8pCiB7CiAJQlVHX09OKCFsb2Nr KTsKQEAgLTUyOSw2ICs1MzIsNiBAQCBmZW5jZV9pbml0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNv bnN0IHN0cnVjdCBmZW5jZV9vcHMgKm9wcywKIAlmZW5jZS0+c2Vxbm8gPSBzZXFubzsKIAlmZW5j ZS0+ZmxhZ3MgPSAwVUw7CiAKLQl0cmFjZV9mZW5jZV9pbml0KGZlbmNlKTsKKwl0cmFjZV9kbWFf ZmVuY2VfaW5pdChmZW5jZSk7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX2luaXQpOworRVhQT1JU X1NZTUJPTChkbWFfZmVuY2VfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvcmVz ZXJ2YXRpb24uYyBiL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCmluZGV4IDgyZGU1OWY3 Y2JiZC4uN2VkNTZmM2VkZmI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRp b24uYworKysgYi9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYwpAQCAtMTAyLDE3ICsxMDIs MTcgQEAgRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQpOwog c3RhdGljIHZvaWQKIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2lucGxhY2Uoc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJCSAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3RfbGlzdCAqZm9iaiwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorCQkJCSAg ICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXUzMiBpOwogCi0JZmVuY2VfZ2V0KGZl bmNlKTsKKwlkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAogCXByZWVtcHRfZGlzYWJsZSgpOwogCXdy aXRlX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZm9iai0+ c2hhcmVkX2NvdW50OyArK2kpIHsKLQkJc3RydWN0IGZlbmNlICpvbGRfZmVuY2U7CisJCXN0cnVj dCBkbWFfZmVuY2UgKm9sZF9mZW5jZTsKIAogCQlvbGRfZmVuY2UgPSByY3VfZGVyZWZlcmVuY2Vf cHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKIAkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxk KG9iaikpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVk X2lucGxhY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJd3JpdGVfc2VxY291 bnRfZW5kKCZvYmotPnNlcSk7CiAJCQlwcmVlbXB0X2VuYWJsZSgpOwogCi0JCQlmZW5jZV9wdXQo b2xkX2ZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQob2xkX2ZlbmNlKTsKIAkJCXJldHVybjsKIAkJ fQogCX0KQEAgLTE0MywxMiArMTQzLDEyIEBAIHN0YXRpYyB2b2lkCiByZXNlcnZhdGlvbl9vYmpl Y3RfYWRkX3NoYXJlZF9yZXBsYWNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJ CQkgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwKIAkJCQkgICAgICBz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmosCi0JCQkJICAgICAgc3RydWN0IGZl bmNlICpmZW5jZSkKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAl1bnNp Z25lZCBpOwotCXN0cnVjdCBmZW5jZSAqb2xkX2ZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpvbGRfZmVuY2UgPSBOVUxMOwogCi0JZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2Vf Z2V0KGZlbmNlKTsKIAogCWlmICghb2xkKSB7CiAJCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hh cmVkWzBdLCBmZW5jZSk7CkBAIC0xNjUsNyArMTY1LDcgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2Fk ZF9zaGFyZWRfcmVwbGFjZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJZm9iai0+ c2hhcmVkX2NvdW50ID0gb2xkLT5zaGFyZWRfY291bnQ7CiAKIAlmb3IgKGkgPSAwOyBpIDwgb2xk LT5zaGFyZWRfY291bnQ7ICsraSkgewotCQlzdHJ1Y3QgZmVuY2UgKmNoZWNrOworCQlzdHJ1Y3Qg ZG1hX2ZlbmNlICpjaGVjazsKIAogCQljaGVjayA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQo b2xkLT5zaGFyZWRbaV0sCiAJCQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKQEAg LTE5Niw3ICsxOTYsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9yZXBsYWNlKHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJa2ZyZWVfcmN1KG9sZCwgcmN1KTsKIAog CWlmIChvbGRfZmVuY2UpCi0JCWZlbmNlX3B1dChvbGRfZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0 KG9sZF9mZW5jZSk7CiB9CiAKIC8qKgpAQCAtMjA4LDcgKzIwOCw3IEBAIHJlc2VydmF0aW9uX29i amVjdF9hZGRfc2hhcmVkX3JlcGxhY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAog ICogcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKCkgaGFzIGJlZW4gY2FsbGVkLgog ICovCiB2b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkJIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQkJCSBz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xp c3QgKm9sZCwgKmZvYmogPSBvYmotPnN0YWdlZDsKIApAQCAtMjMxLDkgKzIzMSw5IEBAIEVYUE9S VF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UpOwogICogQWRkIGEg ZmVuY2UgdG8gdGhlIGV4Y2x1c2l2ZSBzbG90LiAgVGhlIG9iai0+bG9jayBtdXN0IGJlIGhlbGQu CiAgKi8KIHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJ CQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IGZlbmNlICpvbGRf ZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wob2JqKTsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpvbGRfZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wob2JqKTsKIAlzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZDsKIAl1MzIgaSA9IDA7CiAKQEAgLTI0Miw3 ICsyNDIsNyBAQCB2b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJCWkgPSBvbGQtPnNoYXJlZF9jb3VudDsKIAogCWlm IChmZW5jZSkKLQkJZmVuY2VfZ2V0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAK IAlwcmVlbXB0X2Rpc2FibGUoKTsKIAl3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwpA QCAtMjU1LDExICsyNTUsMTEgQEAgdm9pZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVu Y2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCiAJLyogaW5wbGFjZSB1cGRhdGUs IG5vIHNoYXJlZCBmZW5jZXMgKi8KIAl3aGlsZSAoaS0tKQotCQlmZW5jZV9wdXQocmN1X2RlcmVm ZXJlbmNlX3Byb3RlY3RlZChvbGQtPnNoYXJlZFtpXSwKKwkJZG1hX2ZlbmNlX3B1dChyY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAogCQkJCQkJcmVzZXJ2YXRpb25fb2Jq ZWN0X2hlbGQob2JqKSkpOwogCiAJaWYgKG9sZF9mZW5jZSkKLQkJZmVuY2VfcHV0KG9sZF9mZW5j ZSk7CisJCWRtYV9mZW5jZV9wdXQob2xkX2ZlbmNlKTsKIH0KIEVYUE9SVF9TWU1CT0wocmVzZXJ2 YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKTsKIApAQCAtMjc2LDEyICsyNzYsMTIgQEAgRVhQ T1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UpOwogICogWmVybyBv ciAtZXJybm8KICAqLwogaW50IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoqcGZl bmNlX2V4Y2wsCisJCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKnBmZW5jZV9leGNsLAogCQkJ CSAgICAgIHVuc2lnbmVkICpwc2hhcmVkX2NvdW50LAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAq Kipwc2hhcmVkKQorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCkKIHsKLQlz dHJ1Y3QgZmVuY2UgKipzaGFyZWQgPSBOVUxMOwotCXN0cnVjdCBmZW5jZSAqZmVuY2VfZXhjbDsK KwlzdHJ1Y3QgZG1hX2ZlbmNlICoqc2hhcmVkID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZV9leGNsOwogCXVuc2lnbmVkIGludCBzaGFyZWRfY291bnQ7CiAJaW50IHJldCA9IDE7CiAK QEAgLTI5NiwxMiArMjk2LDEyIEBAIGludCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19y Y3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQlzZXEgPSByZWFkX3NlcWNvdW50 X2JlZ2luKCZvYmotPnNlcSk7CiAKIAkJZmVuY2VfZXhjbCA9IHJjdV9kZXJlZmVyZW5jZShvYmot PmZlbmNlX2V4Y2wpOwotCQlpZiAoZmVuY2VfZXhjbCAmJiAhZmVuY2VfZ2V0X3JjdShmZW5jZV9l eGNsKSkKKwkJaWYgKGZlbmNlX2V4Y2wgJiYgIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wp KQogCQkJZ290byB1bmxvY2s7CiAKIAkJZm9iaiA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNl KTsKIAkJaWYgKGZvYmopIHsKLQkJCXN0cnVjdCBmZW5jZSAqKm5zaGFyZWQ7CisJCQlzdHJ1Y3Qg ZG1hX2ZlbmNlICoqbnNoYXJlZDsKIAkJCXNpemVfdCBzeiA9IHNpemVvZigqc2hhcmVkKSAqIGZv YmotPnNoYXJlZF9tYXg7CiAKIAkJCW5zaGFyZWQgPSBrcmVhbGxvYyhzaGFyZWQsIHN6LApAQCAt MzIyLDE1ICszMjIsMTUgQEAgaW50IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAKIAkJCWZvciAoaSA9IDA7IGkgPCBzaGFy ZWRfY291bnQ7ICsraSkgewogCQkJCXNoYXJlZFtpXSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5z aGFyZWRbaV0pOwotCQkJCWlmICghZmVuY2VfZ2V0X3JjdShzaGFyZWRbaV0pKQorCQkJCWlmICgh ZG1hX2ZlbmNlX2dldF9yY3Uoc2hhcmVkW2ldKSkKIAkJCQkJYnJlYWs7CiAJCQl9CiAJCX0KIAog CQlpZiAoaSAhPSBzaGFyZWRfY291bnQgfHwgcmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEs IHNlcSkpIHsKIAkJCXdoaWxlIChpLS0pCi0JCQkJZmVuY2VfcHV0KHNoYXJlZFtpXSk7Ci0JCQlm ZW5jZV9wdXQoZmVuY2VfZXhjbCk7CisJCQkJZG1hX2ZlbmNlX3B1dChzaGFyZWRbaV0pOworCQkJ ZG1hX2ZlbmNlX3B1dChmZW5jZV9leGNsKTsKIAkJCWdvdG8gdW5sb2NrOwogCQl9CiAKQEAgLTM2 OCw3ICszNjgsNyBAQCBsb25nIHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJCQkJIGJvb2wgd2FpdF9hbGwsIGJvb2wg aW50ciwKIAkJCQkJIHVuc2lnbmVkIGxvbmcgdGltZW91dCkKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZl bmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXVuc2lnbmVkIHNlcSwgc2hhcmVkX2Nv dW50LCBpID0gMDsKIAlsb25nIHJldCA9IHRpbWVvdXQ7CiAKQEAgLTM4OSwxNiArMzg5LDE3IEBA IGxvbmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdCAqb2JqLAogCQkJc2hhcmVkX2NvdW50ID0gZm9iai0+c2hhcmVkX2NvdW50Owog CiAJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgewotCQkJc3RydWN0IGZlbmNl ICpsZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVjdCBk bWFfZmVuY2UgKmxmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFyZWRbaV0pOwogCi0J CQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZsZmVuY2UtPmZsYWdzKSkK KwkJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCisJCQkJICAgICAm bGZlbmNlLT5mbGFncykpCiAJCQkJY29udGludWU7CiAKLQkJCWlmICghZmVuY2VfZ2V0X3JjdShs ZmVuY2UpKQorCQkJaWYgKCFkbWFfZmVuY2VfZ2V0X3JjdShsZmVuY2UpKQogCQkJCWdvdG8gdW5s b2NrX3JldHJ5OwogCi0JCQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQobGZlbmNlKSkgewotCQkJCWZl bmNlX3B1dChsZmVuY2UpOworCQkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChsZmVuY2UpKSB7 CisJCQkJZG1hX2ZlbmNlX3B1dChsZmVuY2UpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCkBAIC00 MDgsMTUgKzQwOSwxNiBAQCBsb25nIHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1 KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAl9CiAKIAlpZiAoIXNoYXJlZF9jb3Vu dCkgewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5m ZW5jZV9leGNsKTsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VfZXhjbCA9IHJjdV9kZXJlZmVy ZW5jZShvYmotPmZlbmNlX2V4Y2wpOwogCiAJCWlmIChmZW5jZV9leGNsICYmCi0JCSAgICAhdGVz dF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZV9leGNsLT5mbGFncykpIHsKLQkJ CWlmICghZmVuY2VfZ2V0X3JjdShmZW5jZV9leGNsKSkKKwkJICAgICF0ZXN0X2JpdChETUFfRkVO Q0VfRkxBR19TSUdOQUxFRF9CSVQsCisJCQkgICAgICAmZmVuY2VfZXhjbC0+ZmxhZ3MpKSB7CisJ CQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wpKQogCQkJCWdvdG8gdW5sb2NrX3Jl dHJ5OwogCi0JCQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2VfZXhjbCkpCi0JCQkJZmVuY2Vf cHV0KGZlbmNlX2V4Y2wpOworCQkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZV9leGNs KSkKKwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOwogCQkJZWxzZQogCQkJCWZlbmNlID0g ZmVuY2VfZXhjbDsKIAkJfQpAQCAtNDI1LDEyICs0MjcsMTIgQEAgbG9uZyByZXNlcnZhdGlvbl9v YmplY3Rfd2FpdF90aW1lb3V0X3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJ cmN1X3JlYWRfdW5sb2NrKCk7CiAJaWYgKGZlbmNlKSB7CiAJCWlmIChyZWFkX3NlcWNvdW50X3Jl dHJ5KCZvYmotPnNlcSwgc2VxKSkgewotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5j ZV9wdXQoZmVuY2UpOwogCQkJZ290byByZXRyeTsKIAkJfQogCi0JCXJldCA9IGZlbmNlX3dhaXRf dGltZW91dChmZW5jZSwgaW50ciwgcmV0KTsKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0ID0g ZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgaW50ciwgcmV0KTsKKwkJZG1hX2ZlbmNlX3B1 dChmZW5jZSk7CiAJCWlmIChyZXQgPiAwICYmIHdhaXRfYWxsICYmIChpICsgMSA8IHNoYXJlZF9j b3VudCkpCiAJCQlnb3RvIHJldHJ5OwogCX0KQEAgLTQ0NCwxOCArNDQ2LDE4IEBAIEVYUE9SVF9T WU1CT0xfR1BMKHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KTsKIAogCiBzdGF0 aWMgaW5saW5lIGludAotcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKHN0 cnVjdCBmZW5jZSAqcGFzc2VkX2ZlbmNlKQorcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFs ZWRfc2luZ2xlKHN0cnVjdCBkbWFfZmVuY2UgKnBhc3NlZF9mZW5jZSkKIHsKLQlzdHJ1Y3QgZmVu Y2UgKmZlbmNlLCAqbGZlbmNlID0gcGFzc2VkX2ZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlLCAqbGZlbmNlID0gcGFzc2VkX2ZlbmNlOwogCWludCByZXQgPSAxOwogCi0JaWYgKCF0ZXN0 X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmxmZW5jZS0+ZmxhZ3MpKSB7Ci0JCWZlbmNl ID0gZmVuY2VfZ2V0X3JjdShsZmVuY2UpOworCWlmICghdGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdf U0lHTkFMRURfQklULCAmbGZlbmNlLT5mbGFncykpIHsKKwkJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0 X3JjdShsZmVuY2UpOwogCQlpZiAoIWZlbmNlKQogCQkJcmV0dXJuIC0xOwogCi0JCXJldCA9ICEh ZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlyZXQgPSAh IWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwog CX0KIAlyZXR1cm4gcmV0OwogfQpAQCAtNDkyLDcgKzQ5NCw3IEBAIGJvb2wgcmVzZXJ2YXRpb25f b2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwK IAkJCXNoYXJlZF9jb3VudCA9IGZvYmotPnNoYXJlZF9jb3VudDsKIAogCQlmb3IgKGkgPSAwOyBp IDwgc2hhcmVkX2NvdW50OyArK2kpIHsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSByY3VfZGVy ZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0g cmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CiAKIAkJCXJldCA9IHJlc2VydmF0aW9u X29iamVjdF90ZXN0X3NpZ25hbGVkX3NpbmdsZShmZW5jZSk7CiAJCQlpZiAocmV0IDwgMCkKQEAg LTUwNiw3ICs1MDgsNyBAQCBib29sIHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3Jj dShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJfQogCiAJaWYgKCFzaGFyZWRfY291 bnQpIHsKLQkJc3RydWN0IGZlbmNlICpmZW5jZV9leGNsID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ ZmVuY2VfZXhjbCk7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZl cmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKIAogCQlpZiAoZmVuY2VfZXhjbCkgewogCQkJcmV0ID0g cmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKApkaWZmIC0tZ2l0IGEvZHJp dmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMgYi9kcml2ZXJzL2RtYS1idWYvc2Vxbm8tZmVuY2Uu YwppbmRleCA3MTEyN2Y4ZjE2MjYuLmY0NzExMmE2NDc2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9k bWEtYnVmL3NlcW5vLWZlbmNlLmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMK QEAgLTIxLDM1ICsyMSwzNSBAQAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUg PGxpbnV4L3NlcW5vLWZlbmNlLmg+CiAKLXN0YXRpYyBjb25zdCBjaGFyICpzZXFub19mZW5jZV9n ZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpz ZXFub19mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJ c3RydWN0IHNlcW5vX2ZlbmNlICpzZXFub19mZW5jZSA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsK IAogCXJldHVybiBzZXFub19mZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25hbWUoZmVuY2UpOwogfQog Ci1zdGF0aWMgY29uc3QgY2hhciAqc2Vxbm9fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0 IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpzZXFub19mZW5jZV9nZXRfdGltZWxp bmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3Qgc2Vxbm9fZmVuY2Ug KnNlcW5vX2ZlbmNlID0gdG9fc2Vxbm9fZmVuY2UoZmVuY2UpOwogCiAJcmV0dXJuIHNlcW5vX2Zl bmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGZlbmNlKTsKIH0KIAotc3RhdGljIGJvb2wgc2Vx bm9fZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgc2Vx bm9fZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3Qg c2Vxbm9fZmVuY2UgKnNlcW5vX2ZlbmNlID0gdG9fc2Vxbm9fZmVuY2UoZmVuY2UpOwogCiAJcmV0 dXJuIHNlcW5vX2ZlbmNlLT5vcHMtPmVuYWJsZV9zaWduYWxpbmcoZmVuY2UpOwogfQogCi1zdGF0 aWMgYm9vbCBzZXFub19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wg c2Vxbm9fc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5v X2ZlbmNlICpzZXFub19mZW5jZSA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBz ZXFub19mZW5jZS0+b3BzLT5zaWduYWxlZCAmJiBzZXFub19mZW5jZS0+b3BzLT5zaWduYWxlZChm ZW5jZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlcW5vX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5j ZSkKK3N0YXRpYyB2b2lkIHNlcW5vX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpmID0gdG9fc2Vxbm9fZmVuY2UoZmVuY2UpOwogCkBAIC01 NywxOCArNTcsMTggQEAgc3RhdGljIHZvaWQgc2Vxbm9fcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZl bmNlKQogCWlmIChmLT5vcHMtPnJlbGVhc2UpCiAJCWYtPm9wcy0+cmVsZWFzZShmZW5jZSk7CiAJ ZWxzZQotCQlmZW5jZV9mcmVlKCZmLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX2ZyZWUoJmYtPmJhc2Up OwogfQogCi1zdGF0aWMgc2lnbmVkIGxvbmcgc2Vxbm9fd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNl LCBib29sIGludHIsCi0JCQkJc2lnbmVkIGxvbmcgdGltZW91dCkKK3N0YXRpYyBzaWduZWQgbG9u ZyBzZXFub193YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGludHIsCisJCQkgICAg ICBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBzZXFub19mZW5jZSAqZiA9IHRvX3Nl cW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBmLT5vcHMtPndhaXQoZmVuY2UsIGludHIsIHRp bWVvdXQpOwogfQogCi1jb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHNlcW5vX2ZlbmNlX29wcyA9IHsK K2NvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHNlcW5vX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2Ry aXZlcl9uYW1lID0gc2Vxbm9fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVf bmFtZSA9IHNlcW5vX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5n ID0gc2Vxbm9fZW5hYmxlX3NpZ25hbGluZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9z d19zeW5jLmMgYi9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jCmluZGV4IDYyZThlNmRjNzk1My4u ODJlMGNhNGRkMGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jCisrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9zd19zeW5jLmMKQEAgLTY4LDkgKzY4LDkgQEAgc3RydWN0IHN3X3N5 bmNfY3JlYXRlX2ZlbmNlX2RhdGEgewogCiAjZGVmaW5lIFNXX1NZTkNfSU9DX0lOQwkJCV9JT1co U1dfU1lOQ19JT0NfTUFHSUMsIDEsIF9fdTMyKQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNl X29wcyB0aW1lbGluZV9mZW5jZV9vcHM7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9v cHMgdGltZWxpbmVfZmVuY2Vfb3BzOwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBzeW5jX3B0ICpm ZW5jZV90b19zeW5jX3B0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0cnVj dCBzeW5jX3B0ICpkbWFfZmVuY2VfdG9fc3luY19wdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkK IHsKIAlpZiAoZmVuY2UtPm9wcyAhPSAmdGltZWxpbmVfZmVuY2Vfb3BzKQogCQlyZXR1cm4gTlVM TDsKQEAgLTkzLDcgKzkzLDcgQEAgc3RydWN0IHN5bmNfdGltZWxpbmUgKnN5bmNfdGltZWxpbmVf Y3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUpCiAJCXJldHVybiBOVUxMOwogCiAJa3JlZl9pbml0KCZv YmotPmtyZWYpOwotCW9iai0+Y29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJb2Jq LT5jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJc3RybGNweShvYmotPm5h bWUsIG5hbWUsIHNpemVvZihvYmotPm5hbWUpKTsKIAogCUlOSVRfTElTVF9IRUFEKCZvYmotPmNo aWxkX2xpc3RfaGVhZCk7CkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RhdGljIHZvaWQgc3luY190aW1l bGluZV9zaWduYWwoc3RydWN0IHN5bmNfdGltZWxpbmUgKm9iaiwgdW5zaWduZWQgaW50IGluYykK IAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwdCwgbmV4dCwgJm9iai0+YWN0aXZlX2xpc3Rf aGVhZCwKIAkJCQkgYWN0aXZlX2xpc3QpIHsKLQkJaWYgKGZlbmNlX2lzX3NpZ25hbGVkX2xvY2tl ZCgmcHQtPmJhc2UpKQorCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZCgmcHQtPmJh c2UpKQogCQkJbGlzdF9kZWxfaW5pdCgmcHQtPmFjdGl2ZV9saXN0KTsKIAl9CiAKQEAgLTE3OSwz MCArMTc5LDMwIEBAIHN0YXRpYyBzdHJ1Y3Qgc3luY19wdCAqc3luY19wdF9jcmVhdGUoc3RydWN0 IHN5bmNfdGltZWxpbmUgKm9iaiwgaW50IHNpemUsCiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmb2Jq LT5jaGlsZF9saXN0X2xvY2ssIGZsYWdzKTsKIAlzeW5jX3RpbWVsaW5lX2dldChvYmopOwotCWZl bmNlX2luaXQoJnB0LT5iYXNlLCAmdGltZWxpbmVfZmVuY2Vfb3BzLCAmb2JqLT5jaGlsZF9saXN0 X2xvY2ssCi0JCSAgIG9iai0+Y29udGV4dCwgdmFsdWUpOworCWRtYV9mZW5jZV9pbml0KCZwdC0+ YmFzZSwgJnRpbWVsaW5lX2ZlbmNlX29wcywgJm9iai0+Y2hpbGRfbGlzdF9sb2NrLAorCQkgICAg ICAgb2JqLT5jb250ZXh0LCB2YWx1ZSk7CiAJbGlzdF9hZGRfdGFpbCgmcHQtPmNoaWxkX2xpc3Qs ICZvYmotPmNoaWxkX2xpc3RfaGVhZCk7CiAJSU5JVF9MSVNUX0hFQUQoJnB0LT5hY3RpdmVfbGlz dCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb2JqLT5jaGlsZF9saXN0X2xvY2ssIGZsYWdz KTsKIAlyZXR1cm4gcHQ7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp0aW1lbGluZV9mZW5jZV9n ZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICp0 aW1lbGluZV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 CiAJcmV0dXJuICJzd19zeW5jIjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnRpbWVsaW5lX2Zl bmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3Qg Y2hhciAqdGltZWxpbmVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCiB7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGZlbmNlX3BhcmVudChm ZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQo ZmVuY2UpOwogCiAJcmV0dXJuIHBhcmVudC0+bmFtZTsKIH0KIAotc3RhdGljIHZvaWQgdGltZWxp bmVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIHZvaWQgdGltZWxp bmVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3Qgc3lu Y19wdCAqcHQgPSBmZW5jZV90b19zeW5jX3B0KGZlbmNlKTsKLQlzdHJ1Y3Qgc3luY190aW1lbGlu ZSAqcGFyZW50ID0gZmVuY2VfcGFyZW50KGZlbmNlKTsKKwlzdHJ1Y3Qgc3luY19wdCAqcHQgPSBk bWFfZmVuY2VfdG9fc3luY19wdChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVu dCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlz cGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwpAQCAtMjEyLDIwICsyMTIsMjAg QEAgc3RhdGljIHZvaWQgdGltZWxpbmVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNl KQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZmVuY2UtPmxvY2ssIGZsYWdzKTsKIAogCXN5bmNf dGltZWxpbmVfcHV0KHBhcmVudCk7Ci0JZmVuY2VfZnJlZShmZW5jZSk7CisJZG1hX2ZlbmNlX2Zy ZWUoZmVuY2UpOwogfQogCi1zdGF0aWMgYm9vbCB0aW1lbGluZV9mZW5jZV9zaWduYWxlZChzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgdGltZWxpbmVfZmVuY2Vfc2lnbmFsZWQoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9 IGZlbmNlX3BhcmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRt YV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCiAJcmV0dXJuIChmZW5jZS0+c2Vxbm8gPiBwYXJlbnQt PnZhbHVlKSA/IGZhbHNlIDogdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgdGltZWxpbmVfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgdGltZWxp bmVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlz dHJ1Y3Qgc3luY19wdCAqcHQgPSBmZW5jZV90b19zeW5jX3B0KGZlbmNlKTsKLQlzdHJ1Y3Qgc3lu Y190aW1lbGluZSAqcGFyZW50ID0gZmVuY2VfcGFyZW50KGZlbmNlKTsKKwlzdHJ1Y3Qgc3luY19w dCAqcHQgPSBkbWFfZmVuY2VfdG9fc3luY19wdChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxp bmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQoZmVuY2UpOwogCiAJaWYgKHRpbWVsaW5lX2Zl bmNlX3NpZ25hbGVkKGZlbmNlKSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMjM0LDI2ICsyMzQsMjYg QEAgc3RhdGljIGJvb2wgdGltZWxpbmVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCB0aW1lbGluZV9mZW5j ZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwKK3N0YXRpYyB2b2lkIHRpbWVsaW5lX2Zl bmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJCQkgICAgY2hhciAqc3Ry LCBpbnQgc2l6ZSkKIHsKIAlzbnByaW50ZihzdHIsIHNpemUsICIlZCIsIGZlbmNlLT5zZXFubyk7 CiB9CiAKLXN0YXRpYyB2b2lkIHRpbWVsaW5lX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1 Y3QgZmVuY2UgKmZlbmNlLAorc3RhdGljIHZvaWQgdGltZWxpbmVfZmVuY2VfdGltZWxpbmVfdmFs dWVfc3RyKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkJCQkgICAgIGNoYXIgKnN0ciwgaW50 IHNpemUpCiB7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGZlbmNlX3BhcmVudChm ZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5jZV9wYXJlbnQo ZmVuY2UpOwogCiAJc25wcmludGYoc3RyLCBzaXplLCAiJWQiLCBwYXJlbnQtPnZhbHVlKTsKIH0K IAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgdGltZWxpbmVfZmVuY2Vfb3BzID0gewor c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHRpbWVsaW5lX2ZlbmNlX29wcyA9IHsK IAkuZ2V0X2RyaXZlcl9uYW1lID0gdGltZWxpbmVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5n ZXRfdGltZWxpbmVfbmFtZSA9IHRpbWVsaW5lX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5l bmFibGVfc2lnbmFsaW5nID0gdGltZWxpbmVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKIAkuc2ln bmFsZWQgPSB0aW1lbGluZV9mZW5jZV9zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRf d2FpdCwKKwkud2FpdCA9IGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSB0aW1l bGluZV9mZW5jZV9yZWxlYXNlLAogCS5mZW5jZV92YWx1ZV9zdHIgPSB0aW1lbGluZV9mZW5jZV92 YWx1ZV9zdHIsCiAJLnRpbWVsaW5lX3ZhbHVlX3N0ciA9IHRpbWVsaW5lX2ZlbmNlX3RpbWVsaW5l X3ZhbHVlX3N0ciwKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgbG9uZyBzd19zeW5jX2lvY3Rs X2NyZWF0ZV9mZW5jZShzdHJ1Y3Qgc3luY190aW1lbGluZSAqb2JqLAogCiAJc3luY19maWxlID0g c3luY19maWxlX2NyZWF0ZSgmcHQtPmJhc2UpOwogCWlmICghc3luY19maWxlKSB7Ci0JCWZlbmNl X3B1dCgmcHQtPmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZwdC0+YmFzZSk7CiAJCWVyciA9IC1F Tk9NRU07CiAJCWdvdG8gZXJyOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5j X2RlYnVnLmMgYi9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5jCmluZGV4IDJkZDRjM2RiNmNh YS4uNDhiMjBlMzRmYjZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5j CisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmMKQEAgLTcxLDEyICs3MSwxMyBAQCBz dGF0aWMgY29uc3QgY2hhciAqc3luY19zdGF0dXNfc3RyKGludCBzdGF0dXMpCiAJcmV0dXJuICJl cnJvciI7CiB9CiAKLXN0YXRpYyB2b2lkIHN5bmNfcHJpbnRfZmVuY2Uoc3RydWN0IHNlcV9maWxl ICpzLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIHNob3cpCitzdGF0aWMgdm9pZCBzeW5jX3By aW50X2ZlbmNlKHN0cnVjdCBzZXFfZmlsZSAqcywKKwkJCSAgICAgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UsIGJvb2wgc2hvdykKIHsKIAlpbnQgc3RhdHVzID0gMTsKLQlzdHJ1Y3Qgc3luY190aW1l bGluZSAqcGFyZW50ID0gZmVuY2VfcGFyZW50KGZlbmNlKTsKKwlzdHJ1Y3Qgc3luY190aW1lbGlu ZSAqcGFyZW50ID0gZG1hX2ZlbmNlX3BhcmVudChmZW5jZSk7CiAKLQlpZiAoZmVuY2VfaXNfc2ln bmFsZWRfbG9ja2VkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZChm ZW5jZSkpCiAJCXN0YXR1cyA9IGZlbmNlLT5zdGF0dXM7CiAKIAlzZXFfcHJpbnRmKHMsICIgICVz JXNmZW5jZSAlcyIsCkBAIC0xMzUsMTAgKzEzNiwxMCBAQCBzdGF0aWMgdm9pZCBzeW5jX3ByaW50 X3N5bmNfZmlsZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsCiAJaW50IGk7CiAKIAlzZXFfcHJpbnRmKHMs ICJbJXBdICVzOiAlc1xuIiwgc3luY19maWxlLCBzeW5jX2ZpbGUtPm5hbWUsCi0JCSAgIHN5bmNf c3RhdHVzX3N0cighZmVuY2VfaXNfc2lnbmFsZWQoc3luY19maWxlLT5mZW5jZSkpKTsKKwkJICAg c3luY19zdGF0dXNfc3RyKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3luY19maWxlLT5mZW5jZSkp KTsKIAotCWlmIChmZW5jZV9pc19hcnJheShzeW5jX2ZpbGUtPmZlbmNlKSkgewotCQlzdHJ1Y3Qg ZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CisJ aWYgKGRtYV9mZW5jZV9pc19hcnJheShzeW5jX2ZpbGUtPmZlbmNlKSkgeworCQlzdHJ1Y3QgZG1h X2ZlbmNlX2FycmF5ICphcnJheSA9IHRvX2RtYV9mZW5jZV9hcnJheShzeW5jX2ZpbGUtPmZlbmNl KTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgYXJyYXktPm51bV9mZW5jZXM7ICsraSkKIAkJCXN5bmNf cHJpbnRfZmVuY2UocywgYXJyYXktPmZlbmNlc1tpXSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5oIGIvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuaApp bmRleCBkMjY5YWE2NzgzYWEuLjI2ZmU4Yjk5MDdiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEt YnVmL3N5bmNfZGVidWcuaAorKysgYi9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5oCkBAIC0x NSw3ICsxNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgv c3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Rt YS1mZW5jZS5oPgogCiAjaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+CiAjaW5jbHVkZSA8dWFw aS9saW51eC9zeW5jX2ZpbGUuaD4KQEAgLTQ1LDEwICs0NSw5IEBAIHN0cnVjdCBzeW5jX3RpbWVs aW5lIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXN5bmNfdGltZWxpbmVfbGlzdDsKIH07CiAKLXN0YXRp YyBpbmxpbmUgc3RydWN0IHN5bmNfdGltZWxpbmUgKmZlbmNlX3BhcmVudChzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3luY190aW1lbGluZSAqZG1hX2ZlbmNlX3Bh cmVudChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGZl bmNlLT5sb2NrLCBzdHJ1Y3Qgc3luY190aW1lbGluZSwKLQkJCSAgICBjaGlsZF9saXN0X2xvY2sp OworCXJldHVybiBjb250YWluZXJfb2YoZmVuY2UtPmxvY2ssIHN0cnVjdCBzeW5jX3RpbWVsaW5l LCBjaGlsZF9saXN0X2xvY2spOwogfQogCiAvKioKQEAgLTU4LDcgKzU3LDcgQEAgc3RhdGljIGlu bGluZSBzdHJ1Y3Qgc3luY190aW1lbGluZSAqZmVuY2VfcGFyZW50KHN0cnVjdCBmZW5jZSAqZmVu Y2UpCiAgKiBAYWN0aXZlX2xpc3Q6IHN5bmMgdGltZWxpbmUgYWN0aXZlIGNoaWxkJ3MgbGlzdAog ICovCiBzdHJ1Y3Qgc3luY19wdCB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9m ZW5jZSBiYXNlOwogCXN0cnVjdCBsaXN0X2hlYWQgY2hpbGRfbGlzdDsKIAlzdHJ1Y3QgbGlzdF9o ZWFkIGFjdGl2ZV9saXN0OwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2Zp bGUuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYwppbmRleCAyMzVmOGFjMTEzY2MuLjY5 ZDhlZjk4ZDM0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jCisrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYwpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgc3Ry dWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2FsbG9jKHZvaWQpCiAJcmV0dXJuIE5VTEw7CiB9CiAK LXN0YXRpYyB2b2lkIGZlbmNlX2NoZWNrX2NiX2Z1bmMoc3RydWN0IGZlbmNlICpmLCBzdHJ1Y3Qg ZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQgZmVuY2VfY2hlY2tfY2JfZnVuYyhzdHJ1Y3QgZG1h X2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3Qgc3luY19maWxl ICpzeW5jX2ZpbGU7CiAKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgZmVuY2VfY2hlY2tf Y2JfZnVuYyhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiAgKiB0YWtlcyBv d25lcnNoaXAgb2YgQGZlbmNlLiBUaGUgc3luY19maWxlIGNhbiBiZSByZWxlYXNlZCB3aXRoCiAg KiBmcHV0KHN5bmNfZmlsZS0+ZmlsZSkuIFJldHVybnMgdGhlIHN5bmNfZmlsZSBvciBOVUxMIGlu IGNhc2Ugb2YgZXJyb3IuCiAgKi8KLXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUo c3RydWN0IGZlbmNlICpmZW5jZSkKK3N0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxl OwogCkBAIC03OSw3ICs3OSw3IEBAIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUo c3RydWN0IGZlbmNlICpmZW5jZSkKIAlpZiAoIXN5bmNfZmlsZSkKIAkJcmV0dXJuIE5VTEw7CiAK LQlzeW5jX2ZpbGUtPmZlbmNlID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlzeW5jX2ZpbGUtPmZlbmNl ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAlzbnByaW50ZihzeW5jX2ZpbGUtPm5hbWUsIHNp emVvZihzeW5jX2ZpbGUtPm5hbWUpLCAiJXMtJXMlbGx1LSVkIiwKIAkJIGZlbmNlLT5vcHMtPmdl dF9kcml2ZXJfbmFtZShmZW5jZSksCkBAIC0xMjEsMTYgKzEyMSwxNiBAQCBzdGF0aWMgc3RydWN0 IHN5bmNfZmlsZSAqc3luY19maWxlX2ZkZ2V0KGludCBmZCkKICAqIEVuc3VyZXMgQGZkIHJlZmVy ZW5jZXMgYSB2YWxpZCBzeW5jX2ZpbGUgYW5kIHJldHVybnMgYSBmZW5jZSB0aGF0CiAgKiByZXBy ZXNlbnRzIGFsbCBmZW5jZSBpbiB0aGUgc3luY19maWxlLiBPbiBlcnJvciBOVUxMIGlzIHJldHVy bmVkLgogICovCi1zdHJ1Y3QgZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVuY2UoaW50IGZkKQorc3Ry dWN0IGRtYV9mZW5jZSAqc3luY19maWxlX2dldF9mZW5jZShpbnQgZmQpCiB7CiAJc3RydWN0IHN5 bmNfZmlsZSAqc3luY19maWxlOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CiAKIAlzeW5jX2ZpbGUgPSBzeW5jX2ZpbGVfZmRnZXQoZmQpOwogCWlmICgh c3luY19maWxlKQogCQlyZXR1cm4gTlVMTDsKIAotCWZlbmNlID0gZmVuY2VfZ2V0KHN5bmNfZmls ZS0+ZmVuY2UpOworCWZlbmNlID0gZG1hX2ZlbmNlX2dldChzeW5jX2ZpbGUtPmZlbmNlKTsKIAlm cHV0KHN5bmNfZmlsZS0+ZmlsZSk7CiAKIAlyZXR1cm4gZmVuY2U7CkBAIC0xMzgsMjIgKzEzOCwy MyBAQCBzdHJ1Y3QgZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVuY2UoaW50IGZkKQogRVhQT1JUX1NZ TUJPTChzeW5jX2ZpbGVfZ2V0X2ZlbmNlKTsKIAogc3RhdGljIGludCBzeW5jX2ZpbGVfc2V0X2Zl bmNlKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKLQkJCSAgICAgICBzdHJ1Y3QgZmVuY2Ug KipmZW5jZXMsIGludCBudW1fZmVuY2VzKQorCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipm ZW5jZXMsIGludCBudW1fZmVuY2VzKQogewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXk7CisJ c3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXk7CiAKIAkvKgogCSAqIFRoZSByZWZlcmVuY2Ug Zm9yIHRoZSBmZW5jZXMgaW4gdGhlIG5ldyBzeW5jX2ZpbGUgYW5kIGhlbGQKIAkgKiBpbiBhZGRf ZmVuY2UoKSBkdXJpbmcgdGhlIG1lcmdlIHByb2NlZHVyZSwgc28gZm9yIG51bV9mZW5jZXMgPT0g MQogCSAqIHdlIGFscmVhZHkgb3duIGEgbmV3IHJlZmVyZW5jZSB0byB0aGUgZmVuY2UuIEZvciBu dW1fZmVuY2UgPiAxCi0JICogd2Ugb3duIHRoZSByZWZlcmVuY2Ugb2YgdGhlIGZlbmNlX2FycmF5 IGNyZWF0aW9uLgorCSAqIHdlIG93biB0aGUgcmVmZXJlbmNlIG9mIHRoZSBkbWFfZmVuY2VfYXJy YXkgY3JlYXRpb24uCiAJICovCiAJaWYgKG51bV9mZW5jZXMgPT0gMSkgewogCQlzeW5jX2ZpbGUt PmZlbmNlID0gZmVuY2VzWzBdOwogCQlrZnJlZShmZW5jZXMpOwogCX0gZWxzZSB7Ci0JCWFycmF5 ID0gZmVuY2VfYXJyYXlfY3JlYXRlKG51bV9mZW5jZXMsIGZlbmNlcywKLQkJCQkJICAgZmVuY2Vf Y29udGV4dF9hbGxvYygxKSwgMSwgZmFsc2UpOworCQlhcnJheSA9IGRtYV9mZW5jZV9hcnJheV9j cmVhdGUobnVtX2ZlbmNlcywgZmVuY2VzLAorCQkJCQkgICAgICAgZG1hX2ZlbmNlX2NvbnRleHRf YWxsb2MoMSksCisJCQkJCSAgICAgICAxLCBmYWxzZSk7CiAJCWlmICghYXJyYXkpCiAJCQlyZXR1 cm4gLUVOT01FTTsKIApAQCAtMTYzLDEwICsxNjQsMTEgQEAgc3RhdGljIGludCBzeW5jX2ZpbGVf c2V0X2ZlbmNlKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIHN0cnVjdCBmZW5jZSAqKmdldF9mZW5jZXMoc3RydWN0IHN5bmNfZmlsZSAqc3luY19m aWxlLCBpbnQgKm51bV9mZW5jZXMpCitzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSAqKmdldF9mZW5j ZXMoc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAorCQkJCSAgICAgaW50ICpudW1fZmVuY2Vz KQogewotCWlmIChmZW5jZV9pc19hcnJheShzeW5jX2ZpbGUtPmZlbmNlKSkgewotCQlzdHJ1Y3Qg ZmVuY2VfYXJyYXkgKmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CisJ aWYgKGRtYV9mZW5jZV9pc19hcnJheShzeW5jX2ZpbGUtPmZlbmNlKSkgeworCQlzdHJ1Y3QgZG1h X2ZlbmNlX2FycmF5ICphcnJheSA9IHRvX2RtYV9mZW5jZV9hcnJheShzeW5jX2ZpbGUtPmZlbmNl KTsKIAogCQkqbnVtX2ZlbmNlcyA9IGFycmF5LT5udW1fZmVuY2VzOwogCQlyZXR1cm4gYXJyYXkt PmZlbmNlczsKQEAgLTE3NiwxMiArMTc4LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZmVuY2UgKipnZXRf ZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwgaW50ICpudW1fZmVuY2VzKQogCXJl dHVybiAmc3luY19maWxlLT5mZW5jZTsKIH0KIAotc3RhdGljIHZvaWQgYWRkX2ZlbmNlKHN0cnVj dCBmZW5jZSAqKmZlbmNlcywgaW50ICppLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIHZv aWQgYWRkX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsCisJCSAgICAgIGludCAqaSwg c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJZmVuY2VzWyppXSA9IGZlbmNlOwogCi0JaWYg KCFmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpIHsKLQkJZmVuY2VfZ2V0KGZlbmNlKTsKKwlpZiAo IWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpIHsKKwkJZG1hX2ZlbmNlX2dldChmZW5jZSk7 CiAJCSgqaSkrKzsKIAl9CiB9CkBAIC0yMDAsNyArMjAzLDcgQEAgc3RhdGljIHN0cnVjdCBzeW5j X2ZpbGUgKnN5bmNfZmlsZV9tZXJnZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3luY19maWxl ICphLAogCQkJCQkgc3RydWN0IHN5bmNfZmlsZSAqYikKIHsKIAlzdHJ1Y3Qgc3luY19maWxlICpz eW5jX2ZpbGU7Ci0Jc3RydWN0IGZlbmNlICoqZmVuY2VzLCAqKm5mZW5jZXMsICoqYV9mZW5jZXMs ICoqYl9mZW5jZXM7CisJc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcywgKipuZmVuY2VzLCAqKmFf ZmVuY2VzLCAqKmJfZmVuY2VzOwogCWludCBpLCBpX2EsIGlfYiwgbnVtX2ZlbmNlcywgYV9udW1f ZmVuY2VzLCBiX251bV9mZW5jZXM7CiAKIAlzeW5jX2ZpbGUgPSBzeW5jX2ZpbGVfYWxsb2MoKTsK QEAgLTIyNiw4ICsyMjksOCBAQCBzdGF0aWMgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX21l cmdlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW5jX2ZpbGUgKmEsCiAJICogYW5kIHN5bmNf ZmlsZV9jcmVhdGUsIHRoaXMgaXMgYSByZWFzb25hYmxlIGFzc3VtcHRpb24uCiAJICovCiAJZm9y IChpID0gaV9hID0gaV9iID0gMDsgaV9hIDwgYV9udW1fZmVuY2VzICYmIGlfYiA8IGJfbnVtX2Zl bmNlczsgKSB7Ci0JCXN0cnVjdCBmZW5jZSAqcHRfYSA9IGFfZmVuY2VzW2lfYV07Ci0JCXN0cnVj dCBmZW5jZSAqcHRfYiA9IGJfZmVuY2VzW2lfYl07CisJCXN0cnVjdCBkbWFfZmVuY2UgKnB0X2Eg PSBhX2ZlbmNlc1tpX2FdOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpwdF9iID0gYl9mZW5jZXNbaV9i XTsKIAogCQlpZiAocHRfYS0+Y29udGV4dCA8IHB0X2ItPmNvbnRleHQpIHsKIAkJCWFkZF9mZW5j ZShmZW5jZXMsICZpLCBwdF9hKTsKQEAgLTI1NSw3ICsyNTgsNyBAQCBzdGF0aWMgc3RydWN0IHN5 bmNfZmlsZSAqc3luY19maWxlX21lcmdlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW5jX2Zp bGUgKmEsCiAJCWFkZF9mZW5jZShmZW5jZXMsICZpLCBiX2ZlbmNlc1tpX2JdKTsKIAogCWlmIChp ID09IDApCi0JCWZlbmNlc1tpKytdID0gZmVuY2VfZ2V0KGFfZmVuY2VzWzBdKTsKKwkJZmVuY2Vz W2krK10gPSBkbWFfZmVuY2VfZ2V0KGFfZmVuY2VzWzBdKTsKIAogCWlmIChudW1fZmVuY2VzID4g aSkgewogCQluZmVuY2VzID0ga3JlYWxsb2MoZmVuY2VzLCBpICogc2l6ZW9mKCpmZW5jZXMpLApA QCAtMjg2LDggKzI4OSw4IEBAIHN0YXRpYyB2b2lkIHN5bmNfZmlsZV9mcmVlKHN0cnVjdCBrcmVm ICprcmVmKQogCQkJCQkJICAgICBrcmVmKTsKIAogCWlmICh0ZXN0X2JpdChQT0xMX0VOQUJMRUQs ICZzeW5jX2ZpbGUtPmZlbmNlLT5mbGFncykpCi0JCWZlbmNlX3JlbW92ZV9jYWxsYmFjayhzeW5j X2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYik7Ci0JZmVuY2VfcHV0KHN5bmNfZmlsZS0+ZmVu Y2UpOworCQlkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKHN5bmNfZmlsZS0+ZmVuY2UsICZzeW5j X2ZpbGUtPmNiKTsKKwlkbWFfZmVuY2VfcHV0KHN5bmNfZmlsZS0+ZmVuY2UpOwogCWtmcmVlKHN5 bmNfZmlsZSk7CiB9CiAKQEAgLTMwNywxMiArMzEwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQg c3luY19maWxlX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCiAKIAlp ZiAoIXBvbGxfZG9lc19ub3Rfd2FpdCh3YWl0KSAmJgogCSAgICAhdGVzdF9hbmRfc2V0X2JpdChQ T0xMX0VOQUJMRUQsICZzeW5jX2ZpbGUtPmZlbmNlLT5mbGFncykpIHsKLQkJaWYgKGZlbmNlX2Fk ZF9jYWxsYmFjayhzeW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYiwKLQkJCQkgICAgICAg ZmVuY2VfY2hlY2tfY2JfZnVuYykgPCAwKQorCQlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhz eW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYiwKKwkJCQkJICAgZmVuY2VfY2hlY2tfY2Jf ZnVuYykgPCAwKQogCQkJd2FrZV91cF9hbGwoJnN5bmNfZmlsZS0+d3EpOwogCX0KIAotCXJldHVy biBmZW5jZV9pc19zaWduYWxlZChzeW5jX2ZpbGUtPmZlbmNlKSA/IFBPTExJTiA6IDA7CisJcmV0 dXJuIGRtYV9mZW5jZV9pc19zaWduYWxlZChzeW5jX2ZpbGUtPmZlbmNlKSA/IFBPTExJTiA6IDA7 CiB9CiAKIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9tZXJnZShzdHJ1Y3Qgc3luY19maWxl ICpzeW5jX2ZpbGUsCkBAIC0zNzAsMTQgKzM3MywxNCBAQCBzdGF0aWMgbG9uZyBzeW5jX2ZpbGVf aW9jdGxfbWVyZ2Uoc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogCXJldHVybiBlcnI7CiB9 CiAKLXN0YXRpYyB2b2lkIHN5bmNfZmlsbF9mZW5jZV9pbmZvKHN0cnVjdCBmZW5jZSAqZmVuY2Us CitzdGF0aWMgdm9pZCBzeW5jX2ZpbGxfZmVuY2VfaW5mbyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSwKIAkJCQkgc3RydWN0IHN5bmNfZmVuY2VfaW5mbyAqaW5mbykKIHsKIAlzdHJsY3B5KGluZm8t Pm9ial9uYW1lLCBmZW5jZS0+b3BzLT5nZXRfdGltZWxpbmVfbmFtZShmZW5jZSksCiAJCXNpemVv ZihpbmZvLT5vYmpfbmFtZSkpOwogCXN0cmxjcHkoaW5mby0+ZHJpdmVyX25hbWUsIGZlbmNlLT5v cHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSksCiAJCXNpemVvZihpbmZvLT5kcml2ZXJfbmFtZSkp OwotCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJaWYgKGRtYV9mZW5jZV9pc19zaWdu YWxlZChmZW5jZSkpCiAJCWluZm8tPnN0YXR1cyA9IGZlbmNlLT5zdGF0dXMgPj0gMCA/IDEgOiBm ZW5jZS0+c3RhdHVzOwogCWVsc2UKIAkJaW5mby0+c3RhdHVzID0gMDsKQEAgLTM4OSw3ICszOTIs NyBAQCBzdGF0aWMgbG9uZyBzeW5jX2ZpbGVfaW9jdGxfZmVuY2VfaW5mbyhzdHJ1Y3Qgc3luY19m aWxlICpzeW5jX2ZpbGUsCiB7CiAJc3RydWN0IHN5bmNfZmlsZV9pbmZvIGluZm87CiAJc3RydWN0 IHN5bmNfZmVuY2VfaW5mbyAqZmVuY2VfaW5mbyA9IE5VTEw7Ci0Jc3RydWN0IGZlbmNlICoqZmVu Y2VzOworCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXM7CiAJX191MzIgc2l6ZTsKIAlpbnQgbnVt X2ZlbmNlcywgcmV0LCBpOwogCkBAIC00MjksNyArNDMyLDcgQEAgc3RhdGljIGxvbmcgc3luY19m aWxlX2lvY3RsX2ZlbmNlX2luZm8oc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogCiBub19m ZW5jZXM6CiAJc3RybGNweShpbmZvLm5hbWUsIHN5bmNfZmlsZS0+bmFtZSwgc2l6ZW9mKGluZm8u bmFtZSkpOwotCWluZm8uc3RhdHVzID0gZmVuY2VfaXNfc2lnbmFsZWQoc3luY19maWxlLT5mZW5j ZSk7CisJaW5mby5zdGF0dXMgPSBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3luY19maWxlLT5mZW5j ZSk7CiAJaW5mby5udW1fZmVuY2VzID0gbnVtX2ZlbmNlczsKIAogCWlmIChjb3B5X3RvX3VzZXIo KHZvaWQgX191c2VyICopYXJnLCAmaW5mbywgc2l6ZW9mKGluZm8pKSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1LmgKaW5kZXggMDM5YjU3ZTQ2NDRjLi4yODNkMDU5MjdkMTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8bGlu dXgva3JlZi5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWUuaD4KICNpbmNsdWRlIDxs aW51eC9oYXNodGFibGUuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxp bnV4L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVkZSA8dHRtL3R0bV9ib19hcGkuaD4KICNpbmNsdWRl IDx0dG0vdHRtX2JvX2RyaXZlci5oPgpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0cnVjdCBhbWRncHVf ZmVuY2VfZHJpdmVyIHsKIAlzdHJ1Y3QgdGltZXJfbGlzdAkJZmFsbGJhY2tfdGltZXI7CiAJdW5z aWduZWQJCQludW1fZmVuY2VzX21hc2s7CiAJc3BpbmxvY2tfdAkJCWxvY2s7Ci0Jc3RydWN0IGZl bmNlCQkJKipmZW5jZXM7CisJc3RydWN0IGRtYV9mZW5jZQkJKipmZW5jZXM7CiB9OwogCiAvKiBz b21lIHNwZWNpYWwgdmFsdWVzIGZvciB0aGUgb3duZXIgZmllbGQgKi8KQEAgLTM5OSw3ICszOTks NyBAQCBpbnQgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9zdGFydF9yaW5nKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywKIAkJCQkgICB1bnNpZ25lZCBpcnFfdHlwZSk7CiB2b2lkIGFtZGdwdV9mZW5jZV9k cml2ZXJfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV9m ZW5jZV9kcml2ZXJfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKLWludCBhbWRn cHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBmZW5jZSAqKmZl bmNlKTsKK2ludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0 cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiB2b2lkIGFtZGdwdV9mZW5jZV9wcm9jZXNzKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZyk7CiBpbnQgYW1kZ3B1X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nKTsKIHVuc2lnbmVkIGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVk KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CkBAIC00MjcsNyArNDI3LDcgQEAgc3RydWN0IGFt ZGdwdV9ib192YV9tYXBwaW5nIHsKIHN0cnVjdCBhbWRncHVfYm9fdmEgewogCS8qIHByb3RlY3Rl ZCBieSBibyBiZWluZyByZXNlcnZlZCAqLwogCXN0cnVjdCBsaXN0X2hlYWQJCWJvX2xpc3Q7Ci0J c3RydWN0IGZlbmNlCQkgICAgICAgICpsYXN0X3B0X3VwZGF0ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNl CSAgICAgICAgKmxhc3RfcHRfdXBkYXRlOwogCXVuc2lnbmVkCQkJcmVmX2NvdW50OwogCiAJLyog cHJvdGVjdGVkIGJ5IHZtIG11dGV4IGFuZCBzcGlubG9jayAqLwpAQCAtNTQzLDcgKzU0Myw3IEBA IHN0cnVjdCBhbWRncHVfc2FfYm8gewogCXN0cnVjdCBhbWRncHVfc2FfbWFuYWdlcgkqbWFuYWdl cjsKIAl1bnNpZ25lZAkJCXNvZmZzZXQ7CiAJdW5zaWduZWQJCQllb2Zmc2V0OwotCXN0cnVjdCBm ZW5jZQkJICAgICAgICAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkgICAgICAgICpmZW5jZTsK IH07CiAKIC8qCkBAIC01NjYsMTkgKzU2NiwxOSBAQCBpbnQgYW1kZ3B1X21vZGVfZHVtYl9tbWFw KHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKICAqLwogc3RydWN0IGFtZGdwdV9zeW5jIHsKIAlERUNM QVJFX0hBU0hUQUJMRShmZW5jZXMsIDQpOwotCXN0cnVjdCBmZW5jZQkgICAgICAgICpsYXN0X3Zt X3VwZGF0ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICAgICAgICAqbGFzdF92bV91cGRhdGU7CiB9Owog CiB2b2lkIGFtZGdwdV9zeW5jX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMpOwogaW50 IGFtZGdwdV9zeW5jX2ZlbmNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1k Z3B1X3N5bmMgKnN5bmMsCi0JCSAgICAgIHN0cnVjdCBmZW5jZSAqZik7CisJCSAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKmYpOwogaW50IGFtZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCSAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAogCQkgICAgIHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCiAJCSAgICAgdm9pZCAqb3duZXIpOwotc3RydWN0 IGZlbmNlICphbWRncHVfc3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywK K3N0cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9zeW5jX3BlZWtfZmVuY2Uoc3RydWN0IGFtZGdwdV9z eW5jICpzeW5jLAogCQkJCSAgICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKLXN0cnVjdCBm ZW5jZSAqYW1kZ3B1X3N5bmNfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYyk7Citz dHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfc3luY19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5j ICpzeW5jKTsKIHZvaWQgYW1kZ3B1X3N5bmNfZnJlZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMp OwogaW50IGFtZGdwdV9zeW5jX2luaXQodm9pZCk7CiB2b2lkIGFtZGdwdV9zeW5jX2Zpbmkodm9p ZCk7CkBAIC03MDMsMTAgKzcwMywxMCBAQCBzdHJ1Y3QgYW1kZ3B1X2ZsaXBfd29yayB7CiAJdWlu dDY0X3QJCQliYXNlOwogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50Owog CXN0cnVjdCBhbWRncHVfYm8JCSpvbGRfYWJvOwotCXN0cnVjdCBmZW5jZQkJCSpleGNsOworCXN0 cnVjdCBkbWFfZmVuY2UJCSpleGNsOwogCXVuc2lnbmVkCQkJc2hhcmVkX2NvdW50OwotCXN0cnVj dCBmZW5jZQkJCSoqc2hhcmVkOwotCXN0cnVjdCBmZW5jZV9jYgkJCWNiOworCXN0cnVjdCBkbWFf ZmVuY2UJCSoqc2hhcmVkOworCXN0cnVjdCBkbWFfZmVuY2VfY2IJCWNiOwogCWJvb2wJCQkJYXN5 bmM7CiB9OwogCkBAIC03NDIsNyArNzQyLDcgQEAgdm9pZCBhbWRncHVfam9iX2ZyZWVfcmVzb3Vy Y2VzKHN0cnVjdCBhbWRncHVfam9iICpqb2IpOwogdm9pZCBhbWRncHVfam9iX2ZyZWUoc3RydWN0 IGFtZGdwdV9qb2IgKmpvYik7CiBpbnQgYW1kZ3B1X2pvYl9zdWJtaXQoc3RydWN0IGFtZGdwdV9q b2IgKmpvYiwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkgICAgICBzdHJ1Y3QgYW1kX3Nj aGVkX2VudGl0eSAqZW50aXR5LCB2b2lkICpvd25lciwKLQkJICAgICAgc3RydWN0IGZlbmNlICoq Zik7CisJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmKTsKIAogc3RydWN0IGFtZGdwdV9yaW5n IHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZQkJKmFkZXY7CkBAIC04NDQsNyArODQ0LDcgQEAgc3Ry dWN0IGFtZGdwdV92bSB7CiAJLyogY29udGFpbnMgdGhlIHBhZ2UgZGlyZWN0b3J5ICovCiAJc3Ry dWN0IGFtZGdwdV9ibwkqcGFnZV9kaXJlY3Rvcnk7CiAJdW5zaWduZWQJCW1heF9wZGVfdXNlZDsK LQlzdHJ1Y3QgZmVuY2UJCSpwYWdlX2RpcmVjdG9yeV9mZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNl CSpwYWdlX2RpcmVjdG9yeV9mZW5jZTsKIAl1aW50NjRfdAkJbGFzdF9ldmljdGlvbl9jb3VudGVy OwogCiAJLyogYXJyYXkgb2YgcGFnZSB0YWJsZXMsIG9uZSBmb3IgZWFjaCBwYWdlIGRpcmVjdG9y eSBlbnRyeSAqLwpAQCAtODY1LDE0ICs4NjUsMTQgQEAgc3RydWN0IGFtZGdwdV92bSB7CiAKIHN0 cnVjdCBhbWRncHVfdm1faWQgewogCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKLQlzdHJ1Y3QgZmVu Y2UJCSpmaXJzdDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCSpmaXJzdDsKIAlzdHJ1Y3QgYW1kZ3B1X3N5 bmMJYWN0aXZlOwotCXN0cnVjdCBmZW5jZQkJKmxhc3RfZmx1c2g7CisJc3RydWN0IGRtYV9mZW5j ZQkqbGFzdF9mbHVzaDsKIAlhdG9taWM2NF90CQlvd25lcjsKIAogCXVpbnQ2NF90CQlwZF9ncHVf YWRkcjsKIAkvKiBsYXN0IGZsdXNoZWQgUEQvUFQgdXBkYXRlICovCi0Jc3RydWN0IGZlbmNlCQkq Zmx1c2hlZF91cGRhdGVzOworCXN0cnVjdCBkbWFfZmVuY2UJKmZsdXNoZWRfdXBkYXRlczsKIAog CXVpbnQzMl90ICAgICAgICAgICAgICAgIGN1cnJlbnRfZ3B1X3Jlc2V0X2NvdW50OwogCkBAIC05 MjEsNyArOTIxLDcgQEAgdm9pZCBhbWRncHVfdm1fZ2V0X3B0X2JvcyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiB2b2lkIGFtZGdwdV92bV9tb3ZlX3B0 X2Jvc19pbl9scnUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJICBzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSk7CiBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFtZGdwdV92bSAqdm0s IHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpz eW5jLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5 bmMsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAq am9iKTsKIGludCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1 Y3QgYW1kZ3B1X2pvYiAqam9iKTsKIHZvaWQgYW1kZ3B1X3ZtX3Jlc2V0X2lkKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCB2bV9pZCk7CkBAIC05NTcsNyArOTU3LDcgQEAgdm9p ZCBhbWRncHVfdm1fYm9fcm12KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiBzdHJ1Y3Qg YW1kZ3B1X2N0eF9yaW5nIHsKIAl1aW50NjRfdAkJc2VxdWVuY2U7Ci0Jc3RydWN0IGZlbmNlCQkq KmZlbmNlczsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCSoqZmVuY2VzOwogCXN0cnVjdCBhbWRfc2NoZWRf ZW50aXR5CWVudGl0eTsKIH07CiAKQEAgLTk2Niw3ICs5NjYsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2N0 eCB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgICAgKmFkZXY7CiAJdW5zaWduZWQJCXJlc2V0X2Nv dW50ZXI7CiAJc3BpbmxvY2tfdAkJcmluZ19sb2NrOwotCXN0cnVjdCBmZW5jZSAgICAgICAgICAg ICoqZmVuY2VzOworCXN0cnVjdCBkbWFfZmVuY2UJKipmZW5jZXM7CiAJc3RydWN0IGFtZGdwdV9j dHhfcmluZwlyaW5nc1tBTURHUFVfTUFYX1JJTkdTXTsKIAlib29sIHByZWFtYmxlX3ByZXNlbnRl ZDsKIH07CkBAIC05ODIsOCArOTgyLDggQEAgc3RydWN0IGFtZGdwdV9jdHggKmFtZGdwdV9jdHhf Z2V0KHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2LCB1aW50MzJfdCBpZCk7CiBpbnQgYW1kZ3B1 X2N0eF9wdXQoc3RydWN0IGFtZGdwdV9jdHggKmN0eCk7CiAKIHVpbnQ2NF90IGFtZGdwdV9jdHhf YWRkX2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgsIHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotc3RydWN0IGZlbmNlICphbWRncHVf Y3R4X2dldF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4LAorCQkJICAgICAgc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpOworc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X2N0eF9nZXRfZmVuY2Uo c3RydWN0IGFtZGdwdV9jdHggKmN0eCwKIAkJCQkgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHVpbnQ2NF90IHNlcSk7CiAKIGludCBhbWRncHVfY3R4X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCkBAIC0xMTgxLDEwICsxMTgxLDEwIEBAIHN0cnVjdCBhbWRncHVf Z2Z4IHsKIGludCBhbWRncHVfaWJfZ2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X3ZtICp2bSwKIAkJICB1bnNpZ25lZCBzaXplLCBzdHJ1Y3QgYW1kZ3B1X2liICpp Yik7CiB2b2lkIGFtZGdwdV9pYl9mcmVlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X2liICppYiwKLQkJICAgIHN0cnVjdCBmZW5jZSAqZik7CisJCSAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICpmKTsKIGludCBhbWRncHVfaWJfc2NoZWR1bGUoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLCB1bnNpZ25lZCBudW1faWJzLAotCQkgICAgICAgc3RydWN0IGFtZGdwdV9pYiAqaWIs IHN0cnVjdCBmZW5jZSAqbGFzdF92bV91cGRhdGUsCi0JCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pv YiAqam9iLCBzdHJ1Y3QgZmVuY2UgKipmKTsKKwkJICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmli LCBzdHJ1Y3QgZG1hX2ZlbmNlICpsYXN0X3ZtX3VwZGF0ZSwKKwkJICAgICAgIHN0cnVjdCBhbWRn cHVfam9iICpqb2IsIHN0cnVjdCBkbWFfZmVuY2UgKipmKTsKIGludCBhbWRncHVfaWJfcG9vbF9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQgYW1kZ3B1X2liX3Bvb2xfZmlu aShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X2liX3JpbmdfdGVzdHMo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwpAQCAtMTIyNSw3ICsxMjI1LDcgQEAgc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgewogCXN0cnVjdCBhbWRncHVfYm9fbGlzdAkJKmJvX2xpc3Q7CiAJ c3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5CXZtX3BkOwogCXN0cnVjdCBsaXN0X2hlYWQJCXZh bGlkYXRlZDsKLQlzdHJ1Y3QgZmVuY2UJCQkqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkJKmZl bmNlOwogCXVpbnQ2NF90CQkJYnl0ZXNfbW92ZWRfdGhyZXNob2xkOwogCXVpbnQ2NF90CQkJYnl0 ZXNfbW92ZWQ7CiAJc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5CSpldmljdGFibGU7CkBAIC0x MjQ1LDcgKzEyNDUsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2pvYiB7CiAJc3RydWN0IGFtZGdwdV9yaW5n CSpyaW5nOwogCXN0cnVjdCBhbWRncHVfc3luYwlzeW5jOwogCXN0cnVjdCBhbWRncHVfaWIJKmli czsKLQlzdHJ1Y3QgZmVuY2UJCSpmZW5jZTsgLyogdGhlIGh3IGZlbmNlICovCisJc3RydWN0IGRt YV9mZW5jZQkqZmVuY2U7IC8qIHRoZSBodyBmZW5jZSAqLwogCXVpbnQzMl90CQlwcmVhbWJsZV9z dGF0dXM7CiAJdWludDMyX3QJCW51bV9pYnM7CiAJdm9pZAkJCSpvd25lcjsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9iZW5jaG1hcmsuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9iZW5jaG1hcmsuYwppbmRleCAzNDUzMDUyMzUzNDku LmNjOTdlZWU5MzIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2JlbmNobWFyay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9i ZW5jaG1hcmsuYwpAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9iZW5jaG1hcmtf ZG9fbW92ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgc2l6ZSwKIHsKIAl1 bnNpZ25lZCBsb25nIHN0YXJ0X2ppZmZpZXM7CiAJdW5zaWduZWQgbG9uZyBlbmRfamlmZmllczsK LQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9 IE5VTEw7CiAJaW50IGksIHI7CiAKIAlzdGFydF9qaWZmaWVzID0gamlmZmllczsKQEAgLTQzLDE3 ICs0MywxNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9iZW5jaG1hcmtfZG9fbW92ZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgc2l6ZSwKIAkJCQkgICAgICAgZmFsc2UpOwogCQlp ZiAocikKIAkJCWdvdG8gZXhpdF9kb19tb3ZlOwotCQlyID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFs c2UpOworCQlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJaWYgKHIpCiAJCQln b3RvIGV4aXRfZG9fbW92ZTsKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChm ZW5jZSk7CiAJfQogCWVuZF9qaWZmaWVzID0gamlmZmllczsKIAlyID0gamlmZmllc190b19tc2Vj cyhlbmRfamlmZmllcyAtIHN0YXJ0X2ppZmZpZXMpOwogCiBleGl0X2RvX21vdmU6CiAJaWYgKGZl bmNlKQotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAlyZXR1 cm4gcjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCBiMGY2 ZTY5NTc1MzYuLjVkNTgyMjY1ZTkyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKQEAgLTcxOSw3ICs3MTksNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfY3NfcGFyc2VyX2Zp bmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgaW50IGVycm9yLCBibwogCQl0dG1f ZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCiAJCQkJCSAgICZwYXJzZXIt PnZhbGlkYXRlZCk7CiAJfQotCWZlbmNlX3B1dChwYXJzZXItPmZlbmNlKTsKKwlkbWFfZmVuY2Vf cHV0KHBhcnNlci0+ZmVuY2UpOwogCiAJaWYgKHBhcnNlci0+Y3R4KQogCQlhbWRncHVfY3R4X3B1 dChwYXJzZXItPmN0eCk7CkBAIC03NTYsNyArNzU2LDcgQEAgc3RhdGljIGludCBhbWRncHVfYm9f dm1fdXBkYXRlX3B0ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAogCWlmIChwLT5ib19s aXN0KSB7CiAJCWZvciAoaSA9IDA7IGkgPCBwLT5ib19saXN0LT5udW1fZW50cmllczsgaSsrKSB7 Ci0JCQlzdHJ1Y3QgZmVuY2UgKmY7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCiAJCQkvKiBp Z25vcmUgZHVwbGljYXRlcyAqLwogCQkJYm8gPSBwLT5ib19saXN0LT5hcnJheVtpXS5yb2JqOwpA QCAtOTU2LDcgKzk1Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2RlcGVuZGVuY2llcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJZm9yIChqID0gMDsgaiA8IG51bV9kZXBzOyArK2op IHsKIAkJCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKIAkJCXN0cnVjdCBhbWRncHVfY3R4ICpj dHg7Ci0JCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 CiAKIAkJCXIgPSBhbWRncHVfY3NfZ2V0X3JpbmcoYWRldiwgZGVwc1tqXS5pcF90eXBlLAogCQkJ CQkgICAgICAgZGVwc1tqXS5pcF9pbnN0YW5jZSwKQEAgLTk3OCw3ICs5NzgsNyBAQCBzdGF0aWMg aW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ CQl9IGVsc2UgaWYgKGZlbmNlKSB7CiAJCQkJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKGFkZXYsICZw LT5qb2ItPnN5bmMsCiAJCQkJCQkgICAgICBmZW5jZSk7Ci0JCQkJZmVuY2VfcHV0KGZlbmNlKTsK KwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAkJCQlhbWRncHVfY3R4X3B1dChjdHgpOwogCQkJ CWlmIChyKQogCQkJCQlyZXR1cm4gcjsKQEAgLTEwMDgsNyArMTAwOCw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAogCWpvYi0+b3du ZXIgPSBwLT5maWxwOwogCWpvYi0+ZmVuY2VfY3R4ID0gZW50aXR5LT5mZW5jZV9jb250ZXh0Owot CXAtPmZlbmNlID0gZmVuY2VfZ2V0KCZqb2ItPmJhc2Uuc19mZW5jZS0+ZmluaXNoZWQpOworCXAt PmZlbmNlID0gZG1hX2ZlbmNlX2dldCgmam9iLT5iYXNlLnNfZmVuY2UtPmZpbmlzaGVkKTsKIAlj cy0+b3V0LmhhbmRsZSA9IGFtZGdwdV9jdHhfYWRkX2ZlbmNlKHAtPmN0eCwgcmluZywgcC0+ZmVu Y2UpOwogCWpvYi0+dWZfc2VxdWVuY2UgPSBjcy0+b3V0LmhhbmRsZTsKIAlhbWRncHVfam9iX2Zy ZWVfcmVzb3VyY2VzKGpvYik7CkBAIC0xMDkxLDcgKzEwOTEsNyBAQCBpbnQgYW1kZ3B1X2NzX3dh aXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAl1bnNpZ25lZCBs b25nIHRpbWVvdXQgPSBhbWRncHVfZ2VtX3RpbWVvdXQod2FpdC0+aW4udGltZW91dCk7CiAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nID0gTlVMTDsKIAlzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4Owot CXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJbG9uZyBy OwogCiAJciA9IGFtZGdwdV9jc19nZXRfcmluZyhhZGV2LCB3YWl0LT5pbi5pcF90eXBlLCB3YWl0 LT5pbi5pcF9pbnN0YW5jZSwKQEAgLTExMDcsOCArMTEwNyw4IEBAIGludCBhbWRncHVfY3Nfd2Fp dF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChJU19FUlIo ZmVuY2UpKQogCQlyID0gUFRSX0VSUihmZW5jZSk7CiAJZWxzZSBpZiAoZmVuY2UpIHsKLQkJciA9 IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgdHJ1ZSwgdGltZW91dCk7Ci0JCWZlbmNlX3B1dChm ZW5jZSk7CisJCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCB0cnVlLCB0aW1lb3V0 KTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJfSBlbHNlCiAJCXIgPSAxOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKaW5kZXggYTVlMmZjYmVmMGYwLi45OWJiYzg2 MDMyMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHgu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKQEAgLTM1LDcg KzM1LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3R4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCiAJa3JlZl9pbml0KCZjdHgtPnJlZmNvdW50 KTsKIAlzcGluX2xvY2tfaW5pdCgmY3R4LT5yaW5nX2xvY2spOwogCWN0eC0+ZmVuY2VzID0ga2Nh bGxvYyhhbWRncHVfc2NoZWRfam9icyAqIEFNREdQVV9NQVhfUklOR1MsCi0JCQkgICAgICBzaXpl b2Yoc3RydWN0IGZlbmNlKiksIEdGUF9LRVJORUwpOworCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBk bWFfZmVuY2UqKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjdHgtPmZlbmNlcykKIAkJcmV0dXJuIC1F Tk9NRU07CiAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2N0eF9maW5pKHN0 cnVjdCBhbWRncHVfY3R4ICpjdHgpCiAKIAlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5H UzsgKytpKQogCQlmb3IgKGogPSAwOyBqIDwgYW1kZ3B1X3NjaGVkX2pvYnM7ICsraikKLQkJCWZl bmNlX3B1dChjdHgtPnJpbmdzW2ldLmZlbmNlc1tqXSk7CisJCQlkbWFfZmVuY2VfcHV0KGN0eC0+ cmluZ3NbaV0uZmVuY2VzW2pdKTsKIAlrZnJlZShjdHgtPmZlbmNlcyk7CiAJY3R4LT5mZW5jZXMg PSBOVUxMOwogCkBAIC0yNDEsMzkgKzI0MSwzOSBAQCBpbnQgYW1kZ3B1X2N0eF9wdXQoc3RydWN0 IGFtZGdwdV9jdHggKmN0eCkKIH0KIAogdWludDY0X3QgYW1kZ3B1X2N0eF9hZGRfZmVuY2Uoc3Ry dWN0IGFtZGdwdV9jdHggKmN0eCwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJICAgICAg c3RydWN0IGZlbmNlICpmZW5jZSkKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQog ewogCXN0cnVjdCBhbWRncHVfY3R4X3JpbmcgKmNyaW5nID0gJiBjdHgtPnJpbmdzW3JpbmctPmlk eF07CiAJdWludDY0X3Qgc2VxID0gY3JpbmctPnNlcXVlbmNlOwogCXVuc2lnbmVkIGlkeCA9IDA7 Ci0Jc3RydWN0IGZlbmNlICpvdGhlciA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqb3RoZXIg PSBOVUxMOwogCiAJaWR4ID0gc2VxICYgKGFtZGdwdV9zY2hlZF9qb2JzIC0gMSk7CiAJb3RoZXIg PSBjcmluZy0+ZmVuY2VzW2lkeF07CiAJaWYgKG90aGVyKSB7CiAJCXNpZ25lZCBsb25nIHI7Ci0J CXIgPSBmZW5jZV93YWl0X3RpbWVvdXQob3RoZXIsIGZhbHNlLCBNQVhfU0NIRURVTEVfVElNRU9V VCk7CisJCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KG90aGVyLCBmYWxzZSwgTUFYX1NDSEVE VUxFX1RJTUVPVVQpOwogCQlpZiAociA8IDApCiAJCQlEUk1fRVJST1IoIkVycm9yICglbGQpIHdh aXRpbmcgZm9yIGZlbmNlIVxuIiwgcik7CiAJfQogCi0JZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFf ZmVuY2VfZ2V0KGZlbmNlKTsKIAogCXNwaW5fbG9jaygmY3R4LT5yaW5nX2xvY2spOwogCWNyaW5n LT5mZW5jZXNbaWR4XSA9IGZlbmNlOwogCWNyaW5nLT5zZXF1ZW5jZSsrOwogCXNwaW5fdW5sb2Nr KCZjdHgtPnJpbmdfbG9jayk7CiAKLQlmZW5jZV9wdXQob3RoZXIpOworCWRtYV9mZW5jZV9wdXQo b3RoZXIpOwogCiAJcmV0dXJuIHNlcTsKIH0KIAotc3RydWN0IGZlbmNlICphbWRncHVfY3R4X2dl dF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4LAotCQkJCSAgIHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywgdWludDY0X3Qgc2VxKQorc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X2N0eF9nZXRf ZmVuY2Uoc3RydWN0IGFtZGdwdV9jdHggKmN0eCwKKwkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLCB1aW50NjRfdCBzZXEpCiB7CiAJc3RydWN0IGFtZGdwdV9jdHhfcmluZyAqY3Jp bmcgPSAmIGN0eC0+cmluZ3NbcmluZy0+aWR4XTsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJc3Bpbl9sb2NrKCZjdHgtPnJpbmdfbG9jayk7CiAK QEAgLTI4OCw3ICsyODgsNyBAQCBzdHJ1Y3QgZmVuY2UgKmFtZGdwdV9jdHhfZ2V0X2ZlbmNlKHN0 cnVjdCBhbWRncHVfY3R4ICpjdHgsCiAJCXJldHVybiBOVUxMOwogCX0KIAotCWZlbmNlID0gZmVu Y2VfZ2V0KGNyaW5nLT5mZW5jZXNbc2VxICYgKGFtZGdwdV9zY2hlZF9qb2JzIC0gMSldKTsKKwlm ZW5jZSA9IGRtYV9mZW5jZV9nZXQoY3JpbmctPmZlbmNlc1tzZXEgJiAoYW1kZ3B1X3NjaGVkX2pv YnMgLSAxKV0pOwogCXNwaW5fdW5sb2NrKCZjdHgtPnJpbmdfbG9jayk7CiAKIAlyZXR1cm4gZmVu Y2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKaW5kZXggYjRm NGE5MjM5MDY5Li4wMjYyYjQzYzhmMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMKQEAgLTE1OTksNyArMTU5OSw3IEBAIGludCBhbWRncHVfZGV2aWNlX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJYWRldi0+dm1fbWFuYWdlci52bV9wdGVf ZnVuY3MgPSBOVUxMOwogCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX251bV9yaW5ncyA9IDA7CiAJ YWRldi0+Z2FydC5nYXJ0X2Z1bmNzID0gTlVMTDsKLQlhZGV2LT5mZW5jZV9jb250ZXh0ID0gZmVu Y2VfY29udGV4dF9hbGxvYyhBTURHUFVfTUFYX1JJTkdTKTsKKwlhZGV2LT5mZW5jZV9jb250ZXh0 ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoQU1ER1BVX01BWF9SSU5HUyk7CiAKIAlhZGV2LT5z bWNfcnJlZyA9ICZhbWRncHVfaW52YWxpZF9ycmVnOwogCWFkZXYtPnNtY193cmVnID0gJmFtZGdw dV9pbnZhbGlkX3dyZWc7CkBAIC0yMTkzLDcgKzIxOTMsNyBAQCBib29sIGFtZGdwdV9uZWVkX2Jh Y2t1cChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyBpbnQgYW1kZ3B1X3JlY292 ZXJfdnJhbV9mcm9tX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJICAg c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJCQkgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywK LQkJCQkJICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkJCSAgIHN0cnVjdCBkbWFfZmVuY2Ug KipmZW5jZSkKIHsKIAl1aW50MzJfdCBkb21haW47CiAJaW50IHI7CkBAIC0yMzEyLDMwICsyMzEy LDMwIEBAIGludCBhbWRncHVfZ3B1X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQog CQlpZiAobmVlZF9mdWxsX3Jlc2V0ICYmIGFtZGdwdV9uZWVkX2JhY2t1cChhZGV2KSkgewogCQkJ c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsK IAkJCXN0cnVjdCBhbWRncHVfYm8gKmJvLCAqdG1wOwotCQkJc3RydWN0IGZlbmNlICpmZW5jZSA9 IE5VTEwsICpuZXh0ID0gTlVMTDsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gTlVMTCwg Km5leHQgPSBOVUxMOwogCiAJCQlEUk1fSU5GTygicmVjb3ZlciB2cmFtIGJvIGZyb20gc2hhZG93 XG4iKTsKIAkJCW11dGV4X2xvY2soJmFkZXYtPnNoYWRvd19saXN0X2xvY2spOwogCQkJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKGJvLCB0bXAsICZhZGV2LT5zaGFkb3dfbGlzdCwgc2hhZG93X2xp c3QpIHsKIAkJCQlhbWRncHVfcmVjb3Zlcl92cmFtX2Zyb21fc2hhZG93KGFkZXYsIHJpbmcsIGJv LCAmbmV4dCk7CiAJCQkJaWYgKGZlbmNlKSB7Ci0JCQkJCXIgPSBmZW5jZV93YWl0KGZlbmNlLCBm YWxzZSk7CisJCQkJCXIgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOwogCQkJCQlpZiAo cikgewogCQkJCQkJV0FSTihyLCAicmVjb3ZlcnkgZnJvbSBzaGFkb3cgaXNuJ3QgY29tbGV0ZWRc biIpOwogCQkJCQkJYnJlYWs7CiAJCQkJCX0KIAkJCQl9CiAKLQkJCQlmZW5jZV9wdXQoZmVuY2Up OworCQkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQkJCWZlbmNlID0gbmV4dDsKIAkJCX0KIAkJ CW11dGV4X3VubG9jaygmYWRldi0+c2hhZG93X2xpc3RfbG9jayk7CiAJCQlpZiAoZmVuY2UpIHsK LQkJCQlyID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCQkJCXIgPSBkbWFfZmVuY2Vfd2Fp dChmZW5jZSwgZmFsc2UpOwogCQkJCWlmIChyKQogCQkJCQlXQVJOKHIsICJyZWNvdmVyeSBmcm9t IHNoYWRvdyBpc24ndCBjb21sZXRlZFxuIik7CiAJCQl9Ci0JCQlmZW5jZV9wdXQoZmVuY2UpOwor CQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCX0KIAkJZm9yIChpID0gMDsgaSA8IEFNREdQVV9N QVhfUklOR1M7ICsraSkgewogCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+cmlu Z3NbaV07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwppbmRl eCAwODNlMmI0Mjk4NzIuLjA3NWMwZDdkYjIwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZGlzcGxheS5jCkBAIC0zNSwyOSArMzUsMjkgQEAKICNpbmNsdWRlIDxkcm0v ZHJtX2NydGNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAKLXN0YXRpYyB2 b2lkIGFtZGdwdV9mbGlwX2NhbGxiYWNrKHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2Ni ICpjYikKK3N0YXRpYyB2b2lkIGFtZGdwdV9mbGlwX2NhbGxiYWNrKHN0cnVjdCBkbWFfZmVuY2Ug KmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRncHVfZmxpcF93b3Jr ICp3b3JrID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgYW1kZ3B1X2ZsaXBfd29yaywgY2Ip OwogCi0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiAJc2NoZWR1bGVfd29yaygm d29yay0+ZmxpcF93b3JrLndvcmspOwogfQogCiBzdGF0aWMgYm9vbCBhbWRncHVfZmxpcF9oYW5k bGVfZmVuY2Uoc3RydWN0IGFtZGdwdV9mbGlwX3dvcmsgKndvcmssCi0JCQkJICAgICBzdHJ1Y3Qg ZmVuY2UgKipmKQorCQkJCSAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmYpCiB7Ci0Jc3RydWN0IGZl bmNlICpmZW5jZT0gKmY7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U9ICpmOwogCiAJaWYgKGZl bmNlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKIAogCSpmID0gTlVMTDsKIAotCWlmICghZmVu Y2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmd29yay0+Y2IsIGFtZGdwdV9mbGlwX2NhbGxiYWNrKSkK KwlpZiAoIWRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZ3b3JrLT5jYiwgYW1kZ3B1X2Zs aXBfY2FsbGJhY2spKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWZlbmNlX3B1dChmZW5jZSk7CisJZG1h X2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yNDQsOSArMjQ0LDkg QEAgaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCiBjbGVhbnVwOgogCWFtZGdwdV9ib191bnJlZigmd29yay0+b2xkX2Fibyk7Ci0JZmVuY2Vf cHV0KHdvcmstPmV4Y2wpOworCWRtYV9mZW5jZV9wdXQod29yay0+ZXhjbCk7CiAJZm9yIChpID0g MDsgaSA8IHdvcmstPnNoYXJlZF9jb3VudDsgKytpKQotCQlmZW5jZV9wdXQod29yay0+c2hhcmVk W2ldKTsKKwkJZG1hX2ZlbmNlX3B1dCh3b3JrLT5zaGFyZWRbaV0pOwogCWtmcmVlKHdvcmstPnNo YXJlZCk7CiAJa2ZyZWUod29yayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2ZlbmNlLmMKaW5kZXggM2EyZTQyZjRiODk3Li41NzU1MmM3OWVjNTggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCkBAIC00OCw3ICs0OCw3IEBACiAgKi8KIAog c3RydWN0IGFtZGdwdV9mZW5jZSB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9m ZW5jZSBiYXNlOwogCiAJLyogUkIsIERNQSwgZXRjLiAqLwogCXN0cnVjdCBhbWRncHVfcmluZwkJ KnJpbmc7CkBAIC03Myw4ICs3Myw4IEBAIHZvaWQgYW1kZ3B1X2ZlbmNlX3NsYWJfZmluaSh2b2lk KQogLyoKICAqIENhc3QgaGVscGVyCiAgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz IGFtZGdwdV9mZW5jZV9vcHM7Ci1zdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZmVuY2UgKnRv X2FtZGdwdV9mZW5jZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9m ZW5jZV9vcHMgYW1kZ3B1X2ZlbmNlX29wczsKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9m ZW5jZSAqdG9fYW1kZ3B1X2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFt ZGdwdV9mZW5jZSAqX19mID0gY29udGFpbmVyX29mKGYsIHN0cnVjdCBhbWRncHVfZmVuY2UsIGJh c2UpOwogCkBAIC0xMzAsMTEgKzEzMCwxMSBAQCBzdGF0aWMgdTMyIGFtZGdwdV9mZW5jZV9yZWFk KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqIEVtaXRzIGEgZmVuY2UgY29tbWFuZCBvbiB0 aGUgcmVxdWVzdGVkIHJpbmcgKGFsbCBhc2ljcykuCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywg LUVOT01FTSBvbiBmYWlsdXJlLgogICovCi1pbnQgYW1kZ3B1X2ZlbmNlX2VtaXQoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVuY2UgKipmKQoraW50IGFtZGdwdV9mZW5jZV9lbWl0 KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGRtYV9mZW5jZSAqKmYpCiB7CiAJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfZmVu Y2UgKmZlbmNlOwotCXN0cnVjdCBmZW5jZSAqb2xkLCAqKnB0cjsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICpvbGQsICoqcHRyOwogCXVpbnQzMl90IHNlcTsKIAogCWZlbmNlID0ga21lbV9jYWNoZV9hbGxv YyhhbWRncHVfZmVuY2Vfc2xhYiwgR0ZQX0tFUk5FTCk7CkBAIC0xNDMsMTAgKzE0MywxMCBAQCBp bnQgYW1kZ3B1X2ZlbmNlX2VtaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVu Y2UgKipmKQogCiAJc2VxID0gKytyaW5nLT5mZW5jZV9kcnYuc3luY19zZXE7CiAJZmVuY2UtPnJp bmcgPSByaW5nOwotCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmYW1kZ3B1X2ZlbmNlX29wcywK LQkJICAgJnJpbmctPmZlbmNlX2Rydi5sb2NrLAotCQkgICBhZGV2LT5mZW5jZV9jb250ZXh0ICsg cmluZy0+aWR4LAotCQkgICBzZXEpOworCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJmFt ZGdwdV9mZW5jZV9vcHMsCisJCSAgICAgICAmcmluZy0+ZmVuY2VfZHJ2LmxvY2ssCisJCSAgICAg ICBhZGV2LT5mZW5jZV9jb250ZXh0ICsgcmluZy0+aWR4LAorCQkgICAgICAgc2VxKTsKIAlhbWRn cHVfcmluZ19lbWl0X2ZlbmNlKHJpbmcsIHJpbmctPmZlbmNlX2Rydi5ncHVfYWRkciwKIAkJCSAg ICAgICBzZXEsIEFNREdQVV9GRU5DRV9GTEFHX0lOVCk7CiAKQEAgLTE1NSwxMiArMTU1LDEyIEBA IGludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBm ZW5jZSAqKmYpCiAJICogZW1pdHRpbmcgdGhlIGZlbmNlIHdvdWxkIG1lc3MgdXAgdGhlIGhhcmR3 YXJlIHJpbmcgYnVmZmVyLgogCSAqLwogCW9sZCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQo KnB0ciwgMSk7Ci0JaWYgKG9sZCAmJiAhZmVuY2VfaXNfc2lnbmFsZWQob2xkKSkgeworCWlmIChv bGQgJiYgIWRtYV9mZW5jZV9pc19zaWduYWxlZChvbGQpKSB7CiAJCURSTV9JTkZPKCJyY3Ugc2xv dCBpcyBidXN5XG4iKTsKLQkJZmVuY2Vfd2FpdChvbGQsIGZhbHNlKTsKKwkJZG1hX2ZlbmNlX3dh aXQob2xkLCBmYWxzZSk7CiAJfQogCi0JcmN1X2Fzc2lnbl9wb2ludGVyKCpwdHIsIGZlbmNlX2dl dCgmZmVuY2UtPmJhc2UpKTsKKwlyY3VfYXNzaWduX3BvaW50ZXIoKnB0ciwgZG1hX2ZlbmNlX2dl dCgmZmVuY2UtPmJhc2UpKTsKIAogCSpmID0gJmZlbmNlLT5iYXNlOwogCkBAIC0yMTEsNyArMjEx LDcgQEAgdm9pZCBhbWRncHVfZmVuY2VfcHJvY2VzcyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp CiAJc2VxICY9IGRydi0+bnVtX2ZlbmNlc19tYXNrOwogCiAJZG8gewotCQlzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCAqKnB0cjsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsICoqcHRyOwogCiAJCSsr bGFzdF9zZXE7CiAJCWxhc3Rfc2VxICY9IGRydi0+bnVtX2ZlbmNlc19tYXNrOwpAQCAtMjI0LDEz ICsyMjQsMTMgQEAgdm9pZCBhbWRncHVfZmVuY2VfcHJvY2VzcyhzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpCiAJCWlmICghZmVuY2UpCiAJCQljb250aW51ZTsKIAotCQlyID0gZmVuY2Vfc2lnbmFs KGZlbmNlKTsKKwkJciA9IGRtYV9mZW5jZV9zaWduYWwoZmVuY2UpOwogCQlpZiAoIXIpCi0JCQlG RU5DRV9UUkFDRShmZW5jZSwgInNpZ25hbGVkIGZyb20gaXJxIGNvbnRleHRcbiIpOworCQkJRE1B X0ZFTkNFX1RSQUNFKGZlbmNlLCAic2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CiAJCWVs c2UKIAkJCUJVRygpOwogCi0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCX0gd2hpbGUgKGxhc3Rfc2VxICE9IHNlcSk7CiB9CiAKQEAgLTI2MCw3ICsyNjAsNyBA QCBzdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfZmFsbGJhY2sodW5zaWduZWQgbG9uZyBhcmcpCiBp bnQgYW1kZ3B1X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewog CXVpbnQ2NF90IHNlcSA9IEFDQ0VTU19PTkNFKHJpbmctPmZlbmNlX2Rydi5zeW5jX3NlcSk7Ci0J c3RydWN0IGZlbmNlICpmZW5jZSwgKipwdHI7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsICoq cHRyOwogCWludCByOwogCiAJaWYgKCFzZXEpCkBAIC0yNjksMTQgKzI2OSwxNCBAQCBpbnQgYW1k Z3B1X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCXB0ciA9ICZy aW5nLT5mZW5jZV9kcnYuZmVuY2VzW3NlcSAmIHJpbmctPmZlbmNlX2Rydi5udW1fZmVuY2VzX21h c2tdOwogCXJjdV9yZWFkX2xvY2soKTsKIAlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZSgqcHRyKTsK LQlpZiAoIWZlbmNlIHx8ICFmZW5jZV9nZXRfcmN1KGZlbmNlKSkgeworCWlmICghZmVuY2UgfHwg IWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKSkgewogCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJcmV0 dXJuIDA7CiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogCi0JciA9IGZlbmNlX3dhaXQoZmVuY2Us IGZhbHNlKTsKLQlmZW5jZV9wdXQoZmVuY2UpOworCXIgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwg ZmFsc2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiByOwogfQogCkBAIC00NTIs NyArNDUyLDcgQEAgdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX2Zpbmkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJCWFtZF9zY2hlZF9maW5pKCZyaW5nLT5zY2hlZCk7CiAJCWRlbF90aW1l cl9zeW5jKCZyaW5nLT5mZW5jZV9kcnYuZmFsbGJhY2tfdGltZXIpOwogCQlmb3IgKGogPSAwOyBq IDw9IHJpbmctPmZlbmNlX2Rydi5udW1fZmVuY2VzX21hc2s7ICsraikKLQkJCWZlbmNlX3B1dChy aW5nLT5mZW5jZV9kcnYuZmVuY2VzW2pdKTsKKwkJCWRtYV9mZW5jZV9wdXQocmluZy0+ZmVuY2Vf ZHJ2LmZlbmNlc1tqXSk7CiAJCWtmcmVlKHJpbmctPmZlbmNlX2Rydi5mZW5jZXMpOwogCQlyaW5n LT5mZW5jZV9kcnYuZmVuY2VzID0gTlVMTDsKIAkJcmluZy0+ZmVuY2VfZHJ2LmluaXRpYWxpemVk ID0gZmFsc2U7CkBAIC01NDEsMTIgKzU0MSwxMiBAQCB2b2lkIGFtZGdwdV9mZW5jZV9kcml2ZXJf Zm9yY2VfY29tcGxldGlvbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqIENvbW1vbiBm ZW5jZSBpbXBsZW1lbnRhdGlvbgogICovCiAKLXN0YXRpYyBjb25zdCBjaGFyICphbWRncHVfZmVu Y2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hh ciAqYW1kZ3B1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkK IHsKIAlyZXR1cm4gImFtZGdwdSI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICphbWRncHVfZmVu Y2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IGNoYXIg KmFtZGdwdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewog CXN0cnVjdCBhbWRncHVfZmVuY2UgKmZlbmNlID0gdG9fYW1kZ3B1X2ZlbmNlKGYpOwogCXJldHVy biAoY29uc3QgY2hhciAqKWZlbmNlLT5yaW5nLT5uYW1lOwpAQCAtNTYwLDcgKzU2MCw3IEBAIHN0 YXRpYyBjb25zdCBjaGFyICphbWRncHVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZl bmNlICpmKQogICogdG8gZmVuY2VfcXVldWUgdGhhdCBjaGVja3MgaWYgdGhpcyBmZW5jZSBpcyBz aWduYWxlZCwgYW5kIGlmIHNvIGl0CiAgKiBzaWduYWxzIHRoZSBmZW5jZSBhbmQgcmVtb3ZlcyBp dHNlbGYuCiAgKi8KLXN0YXRpYyBib29sIGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0 cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5n KHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFtZGdwdV9mZW5jZSAqZmVuY2UgPSB0 b19hbWRncHVfZmVuY2UoZik7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gZmVuY2UtPnJp bmc7CkBAIC01NjgsNyArNTY4LDcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X2ZlbmNlX2VuYWJsZV9z aWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQogCWlmICghdGltZXJfcGVuZGluZygmcmluZy0+ZmVu Y2VfZHJ2LmZhbGxiYWNrX3RpbWVyKSkKIAkJYW1kZ3B1X2ZlbmNlX3NjaGVkdWxlX2ZhbGxiYWNr KHJpbmcpOwogCi0JRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAiYXJtZWQgb24gcmluZyAlaSFc biIsIHJpbmctPmlkeCk7CisJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgImFybWVkIG9u IHJpbmcgJWkhXG4iLCByaW5nLT5pZHgpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC01ODIsNyAr NTgyLDcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0 IGZlbmNlICpmKQogICovCiBzdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfZnJlZShzdHJ1Y3QgcmN1 X2hlYWQgKnJjdSkKIHsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1 Y3QgZmVuY2UsIHJjdSk7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IGNvbnRhaW5lcl9vZihyY3Us IHN0cnVjdCBkbWFfZmVuY2UsIHJjdSk7CiAJc3RydWN0IGFtZGdwdV9mZW5jZSAqZmVuY2UgPSB0 b19hbWRncHVfZmVuY2UoZik7CiAJa21lbV9jYWNoZV9mcmVlKGFtZGdwdV9mZW5jZV9zbGFiLCBm ZW5jZSk7CiB9CkBAIC01OTUsMTYgKzU5NSwxNiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZmVuY2Vf ZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdo ZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBiZWNvbWVzIHplcm8uCiAgKiBJdCBqdXN0IFJDVSBzY2hl ZHVsZXMgZnJlZWluZyB1cCB0aGUgZmVuY2UuCiAgKi8KLXN0YXRpYyB2b2lkIGFtZGdwdV9mZW5j ZV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyB2b2lkIGFtZGdwdV9mZW5jZV9yZWxl YXNlKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJY2FsbF9yY3UoJmYtPnJjdSwgYW1kZ3B1X2Zl bmNlX2ZyZWUpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBhbWRncHVfZmVu Y2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGFtZGdwdV9mZW5j ZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IGFtZGdwdV9mZW5jZV9nZXRfZHJpdmVyX25h bWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gYW1kZ3B1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1l LAogCS5lbmFibGVfc2lnbmFsaW5nID0gYW1kZ3B1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCi0J LndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93 YWl0LAogCS5yZWxlYXNlID0gYW1kZ3B1X2ZlbmNlX3JlbGVhc2UsCiB9OwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCmluZGV4IDZhNmM4NmM5YzE2OS4uYzM2NzJkZmNmZDZh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwpAQCAtODksNyArODksNyBA QCBpbnQgYW1kZ3B1X2liX2dldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFt ZGdwdV92bSAqdm0sCiAgKiBGcmVlIGFuIElCIChhbGwgYXNpY3MpLgogICovCiB2b2lkIGFtZGdw dV9pYl9mcmVlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2liICpp YiwKLQkJICAgIHN0cnVjdCBmZW5jZSAqZikKKwkJICAgIHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7 CiAJYW1kZ3B1X3NhX2JvX2ZyZWUoYWRldiwgJmliLT5zYV9ibywgZik7CiB9CkBAIC0xMTYsOCAr MTE2LDggQEAgdm9pZCBhbWRncHVfaWJfZnJlZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg c3RydWN0IGFtZGdwdV9pYiAqaWIsCiAgKiB0byBTSSB0aGVyZSB3YXMganVzdCBhIERFIElCLgog ICovCiBpbnQgYW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5z aWduZWQgbnVtX2licywKLQkJICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmlicywgc3RydWN0IGZl bmNlICpsYXN0X3ZtX3VwZGF0ZSwKLQkJICAgICAgIHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0 cnVjdCBmZW5jZSAqKmYpCisJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYnMsIHN0cnVjdCBk bWFfZmVuY2UgKmxhc3Rfdm1fdXBkYXRlLAorCQkgICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpv Yiwgc3RydWN0IGRtYV9mZW5jZSAqKmYpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfaWIgKmliID0gJmlic1swXTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYwppbmRleCA4YzU4MDc5OTQwNzMuLmEwZGU2Mjg2 YzQ1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pvYi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYwpAQCAtODEsNyAr ODEsNyBAQCBpbnQgYW1kZ3B1X2pvYl9hbGxvY193aXRoX2liKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCB1bnNpZ25lZCBzaXplLAogCiB2b2lkIGFtZGdwdV9qb2JfZnJlZV9yZXNvdXJjZXMo c3RydWN0IGFtZGdwdV9qb2IgKmpvYikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3RydWN0IGRt YV9mZW5jZSAqZjsKIAl1bnNpZ25lZCBpOwogCiAJLyogdXNlIHNjaGVkIGZlbmNlIGlmIGF2YWls YWJsZSAqLwpAQCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfam9iX2ZyZWVfY2Io c3RydWN0IGFtZF9zY2hlZF9qb2IgKnNfam9iKQogewogCXN0cnVjdCBhbWRncHVfam9iICpqb2Ig PSBjb250YWluZXJfb2Yoc19qb2IsIHN0cnVjdCBhbWRncHVfam9iLCBiYXNlKTsKIAotCWZlbmNl X3B1dChqb2ItPmZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGpvYi0+ZmVuY2UpOwogCWFtZGdwdV9z eW5jX2ZyZWUoJmpvYi0+c3luYyk7CiAJa2ZyZWUoam9iKTsKIH0KQEAgLTEwNCwxNCArMTA0LDE0 IEBAIHZvaWQgYW1kZ3B1X2pvYl9mcmVlKHN0cnVjdCBhbWRncHVfam9iICpqb2IpCiB7CiAJYW1k Z3B1X2pvYl9mcmVlX3Jlc291cmNlcyhqb2IpOwogCi0JZmVuY2VfcHV0KGpvYi0+ZmVuY2UpOwor CWRtYV9mZW5jZV9wdXQoam9iLT5mZW5jZSk7CiAJYW1kZ3B1X3N5bmNfZnJlZSgmam9iLT5zeW5j KTsKIAlrZnJlZShqb2IpOwogfQogCiBpbnQgYW1kZ3B1X2pvYl9zdWJtaXQoc3RydWN0IGFtZGdw dV9qb2IgKmpvYiwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkgICAgICBzdHJ1Y3QgYW1k X3NjaGVkX2VudGl0eSAqZW50aXR5LCB2b2lkICpvd25lciwKLQkJICAgICAgc3RydWN0IGZlbmNl ICoqZikKKwkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmYpCiB7CiAJaW50IHI7CiAJam9iLT5y aW5nID0gcmluZzsKQEAgLTEyNSwxOSArMTI1LDE5IEBAIGludCBhbWRncHVfam9iX3N1Ym1pdChz dHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAKIAlqb2It Pm93bmVyID0gb3duZXI7CiAJam9iLT5mZW5jZV9jdHggPSBlbnRpdHktPmZlbmNlX2NvbnRleHQ7 Ci0JKmYgPSBmZW5jZV9nZXQoJmpvYi0+YmFzZS5zX2ZlbmNlLT5maW5pc2hlZCk7CisJKmYgPSBk bWFfZmVuY2VfZ2V0KCZqb2ItPmJhc2Uuc19mZW5jZS0+ZmluaXNoZWQpOwogCWFtZGdwdV9qb2Jf ZnJlZV9yZXNvdXJjZXMoam9iKTsKIAlhbWRfc2NoZWRfZW50aXR5X3B1c2hfam9iKCZqb2ItPmJh c2UpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2UgKmFtZGdwdV9qb2Jf ZGVwZW5kZW5jeShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKQorc3RhdGljIHN0cnVj dCBkbWFfZmVuY2UgKmFtZGdwdV9qb2JfZGVwZW5kZW5jeShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAq c2NoZWRfam9iKQogewogCXN0cnVjdCBhbWRncHVfam9iICpqb2IgPSB0b19hbWRncHVfam9iKHNj aGVkX2pvYik7CiAJc3RydWN0IGFtZGdwdV92bSAqdm0gPSBqb2ItPnZtOwogCi0Jc3RydWN0IGZl bmNlICpmZW5jZSA9IGFtZGdwdV9zeW5jX2dldF9mZW5jZSgmam9iLT5zeW5jKTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSA9IGFtZGdwdV9zeW5jX2dldF9mZW5jZSgmam9iLT5zeW5jKTsKIAog CWlmIChmZW5jZSA9PSBOVUxMICYmIHZtICYmICFqb2ItPnZtX2lkKSB7CiAJCXN0cnVjdCBhbWRn cHVfcmluZyAqcmluZyA9IGpvYi0+cmluZzsKQEAgLTE1NSw5ICsxNTUsOSBAQCBzdGF0aWMgc3Ry dWN0IGZlbmNlICphbWRncHVfam9iX2RlcGVuZGVuY3koc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNj aGVkX2pvYikKIAlyZXR1cm4gZmVuY2U7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2UgKmFtZGdw dV9qb2JfcnVuKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCitzdGF0aWMgc3RydWN0 IGRtYV9mZW5jZSAqYW1kZ3B1X2pvYl9ydW4oc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pv YikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSA9IE5VTEw7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsKIAlpbnQgcjsKIApAQCAtMTc2 LDggKzE3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZmVuY2UgKmFtZGdwdV9qb2JfcnVuKHN0cnVjdCBh bWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJCURSTV9FUlJPUigiRXJyb3Igc2NoZWR1bGluZyBJ QnMgKCVkKVxuIiwgcik7CiAKIAkvKiBpZiBncHUgcmVzZXQsIGh3IGZlbmNlIHdpbGwgYmUgcmVw bGFjZWQgaGVyZSAqLwotCWZlbmNlX3B1dChqb2ItPmZlbmNlKTsKLQlqb2ItPmZlbmNlID0gZmVu Y2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGpvYi0+ZmVuY2UpOworCWpvYi0+ZmVuY2Ug PSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAlhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKGpvYik7 CiAJcmV0dXJuIGZlbmNlOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29i amVjdC5jCmluZGV4IGFhMDc0ZmFjMGM3Zi4uNTVlMTQyYTVmZjVmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCkBAIC0zODMsNyArMzgzLDcgQEAgaW50IGFt ZGdwdV9ib19jcmVhdGVfcmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAog CWlmIChmbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ0xFQVJFRCAmJgogCSAgICBiby0+ dGJvLm1lbS5wbGFjZW1lbnQgJiBUVE1fUExfRkxBR19WUkFNKSB7Ci0JCXN0cnVjdCBmZW5jZSAq ZmVuY2U7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCWlmIChhZGV2LT5tbWFuLmJ1 ZmZlcl9mdW5jc19yaW5nID09IE5VTEwgfHwKIAkJICAgIWFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNz X3JpbmctPnJlYWR5KSB7CkBAIC00MDMsOSArNDAzLDkgQEAgaW50IGFtZGdwdV9ib19jcmVhdGVf cmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJYW1kZ3B1X2ZpbGxfYnVm ZmVyKGJvLCAwLCBiby0+dGJvLnJlc3YsICZmZW5jZSk7CiAJCWFtZGdwdV9ib19mZW5jZShibywg ZmVuY2UsIGZhbHNlKTsKIAkJYW1kZ3B1X2JvX3VucmVzZXJ2ZShibyk7Ci0JCWZlbmNlX3B1dChi by0+dGJvLm1vdmluZyk7Ci0JCWJvLT50Ym8ubW92aW5nID0gZmVuY2VfZ2V0KGZlbmNlKTsKLQkJ ZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChiby0+dGJvLm1vdmluZyk7CisJCWJv LT50Ym8ubW92aW5nID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCX0KIAkqYm9fcHRyID0gYm87CiAKQEAgLTQ5MSw3ICs0OTEsNyBAQCBpbnQgYW1kZ3B1 X2JvX2JhY2t1cF90b19zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAg ICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvLAogCQkJICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0JCQkgICAg ICAgc3RydWN0IGZlbmNlICoqZmVuY2UsCisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZl bmNlLAogCQkJICAgICAgIGJvb2wgZGlyZWN0KQogCiB7CkBAIC01MjMsNyArNTIzLDcgQEAgaW50 IGFtZGdwdV9ib19yZXN0b3JlX2Zyb21fc2hhZG93KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCQkJCSAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJCSAgc3RydWN0IGFtZGdwdV9i byAqYm8sCiAJCQkJICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJCSAgc3Ry dWN0IGZlbmNlICoqZmVuY2UsCisJCQkJICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UsCiAJCQkJ ICBib29sIGRpcmVjdCkKIAogewpAQCAtOTI2LDcgKzkyNiw3IEBAIGludCBhbWRncHVfYm9fZmF1 bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKICAqIEBzaGFy ZWQ6IHRydWUgaWYgZmVuY2Ugc2hvdWxkIGJlIGFkZGVkIHNoYXJlZAogICoKICAqLwotdm9pZCBh bWRncHVfYm9fZmVuY2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBmZW5jZSAqZmVuY2Us Cit2b2lkIGFtZGdwdV9ib19mZW5jZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UsCiAJCSAgICAgYm9vbCBzaGFyZWQpCiB7CiAJc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqcmVzdiA9IGJvLT50Ym8ucmVzdjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9vYmplY3QuaAppbmRleCA4MjU1MDM0ZDczZWIuLjNlNzg1ZWQzY2I0YiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaApAQCAtMTU2LDE5ICsxNTYs MTkgQEAgaW50IGFtZGdwdV9ib19nZXRfbWV0YWRhdGEoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHZv aWQgKmJ1ZmZlciwKIHZvaWQgYW1kZ3B1X2JvX21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCiAJCQkJICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pOwogaW50IGFt ZGdwdV9ib19mYXVsdF9yZXNlcnZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv KTsKLXZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCBzdHJ1Y3QgZmVu Y2UgKmZlbmNlLAordm9pZCBhbWRncHVfYm9fZmVuY2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAgIGJvb2wgc2hhcmVkKTsKIHU2NCBhbWRncHVf Ym9fZ3B1X29mZnNldChzdHJ1Y3QgYW1kZ3B1X2JvICpibyk7CiBpbnQgYW1kZ3B1X2JvX2JhY2t1 cF90b19zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICAgc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJ ICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0JCQkgICAgICAgc3RydWN0 IGZlbmNlICoqZmVuY2UsIGJvb2wgZGlyZWN0KTsKKwkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2UsIGJvb2wgZGlyZWN0KTsKIGludCBhbWRncHVfYm9fcmVzdG9yZV9mcm9tX3NoYWRv dyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkgIHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywKIAkJCQkgIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJCSAgc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdCAqcmVzdiwKLQkJCQkgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLAorCQkJCSAgc3Ry dWN0IGRtYV9mZW5jZSAqKmZlbmNlLAogCQkJCSAgYm9vbCBkaXJlY3QpOwogCiAKQEAgLTIwMCw3 ICsyMDAsNyBAQCBpbnQgYW1kZ3B1X3NhX2JvX25ldyhzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIg KnNhX21hbmFnZXIsCiAJCSAgICAgdW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgYWxpZ24pOwogdm9p ZCBhbWRncHVfc2FfYm9fZnJlZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAg IHN0cnVjdCBhbWRncHVfc2FfYm8gKipzYV9ibywKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVu Y2UpOworCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwogI2lmIGRlZmluZWQoQ09O RklHX0RFQlVHX0ZTKQogdm9pZCBhbWRncHVfc2FfYm9fZHVtcF9kZWJ1Z19pbmZvKHN0cnVjdCBh bWRncHVfc2FfbWFuYWdlciAqc2FfbWFuYWdlciwKIAkJCQkJIHN0cnVjdCBzZXFfZmlsZSAqbSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc2EuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zYS5jCmluZGV4IGQ4YWYzN2E4NDVmNC4u ZmQyNmM0YjhkNzkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfc2EuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc2EuYwpAQCAt MTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9zYV9ib19yZW1vdmVfbG9ja2VkKHN0 cnVjdCBhbWRncHVfc2FfYm8gKnNhX2JvKQogCX0KIAlsaXN0X2RlbF9pbml0KCZzYV9iby0+b2xp c3QpOwogCWxpc3RfZGVsX2luaXQoJnNhX2JvLT5mbGlzdCk7Ci0JZmVuY2VfcHV0KHNhX2JvLT5m ZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChzYV9iby0+ZmVuY2UpOwogCWtmcmVlKHNhX2JvKTsKIH0K IApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9zYV9ib190cnlfZnJlZShz dHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIpCiAJc2FfYm8gPSBsaXN0X2VudHJ5 KHNhX21hbmFnZXItPmhvbGUtPm5leHQsIHN0cnVjdCBhbWRncHVfc2FfYm8sIG9saXN0KTsKIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfZnJvbShzYV9ibywgdG1wLCAmc2FfbWFuYWdlci0+b2xp c3QsIG9saXN0KSB7CiAJCWlmIChzYV9iby0+ZmVuY2UgPT0gTlVMTCB8fAotCQkgICAgIWZlbmNl X2lzX3NpZ25hbGVkKHNhX2JvLT5mZW5jZSkpIHsKKwkJICAgICFkbWFfZmVuY2VfaXNfc2lnbmFs ZWQoc2FfYm8tPmZlbmNlKSkgewogCQkJcmV0dXJuOwogCQl9CiAJCWFtZGdwdV9zYV9ib19yZW1v dmVfbG9ja2VkKHNhX2JvKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0aWMgYm9vbCBhbWRncHVf c2FfZXZlbnQoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogfQogCiBzdGF0 aWMgYm9vbCBhbWRncHVfc2FfYm9fbmV4dF9ob2xlKHN0cnVjdCBhbWRncHVfc2FfbWFuYWdlciAq c2FfbWFuYWdlciwKLQkJCQkgICBzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsCisJCQkJICAgc3RydWN0 IGRtYV9mZW5jZSAqKmZlbmNlcywKIAkJCQkgICB1bnNpZ25lZCAqdHJpZXMpCiB7CiAJc3RydWN0 IGFtZGdwdV9zYV9ibyAqYmVzdF9ibyA9IE5VTEw7CkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGlj IGJvb2wgYW1kZ3B1X3NhX2JvX25leHRfaG9sZShzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNh X21hbmFnZXIsCiAJCXNhX2JvID0gbGlzdF9maXJzdF9lbnRyeSgmc2FfbWFuYWdlci0+Zmxpc3Rb aV0sCiAJCQkJCSBzdHJ1Y3QgYW1kZ3B1X3NhX2JvLCBmbGlzdCk7CiAKLQkJaWYgKCFmZW5jZV9p c19zaWduYWxlZChzYV9iby0+ZmVuY2UpKSB7CisJCWlmICghZG1hX2ZlbmNlX2lzX3NpZ25hbGVk KHNhX2JvLT5mZW5jZSkpIHsKIAkJCWZlbmNlc1tpXSA9IHNhX2JvLT5mZW5jZTsKIAkJCWNvbnRp bnVlOwogCQl9CkBAIC0zMTQsNyArMzE0LDcgQEAgaW50IGFtZGdwdV9zYV9ib19uZXcoc3RydWN0 IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogCQkgICAgIHN0cnVjdCBhbWRncHVfc2Ff Ym8gKipzYV9ibywKIAkJICAgICB1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbikKIHsKLQlz dHJ1Y3QgZmVuY2UgKmZlbmNlc1tBTURHUFVfU0FfTlVNX0ZFTkNFX0xJU1RTXTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZXNbQU1ER1BVX1NBX05VTV9GRU5DRV9MSVNUU107CiAJdW5zaWduZWQg dHJpZXNbQU1ER1BVX1NBX05VTV9GRU5DRV9MSVNUU107CiAJdW5zaWduZWQgY291bnQ7CiAJaW50 IGksIHI7CkBAIC0zNTYsMTQgKzM1NiwxNCBAQCBpbnQgYW1kZ3B1X3NhX2JvX25ldyhzdHJ1Y3Qg YW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCiAKIAkJZm9yIChpID0gMCwgY291bnQgPSAw OyBpIDwgQU1ER1BVX1NBX05VTV9GRU5DRV9MSVNUUzsgKytpKQogCQkJaWYgKGZlbmNlc1tpXSkK LQkJCQlmZW5jZXNbY291bnQrK10gPSBmZW5jZV9nZXQoZmVuY2VzW2ldKTsKKwkJCQlmZW5jZXNb Y291bnQrK10gPSBkbWFfZmVuY2VfZ2V0KGZlbmNlc1tpXSk7CiAKIAkJaWYgKGNvdW50KSB7CiAJ CQlzcGluX3VubG9jaygmc2FfbWFuYWdlci0+d3EubG9jayk7Ci0JCQl0ID0gZmVuY2Vfd2FpdF9h bnlfdGltZW91dChmZW5jZXMsIGNvdW50LCBmYWxzZSwKLQkJCQkJCSAgIE1BWF9TQ0hFRFVMRV9U SU1FT1VUKTsKKwkJCXQgPSBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dChmZW5jZXMsIGNvdW50 LCBmYWxzZSwKKwkJCQkJCSAgICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAJCQlmb3IgKGkg PSAwOyBpIDwgY291bnQ7ICsraSkKLQkJCQlmZW5jZV9wdXQoZmVuY2VzW2ldKTsKKwkJCQlkbWFf ZmVuY2VfcHV0KGZlbmNlc1tpXSk7CiAKIAkJCXIgPSAodCA+IDApID8gMCA6IHQ7CiAJCQlzcGlu X2xvY2soJnNhX21hbmFnZXItPndxLmxvY2spOwpAQCAtMzg0LDcgKzM4NCw3IEBAIGludCBhbWRn cHVfc2FfYm9fbmV3KHN0cnVjdCBhbWRncHVfc2FfbWFuYWdlciAqc2FfbWFuYWdlciwKIH0KIAog dm9pZCBhbWRncHVfc2FfYm9fZnJlZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0 IGFtZGdwdV9zYV9ibyAqKnNhX2JvLAotCQkgICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJ ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBhbWRncHVfc2FfbWFu YWdlciAqc2FfbWFuYWdlcjsKIApAQCAtMzk0LDEwICszOTQsMTAgQEAgdm9pZCBhbWRncHVfc2Ff Ym9fZnJlZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9zYV9ibyAq KnNhX2JvLAogCiAJc2FfbWFuYWdlciA9ICgqc2FfYm8pLT5tYW5hZ2VyOwogCXNwaW5fbG9jaygm c2FfbWFuYWdlci0+d3EubG9jayk7Ci0JaWYgKGZlbmNlICYmICFmZW5jZV9pc19zaWduYWxlZChm ZW5jZSkpIHsKKwlpZiAoZmVuY2UgJiYgIWRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpIHsK IAkJdWludDMyX3QgaWR4OwogCi0JCSgqc2FfYm8pLT5mZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7 CisJCSgqc2FfYm8pLT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCQlpZHggPSBmZW5j ZS0+Y29udGV4dCAlIEFNREdQVV9TQV9OVU1fRkVOQ0VfTElTVFM7CiAJCWxpc3RfYWRkX3RhaWwo Jigqc2FfYm8pLT5mbGlzdCwgJnNhX21hbmFnZXItPmZsaXN0W2lkeF0pOwogCX0gZWxzZSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYwppbmRleCA1YzhkMzAyMmZiODcu LmVkODE0ZTZkMDIwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3N5bmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5j CkBAIC0zNCw3ICszNCw3IEBACiAKIHN0cnVjdCBhbWRncHVfc3luY19lbnRyeSB7CiAJc3RydWN0 IGhsaXN0X25vZGUJbm9kZTsKLQlzdHJ1Y3QgZmVuY2UJCSpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2Zl bmNlCSpmZW5jZTsKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqYW1kZ3B1X3N5bmNf c2xhYjsKQEAgLTYwLDcgKzYwLDggQEAgdm9pZCBhbWRncHVfc3luY19jcmVhdGUoc3RydWN0IGFt ZGdwdV9zeW5jICpzeW5jKQogICoKICAqIFRlc3QgaWYgdGhlIGZlbmNlIHdhcyBpc3N1ZWQgYnkg dXMuCiAgKi8KLXN0YXRpYyBib29sIGFtZGdwdV9zeW5jX3NhbWVfZGV2KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LCBzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCBhbWRncHVfc3luY19z YW1lX2RldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkgc3RydWN0IGRtYV9mZW5j ZSAqZikKIHsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gdG9fYW1kX3NjaGVk X2ZlbmNlKGYpOwogCkBAIC04MSw3ICs4Miw3IEBAIHN0YXRpYyBib29sIGFtZGdwdV9zeW5jX3Nh bWVfZGV2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZmVuY2UgKmYpCiAgKgog ICogRXh0cmFjdCB3aG8gb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBmZW5jZS4KICAqLwotc3RhdGlj IHZvaWQgKmFtZGdwdV9zeW5jX2dldF9vd25lcihzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgdm9p ZCAqYW1kZ3B1X3N5bmNfZ2V0X293bmVyKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0 IGFtZF9zY2hlZF9mZW5jZSAqc19mZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShmKTsKIApAQCAt OTksMTMgKzEwMCwxNCBAQCBzdGF0aWMgdm9pZCAqYW1kZ3B1X3N5bmNfZ2V0X293bmVyKHN0cnVj dCBmZW5jZSAqZikKICAqCiAgKiBFaXRoZXIga2VlcCB0aGUgZXhpc3RpbmcgZmVuY2Ugb3IgdGhl IG5ldyBvbmUsIGRlcGVuZGluZyB3aGljaCBvbmUgaXMgbGF0ZXIuCiAgKi8KLXN0YXRpYyB2b2lk IGFtZGdwdV9zeW5jX2tlZXBfbGF0ZXIoc3RydWN0IGZlbmNlICoqa2VlcCwgc3RydWN0IGZlbmNl ICpmZW5jZSkKK3N0YXRpYyB2b2lkIGFtZGdwdV9zeW5jX2tlZXBfbGF0ZXIoc3RydWN0IGRtYV9m ZW5jZSAqKmtlZXAsCisJCQkJICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JaWYgKCpr ZWVwICYmIGZlbmNlX2lzX2xhdGVyKCprZWVwLCBmZW5jZSkpCisJaWYgKCprZWVwICYmIGRtYV9m ZW5jZV9pc19sYXRlcigqa2VlcCwgZmVuY2UpKQogCQlyZXR1cm47CiAKLQlmZW5jZV9wdXQoKmtl ZXApOwotCSprZWVwID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KCprZWVwKTsK Kwkqa2VlcCA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOwogfQogCiAvKioKQEAgLTExNyw3ICsxMTks NyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfc3luY19rZWVwX2xhdGVyKHN0cnVjdCBmZW5jZSAqKmtl ZXAsIHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAgKiBUcmllcyB0byBhZGQgdGhlIGZlbmNlIHRvIGFu IGV4aXN0aW5nIGhhc2ggZW50cnkuIFJldHVybnMgdHJ1ZSB3aGVuIGFuIGVudHJ5CiAgKiB3YXMg Zm91bmQsIGZhbHNlIG90aGVyd2lzZS4KICAqLwotc3RhdGljIGJvb2wgYW1kZ3B1X3N5bmNfYWRk X2xhdGVyKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywgc3RydWN0IGZlbmNlICpmKQorc3RhdGlj IGJvb2wgYW1kZ3B1X3N5bmNfYWRkX2xhdGVyKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywgc3Ry dWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAKQEAg LTEzOSw3ICsxNDEsNyBAQCBzdGF0aWMgYm9vbCBhbWRncHVfc3luY19hZGRfbGF0ZXIoc3RydWN0 IGFtZGdwdV9zeW5jICpzeW5jLCBzdHJ1Y3QgZmVuY2UgKmYpCiAgKgogICovCiBpbnQgYW1kZ3B1 X3N5bmNfZmVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc3lu YyAqc3luYywKLQkJICAgICAgc3RydWN0IGZlbmNlICpmKQorCQkgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICpmKQogewogCXN0cnVjdCBhbWRncHVfc3luY19lbnRyeSAqZTsKIApAQCAtMTU4LDcgKzE2 MCw3IEBAIGludCBhbWRncHVfc3luY19mZW5jZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg c3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWhhc2hfYWRk KHN5bmMtPmZlbmNlcywgJmUtPm5vZGUsIGYtPmNvbnRleHQpOwotCWUtPmZlbmNlID0gZmVuY2Vf Z2V0KGYpOworCWUtPmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKIAlyZXR1cm4gMDsKIH0KIApA QCAtMTc3LDcgKzE3OSw3IEBAIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAogCQkgICAgIHZvaWQgKm93bmVyKQogewogCXN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3RfbGlzdCAqZmxpc3Q7Ci0Jc3RydWN0IGZlbmNlICpmOworCXN0cnVjdCBkbWFfZmVuY2Ug KmY7CiAJdm9pZCAqZmVuY2Vfb3duZXI7CiAJdW5zaWduZWQgaTsKIAlpbnQgciA9IDA7CkBAIC0y MzEsMTUgKzIzMywxNSBAQCBpbnQgYW1kZ3B1X3N5bmNfcmVzdihzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKICAqIFJldHVybnMgdGhlIG5leHQgZmVuY2Ugbm90IHNpZ25hbGVkIHlldCB3aXRo b3V0IHJlbW92aW5nIGl0IGZyb20gdGhlIHN5bmMKICAqIG9iamVjdC4KICAqLwotc3RydWN0IGZl bmNlICphbWRncHVfc3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKLQkJ CQkgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKK3N0cnVjdCBkbWFfZmVuY2UgKmFtZGdw dV9zeW5jX3BlZWtfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAorCQkJCQkgc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nKQogewogCXN0cnVjdCBhbWRncHVfc3luY19lbnRyeSAqZTsKIAlz dHJ1Y3QgaGxpc3Rfbm9kZSAqdG1wOwogCWludCBpOwogCiAJaGFzaF9mb3JfZWFjaF9zYWZlKHN5 bmMtPmZlbmNlcywgaSwgdG1wLCBlLCBub2RlKSB7Ci0JCXN0cnVjdCBmZW5jZSAqZiA9IGUtPmZl bmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gZS0+ZmVuY2U7CiAJCXN0cnVjdCBhbWRfc2No ZWRfZmVuY2UgKnNfZmVuY2UgPSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAKIAkJaWYgKHJpbmcg JiYgc19mZW5jZSkgewpAQCAtMjQ3LDE2ICsyNDksMTYgQEAgc3RydWN0IGZlbmNlICphbWRncHVf c3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKIAkJCSAqIHdoZW4gdGhl eSBhcmUgc2NoZWR1bGVkLgogCQkJICovCiAJCQlpZiAoc19mZW5jZS0+c2NoZWQgPT0gJnJpbmct PnNjaGVkKSB7Ci0JCQkJaWYgKGZlbmNlX2lzX3NpZ25hbGVkKCZzX2ZlbmNlLT5zY2hlZHVsZWQp KQorCQkJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJnNfZmVuY2UtPnNjaGVkdWxlZCkpCiAJ CQkJCWNvbnRpbnVlOwogCiAJCQkJcmV0dXJuICZzX2ZlbmNlLT5zY2hlZHVsZWQ7CiAJCQl9CiAJ CX0KIAotCQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZikpIHsKKwkJaWYgKGRtYV9mZW5jZV9pc19z aWduYWxlZChmKSkgewogCQkJaGFzaF9kZWwoJmUtPm5vZGUpOwotCQkJZmVuY2VfcHV0KGYpOwor CQkJZG1hX2ZlbmNlX3B1dChmKTsKIAkJCWttZW1fY2FjaGVfZnJlZShhbWRncHVfc3luY19zbGFi LCBlKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0yNzQsMTEgKzI3NiwxMSBAQCBzdHJ1Y3QgZmVu Y2UgKmFtZGdwdV9zeW5jX3BlZWtfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAogICoK ICAqIEdldCBhbmQgcmVtb3ZlcyB0aGUgbmV4dCBmZW5jZSBmcm9tIHRoZSBzeW5jIG9iamVjdCBu b3Qgc2lnbmFsZWQgeWV0LgogICovCi1zdHJ1Y3QgZmVuY2UgKmFtZGdwdV9zeW5jX2dldF9mZW5j ZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMpCitzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfc3lu Y19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKQogewogCXN0cnVjdCBhbWRncHVf c3luY19lbnRyeSAqZTsKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqdG1wOwotCXN0cnVjdCBmZW5jZSAq ZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCWludCBpOwogCiAJaGFzaF9mb3JfZWFjaF9zYWZl KHN5bmMtPmZlbmNlcywgaSwgdG1wLCBlLCBub2RlKSB7CkBAIC0yODgsMTAgKzI5MCwxMCBAQCBz dHJ1Y3QgZmVuY2UgKmFtZGdwdV9zeW5jX2dldF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5 bmMpCiAJCWhhc2hfZGVsKCZlLT5ub2RlKTsKIAkJa21lbV9jYWNoZV9mcmVlKGFtZGdwdV9zeW5j X3NsYWIsIGUpOwogCi0JCWlmICghZmVuY2VfaXNfc2lnbmFsZWQoZikpCisJCWlmICghZG1hX2Zl bmNlX2lzX3NpZ25hbGVkKGYpKQogCQkJcmV0dXJuIGY7CiAKLQkJZmVuY2VfcHV0KGYpOworCQlk bWFfZmVuY2VfcHV0KGYpOwogCX0KIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTMxMSwxMSArMzEzLDEx IEBAIHZvaWQgYW1kZ3B1X3N5bmNfZnJlZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMpCiAKIAlo YXNoX2Zvcl9lYWNoX3NhZmUoc3luYy0+ZmVuY2VzLCBpLCB0bXAsIGUsIG5vZGUpIHsKIAkJaGFz aF9kZWwoJmUtPm5vZGUpOwotCQlmZW5jZV9wdXQoZS0+ZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0 KGUtPmZlbmNlKTsKIAkJa21lbV9jYWNoZV9mcmVlKGFtZGdwdV9zeW5jX3NsYWIsIGUpOwogCX0K IAotCWZlbmNlX3B1dChzeW5jLT5sYXN0X3ZtX3VwZGF0ZSk7CisJZG1hX2ZlbmNlX3B1dChzeW5j LT5sYXN0X3ZtX3VwZGF0ZSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3Rlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90ZXN0LmMKaW5kZXggYjgyN2M3NWU5NWRlLi5lMDVhMjQzMjVlZWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMg dm9pZCBhbWRncHVfZG9fdGVzdF9tb3ZlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJ dm9pZCAqZ3R0X21hcCwgKnZyYW1fbWFwOwogCQl2b2lkICoqZ3R0X3N0YXJ0LCAqKmd0dF9lbmQ7 CiAJCXZvaWQgKip2cmFtX3N0YXJ0LCAqKnZyYW1fZW5kOwotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNl ID0gTlVMTDsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCiAJCXIgPSBhbWRn cHVfYm9fY3JlYXRlKGFkZXYsIHNpemUsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkgICAgIEFNREdQ VV9HRU1fRE9NQUlOX0dUVCwgMCwgTlVMTCwKQEAgLTExOCwxMyArMTE4LDEzIEBAIHN0YXRpYyB2 b2lkIGFtZGdwdV9kb190ZXN0X21vdmVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJ Z290byBvdXRfbGNsZWFuX3VucGluOwogCQl9CiAKLQkJciA9IGZlbmNlX3dhaXQoZmVuY2UsIGZh bHNlKTsKKwkJciA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7CiAJCWlmIChyKSB7CiAJ CQlEUk1fRVJST1IoIkZhaWxlZCB0byB3YWl0IGZvciBHVFQtPlZSQU0gZmVuY2UgJWRcbiIsIGkp OwogCQkJZ290byBvdXRfbGNsZWFuX3VucGluOwogCQl9CiAKLQkJZmVuY2VfcHV0KGZlbmNlKTsK KwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAKIAkJciA9IGFtZGdwdV9ib19rbWFwKHZyYW1fb2Jq LCAmdnJhbV9tYXApOwogCQlpZiAocikgewpAQCAtMTYzLDEzICsxNjMsMTMgQEAgc3RhdGljIHZv aWQgYW1kZ3B1X2RvX3Rlc3RfbW92ZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQln b3RvIG91dF9sY2xlYW5fdW5waW47CiAJCX0KIAotCQlyID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFs c2UpOworCQlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJaWYgKHIpIHsKIAkJ CURSTV9FUlJPUigiRmFpbGVkIHRvIHdhaXQgZm9yIFZSQU0tPkdUVCBmZW5jZSAlZFxuIiwgaSk7 CiAJCQlnb3RvIG91dF9sY2xlYW5fdW5waW47CiAJCX0KIAotCQlmZW5jZV9wdXQoZmVuY2UpOwor CQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAogCQlyID0gYW1kZ3B1X2JvX2ttYXAoZ3R0X29ialtp XSwgJmd0dF9tYXApOwogCQlpZiAocikgewpAQCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyB2b2lk IGFtZGdwdV9kb190ZXN0X21vdmVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJYW1k Z3B1X2JvX3VucmVmKCZndHRfb2JqW2ldKTsKIAkJfQogCQlpZiAoZmVuY2UpCi0JCQlmZW5jZV9w dXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCWJyZWFrOwogCX0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNlLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHJhY2UuaAppbmRleCAwNjdlNWU2ODNiYjMu LmJiOTY0YThmZjkzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNl LmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBUUkFDRV9FVkVOVChhbWRncHVfY3NfaW9jdGwsCiAJCQkg ICAgIF9fZmllbGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiwgYWRldikKIAkJCSAgICAgX19maWVs ZChzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqLCBzY2hlZF9qb2IpCiAJCQkgICAgIF9fZmllbGQoc3Ry dWN0IGFtZGdwdV9pYiAqLCBpYikKLQkJCSAgICAgX19maWVsZChzdHJ1Y3QgZmVuY2UgKiwgZmVu Y2UpCisJCQkgICAgIF9fZmllbGQoc3RydWN0IGRtYV9mZW5jZSAqLCBmZW5jZSkKIAkJCSAgICAg X19maWVsZChjaGFyICosIHJpbmdfbmFtZSkKIAkJCSAgICAgX19maWVsZCh1MzIsIG51bV9pYnMp CiAJCQkgICAgICksCkBAIC0xMjksNyArMTI5LDcgQEAgVFJBQ0VfRVZFTlQoYW1kZ3B1X3NjaGVk X3J1bl9qb2IsCiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiwgYWRldikK IAkJCSAgICAgX19maWVsZChzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqLCBzY2hlZF9qb2IpCiAJCQkg ICAgIF9fZmllbGQoc3RydWN0IGFtZGdwdV9pYiAqLCBpYikKLQkJCSAgICAgX19maWVsZChzdHJ1 Y3QgZmVuY2UgKiwgZmVuY2UpCisJCQkgICAgIF9fZmllbGQoc3RydWN0IGRtYV9mZW5jZSAqLCBm ZW5jZSkKIAkJCSAgICAgX19maWVsZChjaGFyICosIHJpbmdfbmFtZSkKIAkJCSAgICAgX19maWVs ZCh1MzIsIG51bV9pYnMpCiAJCQkgICAgICksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMKaW5kZXggZGNhZjY5MWY1NmI1Li5hNzQzYWVhYmM3NjcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50 IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7CiAJdWludDY0 X3Qgb2xkX3N0YXJ0LCBuZXdfc3RhcnQ7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQgcjsKIAogCWFkZXYgPSBhbWRncHVfZ2V0X2FkZXYoYm8t PmJkZXYpOwpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X21vdmVfYmxpdChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlyZXR1cm4gcjsKIAogCXIgPSB0dG1fYm9f cGlwZWxpbmVfbW92ZShibywgZmVuY2UsIGV2aWN0LCBuZXdfbWVtKTsKLQlmZW5jZV9wdXQoZmVu Y2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiByOwogfQogCkBAIC0xMjQ3LDcg KzEyNDcsNyBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywKIAkJICAgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCSAgICAgICB1aW50MzJfdCBieXRl X2NvdW50LAogCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJICAg ICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQpCisJCSAgICAgICBz dHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UsIGJvb2wgZGlyZWN0X3N1Ym1pdCkKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpv YjsKQEAgLTEyOTQsNyArMTI5NCw3IEBAIGludCBhbWRncHVfY29weV9idWZmZXIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLAogCWlmIChkaXJlY3Rfc3VibWl0KSB7CiAJCXIgPSBhbWRncHVfaWJf c2NoZWR1bGUocmluZywgam9iLT5udW1faWJzLCBqb2ItPmlicywKIAkJCQkgICAgICAgTlVMTCwg TlVMTCwgZmVuY2UpOwotCQlqb2ItPmZlbmNlID0gZmVuY2VfZ2V0KCpmZW5jZSk7CisJCWpvYi0+ ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KCpmZW5jZSk7CiAJCWlmIChyKQogCQkJRFJNX0VSUk9SKCJF cnJvciBzY2hlZHVsaW5nIElCcyAoJWQpXG4iLCByKTsKIAkJYW1kZ3B1X2pvYl9mcmVlKGpvYik7 CkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAq Ym8sCiAJCXVpbnQzMl90IHNyY19kYXRhLAogCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpy ZXN2LAotCQlzdHJ1Y3QgZmVuY2UgKipmZW5jZSkKKwkJc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNl KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYm8tPmFkZXY7CiAJc3RydWN0IGFt ZGdwdV9qb2IgKmpvYjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAppbmRl eCA5ODEyYzgwNTMyNmMuLjNmMjkzZTE4OTM3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uaApAQCAtNzcsMTEgKzc3LDExIEBAIGludCBhbWRncHVfY29weV9idWZmZXIo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkgICAgICAgdWludDY0X3QgZHN0X29mZnNldCwK IAkJICAgICAgIHVpbnQzMl90IGJ5dGVfY291bnQsCiAJCSAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRp b25fb2JqZWN0ICpyZXN2LAotCQkgICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UsIGJvb2wgZGly ZWN0X3N1Ym1pdCk7CisJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UsIGJvb2wgZGly ZWN0X3N1Ym1pdCk7CiBpbnQgYW1kZ3B1X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVfYm8gKmJv LAogCQkJdWludDMyX3Qgc3JjX2RhdGEsCiAJCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpy ZXN2LAotCQkJc3RydWN0IGZlbmNlICoqZmVuY2UpOworCQkJc3RydWN0IGRtYV9mZW5jZSAqKmZl bmNlKTsKIAogaW50IGFtZGdwdV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSk7CiBib29sIGFtZGdwdV90dG1faXNfYm91bmQoc3RydWN0IHR0bV90dCAq dHRtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwppbmRleCBlMzI4MWNh Y2M1ODYuLjBmNjU3NWU3ZWY4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91 dmQuYwpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgYW1kZ3B1X3V2ZF9mcmVlX2hhbmRsZXMoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKIAlmb3IgKGkg PSAwOyBpIDwgYWRldi0+dXZkLm1heF9oYW5kbGVzOyArK2kpIHsKIAkJdWludDMyX3QgaGFuZGxl ID0gYXRvbWljX3JlYWQoJmFkZXYtPnV2ZC5oYW5kbGVzW2ldKTsKIAkJaWYgKGhhbmRsZSAhPSAw ICYmIGFkZXYtPnV2ZC5maWxwW2ldID09IGZpbHApIHsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2U7 CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQkJciA9IGFtZGdwdV91dmRfZ2V0X2Rl c3Ryb3lfbXNnKHJpbmcsIGhhbmRsZSwKIAkJCQkJCSAgICAgICBmYWxzZSwgJmZlbmNlKTsKQEAg LTM0Miw4ICszNDIsOCBAQCB2b2lkIGFtZGdwdV91dmRfZnJlZV9oYW5kbGVzKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAJCQkJY29udGludWU7CiAJ CQl9CiAKLQkJCWZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKLQkJCWZlbmNlX3B1dChmZW5jZSk7 CisJCQlkbWFfZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCQkJZG1hX2ZlbmNlX3B1dChmZW5j ZSk7CiAKIAkJCWFkZXYtPnV2ZC5maWxwW2ldID0gTlVMTDsKIAkJCWF0b21pY19zZXQoJmFkZXYt PnV2ZC5oYW5kbGVzW2ldLCAwKTsKQEAgLTkwOSwxNCArOTA5LDE0IEBAIGludCBhbWRncHVfdXZk X3JpbmdfcGFyc2VfY3Moc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgdWludDMyX3Qg aWJfaWR4KQogfQogCiBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKLQkJCSAgICAgICBib29sIGRpcmVj dCwgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciB0djsKIAlz dHJ1Y3Qgd3dfYWNxdWlyZV9jdHggdGlja2V0OwogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKIAlz dHJ1Y3QgYW1kZ3B1X2pvYiAqam9iOwogCXN0cnVjdCBhbWRncHVfaWIgKmliOwotCXN0cnVjdCBm ZW5jZSAqZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXVpbnQ2NF90IGFkZHI7CiAJaW50IGks IHI7CkBAIC05NjAsNyArOTYwLDcgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAKIAlpZiAoZGly ZWN0KSB7CiAJCXIgPSBhbWRncHVfaWJfc2NoZWR1bGUocmluZywgMSwgaWIsIE5VTEwsIE5VTEws ICZmKTsKLQkJam9iLT5mZW5jZSA9IGZlbmNlX2dldChmKTsKKwkJam9iLT5mZW5jZSA9IGRtYV9m ZW5jZV9nZXQoZik7CiAJCWlmIChyKQogCQkJZ290byBlcnJfZnJlZTsKIApAQCAtOTc1LDkgKzk3 NSw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCXR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0 cygmdGlja2V0LCAmaGVhZCwgZik7CiAKIAlpZiAoZmVuY2UpCi0JCSpmZW5jZSA9IGZlbmNlX2dl dChmKTsKKwkJKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKIAlhbWRncHVfYm9fdW5yZWYoJmJv KTsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIAogCXJldHVybiAwOwogCkBA IC05OTMsNyArOTkzLDcgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAgICBjcmFzaCB0aGUgdmNw dSBzbyBqdXN0IHRyeSB0byBlbW1pdCBhIGR1bW15IGNyZWF0ZS9kZXN0cm95IG1zZyB0bwogICAg YXZvaWQgdGhpcyAqLwogaW50IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipm ZW5jZSkKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9ibyAqYm87CkBA IC0xMDQyLDcgKzEwNDIsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9nZXRfY3JlYXRlX21zZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKIH0KIAogaW50IGFtZGdwdV91dmRf Z2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxl LAotCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZmVuY2UgKipmZW5jZSkKKwkJCSAgICAg ICBib29sIGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKQogewogCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKQEAg LTExMjgsNyArMTEyOCw3IEBAIHZvaWQgYW1kZ3B1X3V2ZF9yaW5nX2VuZF91c2Uoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nKQogICovCiBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rlc3RfaWIoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5j ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlsb25nIHI7CiAKIAlyID0gYW1kZ3B1X3V2 ZF9nZXRfY3JlYXRlX21zZyhyaW5nLCAxLCBOVUxMKTsKQEAgLTExNDMsNyArMTE0Myw3IEBAIGlu dCBhbWRncHVfdXZkX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcg dGltZW91dCkKIAkJZ290byBlcnJvcjsKIAl9CiAKLQlyID0gZmVuY2Vfd2FpdF90aW1lb3V0KGZl bmNlLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2Us IGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJ QiB0ZXN0IHRpbWVkIG91dC5cbiIpOwogCQlyID0gLUVUSU1FRE9VVDsKQEAgLTExNTQsNyArMTE1 NCw3IEBAIGludCBhbWRncHVfdXZkX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIGxvbmcgdGltZW91dCkKIAkJciA9IDA7CiAJfQogCi0JZmVuY2VfcHV0KGZlbmNlKTsKKwlk bWFfZmVuY2VfcHV0KGZlbmNlKTsKIAogZXJyb3I6CiAJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmggYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdXZkLmgKaW5kZXggYzg1MDAwOTYwMmQxLi42MjQ5YmExYmRlMmEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmgKQEAgLTI5LDkgKzI5LDkg QEAgaW50IGFtZGdwdV91dmRfc3dfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBp bnQgYW1kZ3B1X3V2ZF9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIGludCBh bWRncHVfdXZkX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1 X3V2ZF9nZXRfY3JlYXRlX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhh bmRsZSwKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlKTsKKwkJCSAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSk7CiBpbnQgYW1kZ3B1X3V2ZF9nZXRfZGVzdHJveV9tc2coc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCi0JCQkgICAgICAgYm9vbCBkaXJl Y3QsIHN0cnVjdCBmZW5jZSAqKmZlbmNlKTsKKwkJCSAgICAgICBib29sIGRpcmVjdCwgc3RydWN0 IGRtYV9mZW5jZSAqKmZlbmNlKTsKIHZvaWQgYW1kZ3B1X3V2ZF9mcmVlX2hhbmRsZXMoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7CiBp bnQgYW1kZ3B1X3V2ZF9yaW5nX3BhcnNlX2NzKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwYXJz ZXIsIHVpbnQzMl90IGliX2lkeCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNl LmMKaW5kZXggN2ZlOGZkODg0ZjA2Li5mMGY4YWZiODU1ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdmNlLmMKQEAgLTM5NSwxMiArMzk1LDEyIEBAIHZvaWQgYW1kZ3B1X3Zj ZV9mcmVlX2hhbmRsZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBkcm1fZmls ZSAqZmlscCkKICAqIE9wZW4gdXAgYSBzdHJlYW0gZm9yIEhXIHRlc3QKICAqLwogaW50IGFtZGdw dV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBo YW5kbGUsCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSkKKwkJCSAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSkKIHsKIAljb25zdCB1bnNpZ25lZCBpYl9zaXplX2R3ID0gMTAyNDsK IAlzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iOwogCXN0cnVjdCBhbWRncHVfaWIgKmliOwotCXN0cnVj dCBmZW5jZSAqZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdWludDY0 X3QgZHVtbXk7CiAJaW50IGksIHI7CiAKQEAgLTQ1MCwxNCArNDUwLDE0IEBAIGludCBhbWRncHVf dmNlX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFu ZGxlLAogCQlpYi0+cHRyW2ldID0gMHgwOwogCiAJciA9IGFtZGdwdV9pYl9zY2hlZHVsZShyaW5n LCAxLCBpYiwgTlVMTCwgTlVMTCwgJmYpOwotCWpvYi0+ZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJ am9iLT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQoZik7CiAJaWYgKHIpCiAJCWdvdG8gZXJyOwogCiAJ YW1kZ3B1X2pvYl9mcmVlKGpvYik7CiAJaWYgKGZlbmNlKQotCQkqZmVuY2UgPSBmZW5jZV9nZXQo Zik7Ci0JZmVuY2VfcHV0KGYpOworCQkqZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOworCWRtYV9m ZW5jZV9wdXQoZik7CiAJcmV0dXJuIDA7CiAKIGVycjoKQEAgLTQ3NiwxMiArNDc2LDEyIEBAIGlu dCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWlu dDMyX3QgaGFuZGxlLAogICogQ2xvc2UgdXAgYSBzdHJlYW0gZm9yIEhXIHRlc3Qgb3IgaWYgdXNl cnNwYWNlIGZhaWxlZCB0byBkbyBzbwogICovCiBpbnQgYW1kZ3B1X3ZjZV9nZXRfZGVzdHJveV9t c2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCi0JCQkgICAgICAg Ym9vbCBkaXJlY3QsIHN0cnVjdCBmZW5jZSAqKmZlbmNlKQorCQkJICAgICAgIGJvb2wgZGlyZWN0 LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJY29uc3QgdW5zaWduZWQgaWJfc2l6ZV9k dyA9IDEwMjQ7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X2liICpp YjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxM OwogCWludCBpLCByOwogCiAJciA9IGFtZGdwdV9qb2JfYWxsb2Nfd2l0aF9pYihyaW5nLT5hZGV2 LCBpYl9zaXplX2R3ICogNCwgJmpvYik7CkBAIC01MTMsNyArNTEzLDcgQEAgaW50IGFtZGdwdV92 Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFu ZGxlLAogCiAJaWYgKGRpcmVjdCkgewogCQlyID0gYW1kZ3B1X2liX3NjaGVkdWxlKHJpbmcsIDEs IGliLCBOVUxMLCBOVUxMLCAmZik7Ci0JCWpvYi0+ZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJCWpv Yi0+ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwogCQlpZiAocikKIAkJCWdvdG8gZXJyOwogCkBA IC01MjYsOCArNTI2LDggQEAgaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAogCX0KIAogCWlmIChmZW5jZSkKLQkJ KmZlbmNlID0gZmVuY2VfZ2V0KGYpOwotCWZlbmNlX3B1dChmKTsKKwkJKmZlbmNlID0gZG1hX2Zl bmNlX2dldChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogCXJldHVybiAwOwogCiBlcnI6CkBAIC04 ODMsNyArODgzLDcgQEAgaW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nKQogICovCiBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSA9 IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCWxvbmcgcjsKIAogCS8q IHNraXAgdmNlIHJpbmcxLzIgaWIgdGVzdCBmb3Igbm93LCBzaW5jZSBpdCdzIG5vdCByZWxpYWJs ZSAqLwpAQCAtOTAyLDcgKzkwMiw3IEBAIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAkJZ290byBlcnJvcjsKIAl9CiAK LQlyID0gZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRt YV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAw KSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dC5cbiIpOwogCQlyID0g LUVUSU1FRE9VVDsKQEAgLTkxMyw2ICs5MTMsNiBAQCBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3Rf aWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJCXIgPSAwOwogCX0K IGVycm9yOgotCWZlbmNlX3B1dChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0 dXJuIHI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmgKaW5kZXggMTI3 MjlkMjg1MmRmLi41NjZjMjlkZGVlYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92Y2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmNlLmgKQEAgLTI5LDkgKzI5LDkgQEAgaW50IGFtZGdwdV92Y2Vfc3dfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X3ZjZV9zdXNwZW5kKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KTsKIGludCBhbWRncHVfdmNlX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRlX21zZyhzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKmZl bmNlKTsKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiBpbnQgYW1kZ3B1X3Zj ZV9nZXRfZGVzdHJveV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5k bGUsCi0JCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBmZW5jZSAqKmZlbmNlKTsKKwkJCSAg ICAgICBib29sIGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKTsKIHZvaWQgYW1kZ3B1 X3ZjZV9mcmVlX2hhbmRsZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlscCk7CiBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3BhcnNlX2NzKHN0cnVjdCBhbWRncHVf Y3NfcGFyc2VyICpwLCB1aW50MzJfdCBpYl9pZHgpOwogdm9pZCBhbWRncHVfdmNlX3JpbmdfZW1p dF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfaWIgKmliLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwppbmRleCAwNmYyNDMyMmU3YzMuLjMxNzEz ZjE4MjA4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKQEAgLTI1LDcg KzI1LDcgQEAKICAqICAgICAgICAgIEFsZXggRGV1Y2hlcgogICogICAgICAgICAgSmVyb21lIEds aXNzZQogICovCi0jaW5jbHVkZSA8bGludXgvZmVuY2UtYXJyYXkuaD4KKyNpbmNsdWRlIDxsaW51 eC9kbWEtZmVuY2UtYXJyYXkuaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRy bS9hbWRncHVfZHJtLmg+CiAjaW5jbHVkZSAiYW1kZ3B1LmgiCkBAIC0xOTQsMTQgKzE5NCwxNCBA QCBzdGF0aWMgYm9vbCBhbWRncHVfdm1faXNfZ3B1X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAogICogQWxsb2NhdGUgYW4gaWQgZm9yIHRoZSB2bSwgYWRkaW5nIGZlbmNlcyB0byB0 aGUgc3luYyBvYmogYXMgbmVjZXNzYXJ5LgogICovCiBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3Ry dWN0IGFtZGdwdV92bSAqdm0sIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJICAgICAgc3Ry dWN0IGFtZGdwdV9zeW5jICpzeW5jLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorCQkgICAgICBzdHJ1 Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAgICBz dHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g cmluZy0+YWRldjsKIAl1aW50NjRfdCBmZW5jZV9jb250ZXh0ID0gYWRldi0+ZmVuY2VfY29udGV4 dCArIHJpbmctPmlkeDsKLQlzdHJ1Y3QgZmVuY2UgKnVwZGF0ZXMgPSBzeW5jLT5sYXN0X3ZtX3Vw ZGF0ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICp1cGRhdGVzID0gc3luYy0+bGFzdF92bV91cGRhdGU7 CiAJc3RydWN0IGFtZGdwdV92bV9pZCAqaWQsICppZGxlOwotCXN0cnVjdCBmZW5jZSAqKmZlbmNl czsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzOwogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAw OwogCkBAIC0yMjUsMTcgKzIyNSwxNyBAQCBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFt ZGdwdV92bSAqdm0sIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlpZiAoJmlkbGUtPmxpc3Qg PT0gJmFkZXYtPnZtX21hbmFnZXIuaWRzX2xydSkgewogCQl1NjQgZmVuY2VfY29udGV4dCA9IGFk ZXYtPnZtX21hbmFnZXIuZmVuY2VfY29udGV4dCArIHJpbmctPmlkeDsKIAkJdW5zaWduZWQgc2Vx bm8gPSArK2FkZXYtPnZtX21hbmFnZXIuc2Vxbm9bcmluZy0+aWR4XTsKLQkJc3RydWN0IGZlbmNl X2FycmF5ICphcnJheTsKKwkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXk7CiAJCXVuc2ln bmVkIGo7CiAKIAkJZm9yIChqID0gMDsgaiA8IGk7ICsraikKLQkJCWZlbmNlX2dldChmZW5jZXNb al0pOworCQkJZG1hX2ZlbmNlX2dldChmZW5jZXNbal0pOwogCi0JCWFycmF5ID0gZmVuY2VfYXJy YXlfY3JlYXRlKGksIGZlbmNlcywgZmVuY2VfY29udGV4dCwKKwkJYXJyYXkgPSBkbWFfZmVuY2Vf YXJyYXlfY3JlYXRlKGksIGZlbmNlcywgZmVuY2VfY29udGV4dCwKIAkJCQkJICAgc2Vxbm8sIHRy dWUpOwogCQlpZiAoIWFycmF5KSB7CiAJCQlmb3IgKGogPSAwOyBqIDwgaTsgKytqKQotCQkJCWZl bmNlX3B1dChmZW5jZXNbal0pOworCQkJCWRtYV9mZW5jZV9wdXQoZmVuY2VzW2pdKTsKIAkJCWtm cmVlKGZlbmNlcyk7CiAJCQlyID0gLUVOT01FTTsKIAkJCWdvdG8gZXJyb3I7CkBAIC0yNDMsNyAr MjQzLDcgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAKIAogCQlyID0gYW1kZ3B1X3N5bmNfZmVuY2UocmluZy0+ YWRldiwgc3luYywgJmFycmF5LT5iYXNlKTsKLQkJZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CisJ CWRtYV9mZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGVycm9yOwog CkBAIC0yNTcsNyArMjU3LDcgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVf dm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJLyogQ2hlY2sgaWYgd2UgY2FuIHVz ZSBhIFZNSUQgYWxyZWFkeSBhc3NpZ25lZCB0byB0aGlzIFZNICovCiAJaSA9IHJpbmctPmlkeDsK IAlkbyB7Ci0JCXN0cnVjdCBmZW5jZSAqZmx1c2hlZDsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmx1 c2hlZDsKIAogCQlpZCA9IHZtLT5pZHNbaSsrXTsKIAkJaWYgKGkgPT0gQU1ER1BVX01BWF9SSU5H UykKQEAgLTI3OSwxMiArMjc5LDExIEBAIGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJY29udGludWU7CiAKIAkJ aWYgKGlkLT5sYXN0X2ZsdXNoLT5jb250ZXh0ICE9IGZlbmNlX2NvbnRleHQgJiYKLQkJICAgICFm ZW5jZV9pc19zaWduYWxlZChpZC0+bGFzdF9mbHVzaCkpCi0JCQljb250aW51ZTsKKwkJICAgICFk bWFfZmVuY2VfaXNfc2lnbmFsZWQoaWQtPmxhc3RfZmx1c2gpKQogCiAJCWZsdXNoZWQgID0gaWQt PmZsdXNoZWRfdXBkYXRlczsKIAkJaWYgKHVwZGF0ZXMgJiYKLQkJICAgICghZmx1c2hlZCB8fCBm ZW5jZV9pc19sYXRlcih1cGRhdGVzLCBmbHVzaGVkKSkpCisJCSAgICAoIWZsdXNoZWQgfHwgZG1h X2ZlbmNlX2lzX2xhdGVyKHVwZGF0ZXMsIGZsdXNoZWQpKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8q IEdvb2Qgd2UgY2FuIHVzZSB0aGlzIFZNSUQuIFJlbWVtYmVyIHRoaXMgc3VibWlzc2lvbiBhcwpA QCAtMzE1LDE0ICszMTQsMTQgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVf dm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJaWYgKHIpCiAJCWdvdG8gZXJyb3I7 CiAKLQlmZW5jZV9wdXQoaWQtPmZpcnN0KTsKLQlpZC0+Zmlyc3QgPSBmZW5jZV9nZXQoZmVuY2Up OworCWRtYV9mZW5jZV9wdXQoaWQtPmZpcnN0KTsKKwlpZC0+Zmlyc3QgPSBkbWFfZmVuY2VfZ2V0 KGZlbmNlKTsKIAotCWZlbmNlX3B1dChpZC0+bGFzdF9mbHVzaCk7CisJZG1hX2ZlbmNlX3B1dChp ZC0+bGFzdF9mbHVzaCk7CiAJaWQtPmxhc3RfZmx1c2ggPSBOVUxMOwogCi0JZmVuY2VfcHV0KGlk LT5mbHVzaGVkX3VwZGF0ZXMpOwotCWlkLT5mbHVzaGVkX3VwZGF0ZXMgPSBmZW5jZV9nZXQodXBk YXRlcyk7CisJZG1hX2ZlbmNlX3B1dChpZC0+Zmx1c2hlZF91cGRhdGVzKTsKKwlpZC0+Zmx1c2hl ZF91cGRhdGVzID0gZG1hX2ZlbmNlX2dldCh1cGRhdGVzKTsKIAogCWlkLT5wZF9ncHVfYWRkciA9 IGpvYi0+dm1fcGRfYWRkcjsKIAlpZC0+Y3VycmVudF9ncHVfcmVzZXRfY291bnQgPSBhdG9taWNf cmVhZCgmYWRldi0+Z3B1X3Jlc2V0X2NvdW50ZXIpOwpAQCAtMzkzLDcgKzM5Miw3IEBAIGludCBh bWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pv YiAqam9iKQogCiAJaWYgKHJpbmctPmZ1bmNzLT5lbWl0X3ZtX2ZsdXNoICYmIChqb2ItPnZtX25l ZWRzX2ZsdXNoIHx8CiAJICAgIGFtZGdwdV92bV9pc19ncHVfcmVzZXQoYWRldiwgaWQpKSkgewot CQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQl0 cmFjZV9hbWRncHVfdm1fZmx1c2goam9iLT52bV9wZF9hZGRyLCByaW5nLT5pZHgsIGpvYi0+dm1f aWQpOwogCQlhbWRncHVfcmluZ19lbWl0X3ZtX2ZsdXNoKHJpbmcsIGpvYi0+dm1faWQsIGpvYi0+ dm1fcGRfYWRkcik7CkBAIC00MDMsNyArNDAyLDcgQEAgaW50IGFtZGdwdV92bV9mbHVzaChzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfam9iICpqb2IpCiAJCQlyZXR1cm4g cjsKIAogCQltdXRleF9sb2NrKCZhZGV2LT52bV9tYW5hZ2VyLmxvY2spOwotCQlmZW5jZV9wdXQo aWQtPmxhc3RfZmx1c2gpOworCQlkbWFfZmVuY2VfcHV0KGlkLT5sYXN0X2ZsdXNoKTsKIAkJaWQt Pmxhc3RfZmx1c2ggPSBmZW5jZTsKIAkJbXV0ZXhfdW5sb2NrKCZhZGV2LT52bV9tYW5hZ2VyLmxv Y2spOwogCX0KQEAgLTUzNyw3ICs1MzYsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVhcl9i byhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvKQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNl ID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7CiAJc3RydWN0IGFtZGdw dV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKIAl1 bnNpZ25lZCBlbnRyaWVzOwpAQCAtNTc4LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X2NsZWFyX2JvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlnb3RvIGVycm9yX2ZyZWU7 CiAKIAlhbWRncHVfYm9fZmVuY2UoYm8sIGZlbmNlLCB0cnVlKTsKLQlmZW5jZV9wdXQoZmVuY2Up OworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiAwOwogCiBlcnJvcl9mcmVlOgpAQCAt NjI1LDcgKzYyNCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9wZF9vcl9zaGFkb3co c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJdW5zaWduZWQgY291bnQgPSAwLCBwdF9pZHgs IG5kdzsKIAlzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iOwogCXN0cnVjdCBhbWRncHVfcHRlX3VwZGF0 ZV9wYXJhbXMgcGFyYW1zOwotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlID0gTlVMTDsKIAogCWludCByOwogCkBAIC03MTQsOSArNzEzLDkgQEAg c3RhdGljIGludCBhbWRncHVfdm1fdXBkYXRlX3BkX29yX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKIAkJCWdvdG8gZXJyb3JfZnJlZTsKIAogCQlhbWRncHVfYm9fZmVuY2UocGQs IGZlbmNlLCB0cnVlKTsKLQkJZmVuY2VfcHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7Ci0J CXZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7Ci0JCWZlbmNlX3B1 dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQodm0tPnBhZ2VfZGlyZWN0b3J5X2ZlbmNlKTsKKwkJ dm0tPnBhZ2VfZGlyZWN0b3J5X2ZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9m ZW5jZV9wdXQoZmVuY2UpOwogCiAJfSBlbHNlIHsKIAkJYW1kZ3B1X2pvYl9mcmVlKGpvYik7CkBA IC05MjksMjAgKzkyOCwyMCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdm1fZnJhZ19wdGVzKHN0cnVj dCBhbWRncHVfcHRlX3VwZGF0ZV9wYXJhbXMJKnBhcmFtcywKICAqIFJldHVybnMgMCBmb3Igc3Vj Y2VzcywgLUVJTlZBTCBmb3IgZmFpbHVyZS4KICAqLwogc3RhdGljIGludCBhbWRncHVfdm1fYm9f dXBkYXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgICAgIHN0 cnVjdCBmZW5jZSAqZXhjbHVzaXZlLAorCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpleGNs dXNpdmUsCiAJCQkJICAgICAgIHVpbnQ2NF90IHNyYywKIAkJCQkgICAgICAgZG1hX2FkZHJfdCAq cGFnZXNfYWRkciwKIAkJCQkgICAgICAgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCQkJICAgICAg IHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsYXN0LAogCQkJCSAgICAgICB1aW50MzJfdCBmbGFn cywgdWludDY0X3QgYWRkciwKLQkJCQkgICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkJ ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmc7CiAJdm9pZCAqb3duZXIgPSBBTURHUFVfRkVOQ0VfT1dORVJfVk07CiAJdW5zaWduZWQg bnB0ZXMsIG5jbWRzLCBuZHc7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1k Z3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOwor CXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCWludCByOwogCiAJbWVtc2V0KCZwYXJhbXMs IDAsIHNpemVvZihwYXJhbXMpKTsKQEAgLTEwNDUsMTAgKzEwNDQsMTAgQEAgc3RhdGljIGludCBh bWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAK IAlhbWRncHVfYm9fZmVuY2Uodm0tPnBhZ2VfZGlyZWN0b3J5LCBmLCB0cnVlKTsKIAlpZiAoZmVu Y2UpIHsKLQkJZmVuY2VfcHV0KCpmZW5jZSk7Ci0JCSpmZW5jZSA9IGZlbmNlX2dldChmKTsKKwkJ ZG1hX2ZlbmNlX3B1dCgqZmVuY2UpOworCQkqZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwogCX0K LQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIAlyZXR1cm4gMDsKIAogZXJyb3Jf ZnJlZToKQEAgLTEwNzQsMTMgKzEwNzMsMTMgQEAgc3RhdGljIGludCBhbWRncHVfdm1fYm9fdXBk YXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAgKiBSZXR1cm5zIDAgZm9y IHN1Y2Nlc3MsIC1FSU5WQUwgZm9yIGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X2JvX3NwbGl0X21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgICAg c3RydWN0IGZlbmNlICpleGNsdXNpdmUsCisJCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZXhj bHVzaXZlLAogCQkJCSAgICAgIHVpbnQzMl90IGd0dF9mbGFncywKIAkJCQkgICAgICBkbWFfYWRk cl90ICpwYWdlc19hZGRyLAogCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJCSAg ICAgIHN0cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyAqbWFwcGluZywKIAkJCQkgICAgICB1aW50 MzJfdCBmbGFncywgdWludDY0X3QgYWRkciwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5j ZSkKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJY29uc3QgdWludDY0 X3QgbWF4X3NpemUgPSA2NFVMTCAqIDEwMjRVTEwgKiAxMDI0VUxMIC8gQU1ER1BVX0dQVV9QQUdF X1NJWkU7CiAKQEAgLTExNDcsNyArMTE0Niw3IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWRtYV9hZGRyX3QgKnBhZ2VzX2FkZHIgPSBOVUxM OwogCXVpbnQzMl90IGd0dF9mbGFncywgZmxhZ3M7CiAJc3RydWN0IHR0bV9tZW1fcmVnICptZW07 Ci0Jc3RydWN0IGZlbmNlICpleGNsdXNpdmU7CisJc3RydWN0IGRtYV9mZW5jZSAqZXhjbHVzaXZl OwogCXVpbnQ2NF90IGFkZHI7CiAJaW50IHI7CiAKQEAgLTE1NDcsNyArMTU0Niw3IEBAIHZvaWQg YW1kZ3B1X3ZtX2JvX3JtdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJa2ZyZWUobWFw cGluZyk7CiAJfQogCi0JZmVuY2VfcHV0KGJvX3ZhLT5sYXN0X3B0X3VwZGF0ZSk7CisJZG1hX2Zl bmNlX3B1dChib192YS0+bGFzdF9wdF91cGRhdGUpOwogCWtmcmVlKGJvX3ZhKTsKIH0KIApAQCAt MTcwOSw3ICsxNzA4LDcgQEAgdm9pZCBhbWRncHVfdm1fZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCiAKIAlhbWRncHVfYm9fdW5yZWYoJnZtLT5w YWdlX2RpcmVjdG9yeS0+c2hhZG93KTsKIAlhbWRncHVfYm9fdW5yZWYoJnZtLT5wYWdlX2RpcmVj dG9yeSk7Ci0JZmVuY2VfcHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7CisJZG1hX2ZlbmNl X3B1dCh2bS0+cGFnZV9kaXJlY3RvcnlfZmVuY2UpOwogfQogCiAvKioKQEAgLTE3MzMsNyArMTcz Miw4IEBAIHZvaWQgYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAkJCSAgICAgICZhZGV2LT52bV9tYW5hZ2VyLmlkc19scnUpOwogCX0KIAotCWFkZXYt PnZtX21hbmFnZXIuZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoQU1ER1BVX01B WF9SSU5HUyk7CisJYWRldi0+dm1fbWFuYWdlci5mZW5jZV9jb250ZXh0ID0KKwkJZG1hX2ZlbmNl X2NvbnRleHRfYWxsb2MoQU1ER1BVX01BWF9SSU5HUyk7CiAJZm9yIChpID0gMDsgaSA8IEFNREdQ VV9NQVhfUklOR1M7ICsraSkKIAkJYWRldi0+dm1fbWFuYWdlci5zZXFub1tpXSA9IDA7CiAKQEAg LTE3NTUsOCArMTc1NSw4IEBAIHZvaWQgYW1kZ3B1X3ZtX21hbmFnZXJfZmluaShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKIAlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX05VTV9WTTsgKytpKSB7 CiAJCXN0cnVjdCBhbWRncHVfdm1faWQgKmlkID0gJmFkZXYtPnZtX21hbmFnZXIuaWRzW2ldOwog Ci0JCWZlbmNlX3B1dChhZGV2LT52bV9tYW5hZ2VyLmlkc1tpXS5maXJzdCk7CisJCWRtYV9mZW5j ZV9wdXQoYWRldi0+dm1fbWFuYWdlci5pZHNbaV0uZmlyc3QpOwogCQlhbWRncHVfc3luY19mcmVl KCZhZGV2LT52bV9tYW5hZ2VyLmlkc1tpXS5hY3RpdmUpOwotCQlmZW5jZV9wdXQoaWQtPmZsdXNo ZWRfdXBkYXRlcyk7CisJCWRtYV9mZW5jZV9wdXQoaWQtPmZsdXNoZWRfdXBkYXRlcyk7CiAJfQog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKaW5kZXggY2I5NTJhY2M3MTMzLi4z MjFiOWQ1YTRlNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19z ZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX3NkbWEuYwpAQCAtNjIy LDcgKzYyMiw3IEBAIHN0YXRpYyBpbnQgY2lrX3NkbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAq ZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdW5zaWduZWQgaW5kZXg7 CiAJdTMyIHRtcCA9IDA7CiAJdTY0IGdwdV9hZGRyOwpAQCAtNjU1LDcgKzY1NSw3IEBAIHN0YXRp YyBpbnQgY2lrX3NkbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9u ZyB0aW1lb3V0KQogCWlmIChyKQogCQlnb3RvIGVycjE7CiAKLQlyID0gZmVuY2Vfd2FpdF90aW1l b3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKKwlyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmLCBm YWxzZSwgdGltZW91dCk7CiAJaWYgKHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFtZGdwdTogSUIg dGVzdCB0aW1lZCBvdXRcbiIpOwogCQlyID0gLUVUSU1FRE9VVDsKQEAgLTY3NSw3ICs2NzUsNyBA QCBzdGF0aWMgaW50IGNpa19zZG1hX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIGxvbmcgdGltZW91dCkKIAogZXJyMToKIAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5V TEwpOwotCWZlbmNlX3B1dChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogZXJyMDoKIAlhbWRncHVf d2JfZnJlZShhZGV2LCBpbmRleCk7CiAJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y2XzAuYwppbmRleCA0MGFiYjZiODFjMDkuLjdkYzExYTE5ZTQ5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjZfMC5jCkBAIC0xNTIyLDcgKzE1MjIsNyBAQCBzdGF0aWMgaW50 IGdmeF92Nl8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGlt ZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3Ry dWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFf ZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQzMl90IHNjcmF0Y2g7CiAJdWludDMyX3QgdG1wID0gMDsK IAlsb25nIHI7CkBAIC0xNTQ4LDcgKzE1NDgsNyBAQCBzdGF0aWMgaW50IGdmeF92Nl8wX3Jpbmdf dGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikK IAkJZ290byBlcnIyOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91 dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlm IChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsK IAkJciA9IC1FVElNRURPVVQ7CkBAIC0xNTY5LDcgKzE1NjksNyBAQCBzdGF0aWMgaW50IGdmeF92 Nl8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkK IAogZXJyMjoKIAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChm KTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogZXJyMToKIAlhbWRncHVfZ2Z4X3NjcmF0Y2hfZnJlZShh ZGV2LCBzY3JhdGNoKTsKIAlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdf MC5jCmluZGV4IDcxMTE2ZGE5ZTc4Mi4uMzg2NWZmZTdkZTU1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMKQEAgLTIyODYsNyArMjI4Niw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3 XzBfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQog ewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1k Z3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAqZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAq ZiA9IE5VTEw7CiAJdWludDMyX3Qgc2NyYXRjaDsKIAl1aW50MzJfdCB0bXAgPSAwOwogCWxvbmcg cjsKQEAgLTIzMTIsNyArMjMxMiw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfcmluZ190ZXN0X2li KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogCWlmIChyKQogCQlnb3Rv IGVycjI7CiAKLQlyID0gZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKKwly ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7CiAJaWYgKHIgPT0g MCkgewogCQlEUk1fRVJST1IoImFtZGdwdTogSUIgdGVzdCB0aW1lZCBvdXRcbiIpOwogCQlyID0g LUVUSU1FRE9VVDsKQEAgLTIzMzMsNyArMjMzMyw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfcmlu Z190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogCiBlcnIy OgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7Ci0JZmVuY2VfcHV0KGYpOworCWRt YV9mZW5jZV9wdXQoZik7CiBlcnIxOgogCWFtZGdwdV9nZnhfc2NyYXRjaF9mcmVlKGFkZXYsIHNj cmF0Y2gpOwogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKaW5k ZXggZWU2YTQ4YTA5MjE0Li5hOWRkMTg4NDdjNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y4XzAuYwpAQCAtNzk4LDcgKzc5OCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfcmluZ190 ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogewogCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2liIGli OwotCXN0cnVjdCBmZW5jZSAqZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7 CiAJdWludDMyX3Qgc2NyYXRjaDsKIAl1aW50MzJfdCB0bXAgPSAwOwogCWxvbmcgcjsKQEAgLTgy NCw3ICs4MjQsNyBAQCBzdGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikKIAkJZ290byBlcnIyOwogCi0J ciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRtYV9mZW5j ZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlmIChyID09IDApIHsKIAkJRFJN X0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0LlxuIik7CiAJCXIgPSAtRVRJTUVET1VU OwpAQCAtODQ0LDcgKzg0NCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfcmluZ190ZXN0X2liKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogCX0KIGVycjI6CiAJYW1kZ3B1 X2liX2ZyZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1 dChmKTsKIGVycjE6CiAJYW1kZ3B1X2dmeF9zY3JhdGNoX2ZyZWUoYWRldiwgc2NyYXRjaCk7CiAJ cmV0dXJuIHI7CkBAIC0xNTc1LDcgKzE1NzUsNyBAQCBzdGF0aWMgaW50IGdmeF92OF8wX2RvX2Vk Y19ncHJfd29ya2Fyb3VuZHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CiAJc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPmdmeC5jb21wdXRlX3JpbmdbMF07CiAJc3RydWN0 IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVu Y2UgKmYgPSBOVUxMOwogCWludCByLCBpOwogCXUzMiB0bXA7CiAJdW5zaWduZWQgdG90YWxfc2l6 ZSwgdmdwcl9vZmZzZXQsIHNncHJfb2Zmc2V0OwpAQCAtMTcwOCw3ICsxNzA4LDcgQEAgc3RhdGlj IGludCBnZnhfdjhfMF9kb19lZGNfZ3ByX3dvcmthcm91bmRzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQogCX0KIAogCS8qIHdhaXQgZm9yIHRoZSBHUFUgdG8gZmluaXNoIHByb2Nlc3Npbmcg dGhlIElCICovCi0JciA9IGZlbmNlX3dhaXQoZiwgZmFsc2UpOworCXIgPSBkbWFfZmVuY2Vfd2Fp dChmLCBmYWxzZSk7CiAJaWYgKHIpIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IGZlbmNlIHdhaXQg ZmFpbGVkICglZCkuXG4iLCByKTsKIAkJZ290byBmYWlsOwpAQCAtMTcyOSw3ICsxNzI5LDcgQEAg c3RhdGljIGludCBnZnhfdjhfMF9kb19lZGNfZ3ByX3dvcmthcm91bmRzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCiBmYWlsOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7 Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiAKIAlyZXR1cm4gcjsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMKaW5kZXggNTY1ZGFiM2M3MjE4Li43ZWRm NmU4YzYzZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJf NC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jCkBAIC02Njgs NyArNjY4LDcgQEAgc3RhdGljIGludCBzZG1hX3YyXzRfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAq ZiA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdW5zaWduZWQgaW5kZXg7 CiAJdTMyIHRtcCA9IDA7CiAJdTY0IGdwdV9hZGRyOwpAQCAtNzA1LDcgKzcwNSw3IEBAIHN0YXRp YyBpbnQgc2RtYV92Ml80X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxv bmcgdGltZW91dCkKIAlpZiAocikKIAkJZ290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGlt ZW91dChmLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwg ZmFsc2UsIHRpbWVvdXQpOwogCWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElC IHRlc3QgdGltZWQgb3V0XG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC03MjUsNyArNzI1LDcg QEAgc3RhdGljIGludCBzZG1hX3YyXzRfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywgbG9uZyB0aW1lb3V0KQogCiBlcnIxOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwg TlVMTCk7Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiBlcnIwOgogCWFtZGdw dV93Yl9mcmVlKGFkZXYsIGluZGV4KTsKIAlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2RtYV92M18wLmMKaW5kZXggYTlkMTA5NDFmYjUzLi4xOTMyYTY3YzYyZWYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCkBAIC04NzEsNyArODcxLDcgQEAgc3RhdGlj IGludCBzZG1hX3YzXzBfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9u ZyB0aW1lb3V0KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsK IAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAqZiA9IE5VTEw7CisJc3RydWN0 IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdW5zaWduZWQgaW5kZXg7CiAJdTMyIHRtcCA9IDA7CiAJ dTY0IGdwdV9hZGRyOwpAQCAtOTA4LDcgKzkwOCw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3Jp bmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAo cikKIAkJZ290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGlt ZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwog CWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4i KTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC05MjcsNyArOTI3LDcgQEAgc3RhdGljIGludCBzZG1h X3YzXzBfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0 KQogCX0KIGVycjE6CiAJYW1kZ3B1X2liX2ZyZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9w dXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIGVycjA6CiAJYW1kZ3B1X3diX2ZyZWUoYWRldiwg aW5kZXgpOwogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2lfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kbWEuYwppbmRleCBk ZTM1ODE5M2E4ZjkuLmI0Y2Y0ZTI1YmY5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvc2lfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2lfZG1h LmMKQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgaW50IHNpX2RtYV9yaW5nX3Rlc3RfaWIoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiB7CiAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfaWIgaWI7Ci0Jc3RydWN0 IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAl1bnNpZ25l ZCBpbmRleDsKIAl1MzIgdG1wID0gMDsKIAl1NjQgZ3B1X2FkZHI7CkBAIC0zMDUsNyArMzA1LDcg QEAgc3RhdGljIGludCBzaV9kbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywgbG9uZyB0aW1lb3V0KQogCWlmIChyKQogCQlnb3RvIGVycjE7CiAKLQlyID0gZmVuY2Vfd2Fp dF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKKwlyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91 dChmLCBmYWxzZSwgdGltZW91dCk7CiAJaWYgKHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFtZGdw dTogSUIgdGVzdCB0aW1lZCBvdXRcbiIpOwogCQlyID0gLUVUSU1FRE9VVDsKQEAgLTMyNSw3ICsz MjUsNyBAQCBzdGF0aWMgaW50IHNpX2RtYV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLCBsb25nIHRpbWVvdXQpCiAKIGVycjE6CiAJYW1kZ3B1X2liX2ZyZWUoYWRldiwgJmli LCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIGVycjA6CiAJYW1k Z3B1X3diX2ZyZWUoYWRldiwgaW5kZXgpOwogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkX3RyYWNlLmggYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWRfdHJhY2UuaAppbmRleCBiOTYxYTFjNmNhZjMuLmRi ZDRmZDNhODEwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1 X3NjaGVkX3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3Nj aGVkX3RyYWNlLmgKQEAgLTE3LDcgKzE3LDcgQEAgVFJBQ0VfRVZFTlQoYW1kX3NjaGVkX2pvYiwK IAkgICAgVFBfU1RSVUNUX19lbnRyeSgKIAkJCSAgICAgX19maWVsZChzdHJ1Y3QgYW1kX3NjaGVk X2VudGl0eSAqLCBlbnRpdHkpCiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZF9zY2hlZF9qb2Ig Kiwgc2NoZWRfam9iKQotCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBmZW5jZSAqLCBmZW5jZSkKKwkJ CSAgICAgX19maWVsZChzdHJ1Y3QgZG1hX2ZlbmNlICosIGZlbmNlKQogCQkJICAgICBfX2ZpZWxk KGNvbnN0IGNoYXIgKiwgbmFtZSkKIAkJCSAgICAgX19maWVsZCh1MzIsIGpvYl9jb3VudCkKIAkJ CSAgICAgX19maWVsZChpbnQsIGh3X2pvYl9jb3VudCkKQEAgLTQyLDcgKzQyLDcgQEAgVFJBQ0Vf RVZFTlQoYW1kX3NjaGVkX3Byb2Nlc3Nfam9iLAogCSAgICBUUF9QUk9UTyhzdHJ1Y3QgYW1kX3Nj aGVkX2ZlbmNlICpmZW5jZSksCiAJICAgIFRQX0FSR1MoZmVuY2UpLAogCSAgICBUUF9TVFJVQ1Rf X2VudHJ5KAotCQkgICAgX19maWVsZChzdHJ1Y3QgZmVuY2UgKiwgZmVuY2UpCisJCSAgICBfX2Zp ZWxkKHN0cnVjdCBkbWFfZmVuY2UgKiwgZmVuY2UpCiAJCSAgICApLAogCiAJICAgIFRQX2Zhc3Rf YXNzaWduKApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3Nj aGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5j CmluZGV4IDk2M2EyNGQ0NmE5My4uNTM2NGU2YTdlYzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCkBAIC0zMiw3ICszMiw3IEBACiAKIHN0YXRp YyBib29sIGFtZF9zY2hlZF9lbnRpdHlfaXNfcmVhZHkoc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkg KmVudGl0eSk7CiBzdGF0aWMgdm9pZCBhbWRfc2NoZWRfd2FrZXVwKHN0cnVjdCBhbWRfZ3B1X3Nj aGVkdWxlciAqc2NoZWQpOwotc3RhdGljIHZvaWQgYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVj dCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2NiICpjYik7CitzdGF0aWMgdm9pZCBhbWRfc2NoZWRf cHJvY2Vzc19qb2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2Ip OwogCiBzdHJ1Y3Qga21lbV9jYWNoZSAqc2NoZWRfZmVuY2Vfc2xhYjsKIGF0b21pY190IHNjaGVk X2ZlbmNlX3NsYWJfcmVmID0gQVRPTUlDX0lOSVQoMCk7CkBAIC0xNDEsNyArMTQxLDcgQEAgaW50 IGFtZF9zY2hlZF9lbnRpdHlfaW5pdChzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAog CQlyZXR1cm4gcjsKIAogCWF0b21pY19zZXQoJmVudGl0eS0+ZmVuY2Vfc2VxLCAwKTsKLQllbnRp dHktPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDIpOworCWVudGl0eS0+ZmVu Y2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDIpOwogCiAJcmV0dXJuIDA7CiB9 CkBAIC0yMjEsMzIgKzIyMSwzMiBAQCB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfZmluaShzdHJ1Y3Qg YW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAogCWtmaWZvX2ZyZWUoJmVudGl0eS0+am9iX3F1ZXVl KTsKIH0KIAotc3RhdGljIHZvaWQgYW1kX3NjaGVkX2VudGl0eV93YWtldXAoc3RydWN0IGZlbmNl ICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQgYW1kX3NjaGVkX2VudGl0eV93 YWtldXAoc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJ c3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3Ry dWN0IGFtZF9zY2hlZF9lbnRpdHksIGNiKTsKIAllbnRpdHktPmRlcGVuZGVuY3kgPSBOVUxMOwot CWZlbmNlX3B1dChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogCWFtZF9zY2hlZF93YWtldXAoZW50 aXR5LT5zY2hlZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfY2xlYXJfZGVw KHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2NiICpjYikKK3N0YXRpYyB2b2lkIGFtZF9z Y2hlZF9lbnRpdHlfY2xlYXJfZGVwKHN0cnVjdCBkbWFfZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVu Y2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZW50aXR5ICplbnRpdHkgPQogCQljb250 YWluZXJfb2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5LCBjYik7CiAJZW50aXR5LT5kZXBl bmRlbmN5ID0gTlVMTDsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIH0KIAog c3RhdGljIGJvb2wgYW1kX3NjaGVkX2VudGl0eV9hZGRfZGVwZW5kZW5jeV9jYihzdHJ1Y3QgYW1k X3NjaGVkX2VudGl0eSAqZW50aXR5KQogewogCXN0cnVjdCBhbWRfZ3B1X3NjaGVkdWxlciAqc2No ZWQgPSBlbnRpdHktPnNjaGVkOwotCXN0cnVjdCBmZW5jZSAqIGZlbmNlID0gZW50aXR5LT5kZXBl bmRlbmN5OworCXN0cnVjdCBkbWFfZmVuY2UgKiBmZW5jZSA9IGVudGl0eS0+ZGVwZW5kZW5jeTsK IAlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpzX2ZlbmNlOwogCiAJaWYgKGZlbmNlLT5jb250ZXh0 ID09IGVudGl0eS0+ZmVuY2VfY29udGV4dCkgewogCQkvKiBXZSBjYW4gaWdub3JlIGZlbmNlcyBm cm9tIG91cnNlbGYgKi8KLQkJZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5kZW5jeSk7CisJCWRtYV9m ZW5jZV9wdXQoZW50aXR5LT5kZXBlbmRlbmN5KTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAt MjU3LDIzICsyNTcsMjMgQEAgc3RhdGljIGJvb2wgYW1kX3NjaGVkX2VudGl0eV9hZGRfZGVwZW5k ZW5jeV9jYihzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eSAqZW50aXR5KQogCQkgKiBGZW5jZSBpcyBm cm9tIHRoZSBzYW1lIHNjaGVkdWxlciwgb25seSBuZWVkIHRvIHdhaXQgZm9yCiAJCSAqIGl0IHRv IGJlIHNjaGVkdWxlZAogCQkgKi8KLQkJZmVuY2UgPSBmZW5jZV9nZXQoJnNfZmVuY2UtPnNjaGVk dWxlZCk7Ci0JCWZlbmNlX3B1dChlbnRpdHktPmRlcGVuZGVuY3kpOworCQlmZW5jZSA9IGRtYV9m ZW5jZV9nZXQoJnNfZmVuY2UtPnNjaGVkdWxlZCk7CisJCWRtYV9mZW5jZV9wdXQoZW50aXR5LT5k ZXBlbmRlbmN5KTsKIAkJZW50aXR5LT5kZXBlbmRlbmN5ID0gZmVuY2U7Ci0JCWlmICghZmVuY2Vf YWRkX2NhbGxiYWNrKGZlbmNlLCAmZW50aXR5LT5jYiwKLQkJCQkJYW1kX3NjaGVkX2VudGl0eV9j bGVhcl9kZXApKQorCQlpZiAoIWRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZlbnRpdHkt PmNiLAorCQkJCQkgICAgYW1kX3NjaGVkX2VudGl0eV9jbGVhcl9kZXApKQogCQkJcmV0dXJuIHRy dWU7CiAKIAkJLyogSWdub3JlIGl0IHdoZW4gaXQgaXMgYWxyZWFkeSBzY2hlZHVsZWQgKi8KLQkJ ZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKLQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhlbnRpdHktPmRlcGVuZGVuY3ksICZl bnRpdHktPmNiLAotCQkJCWFtZF9zY2hlZF9lbnRpdHlfd2FrZXVwKSkKKwlpZiAoIWRtYV9mZW5j ZV9hZGRfY2FsbGJhY2soZW50aXR5LT5kZXBlbmRlbmN5LCAmZW50aXR5LT5jYiwKKwkJCQkgICAg YW1kX3NjaGVkX2VudGl0eV93YWtldXApKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWZlbmNlX3B1dChl bnRpdHktPmRlcGVuZGVuY3kpOworCWRtYV9mZW5jZV9wdXQoZW50aXR5LT5kZXBlbmRlbmN5KTsK IAlyZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTM1NCw3ICszNTQsOCBAQCBzdGF0aWMgdm9pZCBhbWRf c2NoZWRfam9iX2ZpbmlzaChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc2NoZWQtPm9wcy0+ ZnJlZV9qb2Ioc19qb2IpOwogfQogCi1zdGF0aWMgdm9pZCBhbWRfc2NoZWRfam9iX2ZpbmlzaF9j YihzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBhbWRf c2NoZWRfam9iX2ZpbmlzaF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmLAorCQkJCSAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqam9iID0gY29udGFp bmVyX29mKGNiLCBzdHJ1Y3QgYW1kX3NjaGVkX2pvYiwKIAkJCQkJCSBmaW5pc2hfY2IpOwpAQCAt Mzg4LDggKzM4OSw4IEBAIHZvaWQgYW1kX3NjaGVkX2h3X2pvYl9yZXNldChzdHJ1Y3QgYW1kX2dw dV9zY2hlZHVsZXIgKnNjaGVkKQogCiAJc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7 CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHNfam9iLCAmc2NoZWQtPnJpbmdfbWlycm9y X2xpc3QsIG5vZGUpIHsKLQkJaWYgKGZlbmNlX3JlbW92ZV9jYWxsYmFjayhzX2pvYi0+c19mZW5j ZS0+cGFyZW50LCAmc19qb2ItPnNfZmVuY2UtPmNiKSkgewotCQkJZmVuY2VfcHV0KHNfam9iLT5z X2ZlbmNlLT5wYXJlbnQpOworCQlpZiAoZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayhzX2pvYi0+ c19mZW5jZS0+cGFyZW50LCAmc19qb2ItPnNfZmVuY2UtPmNiKSkgeworCQkJZG1hX2ZlbmNlX3B1 dChzX2pvYi0+c19mZW5jZS0+cGFyZW50KTsKIAkJCXNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgPSBO VUxMOwogCQl9CiAJfQpAQCAtNDEwLDIxICs0MTEsMjEgQEAgdm9pZCBhbWRfc2NoZWRfam9iX3Jl Y292ZXJ5KHN0cnVjdCBhbWRfZ3B1X3NjaGVkdWxlciAqc2NoZWQpCiAKIAlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoc19qb2IsIHRtcCwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7 CiAJCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNfZmVuY2UgPSBzX2pvYi0+c19mZW5jZTsKLQkJ c3RydWN0IGZlbmNlICpmZW5jZTsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJc3Bp bl91bmxvY2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsKIAkJZmVuY2UgPSBzY2hlZC0+b3BzLT5y dW5fam9iKHNfam9iKTsKIAkJYXRvbWljX2luYygmc2NoZWQtPmh3X3JxX2NvdW50KTsKIAkJaWYg KGZlbmNlKSB7Ci0JCQlzX2ZlbmNlLT5wYXJlbnQgPSBmZW5jZV9nZXQoZmVuY2UpOwotCQkJciA9 IGZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJnNfZmVuY2UtPmNiLAotCQkJCQkgICAgICAgYW1k X3NjaGVkX3Byb2Nlc3Nfam9iKTsKKwkJCXNfZmVuY2UtPnBhcmVudCA9IGRtYV9mZW5jZV9nZXQo ZmVuY2UpOworCQkJciA9IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzX2ZlbmNlLT5j YiwKKwkJCQkJCSAgIGFtZF9zY2hlZF9wcm9jZXNzX2pvYik7CiAJCQlpZiAociA9PSAtRU5PRU5U KQogCQkJCWFtZF9zY2hlZF9wcm9jZXNzX2pvYihmZW5jZSwgJnNfZmVuY2UtPmNiKTsKIAkJCWVs c2UgaWYgKHIpCiAJCQkJRFJNX0VSUk9SKCJmZW5jZSBhZGQgY2FsbGJhY2sgZmFpbGVkICglZClc biIsCiAJCQkJCSAgcik7Ci0JCQlmZW5jZV9wdXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3B1dChm ZW5jZSk7CiAJCX0gZWxzZSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBydW4gam9iIVxuIik7 CiAJCQlhbWRfc2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNfZmVuY2UtPmNiKTsKQEAgLTQ0Niw4 ICs0NDcsOCBAQCB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfcHVzaF9qb2Ioc3RydWN0IGFtZF9zY2hl ZF9qb2IgKnNjaGVkX2pvYikKIAlzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eSAqZW50aXR5ID0gc2No ZWRfam9iLT5zX2VudGl0eTsKIAogCXRyYWNlX2FtZF9zY2hlZF9qb2Ioc2NoZWRfam9iKTsKLQlm ZW5jZV9hZGRfY2FsbGJhY2soJnNjaGVkX2pvYi0+c19mZW5jZS0+ZmluaXNoZWQsICZzY2hlZF9q b2ItPmZpbmlzaF9jYiwKLQkJCSAgIGFtZF9zY2hlZF9qb2JfZmluaXNoX2NiKTsKKwlkbWFfZmVu Y2VfYWRkX2NhbGxiYWNrKCZzY2hlZF9qb2ItPnNfZmVuY2UtPmZpbmlzaGVkLCAmc2NoZWRfam9i LT5maW5pc2hfY2IsCisJCQkgICAgICAgYW1kX3NjaGVkX2pvYl9maW5pc2hfY2IpOwogCXdhaXRf ZXZlbnQoZW50aXR5LT5zY2hlZC0+am9iX3NjaGVkdWxlZCwKIAkJICAgYW1kX3NjaGVkX2VudGl0 eV9pbihzY2hlZF9qb2IpKTsKIH0KQEAgLTUxMSw3ICs1MTIsNyBAQCBhbWRfc2NoZWRfc2VsZWN0 X2VudGl0eShzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogCXJldHVybiBlbnRpdHk7 CiB9CiAKLXN0YXRpYyB2b2lkIGFtZF9zY2hlZF9wcm9jZXNzX2pvYihzdHJ1Y3QgZmVuY2UgKmYs IHN0cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBhbWRfc2NoZWRfcHJvY2Vzc19qb2Io c3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0 IGFtZF9zY2hlZF9mZW5jZSAqc19mZW5jZSA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGFt ZF9zY2hlZF9mZW5jZSwgY2IpOwpAQCAtNTIxLDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIGFtZF9z Y2hlZF9wcm9jZXNzX2pvYihzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiAJ YW1kX3NjaGVkX2ZlbmNlX2ZpbmlzaGVkKHNfZmVuY2UpOwogCiAJdHJhY2VfYW1kX3NjaGVkX3By b2Nlc3Nfam9iKHNfZmVuY2UpOwotCWZlbmNlX3B1dCgmc19mZW5jZS0+ZmluaXNoZWQpOworCWRt YV9mZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsKIAl3YWtlX3VwX2ludGVycnVwdGlibGUo JnNjaGVkLT53YWtlX3VwX3dvcmtlcik7CiB9CiAKQEAgLTU0Nyw3ICs1NDgsNyBAQCBzdGF0aWMg aW50IGFtZF9zY2hlZF9tYWluKHZvaWQgKnBhcmFtKQogCQlzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0 eSAqZW50aXR5ID0gTlVMTDsKIAkJc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqc19mZW5jZTsKIAkJ c3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYjsKLQkJc3RydWN0IGZlbmNlICpmZW5jZTsK KwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxl KHNjaGVkLT53YWtlX3VwX3dvcmtlciwKIAkJCQkJICghYW1kX3NjaGVkX2Jsb2NrZWQoc2NoZWQp ICYmCkBAIC01NjksMTUgKzU3MCwxNSBAQCBzdGF0aWMgaW50IGFtZF9zY2hlZF9tYWluKHZvaWQg KnBhcmFtKQogCQlmZW5jZSA9IHNjaGVkLT5vcHMtPnJ1bl9qb2Ioc2NoZWRfam9iKTsKIAkJYW1k X3NjaGVkX2ZlbmNlX3NjaGVkdWxlZChzX2ZlbmNlKTsKIAkJaWYgKGZlbmNlKSB7Ci0JCQlzX2Zl bmNlLT5wYXJlbnQgPSBmZW5jZV9nZXQoZmVuY2UpOwotCQkJciA9IGZlbmNlX2FkZF9jYWxsYmFj ayhmZW5jZSwgJnNfZmVuY2UtPmNiLAotCQkJCQkgICAgICAgYW1kX3NjaGVkX3Byb2Nlc3Nfam9i KTsKKwkJCXNfZmVuY2UtPnBhcmVudCA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOworCQkJciA9IGRt YV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzX2ZlbmNlLT5jYiwKKwkJCQkJCSAgIGFtZF9z Y2hlZF9wcm9jZXNzX2pvYik7CiAJCQlpZiAociA9PSAtRU5PRU5UKQogCQkJCWFtZF9zY2hlZF9w cm9jZXNzX2pvYihmZW5jZSwgJnNfZmVuY2UtPmNiKTsKIAkJCWVsc2UgaWYgKHIpCiAJCQkJRFJN X0VSUk9SKCJmZW5jZSBhZGQgY2FsbGJhY2sgZmFpbGVkICglZClcbiIsCiAJCQkJCSAgcik7Ci0J CQlmZW5jZV9wdXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCX0gZWxzZSB7 CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBydW4gam9iIVxuIik7CiAJCQlhbWRfc2NoZWRfcHJv Y2Vzc19qb2IoTlVMTCwgJnNfZmVuY2UtPmNiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2No ZWR1bGVyL2dwdV9zY2hlZHVsZXIuaAppbmRleCA3Y2JiYmZiNTAyZWYuLjg3NmFhNDNiNTdkZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaApAQCAt MjUsNyArMjUsNyBAQAogI2RlZmluZSBfR1BVX1NDSEVEVUxFUl9IXwogCiAjaW5jbHVkZSA8bGlu dXgva2ZpZm8uaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Rt YS1mZW5jZS5oPgogCiBzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXI7CiBzdHJ1Y3QgYW1kX3NjaGVk X3JxOwpAQCAtNTAsOCArNTAsOCBAQCBzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eSB7CiAJYXRvbWlj X3QJCQlmZW5jZV9zZXE7CiAJdWludDY0X3QgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZV9j b250ZXh0OwogCi0Jc3RydWN0IGZlbmNlCQkJKmRlcGVuZGVuY3k7Ci0Jc3RydWN0IGZlbmNlX2Ni CQkJY2I7CisJc3RydWN0IGRtYV9mZW5jZQkJKmRlcGVuZGVuY3k7CisJc3RydWN0IGRtYV9mZW5j ZV9jYgkJY2I7CiB9OwogCiAvKioKQEAgLTY2LDEwICs2NiwxMCBAQCBzdHJ1Y3QgYW1kX3NjaGVk X3JxIHsKIH07CiAKIHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgewotCXN0cnVjdCBmZW5jZSAgICAg ICAgICAgICAgICAgICAgc2NoZWR1bGVkOwotCXN0cnVjdCBmZW5jZSAgICAgICAgICAgICAgICAg ICAgZmluaXNoZWQ7Ci0Jc3RydWN0IGZlbmNlX2NiICAgICAgICAgICAgICAgICBjYjsKLQlzdHJ1 Y3QgZmVuY2UgICAgICAgICAgICAgICAgICAgICpwYXJlbnQ7CisJc3RydWN0IGRtYV9mZW5jZSAg ICAgICAgICAgICAgICBzY2hlZHVsZWQ7CisJc3RydWN0IGRtYV9mZW5jZSAgICAgICAgICAgICAg ICBmaW5pc2hlZDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiICAgICAgICAgICAgIGNiOworCXN0cnVj dCBkbWFfZmVuY2UgICAgICAgICAgICAgICAgKnBhcmVudDsKIAlzdHJ1Y3QgYW1kX2dwdV9zY2hl ZHVsZXIJKnNjaGVkOwogCXNwaW5sb2NrX3QJCQlsb2NrOwogCXZvaWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKm93bmVyOwpAQCAtNzksMTUgKzc5LDE1IEBAIHN0cnVjdCBhbWRfc2NoZWRf am9iIHsKIAlzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgICAgICAgICpzY2hlZDsKIAlzdHJ1Y3Qg YW1kX3NjaGVkX2VudGl0eSAgICAgICAgICpzX2VudGl0eTsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2Zl bmNlICAgICAgICAgICpzX2ZlbmNlOwotCXN0cnVjdCBmZW5jZV9jYgkJCWZpbmlzaF9jYjsKKwlz dHJ1Y3QgZG1hX2ZlbmNlX2NiCQlmaW5pc2hfY2I7CiAJc3RydWN0IHdvcmtfc3RydWN0CQlmaW5p c2hfd29yazsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQlub2RlOwogCXN0cnVjdCBkZWxheWVkX3dvcmsJ CXdvcmtfdGRyOwogfTsKIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kX3NjaGVk X2ZlbmNlX29wc19zY2hlZHVsZWQ7Ci1leHRlcm4gY29uc3Qgc3RydWN0IGZlbmNlX29wcyBhbWRf c2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkOwotc3RhdGljIGlubGluZSBzdHJ1Y3QgYW1kX3NjaGVk X2ZlbmNlICp0b19hbWRfc2NoZWRfZmVuY2Uoc3RydWN0IGZlbmNlICpmKQorZXh0ZXJuIGNvbnN0 IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkOworZXh0 ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfZmluaXNo ZWQ7CitzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnRvX2FtZF9zY2hlZF9m ZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCWlmIChmLT5vcHMgPT0gJmFtZF9zY2hlZF9m ZW5jZV9vcHNfc2NoZWR1bGVkKQogCQlyZXR1cm4gY29udGFpbmVyX29mKGYsIHN0cnVjdCBhbWRf c2NoZWRfZmVuY2UsIHNjaGVkdWxlZCk7CkBAIC0xMDMsOCArMTAzLDggQEAgc3RhdGljIGlubGlu ZSBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICp0b19hbWRfc2NoZWRfZmVuY2Uoc3RydWN0IGZlbmNl ICpmKQogICogdGhlc2UgZnVuY3Rpb25zIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBkcml2ZXIg c2lkZQogKi8KIHN0cnVjdCBhbWRfc2NoZWRfYmFja2VuZF9vcHMgewotCXN0cnVjdCBmZW5jZSAq KCpkZXBlbmRlbmN5KShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKTsKLQlzdHJ1Y3Qg ZmVuY2UgKigqcnVuX2pvYikoc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYik7CisJc3Ry dWN0IGRtYV9mZW5jZSAqKCpkZXBlbmRlbmN5KShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRf am9iKTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICooKnJ1bl9qb2IpKHN0cnVjdCBhbWRfc2NoZWRfam9i ICpzY2hlZF9qb2IpOwogCXZvaWQgKCp0aW1lZG91dF9qb2IpKHN0cnVjdCBhbWRfc2NoZWRfam9i ICpzY2hlZF9qb2IpOwogCXZvaWQgKCpmcmVlX2pvYikoc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNj aGVkX2pvYik7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIv c2NoZWRfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNl LmMKaW5kZXggNmI2M2JlYWY3NTc0Li5jMjZmYTI5OGZlOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9zY2hlZHVsZXIvc2NoZWRfZmVuY2UuYwpAQCAtNDIsNDYgKzQyLDUwIEBAIHN0cnVjdCBh bWRfc2NoZWRfZmVuY2UgKmFtZF9zY2hlZF9mZW5jZV9jcmVhdGUoc3RydWN0IGFtZF9zY2hlZF9l bnRpdHkgKmVudGl0eSwKIAlzcGluX2xvY2tfaW5pdCgmZmVuY2UtPmxvY2spOwogCiAJc2VxID0g YXRvbWljX2luY19yZXR1cm4oJmVudGl0eS0+ZmVuY2Vfc2VxKTsKLQlmZW5jZV9pbml0KCZmZW5j ZS0+c2NoZWR1bGVkLCAmYW1kX3NjaGVkX2ZlbmNlX29wc19zY2hlZHVsZWQsCi0JCSAgICZmZW5j ZS0+bG9jaywgZW50aXR5LT5mZW5jZV9jb250ZXh0LCBzZXEpOwotCWZlbmNlX2luaXQoJmZlbmNl LT5maW5pc2hlZCwgJmFtZF9zY2hlZF9mZW5jZV9vcHNfZmluaXNoZWQsCi0JCSAgICZmZW5jZS0+ bG9jaywgZW50aXR5LT5mZW5jZV9jb250ZXh0ICsgMSwgc2VxKTsKKwlkbWFfZmVuY2VfaW5pdCgm ZmVuY2UtPnNjaGVkdWxlZCwgJmFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkLAorCQkgICAg ICAgJmZlbmNlLT5sb2NrLCBlbnRpdHktPmZlbmNlX2NvbnRleHQsIHNlcSk7CisJZG1hX2ZlbmNl X2luaXQoJmZlbmNlLT5maW5pc2hlZCwgJmFtZF9zY2hlZF9mZW5jZV9vcHNfZmluaXNoZWQsCisJ CSAgICAgICAmZmVuY2UtPmxvY2ssIGVudGl0eS0+ZmVuY2VfY29udGV4dCArIDEsIHNlcSk7CiAK IAlyZXR1cm4gZmVuY2U7CiB9CiAKIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX3NjaGVkdWxlZChzdHJ1 Y3QgYW1kX3NjaGVkX2ZlbmNlICpmZW5jZSkKIHsKLQlpbnQgcmV0ID0gZmVuY2Vfc2lnbmFsKCZm ZW5jZS0+c2NoZWR1bGVkKTsKKwlpbnQgcmV0ID0gZG1hX2ZlbmNlX3NpZ25hbCgmZmVuY2UtPnNj aGVkdWxlZCk7CiAKIAlpZiAoIXJldCkKLQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5zY2hlZHVsZWQs ICJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKKwkJRE1BX0ZFTkNFX1RSQUNFKCZmZW5j ZS0+c2NoZWR1bGVkLAorCQkJCSJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKIAllbHNl Ci0JCUZFTkNFX1RSQUNFKCZmZW5jZS0+c2NoZWR1bGVkLCAid2FzIGFscmVhZHkgc2lnbmFsZWRc biIpOworCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5zY2hlZHVsZWQsCisJCQkJIndhcyBhbHJl YWR5IHNpZ25hbGVkXG4iKTsKIH0KIAogdm9pZCBhbWRfc2NoZWRfZmVuY2VfZmluaXNoZWQoc3Ry dWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2UpCiB7Ci0JaW50IHJldCA9IGZlbmNlX3NpZ25hbCgm ZmVuY2UtPmZpbmlzaGVkKTsKKwlpbnQgcmV0ID0gZG1hX2ZlbmNlX3NpZ25hbCgmZmVuY2UtPmZp bmlzaGVkKTsKIAogCWlmICghcmV0KQotCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmZpbmlzaGVkLCAi c2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2Ut PmZpbmlzaGVkLAorCQkJCSJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKIAllbHNlCi0J CUZFTkNFX1RSQUNFKCZmZW5jZS0+ZmluaXNoZWQsICJ3YXMgYWxyZWFkeSBzaWduYWxlZFxuIik7 CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmZpbmlzaGVkLAorCQkJCSJ3YXMgYWxyZWFkeSBz aWduYWxlZFxuIik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICphbWRfc2NoZWRfZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqYW1k X3NjaGVkX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlyZXR1cm4gImFtZF9zY2hlZCI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICphbWRfc2NoZWRf ZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IGNo YXIgKmFtZF9zY2hlZF9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpm KQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKmZlbmNlID0gdG9fYW1kX3NjaGVkX2ZlbmNl KGYpOwogCXJldHVybiAoY29uc3QgY2hhciAqKWZlbmNlLT5zY2hlZC0+bmFtZTsKIH0KIAotc3Rh dGljIGJvb2wgYW1kX3NjaGVkX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpm KQorc3RhdGljIGJvb2wgYW1kX3NjaGVkX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRt YV9mZW5jZSAqZikKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTk1LDEwICs5OSwxMCBAQCBzdGF0 aWMgYm9vbCBhbWRfc2NoZWRfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYp CiAgKi8KIHN0YXRpYyB2b2lkIGFtZF9zY2hlZF9mZW5jZV9mcmVlKHN0cnVjdCByY3VfaGVhZCAq cmN1KQogewotCXN0cnVjdCBmZW5jZSAqZiA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBmZW5j ZSwgcmN1KTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gY29udGFpbmVyX29mKHJjdSwgc3RydWN0 IGRtYV9mZW5jZSwgcmN1KTsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpmZW5jZSA9IHRvX2Ft ZF9zY2hlZF9mZW5jZShmKTsKIAotCWZlbmNlX3B1dChmZW5jZS0+cGFyZW50KTsKKwlkbWFfZmVu Y2VfcHV0KGZlbmNlLT5wYXJlbnQpOwogCWttZW1fY2FjaGVfZnJlZShzY2hlZF9mZW5jZV9zbGFi LCBmZW5jZSk7CiB9CiAKQEAgLTExMCw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBhbWRfc2NoZWRf ZmVuY2VfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKICAqIFRoaXMgZnVuY3Rpb24gaXMgY2Fs bGVkIHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBiZWNvbWVzIHplcm8uCiAgKiBJdCBqdXN0IFJD VSBzY2hlZHVsZXMgZnJlZWluZyB1cCB0aGUgZmVuY2UuCiAgKi8KLXN0YXRpYyB2b2lkIGFtZF9z Y2hlZF9mZW5jZV9yZWxlYXNlX3NjaGVkdWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgdm9p ZCBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9zY2hlZHVsZWQoc3RydWN0IGRtYV9mZW5jZSAqZikK IHsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpmZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShm KTsKIApAQCAtMTI0LDI3ICsxMjgsMjcgQEAgc3RhdGljIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX3Jl bGVhc2Vfc2NoZWR1bGVkKHN0cnVjdCBmZW5jZSAqZikKICAqCiAgKiBEcm9wIHRoZSBleHRyYSBy ZWZlcmVuY2UgZnJvbSB0aGUgc2NoZWR1bGVkIGZlbmNlIHRvIHRoZSBiYXNlIGZlbmNlLgogICov Ci1zdGF0aWMgdm9pZCBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9maW5pc2hlZChzdHJ1Y3QgZmVu Y2UgKmYpCitzdGF0aWMgdm9pZCBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9maW5pc2hlZChzdHJ1 Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKmZlbmNlID0gdG9f YW1kX3NjaGVkX2ZlbmNlKGYpOwogCi0JZmVuY2VfcHV0KCZmZW5jZS0+c2NoZWR1bGVkKTsKKwlk bWFfZmVuY2VfcHV0KCZmZW5jZS0+c2NoZWR1bGVkKTsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNl X29wcyBhbWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZCA9IHsKK2NvbnN0IHN0cnVjdCBkbWFf ZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkID0gewogCS5nZXRfZHJpdmVy X25hbWUgPSBhbWRfc2NoZWRfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVf bmFtZSA9IGFtZF9zY2hlZF9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25h bGluZyA9IGFtZF9zY2hlZF9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IE5V TEwsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVm YXVsdF93YWl0LAogCS5yZWxlYXNlID0gYW1kX3NjaGVkX2ZlbmNlX3JlbGVhc2Vfc2NoZWR1bGVk LAogfTsKIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyBhbWRfc2NoZWRfZmVuY2Vfb3BzX2Zpbmlz aGVkID0geworY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNlX29wc19m aW5pc2hlZCA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gYW1kX3NjaGVkX2ZlbmNlX2dldF9kcml2 ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBhbWRfc2NoZWRfZmVuY2VfZ2V0X3RpbWVs aW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBhbWRfc2NoZWRfZmVuY2VfZW5hYmxlX3Np Z25hbGluZywKIAkuc2lnbmFsZWQgPSBOVUxMLAotCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93YWl0 LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IGFtZF9zY2hl ZF9mZW5jZV9yZWxlYXNlX2ZpbmlzaGVkLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4IDFiNWEz MmRmOWE5YS4uYzMyZmIzYzFkNmYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTE0NjMsNyArMTQ2 Myw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19ub25ibG9ja2luZ19jb21taXQpOwogCiBz dGF0aWMgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqY3JlYXRlX3ZibGFua19ldmVu dCgKIAkJc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2UsIHVpbnQ2NF90IHVzZXJfZGF0YSkKKwkJc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UsIHVpbnQ2NF90IHVzZXJfZGF0YSkKIHsKIAlzdHJ1Y3QgZHJtX3BlbmRp bmdfdmJsYW5rX2V2ZW50ICplID0gTlVMTDsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwppbmRleCBmOTM2Mjc2MGJmYjIuLjc1YWQwMWQ1OTVmZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJt X3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgor I2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJu YWwuaCIKIApAQCAtMTAxNyw3ICsxMDE3LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfbW9kZXNldF9lbmFibGVzKTsKICAqIGRybV9hdG9taWNfaGVscGVyX3N3YXBf c3RhdGUoKSBzbyBpdCB1c2VzIHRoZSBjdXJyZW50IHBsYW5lIHN0YXRlIChhbmQKICAqIGp1c3Qg dXNlcyB0aGUgYXRvbWljIHN0YXRlIHRvIGZpbmQgdGhlIGNoYW5nZWQgcGxhbmVzKQogICoKLSAq IFJldHVybnMgemVybyBpZiBzdWNjZXNzIG9yIDwgMCBpZiBmZW5jZV93YWl0KCkgZmFpbHMuCisg KiBSZXR1cm5zIHplcm8gaWYgc3VjY2VzcyBvciA8IDAgaWYgZG1hX2ZlbmNlX3dhaXQoKSBmYWls cy4KICAqLwogaW50IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK QEAgLTEwNDEsMTEgKzEwNDEsMTEgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2Zl bmNlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgKiBzdGlsbCBpbnRlcnJ1cHQgdGhlIG9w ZXJhdGlvbi4gSW5zdGVhZCBvZiBibG9ja2luZyB1bnRpbCB0aGUKIAkJICogdGltZXIgZXhwaXJl cywgbWFrZSB0aGUgd2FpdCBpbnRlcnJ1cHRpYmxlLgogCQkgKi8KLQkJcmV0ID0gZmVuY2Vfd2Fp dChwbGFuZV9zdGF0ZS0+ZmVuY2UsIHByZV9zd2FwKTsKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQo cGxhbmVfc3RhdGUtPmZlbmNlLCBwcmVfc3dhcCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0 OwogCi0JCWZlbmNlX3B1dChwbGFuZV9zdGF0ZS0+ZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KHBs YW5lX3N0YXRlLT5mZW5jZSk7CiAJCXBsYW5lX3N0YXRlLT5mZW5jZSA9IE5VTEw7CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZm9wcy5jCmluZGV4IDhiZWQ1ZjQ1OTE4Mi4uY2Y5OTNkYmY2MDJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMu YwpAQCAtNjY1LDcgKzY2NSw3IEBAIHZvaWQgZHJtX2V2ZW50X2NhbmNlbF9mcmVlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2Nr LCBmbGFncyk7CiAKIAlpZiAocC0+ZmVuY2UpCi0JCWZlbmNlX3B1dChwLT5mZW5jZSk7CisJCWRt YV9mZW5jZV9wdXQocC0+ZmVuY2UpOwogCiAJa2ZyZWUocCk7CiB9CkBAIC02OTYsOCArNjk2LDgg QEAgdm9pZCBkcm1fc2VuZF9ldmVudF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9wZW5kaW5nX2V2ZW50ICplKQogCX0KIAogCWlmIChlLT5mZW5jZSkgewotCQlmZW5j ZV9zaWduYWwoZS0+ZmVuY2UpOwotCQlmZW5jZV9wdXQoZS0+ZmVuY2UpOworCQlkbWFfZmVuY2Vf c2lnbmFsKGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChlLT5mZW5jZSk7CiAJfQogCiAJaWYg KCFlLT5maWxlX3ByaXYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0 bmF2aXZfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jCmluZGV4 IDM3NTVlZjkzNWFmNC4uN2QwNjZhOTFkNzc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZXRuYXZpdi9ldG5hdml2X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2 aXZfZ2VtLmMKQEAgLTQ2NiwxMCArNDY2LDEwIEBAIGludCBldG5hdml2X2dlbV93YWl0X2JvKHN0 cnVjdCBldG5hdml2X2dwdSAqZ3B1LCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIH0KIAog I2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGljIHZvaWQgZXRuYXZpdl9nZW1fZGVzY3JpYmVf ZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSwKK3N0YXRpYyB2b2lkIGV0bmF2aXZfZ2VtX2Rlc2Ny aWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCWNvbnN0IGNoYXIgKnR5cGUsIHN0 cnVjdCBzZXFfZmlsZSAqbSkKIHsKLQlpZiAoIXRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURf QklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05B TEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXNlcV9wcmludGYobSwgIlx0JTlzOiAlcyAlcyBz ZXEgJXVcbiIsCiAJCQkgICB0eXBlLAogCQkJICAgZmVuY2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1l KGZlbmNlKSwKQEAgLTQ4Miw3ICs0ODIsNyBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2dlbV9kZXNj cmliZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHNlcV9maWxlICptKQogCXN0 cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqID0gdG9fZXRuYXZpdl9ibyhvYmop OwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJvYmogPSBldG5hdml2X29iai0+cmVzdjsK IAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpm ZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAl1bnNpZ25lZCBsb25nIG9mZiA9IGRy bV92bWFfbm9kZV9zdGFydCgmb2JqLT52bWFfbm9kZSk7CiAKIAlzZXFfcHJpbnRmKG0sICIlMDh4 OiAlYyAlMmQgKCUyZCkgJTA4bHggJXAgJXpkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2 aXZfZ3B1LmMKaW5kZXggYjEyNTRmODg1ZmVkLi44ZWFjYzVmMDNkOGIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2V0bmF2aXYvZXRuYXZpdl9ncHUuYwpAQCAtMTUsNyArMTUsNyBAQAogICovCiAKICNpbmNsdWRl IDxsaW51eC9jb21wb25lbnQuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUg PGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5j bHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSAiZXRuYXZpdl9kdW1wLmgiCkBAIC04 ODIsNyArODgyLDcgQEAgc3RhdGljIHZvaWQgcmVjb3Zlcl93b3JrZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGdwdS0+ZXZlbnQpOyBpKysp IHsKIAkJaWYgKCFncHUtPmV2ZW50W2ldLnVzZWQpCiAJCQljb250aW51ZTsKLQkJZmVuY2Vfc2ln bmFsKGdwdS0+ZXZlbnRbaV0uZmVuY2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsKGdwdS0+ZXZlbnRb aV0uZmVuY2UpOwogCQlncHUtPmV2ZW50W2ldLmZlbmNlID0gTlVMTDsKIAkJZ3B1LT5ldmVudFtp XS51c2VkID0gZmFsc2U7CiAJCWNvbXBsZXRlKCZncHUtPmV2ZW50X2ZyZWUpOwpAQCAtOTUyLDU1 ICs5NTIsNTUgQEAgc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2Rpc2FibGUoc3RydWN0IGV0bmF2aXZf Z3B1ICpncHUpCiAvKiBmZW5jZSBvYmplY3QgbWFuYWdlbWVudCAqLwogc3RydWN0IGV0bmF2aXZf ZmVuY2UgewogCXN0cnVjdCBldG5hdml2X2dwdSAqZ3B1OwotCXN0cnVjdCBmZW5jZSBiYXNlOwor CXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGV0bmF2 aXZfZmVuY2UgKnRvX2V0bmF2aXZfZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBp bmxpbmUgc3RydWN0IGV0bmF2aXZfZmVuY2UgKnRvX2V0bmF2aXZfZmVuY2Uoc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IGV0bmF2 aXZfZmVuY2UsIGJhc2UpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqZXRuYXZpdl9mZW5jZV9n ZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpl dG5hdml2X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlyZXR1cm4gImV0bmF2aXYiOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqZXRuYXZpdl9mZW5j ZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNo YXIgKmV0bmF2aXZfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCiB7CiAJc3RydWN0IGV0bmF2aXZfZmVuY2UgKmYgPSB0b19ldG5hdml2X2ZlbmNlKGZlbmNl KTsKIAogCXJldHVybiBkZXZfbmFtZShmLT5ncHUtPmRldik7CiB9CiAKLXN0YXRpYyBib29sIGV0 bmF2aXZfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGlj IGJvb2wgZXRuYXZpdl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlKQogewogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBldG5hdml2X2ZlbmNlX3Np Z25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCBldG5hdml2X2ZlbmNlX3Np Z25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBldG5hdml2X2ZlbmNl ICpmID0gdG9fZXRuYXZpdl9mZW5jZShmZW5jZSk7CiAKLQlyZXR1cm4gZmVuY2VfY29tcGxldGVk KGYtPmdwdSwgZi0+YmFzZS5zZXFubyk7CisJcmV0dXJuIGRtYV9mZW5jZV9jb21wbGV0ZWQoZi0+ Z3B1LCBmLT5iYXNlLnNlcW5vKTsKIH0KIAotc3RhdGljIHZvaWQgZXRuYXZpdl9mZW5jZV9yZWxl YXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBldG5hdml2X2ZlbmNlX3JlbGVh c2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IGV0bmF2aXZfZmVuY2UgKmYg PSB0b19ldG5hdml2X2ZlbmNlKGZlbmNlKTsKIAogCWtmcmVlX3JjdShmLCBiYXNlLnJjdSk7CiB9 CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGV0bmF2aXZfZmVuY2Vfb3BzID0gewor c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGV0bmF2aXZfZmVuY2Vfb3BzID0gewog CS5nZXRfZHJpdmVyX25hbWUgPSBldG5hdml2X2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0 X3RpbWVsaW5lX25hbWUgPSBldG5hdml2X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFi bGVfc2lnbmFsaW5nID0gZXRuYXZpdl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxl ZCA9IGV0bmF2aXZfZmVuY2Vfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQs CisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0gZXRuYXZpdl9m ZW5jZV9yZWxlYXNlLAogfTsKIAotc3RhdGljIHN0cnVjdCBmZW5jZSAqZXRuYXZpdl9ncHVfZmVu Y2VfYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCitzdGF0aWMgc3RydWN0IGRtYV9mZW5j ZSAqZXRuYXZpdl9ncHVfZmVuY2VfYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiB7CiAJ c3RydWN0IGV0bmF2aXZfZmVuY2UgKmY7CiAKQEAgLTEwMTAsOCArMTAxMCw4IEBAIHN0YXRpYyBz dHJ1Y3QgZmVuY2UgKmV0bmF2aXZfZ3B1X2ZlbmNlX2FsbG9jKHN0cnVjdCBldG5hdml2X2dwdSAq Z3B1KQogCiAJZi0+Z3B1ID0gZ3B1OwogCi0JZmVuY2VfaW5pdCgmZi0+YmFzZSwgJmV0bmF2aXZf ZmVuY2Vfb3BzLCAmZ3B1LT5mZW5jZV9zcGlubG9jaywKLQkJICAgZ3B1LT5mZW5jZV9jb250ZXh0 LCArK2dwdS0+bmV4dF9mZW5jZSk7CisJZG1hX2ZlbmNlX2luaXQoJmYtPmJhc2UsICZldG5hdml2 X2ZlbmNlX29wcywgJmdwdS0+ZmVuY2Vfc3BpbmxvY2ssCisJCSAgICAgICBncHUtPmZlbmNlX2Nv bnRleHQsICsrZ3B1LT5uZXh0X2ZlbmNlKTsKIAogCXJldHVybiAmZi0+YmFzZTsKIH0KQEAgLTEw MjEsNyArMTAyMSw3IEBAIGludCBldG5hdml2X2dwdV9mZW5jZV9zeW5jX29iaihzdHJ1Y3QgZXRu YXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiwKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpyb2JqID0gZXRuYXZpdl9vYmotPnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVj dF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7CiAJaW50IGksIHJldDsKIAogCWlmICghZXhjbHVzaXZlKSB7CkBAIC0xMDM5LDcgKzEw MzksNyBAQCBpbnQgZXRuYXZpdl9ncHVfZmVuY2Vfc3luY19vYmooc3RydWN0IGV0bmF2aXZfZ2Vt X29iamVjdCAqZXRuYXZpdl9vYmosCiAJCS8qIFdhaXQgb24gYW55IGV4aXN0aW5nIGV4Y2x1c2l2 ZSBmZW5jZSB3aGljaCBpc24ndCBvdXIgb3duICovCiAJCWZlbmNlID0gcmVzZXJ2YXRpb25fb2Jq ZWN0X2dldF9leGNsKHJvYmopOwogCQlpZiAoZmVuY2UgJiYgZmVuY2UtPmNvbnRleHQgIT0gY29u dGV4dCkgewotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFf ZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJ CX0KQEAgLTEwNTIsNyArMTA1Miw3IEBAIGludCBldG5hdml2X2dwdV9mZW5jZV9zeW5jX29iaihz dHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaiwKIAkJZmVuY2UgPSByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKIAkJCQkJCXJlc2VydmF0aW9uX29i amVjdF9oZWxkKHJvYmopKTsKIAkJaWYgKGZlbmNlLT5jb250ZXh0ICE9IGNvbnRleHQpIHsKLQkJ CXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQo ZmVuY2UsIHRydWUpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwogCQl9CkBAIC0xMTU4 LDExICsxMTU4LDExIEBAIHN0YXRpYyB2b2lkIHJldGlyZV93b3JrZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCiAJbXV0ZXhfbG9jaygmZ3B1LT5sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoY21kYnVmLCB0bXAsICZncHUtPmFjdGl2ZV9jbWRfbGlzdCwgbm9kZSkgewotCQlp ZiAoIWZlbmNlX2lzX3NpZ25hbGVkKGNtZGJ1Zi0+ZmVuY2UpKQorCQlpZiAoIWRtYV9mZW5jZV9p c19zaWduYWxlZChjbWRidWYtPmZlbmNlKSkKIAkJCWJyZWFrOwogCiAJCWxpc3RfZGVsKCZjbWRi dWYtPm5vZGUpOwotCQlmZW5jZV9wdXQoY21kYnVmLT5mZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQo Y21kYnVmLT5mZW5jZSk7CiAKIAkJZm9yIChpID0gMDsgaSA8IGNtZGJ1Zi0+bnJfYm9zOyBpKysp IHsKIAkJCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbWFwcGluZyA9IGNtZGJ1Zi0+Ym9f bWFwW2ldOwpAQCAtMTIwNCw3ICsxMjA0LDcgQEAgaW50IGV0bmF2aXZfZ3B1X3dhaXRfZmVuY2Vf aW50ZXJydXB0aWJsZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwKIAogCWlmICghdGltZW91dCkg ewogCQkvKiBObyB0aW1lb3V0IHdhcyByZXF1ZXN0ZWQ6IGp1c3QgdGVzdCBmb3IgY29tcGxldGlv biAqLwotCQlyZXQgPSBmZW5jZV9jb21wbGV0ZWQoZ3B1LCBmZW5jZSkgPyAwIDogLUVCVVNZOwor CQlyZXQgPSBkbWFfZmVuY2VfY29tcGxldGVkKGdwdSwgZmVuY2UpID8gMCA6IC1FQlVTWTsKIAl9 IGVsc2UgewogCQl1bnNpZ25lZCBsb25nIHJlbWFpbmluZyA9IGV0bmF2aXZfdGltZW91dF90b19q aWZmaWVzKHRpbWVvdXQpOwogCkBAIC0xMjc1LDcgKzEyNzUsNyBAQCB2b2lkIGV0bmF2aXZfZ3B1 X3BtX3B1dChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIGludCBldG5hdml2X2dwdV9zdWJtaXQo c3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCiAJc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3Vi bWl0LCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNtZGJ1ZikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZl bmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXVuc2lnbmVkIGludCBldmVudCwgaTsK IAlpbnQgcmV0OwogCkBAIC0xMzkxLDcgKzEzOTEsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXJx X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKIAkJfQogCiAJCXdoaWxlICgoZXZlbnQgPSBm ZnMoaW50cikpICE9IDApIHsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJCQlzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZTsKIAogCQkJZXZlbnQgLT0gMTsKIApAQCAtMTQwMSw3ICsxNDAxLDcgQEAg c3RhdGljIGlycXJldHVybl90IGlycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAKIAkJ CWZlbmNlID0gZ3B1LT5ldmVudFtldmVudF0uZmVuY2U7CiAJCQlncHUtPmV2ZW50W2V2ZW50XS5m ZW5jZSA9IE5VTEw7Ci0JCQlmZW5jZV9zaWduYWwoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3NpZ25h bChmZW5jZSk7CiAKIAkJCS8qCiAJCQkgKiBFdmVudHMgY2FuIGJlIHByb2Nlc3NlZCBvdXQgb2Yg b3JkZXIuICBFZywKQEAgLTE1NTMsNyArMTU1Myw3IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9ncHVf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAkJcmV0dXJu IHJldDsKIAogCWdwdS0+ZHJtID0gZHJtOwotCWdwdS0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2Nv bnRleHRfYWxsb2MoMSk7CisJZ3B1LT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRf YWxsb2MoMSk7CiAJc3Bpbl9sb2NrX2luaXQoJmdwdS0+ZmVuY2Vfc3BpbmxvY2spOwogCiAJSU5J VF9MSVNUX0hFQUQoJmdwdS0+YWN0aXZlX2NtZF9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dwdS5oCmluZGV4IDczYzI3OGRjMzcwNi4uOGM2YjgyNGU5ZDBhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKQEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0IGV0bmF2 aXZfY2hpcF9pZGVudGl0eSB7CiAKIHN0cnVjdCBldG5hdml2X2V2ZW50IHsKIAlib29sIHVzZWQ7 Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIH07CiAK IHN0cnVjdCBldG5hdml2X2NtZGJ1ZjsKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgZXRuYXZp dl9jbWRidWYgewogCS8qIHZyYW0gbm9kZSB1c2VkIGlmIHRoZSBjbWRidWYgaXMgbWFwcGVkIHRo cm91Z2ggdGhlIE1NVXYyICovCiAJc3RydWN0IGRybV9tbV9ub2RlIHZyYW1fbm9kZTsKIAkvKiBm ZW5jZSBhZnRlciB3aGljaCB0aGlzIGJ1ZmZlciBpcyB0byBiZSBkaXNwb3NlZCAqLwotCXN0cnVj dCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJLyogdGFyZ2V0IGV4 ZWMgc3RhdGUgKi8KIAl1MzIgZXhlY19zdGF0ZTsKIAkvKiBwZXIgR1BVIGluLWZsaWdodCBsaXN0 ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKaW5kZXggNzRlZGUxZjUz MzcyLi5mOWFmMmEwMDYyNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0 LmMKQEAgLTI2LDEyICsyNiwxMiBAQAogCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAotc3RhdGlj IGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVu Y2UpCitzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJpOTE1IjsKIH0KIAotc3RhdGljIGNvbnN0 IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkK K3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKQogewogCS8qIFRpbWVsaW5lcyBhcmUgYm91bmQgYnkgZXZpY3Rpb24g dG8gYSBWTS4gSG93ZXZlciwgc2luY2UKIAkgKiB3ZSBvbmx5IGhhdmUgYSBnbG9iYWwgc2Vxbm8g YXQgdGhlIG1vbWVudCwgd2Ugb25seSBoYXZlCkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGNv bnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5j ZSkKIAlyZXR1cm4gImdsb2JhbCI7CiB9CiAKLXN0YXRpYyBib29sIGk5MTVfZmVuY2Vfc2lnbmFs ZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIGk5MTVfZmVuY2Vfc2lnbmFsZWQo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfY29t cGxldGVkKHRvX3JlcXVlc3QoZmVuY2UpKTsKIH0KIAotc3RhdGljIGJvb2wgaTkxNV9mZW5jZV9l bmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCBpOTE1X2Zl bmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGk5 MTVfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpKQogCQlyZXR1cm4gZmFsc2U7CkBAIC01Niw3ICs1Niw3 IEBAIHN0YXRpYyBib29sIGk5MTVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5j ZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsCitzdGF0aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5j ZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkJCSAgIGJvb2wgaW50ZXJydXB0aWJs ZSwKIAkJCQkgICBzaWduZWQgbG9uZyB0aW1lb3V0X2ppZmZpZXMpCiB7CkBAIC04NSwyNiArODUs MjYgQEAgc3RhdGljIHNpZ25lZCBsb25nIGk5MTVfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZl bmNlLAogCXJldHVybiB0aW1lb3V0X2ppZmZpZXM7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVu Y2VfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCitz dGF0aWMgdm9pZCBpOTE1X2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwg Y2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlzbnByaW50ZihzdHIsIHNpemUsICIldSIsIGZlbmNl LT5zZXFubyk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3Ry KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwKK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2Vf dGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsCiAJ CQkJCSAgaW50IHNpemUpCiB7CiAJc25wcmludGYoc3RyLCBzaXplLCAiJXUiLAogCQkgaW50ZWxf ZW5naW5lX2dldF9zZXFubyh0b19yZXF1ZXN0KGZlbmNlKS0+ZW5naW5lKSk7CiB9CiAKLXN0YXRp YyB2b2lkIGk5MTVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIHZv aWQgaTkxNV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gdG9fcmVxdWVzdChmZW5jZSk7CiAKIAlrbWVt X2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywgcmVxKTsKIH0KIAotY29uc3Qgc3RydWN0 IGZlbmNlX29wcyBpOTE1X2ZlbmNlX29wcyA9IHsKK2NvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IGk5MTVfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBpOTE1X2ZlbmNlX2dldF9k cml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBpOTE1X2ZlbmNlX2dldF90aW1lbGlu ZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5n LApAQCAtMzg4LDggKzM4OCw4IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIFRoZSByZWZlcmVuY2UgY291bnQgaXMgaW5jcmVtZW50 ZWQgYXRvbWljYWxseS4gSWYgaXQgaXMgemVybywKIAkgKiB0aGUgbG9va3VwIGtub3dzIHRoZSBy ZXF1ZXN0IGlzIHVuYWxsb2NhdGVkIGFuZCBjb21wbGV0ZS4gT3RoZXJ3aXNlLAogCSAqIGl0IGlz IGVpdGhlciBzdGlsbCBpbiB1c2UsIG9yIGhhcyBiZWVuIHJlYWxsb2NhdGVkIGFuZCByZXNldAot CSAqIHdpdGggZmVuY2VfaW5pdCgpLiBUaGlzIGluY3JlbWVudCBpcyBzYWZlIGZvciByZWxlYXNl IGFzIHdlIGNoZWNrCi0JICogdGhhdCB0aGUgcmVxdWVzdCB3ZSBoYXZlIGEgcmVmZXJlbmNlIHRv IGFuZCBtYXRjaGVzIHRoZSBhY3RpdmUKKwkgKiB3aXRoIGRtYV9mZW5jZV9pbml0KCkuIFRoaXMg aW5jcmVtZW50IGlzIHNhZmUgZm9yIHJlbGVhc2UgYXMgd2UKKwkgKiBjaGVjayB0aGF0IHRoZSBy ZXF1ZXN0IHdlIGhhdmUgYSByZWZlcmVuY2UgdG8gYW5kIG1hdGNoZXMgdGhlIGFjdGl2ZQogCSAq IHJlcXVlc3QuCiAJICoKIAkgKiBCZWZvcmUgd2UgaW5jcmVtZW50IHRoZSByZWZjb3VudCwgd2Ug Y2hhc2UgdGhlIHJlcXVlc3QtPmVuZ2luZQpAQCAtNDEyLDExICs0MTIsMTEgQEAgaTkxNV9nZW1f 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 bWJzLmMKaW5kZXggMjNmYzEwNDJmZWQ0Li41NmVmY2M1MDdlYTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwpAQCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIodm9pZCAqYXJnKQogCQkJCQkJICZyZXF1ZXN0LT5z aWduYWxpbmcud2FpdCk7CiAKIAkJCWxvY2FsX2JoX2Rpc2FibGUoKTsKLQkJCWZlbmNlX3NpZ25h bCgmcmVxdWVzdC0+ZmVuY2UpOworCQkJZG1hX2ZlbmNlX3NpZ25hbCgmcmVxdWVzdC0+ZmVuY2Up OwogCQkJbG9jYWxfYmhfZW5hYmxlKCk7IC8qIGtpY2sgc3RhcnQgdGhlIHRhc2tsZXRzICovCiAK IAkJCS8qIEZpbmQgdGhlIG5leHQgb2xkZXN0IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUK QEAgLTUwMiw3ICs1MDIsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAlzdHJ1Y3QgcmJfbm9kZSAqcGFy ZW50LCAqKnA7CiAJYm9vbCBmaXJzdCwgd2FrZXVwOwogCi0JLyogbG9ja2VkIGJ5IGZlbmNlX2Vu YWJsZV9zd19zaWduYWxpbmcoKSAqLworCS8qIGxvY2tlZCBieSBkbWFfZmVuY2VfZW5hYmxlX3N3 X3NpZ25hbGluZygpICovCiAJYXNzZXJ0X3NwaW5fbG9ja2VkKCZyZXF1ZXN0LT5sb2NrKTsKIAog CXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnRzayA9IGItPnNpZ25hbGVyOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCAyZGM5NDgxMmJlYTUuLjhjY2ViMzQ1YWEwZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTI0NSw3ICsyNDUsNyBA QCB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlzcGlu X2xvY2tfaW5pdCgmZW5naW5lLT5leGVjbGlzdF9sb2NrKTsKIAotCWVuZ2luZS0+ZmVuY2VfY29u dGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJZW5naW5lLT5mZW5jZV9jb250ZXh0ID0g ZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAKIAlpbnRlbF9lbmdpbmVfaW5pdF9yZXF1ZXN0 cyhlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuaAppbmRleCBkMGRhNTJmMmE4MDYuLjA2YjUzMTdmMjY3ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmgKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIG1zbV9nZW1fdnVubWFwKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqLAogCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIGJvb2wg ZXhjbHVzaXZlKTsKIHZvaWQgbXNtX2dlbV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwKLQkJc3RydWN0IG1zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVj dCBmZW5jZSAqZmVuY2UpOworCQlzdHJ1Y3QgZG1hX21zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNp dmUsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIHZvaWQgbXNtX2dlbV9tb3ZlX3RvX2luYWN0 aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBtc21fZ2VtX2NwdV9wcmVwKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB1aW50MzJfdCBvcCwga3RpbWVfdCAqdGltZW91dCk7 CiBpbnQgbXNtX2dlbV9jcHVfZmluaShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZmVuY2UuYwppbmRleCBhOWI5YjFjOTVhMmUuLjQyN2FjNzQ3NDJhNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9mZW5jZS5jCkBAIC0xNSw3ICsxNSw3IEBACiAgKiB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAgKi8KIAotI2luY2x1 ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKICNpbmNs dWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCkBAIC0zMiw3ICszMiw3IEBA IG1zbV9mZW5jZV9jb250ZXh0X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0IGNo YXIgKm5hbWUpCiAKIAlmY3R4LT5kZXYgPSBkZXY7CiAJZmN0eC0+bmFtZSA9IG5hbWU7Ci0JZmN0 eC0+Y29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJZmN0eC0+Y29udGV4dCA9IGRt YV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmZjdHgtPmV2 ZW50KTsKIAlzcGluX2xvY2tfaW5pdCgmZmN0eC0+c3BpbmxvY2spOwogCkBAIC00NCw3ICs0NCw3 IEBAIHZvaWQgbXNtX2ZlbmNlX2NvbnRleHRfZnJlZShzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQg KmZjdHgpCiAJa2ZyZWUoZmN0eCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9jb21w bGV0ZWQoc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5jZSkKK3N0 YXRpYyBpbmxpbmUgYm9vbCBkbWFfZmVuY2VfY29tcGxldGVkKHN0cnVjdCBtc21fZmVuY2VfY29u dGV4dCAqZmN0eCwgdWludDMyX3QgZmVuY2UpCiB7CiAJcmV0dXJuIChpbnQzMl90KShmY3R4LT5j b21wbGV0ZWRfZmVuY2UgLSBmZW5jZSkgPj0gMDsKIH0KQEAgLTYzLDcgKzYzLDcgQEAgaW50IG1z bV93YWl0X2ZlbmNlKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwgdWludDMyX3QgZmVu Y2UsCiAKIAlpZiAoIXRpbWVvdXQpIHsKIAkJLyogbm8td2FpdDogKi8KLQkJcmV0ID0gZmVuY2Vf Y29tcGxldGVkKGZjdHgsIGZlbmNlKSA/IDAgOiAtRUJVU1k7CisJCXJldCA9IGRtYV9mZW5jZV9j b21wbGV0ZWQoZmN0eCwgZmVuY2UpID8gMCA6IC1FQlVTWTsKIAl9IGVsc2UgewogCQl1bnNpZ25l ZCBsb25nIHJlbWFpbmluZ19qaWZmaWVzID0gdGltZW91dF90b19qaWZmaWVzKHRpbWVvdXQpOwog CkBAIC0xMDAsNTIgKzEwMCw1MiBAQCB2b2lkIG1zbV91cGRhdGVfZmVuY2Uoc3RydWN0IG1zbV9m ZW5jZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5jZSkKIAogc3RydWN0IG1zbV9mZW5jZSB7 CiAJc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4OwotCXN0cnVjdCBmZW5jZSBiYXNlOwor CXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IG1zbV9m ZW5jZSAqdG9fbXNtX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0 cnVjdCBtc21fZmVuY2UgKnRvX21zbV9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlyZXR1cm4gY29udGFpbmVyX29mKGZlbmNlLCBzdHJ1Y3QgbXNtX2ZlbmNlLCBiYXNlKTsKIH0K IAotc3RhdGljIGNvbnN0IGNoYXIgKm1zbV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZl bmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICptc21fZmVuY2VfZ2V0X2RyaXZlcl9uYW1l KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAibXNtIjsKIH0KIAotc3RhdGlj IGNvbnN0IGNoYXIgKm1zbV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmZl bmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKm1zbV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgbXNtX2ZlbmNlICpmID0gdG9fbXNtX2Zl bmNlKGZlbmNlKTsKIAlyZXR1cm4gZi0+ZmN0eC0+bmFtZTsKIH0KIAotc3RhdGljIGJvb2wgbXNt X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29s IG1zbV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewog CXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBtc21fZmVuY2Vfc2lnbmFsZWQoc3RydWN0 IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIG1zbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgbXNtX2ZlbmNlICpmID0gdG9fbXNtX2ZlbmNlKGZl bmNlKTsKLQlyZXR1cm4gZmVuY2VfY29tcGxldGVkKGYtPmZjdHgsIGYtPmJhc2Uuc2Vxbm8pOwor CXJldHVybiBkbWFfZmVuY2VfY29tcGxldGVkKGYtPmZjdHgsIGYtPmJhc2Uuc2Vxbm8pOwogfQog Ci1zdGF0aWMgdm9pZCBtc21fZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3Rh dGljIHZvaWQgbXNtX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJ c3RydWN0IG1zbV9mZW5jZSAqZiA9IHRvX21zbV9mZW5jZShmZW5jZSk7CiAJa2ZyZWVfcmN1KGYs IGJhc2UucmN1KTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbXNtX2ZlbmNl X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBtc21fZmVuY2Vfb3Bz ID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBtc21fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5n ZXRfdGltZWxpbmVfbmFtZSA9IG1zbV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxl X3NpZ25hbGluZyA9IG1zbV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IG1z bV9mZW5jZV9zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9 IGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBtc21fZmVuY2VfcmVsZWFzZSwK IH07CiAKLXN0cnVjdCBmZW5jZSAqCitzdHJ1Y3QgZG1hX2ZlbmNlICoKIG1zbV9mZW5jZV9hbGxv YyhzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpCiB7CiAJc3RydWN0IG1zbV9mZW5jZSAq ZjsKQEAgLTE1Niw4ICsxNTYsOCBAQCBtc21fZmVuY2VfYWxsb2Moc3RydWN0IG1zbV9mZW5jZV9j b250ZXh0ICpmY3R4KQogCiAJZi0+ZmN0eCA9IGZjdHg7CiAKLQlmZW5jZV9pbml0KCZmLT5iYXNl LCAmbXNtX2ZlbmNlX29wcywgJmZjdHgtPnNwaW5sb2NrLAotCQkJZmN0eC0+Y29udGV4dCwgKytm Y3R4LT5sYXN0X2ZlbmNlKTsKKwlkbWFfZmVuY2VfaW5pdCgmZi0+YmFzZSwgJm1zbV9mZW5jZV9v cHMsICZmY3R4LT5zcGlubG9jaywKKwkJICAgICAgIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+bGFz dF9mZW5jZSk7CiAKIAlyZXR1cm4gJmYtPmJhc2U7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9mZW5jZS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuaApp bmRleCBjZWI1YjNkMzE0YjQuLjU2MDYxYWExOTU5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5o CkBAIC00MSw2ICs0MSw2IEBAIGludCBtc21fcXVldWVfZmVuY2VfY2Ioc3RydWN0IG1zbV9mZW5j ZV9jb250ZXh0ICpmY3R4LAogCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NiICpjYiwgdWludDMyX3QgZmVu Y2UpOwogdm9pZCBtc21fdXBkYXRlX2ZlbmNlKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0 eCwgdWludDMyX3QgZmVuY2UpOwogCi1zdHJ1Y3QgZmVuY2UgKiBtc21fZmVuY2VfYWxsb2Moc3Ry dWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4KTsKK3N0cnVjdCBkbWFfZmVuY2UgKiBtc21fZmVu Y2VfYWxsb2Moc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4KTsKIAogI2VuZGlmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2dlbS5jCmluZGV4IGI2YWMyN2UzMTkyOS4uNTdkYjdkYmJiNjE4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uYwpAQCAtNTIxLDcgKzUyMSw3IEBAIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogewogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNt X29iaiA9IHRvX21zbV9ibyhvYmopOwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAq Zm9iajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwog CWludCBpLCByZXQ7CiAKIAlpZiAoIWV4Y2x1c2l2ZSkgewpAQCAtNTQwLDcgKzU0MCw3IEBAIGlu dCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQlmZW5j ZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChtc21fb2JqLT5yZXN2KTsKIAkJLyogZG9u J3QgbmVlZCB0byB3YWl0IG9uIG91ciBvd24gZmVuY2VzLCBzaW5jZSByaW5nIGlzIGZpZm8gKi8K IAkJaWYgKGZlbmNlICYmIChmZW5jZS0+Y29udGV4dCAhPSBmY3R4LT5jb250ZXh0KSkgewotCQkJ cmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChm ZW5jZSwgdHJ1ZSk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTU1Myw3 ICs1NTMsNyBAQCBpbnQgbXNtX2dlbV9zeW5jX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiwKIAkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtp XSwKIAkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKG1zbV9vYmotPnJlc3YpKTsKIAkJaWYg KGZlbmNlLT5jb250ZXh0ICE9IGZjdHgtPmNvbnRleHQpIHsKLQkJCXJldCA9IGZlbmNlX3dhaXQo ZmVuY2UsIHRydWUpOworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOwogCQkJ aWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwogCQl9CkBAIC01NjMsNyArNTYzLDcgQEAgaW50IG1z bV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiB9CiAKIHZvaWQg bXNtX2dlbV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKLQkJc3Ry dWN0IG1zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJ CXN0cnVjdCBtc21fZ3B1ICpncHUsIGJvb2wgZXhjbHVzaXZlLCBzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSkKIHsKIAlzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2Jq KTsKIAlXQVJOX09OKG1zbV9vYmotPm1hZHYgIT0gTVNNX01BRFZfV0lMTE5FRUQpOwpAQCAtNjE2 LDEwICs2MTYsMTAgQEAgaW50IG1zbV9nZW1fY3B1X2Zpbmkoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopCiB9CiAKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLXN0YXRpYyB2b2lkIGRlc2NyaWJl X2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNvbnN0IGNoYXIgKnR5cGUsCitzdGF0aWMgdm9p ZCBkZXNjcmliZV9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY29uc3QgY2hhciAqdHlw ZSwKIAkJc3RydWN0IHNlcV9maWxlICptKQogewotCWlmICghZmVuY2VfaXNfc2lnbmFsZWQoZmVu Y2UpKQorCWlmICghZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKIAkJc2VxX3ByaW50Ziht LCAiXHQlOXM6ICVzICVzIHNlcSAldVxuIiwgdHlwZSwKIAkJCQlmZW5jZS0+b3BzLT5nZXRfZHJp dmVyX25hbWUoZmVuY2UpLAogCQkJCWZlbmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGZlbmNl KSwKQEAgLTYzMSw3ICs2MzEsNyBAQCB2b2lkIG1zbV9nZW1fZGVzY3JpYmUoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAlzdHJ1Y3QgbXNtX2dlbV9vYmpl Y3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpyb2JqID0gbXNtX29iai0+cmVzdjsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qg KmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsK IAl1aW50NjRfdCBvZmYgPSBkcm1fdm1hX25vZGVfc3RhcnQoJm9iai0+dm1hX25vZGUpOwogCWNv bnN0IGNoYXIgKm1hZHY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dl bS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKaW5kZXggYjJmMTNjZmU5NDVlLi4y Y2I4NTUxZmRhNzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgc3Ry dWN0IG1zbV9nZW1fc3VibWl0IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7ICAgLyogbm9kZSBp biBncHUgc3VibWl0X2xpc3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGJvX2xpc3Q7CiAJc3RydWN0 IHd3X2FjcXVpcmVfY3R4IHRpY2tldDsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBwaWQgKnBpZDsgICAgLyogc3VibWl0dGluZyBwcm9j ZXNzICovCiAJYm9vbCB2YWxpZDsgICAgICAgICAvKiB0cnVlIGlmIG5vIGNtZHN0cmVhbSBwYXRj aGluZyBuZWVkZWQgKi8KIAl1bnNpZ25lZCBpbnQgbnJfY21kczsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dlbV9zdWJtaXQuYwppbmRleCBiNmEwZjM3YTY1ZjMuLjI1ZTg3ODZmYTRjYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYwpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgc3RydWN0 IG1zbV9nZW1fc3VibWl0ICpzdWJtaXRfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IHZvaWQgbXNtX2dlbV9zdWJtaXRfZnJlZShzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCkK IHsKLQlmZW5jZV9wdXQoc3VibWl0LT5mZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChzdWJtaXQtPmZl bmNlKTsKIAlsaXN0X2RlbCgmc3VibWl0LT5ub2RlKTsKIAlwdXRfcGlkKHN1Ym1pdC0+cGlkKTsK IAlrZnJlZShzdWJtaXQpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIGludCBtc21faW9jdGxfZ2VtX3N1 Ym1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCBtc21fZmls ZV9wcml2YXRlICpjdHggPSBmaWxlLT5kcml2ZXJfcHJpdjsKIAlzdHJ1Y3QgbXNtX2dlbV9zdWJt aXQgKnN1Ym1pdDsKIAlzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gcHJpdi0+Z3B1OwotCXN0cnVjdCBm ZW5jZSAqaW5fZmVuY2UgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmluX2ZlbmNlID0gTlVM TDsKIAlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUgPSBOVUxMOwogCWludCBvdXRfZmVuY2Vf ZmQgPSAtMTsKIAl1bnNpZ25lZCBpOwpAQCAtNDM5LDcgKzQzOSw3IEBAIGludCBtc21faW9jdGxf Z2VtX3N1Ym1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkgKi8KIAog CQlpZiAoaW5fZmVuY2UtPmNvbnRleHQgIT0gZ3B1LT5mY3R4LT5jb250ZXh0KSB7Ci0JCQlyZXQg PSBmZW5jZV93YWl0KGluX2ZlbmNlLCB0cnVlKTsKKwkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGlu X2ZlbmNlLCB0cnVlKTsKIAkJCWlmIChyZXQpCiAJCQkJZ290byBvdXQ7CiAJCX0KQEAgLTU0Miw3 ICs1NDIsNyBAQCBpbnQgbXNtX2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAogb3V0OgogCWlmIChpbl9mZW5jZSkKLQkJZmVuY2VfcHV0KGluX2Zl bmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChpbl9mZW5jZSk7CiAJc3VibWl0X2NsZWFudXAoc3VibWl0 KTsKIAlpZiAocmV0KQogCQltc21fZ2VtX3N1Ym1pdF9mcmVlKHN1Ym1pdCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dwdS5jCmluZGV4IDViYjA5ODM4YjVhZS4uMzI0OTcwN2U2ODM0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9n cHUuYwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyB2b2lkIHJldGlyZV9zdWJtaXRzKHN0cnVj dCBtc21fZ3B1ICpncHUpCiAJCXN1Ym1pdCA9IGxpc3RfZmlyc3RfZW50cnkoJmdwdS0+c3VibWl0 X2xpc3QsCiAJCQkJc3RydWN0IG1zbV9nZW1fc3VibWl0LCBub2RlKTsKIAotCQlpZiAoZmVuY2Vf aXNfc2lnbmFsZWQoc3VibWl0LT5mZW5jZSkpIHsKKwkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxl ZChzdWJtaXQtPmZlbmNlKSkgewogCQkJcmV0aXJlX3N1Ym1pdChncHUsIHN1Ym1pdCk7CiAJCX0g ZWxzZSB7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwppbmRleCAz NDNiODY1OTQ3MmMuLmVjOGFjNzU2YWFiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf Ym8uYwpAQCAtODMsMTMgKzgzLDEzIEBAIG52MTBfYm9fZ2V0X3RpbGVfcmVnaW9uKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBpKQogCiBzdGF0aWMgdm9pZAogbnYxMF9ib19wdXRfdGlsZV9y ZWdpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IG5vdXZlYXVfZHJtX3RpbGUgKnRp bGUsCi0JCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up CiB7CiAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkZXYpOwogCiAJaWYg KHRpbGUpIHsKIAkJc3Bpbl9sb2NrKCZkcm0tPnRpbGUubG9jayk7Ci0JCXRpbGUtPmZlbmNlID0g KHN0cnVjdCBub3V2ZWF1X2ZlbmNlICopZmVuY2VfZ2V0KGZlbmNlKTsKKwkJdGlsZS0+ZmVuY2Ug PSAoc3RydWN0IG5vdXZlYXVfZmVuY2UgKilkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAkJdGlsZS0+ dXNlZCA9IGZhbHNlOwogCQlzcGluX3VubG9jaygmZHJtLT50aWxlLmxvY2spOwogCX0KQEAgLTEy NDMsNyArMTI0Myw3IEBAIG5vdXZlYXVfYm9fdm1fY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAogewogCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJv LT5iZGV2KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHJtLT5kZXY7Ci0Jc3RydWN0IGZl bmNlICpmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+cmVzdik7CisJc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woYm8tPnJl c3YpOwogCiAJbnYxMF9ib19wdXRfdGlsZV9yZWdpb24oZGV2LCAqb2xkX3RpbGUsIGZlbmNlKTsK IAkqb2xkX3RpbGUgPSBuZXdfdGlsZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVu Y2UuYwppbmRleCA0YmI5YWI4OTJhZTEuLmU5NTI5ZWU2YmMyMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZmVuY2UuYwpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8bGlu dXgva3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9ocnRpbWVyLmg+Ci0jaW5jbHVkZSA8dHJhY2Uv ZXZlbnRzL2ZlbmNlLmg+CisjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPgogCiAj aW5jbHVkZSA8bnZpZi9jbDgyNmUuaD4KICNpbmNsdWRlIDxudmlmL25vdGlmeS5oPgpAQCAtMzgs MTEgKzM4LDExIEBACiAjaW5jbHVkZSAibm91dmVhdV9kbWEuaCIKICNpbmNsdWRlICJub3V2ZWF1 X2ZlbmNlLmgiCiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vf b3BzX3VldmVudDsKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vf b3BzX2xlZ2FjeTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBub3V2ZWF1X2Zl bmNlX29wc191ZXZlbnQ7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgbm91dmVh dV9mZW5jZV9vcHNfbGVnYWN5OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBub3V2ZWF1X2ZlbmNl ICoKLWZyb21fZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK2Zyb21fZmVuY2Uoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IG5v dXZlYXVfZmVuY2UsIGJhc2UpOwogfQpAQCAtNTgsMjMgKzU4LDIzIEBAIG5vdXZlYXVfZmVuY2Vf c2lnbmFsKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSkKIHsKIAlpbnQgZHJvcCA9IDA7CiAK LQlmZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+YmFzZSk7CisJZG1hX2ZlbmNlX3NpZ25hbF9s b2NrZWQoJmZlbmNlLT5iYXNlKTsKIAlsaXN0X2RlbCgmZmVuY2UtPmhlYWQpOwogCXJjdV9hc3Np Z25fcG9pbnRlcihmZW5jZS0+Y2hhbm5lbCwgTlVMTCk7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0Vf RkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFzZS5mbGFncykpIHsKKwlpZiAodGVzdF9iaXQoRE1B X0ZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAmZmVuY2UtPmJhc2UuZmxhZ3MpKSB7CiAJCXN0cnVjdCBu b3V2ZWF1X2ZlbmNlX2NoYW4gKmZjdHggPSBub3V2ZWF1X2ZjdHgoZmVuY2UpOwogCiAJCWlmICgh LS1mY3R4LT5ub3RpZnlfcmVmKQogCQkJZHJvcCA9IDE7CiAJfQogCi0JZmVuY2VfcHV0KCZmZW5j ZS0+YmFzZSk7CisJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCXJldHVybiBkcm9wOwog fQogCiBzdGF0aWMgc3RydWN0IG5vdXZlYXVfZmVuY2UgKgotbm91dmVhdV9sb2NhbF9mZW5jZShz dHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkgeworbm91dmVhdV9s b2NhbF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IG5vdXZlYXVfZHJtICpk cm0pIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9wcml2ICpwcml2ID0gKHZvaWQqKWRybS0+ZmVu Y2U7CiAKIAlpZiAoZmVuY2UtPm9wcyAhPSAmbm91dmVhdV9mZW5jZV9vcHNfbGVnYWN5ICYmCkBA IC0yMDEsNyArMjAxLDcgQEAgbm91dmVhdV9mZW5jZV9jb250ZXh0X25ldyhzdHJ1Y3Qgbm91dmVh dV9jaGFubmVsICpjaGFuLCBzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGEKIAogc3RydWN0IG5vdXZl YXVfZmVuY2Vfd29yayB7CiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0Jc3RydWN0IGZlbmNl X2NiIGNiOworCXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7CiAJdm9pZCAoKmZ1bmMpKHZvaWQgKik7 CiAJdm9pZCAqZGF0YTsKIH07CkBAIC0yMTQsNyArMjE0LDcgQEAgbm91dmVhdV9mZW5jZV93b3Jr X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICprd29yaykKIAlrZnJlZSh3b3JrKTsKIH0KIAot c3RhdGljIHZvaWQgbm91dmVhdV9mZW5jZV93b3JrX2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0 cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2Ioc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVj dCBub3V2ZWF1X2ZlbmNlX3dvcmsgKndvcmsgPSBjb250YWluZXJfb2YoY2IsIHR5cGVvZigqd29y ayksIGNiKTsKIApAQCAtMjIyLDEyICsyMjIsMTIgQEAgc3RhdGljIHZvaWQgbm91dmVhdV9mZW5j ZV93b3JrX2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiB9CiAK IHZvaWQKLW5vdXZlYXVfZmVuY2Vfd29yayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorbm91dmVhdV9m ZW5jZV93b3JrKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICB2b2lkICgqZnVuYykodm9p ZCAqKSwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV93b3JrICp3b3JrOwog Ci0JaWYgKGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25h bGVkKGZlbmNlKSkKIAkJZ290byBlcnI7CiAKIAl3b3JrID0ga21hbGxvYyhzaXplb2YoKndvcmsp LCBHRlBfS0VSTkVMKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBub3V2ZWF1X2ZlbmNlX3dvcmsoc3Ry dWN0IGZlbmNlICpmZW5jZSwKIAl3b3JrLT5mdW5jID0gZnVuYzsKIAl3b3JrLT5kYXRhID0gZGF0 YTsKIAotCWlmIChmZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZ3b3JrLT5jYiwgbm91dmVhdV9m ZW5jZV93b3JrX2NiKSA8IDApCisJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZ3 b3JrLT5jYiwgbm91dmVhdV9mZW5jZV93b3JrX2NiKSA8IDApCiAJCWdvdG8gZXJyX2ZyZWU7CiAJ cmV0dXJuOwogCkBAIC0yNjYsMTcgKzI2NiwxNyBAQCBub3V2ZWF1X2ZlbmNlX2VtaXQoc3RydWN0 IG5vdXZlYXVfZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuKQogCWZl bmNlLT50aW1lb3V0ICA9IGppZmZpZXMgKyAoMTUgKiBIWik7CiAKIAlpZiAocHJpdi0+dWV2ZW50 KQotCQlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJm5vdXZlYXVfZmVuY2Vfb3BzX3VldmVudCwK LQkJCSAgICZmY3R4LT5sb2NrLCBmY3R4LT5jb250ZXh0LCArK2ZjdHgtPnNlcXVlbmNlKTsKKwkJ ZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmbm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50LAor CQkJICAgICAgICZmY3R4LT5sb2NrLCBmY3R4LT5jb250ZXh0LCArK2ZjdHgtPnNlcXVlbmNlKTsK IAllbHNlCi0JCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmbm91dmVhdV9mZW5jZV9vcHNfbGVn YWN5LAotCQkJICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+c2VxdWVuY2Up OworCQlkbWFfZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1X2ZlbmNlX29wc19sZWdh Y3ksCisJCQkgICAgICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+c2VxdWVu Y2UpOwogCWtyZWZfZ2V0KCZmY3R4LT5mZW5jZV9yZWYpOwogCi0JdHJhY2VfZmVuY2VfZW1pdCgm ZmVuY2UtPmJhc2UpOworCXRyYWNlX2RtYV9mZW5jZV9lbWl0KCZmZW5jZS0+YmFzZSk7CiAJcmV0 ID0gZmN0eC0+ZW1pdChmZW5jZSk7CiAJaWYgKCFyZXQpIHsKLQkJZmVuY2VfZ2V0KCZmZW5jZS0+ YmFzZSk7CisJCWRtYV9mZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKIAkJc3Bpbl9sb2NrX2lycSgm ZmN0eC0+bG9jayk7CiAKIAkJaWYgKG5vdXZlYXVfZmVuY2VfdXBkYXRlKGNoYW4sIGZjdHgpKQpA QCAtMjk4LDcgKzI5OCw3IEBAIG5vdXZlYXVfZmVuY2VfZG9uZShzdHJ1Y3Qgbm91dmVhdV9mZW5j ZSAqZmVuY2UpCiAJCXN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW47CiAJCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAKLQkJaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVu Y2UtPmJhc2UuZmxhZ3MpKQorCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURf QklULCAmZmVuY2UtPmJhc2UuZmxhZ3MpKQogCQkJcmV0dXJuIHRydWU7CiAKIAkJc3Bpbl9sb2Nr X2lycXNhdmUoJmZjdHgtPmxvY2ssIGZsYWdzKTsKQEAgLTMwNywxMSArMzA3LDExIEBAIG5vdXZl YXVfZmVuY2VfZG9uZShzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UpCiAJCQludmlmX25vdGlm eV9wdXQoJmZjdHgtPm5vdGlmeSk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZjdHgtPmxv Y2ssIGZsYWdzKTsKIAl9Ci0JcmV0dXJuIGZlbmNlX2lzX3NpZ25hbGVkKCZmZW5jZS0+YmFzZSk7 CisJcmV0dXJuIGRtYV9mZW5jZV9pc19zaWduYWxlZCgmZmVuY2UtPmJhc2UpOwogfQogCiBzdGF0 aWMgbG9uZwotbm91dmVhdV9mZW5jZV93YWl0X2xlZ2FjeShzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wg aW50ciwgbG9uZyB3YWl0KQorbm91dmVhdV9mZW5jZV93YWl0X2xlZ2FjeShzdHJ1Y3QgZG1hX2Zl bmNlICpmLCBib29sIGludHIsIGxvbmcgd2FpdCkKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAq ZmVuY2UgPSBmcm9tX2ZlbmNlKGYpOwogCXVuc2lnbmVkIGxvbmcgc2xlZXBfdGltZSA9IE5TRUNf UEVSX01TRUMgLyAxMDAwOwpAQCAtMzc4LDcgKzM3OCw3IEBAIG5vdXZlYXVfZmVuY2Vfd2FpdChz dHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UsIGJvb2wgbGF6eSwgYm9vbCBpbnRyKQogCWlmICgh bGF6eSkKIAkJcmV0dXJuIG5vdXZlYXVfZmVuY2Vfd2FpdF9idXN5KGZlbmNlLCBpbnRyKTsKIAot CXJldCA9IGZlbmNlX3dhaXRfdGltZW91dCgmZmVuY2UtPmJhc2UsIGludHIsIDE1ICogSFopOwor CXJldCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoJmZlbmNlLT5iYXNlLCBpbnRyLCAxNSAqIEha KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAllbHNlIGlmICghcmV0KQpAQCAtMzkx LDcgKzM5MSw3IEBAIGludAogbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBub3V2ZWF1X2JvICpu dmJvLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIGV4Y2x1c2l2ZSwgYm9vbCBp bnRyKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX2NoYW4gKmZjdHggPSBjaGFuLT5mZW5jZTsK LQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBudmJvLT5iby5yZXN2OwogCXN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZjsKQEAg LTQyMSw3ICs0MjEsNyBAQCBub3V2ZWF1X2ZlbmNlX3N5bmMoc3RydWN0IG5vdXZlYXVfYm8gKm52 Ym8sIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGJvb2wgZQogCQl9CiAKIAkJaWYgKG11 c3Rfd2FpdCkKLQkJCXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIGludHIpOworCQkJcmV0ID0gZG1h X2ZlbmNlX3dhaXQoZmVuY2UsIGludHIpOwogCiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNDQ2LDcg KzQ0Niw3IEBAIG5vdXZlYXVfZmVuY2Vfc3luYyhzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgc3Ry dWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgYm9vbCBlCiAJCX0KIAogCQlpZiAobXVzdF93YWl0 KQotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgaW50cik7CisJCQlyZXQgPSBkbWFfZmVuY2Vf d2FpdChmZW5jZSwgaW50cik7CiAJfQogCiAJcmV0dXJuIHJldDsKQEAgLTQ1Niw3ICs0NTYsNyBA QCB2b2lkCiBub3V2ZWF1X2ZlbmNlX3VucmVmKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICoqcGZlbmNl KQogewogCWlmICgqcGZlbmNlKQotCQlmZW5jZV9wdXQoJigqcGZlbmNlKS0+YmFzZSk7CisJCWRt YV9mZW5jZV9wdXQoJigqcGZlbmNlKS0+YmFzZSk7CiAJKnBmZW5jZSA9IE5VTEw7CiB9CiAKQEAg LTQ4NCwxMiArNDg0LDEyIEBAIG5vdXZlYXVfZmVuY2VfbmV3KHN0cnVjdCBub3V2ZWF1X2NoYW5u ZWwgKmNoYW4sIGJvb2wgc3lzbWVtLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBjb25zdCBj aGFyICpub3V2ZWF1X2ZlbmNlX2dldF9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpmZW5j ZSkKK3N0YXRpYyBjb25zdCBjaGFyICpub3V2ZWF1X2ZlbmNlX2dldF9nZXRfZHJpdmVyX25hbWUo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJub3V2ZWF1IjsKIH0KIAotc3Rh dGljIGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZl bmNlICpmKQorc3RhdGljIGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2Ug PSBmcm9tX2ZlbmNlKGYpOwogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX2NoYW4gKmZjdHggPSBub3V2 ZWF1X2ZjdHgoZmVuY2UpOwpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpu b3V2ZWF1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKICAqIHJlc3Vs dC4gVGhlIGRybSBub2RlIHNob3VsZCBzdGlsbCBiZSB0aGVyZSwgc28gd2UgY2FuIGRlcml2ZSB0 aGUgaW5kZXggZnJvbQogICogdGhlIGZlbmNlIGNvbnRleHQuCiAgKi8KLXN0YXRpYyBib29sIG5v dXZlYXVfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgbm91 dmVhdV9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBu b3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAJc3RydWN0IG5vdXZlYXVfZmVu Y2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5jZSk7CkBAIC01MTksNyArNTE5LDcgQEAg c3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmco c3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmco c3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UgPSBm cm9tX2ZlbmNlKGYpOwogCkBAIC01MzAsMzAgKzUzMCwzMCBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1 X2ZlbmNlX25vX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCiAJV0FSTl9PTihhdG9taWNfcmVh ZCgmZmVuY2UtPmJhc2UucmVmY291bnQucmVmY291bnQpIDw9IDEpOwogCiAJLyoKLQkgKiBUaGlz IG5lZWRzIHVldmVudHMgdG8gd29yayBjb3JyZWN0bHksIGJ1dCBmZW5jZV9hZGRfY2FsbGJhY2sg cmVsaWVzIG9uCisJICogVGhpcyBuZWVkcyB1ZXZlbnRzIHRvIHdvcmsgY29ycmVjdGx5LCBidXQg ZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayByZWxpZXMgb24KIAkgKiBiZWluZyBhYmxlIHRvIGVuYWJs ZSBzaWduYWxpbmcuIEl0IHdpbGwgc3RpbGwgZ2V0IHNpZ25hbGVkIGV2ZW50dWFsbHksCiAJICog anVzdCBub3QgcmlnaHQgYXdheS4KIAkgKi8KIAlpZiAobm91dmVhdV9mZW5jZV9pc19zaWduYWxl ZChmKSkgewogCQlsaXN0X2RlbCgmZmVuY2UtPmhlYWQpOwogCi0JCWZlbmNlX3B1dCgmZmVuY2Ut PmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJCXJldHVybiBmYWxzZTsK IAl9CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgbm91dmVhdV9mZW5jZV9yZWxl YXNlKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyB2b2lkIG5vdXZlYXVfZmVuY2VfcmVsZWFzZShz dHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZy b21fZmVuY2UoZik7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVf ZmN0eChmZW5jZSk7CiAKIAlrcmVmX3B1dCgmZmN0eC0+ZmVuY2VfcmVmLCBub3V2ZWF1X2ZlbmNl X2NvbnRleHRfcHV0KTsKLQlmZW5jZV9mcmVlKCZmZW5jZS0+YmFzZSk7CisJZG1hX2ZlbmNlX2Zy ZWUoJmZlbmNlLT5iYXNlKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbm91 dmVhdV9mZW5jZV9vcHNfbGVnYWN5ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzIG5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeSA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gbm91 dmVhdV9mZW5jZV9nZXRfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IG5v dXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBub3V2 ZWF1X2ZlbmNlX25vX3NpZ25hbGluZywKQEAgLTU2Miw3ICs1NjIsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGZlbmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3kgPSB7CiAJLnJlbGVhc2Ug PSBub3V2ZWF1X2ZlbmNlX3JlbGVhc2UKIH07CiAKLXN0YXRpYyBib29sIG5vdXZlYXVfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCBub3V2ZWF1X2Zl bmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgbm91 dmVhdV9mZW5jZSAqZmVuY2UgPSBmcm9tX2ZlbmNlKGYpOwogCXN0cnVjdCBub3V2ZWF1X2ZlbmNl X2NoYW4gKmZjdHggPSBub3V2ZWF1X2ZjdHgoZmVuY2UpOwpAQCAtNTczLDE4ICs1NzMsMTggQEAg c3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAq ZikKIAogCXJldCA9IG5vdXZlYXVfZmVuY2Vfbm9fc2lnbmFsaW5nKGYpOwogCWlmIChyZXQpCi0J CXNldF9iaXQoRkVOQ0VfRkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFzZS5mbGFncyk7CisJCXNl dF9iaXQoRE1BX0ZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAmZmVuY2UtPmJhc2UuZmxhZ3MpOwogCWVs c2UgaWYgKCEtLWZjdHgtPm5vdGlmeV9yZWYpCiAJCW52aWZfbm90aWZ5X3B1dCgmZmN0eC0+bm90 aWZ5KTsKIAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz IG5vdXZlYXVfZmVuY2Vfb3BzX3VldmVudCA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc191ZXZlbnQgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9 IG5vdXZlYXVfZmVuY2VfZ2V0X2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUg PSBub3V2ZWF1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0g bm91dmVhdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCA9IG5vdXZlYXVfZmVu Y2VfaXNfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBk bWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0gTlVMTAogfTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuaAppbmRleCA2NGM0Y2U3MTE1YWQuLjQxZjNjMDE5ZTUz NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuaApAQCAtMSwxNCArMSwx NCBAQAogI2lmbmRlZiBfX05PVVZFQVVfRkVOQ0VfSF9fCiAjZGVmaW5lIF9fTk9VVkVBVV9GRU5D RV9IX18KIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZl bmNlLmg+CiAjaW5jbHVkZSA8bnZpZi9ub3RpZnkuaD4KIAogc3RydWN0IG5vdXZlYXVfZHJtOwog c3RydWN0IG5vdXZlYXVfYm87CiAKIHN0cnVjdCBub3V2ZWF1X2ZlbmNlIHsKLQlzdHJ1Y3QgZmVu Y2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhl YWQ7CiAKQEAgLTI0LDcgKzI0LDcgQEAgdm9pZCBub3V2ZWF1X2ZlbmNlX3VucmVmKHN0cnVjdCBu b3V2ZWF1X2ZlbmNlICoqKTsKIAogaW50ICBub3V2ZWF1X2ZlbmNlX2VtaXQoc3RydWN0IG5vdXZl YXVfZmVuY2UgKiwgc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqKTsKIGJvb2wgbm91dmVhdV9mZW5j ZV9kb25lKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICopOwotdm9pZCBub3V2ZWF1X2ZlbmNlX3dvcmso c3RydWN0IGZlbmNlICosIHZvaWQgKCopKHZvaWQgKiksIHZvaWQgKik7Cit2b2lkIG5vdXZlYXVf ZmVuY2Vfd29yayhzdHJ1Y3QgZG1hX2ZlbmNlICosIHZvaWQgKCopKHZvaWQgKiksIHZvaWQgKik7 CiBpbnQgIG5vdXZlYXVfZmVuY2Vfd2FpdChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqLCBib29sIGxh enksIGJvb2wgaW50cik7CiBpbnQgIG5vdXZlYXVfZmVuY2Vfc3luYyhzdHJ1Y3Qgbm91dmVhdV9i byAqLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICosIGJvb2wgZXhjbHVzaXZlLCBib29sIGludHIp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uYwppbmRleCAwYmQ3MTY0YmM4MTcu LjdmMDgzYzk1ZjQyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCkBAIC0x MTksNyArMTE5LDcgQEAgbm91dmVhdV9nZW1fb2JqZWN0X3VubWFwKHN0cnVjdCBub3V2ZWF1X2Jv ICpudmJvLCBzdHJ1Y3QgbnZrbV92bWEgKnZtYSkKIAljb25zdCBib29sIG1hcHBlZCA9IG52Ym8t PmJvLm1lbS5tZW1fdHlwZSAhPSBUVE1fUExfU1lTVEVNOwogCXN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3QgKnJlc3YgPSBudmJvLT5iby5yZXN2OwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Rf bGlzdCAqZm9iajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSA9IE5VTEw7CiAKIAlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0 KHJlc3YpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjA0X2ZlbmNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjA0X2ZlbmNlLmMKaW5kZXggMTkxNWI3Yjgy YTU5Li5mYThmMjM3NWMzOTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 MDRfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjA0X2ZlbmNlLmMKQEAg LTExMCw2ICsxMTAsNiBAQCBudjA0X2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRy bSkKIAlwcml2LT5iYXNlLmNvbnRleHRfbmV3ID0gbnYwNF9mZW5jZV9jb250ZXh0X25ldzsKIAlw cml2LT5iYXNlLmNvbnRleHRfZGVsID0gbnYwNF9mZW5jZV9jb250ZXh0X2RlbDsKIAlwcml2LT5i YXNlLmNvbnRleHRzID0gMTU7Ci0JcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBmZW5jZV9jb250 ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOworCXByaXYtPmJhc2UuY29udGV4dF9iYXNl ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CiAJcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjEwX2ZlbmNlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjEwX2ZlbmNlLmMKaW5kZXggNGUzZGUzNGZmNmY0 Li5mOTlmY2Y1NjkyOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBf ZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjEwX2ZlbmNlLmMKQEAgLTEw Nyw3ICsxMDcsNyBAQCBudjEwX2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkK IAlwcml2LT5iYXNlLmNvbnRleHRfbmV3ID0gbnYxMF9mZW5jZV9jb250ZXh0X25ldzsKIAlwcml2 LT5iYXNlLmNvbnRleHRfZGVsID0gbnYxMF9mZW5jZV9jb250ZXh0X2RlbDsKIAlwcml2LT5iYXNl LmNvbnRleHRzID0gMzE7Ci0JcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBmZW5jZV9jb250ZXh0 X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOworCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0g ZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CiAJc3Bpbl9sb2Nr X2luaXQoJnByaXYtPmxvY2spOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbnYxN19mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYx N19mZW5jZS5jCmluZGV4IDdkNWU1NjJhNTVjNS4uNzliYzAxMTExMzUxIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbnYxN19mZW5jZS5jCkBAIC0xMjYsNyArMTI2LDcgQEAgbnYxN19mZW5jZV9jcmVh dGUoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCiAJcHJpdi0+YmFzZS5jb250ZXh0X25ldyA9IG52 MTdfZmVuY2VfY29udGV4dF9uZXc7CiAJcHJpdi0+YmFzZS5jb250ZXh0X2RlbCA9IG52MTBfZmVu Y2VfY29udGV4dF9kZWw7CiAJcHJpdi0+YmFzZS5jb250ZXh0cyA9IDMxOwotCXByaXYtPmJhc2Uu Y29udGV4dF9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsK Kwlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKHByaXYt PmJhc2UuY29udGV4dHMpOwogCXNwaW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKIAogCXJldCA9 IG5vdXZlYXVfYm9fbmV3KGRybS0+ZGV2LCA0MDk2LCAweDEwMDAsIFRUTV9QTF9GTEFHX1ZSQU0s CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2ZlbmNlLmMKaW5kZXggNGQ2ZjIwMmI3NzcwLi44YzUy OTU0MTQ1NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2Uu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2ZlbmNlLmMKQEAgLTk3LDcgKzk3 LDcgQEAgbnY1MF9mZW5jZV9jcmVhdGUoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCiAJcHJpdi0+ YmFzZS5jb250ZXh0X25ldyA9IG52NTBfZmVuY2VfY29udGV4dF9uZXc7CiAJcHJpdi0+YmFzZS5j b250ZXh0X2RlbCA9IG52MTBfZmVuY2VfY29udGV4dF9kZWw7CiAJcHJpdi0+YmFzZS5jb250ZXh0 cyA9IDEyNzsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRfYWxsb2Mo cHJpdi0+YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBkbWFfZmVu Y2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKIAlzcGluX2xvY2tfaW5pdCgm cHJpdi0+bG9jayk7CiAKIAlyZXQgPSBub3V2ZWF1X2JvX25ldyhkcm0tPmRldiwgNDA5NiwgMHgx MDAwLCBUVE1fUExfRkxBR19WUkFNLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnY4NF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4NF9mZW5jZS5jCmlu ZGV4IDE4YmRlOWQ4ZTZkNi4uMjNlZjA0YjRlMGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjg0X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4 NF9mZW5jZS5jCkBAIC0yMjksNyArMjI5LDcgQEAgbnY4NF9mZW5jZV9jcmVhdGUoc3RydWN0IG5v dXZlYXVfZHJtICpkcm0pCiAJcHJpdi0+YmFzZS5jb250ZXh0X2RlbCA9IG52ODRfZmVuY2VfY29u dGV4dF9kZWw7CiAKIAlwcml2LT5iYXNlLmNvbnRleHRzID0gZmlmby0+bnI7Ci0JcHJpdi0+YmFz ZS5jb250ZXh0X2Jhc2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMp OworCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MocHJp di0+YmFzZS5jb250ZXh0cyk7CiAJcHJpdi0+YmFzZS51ZXZlbnQgPSB0cnVlOwogCiAJLyogVXNl IFZSQU0gaWYgdGhlcmUgaXMgYW55IDsgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIHN5c3RlbSBtZW1v cnkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKaW5kZXggNWYzZTVhZDk5ZGU3Li44NDk5NWViYzZmZmMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX2Rydi5oCkBAIC0zMSw3ICszMSw3IEBACiAgKiBEZWZpbml0aW9ucyB0 YWtlbiBmcm9tIHNwaWNlLXByb3RvY29sLCBwbHVzIGtlcm5lbCBkcml2ZXIgc3BlY2lmaWMgYml0 cy4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEt ZmVuY2UuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9m aXJtd2FyZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgpAQCAtMTkwLDcg KzE5MCw3IEBAIGVudW0gewogICogc3BpY2UtcHJvdG9jb2wvcXhsX2Rldi5oICovCiAjZGVmaW5l IFFYTF9NQVhfUkVTIDk2CiBzdHJ1Y3QgcXhsX3JlbGVhc2UgewotCXN0cnVjdCBmZW5jZSBiYXNl OworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCWludCBpZDsKIAlpbnQgdHlwZTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX3JlbGVhc2UuYwppbmRleCBjZDgzZjA1MGNmM2UuLjAwZGM0M2JlMTM2OSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYwpAQCAtMjEsNyArMjEsNyBAQAogICovCiAjaW5jbHVk ZSAicXhsX2Rydi5oIgogI2luY2x1ZGUgInF4bF9vYmplY3QuaCIKLSNpbmNsdWRlIDx0cmFjZS9l dmVudHMvZmVuY2UuaD4KKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+CiAKIC8q CiAgKiBkcmF3YWJsZSBjbWQgY2FjaGUgLSBhbGxvY2F0ZSBhIGJ1bmNoIG9mIFZSQU0gcGFnZXMs IHN1YmFsbG9jYXRlCkBAIC00MCwyMyArNDAsMjMgQEAKIHN0YXRpYyBjb25zdCBpbnQgcmVsZWFz ZV9zaXplX3Blcl9ib1tdID0geyBSRUxFQVNFX1NJWkUsIFNVUkZBQ0VfUkVMRUFTRV9TSVpFLCBS RUxFQVNFX1NJWkUgfTsKIHN0YXRpYyBjb25zdCBpbnQgcmVsZWFzZXNfcGVyX2JvW10gPSB7IFJF TEVBU0VTX1BFUl9CTywgU1VSRkFDRV9SRUxFQVNFU19QRVJfQk8sIFJFTEVBU0VTX1BFUl9CTyB9 OwogCi1zdGF0aWMgY29uc3QgY2hhciAqcXhsX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKnF4bF9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJxeGwiOwogfQogCi1zdGF0aWMgY29uc3QgY2hh ciAqcXhsX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29u c3QgY2hhciAqcXhsX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQog ewogCXJldHVybiAicmVsZWFzZSI7CiB9CiAKLXN0YXRpYyBib29sIHF4bF9ub3Bfc2lnbmFsaW5n KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgYm9vbCBxeGxfbm9wX3NpZ25hbGluZyhzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAkvKiBmZW5jZXMgYXJlIGFsd2F5cyBhdXRvbWF0aWNh bGx5IHNpZ25hbGVkLCBzbyBqdXN0IHByZXRlbmQgd2UgZGlkIHRoaXMuLiAqLwogCXJldHVybiB0 cnVlOwogfQogCi1zdGF0aWMgbG9uZyBxeGxfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNl LCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCitzdGF0aWMgbG9uZyBxeGxfZmVuY2Vf d2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1l b3V0KQogewogCXN0cnVjdCBxeGxfZGV2aWNlICpxZGV2OwogCXN0cnVjdCBxeGxfcmVsZWFzZSAq cmVsZWFzZTsKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIGxvbmcgcXhsX2ZlbmNlX3dhaXQoc3Ry dWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogcmV0cnk6 CiAJc2MrKzsKIAotCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJaWYgKGRtYV9mZW5j ZV9pc19zaWduYWxlZChmZW5jZSkpCiAJCWdvdG8gc2lnbmFsZWQ7CiAKIAlxeGxfaW9fbm90aWZ5 X29vbShxZGV2KTsKQEAgLTgwLDExICs4MCwxMSBAQCBzdGF0aWMgbG9uZyBxeGxfZmVuY2Vfd2Fp dChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJ CWlmICghcXhsX3F1ZXVlX2dhcmJhZ2VfY29sbGVjdChxZGV2LCB0cnVlKSkKIAkJCWJyZWFrOwog Ci0JCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJCWlmIChkbWFfZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQogCQkJZ290byBzaWduYWxlZDsKIAl9CiAKLQlpZiAoZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlnb3Rv IHNpZ25hbGVkOwogCiAJaWYgKGhhdmVfZHJhd2FibGVfcmVsZWFzZXMgfHwgc2MgPCA0KSB7CkBA IC05Niw5ICs5NiwxMCBAQCBzdGF0aWMgbG9uZyBxeGxfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJCQlyZXR1cm4gMDsKIAog CQlpZiAoaGF2ZV9kcmF3YWJsZV9yZWxlYXNlcyAmJiBzYyA+IDMwMCkgewotCQkJRkVOQ0VfV0FS TihmZW5jZSwgImZhaWxlZCB0byB3YWl0IG9uIHJlbGVhc2UgJWxsdSAiCi0JCQkJCSAgImFmdGVy IHNwaW5jb3VudCAlZFxuIiwKLQkJCQkJICBmZW5jZS0+Y29udGV4dCAmIH4weGYwMDAwMDAwLCBz Yyk7CisJCQlETUFfRkVOQ0VfV0FSTihmZW5jZSwKKwkJCQkgICAgICAgImZhaWxlZCB0byB3YWl0 IG9uIHJlbGVhc2UgJWxsdSAiCisJCQkJICAgICAgICJhZnRlciBzcGluY291bnQgJWRcbiIsCisJ CQkJICAgICAgIGZlbmNlLT5jb250ZXh0ICYgfjB4ZjAwMDAwMDAsIHNjKTsKIAkJCWdvdG8gc2ln bmFsZWQ7CiAJCX0KIAkJZ290byByZXRyeTsKQEAgLTExNSw3ICsxMTYsNyBAQCBzdGF0aWMgbG9u ZyBxeGxfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBs b25nIHRpbWVvdXQpCiAJcmV0dXJuIGVuZCAtIGN1cjsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVj dCBmZW5jZV9vcHMgcXhsX2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBxeGxfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBxeGxfZ2V0X2Ry aXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IHF4bF9nZXRfdGltZWxpbmVfbmFtZSwK IAkuZW5hYmxlX3NpZ25hbGluZyA9IHF4bF9ub3Bfc2lnbmFsaW5nLApAQCAtMTkyLDggKzE5Myw4 IEBAIHF4bF9yZWxlYXNlX2ZyZWUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsCiAJCVdBUk5fT04o bGlzdF9lbXB0eSgmcmVsZWFzZS0+Ym9zKSk7CiAJCXF4bF9yZWxlYXNlX2ZyZWVfbGlzdChyZWxl YXNlKTsKIAotCQlmZW5jZV9zaWduYWwoJnJlbGVhc2UtPmJhc2UpOwotCQlmZW5jZV9wdXQoJnJl bGVhc2UtPmJhc2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsKCZyZWxlYXNlLT5iYXNlKTsKKwkJZG1h X2ZlbmNlX3B1dCgmcmVsZWFzZS0+YmFzZSk7CiAJfSBlbHNlIHsKIAkJcXhsX3JlbGVhc2VfZnJl ZV9saXN0KHJlbGVhc2UpOwogCQlrZnJlZShyZWxlYXNlKTsKQEAgLTQ1Myw5ICs0NTQsOSBAQCB2 b2lkIHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAq cmVsZWFzZSkKIAkgKiBTaW5jZSB3ZSBuZXZlciByZWFsbHkgYWxsb2NhdGVkIGEgY29udGV4dCBh bmQgd2UgZG9uJ3Qgd2FudCB0byBjb25mbGljdCwKIAkgKiBzZXQgdGhlIGhpZ2hlc3QgYml0cy4g VGhpcyB3aWxsIGJyZWFrIGlmIHdlIHJlYWxseSBhbGxvdyBleHBvcnRpbmcgb2YgZG1hLWJ1ZnMu CiAJICovCi0JZmVuY2VfaW5pdCgmcmVsZWFzZS0+YmFzZSwgJnF4bF9mZW5jZV9vcHMsICZxZGV2 LT5yZWxlYXNlX2xvY2ssCi0JCSAgIHJlbGVhc2UtPmlkIHwgMHhmMDAwMDAwMCwgcmVsZWFzZS0+ YmFzZS5zZXFubyk7Ci0JdHJhY2VfZmVuY2VfZW1pdCgmcmVsZWFzZS0+YmFzZSk7CisJZG1hX2Zl bmNlX2luaXQoJnJlbGVhc2UtPmJhc2UsICZxeGxfZmVuY2Vfb3BzLCAmcWRldi0+cmVsZWFzZV9s b2NrLAorCQkgICAgICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCByZWxlYXNlLT5iYXNlLnNl cW5vKTsKKwl0cmFjZV9kbWFfZmVuY2VfZW1pdCgmcmVsZWFzZS0+YmFzZSk7CiAKIAlkcml2ZXIg PSBiZGV2LT5kcml2ZXI7CiAJZ2xvYiA9IGJvLT5nbG9iOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgK aW5kZXggMWIwZGNhZDkxNmIwLi40NGUwYzVlZDY0MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24u aApAQCAtNjYsNyArNjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxs aW51eC9pbnRlcnZhbF90cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+Ci0jaW5j bHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2lu Y2x1ZGUgPHR0bS90dG1fYm9fYXBpLmg+CiAjaW5jbHVkZSA8dHRtL3R0bV9ib19kcml2ZXIuaD4K QEAgLTM2Nyw3ICszNjcsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlX2RyaXZlciB7CiB9OwogCiBz dHJ1Y3QgcmFkZW9uX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UJCWJhc2U7CisJc3RydWN0IGRtYV9m ZW5jZQkJYmFzZTsKIAogCXN0cnVjdCByYWRlb25fZGV2aWNlCSpyZGV2OwogCXVpbnQ2NF90CQlz ZXE7CkBAIC03NDYsNyArNzQ2LDcgQEAgc3RydWN0IHJhZGVvbl9mbGlwX3dvcmsgewogCXVpbnQ2 NF90CQkJYmFzZTsKIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKIAlz dHJ1Y3QgcmFkZW9uX2JvCQkqb2xkX3JibzsKLQlzdHJ1Y3QgZmVuY2UJCQkqZmVuY2U7CisJc3Ry dWN0IGRtYV9mZW5jZQkJKmZlbmNlOwogCWJvb2wJCQkJYXN5bmM7CiB9OwogCkBAIC0yNTE0LDkg KzI1MTQsOSBAQCB2b2lkIGNpa19tbV93ZG9vcmJlbGwoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHUzMiBpbmRleCwgdTMyIHYpOwogLyoKICAqIENhc3QgaGVscGVyCiAgKi8KLWV4dGVybiBj b25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHJhZGVvbl9mZW5jZV9vcHM7CitleHRlcm4gY29uc3Qgc3Ry dWN0IGRtYV9mZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wczsKIAotc3RhdGljIGlubGluZSBzdHJ1 Y3QgcmFkZW9uX2ZlbmNlICp0b19yYWRlb25fZmVuY2Uoc3RydWN0IGZlbmNlICpmKQorc3RhdGlj IGlubGluZSBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICp0b19yYWRlb25fZmVuY2Uoc3RydWN0IGRtYV9m ZW5jZSAqZikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpfX2YgPSBjb250YWluZXJfb2YoZiwg c3RydWN0IHJhZGVvbl9mZW5jZSwgYmFzZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZGV2aWNlLmMKaW5kZXggZWI5MmFlZjQ2ZTNjLi4zNmI3YWM3ZTU3ZTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2RldmljZS5jCkBAIC0xMzIwLDcgKzEzMjAsNyBAQCBpbnQgcmFkZW9u X2RldmljZV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCWZvciAoaSA9IDA7IGkg PCBSQURFT05fTlVNX1JJTkdTOyBpKyspIHsKIAkJcmRldi0+cmluZ1tpXS5pZHggPSBpOwogCX0K LQlyZGV2LT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYyhSQURFT05fTlVNX1JJ TkdTKTsKKwlyZGV2LT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoUkFE RU9OX05VTV9SSU5HUyk7CiAKIAlEUk1fSU5GTygiaW5pdGlhbGl6aW5nIGtlcm5lbCBtb2Rlc2V0 dGluZyAoJXMgMHglMDRYOjB4JTA0WCAweCUwNFg6MHglMDRYIDB4JTAyWCkuXG4iLAogCQkgcmFk ZW9uX2ZhbWlseV9uYW1lW3JkZXYtPmZhbWlseV0sIHBkZXYtPnZlbmRvciwgcGRldi0+ZGV2aWNl LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCmluZGV4IGNkYjhjYjU2OGMx NS4uZTc0MDllOGE5Zjg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5j CkBAIC00MzcsNyArNDM3LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2ZsaXBfd29ya19mdW5jKHN0 cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCQkJCWRvd25fcmVhZCgmcmRldi0+ZXhjbHVzaXZl X2xvY2spOwogCQkJfQogCQl9IGVsc2UKLQkJCXIgPSBmZW5jZV93YWl0KHdvcmstPmZlbmNlLCBm YWxzZSk7CisJCQlyID0gZG1hX2ZlbmNlX3dhaXQod29yay0+ZmVuY2UsIGZhbHNlKTsKIAogCQlp ZiAocikKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHdhaXQgb24gcGFnZSBmbGlwIGZlbmNlICgl ZCkhXG4iLCByKTsKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fZmxpcF93 b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCSAqIGNvbmZ1c2VkIGFib3V0 IHdoaWNoIEJPIHRoZSBDUlRDIGlzIHNjYW5uaW5nIG91dAogCQkgKi8KIAotCQlmZW5jZV9wdXQo d29yay0+ZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KHdvcmstPmZlbmNlKTsKIAkJd29yay0+ZmVu Y2UgPSBOVUxMOwogCX0KIApAQCAtNTQyLDcgKzU0Miw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2Ny dGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCURSTV9FUlJPUigi ZmFpbGVkIHRvIHBpbiBuZXcgcmJvIGJ1ZmZlciBiZWZvcmUgZmxpcFxuIik7CiAJCWdvdG8gY2xl YW51cDsKIAl9Ci0Jd29yay0+ZmVuY2UgPSBmZW5jZV9nZXQocmVzZXJ2YXRpb25fb2JqZWN0X2dl dF9leGNsKG5ld19yYm8tPnRiby5yZXN2KSk7CisJd29yay0+ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0 KHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChuZXdfcmJvLT50Ym8ucmVzdikpOwogCXJhZGVv bl9ib19nZXRfdGlsaW5nX2ZsYWdzKG5ld19yYm8sICZ0aWxpbmdfZmxhZ3MsIE5VTEwpOwogCXJh ZGVvbl9ib191bnJlc2VydmUobmV3X3Jibyk7CiAKQEAgLTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMg aW50IHJhZGVvbl9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CiBjbGVhbnVwOgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZ3b3JrLT5v bGRfcmJvLT5nZW1fYmFzZSk7Ci0JZmVuY2VfcHV0KHdvcmstPmZlbmNlKTsKKwlkbWFfZmVuY2Vf cHV0KHdvcmstPmZlbmNlKTsKIAlrZnJlZSh3b3JrKTsKIAlyZXR1cm4gcjsKIH0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jCmluZGV4IDdlZjA3NWFjZGU5Yy4uZWYwOWYwYTYzNzU0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMKQEAgLTE0MSw4ICsxNDEsMTAg QEAgaW50IHJhZGVvbl9mZW5jZV9lbWl0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCSgq ZmVuY2UpLT5zZXEgPSBzZXEgPSArK3JkZXYtPmZlbmNlX2RydltyaW5nXS5zeW5jX3NlcVtyaW5n XTsKIAkoKmZlbmNlKS0+cmluZyA9IHJpbmc7CiAJKCpmZW5jZSktPmlzX3ZtX3VwZGF0ZSA9IGZh bHNlOwotCWZlbmNlX2luaXQoJigqZmVuY2UpLT5iYXNlLCAmcmFkZW9uX2ZlbmNlX29wcywKLQkJ ICAgJnJkZXYtPmZlbmNlX3F1ZXVlLmxvY2ssIHJkZXYtPmZlbmNlX2NvbnRleHQgKyByaW5nLCBz ZXEpOworCWRtYV9mZW5jZV9pbml0KCYoKmZlbmNlKS0+YmFzZSwgJnJhZGVvbl9mZW5jZV9vcHMs CisJCSAgICAgICAmcmRldi0+ZmVuY2VfcXVldWUubG9jaywKKwkJICAgICAgIHJkZXYtPmZlbmNl X2NvbnRleHQgKyByaW5nLAorCQkgICAgICAgc2VxKTsKIAlyYWRlb25fZmVuY2VfcmluZ19lbWl0 KHJkZXYsIHJpbmcsICpmZW5jZSk7CiAJdHJhY2VfcmFkZW9uX2ZlbmNlX2VtaXQocmRldi0+ZGRl diwgcmluZywgKCpmZW5jZSktPnNlcSk7CiAJcmFkZW9uX2ZlbmNlX3NjaGVkdWxlX2NoZWNrKHJk ZXYsIHJpbmcpOwpAQCAtMTY5LDE4ICsxNzEsMTggQEAgc3RhdGljIGludCByYWRlb25fZmVuY2Vf Y2hlY2tfc2lnbmFsZWQod2FpdF9xdWV1ZV90ICp3YWl0LCB1bnNpZ25lZCBtb2RlLCBpbnQgZmwK IAkgKi8KIAlzZXEgPSBhdG9taWM2NF9yZWFkKCZmZW5jZS0+cmRldi0+ZmVuY2VfZHJ2W2ZlbmNl LT5yaW5nXS5sYXN0X3NlcSk7CiAJaWYgKHNlcSA+PSBmZW5jZS0+c2VxKSB7Ci0JCWludCByZXQg PSBmZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+YmFzZSk7CisJCWludCByZXQgPSBkbWFfZmVu Y2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmJhc2UpOwogCiAJCWlmICghcmV0KQotCQkJRkVOQ0Vf VFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CisJCQlE TUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxu Iik7CiAJCWVsc2UKLQkJCUZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgIndhcyBhbHJlYWR5IHNp Z25hbGVkXG4iKTsKKwkJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJ3YXMgYWxyZWFk eSBzaWduYWxlZFxuIik7CiAKIAkJcmFkZW9uX2lycV9rbXNfc3dfaXJxX3B1dChmZW5jZS0+cmRl diwgZmVuY2UtPnJpbmcpOwogCQlfX3JlbW92ZV93YWl0X3F1ZXVlKCZmZW5jZS0+cmRldi0+ZmVu Y2VfcXVldWUsICZmZW5jZS0+ZmVuY2Vfd2FrZSk7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmJhc2Up OworCQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJfSBlbHNlCi0JCUZFTkNFX1RSQUNF KCZmZW5jZS0+YmFzZSwgInBlbmRpbmdcbiIpOworCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5i YXNlLCAicGVuZGluZ1xuIik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM1MSw3ICszNTMsNyBAQCBz dGF0aWMgYm9vbCByYWRlb25fZmVuY2Vfc2VxX3NpZ25hbGVkKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LAogCXJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgcmFkZW9uX2ZlbmNlX2lz X3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIHJhZGVvbl9mZW5jZV9pc19z aWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZl bmNlID0gdG9fcmFkZW9uX2ZlbmNlKGYpOwogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0g ZmVuY2UtPnJkZXY7CkBAIC0zODEsNyArMzgzLDcgQEAgc3RhdGljIGJvb2wgcmFkZW9uX2ZlbmNl X2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKICAqIHRvIGZlbmNlX3F1ZXVlIHRoYXQgY2hl Y2tzIGlmIHRoaXMgZmVuY2UgaXMgc2lnbmFsZWQsIGFuZCBpZiBzbyBpdAogICogc2lnbmFscyB0 aGUgZmVuY2UgYW5kIHJlbW92ZXMgaXRzZWxmLgogICovCi1zdGF0aWMgYm9vbCByYWRlb25fZmVu Y2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCByYWRlb25f ZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBy YWRlb25fZmVuY2UgKmZlbmNlID0gdG9fcmFkZW9uX2ZlbmNlKGYpOwogCXN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2ID0gZmVuY2UtPnJkZXY7CkBAIC00MTQsOSArNDE2LDkgQEAgc3RhdGljIGJv b2wgcmFkZW9uX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQogCWZlbmNl LT5mZW5jZV93YWtlLnByaXZhdGUgPSBOVUxMOwogCWZlbmNlLT5mZW5jZV93YWtlLmZ1bmMgPSBy YWRlb25fZmVuY2VfY2hlY2tfc2lnbmFsZWQ7CiAJX19hZGRfd2FpdF9xdWV1ZSgmcmRldi0+ZmVu Y2VfcXVldWUsICZmZW5jZS0+ZmVuY2Vfd2FrZSk7Ci0JZmVuY2VfZ2V0KGYpOworCWRtYV9mZW5j ZV9nZXQoZik7CiAKLQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJhcm1lZCBvbiByaW5nICVp IVxuIiwgZmVuY2UtPnJpbmcpOworCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJhcm1l ZCBvbiByaW5nICVpIVxuIiwgZmVuY2UtPnJpbmcpOwogCXJldHVybiB0cnVlOwogfQogCkBAIC00 MzYsOSArNDM4LDkgQEAgYm9vbCByYWRlb25fZmVuY2Vfc2lnbmFsZWQoc3RydWN0IHJhZGVvbl9m ZW5jZSAqZmVuY2UpCiAJaWYgKHJhZGVvbl9mZW5jZV9zZXFfc2lnbmFsZWQoZmVuY2UtPnJkZXYs IGZlbmNlLT5zZXEsIGZlbmNlLT5yaW5nKSkgewogCQlpbnQgcmV0OwogCi0JCXJldCA9IGZlbmNl X3NpZ25hbCgmZmVuY2UtPmJhc2UpOworCQlyZXQgPSBkbWFfZmVuY2Vfc2lnbmFsKCZmZW5jZS0+ YmFzZSk7CiAJCWlmICghcmV0KQotCQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFs ZWQgZnJvbSByYWRlb25fZmVuY2Vfc2lnbmFsZWRcbiIpOworCQkJRE1BX0ZFTkNFX1RSQUNFKCZm ZW5jZS0+YmFzZSwgInNpZ25hbGVkIGZyb20gcmFkZW9uX2ZlbmNlX3NpZ25hbGVkXG4iKTsKIAkJ cmV0dXJuIHRydWU7CiAJfQogCXJldHVybiBmYWxzZTsKQEAgLTU1Miw3ICs1NTQsNyBAQCBsb25n IHJhZGVvbl9mZW5jZV93YWl0X3RpbWVvdXQoc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UsIGJv b2wgaW50ciwgbG9uZyB0aW1lbwogCSAqIGV4Y2x1c2l2ZV9sb2NrIGlzIG5vdCBoZWxkIGluIHRo YXQgY2FzZS4KIAkgKi8KIAlpZiAoV0FSTl9PTl9PTkNFKCF0b19yYWRlb25fZmVuY2UoJmZlbmNl LT5iYXNlKSkpCi0JCXJldHVybiBmZW5jZV93YWl0KCZmZW5jZS0+YmFzZSwgaW50cik7CisJCXJl dHVybiBkbWFfZmVuY2Vfd2FpdCgmZmVuY2UtPmJhc2UsIGludHIpOwogCiAJc2VxW2ZlbmNlLT5y aW5nXSA9IGZlbmNlLT5zZXE7CiAJciA9IHJhZGVvbl9mZW5jZV93YWl0X3NlcV90aW1lb3V0KGZl bmNlLT5yZGV2LCBzZXEsIGludHIsIHRpbWVvdXQpOwpAQCAtNTYwLDkgKzU2Miw5IEBAIGxvbmcg cmFkZW9uX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwgYm9v bCBpbnRyLCBsb25nIHRpbWVvCiAJCXJldHVybiByOwogCX0KIAotCXJfc2lnID0gZmVuY2Vfc2ln bmFsKCZmZW5jZS0+YmFzZSk7CisJcl9zaWcgPSBkbWFfZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFz ZSk7CiAJaWYgKCFyX3NpZykKLQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFsZWQg ZnJvbSBmZW5jZV93YWl0XG4iKTsKKwkJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgInNp Z25hbGVkIGZyb20gZmVuY2Vfd2FpdFxuIik7CiAJcmV0dXJuIHI7CiB9CiAKQEAgLTY5Nyw3ICs2 OTksNyBAQCBpbnQgcmFkZW9uX2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsIGludCByaW5nKQogICovCiBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpyYWRlb25fZmVuY2Vf cmVmKHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKQogewotCWZlbmNlX2dldCgmZmVuY2UtPmJh c2UpOworCWRtYV9mZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKIAlyZXR1cm4gZmVuY2U7CiB9CiAK QEAgLTcxNCw3ICs3MTYsNyBAQCB2b2lkIHJhZGVvbl9mZW5jZV91bnJlZihzdHJ1Y3QgcmFkZW9u X2ZlbmNlICoqZmVuY2UpCiAKIAkqZmVuY2UgPSBOVUxMOwogCWlmICh0bXApIHsKLQkJZmVuY2Vf cHV0KCZ0bXAtPmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZ0bXAtPmJhc2UpOwogCX0KIH0KIApA QCAtMTAyOCwxMiArMTAzMCwxMiBAQCBpbnQgcmFkZW9uX2RlYnVnZnNfZmVuY2VfaW5pdChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKICNlbmRpZgogfQogCi1zdGF0aWMgY29uc3QgY2hhciAq cmFkZW9uX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGlj IGNvbnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJyYWRlb24iOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAq cmFkZW9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBj b25zdCBjaGFyICpyYWRlb25fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5j ZSAqZikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSA9IHRvX3JhZGVvbl9mZW5jZShm KTsKIAlzd2l0Y2ggKGZlbmNlLT5yaW5nKSB7CkBAIC0xMDUxLDE2ICsxMDUzLDE2IEBAIHN0YXRp YyBjb25zdCBjaGFyICpyYWRlb25fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNl ICpmKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcmFkZW9uX3Rlc3Rfc2lnbmFsZWQoc3RydWN0IHJh ZGVvbl9mZW5jZSAqZmVuY2UpCiB7Ci0JcmV0dXJuIHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFM RURfQklULCAmZmVuY2UtPmJhc2UuZmxhZ3MpOworCXJldHVybiB0ZXN0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncyk7CiB9CiAKIHN0cnVjdCByYWRl b25fd2FpdF9jYiB7Ci0Jc3RydWN0IGZlbmNlX2NiIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZV9j YiBiYXNlOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKIH07CiAKIHN0YXRpYyB2b2lkCi1y YWRlb25fZmVuY2Vfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2Ig KmNiKQorcmFkZW9uX2ZlbmNlX3dhaXRfY2Ioc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVj dCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCByYWRlb25fd2FpdF9jYiAqd2FpdCA9CiAJ CWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHJhZGVvbl93YWl0X2NiLCBiYXNlKTsKQEAgLTEwNjgs NyArMTA3MCw3IEBAIHJhZGVvbl9mZW5jZV93YWl0X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0 cnVjdCBmZW5jZV9jYiAqY2IpCiAJd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRhc2spOwogfQogCi1z dGF0aWMgc2lnbmVkIGxvbmcgcmFkZW9uX2ZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2Ug KmYsIGJvb2wgaW50ciwKK3N0YXRpYyBzaWduZWQgbG9uZyByYWRlb25fZmVuY2VfZGVmYXVsdF93 YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmYsIGJvb2wgaW50ciwKIAkJCQkJICAgICBzaWduZWQgbG9u ZyB0KQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlID0gdG9fcmFkZW9uX2ZlbmNlKGYp OwpAQCAtMTA3Nyw3ICsxMDc5LDcgQEAgc3RhdGljIHNpZ25lZCBsb25nIHJhZGVvbl9mZW5jZV9k ZWZhdWx0X3dhaXQoc3RydWN0IGZlbmNlICpmLCBib29sIGludHIsCiAKIAljYi50YXNrID0gY3Vy cmVudDsKIAotCWlmIChmZW5jZV9hZGRfY2FsbGJhY2soZiwgJmNiLmJhc2UsIHJhZGVvbl9mZW5j ZV93YWl0X2NiKSkKKwlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuYmFzZSwgcmFk ZW9uX2ZlbmNlX3dhaXRfY2IpKQogCQlyZXR1cm4gdDsKIAogCXdoaWxlICh0ID4gMCkgewpAQCAt MTEwNSwxMiArMTEwNywxMiBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgcmFkZW9uX2ZlbmNlX2RlZmF1 bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwKIAl9CiAKIAlfX3NldF9jdXJyZW50 X3N0YXRlKFRBU0tfUlVOTklORyk7Ci0JZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKGYsICZjYi5iYXNl KTsKKwlkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKGYsICZjYi5iYXNlKTsKIAogCXJldHVybiB0 OwogfQogCi1jb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIHJhZGVvbl9mZW5jZV9vcHMgPSB7Citjb25z dCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyByYWRlb25fZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVy X25hbWUgPSByYWRlb25fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFt ZSA9IHJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9 IHJhZGVvbl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fc3luYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f c3luYy5jCmluZGV4IDAyYWM4YTFkZTRmZi4uYmU1ZDdhMzhkM2FhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fc3luYy5jCkBAIC05Miw3ICs5Miw3IEBAIGludCByYWRlb25fc3luY19yZXN2 KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkgICAgIGJvb2wgc2hhcmVkKQogewogCXN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZmxpc3Q7Ci0Jc3RydWN0IGZlbmNlICpmOwor CXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7CiAJdW5z aWduZWQgaTsKIAlpbnQgciA9IDA7CkBAIC0xMDMsNyArMTAzLDcgQEAgaW50IHJhZGVvbl9zeW5j X3Jlc3Yoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJaWYgKGZlbmNlICYmIGZlbmNlLT5y ZGV2ID09IHJkZXYpCiAJCXJhZGVvbl9zeW5jX2ZlbmNlKHN5bmMsIGZlbmNlKTsKIAllbHNlIGlm IChmKQotCQlyID0gZmVuY2Vfd2FpdChmLCB0cnVlKTsKKwkJciA9IGRtYV9mZW5jZV93YWl0KGYs IHRydWUpOwogCiAJZmxpc3QgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QocmVzdik7CiAJ aWYgKHNoYXJlZCB8fCAhZmxpc3QgfHwgcikKQEAgLTExNiw3ICsxMTYsNyBAQCBpbnQgcmFkZW9u X3N5bmNfcmVzdihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJaWYgKGZlbmNlICYmIGZl bmNlLT5yZGV2ID09IHJkZXYpCiAJCQlyYWRlb25fc3luY19mZW5jZShzeW5jLCBmZW5jZSk7CiAJ CWVsc2UKLQkJCXIgPSBmZW5jZV93YWl0KGYsIHRydWUpOworCQkJciA9IGRtYV9mZW5jZV93YWl0 KGYsIHRydWUpOwogCiAJCWlmIChyKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl91dmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X3V2ZC5jCmluZGV4IDBjZDBlN2JkZWU1NS4uZDM0ZDFjZjMzODk1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl91dmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl91dmQuYwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3V2 ZF9jc19tc2coc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIHN0cnVjdCByYWRlb25fYm8gKmJv LAogewogCWludDMyX3QgKm1zZywgbXNnX3R5cGUsIGhhbmRsZTsKIAl1bnNpZ25lZCBpbWdfc2l6 ZSA9IDA7Ci0Jc3RydWN0IGZlbmNlICpmOworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJdm9pZCAq cHRyOwogCiAJaW50IGksIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCBmYzYyMTdkZmU0MDEuLjkx NWUwZDFjMzE2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGlj IHZvaWQgdHRtX2JvX3JlbGVhc2VfbGlzdChzdHJ1Y3Qga3JlZiAqbGlzdF9rcmVmKQogCUJVR19P TighbGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSk7CiAJdHRtX3R0X2Rlc3Ryb3koYm8tPnR0bSk7 CiAJYXRvbWljX2RlYygmYm8tPmdsb2ItPmJvX2NvdW50KTsKLQlmZW5jZV9wdXQoYm8tPm1vdmlu Zyk7CisJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsKIAlpZiAoYm8tPnJlc3YgPT0gJmJvLT50 dG1fcmVzdikKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X2ZpbmkoJmJvLT50dG1fcmVzdik7CiAJbXV0 ZXhfZGVzdHJveSgmYm8tPnd1X211dGV4KTsKQEAgLTQyNiwyMCArNDI2LDIwIEBAIHN0YXRpYyB2 b2lkIHR0bV9ib19jbGVhbnVwX21lbXR5cGVfdXNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8pCiBzdGF0aWMgdm9pZCB0dG1fYm9fZmx1c2hfYWxsX2ZlbmNlcyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvKQogewogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsK LQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWludCBp OwogCiAJZm9iaiA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChiby0+cmVzdik7CiAJZmVu Y2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woYm8tPnJlc3YpOwogCWlmIChmZW5jZSAm JiAhZmVuY2UtPm9wcy0+c2lnbmFsZWQpCi0JCWZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVu Y2UpOworCQlkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhmZW5jZSk7CiAKIAlmb3IgKGkg PSAwOyBmb2JqICYmIGkgPCBmb2JqLT5zaGFyZWRfY291bnQ7ICsraSkgewogCQlmZW5jZSA9IHJj dV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLAogCQkJCQlyZXNlcnZhdGlv bl9vYmplY3RfaGVsZChiby0+cmVzdikpOwogCiAJCWlmICghZmVuY2UtPm9wcy0+c2lnbmFsZWQp Ci0JCQlmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9lbmFi bGVfc3dfc2lnbmFsaW5nKGZlbmNlKTsKIAl9CiB9CiAKQEAgLTc5MiwxMSArNzkyLDExIEBAIHN0 YXRpYyBpbnQgdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAJCQkJIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAogCQkJCSBzdHJ1Y3Qg dHRtX21lbV9yZWcgKm1lbSkKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlOwogCWludCByZXQ7CiAKIAlzcGluX2xvY2soJm1hbi0+bW92ZV9sb2NrKTsK LQlmZW5jZSA9IGZlbmNlX2dldChtYW4tPm1vdmUpOworCWZlbmNlID0gZG1hX2ZlbmNlX2dldCht YW4tPm1vdmUpOwogCXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAKIAlpZiAoZmVuY2Up IHsKQEAgLTgwNiw3ICs4MDYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAodW5saWtlbHkocmV0KSkKIAkJCXJl dHVybiByZXQ7CiAKLQkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOworCQlkbWFfZmVuY2VfcHV0KGJv LT5tb3ZpbmcpOwogCQliby0+bW92aW5nID0gZmVuY2U7CiAJfQogCkBAIC0xMjg2LDcgKzEyODYs NyBAQCBzdGF0aWMgaW50IHR0bV9ib19mb3JjZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAogewogCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gJmJkZXYt Pm1hblttZW1fdHlwZV07CiAJc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSBiZGV2LT5nbG9i OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50 IHJldDsKIAogCS8qCkBAIC0xMzA5LDEyICsxMzA5LDEyIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2Zv cmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJc3Bpbl91bmxvY2so Jmdsb2ItPmxydV9sb2NrKTsKIAogCXNwaW5fbG9jaygmbWFuLT5tb3ZlX2xvY2spOwotCWZlbmNl ID0gZmVuY2VfZ2V0KG1hbi0+bW92ZSk7CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KG1hbi0+bW92 ZSk7CiAJc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9sb2NrKTsKIAogCWlmIChmZW5jZSkgewotCQly ZXQgPSBmZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7Ci0JCWZlbmNlX3B1dChmZW5jZSk7CisJCXJl dCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2Up OwogCQlpZiAocmV0KSB7CiAJCQlpZiAoYWxsb3dfZXJyb3JzKSB7CiAJCQkJcmV0dXJuIHJldDsK QEAgLTEzNDMsNyArMTM0Myw3IEBAIGludCB0dG1fYm9fY2xlYW5fbW0oc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90eXBlKQogCQkgICAgICAgbWVtX3R5cGUpOwogCQly ZXR1cm4gcmV0OwogCX0KLQlmZW5jZV9wdXQobWFuLT5tb3ZlKTsKKwlkbWFfZmVuY2VfcHV0KG1h bi0+bW92ZSk7CiAKIAltYW4tPnVzZV90eXBlID0gZmFsc2U7CiAJbWFuLT5oYXNfdHlwZSA9IGZh bHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCmluZGV4IGJmNmUyMTY1NWM1Ny4uZDA0NTli MzkyZTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCkBAIC02NDQsNyArNjQ0LDcgQEAg dm9pZCB0dG1fYm9fa3VubWFwKHN0cnVjdCB0dG1fYm9fa21hcF9vYmogKm1hcCkKIEVYUE9SVF9T WU1CT0wodHRtX2JvX2t1bm1hcCk7CiAKIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNl LAorCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCQkgICAgICBib29sIGV2aWN0 LAogCQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQogewpAQCAtNjc0LDggKzY3 NCw4IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAJCSAqIG9wZXJhdGlvbiBoYXMgY29tcGxldGVkLgogCQkgKi8KIAotCQlmZW5j ZV9wdXQoYm8tPm1vdmluZyk7Ci0JCWJvLT5tb3ZpbmcgPSBmZW5jZV9nZXQoZmVuY2UpOworCQlk bWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOworCQliby0+bW92aW5nID0gZG1hX2ZlbmNlX2dldChm ZW5jZSk7CiAKIAkJcmV0ID0gdHRtX2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoYm8sICZnaG9zdF9v YmopOwogCQlpZiAocmV0KQpAQCAtNzA2LDcgKzcwNiw3IEBAIGludCB0dG1fYm9fbW92ZV9hY2Nl bF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiBFWFBPUlRfU1lNQk9MKHR0 bV9ib19tb3ZlX2FjY2VsX2NsZWFudXApOwogCiBpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29s IGV2aWN0LAorCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0LAogCQkJIHN0 cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSkKIHsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diA9IGJvLT5iZGV2OwpAQCAtNzMwLDggKzczMCw4IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfbW92 ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkgKiBvcGVyYXRpb24gaGFzIGNvbXBs ZXRlZC4KIAkJICovCiAKLQkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwotCQliby0+bW92aW5nID0g ZmVuY2VfZ2V0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5nKTsKKwkJYm8tPm1v dmluZyA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCiAJCXJldCA9IHR0bV9idWZmZXJfb2JqZWN0 X3RyYW5zZmVyKGJvLCAmZ2hvc3Rfb2JqKTsKIAkJaWYgKHJldCkKQEAgLTc2MSwxNiArNzYxLDE2 IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCQkgKi8KIAogCQlzcGluX2xvY2soJmZyb20tPm1vdmVfbG9jayk7Ci0JCWlmICghZnJvbS0+ bW92ZSB8fCBmZW5jZV9pc19sYXRlcihmZW5jZSwgZnJvbS0+bW92ZSkpIHsKLQkJCWZlbmNlX3B1 dChmcm9tLT5tb3ZlKTsKLQkJCWZyb20tPm1vdmUgPSBmZW5jZV9nZXQoZmVuY2UpOworCQlpZiAo IWZyb20tPm1vdmUgfHwgZG1hX2ZlbmNlX2lzX2xhdGVyKGZlbmNlLCBmcm9tLT5tb3ZlKSkgewor CQkJZG1hX2ZlbmNlX3B1dChmcm9tLT5tb3ZlKTsKKwkJCWZyb20tPm1vdmUgPSBkbWFfZmVuY2Vf Z2V0KGZlbmNlKTsKIAkJfQogCQlzcGluX3VubG9jaygmZnJvbS0+bW92ZV9sb2NrKTsKIAogCQl0 dG1fYm9fZnJlZV9vbGRfbm9kZShibyk7CiAKLQkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwotCQli by0+bW92aW5nID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChiby0+bW92aW5n KTsKKwkJYm8tPm1vdmluZyA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCiAJfSBlbHNlIHsKIAkJ LyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwppbmRleCBhNmVkOWQ1ZTUxNjcuLjQ3NDhhZWRjOTMz YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbnQg dHRtX2JvX3ZtX2ZhdWx0X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkvKgog CSAqIFF1aWNrIG5vbi1zdGFsbGluZyBjaGVjayBmb3IgaWRsZS4KIAkgKi8KLQlpZiAoZmVuY2Vf aXNfc2lnbmFsZWQoYm8tPm1vdmluZykpCisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChiby0+ bW92aW5nKSkKIAkJZ290byBvdXRfY2xlYXI7CiAKIAkvKgpAQCAtNjcsMTQgKzY3LDE0IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX3ZtX2ZhdWx0X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKIAkJCWdvdG8gb3V0X3VubG9jazsKIAogCQl1cF9yZWFkKCZ2bWEtPnZtX21tLT5tbWFwX3Nl bSk7Ci0JCSh2b2lkKSBmZW5jZV93YWl0KGJvLT5tb3ZpbmcsIHRydWUpOworCQkodm9pZCkgZG1h X2ZlbmNlX3dhaXQoYm8tPm1vdmluZywgdHJ1ZSk7CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAK IAkvKgogCSAqIE9yZGluYXJ5IHdhaXQuCiAJICovCi0JcmV0ID0gZmVuY2Vfd2FpdChiby0+bW92 aW5nLCB0cnVlKTsKKwlyZXQgPSBkbWFfZmVuY2Vfd2FpdChiby0+bW92aW5nLCB0cnVlKTsKIAlp ZiAodW5saWtlbHkocmV0ICE9IDApKSB7CiAJCXJldCA9IChyZXQgIT0gLUVSRVNUQVJUU1lTKSA/ IFZNX0ZBVUxUX1NJR0JVUyA6CiAJCQlWTV9GQVVMVF9OT1BBR0U7CkBAIC04Miw3ICs4Miw3IEBA IHN0YXRpYyBpbnQgdHRtX2JvX3ZtX2ZhdWx0X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAl9CiAKIG91dF9jbGVhcjoKLQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7CisJZG1hX2Zl bmNlX3B1dChiby0+bW92aW5nKTsKIAliby0+bW92aW5nID0gTlVMTDsKIAogb3V0X3VubG9jazoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKaW5kZXggYTgwNzE3YjM1ZGM2Li5k MzViYzQ5MWU4ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZf dXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCkBAIC0x NzksNyArMTc5LDggQEAgaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2FjcXVp cmVfY3R4ICp0aWNrZXQsCiBFWFBPUlRfU1lNQk9MKHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMpOwog CiB2b2lkIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHgg KnRpY2tldCwKLQkJCQkgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwgc3RydWN0IGZlbmNlICpmZW5j ZSkKKwkJCQkgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKKwkJCQkgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCiB7CiAJc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgKmVudHJ5OwogCXN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92 Z2VtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMKaW5kZXggNWM1 N2MxZmZhMWY5Li40ODg5MDlhMjFlZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92Z2Vt L3ZnZW1fZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMKQEAg LTI4LDU2ICsyOCw1NyBAQAogI2RlZmluZSBWR0VNX0ZFTkNFX1RJTUVPVVQgKDEwKkhaKQogCiBz dHJ1Y3QgdmdlbV9mZW5jZSB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5j ZSBiYXNlOwogCXN0cnVjdCBzcGlubG9jayBsb2NrOwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVy OwogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKnZnZW1fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0 cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5jZV9nZXRfZHJp dmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJ2Z2VtIjsKIH0K IAotc3RhdGljIGNvbnN0IGNoYXIgKnZnZW1fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0 IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2ZlbmNlX2dldF90aW1lbGlu ZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAidW5ib3VuZCI7CiB9 CiAKLXN0YXRpYyBib29sIHZnZW1fZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkK K3N0YXRpYyBib29sIHZnZW1fZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up CiB7CiAJcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCB2Z2VtX2ZlbmNlX2VuYWJsZV9z aWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHZnZW1fZmVuY2VfZW5h YmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gdHJ1ZTsK IH0KIAotc3RhdGljIHZvaWQgdmdlbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqYmFzZSkK K3N0YXRpYyB2b2lkIHZnZW1fZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpiYXNlKQog ewogCXN0cnVjdCB2Z2VtX2ZlbmNlICpmZW5jZSA9IGNvbnRhaW5lcl9vZihiYXNlLCB0eXBlb2Yo KmZlbmNlKSwgYmFzZSk7CiAKIAlkZWxfdGltZXJfc3luYygmZmVuY2UtPnRpbWVyKTsKLQlmZW5j ZV9mcmVlKCZmZW5jZS0+YmFzZSk7CisJZG1hX2ZlbmNlX2ZyZWUoJmZlbmNlLT5iYXNlKTsKIH0K IAotc3RhdGljIHZvaWQgdmdlbV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwg Y2hhciAqc3RyLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHZnZW1fZmVuY2VfdmFsdWVfc3RyKHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKQogewogCXNucHJpbnRm KHN0ciwgc2l6ZSwgIiV1IiwgZmVuY2UtPnNlcW5vKTsKIH0KIAotc3RhdGljIHZvaWQgdmdlbV9m ZW5jZV90aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3RyLAor c3RhdGljIHZvaWQgdmdlbV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UsIGNoYXIgKnN0ciwKIAkJCQkJICBpbnQgc2l6ZSkKIHsKLQlzbnByaW50ZihzdHIs IHNpemUsICIldSIsIGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSA/IGZlbmNlLT5zZXFubyA6IDAp OworCXNucHJpbnRmKHN0ciwgc2l6ZSwgIiV1IiwKKwkJIGRtYV9mZW5jZV9pc19zaWduYWxlZChm ZW5jZSkgPyBmZW5jZS0+c2Vxbm8gOiAwKTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5j ZV9vcHMgdmdlbV9mZW5jZV9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9v cHMgdmdlbV9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IHZnZW1fZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IHZnZW1fZmVuY2VfZ2V0X3RpbWVs aW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSB2Z2VtX2ZlbmNlX2VuYWJsZV9zaWduYWxp bmcsCiAJLnNpZ25hbGVkID0gdmdlbV9mZW5jZV9zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2Rl ZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2Ug PSB2Z2VtX2ZlbmNlX3JlbGVhc2UsCiAKIAkuZmVuY2VfdmFsdWVfc3RyID0gdmdlbV9mZW5jZV92 YWx1ZV9zdHIsCkBAIC04OCwxMSArODksMTEgQEAgc3RhdGljIHZvaWQgdmdlbV9mZW5jZV90aW1l b3V0KHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKIAlzdHJ1Y3QgdmdlbV9mZW5jZSAqZmVuY2UgPSAo c3RydWN0IHZnZW1fZmVuY2UgKilkYXRhOwogCi0JZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7 CisJZG1hX2ZlbmNlX3NpZ25hbCgmZmVuY2UtPmJhc2UpOwogfQogCi1zdGF0aWMgc3RydWN0IGZl bmNlICp2Z2VtX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSwKLQkJCQkgICAg ICAgdW5zaWduZWQgaW50IGZsYWdzKQorc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKnZnZW1fZmVu Y2VfY3JlYXRlKHN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlLAorCQkJCQkgICB1bnNpZ25lZCBpbnQg ZmxhZ3MpCiB7CiAJc3RydWN0IHZnZW1fZmVuY2UgKmZlbmNlOwogCkBAIC0xMDEsOCArMTAyLDgg QEAgc3RhdGljIHN0cnVjdCBmZW5jZSAqdmdlbV9mZW5jZV9jcmVhdGUoc3RydWN0IHZnZW1fZmls ZSAqdmZpbGUsCiAJCXJldHVybiBOVUxMOwogCiAJc3Bpbl9sb2NrX2luaXQoJmZlbmNlLT5sb2Nr KTsKLQlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJnZnZW1fZmVuY2Vfb3BzLCAmZmVuY2UtPmxv Y2ssCi0JCSAgIGZlbmNlX2NvbnRleHRfYWxsb2MoMSksIDEpOworCWRtYV9mZW5jZV9pbml0KCZm ZW5jZS0+YmFzZSwgJnZnZW1fZmVuY2Vfb3BzLCAmZmVuY2UtPmxvY2ssCisJCSAgICAgICBkbWFf ZmVuY2VfY29udGV4dF9hbGxvYygxKSwgMSk7CiAKIAlzZXR1cF90aW1lcigmZmVuY2UtPnRpbWVy LCB2Z2VtX2ZlbmNlX3RpbWVvdXQsICh1bnNpZ25lZCBsb25nKWZlbmNlKTsKIApAQCAtMTU3LDcg KzE1OCw3IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCXN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlID0gZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i ajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWlu dCByZXQ7CiAKIAlpZiAoYXJnLT5mbGFncyAmIH5WR0VNX0ZFTkNFX1dSSVRFKQpAQCAtMjA5LDgg KzIxMCw4IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCX0KIGVycl9mZW5jZToKIAlpZiAocmV0KSB7Ci0JCWZlbmNlX3NpZ25hbChmZW5jZSk7 Ci0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoZmVuY2UpOworCQlkbWFf ZmVuY2VfcHV0KGZlbmNlKTsKIAl9CiBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Vf dW5sb2NrZWQob2JqKTsKQEAgLTIzOSw3ICsyNDAsNyBAQCBpbnQgdmdlbV9mZW5jZV9zaWduYWxf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3QgdmdlbV9maWxlICp2Zmls ZSA9IGZpbGUtPmRyaXZlcl9wcml2OwogCXN0cnVjdCBkcm1fdmdlbV9mZW5jZV9zaWduYWwgKmFy ZyA9IGRhdGE7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKIAlpbnQgcmV0ID0gMDsKIAogCWlmIChhcmctPmZsYWdzKQpAQCAtMjUzLDExICsyNTQsMTEg QEAgaW50IHZnZW1fZmVuY2Vfc2lnbmFsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ aWYgKElTX0VSUihmZW5jZSkpCiAJCXJldHVybiBQVFJfRVJSKGZlbmNlKTsKIAotCWlmIChmZW5j ZV9pc19zaWduYWxlZChmZW5jZSkpCisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkp CiAJCXJldCA9IC1FVElNRURPVVQ7CiAKLQlmZW5jZV9zaWduYWwoZmVuY2UpOwotCWZlbmNlX3B1 dChmZW5jZSk7CisJZG1hX2ZlbmNlX3NpZ25hbChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChmZW5j ZSk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjcxLDggKzI3Miw4IEBAIGludCB2Z2VtX2ZlbmNl X29wZW4oc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUpCiAKIHN0YXRpYyBpbnQgX192Z2VtX2ZlbmNl X2lkcl9maW5pKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSkKIHsKLQlmZW5jZV9zaWduYWwo cCk7Ci0JZmVuY2VfcHV0KHApOworCWRtYV9mZW5jZV9zaWduYWwocCk7CisJZG1hX2ZlbmNlX3B1 dChwKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oCmlu ZGV4IGFlNTkwODBkNjNkMS4uZWMxZWJkY2ZlODBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0 Z3B1X2Rydi5oCkBAIC04Miw3ICs4Miw3IEBAIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlX2RyaXZl ciB7CiB9OwogCiBzdHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSB7Ci0Jc3RydWN0IGZlbmNlIGY7CisJ c3RydWN0IGRtYV9mZW5jZSBmOwogCXN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlX2RyaXZlciAqZHJ2 OwogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKIAl1aW50NjRfdCBzZXE7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92 aXJ0aW8vdmlydGdwdV9mZW5jZS5jCmluZGV4IGYzZjcwZmE4YTRjNy4uMjMzNTM1MjFmOTAzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYwpAQCAtMjYsMjIgKzI2LDIyIEBA CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJ2aXJ0Z3B1X2Rydi5oIgogCi1zdGF0 aWMgY29uc3QgY2hhciAqdmlydGlvX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitz dGF0aWMgY29uc3QgY2hhciAqdmlydGlvX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmKQogewogCXJldHVybiAidmlydGlvX2dwdSI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp2 aXJ0aW9fZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IGNo YXIgKnZpcnRpb19nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXJl dHVybiAiY29udHJvbHEiOwogfQogCi1zdGF0aWMgYm9vbCB2aXJ0aW9fZW5hYmxlX3NpZ25hbGlu ZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCB2aXJ0aW9fZW5hYmxlX3NpZ25hbGluZyhz dHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCB2 aXJ0aW9fc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgdmlydGlvX3NpZ25h bGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHZpcnRpb19ncHVfZmVuY2UgKmZl bmNlID0gdG9fdmlydGlvX2ZlbmNlKGYpOwogCkBAIC01MCwyNiArNTAsMjYgQEAgc3RhdGljIGJv b2wgdmlydGlvX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKIAlyZXR1cm4gZmFsc2U7CiB9CiAK LXN0YXRpYyB2b2lkIHZpcnRpb19mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmLCBjaGFy ICpzdHIsIGludCBzaXplKQorc3RhdGljIHZvaWQgdmlydGlvX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1 Y3QgZG1hX2ZlbmNlICpmLCBjaGFyICpzdHIsIGludCBzaXplKQogewogCXN0cnVjdCB2aXJ0aW9f Z3B1X2ZlbmNlICpmZW5jZSA9IHRvX3ZpcnRpb19mZW5jZShmKTsKIAogCXNucHJpbnRmKHN0ciwg c2l6ZSwgIiVsbHUiLCBmZW5jZS0+c2VxKTsKIH0KIAotc3RhdGljIHZvaWQgdmlydGlvX3RpbWVs aW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmYsIGNoYXIgKnN0ciwgaW50IHNpemUpCitzdGF0 aWMgdm9pZCB2aXJ0aW9fdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBkbWFfZmVuY2UgKmYsIGNo YXIgKnN0ciwgaW50IHNpemUpCiB7CiAJc3RydWN0IHZpcnRpb19ncHVfZmVuY2UgKmZlbmNlID0g dG9fdmlydGlvX2ZlbmNlKGYpOwogCiAJc25wcmludGYoc3RyLCBzaXplLCAiJWxsdSIsICh1NjQp YXRvbWljNjRfcmVhZCgmZmVuY2UtPmRydi0+bGFzdF9zZXEpKTsKIH0KIAotc3RhdGljIGNvbnN0 IHN0cnVjdCBmZW5jZV9vcHMgdmlydGlvX2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZG1hX2ZlbmNlX29wcyB2aXJ0aW9fZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUg ICAgID0gdmlydGlvX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgICA9IHZp cnRpb19nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyAgICA9IHZpcnRpb19l bmFibGVfc2lnbmFsaW5nLAogCS5zaWduYWxlZCAgICAgICAgICAgID0gdmlydGlvX3NpZ25hbGVk LAotCS53YWl0ICAgICAgICAgICAgICAgID0gZmVuY2VfZGVmYXVsdF93YWl0LAorCS53YWl0ICAg ICAgICAgICAgICAgID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkuZmVuY2VfdmFsdWVfc3Ry ICAgICA9IHZpcnRpb19mZW5jZV92YWx1ZV9zdHIsCiAJLnRpbWVsaW5lX3ZhbHVlX3N0ciAgPSB2 aXJ0aW9fdGltZWxpbmVfdmFsdWVfc3RyLAogfTsKQEAgLTg4LDkgKzg4LDkgQEAgaW50IHZpcnRp b19ncHVfZmVuY2VfZW1pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogCXNwaW5f bG9ja19pcnFzYXZlKCZkcnYtPmxvY2ssIGlycV9mbGFncyk7CiAJKCpmZW5jZSktPmRydiA9IGRy djsKIAkoKmZlbmNlKS0+c2VxID0gKytkcnYtPnN5bmNfc2VxOwotCWZlbmNlX2luaXQoJigqZmVu Y2UpLT5mLCAmdmlydGlvX2ZlbmNlX29wcywgJmRydi0+bG9jaywKLQkJICAgZHJ2LT5jb250ZXh0 LCAoKmZlbmNlKS0+c2VxKTsKLQlmZW5jZV9nZXQoJigqZmVuY2UpLT5mKTsKKwlkbWFfZmVuY2Vf aW5pdCgmKCpmZW5jZSktPmYsICZ2aXJ0aW9fZmVuY2Vfb3BzLCAmZHJ2LT5sb2NrLAorCQkgICAg ICAgZHJ2LT5jb250ZXh0LCAoKmZlbmNlKS0+c2VxKTsKKwlkbWFfZmVuY2VfZ2V0KCYoKmZlbmNl KS0+Zik7CiAJbGlzdF9hZGRfdGFpbCgmKCpmZW5jZSktPm5vZGUsICZkcnYtPmZlbmNlcyk7CiAJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHJ2LT5sb2NrLCBpcnFfZmxhZ3MpOwogCkBAIC0xMTEs OSArMTExLDkgQEAgdm9pZCB2aXJ0aW9fZ3B1X2ZlbmNlX2V2ZW50X3Byb2Nlc3Moc3RydWN0IHZp cnRpb19ncHVfZGV2aWNlICp2Z2RldiwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmVuY2Us IHRtcCwgJmRydi0+ZmVuY2VzLCBub2RlKSB7CiAJCWlmIChsYXN0X3NlcSA8IGZlbmNlLT5zZXEp CiAJCQljb250aW51ZTsKLQkJZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmYpOworCQlkbWFf ZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmYpOwogCQlsaXN0X2RlbCgmZmVuY2UtPm5vZGUp OwotCQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmYpOwog CX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcnYtPmxvY2ssIGlycV9mbGFncyk7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYyBiL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCmluZGV4IDgxODQ3OGI0YzRmMC4uNjFm M2E5NjNhZjk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9j dGwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYwpAQCAtMTcy LDcgKzE3Miw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9leGVjYnVmZmVyX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJLyogZmVuY2UgdGhlIGNvbW1hbmQgYm8g Ki8KIAl2aXJ0aW9fZ3B1X3VucmVmX2xpc3QoJnZhbGlkYXRlX2xpc3QpOwogCWRybV9mcmVlX2xh cmdlKGJ1Zmxpc3QpOwotCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCWRtYV9mZW5jZV9wdXQoJmZl bmNlLT5mKTsKIAlyZXR1cm4gMDsKIAogb3V0X3VucmVzdjoKQEAgLTI5OCw3ICsyOTgsNyBAQCBz dGF0aWMgaW50IHZpcnRpb19ncHVfcmVzb3VyY2VfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWRybV9nZW1fb2JqZWN0X3JlbGVhc2Uob2JqKTsKIAkJ aWYgKHZnZGV2LT5oYXNfdmlyZ2xfM2QpIHsKIAkJCXZpcnRpb19ncHVfdW5yZWZfbGlzdCgmdmFs aWRhdGVfbGlzdCk7Ci0JCQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJCWRtYV9mZW5jZV9wdXQo JmZlbmNlLT5mKTsKIAkJfQogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTMwOSwxMyArMzA5LDEzIEBA IHN0YXRpYyBpbnQgdmlydGlvX2dwdV9yZXNvdXJjZV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAogCWlmICh2Z2Rldi0+aGFzX3ZpcmdsXzNkKSB7CiAJ CXZpcnRpb19ncHVfdW5yZWZfbGlzdCgmdmFsaWRhdGVfbGlzdCk7Ci0JCWZlbmNlX3B1dCgmZmVu Y2UtPmYpOworCQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiAJfQogCXJldHVybiAwOwogZmFp bF91bnJlZjoKIAlpZiAodmdkZXYtPmhhc192aXJnbF8zZCkgewogCQl2aXJ0aW9fZ3B1X3VucmVm X2xpc3QoJnZhbGlkYXRlX2xpc3QpOwotCQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJZG1hX2Zl bmNlX3B1dCgmZmVuY2UtPmYpOwogCX0KIC8vZmFpbF9vYmo6CiAvLwlkcm1fZ2VtX29iamVjdF9o YW5kbGVfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKQEAgLTM4Myw3ICszODMsNyBAQCBzdGF0 aWMgaW50IHZpcnRpb19ncHVfdHJhbnNmZXJfZnJvbV9ob3N0X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHFvYmotPnRiby5y ZXN2LAogCQkJCQkgICZmZW5jZS0+Zik7CiAKLQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwlkbWFf ZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiBvdXRfdW5yZXM6CiAJdmlydGlvX2dwdV9vYmplY3RfdW5y ZXNlcnZlKHFvYmopOwogb3V0OgpAQCAtNDMxLDcgKzQzMSw3IEBAIHN0YXRpYyBpbnQgdmlydGlv X2dwdV90cmFuc2Zlcl90b19ob3N0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJCQkgYXJncy0+bGV2ZWwsICZib3gsICZmZW5jZSk7CiAJCXJlc2VydmF0aW9uX29i amVjdF9hZGRfZXhjbF9mZW5jZShxb2JqLT50Ym8ucmVzdiwKIAkJCQkJCSAgJmZlbmNlLT5mKTsK LQkJZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAl9 CiAKIG91dF91bnJlczoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdw dV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9rbXMuYwppbmRleCAwMzZi MGZiYWUwZmIuLjEyMzU1MTk4NTNmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9rbXMu YwpAQCAtMTU5LDcgKzE1OSw3IEBAIGludCB2aXJ0aW9fZ3B1X2RyaXZlcl9sb2FkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJdmlydGlvX2dwdV9pbml0X3Zx KCZ2Z2Rldi0+Y3RybHEsIHZpcnRpb19ncHVfZGVxdWV1ZV9jdHJsX2Z1bmMpOwogCXZpcnRpb19n cHVfaW5pdF92cSgmdmdkZXYtPmN1cnNvcnEsIHZpcnRpb19ncHVfZGVxdWV1ZV9jdXJzb3JfZnVu Yyk7CiAKLQl2Z2Rldi0+ZmVuY2VfZHJ2LmNvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEp OworCXZnZGV2LT5mZW5jZV9kcnYuY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEp OwogCXNwaW5fbG9ja19pbml0KCZ2Z2Rldi0+ZmVuY2VfZHJ2LmxvY2spOwogCUlOSVRfTElTVF9I RUFEKCZ2Z2Rldi0+ZmVuY2VfZHJ2LmZlbmNlcyk7CiAJSU5JVF9MSVNUX0hFQUQoJnZnZGV2LT5j YXBfY2FjaGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3Bs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUuYwppbmRleCBiYTI4 YzBmNmYyOGEuLmNiNzVmMDY2M2JhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3Bs YW5lLmMKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fZ3B1X2N1cnNvcl9w bGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWlmICghcmV0KSB7CiAJCQly ZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnRiby5yZXN2LAogCQkJCQkJCSAg JmZlbmNlLT5mKTsKLQkJCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQkJZG1hX2ZlbmNlX3B1dCgm ZmVuY2UtPmYpOwogCQkJZmVuY2UgPSBOVUxMOwogCQkJdmlydGlvX2dwdV9vYmplY3RfdW5yZXNl cnZlKGJvKTsKIAkJCXZpcnRpb19ncHVfb2JqZWN0X3dhaXQoYm8sIGZhbHNlKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCmluZGV4IDI2YWM4ZTgwYTQ3OC4uNjU0MWRkOGI4MmRj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKQEAgLTEwOCw3ICsxMDgsNyBA QCBmbWFuX2Zyb21fZmVuY2Uoc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogICogb2JqZWN0 cyB3aXRoIGFjdGlvbnMgYXR0YWNoZWQgdG8gdGhlbS4KICAqLwogCi1zdGF0aWMgdm9pZCB2bXdf ZmVuY2Vfb2JqX2Rlc3Ryb3koc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgdm13X2ZlbmNl X29ial9kZXN0cm95KHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHZtd19mZW5jZV9v YmogKmZlbmNlID0KIAkJY29udGFpbmVyX29mKGYsIHN0cnVjdCB2bXdfZmVuY2Vfb2JqLCBiYXNl KTsKQEAgLTEyMywxNyArMTIzLDE3IEBAIHN0YXRpYyB2b2lkIHZtd19mZW5jZV9vYmpfZGVzdHJv eShzdHJ1Y3QgZmVuY2UgKmYpCiAJZmVuY2UtPmRlc3Ryb3koZmVuY2UpOwogfQogCi1zdGF0aWMg Y29uc3QgY2hhciAqdm13X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitz dGF0aWMgY29uc3QgY2hhciAqdm13X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2Zl bmNlICpmKQogewogCXJldHVybiAidm13Z2Z4IjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnZt d19mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgY29uc3Qg Y2hhciAqdm13X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7 CiAJcmV0dXJuICJzdmdhIjsKIH0KIAotc3RhdGljIGJvb2wgdm13X2ZlbmNlX2VuYWJsZV9zaWdu YWxpbmcoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgdm13X2ZlbmNlX2VuYWJsZV9zaWdu YWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVu Y2UgPQogCQljb250YWluZXJfb2YoZiwgc3RydWN0IHZtd19mZW5jZV9vYmosIGJhc2UpOwpAQCAt MTUyLDEyICsxNTIsMTIgQEAgc3RhdGljIGJvb2wgdm13X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmco c3RydWN0IGZlbmNlICpmKQogfQogCiBzdHJ1Y3Qgdm13Z2Z4X3dhaXRfY2IgewotCXN0cnVjdCBm ZW5jZV9jYiBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRhc2s7CiB9OwogCiBzdGF0aWMgdm9pZAotdm13Z2Z4X3dhaXRfY2Ioc3RydWN0IGZl bmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKK3Ztd2dmeF93YWl0X2NiKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3Qgdm13 Z2Z4X3dhaXRfY2IgKndhaXQgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCB2bXdnZnhfd2Fp dF9jYiwgYmFzZSk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm13Z2Z4X3dhaXRfY2Ioc3RydWN0IGZl bmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKIAogc3RhdGljIHZvaWQgX192bXdfZmVu Y2VzX3VwZGF0ZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pOwogCi1zdGF0aWMgbG9u ZyB2bXdfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcg dGltZW91dCkKK3N0YXRpYyBsb25nIHZtd19mZW5jZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmYs IGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3Qgdm13X2ZlbmNlX29i aiAqZmVuY2UgPQogCQljb250YWluZXJfb2YoZiwgc3RydWN0IHZtd19mZW5jZV9vYmosIGJhc2Up OwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyBsb25nIHZtd19mZW5jZV93YWl0KHN0cnVjdCBm ZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCiAJd2hpbGUgKHJldCA+ IDApIHsKIAkJX192bXdfZmVuY2VzX3VwZGF0ZShmbWFuKTsKLQkJaWYgKHRlc3RfYml0KEZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmZi0+ZmxhZ3MpKQorCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmZi0+ZmxhZ3MpKQogCQkJYnJlYWs7CiAKIAkJaWYgKGludHIp CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGZl bmNlICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJcmV0dXJuIHJldDsKIH0K IAotc3RhdGljIHN0cnVjdCBmZW5jZV9vcHMgdm13X2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBzdHJ1 Y3QgZG1hX2ZlbmNlX29wcyB2bXdfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSB2 bXdfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IHZtd19mZW5j ZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHZtd19mZW5jZV9lbmFi bGVfc2lnbmFsaW5nLApAQCAtMjk4LDcgKzI5OCw3IEBAIHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdl ciAqdm13X2ZlbmNlX21hbmFnZXJfaW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQog CWZtYW4tPmV2ZW50X2ZlbmNlX2FjdGlvbl9zaXplID0KIAkJdHRtX3JvdW5kX3BvdChzaXplb2Yo c3RydWN0IHZtd19ldmVudF9mZW5jZV9hY3Rpb24pKTsKIAltdXRleF9pbml0KCZmbWFuLT5nb2Fs X2lycV9tdXRleCk7Ci0JZm1hbi0+Y3R4ID0gZmVuY2VfY29udGV4dF9hbGxvYygxKTsKKwlmbWFu LT5jdHggPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygxKTsKIAogCXJldHVybiBmbWFuOwogfQpA QCAtMzI2LDggKzMyNiw4IEBAIHN0YXRpYyBpbnQgdm13X2ZlbmNlX29ial9pbml0KHN0cnVjdCB2 bXdfZmVuY2VfbWFuYWdlciAqZm1hbiwKIAl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKIAlpbnQg cmV0ID0gMDsKIAotCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmdm13X2ZlbmNlX29wcywgJmZt YW4tPmxvY2ssCi0JCSAgIGZtYW4tPmN0eCwgc2Vxbm8pOworCWRtYV9mZW5jZV9pbml0KCZmZW5j ZS0+YmFzZSwgJnZtd19mZW5jZV9vcHMsICZmbWFuLT5sb2NrLAorCQkgICAgICAgZm1hbi0+Y3R4 LCBzZXFubyk7CiAJSU5JVF9MSVNUX0hFQUQoJmZlbmNlLT5zZXFfcGFzc2VkX2FjdGlvbnMpOwog CWZlbmNlLT5kZXN0cm95ID0gZGVzdHJveTsKIApAQCAtNDMxLDcgKzQzMSw3IEBAIHN0YXRpYyBi b29sIHZtd19mZW5jZV9nb2FsX2NoZWNrX2xvY2tlZChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVu Y2UpCiAJdTMyIGdvYWxfc2Vxbm87CiAJdTMyICpmaWZvX21lbTsKIAotCWlmIChmZW5jZV9pc19z aWduYWxlZF9sb2NrZWQoJmZlbmNlLT5iYXNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVk X2xvY2tlZCgmZmVuY2UtPmJhc2UpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlmaWZvX21lbSA9IGZt YW4tPmRldl9wcml2LT5tbWlvX3ZpcnQ7CkBAIC00NTksNyArNDU5LDcgQEAgc3RhdGljIHZvaWQg X192bXdfZmVuY2VzX3VwZGF0ZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZlbmNlLCBuZXh0X2ZlbmNlLCAmZm1hbi0+ZmVuY2VfbGlz dCwgaGVhZCkgewogCQlpZiAoc2Vxbm8gLSBmZW5jZS0+YmFzZS5zZXFubyA8IFZNV19GRU5DRV9X UkFQKSB7CiAJCQlsaXN0X2RlbF9pbml0KCZmZW5jZS0+aGVhZCk7Ci0JCQlmZW5jZV9zaWduYWxf bG9ja2VkKCZmZW5jZS0+YmFzZSk7CisJCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2Ut PmJhc2UpOwogCQkJSU5JVF9MSVNUX0hFQUQoJmFjdGlvbl9saXN0KTsKIAkJCWxpc3Rfc3BsaWNl X2luaXQoJmZlbmNlLT5zZXFfcGFzc2VkX2FjdGlvbnMsCiAJCQkJCSAmYWN0aW9uX2xpc3QpOwpA QCAtNTAwLDE4ICs1MDAsMTggQEAgYm9vbCB2bXdfZmVuY2Vfb2JqX3NpZ25hbGVkKHN0cnVjdCB2 bXdfZmVuY2Vfb2JqICpmZW5jZSkKIHsKIAlzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4g PSBmbWFuX2Zyb21fZmVuY2UoZmVuY2UpOwogCi0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lH TkFMRURfQklULCAmZmVuY2UtPmJhc2UuZmxhZ3MpKQorCWlmICh0ZXN0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncykpCiAJCXJldHVybiAxOwogCiAJ dm13X2ZlbmNlc191cGRhdGUoZm1hbik7CiAKLQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoJmZl bmNlLT5iYXNlKTsKKwlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKCZmZW5jZS0+YmFzZSk7 CiB9CiAKIGludCB2bXdfZmVuY2Vfb2JqX3dhaXQoc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNl LCBib29sIGxhenksCiAJCSAgICAgICBib29sIGludGVycnVwdGlibGUsIHVuc2lnbmVkIGxvbmcg dGltZW91dCkKIHsKLQlsb25nIHJldCA9IGZlbmNlX3dhaXRfdGltZW91dCgmZmVuY2UtPmJhc2Us IGludGVycnVwdGlibGUsIHRpbWVvdXQpOworCWxvbmcgcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGlt ZW91dCgmZmVuY2UtPmJhc2UsIGludGVycnVwdGlibGUsIHRpbWVvdXQpOwogCiAJaWYgKGxpa2Vs eShyZXQgPiAwKSkKIAkJcmV0dXJuIDA7CkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCB2bXdfZmVu Y2Vfb2JqX2ZsdXNoKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZSkKIAogc3RhdGljIHZvaWQg dm13X2ZlbmNlX2Rlc3Ryb3koc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogewotCWZlbmNl X2ZyZWUoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOwogfQog CiBpbnQgdm13X2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4sCkBA IC02NjksNyArNjY5LDcgQEAgdm9pZCB2bXdfZmVuY2VfZmlmb19kb3duKHN0cnVjdCB2bXdfZmVu Y2VfbWFuYWdlciAqZm1hbikKIAkJc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlID0KIAkJCWxp c3RfZW50cnkoZm1hbi0+ZmVuY2VfbGlzdC5wcmV2LCBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiwKIAkJ CQkgICBoZWFkKTsKLQkJZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9nZXQo JmZlbmNlLT5iYXNlKTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZmbWFuLT5sb2NrKTsKIAogCQlyZXQg PSB2bXdfZmVuY2Vfb2JqX3dhaXQoZmVuY2UsIGZhbHNlLCBmYWxzZSwKQEAgLTY3Nyw3ICs2Nzcs NyBAQCB2b2lkIHZtd19mZW5jZV9maWZvX2Rvd24oc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpm bWFuKQogCiAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJCWxpc3RfZGVsX2luaXQoJmZl bmNlLT5oZWFkKTsKLQkJCWZlbmNlX3NpZ25hbCgmZmVuY2UtPmJhc2UpOworCQkJZG1hX2ZlbmNl X3NpZ25hbCgmZmVuY2UtPmJhc2UpOwogCQkJSU5JVF9MSVNUX0hFQUQoJmFjdGlvbl9saXN0KTsK IAkJCWxpc3Rfc3BsaWNlX2luaXQoJmZlbmNlLT5zZXFfcGFzc2VkX2FjdGlvbnMsCiAJCQkJCSAm YWN0aW9uX2xpc3QpOwpAQCAtNjg1LDcgKzY4NSw3IEBAIHZvaWQgdm13X2ZlbmNlX2ZpZm9fZG93 bihzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCiAJCX0KIAogCQlCVUdfT04oIWxpc3Rf ZW1wdHkoJmZlbmNlLT5oZWFkKSk7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOworCQlkbWFf ZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJCXNwaW5fbG9ja19pcnEoJmZtYW4tPmxvY2spOwog CX0KIAlzcGluX3VubG9ja19pcnEoJmZtYW4tPmxvY2spOwpAQCAtODg0LDcgKzg4NCw3IEBAIHN0 YXRpYyB2b2lkIHZtd19mZW5jZV9vYmpfYWRkX2FjdGlvbihzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAq ZmVuY2UsCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZtYW4tPmxvY2ssIGlycV9mbGFncyk7CiAKIAlm bWFuLT5wZW5kaW5nX2FjdGlvbnNbYWN0aW9uLT50eXBlXSsrOwotCWlmIChmZW5jZV9pc19zaWdu YWxlZF9sb2NrZWQoJmZlbmNlLT5iYXNlKSkgeworCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWRf bG9ja2VkKCZmZW5jZS0+YmFzZSkpIHsKIAkJc3RydWN0IGxpc3RfaGVhZCBhY3Rpb25fbGlzdDsK IAogCQlJTklUX0xJU1RfSEVBRCgmYWN0aW9uX2xpc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ZlbmNlLmgKaW5kZXggODNhZTMwMWVlMTQxLi5kOWQ4NWFhNmVkMjAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWZuZGVmIF9W TVdHRlhfRkVOQ0VfSF8KIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGlu dXgvZG1hLWZlbmNlLmg+CiAKICNkZWZpbmUgVk1XX0ZFTkNFX1dBSVRfVElNRU9VVCAoNSpIWikK IApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3Qgdm13X2ZlbmNlX2FjdGlvbiB7CiB9OwogCiBzdHJ1 Y3Qgdm13X2ZlbmNlX29iaiB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5j ZSBiYXNlOwogCiAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwogCXN0cnVjdCBsaXN0X2hlYWQgc2Vx X3Bhc3NlZF9hY3Rpb25zOwpAQCAtNzEsMTQgKzcxLDE0IEBAIHZtd19mZW5jZV9vYmpfdW5yZWZl cmVuY2Uoc3RydWN0IHZtd19mZW5jZV9vYmogKipmZW5jZV9wKQogCiAJKmZlbmNlX3AgPSBOVUxM OwogCWlmIChmZW5jZSkKLQkJZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9w dXQoJmZlbmNlLT5iYXNlKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qgdm13X2ZlbmNlX29i aiAqCiB2bXdfZmVuY2Vfb2JqX3JlZmVyZW5jZShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2Up CiB7CiAJaWYgKGZlbmNlKQotCQlmZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNl X2dldCgmZmVuY2UtPmJhc2UpOwogCXJldHVybiBmZW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKaW5kZXggMWE4NWZiMmQ0ZGM2Li44ZTg2ZDZkNDE0MWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwpAQCAtMTQ1NCw3ICsx NDU0LDcgQEAgdm9pZCB2bXdfZmVuY2Vfc2luZ2xlX2JvKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCiAJaWYgKGZlbmNlID09IE5VTEwpIHsKIAkJdm13X2V4ZWNidWZfZmVuY2VfY29tbWFu ZHMoTlVMTCwgZGV2X3ByaXYsICZmZW5jZSwgTlVMTCk7CiAJCXJlc2VydmF0aW9uX29iamVjdF9h ZGRfZXhjbF9mZW5jZShiby0+cmVzdiwgJmZlbmNlLT5iYXNlKTsKLQkJZmVuY2VfcHV0KCZmZW5j ZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAl9IGVsc2UKIAkJcmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCAmZmVuY2UtPmJhc2UpOwog fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCmlu ZGV4IDY3MjY0NDAzMWJkNS4uZTMzNmUzOTAxODc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9k cm1QLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCkBAIC01Nyw3ICs1Nyw3IEBACiAjaW5jbHVk ZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8 bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxs aW51eC9kbWEtZmVuY2UuaD4KIAogI2luY2x1ZGUgPGFzbS9tbWFuLmg+CiAjaW5jbHVkZSA8YXNt L3BnYWxsb2MuaD4KQEAgLTM2Miw3ICszNjIsNyBAQCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2Mgewog c3RydWN0IGRybV9wZW5kaW5nX2V2ZW50IHsKIAlzdHJ1Y3QgY29tcGxldGlvbiAqY29tcGxldGlv bjsKIAlzdHJ1Y3QgZHJtX2V2ZW50ICpldmVudDsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIHBlbmRpbmdfbGluazsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o CmluZGV4IGJjODYwY2ZjNjdjYS4uZmExYWEyMTRjOGVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Ry bS9kcm1fY3J0Yy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKQEAgLTU0LDcgKzU0LDcg QEAgc3RydWN0IGRybV9tb2RlX3NldDsKIHN0cnVjdCBkcm1fZmlsZTsKIHN0cnVjdCBkcm1fY2xp cF9yZWN0Owogc3RydWN0IGRldmljZV9ub2RlOwotc3RydWN0IGZlbmNlOworc3RydWN0IGRtYV9m ZW5jZTsKIHN0cnVjdCBlZGlkOwogCiBzdGF0aWMgaW5saW5lIGludDY0X3QgVTY0Mkk2NCh1aW50 NjRfdCB2YWwpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaCBiL2luY2x1ZGUv ZHJtL2RybV9wbGFuZS5oCmluZGV4IDk4YjM5ZDY2ZWIzMi4uYzVlOGEwZGYxNjIzIDEwMDY0NAot LS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUu aApAQCAtNTksNyArNTksNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKIAogCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsgICAvKiBkbyBub3Qgd3JpdGUgZGlyZWN0bHksIHVzZSBkcm1fYXRvbWlj X3NldF9jcnRjX2Zvcl9wbGFuZSgpICovCiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7ICAv KiBkbyBub3Qgd3JpdGUgZGlyZWN0bHksIHVzZSBkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUo KSAqLwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAK IAkvKiBTaWduZWQgZGVzdCBsb2NhdGlvbiBhbGxvd3MgaXQgdG8gYmUgcGFydGlhbGx5IG9mZiBz Y3JlZW4gKi8KIAlpbnQzMl90IGNydGNfeCwgY3J0Y195OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXgg OWViOTQwZDY3NTVmLi41YmVhZTc5NjliZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaApAQCAtMjA5LDcg KzIwOSw3IEBAIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCB7CiAJICogTWVtYmVycyBwcm90ZWN0 ZWQgYnkgYSBibyByZXNlcnZhdGlvbi4KIAkgKi8KIAotCXN0cnVjdCBmZW5jZSAqbW92aW5nOwor CXN0cnVjdCBkbWFfZmVuY2UgKm1vdmluZzsKIAogCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2Rl IHZtYV9ub2RlOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5o IGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAppbmRleCA0ZjBhOTIxODU5OTUuLjI3 ZTljMjZjOTE1MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAor KysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCkBAIC0zMDMsNyArMzAzLDcgQEAg c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKIAkvKgogCSAqIFByb3RlY3RlZCBieSBAbW92 ZV9sb2NrLgogCSAqLwotCXN0cnVjdCBmZW5jZSAqbW92ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpt b3ZlOwogfTsKIAogLyoqCkBAIC0xMDI1LDcgKzEwMjUsNyBAQCBleHRlcm4gdm9pZCB0dG1fYm9f ZnJlZV9vbGRfbm9kZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKICAqLwogCiBleHRl cm4gaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKLQkJCQkgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCisJCQkJICAg ICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKIAkJCQkgICAgIHN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSk7CiAKIC8qKgpAQCAtMTA0MCw3ICsxMDQwLDcgQEAgZXh0ZXJu IGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAgKiBpbW1lZGlhdGVseSBvciBoYW5nIGl0IG9uIGEgdGVtcG9yYXJ5IGJ1ZmZlciBvYmpl Y3QuCiAgKi8KIGludCB0dG1fYm9fcGlwZWxpbmVfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAotCQkJIHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCisJCQkgc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCiAJCQkgc3RydWN0IHR0bV9tZW1fcmVnICpu ZXdfbWVtKTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZf dXRpbC5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaAppbmRleCBiNjIwYzMx N2M3NzIuLjQ3ZjM1YjhlNmQwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVj YnVmX3V0aWwuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oCkBAIC0x MTQsNiArMTE0LDYgQEAgZXh0ZXJuIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCB3 d19hY3F1aXJlX2N0eCAqdGlja2V0LAogCiBleHRlcm4gdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVy X29iamVjdHMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJCQkJCXN0cnVjdCBsaXN0 X2hlYWQgKmxpc3QsCi0JCQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UpOworCQkJCQlzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEt YnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAppbmRleCBlMGIwNzQxYWU2NzEuLjhkYWVi M2NlMDAxNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKKysrIGIvaW5jbHVk ZS9saW51eC9kbWEtYnVmLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0 Lmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5o PgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+ CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogCiBzdHJ1Y3QgZGV2aWNlOwpAQCAtMTQzLDcgKzE0 Myw3IEBAIHN0cnVjdCBkbWFfYnVmIHsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBwb2xsOwogCiAJc3Ry dWN0IGRtYV9idWZfcG9sbF9jYl90IHsKLQkJc3RydWN0IGZlbmNlX2NiIGNiOworCQlzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiIGNiOwogCQl3YWl0X3F1ZXVlX2hlYWRfdCAqcG9sbDsKIAogCQl1bnNpZ25l ZCBsb25nIGFjdGl2ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5 LmggYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS1hcnJheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNTkwMDk0NWY5NjJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5j bHVkZS9saW51eC9kbWEtZmVuY2UtYXJyYXkuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogZmVu Y2UtYXJyYXk6IGFnZ3JlZ2F0ZXMgZmVuY2UgdG8gYmUgd2FpdGVkIHRvZ2V0aGVyCisgKgorICog Q29weXJpZ2h0IChDKSAyMDE2IENvbGxhYm9yYSBMdGQKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBdXRob3JzOgorICoJR3VzdGF2byBQYWRv dmFuIDxndXN0YXZvQHBhZG92YW4ub3JnPgorICoJQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFu LmtvZW5pZ0BhbWQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNo ZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dCBXSVRIT1VUCisgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUg ZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9fTElOVVhfRE1BX0ZFTkNFX0FSUkFZX0gKKyNkZWZp bmUgX19MSU5VWF9ETUFfRkVOQ0VfQVJSQVlfSAorCisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNl Lmg+CisKKy8qKgorICogc3RydWN0IGRtYV9mZW5jZV9hcnJheV9jYiAtIGNhbGxiYWNrIGhlbHBl ciBmb3IgZmVuY2UgYXJyYXkKKyAqIEBjYjogZmVuY2UgY2FsbGJhY2sgc3RydWN0dXJlIGZvciBz aWduYWxpbmcKKyAqIEBhcnJheTogcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgZmVuY2UgYXJyYXkg b2JqZWN0CisgKi8KK3N0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgeworCXN0cnVjdCBkbWFfZmVu Y2VfY2IgY2I7CisJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXk7Cit9OworCisvKioKKyAq IHN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgLSBmZW5jZSB0byByZXByZXNlbnQgYW4gYXJyYXkgb2Yg ZmVuY2VzCisgKiBAYmFzZTogZmVuY2UgYmFzZSBjbGFzcworICogQGxvY2s6IHNwaW5sb2NrIGZv ciBmZW5jZSBoYW5kbGluZworICogQG51bV9mZW5jZXM6IG51bWJlciBvZiBmZW5jZXMgaW4gdGhl IGFycmF5CisgKiBAbnVtX3BlbmRpbmc6IGZlbmNlcyBpbiB0aGUgYXJyYXkgc3RpbGwgcGVuZGlu ZworICogQGZlbmNlczogYXJyYXkgb2YgdGhlIGZlbmNlcworICovCitzdHJ1Y3QgZG1hX2ZlbmNl X2FycmF5IHsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CisKKwlzcGlubG9ja190IGxvY2s7CisJ dW5zaWduZWQgbnVtX2ZlbmNlczsKKwlhdG9taWNfdCBudW1fcGVuZGluZzsKKwlzdHJ1Y3QgZG1h X2ZlbmNlICoqZmVuY2VzOworfTsKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IGRtYV9mZW5jZV9hcnJheV9vcHM7CisKKy8qKgorICogZG1hX2ZlbmNlX2lzX2FycmF5IC0gY2hl Y2sgaWYgYSBmZW5jZSBpcyBmcm9tIHRoZSBhcnJheSBzdWJzY2xhc3MKKyAqIEBmZW5jZTogZmVu Y2UgdG8gdGVzdAorICoKKyAqIFJldHVybiB0cnVlIGlmIGl0IGlzIGEgZG1hX2ZlbmNlX2FycmF5 IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBkbWFfZmVuY2Vf aXNfYXJyYXkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7CisJcmV0dXJuIGZlbmNlLT5vcHMg PT0gJmRtYV9mZW5jZV9hcnJheV9vcHM7Cit9CisKKy8qKgorICogdG9fZG1hX2ZlbmNlX2FycmF5 IC0gY2FzdCBhIGZlbmNlIHRvIGEgZG1hX2ZlbmNlX2FycmF5CisgKiBAZmVuY2U6IGZlbmNlIHRv IGNhc3QgdG8gYSBkbWFfZmVuY2VfYXJyYXkKKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGZl bmNlIGlzIG5vdCBhIGRtYV9mZW5jZV9hcnJheSwKKyAqIG9yIHRoZSBkbWFfZmVuY2VfYXJyYXkg b3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKgor dG9fZG1hX2ZlbmNlX2FycmF5KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQoreworCWlmIChmZW5j ZS0+b3BzICE9ICZkbWFfZmVuY2VfYXJyYXlfb3BzKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVy biBjb250YWluZXJfb2YoZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfYXJyYXksIGJhc2UpOworfQor CitzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICpkbWFfZmVuY2VfYXJyYXlfY3JlYXRlKGludCBudW1f ZmVuY2VzLAorCQkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcywKKwkJCQkJICAg ICAgIHU2NCBjb250ZXh0LCB1bnNpZ25lZCBzZXFubywKKwkJCQkJICAgICAgIGJvb2wgc2lnbmFs X29uX2FueSk7CisKKyNlbmRpZiAvKiBfX0xJTlVYX0RNQV9GRU5DRV9BUlJBWV9IICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5o CnNpbWlsYXJpdHkgaW5kZXggNTklCnJlbmFtZSBmcm9tIGluY2x1ZGUvbGludXgvZmVuY2UuaApy ZW5hbWUgdG8gaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaAppbmRleCBjOWM1YmE5OGMzMDIuLmJh NjBjMDQzYTVkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mZW5jZS5oCisrKyBiL2luY2x1 ZGUvbGludXgvZG1hLWZlbmNlLmgKQEAgLTE4LDggKzE4LDggQEAKICAqIG1vcmUgZGV0YWlscy4K ICAqLwogCi0jaWZuZGVmIF9fTElOVVhfRkVOQ0VfSAotI2RlZmluZSBfX0xJTlVYX0ZFTkNFX0gK KyNpZm5kZWYgX19MSU5VWF9ETUFfRkVOQ0VfSAorI2RlZmluZSBfX0xJTlVYX0RNQV9GRU5DRV9I CiAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CkBAIC0z MCw0OCArMzAsNDggQEAKICNpbmNsdWRlIDxsaW51eC9wcmludGsuaD4KICNpbmNsdWRlIDxsaW51 eC9yY3VwZGF0ZS5oPgogCi1zdHJ1Y3QgZmVuY2U7Ci1zdHJ1Y3QgZmVuY2Vfb3BzOwotc3RydWN0 IGZlbmNlX2NiOworc3RydWN0IGRtYV9mZW5jZTsKK3N0cnVjdCBkbWFfZmVuY2Vfb3BzOworc3Ry dWN0IGRtYV9mZW5jZV9jYjsKIAogLyoqCi0gKiBzdHJ1Y3QgZmVuY2UgLSBzb2Z0d2FyZSBzeW5j aHJvbml6YXRpb24gcHJpbWl0aXZlCisgKiBzdHJ1Y3QgZG1hX2ZlbmNlIC0gc29mdHdhcmUgc3lu Y2hyb25pemF0aW9uIHByaW1pdGl2ZQogICogQHJlZmNvdW50OiByZWZjb3VudCBmb3IgdGhpcyBm ZW5jZQotICogQG9wczogZmVuY2Vfb3BzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZlbmNlCisgKiBA b3BzOiBkbWFfZmVuY2Vfb3BzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZlbmNlCiAgKiBAcmN1OiB1 c2VkIGZvciByZWxlYXNpbmcgZmVuY2Ugd2l0aCBrZnJlZV9yY3UKICAqIEBjYl9saXN0OiBsaXN0 IG9mIGFsbCBjYWxsYmFja3MgdG8gY2FsbAogICogQGxvY2s6IHNwaW5fbG9ja19pcnFzYXZlIHVz ZWQgZm9yIGxvY2tpbmcKICAqIEBjb250ZXh0OiBleGVjdXRpb24gY29udGV4dCB0aGlzIGZlbmNl IGJlbG9uZ3MgdG8sIHJldHVybmVkIGJ5Ci0gKiAgICAgICAgICAgZmVuY2VfY29udGV4dF9hbGxv YygpCisgKiAgICAgICAgICAgZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoKQogICogQHNlcW5vOiB0 aGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoaXMgZmVuY2UgaW5zaWRlIHRoZSBleGVjdXRpb24gY29u dGV4dCwKICAqIGNhbiBiZSBjb21wYXJlZCB0byBkZWNpZGUgd2hpY2ggZmVuY2Ugd291bGQgYmUg c2lnbmFsZWQgbGF0ZXIuCi0gKiBAZmxhZ3M6IEEgbWFzayBvZiBGRU5DRV9GTEFHXyogZGVmaW5l ZCBiZWxvdworICogQGZsYWdzOiBBIG1hc2sgb2YgRE1BX0ZFTkNFX0ZMQUdfKiBkZWZpbmVkIGJl bG93CiAgKiBAdGltZXN0YW1wOiBUaW1lc3RhbXAgd2hlbiB0aGUgZmVuY2Ugd2FzIHNpZ25hbGVk LgogICogQHN0YXR1czogT3B0aW9uYWwsIG9ubHkgdmFsaWQgaWYgPCAwLCBtdXN0IGJlIHNldCBi ZWZvcmUgY2FsbGluZwotICogZmVuY2Vfc2lnbmFsLCBpbmRpY2F0ZXMgdGhhdCB0aGUgZmVuY2Ug aGFzIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yLgorICogZG1hX2ZlbmNlX3NpZ25hbCwgaW5kaWNh dGVzIHRoYXQgdGhlIGZlbmNlIGhhcyBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvci4KICAqCiAgKiB0 aGUgZmxhZ3MgbWVtYmVyIG11c3QgYmUgbWFuaXB1bGF0ZWQgYW5kIHJlYWQgdXNpbmcgdGhlIGFw cHJvcHJpYXRlCiAgKiBhdG9taWMgb3BzIChiaXRfKiksIHNvIHRha2luZyB0aGUgc3BpbmxvY2sg d2lsbCBub3QgYmUgbmVlZGVkIG1vc3QKICAqIG9mIHRoZSB0aW1lLgogICoKLSAqIEZFTkNFX0ZM QUdfU0lHTkFMRURfQklUIC0gZmVuY2UgaXMgYWxyZWFkeSBzaWduYWxlZAotICogRkVOQ0VfRkxB R19FTkFCTEVfU0lHTkFMX0JJVCAtIGVuYWJsZV9zaWduYWxpbmcgbWlnaHQgaGF2ZSBiZWVuIGNh bGxlZCoKLSAqIEZFTkNFX0ZMQUdfVVNFUl9CSVRTIC0gc3RhcnQgb2YgdGhlIHVudXNlZCBiaXRz LCBjYW4gYmUgdXNlZCBieSB0aGUKKyAqIERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCAtIGZl bmNlIGlzIGFscmVhZHkgc2lnbmFsZWQKKyAqIERNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxf QklUIC0gZW5hYmxlX3NpZ25hbGluZyBtaWdodCBoYXZlIGJlZW4gY2FsbGVkCisgKiBETUFfRkVO Q0VfRkxBR19VU0VSX0JJVFMgLSBzdGFydCBvZiB0aGUgdW51c2VkIGJpdHMsIGNhbiBiZSB1c2Vk IGJ5IHRoZQogICogaW1wbGVtZW50ZXIgb2YgdGhlIGZlbmNlIGZvciBpdHMgb3duIHB1cnBvc2Vz LiBDYW4gYmUgdXNlZCBpbiBkaWZmZXJlbnQKICAqIHdheXMgYnkgZGlmZmVyZW50IGZlbmNlIGlt cGxlbWVudGVycywgc28gZG8gbm90IHJlbHkgb24gdGhpcy4KICAqCiAgKiBTaW5jZSBhdG9taWMg Yml0b3BzIGFyZSB1c2VkLCB0aGlzIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIHRoZSBjYXNlLgot ICogUGFydGljdWxhcmx5LCBpZiB0aGUgYml0IHdhcyBzZXQsIGJ1dCBmZW5jZV9zaWduYWwgd2Fz IGNhbGxlZCByaWdodAorICogUGFydGljdWxhcmx5LCBpZiB0aGUgYml0IHdhcyBzZXQsIGJ1dCBk bWFfZmVuY2Vfc2lnbmFsIHdhcyBjYWxsZWQgcmlnaHQKICAqIGJlZm9yZSB0aGlzIGJpdCB3YXMg c2V0LCBpdCB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBzZXQgdGhlCi0gKiBGRU5DRV9GTEFHX1NJ R05BTEVEX0JJVCwgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgd2FzIGNhbGxlZC4KLSAqIEFkZGlu ZyBhIGNoZWNrIGZvciBGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBhZnRlciBzZXR0aW5nCi0gKiBG RU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklUIGNsb3NlcyB0aGlzIHJhY2UsIGFuZCBtYWtlcyBz dXJlIHRoYXQKLSAqIGFmdGVyIGZlbmNlX3NpZ25hbCB3YXMgY2FsbGVkLCBhbnkgZW5hYmxlX3Np Z25hbGluZyBjYWxsIHdpbGwgaGF2ZSBlaXRoZXIKKyAqIERNQV9GRU5DRV9GTEFHX1NJR05BTEVE X0JJVCwgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgd2FzIGNhbGxlZC4KKyAqIEFkZGluZyBhIGNo ZWNrIGZvciBETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgYWZ0ZXIgc2V0dGluZworICogRE1B X0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQgY2xvc2VzIHRoaXMgcmFjZSwgYW5kIG1ha2Vz IHN1cmUgdGhhdAorICogYWZ0ZXIgZG1hX2ZlbmNlX3NpZ25hbCB3YXMgY2FsbGVkLCBhbnkgZW5h YmxlX3NpZ25hbGluZyBjYWxsIHdpbGwgaGF2ZSBlaXRoZXIKICAqIGJlZW4gY29tcGxldGVkLCBv ciBuZXZlciBjYWxsZWQgYXQgYWxsLgogICovCi1zdHJ1Y3QgZmVuY2Ugeworc3RydWN0IGRtYV9m ZW5jZSB7CiAJc3RydWN0IGtyZWYgcmVmY291bnQ7Ci0JY29uc3Qgc3RydWN0IGZlbmNlX29wcyAq b3BzOworCWNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpvcHM7CiAJc3RydWN0IHJjdV9oZWFk IHJjdTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7CiAJc3BpbmxvY2tfdCAqbG9jazsKQEAg LTgyLDM0ICs4MiwzNSBAQCBzdHJ1Y3QgZmVuY2UgewogCWludCBzdGF0dXM7CiB9OwogCi1lbnVt IGZlbmNlX2ZsYWdfYml0cyB7Ci0JRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCi0JRkVOQ0VfRkxB R19FTkFCTEVfU0lHTkFMX0JJVCwKLQlGRU5DRV9GTEFHX1VTRVJfQklUUywgLyogbXVzdCBhbHdh eXMgYmUgbGFzdCBtZW1iZXIgKi8KK2VudW0gZG1hX2ZlbmNlX2ZsYWdfYml0cyB7CisJRE1BX0ZF TkNFX0ZMQUdfU0lHTkFMRURfQklULAorCURNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklU LAorCURNQV9GRU5DRV9GTEFHX1VTRVJfQklUUywgLyogbXVzdCBhbHdheXMgYmUgbGFzdCBtZW1i ZXIgKi8KIH07CiAKLXR5cGVkZWYgdm9pZCAoKmZlbmNlX2Z1bmNfdCkoc3RydWN0IGZlbmNlICpm ZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYik7Cit0eXBlZGVmIHZvaWQgKCpkbWFfZmVuY2VfZnVu Y190KShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJCQkgc3RydWN0IGRtYV9mZW5jZV9jYiAq Y2IpOwogCiAvKioKLSAqIHN0cnVjdCBmZW5jZV9jYiAtIGNhbGxiYWNrIGZvciBmZW5jZV9hZGRf Y2FsbGJhY2sKLSAqIEBub2RlOiB1c2VkIGJ5IGZlbmNlX2FkZF9jYWxsYmFjayB0byBhcHBlbmQg dGhpcyBzdHJ1Y3QgdG8gZmVuY2U6OmNiX2xpc3QKLSAqIEBmdW5jOiBmZW5jZV9mdW5jX3QgdG8g Y2FsbAorICogc3RydWN0IGRtYV9mZW5jZV9jYiAtIGNhbGxiYWNrIGZvciBkbWFfZmVuY2VfYWRk X2NhbGxiYWNrCisgKiBAbm9kZTogdXNlZCBieSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrIHRvIGFw cGVuZCB0aGlzIHN0cnVjdCB0byBmZW5jZTo6Y2JfbGlzdAorICogQGZ1bmM6IGRtYV9mZW5jZV9m dW5jX3QgdG8gY2FsbAogICoKLSAqIFRoaXMgc3RydWN0IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYnkg ZmVuY2VfYWRkX2NhbGxiYWNrLCBhZGRpdGlvbmFsCi0gKiBkYXRhIGNhbiBiZSBwYXNzZWQgYWxv bmcgYnkgZW1iZWRkaW5nIGZlbmNlX2NiIGluIGFub3RoZXIgc3RydWN0LgorICogVGhpcyBzdHJ1 Y3Qgd2lsbCBiZSBpbml0aWFsaXplZCBieSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrLCBhZGRpdGlv bmFsCisgKiBkYXRhIGNhbiBiZSBwYXNzZWQgYWxvbmcgYnkgZW1iZWRkaW5nIGRtYV9mZW5jZV9j YiBpbiBhbm90aGVyIHN0cnVjdC4KICAqLwotc3RydWN0IGZlbmNlX2NiIHsKK3N0cnVjdCBkbWFf ZmVuY2VfY2IgewogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKLQlmZW5jZV9mdW5jX3QgZnVuYzsK KwlkbWFfZmVuY2VfZnVuY190IGZ1bmM7CiB9OwogCiAvKioKLSAqIHN0cnVjdCBmZW5jZV9vcHMg LSBvcGVyYXRpb25zIGltcGxlbWVudGVkIGZvciBmZW5jZQorICogc3RydWN0IGRtYV9mZW5jZV9v cHMgLSBvcGVyYXRpb25zIGltcGxlbWVudGVkIGZvciBmZW5jZQogICogQGdldF9kcml2ZXJfbmFt ZTogcmV0dXJucyB0aGUgZHJpdmVyIG5hbWUuCiAgKiBAZ2V0X3RpbWVsaW5lX25hbWU6IHJldHVy biB0aGUgbmFtZSBvZiB0aGUgY29udGV4dCB0aGlzIGZlbmNlIGJlbG9uZ3MgdG8uCiAgKiBAZW5h YmxlX3NpZ25hbGluZzogZW5hYmxlIHNvZnR3YXJlIHNpZ25hbGluZyBvZiBmZW5jZS4KICAqIEBz aWduYWxlZDogW29wdGlvbmFsXSBwZWVrIHdoZXRoZXIgdGhlIGZlbmNlIGlzIHNpZ25hbGVkLCBj YW4gYmUgbnVsbC4KLSAqIEB3YWl0OiBjdXN0b20gd2FpdCBpbXBsZW1lbnRhdGlvbiwgb3IgZmVu Y2VfZGVmYXVsdF93YWl0LgorICogQHdhaXQ6IGN1c3RvbSB3YWl0IGltcGxlbWVudGF0aW9uLCBv ciBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LgogICogQHJlbGVhc2U6IFtvcHRpb25hbF0gY2FsbGVk IG9uIGRlc3RydWN0aW9uIG9mIGZlbmNlLCBjYW4gYmUgbnVsbAogICogQGZpbGxfZHJpdmVyX2Rh dGE6IFtvcHRpb25hbF0gY2FsbGJhY2sgdG8gZmlsbCBpbiBmcmVlLWZvcm0gZGVidWcgaW5mbwog ICogUmV0dXJucyBhbW91bnQgb2YgYnl0ZXMgZmlsbGVkLCBvciAtZXJybm8uCkBAIC0xMzUsMjAg KzEzNiwyMCBAQCBzdHJ1Y3QgZmVuY2VfY2IgewogICogZmVuY2UtPnN0YXR1cyBtYXkgYmUgc2V0 IGluIGVuYWJsZV9zaWduYWxpbmcsIGJ1dCBvbmx5IHdoZW4gZmFsc2UgaXMKICAqIHJldHVybmVk LgogICoKLSAqIENhbGxpbmcgZmVuY2Vfc2lnbmFsIGJlZm9yZSBlbmFibGVfc2lnbmFsaW5nIGlz IGNhbGxlZCBhbGxvd3MKKyAqIENhbGxpbmcgZG1hX2ZlbmNlX3NpZ25hbCBiZWZvcmUgZW5hYmxl X3NpZ25hbGluZyBpcyBjYWxsZWQgYWxsb3dzCiAgKiBmb3IgYSB0aW55IHJhY2Ugd2luZG93IGlu IHdoaWNoIGVuYWJsZV9zaWduYWxpbmcgaXMgY2FsbGVkIGR1cmluZywKLSAqIGJlZm9yZSwgb3Ig YWZ0ZXIgZmVuY2Vfc2lnbmFsLiBUbyBmaWdodCB0aGlzLCBpdCBpcyByZWNvbW1lbmRlZAorICog YmVmb3JlLCBvciBhZnRlciBkbWFfZmVuY2Vfc2lnbmFsLiBUbyBmaWdodCB0aGlzLCBpdCBpcyBy ZWNvbW1lbmRlZAogICogdGhhdCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyByZXR1cm5zIHRydWUg YW4gZXh0cmEgcmVmZXJlbmNlIGlzCiAgKiB0YWtlbiBvbiB0aGUgZmVuY2UsIHRvIGJlIHJlbGVh c2VkIHdoZW4gdGhlIGZlbmNlIGlzIHNpZ25hbGVkLgotICogVGhpcyB3aWxsIG1lYW4gZmVuY2Vf c2lnbmFsIHdpbGwgc3RpbGwgYmUgY2FsbGVkIHR3aWNlLCBidXQKKyAqIFRoaXMgd2lsbCBtZWFu IGRtYV9mZW5jZV9zaWduYWwgd2lsbCBzdGlsbCBiZSBjYWxsZWQgdHdpY2UsIGJ1dAogICogdGhl IHNlY29uZCB0aW1lIHdpbGwgYmUgYSBub29wIHNpbmNlIGl0IHdhcyBhbHJlYWR5IHNpZ25hbGVk LgogICoKICAqIE5vdGVzIG9uIHNpZ25hbGVkOgogICogTWF5IHNldCBmZW5jZS0+c3RhdHVzIGlm IHJldHVybmluZyB0cnVlLgogICoKICAqIE5vdGVzIG9uIHdhaXQ6Ci0gKiBNdXN0IG5vdCBiZSBO VUxMLCBzZXQgdG8gZmVuY2VfZGVmYXVsdF93YWl0IGZvciBkZWZhdWx0IGltcGxlbWVudGF0aW9u LgotICogdGhlIGZlbmNlX2RlZmF1bHRfd2FpdCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgd29yayBm b3IgYW55IGZlbmNlLCBhcyBsb25nCisgKiBNdXN0IG5vdCBiZSBOVUxMLCBzZXQgdG8gZG1hX2Zl bmNlX2RlZmF1bHRfd2FpdCBmb3IgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAqIHRoZSBkbWFf ZmVuY2VfZGVmYXVsdF93YWl0IGltcGxlbWVudGF0aW9uIHNob3VsZCB3b3JrIGZvciBhbnkgZmVu Y2UsIGFzIGxvbmcKICAqIGFzIGVuYWJsZV9zaWduYWxpbmcgd29ya3MgY29ycmVjdGx5LgogICoK ICAqIE11c3QgcmV0dXJuIC1FUkVTVEFSVFNZUyBpZiB0aGUgd2FpdCBpcyBpbnRyID0gdHJ1ZSBh bmQgdGhlIHdhaXQgd2FzCkBAIC0xNjMsNDIgKzE2NCw0NCBAQCBzdHJ1Y3QgZmVuY2VfY2Igewog ICogSWYgcG9pbnRlciBpcyBzZXQgdG8gTlVMTCwga2ZyZWUgd2lsbCBnZXQgY2FsbGVkIGluc3Rl YWQuCiAgKi8KIAotc3RydWN0IGZlbmNlX29wcyB7Ci0JY29uc3QgY2hhciAqICgqZ2V0X2RyaXZl cl9uYW1lKShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLQljb25zdCBjaGFyICogKCpnZXRfdGltZWxp bmVfbmFtZSkoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci0JYm9vbCAoKmVuYWJsZV9zaWduYWxpbmcp KHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotCWJvb2wgKCpzaWduYWxlZCkoc3RydWN0IGZlbmNlICpm ZW5jZSk7Ci0Jc2lnbmVkIGxvbmcgKCp3YWl0KShzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGlu dHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwotCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZmVuY2Ug KmZlbmNlKTsKLQotCWludCAoKmZpbGxfZHJpdmVyX2RhdGEpKHN0cnVjdCBmZW5jZSAqZmVuY2Us IHZvaWQgKmRhdGEsIGludCBzaXplKTsKLQl2b2lkICgqZmVuY2VfdmFsdWVfc3RyKShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKTsKLQl2b2lkICgqdGltZWxpbmVfdmFs dWVfc3RyKShzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKTsKK3N0cnVj dCBkbWFfZmVuY2Vfb3BzIHsKKwljb25zdCBjaGFyICogKCpnZXRfZHJpdmVyX25hbWUpKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKTsKKwljb25zdCBjaGFyICogKCpnZXRfdGltZWxpbmVfbmFtZSko c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworCWJvb2wgKCplbmFibGVfc2lnbmFsaW5nKShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CisJYm9vbCAoKnNpZ25hbGVkKShzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSk7CisJc2lnbmVkIGxvbmcgKCp3YWl0KShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwK KwkJCSAgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOworCXZvaWQgKCpyZWxlYXNl KShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CisKKwlpbnQgKCpmaWxsX2RyaXZlcl9kYXRhKShz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgdm9pZCAqZGF0YSwgaW50IHNpemUpOworCXZvaWQgKCpm ZW5jZV92YWx1ZV9zdHIpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBz aXplKTsKKwl2b2lkICgqdGltZWxpbmVfdmFsdWVfc3RyKShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSwKKwkJCQkgICBjaGFyICpzdHIsIGludCBzaXplKTsKIH07CiAKLXZvaWQgZmVuY2VfaW5pdChz dHJ1Y3QgZmVuY2UgKmZlbmNlLCBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpvcHMsCi0JCXNwaW5s b2NrX3QgKmxvY2ssIHU2NCBjb250ZXh0LCB1bnNpZ25lZCBzZXFubyk7Cit2b2lkIGRtYV9mZW5j ZV9pbml0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29w cyAqb3BzLAorCQkgICAgc3BpbmxvY2tfdCAqbG9jaywgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNl cW5vKTsKIAotdm9pZCBmZW5jZV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKTsKLXZvaWQgZmVu Y2VfZnJlZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKK3ZvaWQgZG1hX2ZlbmNlX3JlbGVhc2Uoc3Ry dWN0IGtyZWYgKmtyZWYpOwordm9pZCBkbWFfZmVuY2VfZnJlZShzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSk7CiAKIC8qKgotICogZmVuY2VfcHV0IC0gZGVjcmVhc2VzIHJlZmNvdW50IG9mIHRoZSBm ZW5jZQorICogZG1hX2ZlbmNlX3B1dCAtIGRlY3JlYXNlcyByZWZjb3VudCBvZiB0aGUgZmVuY2UK ICAqIEBmZW5jZToJW2luXQlmZW5jZSB0byByZWR1Y2UgcmVmY291bnQgb2YKICAqLwotc3RhdGlj IGlubGluZSB2b2lkIGZlbmNlX3B1dChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGlu ZSB2b2lkIGRtYV9mZW5jZV9wdXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGZl bmNlKQotCQlrcmVmX3B1dCgmZmVuY2UtPnJlZmNvdW50LCBmZW5jZV9yZWxlYXNlKTsKKwkJa3Jl Zl9wdXQoJmZlbmNlLT5yZWZjb3VudCwgZG1hX2ZlbmNlX3JlbGVhc2UpOwogfQogCiAvKioKLSAq IGZlbmNlX2dldCAtIGluY3JlYXNlcyByZWZjb3VudCBvZiB0aGUgZmVuY2UKKyAqIGRtYV9mZW5j ZV9nZXQgLSBpbmNyZWFzZXMgcmVmY291bnQgb2YgdGhlIGZlbmNlCiAgKiBAZmVuY2U6CVtpbl0J ZmVuY2UgdG8gaW5jcmVhc2UgcmVmY291bnQgb2YKICAqCiAgKiBSZXR1cm5zIHRoZSBzYW1lIGZl bmNlLCB3aXRoIHJlZmNvdW50IGluY3JlYXNlZCBieSAxLgogICovCi1zdGF0aWMgaW5saW5lIHN0 cnVjdCBmZW5jZSAqZmVuY2VfZ2V0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5l IHN0cnVjdCBkbWFfZmVuY2UgKmRtYV9mZW5jZV9nZXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up CiB7CiAJaWYgKGZlbmNlKQogCQlrcmVmX2dldCgmZmVuY2UtPnJlZmNvdW50KTsKQEAgLTIwNiwx MiArMjA5LDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICpmZW5jZV9nZXQoc3RydWN0 IGZlbmNlICpmZW5jZSkKIH0KIAogLyoqCi0gKiBmZW5jZV9nZXRfcmN1IC0gZ2V0IGEgZmVuY2Ug ZnJvbSBhIHJlc2VydmF0aW9uX29iamVjdF9saXN0IHdpdGggcmN1IHJlYWQgbG9jaworICogZG1h X2ZlbmNlX2dldF9yY3UgLSBnZXQgYSBmZW5jZSBmcm9tIGEgcmVzZXJ2YXRpb25fb2JqZWN0X2xp c3Qgd2l0aAorICogICAgICAgICAgICAgICAgICAgICByY3UgcmVhZCBsb2NrCiAgKiBAZmVuY2U6 CVtpbl0JZmVuY2UgdG8gaW5jcmVhc2UgcmVmY291bnQgb2YKICAqCiAgKiBGdW5jdGlvbiByZXR1 cm5zIE5VTEwgaWYgbm8gcmVmY291bnQgY291bGQgYmUgb2J0YWluZWQsIG9yIHRoZSBmZW5jZS4K ICAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldF9yY3Uoc3RydWN0IGZl bmNlICpmZW5jZSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2dl dF9yY3Uoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGtyZWZfZ2V0X3VubGVzc196 ZXJvKCZmZW5jZS0+cmVmY291bnQpKQogCQlyZXR1cm4gZmVuY2U7CkBAIC0yMjAsNyArMjI0LDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldF9yY3Uoc3RydWN0IGZlbmNl ICpmZW5jZSkKIH0KIAogLyoqCi0gKiBmZW5jZV9nZXRfcmN1X3NhZmUgIC0gYWNxdWlyZSBhIHJl ZmVyZW5jZSB0byBhbiBSQ1UgdHJhY2tlZCBmZW5jZQorICogZG1hX2ZlbmNlX2dldF9yY3Vfc2Fm ZSAgLSBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIGFuIFJDVSB0cmFja2VkIGZlbmNlCiAgKiBAZmVu Y2U6CVtpbl0JcG9pbnRlciB0byBmZW5jZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKICAq IEZ1bmN0aW9uIHJldHVybnMgTlVMTCBpZiBubyByZWZjb3VudCBjb3VsZCBiZSBvYnRhaW5lZCwg b3IgdGhlIGZlbmNlLgpAQCAtMjM1LDE2ICsyMzksMTcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZmVuY2UgKmZlbmNlX2dldF9yY3Uoc3RydWN0IGZlbmNlICpmZW5jZSkKICAqCiAgKiBUaGUgY2Fs bGVyIGlzIHJlcXVpcmVkIHRvIGhvbGQgdGhlIFJDVSByZWFkIGxvY2suCiAgKi8KLXN0YXRpYyBp bmxpbmUgc3RydWN0IGZlbmNlICpmZW5jZV9nZXRfcmN1X3NhZmUoc3RydWN0IGZlbmNlICogX19y Y3UgKmZlbmNlcCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCitkbWFfZmVuY2Vf Z2V0X3JjdV9zYWZlKHN0cnVjdCBkbWFfZmVuY2UgKiBfX3JjdSAqZmVuY2VwKQogewogCWRvIHsK LQkJc3RydWN0IGZlbmNlICpmZW5jZTsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJ ZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoKmZlbmNlcCk7Ci0JCWlmICghZmVuY2UgfHwgIWZlbmNl X2dldF9yY3UoZmVuY2UpKQorCQlpZiAoIWZlbmNlIHx8ICFkbWFfZmVuY2VfZ2V0X3JjdShmZW5j ZSkpCiAJCQlyZXR1cm4gTlVMTDsKIAotCQkvKiBUaGUgYXRvbWljX2luY19ub3RfemVybygpIGlu c2lkZSBmZW5jZV9nZXRfcmN1KCkKKwkJLyogVGhlIGF0b21pY19pbmNfbm90X3plcm8oKSBpbnNp ZGUgZG1hX2ZlbmNlX2dldF9yY3UoKQogCQkgKiBwcm92aWRlcyBhIGZ1bGwgbWVtb3J5IGJhcnJp ZXIgdXBvbiBzdWNjZXNzIChzdWNoIGFzIG5vdykuCiAJCSAqIFRoaXMgaXMgcGFpcmVkIHdpdGgg dGhlIHdyaXRlIGJhcnJpZXIgZnJvbSBhc3NpZ25pbmcKIAkJICogdG8gdGhlIF9fcmN1IHByb3Rl Y3RlZCBmZW5jZSBwb2ludGVyIHNvIHRoYXQgaWYgdGhhdApAQCAtMjYxLDM3ICsyNjYsNDEgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldF9yY3Vfc2FmZShzdHJ1Y3QgZmVu Y2UgKiBfX3JjdSAqZmVuY2VwKQogCQlpZiAoZmVuY2UgPT0gcmN1X2FjY2Vzc19wb2ludGVyKCpm ZW5jZXApKQogCQkJcmV0dXJuIHJjdV9wb2ludGVyX2hhbmRvZmYoZmVuY2UpOwogCi0JCWZlbmNl X3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCX0gd2hpbGUgKDEpOwogfQog Ci1pbnQgZmVuY2Vfc2lnbmFsKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotaW50IGZlbmNlX3NpZ25h bF9sb2NrZWQoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci1zaWduZWQgbG9uZyBmZW5jZV9kZWZhdWx0 X3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0 KTsKLWludCBmZW5jZV9hZGRfY2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZl bmNlX2NiICpjYiwKLQkJICAgICAgIGZlbmNlX2Z1bmNfdCBmdW5jKTsKLWJvb2wgZmVuY2VfcmVt b3ZlX2NhbGxiYWNrKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpOwot dm9pZCBmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpOworaW50 IGRtYV9mZW5jZV9zaWduYWwoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworaW50IGRtYV9mZW5j ZV9zaWduYWxfbG9ja2VkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKK3NpZ25lZCBsb25nIGRt YV9mZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkJICAgYm9v bCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KTsKK2ludCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNr KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJICAgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2Is CisJCQkgICBkbWFfZmVuY2VfZnVuY190IGZ1bmMpOworYm9vbCBkbWFfZmVuY2VfcmVtb3ZlX2Nh bGxiYWNrKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJICAgICAgIHN0cnVjdCBkbWFfZmVu Y2VfY2IgKmNiKTsKK3ZvaWQgZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpOwogCiAvKioKLSAqIGZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZCAtIFJl dHVybiBhbiBpbmRpY2F0aW9uIGlmIHRoZSBmZW5jZSBpcyBzaWduYWxlZCB5ZXQuCisgKiBkbWFf ZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkIC0gUmV0dXJuIGFuIGluZGljYXRpb24gaWYgdGhlIGZl bmNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgc2lnbmFsZWQgeWV0Lgog ICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byBjaGVjawogICoKICAqIFJldHVybnMgdHJ1ZSBp ZiB0aGUgZmVuY2Ugd2FzIGFscmVhZHkgc2lnbmFsZWQsIGZhbHNlIGlmIG5vdC4gU2luY2UgdGhp cwogICogZnVuY3Rpb24gZG9lc24ndCBlbmFibGUgc2lnbmFsaW5nLCBpdCBpcyBub3QgZ3VhcmFu dGVlZCB0byBldmVyIHJldHVybgotICogdHJ1ZSBpZiBmZW5jZV9hZGRfY2FsbGJhY2ssIGZlbmNl X3dhaXQgb3IgZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZwotICogaGF2ZW4ndCBiZWVuIGNhbGxl ZCBiZWZvcmUuCisgKiB0cnVlIGlmIGRtYV9mZW5jZV9hZGRfY2FsbGJhY2ssIGRtYV9mZW5jZV93 YWl0IG9yCisgKiBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyBoYXZlbid0IGJlZW4gY2Fs bGVkIGJlZm9yZS4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIGZlbmNlLT5sb2NrIHRv IGJlIGhlbGQuCiAgKi8KIHN0YXRpYyBpbmxpbmUgYm9vbAotZmVuY2VfaXNfc2lnbmFsZWRfbG9j a2VkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitkbWFfZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkKHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05B TEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJ R05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXJldHVybiB0cnVlOwogCiAJaWYgKGZlbmNl LT5vcHMtPnNpZ25hbGVkICYmIGZlbmNlLT5vcHMtPnNpZ25hbGVkKGZlbmNlKSkgewotCQlmZW5j ZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoZmVuY2Up OwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTI5OSwyNyArMzA4LDI3IEBAIGZlbmNlX2lzX3Np Z25hbGVkX2xvY2tlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogfQogCiAvKioKLSAqIGZlbmNlX2lz X3NpZ25hbGVkIC0gUmV0dXJuIGFuIGluZGljYXRpb24gaWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVk IHlldC4KKyAqIGRtYV9mZW5jZV9pc19zaWduYWxlZCAtIFJldHVybiBhbiBpbmRpY2F0aW9uIGlm IHRoZSBmZW5jZSBpcyBzaWduYWxlZCB5ZXQuCiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRv IGNoZWNrCiAgKgogICogUmV0dXJucyB0cnVlIGlmIHRoZSBmZW5jZSB3YXMgYWxyZWFkeSBzaWdu YWxlZCwgZmFsc2UgaWYgbm90LiBTaW5jZSB0aGlzCiAgKiBmdW5jdGlvbiBkb2Vzbid0IGVuYWJs ZSBzaWduYWxpbmcsIGl0IGlzIG5vdCBndWFyYW50ZWVkIHRvIGV2ZXIgcmV0dXJuCi0gKiB0cnVl IGlmIGZlbmNlX2FkZF9jYWxsYmFjaywgZmVuY2Vfd2FpdCBvciBmZW5jZV9lbmFibGVfc3dfc2ln bmFsaW5nCi0gKiBoYXZlbid0IGJlZW4gY2FsbGVkIGJlZm9yZS4KKyAqIHRydWUgaWYgZG1hX2Zl bmNlX2FkZF9jYWxsYmFjaywgZG1hX2ZlbmNlX3dhaXQgb3IKKyAqIGRtYV9mZW5jZV9lbmFibGVf c3dfc2lnbmFsaW5nIGhhdmVuJ3QgYmVlbiBjYWxsZWQgYmVmb3JlLgogICoKLSAqIEl0J3MgcmVj b21tZW5kZWQgZm9yIHNlcW5vIGZlbmNlcyB0byBjYWxsIGZlbmNlX3NpZ25hbCB3aGVuIHRoZQor ICogSXQncyByZWNvbW1lbmRlZCBmb3Igc2Vxbm8gZmVuY2VzIHRvIGNhbGwgZG1hX2ZlbmNlX3Np Z25hbCB3aGVuIHRoZQogICogb3BlcmF0aW9uIGlzIGNvbXBsZXRlLCBpdCBtYWtlcyBpdCBwb3Nz aWJsZSB0byBwcmV2ZW50IGlzc3VlcyBmcm9tCiAgKiB3cmFwYXJvdW5kIGJldHdlZW4gdGltZSBv ZiBpc3N1ZSBhbmQgdGltZSBvZiB1c2UgYnkgY2hlY2tpbmcgdGhlIHJldHVybgogICogdmFsdWUg b2YgdGhpcyBmdW5jdGlvbiBiZWZvcmUgY2FsbGluZyBoYXJkd2FyZS1zcGVjaWZpYyB3YWl0IGlu c3RydWN0aW9ucy4KICAqLwogc3RhdGljIGlubGluZSBib29sCi1mZW5jZV9pc19zaWduYWxlZChz dHJ1Y3QgZmVuY2UgKmZlbmNlKQorZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKQogewotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZl bmNlLT5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwg JmZlbmNlLT5mbGFncykpCiAJCXJldHVybiB0cnVlOwogCiAJaWYgKGZlbmNlLT5vcHMtPnNpZ25h bGVkICYmIGZlbmNlLT5vcHMtPnNpZ25hbGVkKGZlbmNlKSkgewotCQlmZW5jZV9zaWduYWwoZmVu Y2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsKGZlbmNlKTsKIAkJcmV0dXJuIHRydWU7CiAJfQogCkBA IC0zMjcsMTQgKzMzNiwxNSBAQCBmZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNl KQogfQogCiAvKioKLSAqIGZlbmNlX2lzX2xhdGVyIC0gcmV0dXJuIGlmIGYxIGlzIGNocm9ub2xv Z2ljYWxseSBsYXRlciB0aGFuIGYyCisgKiBkbWFfZmVuY2VfaXNfbGF0ZXIgLSByZXR1cm4gaWYg ZjEgaXMgY2hyb25vbG9naWNhbGx5IGxhdGVyIHRoYW4gZjIKICAqIEBmMToJW2luXQl0aGUgZmly c3QgZmVuY2UgZnJvbSB0aGUgc2FtZSBjb250ZXh0CiAgKiBAZjI6CVtpbl0JdGhlIHNlY29uZCBm ZW5jZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQKICAqCiAgKiBSZXR1cm5zIHRydWUgaWYgZjEgaXMg Y2hyb25vbG9naWNhbGx5IGxhdGVyIHRoYW4gZjIuIEJvdGggZmVuY2VzIG11c3QgYmUKICAqIGZy b20gdGhlIHNhbWUgY29udGV4dCwgc2luY2UgYSBzZXFubyBpcyBub3QgcmUtdXNlZCBhY3Jvc3Mg Y29udGV4dHMuCiAgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9pc19sYXRlcihzdHJ1Y3Qg ZmVuY2UgKmYxLCBzdHJ1Y3QgZmVuY2UgKmYyKQorc3RhdGljIGlubGluZSBib29sIGRtYV9mZW5j ZV9pc19sYXRlcihzdHJ1Y3QgZG1hX2ZlbmNlICpmMSwKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICpmMikKIHsKIAlpZiAoV0FSTl9PTihmMS0+Y29udGV4dCAhPSBmMi0+Y29udGV4dCkpCiAJ CXJldHVybiBmYWxzZTsKQEAgLTM0Myw3ICszNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVu Y2VfaXNfbGF0ZXIoc3RydWN0IGZlbmNlICpmMSwgc3RydWN0IGZlbmNlICpmMikKIH0KIAogLyoq Ci0gKiBmZW5jZV9sYXRlciAtIHJldHVybiB0aGUgY2hyb25vbG9naWNhbGx5IGxhdGVyIGZlbmNl CisgKiBkbWFfZmVuY2VfbGF0ZXIgLSByZXR1cm4gdGhlIGNocm9ub2xvZ2ljYWxseSBsYXRlciBm ZW5jZQogICogQGYxOglbaW5dCXRoZSBmaXJzdCBmZW5jZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQK ICAqIEBmMjoJW2luXQl0aGUgc2Vjb25kIGZlbmNlIGZyb20gdGhlIHNhbWUgY29udGV4dAogICoK QEAgLTM1MSwyOCArMzYxLDMxIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9pc19sYXRlcihz dHJ1Y3QgZmVuY2UgKmYxLCBzdHJ1Y3QgZmVuY2UgKmYyKQogICogc2lnbmFsZWQgbGFzdC4gQm90 aCBmZW5jZXMgbXVzdCBiZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQsIHNpbmNlIGEgc2Vxbm8gaXMK ICAqIG5vdCByZS11c2VkIGFjcm9zcyBjb250ZXh0cy4KICAqLwotc3RhdGljIGlubGluZSBzdHJ1 Y3QgZmVuY2UgKmZlbmNlX2xhdGVyKHN0cnVjdCBmZW5jZSAqZjEsIHN0cnVjdCBmZW5jZSAqZjIp CitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKmRtYV9mZW5jZV9sYXRlcihzdHJ1Y3Qg ZG1hX2ZlbmNlICpmMSwKKwkJCQkJCXN0cnVjdCBkbWFfZmVuY2UgKmYyKQogewogCWlmIChXQVJO X09OKGYxLT5jb250ZXh0ICE9IGYyLT5jb250ZXh0KSkKIAkJcmV0dXJuIE5VTEw7CiAKIAkvKgot CSAqIGNhbid0IGNoZWNrIGp1c3QgRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgaGVyZSwgaXQgbWF5 IG5ldmVyIGhhdmUgYmVlbgotCSAqIHNldCBpZiBlbmFibGVfc2lnbmFsaW5nIHdhc24ndCBjYWxs ZWQsIGFuZCBlbmFibGluZyB0aGF0IGhlcmUgaXMKLQkgKiBvdmVya2lsbC4KKwkgKiBDYW4ndCBj aGVjayBqdXN0IERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBoZXJlLCBpdCBtYXkgbmV2ZXIK KwkgKiBoYXZlIGJlZW4gc2V0IGlmIGVuYWJsZV9zaWduYWxpbmcgd2Fzbid0IGNhbGxlZCwgYW5k IGVuYWJsaW5nIHRoYXQKKwkgKiBoZXJlIGlzIG92ZXJraWxsLgogCSAqLwotCWlmIChmZW5jZV9p c19sYXRlcihmMSwgZjIpKQotCQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoZjEpID8gTlVMTCA6 IGYxOworCWlmIChkbWFfZmVuY2VfaXNfbGF0ZXIoZjEsIGYyKSkKKwkJcmV0dXJuIGRtYV9mZW5j ZV9pc19zaWduYWxlZChmMSkgPyBOVUxMIDogZjE7CiAJZWxzZQotCQlyZXR1cm4gZmVuY2VfaXNf c2lnbmFsZWQoZjIpID8gTlVMTCA6IGYyOworCQlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVk KGYyKSA/IE5VTEwgOiBmMjsKIH0KIAotc2lnbmVkIGxvbmcgZmVuY2Vfd2FpdF90aW1lb3V0KHN0 cnVjdCBmZW5jZSAqLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwotc2lnbmVkIGxv bmcgZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90 IGNvdW50LAorc2lnbmVkIGxvbmcgZG1hX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgZG1hX2Zl bmNlICosCiAJCQkJICAgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KTsKK3NpZ25lZCBs b25nIGRtYV9mZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMs CisJCQkJICAgICAgIHVpbnQzMl90IGNvdW50LAorCQkJCSAgICAgICBib29sIGludHIsIHNpZ25l ZCBsb25nIHRpbWVvdXQpOwogCiAvKioKLSAqIGZlbmNlX3dhaXQgLSBzbGVlcCB1bnRpbCB0aGUg ZmVuY2UgZ2V0cyBzaWduYWxlZAorICogZG1hX2ZlbmNlX3dhaXQgLSBzbGVlcCB1bnRpbCB0aGUg ZmVuY2UgZ2V0cyBzaWduYWxlZAogICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byB3YWl0IG9u CiAgKiBAaW50cjoJW2luXQlpZiB0cnVlLCBkbyBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQKICAqCkBA IC0zODQsNDEgKzM5Nyw0MSBAQCBzaWduZWQgbG9uZyBmZW5jZV93YWl0X2FueV90aW1lb3V0KHN0 cnVjdCBmZW5jZSAqKmZlbmNlcywgdWludDMyX3QgY291bnQsCiAgKiBkaXJlY3RseSBvciBpbmRp cmVjdGx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBmZW5jZSwgb3RoZXJ3aXNlIHRoZQogICog ZmVuY2UgbWlnaHQgYmUgZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0aW5nIGluIHVuZGVmaW5l ZCBiZWhhdmlvci4KICAqLwotc3RhdGljIGlubGluZSBzaWduZWQgbG9uZyBmZW5jZV93YWl0KHN0 cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50cikKK3N0YXRpYyBpbmxpbmUgc2lnbmVkIGxvbmcg ZG1hX2ZlbmNlX3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50cikKIHsKIAlz aWduZWQgbG9uZyByZXQ7CiAKLQkvKiBTaW5jZSBmZW5jZV93YWl0X3RpbWVvdXQgY2Fubm90IHRp bWVvdXQgd2l0aAorCS8qIFNpbmNlIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQgY2Fubm90IHRpbWVv dXQgd2l0aAogCSAqIE1BWF9TQ0hFRFVMRV9USU1FT1VULCBvbmx5IHZhbGlkIHJldHVybiB2YWx1 ZXMgYXJlCiAJICogLUVSRVNUQVJUU1lTIGFuZCBNQVhfU0NIRURVTEVfVElNRU9VVC4KIAkgKi8K LQlyZXQgPSBmZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIsIE1BWF9TQ0hFRFVMRV9USU1F T1VUKTsKKwlyZXQgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBpbnRyLCBNQVhfU0NI RURVTEVfVElNRU9VVCk7CiAKIAlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IDA7CiB9CiAKLXU2NCBm ZW5jZV9jb250ZXh0X2FsbG9jKHVuc2lnbmVkIG51bSk7Cit1NjQgZG1hX2ZlbmNlX2NvbnRleHRf YWxsb2ModW5zaWduZWQgbnVtKTsKIAotI2RlZmluZSBGRU5DRV9UUkFDRShmLCBmbXQsIGFyZ3Mu Li4pIFwKKyNkZWZpbmUgRE1BX0ZFTkNFX1RSQUNFKGYsIGZtdCwgYXJncy4uLikgXAogCWRvIHsJ CQkJCQkJCVwKLQkJc3RydWN0IGZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCi0JCWlmIChJU19FTkFC TEVEKENPTkZJR19GRU5DRV9UUkFDRSkpCQkJXAorCQlzdHJ1Y3QgZG1hX2ZlbmNlICpfX2ZmID0g KGYpOwkJCQlcCisJCWlmIChJU19FTkFCTEVEKENPTkZJR19ETUFfRkVOQ0VfVFJBQ0UpKQkJCVwK IAkJCXByX2luZm8oImYgJWxsdSMldTogIiBmbXQsCQkJXAogCQkJCV9fZmYtPmNvbnRleHQsIF9f ZmYtPnNlcW5vLCAjI2FyZ3MpOwlcCiAJfSB3aGlsZSAoMCkKIAotI2RlZmluZSBGRU5DRV9XQVJO KGYsIGZtdCwgYXJncy4uLikgXAorI2RlZmluZSBETUFfRkVOQ0VfV0FSTihmLCBmbXQsIGFyZ3Mu Li4pIFwKIAlkbyB7CQkJCQkJCQlcCi0JCXN0cnVjdCBmZW5jZSAqX19mZiA9IChmKTsJCQkJXAor CQlzdHJ1Y3QgZG1hX2ZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCiAJCXByX3dhcm4oImYgJWxsdSMl dTogIiBmbXQsIF9fZmYtPmNvbnRleHQsIF9fZmYtPnNlcW5vLAlcCiAJCQkgIyNhcmdzKTsJCQkJ CVwKIAl9IHdoaWxlICgwKQogCi0jZGVmaW5lIEZFTkNFX0VSUihmLCBmbXQsIGFyZ3MuLi4pIFwK KyNkZWZpbmUgRE1BX0ZFTkNFX0VSUihmLCBmbXQsIGFyZ3MuLi4pIFwKIAlkbyB7CQkJCQkJCQlc Ci0JCXN0cnVjdCBmZW5jZSAqX19mZiA9IChmKTsJCQkJXAorCQlzdHJ1Y3QgZG1hX2ZlbmNlICpf X2ZmID0gKGYpOwkJCQlcCiAJCXByX2VycigiZiAlbGx1IyV1OiAiIGZtdCwgX19mZi0+Y29udGV4 dCwgX19mZi0+c2Vxbm8sCVwKIAkJCSMjYXJncyk7CQkJCQlcCiAJfSB3aGlsZSAoMCkKIAotI2Vu ZGlmIC8qIF9fTElOVVhfRkVOQ0VfSCAqLworI2VuZGlmIC8qIF9fTElOVVhfRE1BX0ZFTkNFX0gg Ki8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmVuY2UtYXJyYXkuaCBiL2luY2x1ZGUvbGlu dXgvZmVuY2UtYXJyYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVhMmJkZTEw YWMxLi4wMDAwMDAwMDAwMDAKLS0tIGEvaW5jbHVkZS9saW51eC9mZW5jZS1hcnJheS5oCisrKyAv ZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIGZlbmNlLWFycmF5OiBhZ2dyZWdhdGVz IGZlbmNlIHRvIGJlIHdhaXRlZCB0b2dldGhlcgotICoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBD b2xsYWJvcmEgTHRkCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLgotICogQXV0aG9yczoKLSAqCUd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2b0BwYWRvdmFu Lm9yZz4KLSAqCUNocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLSAq Ci0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdAotICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAotICogQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM SVRZIG9yCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCi0gKiBtb3JlIGRldGFpbHMuCi0gKi8KLQotI2lm bmRlZiBfX0xJTlVYX0ZFTkNFX0FSUkFZX0gKLSNkZWZpbmUgX19MSU5VWF9GRU5DRV9BUlJBWV9I Ci0KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgotCi0vKioKLSAqIHN0cnVjdCBmZW5jZV9hcnJh eV9jYiAtIGNhbGxiYWNrIGhlbHBlciBmb3IgZmVuY2UgYXJyYXkKLSAqIEBjYjogZmVuY2UgY2Fs bGJhY2sgc3RydWN0dXJlIGZvciBzaWduYWxpbmcKLSAqIEBhcnJheTogcmVmZXJlbmNlIHRvIHRo ZSBwYXJlbnQgZmVuY2UgYXJyYXkgb2JqZWN0Ci0gKi8KLXN0cnVjdCBmZW5jZV9hcnJheV9jYiB7 Ci0Jc3RydWN0IGZlbmNlX2NiIGNiOwotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXk7Ci19Owot Ci0vKioKLSAqIHN0cnVjdCBmZW5jZV9hcnJheSAtIGZlbmNlIHRvIHJlcHJlc2VudCBhbiBhcnJh eSBvZiBmZW5jZXMKLSAqIEBiYXNlOiBmZW5jZSBiYXNlIGNsYXNzCi0gKiBAbG9jazogc3Bpbmxv Y2sgZm9yIGZlbmNlIGhhbmRsaW5nCi0gKiBAbnVtX2ZlbmNlczogbnVtYmVyIG9mIGZlbmNlcyBp biB0aGUgYXJyYXkKLSAqIEBudW1fcGVuZGluZzogZmVuY2VzIGluIHRoZSBhcnJheSBzdGlsbCBw ZW5kaW5nCi0gKiBAZmVuY2VzOiBhcnJheSBvZiB0aGUgZmVuY2VzCi0gKi8KLXN0cnVjdCBmZW5j ZV9hcnJheSB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7Ci0KLQlzcGlubG9ja190IGxvY2s7Ci0JdW5z aWduZWQgbnVtX2ZlbmNlczsKLQlhdG9taWNfdCBudW1fcGVuZGluZzsKLQlzdHJ1Y3QgZmVuY2Ug KipmZW5jZXM7Ci19OwotCi1leHRlcm4gY29uc3Qgc3RydWN0IGZlbmNlX29wcyBmZW5jZV9hcnJh eV9vcHM7Ci0KLS8qKgotICogZmVuY2VfaXNfYXJyYXkgLSBjaGVjayBpZiBhIGZlbmNlIGlzIGZy b20gdGhlIGFycmF5IHN1YnNjbGFzcwotICogQGZlbmNlOiBmZW5jZSB0byB0ZXN0Ci0gKgotICog UmV0dXJuIHRydWUgaWYgaXQgaXMgYSBmZW5jZV9hcnJheSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgot ICovCi1zdGF0aWMgaW5saW5lIGJvb2wgZmVuY2VfaXNfYXJyYXkoc3RydWN0IGZlbmNlICpmZW5j ZSkKLXsKLQlyZXR1cm4gZmVuY2UtPm9wcyA9PSAmZmVuY2VfYXJyYXlfb3BzOwotfQotCi0vKioK LSAqIHRvX2ZlbmNlX2FycmF5IC0gY2FzdCBhIGZlbmNlIHRvIGEgZmVuY2VfYXJyYXkKLSAqIEBm ZW5jZTogZmVuY2UgdG8gY2FzdCB0byBhIGZlbmNlX2FycmF5Ci0gKgotICogUmV0dXJucyBOVUxM IGlmIHRoZSBmZW5jZSBpcyBub3QgYSBmZW5jZV9hcnJheSwKLSAqIG9yIHRoZSBmZW5jZV9hcnJh eSBvdGhlcndpc2UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlX2FycmF5ICp0b19m ZW5jZV9hcnJheShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQotewotCWlmIChmZW5jZS0+b3BzICE9ICZm ZW5jZV9hcnJheV9vcHMpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0dXJuIGNvbnRhaW5lcl9vZihm ZW5jZSwgc3RydWN0IGZlbmNlX2FycmF5LCBiYXNlKTsKLX0KLQotc3RydWN0IGZlbmNlX2FycmF5 ICpmZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMsIHN0cnVjdCBmZW5jZSAqKmZlbmNl cywKLQkJCQkgICAgICAgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAotCQkJCSAgICAgICBi b29sIHNpZ25hbF9vbl9hbnkpOwotCi0jZW5kaWYgLyogX19MSU5VWF9GRU5DRV9BUlJBWV9IICov CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggYi9pbmNsdWRlL2xpbnV4 L3Jlc2VydmF0aW9uLmgKaW5kZXggYjBmMzA1ZTc3YjdmLi4yZTMxM2NjYTA4ZjAgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaAorKysgYi9pbmNsdWRlL2xpbnV4L3Jlc2Vy dmF0aW9uLmgKQEAgLTQwLDcgKzQwLDcgQEAKICNkZWZpbmUgX0xJTlVYX1JFU0VSVkFUSU9OX0gK IAogI2luY2x1ZGUgPGxpbnV4L3d3X211dGV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4K KyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAj aW5jbHVkZSA8bGludXgvc2VxbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CkBA IC01OSw3ICs1OSw3IEBAIGV4dGVybiBjb25zdCBjaGFyIHJlc2VydmF0aW9uX3NlcWNvdW50X3N0 cmluZ1tdOwogc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IHsKIAlzdHJ1Y3QgcmN1X2hl YWQgcmN1OwogCXUzMiBzaGFyZWRfY291bnQsIHNoYXJlZF9tYXg7Ci0Jc3RydWN0IGZlbmNlIF9f cmN1ICpzaGFyZWRbXTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICpzaGFyZWRbXTsKIH07CiAK IC8qKgpAQCAtNzQsNyArNzQsNyBAQCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHsKIAlzdHJ1 Y3Qgd3dfbXV0ZXggbG9jazsKIAlzZXFjb3VudF90IHNlcTsKIAotCXN0cnVjdCBmZW5jZSBfX3Jj dSAqZmVuY2VfZXhjbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICpmZW5jZV9leGNsOwogCXN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCBfX3JjdSAqZmVuY2U7CiAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0ICpzdGFnZWQ7CiB9OwpAQCAtMTA3LDcgKzEwNyw3IEBAIHJlc2Vy dmF0aW9uX29iamVjdF9maW5pKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKIHsKIAlp bnQgaTsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZl bmNlICpleGNsOworCXN0cnVjdCBkbWFfZmVuY2UgKmV4Y2w7CiAKIAkvKgogCSAqIFRoaXMgb2Jq ZWN0IHNob3VsZCBiZSBkZWFkIGFuZCBhbGwgcmVmZXJlbmNlcyBtdXN0IGhhdmUKQEAgLTExNSwx MiArMTE1LDEyIEBAIHJlc2VydmF0aW9uX29iamVjdF9maW5pKHN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3QgKm9iaikKIAkgKi8KIAlleGNsID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmot PmZlbmNlX2V4Y2wsIDEpOwogCWlmIChleGNsKQotCQlmZW5jZV9wdXQoZXhjbCk7CisJCWRtYV9m ZW5jZV9wdXQoZXhjbCk7CiAKIAlmb2JqID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvYmot PmZlbmNlLCAxKTsKIAlpZiAoZm9iaikgewogCQlmb3IgKGkgPSAwOyBpIDwgZm9iai0+c2hhcmVk X2NvdW50OyArK2kpCi0JCQlmZW5jZV9wdXQocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmb2Jq LT5zaGFyZWRbaV0sIDEpKTsKKwkJCWRtYV9mZW5jZV9wdXQocmN1X2RlcmVmZXJlbmNlX3Byb3Rl Y3RlZChmb2JqLT5zaGFyZWRbaV0sIDEpKTsKIAogCQlrZnJlZShmb2JqKTsKIAl9CkBAIC0xNTUs NyArMTU1LDcgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaikKICAqIFJFVFVSTlMKICAqIFRoZSBleGNsdXNpdmUgZmVuY2Ugb3IgTlVM TAogICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqCitzdGF0aWMgaW5saW5lIHN0cnVj dCBkbWFfZmVuY2UgKgogcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKHN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKm9iaikKIHsKIAlyZXR1cm4gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChv YmotPmZlbmNlX2V4Y2wsCkBAIC0xNzMsMTAgKzE3MywxMCBAQCByZXNlcnZhdGlvbl9vYmplY3Rf Z2V0X2V4Y2woc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQogICogUkVUVVJOUwogICog VGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMIGlmIG5vbmUKICAqLwotc3RhdGljIGlubGluZSBz dHJ1Y3QgZmVuY2UgKgorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKIHJlc2VydmF0 aW9uX29iamVjdF9nZXRfZXhjbF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQog ewotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJdW5z aWduZWQgc2VxOwogcmV0cnk6CiAJc2VxID0gcmVhZF9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEp OwpAQCAtMTg2LDIyICsxODYsMjIgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQln b3RvIHJldHJ5OwogCX0KLQlmZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7CisJZmVuY2UgPSBkbWFf ZmVuY2VfZ2V0KGZlbmNlKTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAlyZXR1cm4gZmVuY2U7CiB9 CiAKIGludCByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdCAqb2JqKTsKIHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVu Y2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJCQkgc3RydWN0IGZlbmNlICpm ZW5jZSk7CisJCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CiAKIHZvaWQgcmVzZXJ2YXRp b25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwK LQkJCQkgICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSk7CisJCQkJICAgICAgIHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKTsKIAogaW50IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZmVuY2VzX3JjdShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoq cGZlbmNlX2V4Y2wsCisJCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKnBmZW5jZV9leGNsLAog CQkJCSAgICAgIHVuc2lnbmVkICpwc2hhcmVkX2NvdW50LAotCQkJCSAgICAgIHN0cnVjdCBmZW5j ZSAqKipwc2hhcmVkKTsKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqKnBzaGFyZWQpOwog CiBsb25nIHJlc2VydmF0aW9uX29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKm9iaiwKIAkJCQkJIGJvb2wgd2FpdF9hbGwsIGJvb2wgaW50ciwKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvc2Vxbm8tZmVuY2UuaCBiL2luY2x1ZGUvbGludXgvc2Vxbm8t ZmVuY2UuaAppbmRleCBhMWJhNmE1Y2NkZDYuLmM1OGM1MzVkMTJhOCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9zZXFuby1mZW5jZS5oCisrKyBiL2luY2x1ZGUvbGludXgvc2Vxbm8tZmVuY2Uu aApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBfX0xJTlVYX1NFUU5PX0ZFTkNFX0gKICNkZWZp bmUgX19MSU5VWF9TRVFOT19GRU5DRV9ICiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KIAog ZW51bSBzZXFub19mZW5jZV9jb25kaXRpb24gewpAQCAtMjksMTUgKzI5LDE1IEBAIGVudW0gc2Vx bm9fZmVuY2VfY29uZGl0aW9uIHsKIH07CiAKIHN0cnVjdCBzZXFub19mZW5jZSB7Ci0Jc3RydWN0 IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOwogCi0JY29uc3Qgc3RydWN0IGZl bmNlX29wcyAqb3BzOworCWNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpvcHM7CiAJc3RydWN0 IGRtYV9idWYgKnN5bmNfYnVmOwogCXVpbnQzMl90IHNlcW5vX29mczsKIAllbnVtIHNlcW5vX2Zl bmNlX2NvbmRpdGlvbiBjb25kaXRpb247CiB9OwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGZlbmNl X29wcyBzZXFub19mZW5jZV9vcHM7CitleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMg c2Vxbm9fZmVuY2Vfb3BzOwogCiAvKioKICAqIHRvX3NlcW5vX2ZlbmNlIC0gY2FzdCBhIGZlbmNl IHRvIGEgc2Vxbm9fZmVuY2UKQEAgLTQ3LDcgKzQ3LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBm ZW5jZV9vcHMgc2Vxbm9fZmVuY2Vfb3BzOwogICogb3IgdGhlIHNlcW5vX2ZlbmNlIG90aGVyd2lz ZS4KICAqLwogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKgotdG9fc2Vxbm9fZmVu Y2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3RvX3NlcW5vX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKQogewogCWlmIChmZW5jZS0+b3BzICE9ICZzZXFub19mZW5jZV9vcHMpCiAJCXJldHVy biBOVUxMOwpAQCAtODMsOSArODMsOSBAQCB0b19zZXFub19mZW5jZShzdHJ1Y3QgZmVuY2UgKmZl bmNlKQogICogZG1hLWJ1ZiBmb3Igc3luY19idWYsIHNpbmNlIG1hcHBpbmcgb3IgdW5tYXBwaW5n IHRoZSBzeW5jX2J1ZiB0byB0aGUKICAqIGRldmljZSdzIHZtIGNhbiBiZSBleHBlbnNpdmUuCiAg KgotICogSXQgaXMgcmVjb21tZW5kZWQgZm9yIGNyZWF0b3JzIG9mIHNlcW5vX2ZlbmNlIHRvIGNh bGwgZmVuY2Vfc2lnbmFsCisgKiBJdCBpcyByZWNvbW1lbmRlZCBmb3IgY3JlYXRvcnMgb2Ygc2Vx bm9fZmVuY2UgdG8gY2FsbCBkbWFfZmVuY2Vfc2lnbmFsKCkKICAqIGJlZm9yZSBkZXN0cnVjdGlv bi4gVGhpcyB3aWxsIHByZXZlbnQgcG9zc2libGUgaXNzdWVzIGZyb20gd3JhcGFyb3VuZCBhdAot ICogdGltZSBvZiBpc3N1ZSB2cyB0aW1lIG9mIGNoZWNrLCBzaW5jZSB1c2VycyBjYW4gY2hlY2sg ZmVuY2VfaXNfc2lnbmFsZWQKKyAqIHRpbWUgb2YgaXNzdWUgdnMgdGltZSBvZiBjaGVjaywgc2lu Y2UgdXNlcnMgY2FuIGNoZWNrIGRtYV9mZW5jZV9pc19zaWduYWxlZCgpCiAgKiBiZWZvcmUgc3Vi bWl0dGluZyBpbnN0cnVjdGlvbnMgZm9yIHRoZSBoYXJkd2FyZSB0byB3YWl0IG9uIHRoZSBmZW5j ZS4KICAqIEhvd2V2ZXIsIHdoZW4gb3BzLmVuYWJsZV9zaWduYWxpbmcgaXMgbm90IGNhbGxlZCwg aXQgZG9lc24ndCBoYXZlIHRvIGJlCiAgKiBkb25lIGFzIHNvb24gYXMgcG9zc2libGUsIGp1c3Qg YmVmb3JlIHRoZXJlJ3MgYW55IHJlYWwgZGFuZ2VyIG9mIHNlcW5vCkBAIC05NiwxOCArOTYsMTgg QEAgc2Vxbm9fZmVuY2VfaW5pdChzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKmZlbmNlLCBzcGlubG9ja190 ICpsb2NrLAogCQkgc3RydWN0IGRtYV9idWYgKnN5bmNfYnVmLCAgdWludDMyX3QgY29udGV4dCwK IAkJIHVpbnQzMl90IHNlcW5vX29mcywgdWludDMyX3Qgc2Vxbm8sCiAJCSBlbnVtIHNlcW5vX2Zl bmNlX2NvbmRpdGlvbiBjb25kLAotCQkgY29uc3Qgc3RydWN0IGZlbmNlX29wcyAqb3BzKQorCQkg Y29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wcykKIHsKIAlCVUdfT04oIWZlbmNlIHx8ICFz eW5jX2J1ZiB8fCAhb3BzKTsKIAlCVUdfT04oIW9wcy0+d2FpdCB8fCAhb3BzLT5lbmFibGVfc2ln bmFsaW5nIHx8CiAJICAgICAgICFvcHMtPmdldF9kcml2ZXJfbmFtZSB8fCAhb3BzLT5nZXRfdGlt ZWxpbmVfbmFtZSk7CiAKIAkvKgotCSAqIG9wcyBpcyB1c2VkIGluIGZlbmNlX2luaXQgZm9yIGdl dF9kcml2ZXJfbmFtZSwgc28gbmVlZHMgdG8gYmUKKwkgKiBvcHMgaXMgdXNlZCBpbiBkbWFfZmVu Y2VfaW5pdCBmb3IgZ2V0X2RyaXZlcl9uYW1lLCBzbyBuZWVkcyB0byBiZQogCSAqIGluaXRpYWxp emVkIGZpcnN0CiAJICovCiAJZmVuY2UtPm9wcyA9IG9wczsKLQlmZW5jZV9pbml0KCZmZW5jZS0+ YmFzZSwgJnNlcW5vX2ZlbmNlX29wcywgbG9jaywgY29udGV4dCwgc2Vxbm8pOworCWRtYV9mZW5j ZV9pbml0KCZmZW5jZS0+YmFzZSwgJnNlcW5vX2ZlbmNlX29wcywgbG9jaywgY29udGV4dCwgc2Vx bm8pOwogCWdldF9kbWFfYnVmKHN5bmNfYnVmKTsKIAlmZW5jZS0+c3luY19idWYgPSBzeW5jX2J1 ZjsKIAlmZW5jZS0+c2Vxbm9fb2ZzID0gc2Vxbm9fb2ZzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9zeW5jX2ZpbGUuaCBiL2luY2x1ZGUvbGludXgvc3luY19maWxlLmgKaW5kZXggYWExN2Nj ZmMyZjU3Li4zZTNhYjg0ZmM0Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3luY19maWxl LmgKKysrIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaApAQCAtMTgsOCArMTgsOCBAQAogI2lu Y2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUg PGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KLSNpbmNsdWRlIDxs aW51eC9mZW5jZS1hcnJheS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgorI2luY2x1 ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgogCiAvKioKICAqIHN0cnVjdCBzeW5jX2ZpbGUg LSBzeW5jIGZpbGUgdG8gZXhwb3J0IHRvIHRoZSB1c2Vyc3BhY2UKQEAgLTQxLDEzICs0MSwxMyBA QCBzdHJ1Y3Qgc3luY19maWxlIHsKIAogCXdhaXRfcXVldWVfaGVhZF90CXdxOwogCi0Jc3RydWN0 IGZlbmNlCQkqZmVuY2U7Ci0Jc3RydWN0IGZlbmNlX2NiIGNiOworCXN0cnVjdCBkbWFfZmVuY2UJ KmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7CiB9OwogCi0jZGVmaW5lIFBPTExfRU5B QkxFRCBGRU5DRV9GTEFHX1VTRVJfQklUUworI2RlZmluZSBQT0xMX0VOQUJMRUQgRE1BX0ZFTkNF X0ZMQUdfVVNFUl9CSVRTCiAKLXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUoc3Ry dWN0IGZlbmNlICpmZW5jZSk7Ci1zdHJ1Y3QgZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVuY2UoaW50 IGZkKTsKK3N0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9jcmVhdGUoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpOworc3RydWN0IGRtYV9mZW5jZSAqc3luY19maWxlX2dldF9mZW5jZShpbnQgZmQp OwogCiAjZW5kaWYgLyogX0xJTlVYX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFj ZS9ldmVudHMvZmVuY2UuaCBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oCnNpbWls YXJpdHkgaW5kZXggNzIlCnJlbmFtZSBmcm9tIGluY2x1ZGUvdHJhY2UvZXZlbnRzL2ZlbmNlLmgK cmVuYW1lIHRvIGluY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oCmluZGV4IGQ2ZGZhMDVi YTMyMi4uMTE1N2NiNGMzYzZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9mZW5j ZS5oCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oCkBAIC0xLDE3ICsxLDE3 IEBACiAjdW5kZWYgVFJBQ0VfU1lTVEVNCi0jZGVmaW5lIFRSQUNFX1NZU1RFTSBmZW5jZQorI2Rl ZmluZSBUUkFDRV9TWVNURU0gZG1hX2ZlbmNlCiAKICNpZiAhZGVmaW5lZChfVFJBQ0VfRkVOQ0Vf SCkgfHwgZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkKLSNkZWZpbmUgX1RSQUNFX0ZF TkNFX0gKKyNkZWZpbmUgX1RSQUNFX0RNQV9GRU5DRV9ICiAKICNpbmNsdWRlIDxsaW51eC90cmFj ZXBvaW50Lmg+CiAKLXN0cnVjdCBmZW5jZTsKK3N0cnVjdCBkbWFfZmVuY2U7CiAKLVRSQUNFX0VW RU5UKGZlbmNlX2Fubm90YXRlX3dhaXRfb24sCitUUkFDRV9FVkVOVChkbWFfZmVuY2VfYW5ub3Rh dGVfd2FpdF9vbiwKIAogCS8qIGZlbmNlOiB0aGUgZmVuY2Ugd2FpdGluZyBvbiBmMSwgZjE6IHRo ZSBmZW5jZSB0byBiZSB3YWl0ZWQgb24uICovCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5j ZSwgc3RydWN0IGZlbmNlICpmMSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Us IHN0cnVjdCBkbWFfZmVuY2UgKmYxKSwKIAogCVRQX0FSR1MoZmVuY2UsIGYxKSwKIApAQCAtNDgs OSArNDgsOSBAQCBUUkFDRV9FVkVOVChmZW5jZV9hbm5vdGF0ZV93YWl0X29uLAogCQkgIF9fZW50 cnktPndhaXRpbmdfY29udGV4dCwgX19lbnRyeS0+d2FpdGluZ19zZXFubykKICk7CiAKLURFQ0xB UkVfRVZFTlRfQ0xBU1MoZmVuY2UsCitERUNMQVJFX0VWRU5UX0NMQVNTKGRtYV9mZW5jZSwKIAot CVRQX1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpLAogCkBAIC03Myw1NiArNzMsNTYgQEAgREVD TEFSRV9FVkVOVF9DTEFTUyhmZW5jZSwKIAkJICBfX2VudHJ5LT5zZXFubykKICk7CiAKLURFRklO RV9FVkVOVChmZW5jZSwgZmVuY2VfZW1pdCwKK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9m ZW5jZV9lbWl0LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8o c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAKLURFRklO RV9FVkVOVChmZW5jZSwgZmVuY2VfaW5pdCwKK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9m ZW5jZV9pbml0LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8o c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAKLURFRklO RV9FVkVOVChmZW5jZSwgZmVuY2VfZGVzdHJveSwKK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRt YV9mZW5jZV9kZXN0cm95LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBf UFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAK LURFRklORV9FVkVOVChmZW5jZSwgZmVuY2VfZW5hYmxlX3NpZ25hbCwKK0RFRklORV9FVkVOVChk bWFfZmVuY2UsIGRtYV9mZW5jZV9lbmFibGVfc2lnbmFsLAogCi0JVFBfUFJPVE8oc3RydWN0IGZl bmNlICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBf QVJHUyhmZW5jZSkKICk7CiAKLURFRklORV9FVkVOVChmZW5jZSwgZmVuY2Vfc2lnbmFsZWQsCitE RUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2Vfc2lnbmFsZWQsCiAKLQlUUF9QUk9UTyhz dHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSks CiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV93YWl0 X3N0YXJ0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNlX3dhaXRfc3RhcnQsCiAK LQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VWRU5UKGZlbmNl LCBmZW5jZV93YWl0X2VuZCwKK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV93YWl0 X2VuZCwKIAotCVRQX1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpCiApOwogCi0jZW5kaWYgLyog IF9UUkFDRV9GRU5DRV9IICovCisjZW5kaWYgLyogIF9UUkFDRV9ETUFfRkVOQ0VfSCAqLwogCiAv KiBUaGlzIHBhcnQgbXVzdCBiZSBvdXRzaWRlIHByb3RlY3Rpb24gKi8KICNpbmNsdWRlIDx0cmFj ZS9kZWZpbmVfdHJhY2UuaD4KLS0gCjIuMTAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==