From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3] dma-buf: Rename struct fence to dma_fence Date: Tue, 25 Oct 2016 12:32:35 +0100 Message-ID: <20161025113235.23216-1-chris@chris-wilson.co.uk> References: <20161025092549.1983-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: <20161025092549.1983-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 aCkKdjM6IENvbXBpbGUgb24gbXNtLCBzcG90dGVkIGEgbWFudWFsIGZpeHVwIHRoYXQgSSBicm9r ZS4KCmNvY2NpbmVsbGUgc2NyaXB0OgpAQAoKQEAKLSBzdHJ1Y3QgZmVuY2UKKyBzdHJ1Y3QgZG1h 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 IDc5ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgICAgICAg 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 NTEgaW5zZXJ0aW9ucygrKSwgMTIxMyBkZWxldGlvbnMoLSkKIHJlbmFtZSBkcml2ZXJzL2RtYS1i 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 L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwppbmRleCAwNmYyNDMyMmU3YzMuLjIyY2Fi YjU0NTZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt 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 UykKQEAgLTI3OSwxMiArMjc5LDEyIEBAIGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJY29udGludWU7CiAKIAkJ aWYgKGlkLT5sYXN0X2ZsdXNoLT5jb250ZXh0ICE9IGZlbmNlX2NvbnRleHQgJiYKLQkJICAgICFm ZW5jZV9pc19zaWduYWxlZChpZC0+bGFzdF9mbHVzaCkpCisJCSAgICAhZG1hX2ZlbmNlX2lzX3Np Z25hbGVkKGlkLT5sYXN0X2ZsdXNoKSkKIAkJCWNvbnRpbnVlOwogCiAJCWZsdXNoZWQgID0gaWQt PmZsdXNoZWRfdXBkYXRlczsKIAkJaWYgKHVwZGF0ZXMgJiYKLQkJICAgICghZmx1c2hlZCB8fCBm ZW5jZV9pc19sYXRlcih1cGRhdGVzLCBmbHVzaGVkKSkpCisJCSAgICAoIWZsdXNoZWQgfHwgZG1h X2ZlbmNlX2lzX2xhdGVyKHVwZGF0ZXMsIGZsdXNoZWQpKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8q IEdvb2Qgd2UgY2FuIHVzZSB0aGlzIFZNSUQuIFJlbWVtYmVyIHRoaXMgc3VibWlzc2lvbiBhcwpA QCAtMzE1LDE0ICszMTUsMTQgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVf dm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJaWYgKHIpCiAJCWdvdG8gZXJyb3I7 CiAKLQlmZW5jZV9wdXQoaWQtPmZpcnN0KTsKLQlpZC0+Zmlyc3QgPSBmZW5jZV9nZXQoZmVuY2Up OworCWRtYV9mZW5jZV9wdXQoaWQtPmZpcnN0KTsKKwlpZC0+Zmlyc3QgPSBkbWFfZmVuY2VfZ2V0 KGZlbmNlKTsKIAotCWZlbmNlX3B1dChpZC0+bGFzdF9mbHVzaCk7CisJZG1hX2ZlbmNlX3B1dChp ZC0+bGFzdF9mbHVzaCk7CiAJaWQtPmxhc3RfZmx1c2ggPSBOVUxMOwogCi0JZmVuY2VfcHV0KGlk LT5mbHVzaGVkX3VwZGF0ZXMpOwotCWlkLT5mbHVzaGVkX3VwZGF0ZXMgPSBmZW5jZV9nZXQodXBk YXRlcyk7CisJZG1hX2ZlbmNlX3B1dChpZC0+Zmx1c2hlZF91cGRhdGVzKTsKKwlpZC0+Zmx1c2hl ZF91cGRhdGVzID0gZG1hX2ZlbmNlX2dldCh1cGRhdGVzKTsKIAogCWlkLT5wZF9ncHVfYWRkciA9 IGpvYi0+dm1fcGRfYWRkcjsKIAlpZC0+Y3VycmVudF9ncHVfcmVzZXRfY291bnQgPSBhdG9taWNf cmVhZCgmYWRldi0+Z3B1X3Jlc2V0X2NvdW50ZXIpOwpAQCAtMzkzLDcgKzM5Myw3IEBAIGludCBh bWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pv YiAqam9iKQogCiAJaWYgKHJpbmctPmZ1bmNzLT5lbWl0X3ZtX2ZsdXNoICYmIChqb2ItPnZtX25l ZWRzX2ZsdXNoIHx8CiAJICAgIGFtZGdwdV92bV9pc19ncHVfcmVzZXQoYWRldiwgaWQpKSkgewot CQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQl0 cmFjZV9hbWRncHVfdm1fZmx1c2goam9iLT52bV9wZF9hZGRyLCByaW5nLT5pZHgsIGpvYi0+dm1f aWQpOwogCQlhbWRncHVfcmluZ19lbWl0X3ZtX2ZsdXNoKHJpbmcsIGpvYi0+dm1faWQsIGpvYi0+ dm1fcGRfYWRkcik7CkBAIC00MDMsNyArNDAzLDcgQEAgaW50IGFtZGdwdV92bV9mbHVzaChzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfam9iICpqb2IpCiAJCQlyZXR1cm4g cjsKIAogCQltdXRleF9sb2NrKCZhZGV2LT52bV9tYW5hZ2VyLmxvY2spOwotCQlmZW5jZV9wdXQo aWQtPmxhc3RfZmx1c2gpOworCQlkbWFfZmVuY2VfcHV0KGlkLT5sYXN0X2ZsdXNoKTsKIAkJaWQt Pmxhc3RfZmx1c2ggPSBmZW5jZTsKIAkJbXV0ZXhfdW5sb2NrKCZhZGV2LT52bV9tYW5hZ2VyLmxv Y2spOwogCX0KQEAgLTUzNyw3ICs1MzcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVhcl9i byhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvKQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZzsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNl ID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7CiAJc3RydWN0IGFtZGdw dV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKIAl1 bnNpZ25lZCBlbnRyaWVzOwpAQCAtNTc4LDcgKzU3OCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X2NsZWFyX2JvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlnb3RvIGVycm9yX2ZyZWU7 CiAKIAlhbWRncHVfYm9fZmVuY2UoYm8sIGZlbmNlLCB0cnVlKTsKLQlmZW5jZV9wdXQoZmVuY2Up OworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiAwOwogCiBlcnJvcl9mcmVlOgpAQCAt NjI1LDcgKzYyNSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9wZF9vcl9zaGFkb3co c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJdW5zaWduZWQgY291bnQgPSAwLCBwdF9pZHgs IG5kdzsKIAlzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iOwogCXN0cnVjdCBhbWRncHVfcHRlX3VwZGF0 ZV9wYXJhbXMgcGFyYW1zOwotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlID0gTlVMTDsKIAogCWludCByOwogCkBAIC03MTQsOSArNzE0LDkgQEAg c3RhdGljIGludCBhbWRncHVfdm1fdXBkYXRlX3BkX29yX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKIAkJCWdvdG8gZXJyb3JfZnJlZTsKIAogCQlhbWRncHVfYm9fZmVuY2UocGQs IGZlbmNlLCB0cnVlKTsKLQkJZmVuY2VfcHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7Ci0J CXZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7Ci0JCWZlbmNlX3B1 dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQodm0tPnBhZ2VfZGlyZWN0b3J5X2ZlbmNlKTsKKwkJ dm0tPnBhZ2VfZGlyZWN0b3J5X2ZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9m ZW5jZV9wdXQoZmVuY2UpOwogCiAJfSBlbHNlIHsKIAkJYW1kZ3B1X2pvYl9mcmVlKGpvYik7CkBA IC05MjksMjAgKzkyOSwyMCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdm1fZnJhZ19wdGVzKHN0cnVj dCBhbWRncHVfcHRlX3VwZGF0ZV9wYXJhbXMJKnBhcmFtcywKICAqIFJldHVybnMgMCBmb3Igc3Vj Y2VzcywgLUVJTlZBTCBmb3IgZmFpbHVyZS4KICAqLwogc3RhdGljIGludCBhbWRncHVfdm1fYm9f dXBkYXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgICAgIHN0 cnVjdCBmZW5jZSAqZXhjbHVzaXZlLAorCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpleGNs dXNpdmUsCiAJCQkJICAgICAgIHVpbnQ2NF90IHNyYywKIAkJCQkgICAgICAgZG1hX2FkZHJfdCAq cGFnZXNfYWRkciwKIAkJCQkgICAgICAgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCQkJICAgICAg IHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsYXN0LAogCQkJCSAgICAgICB1aW50MzJfdCBmbGFn cywgdWludDY0X3QgYWRkciwKLQkJCQkgICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkJ ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmc7CiAJdm9pZCAqb3duZXIgPSBBTURHUFVfRkVOQ0VfT1dORVJfVk07CiAJdW5zaWduZWQg bnB0ZXMsIG5jbWRzLCBuZHc7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1k Z3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOwor CXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCWludCByOwogCiAJbWVtc2V0KCZwYXJhbXMs IDAsIHNpemVvZihwYXJhbXMpKTsKQEAgLTEwNDUsMTAgKzEwNDUsMTAgQEAgc3RhdGljIGludCBh bWRncHVfdm1fYm9fdXBkYXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAK IAlhbWRncHVfYm9fZmVuY2Uodm0tPnBhZ2VfZGlyZWN0b3J5LCBmLCB0cnVlKTsKIAlpZiAoZmVu Y2UpIHsKLQkJZmVuY2VfcHV0KCpmZW5jZSk7Ci0JCSpmZW5jZSA9IGZlbmNlX2dldChmKTsKKwkJ ZG1hX2ZlbmNlX3B1dCgqZmVuY2UpOworCQkqZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwogCX0K LQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChmKTsKIAlyZXR1cm4gMDsKIAogZXJyb3Jf ZnJlZToKQEAgLTEwNzQsMTMgKzEwNzQsMTMgQEAgc3RhdGljIGludCBhbWRncHVfdm1fYm9fdXBk YXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAgKiBSZXR1cm5zIDAgZm9y IHN1Y2Nlc3MsIC1FSU5WQUwgZm9yIGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X2JvX3NwbGl0X21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkJICAgICAg c3RydWN0IGZlbmNlICpleGNsdXNpdmUsCisJCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZXhj bHVzaXZlLAogCQkJCSAgICAgIHVpbnQzMl90IGd0dF9mbGFncywKIAkJCQkgICAgICBkbWFfYWRk cl90ICpwYWdlc19hZGRyLAogCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJCSAg ICAgIHN0cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyAqbWFwcGluZywKIAkJCQkgICAgICB1aW50 MzJfdCBmbGFncywgdWludDY0X3QgYWRkciwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5j ZSkKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJY29uc3QgdWludDY0 X3QgbWF4X3NpemUgPSA2NFVMTCAqIDEwMjRVTEwgKiAxMDI0VUxMIC8gQU1ER1BVX0dQVV9QQUdF X1NJWkU7CiAKQEAgLTExNDcsNyArMTE0Nyw3IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWRtYV9hZGRyX3QgKnBhZ2VzX2FkZHIgPSBOVUxM OwogCXVpbnQzMl90IGd0dF9mbGFncywgZmxhZ3M7CiAJc3RydWN0IHR0bV9tZW1fcmVnICptZW07 Ci0Jc3RydWN0IGZlbmNlICpleGNsdXNpdmU7CisJc3RydWN0IGRtYV9mZW5jZSAqZXhjbHVzaXZl OwogCXVpbnQ2NF90IGFkZHI7CiAJaW50IHI7CiAKQEAgLTE1NDcsNyArMTU0Nyw3IEBAIHZvaWQg YW1kZ3B1X3ZtX2JvX3JtdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJa2ZyZWUobWFw cGluZyk7CiAJfQogCi0JZmVuY2VfcHV0KGJvX3ZhLT5sYXN0X3B0X3VwZGF0ZSk7CisJZG1hX2Zl bmNlX3B1dChib192YS0+bGFzdF9wdF91cGRhdGUpOwogCWtmcmVlKGJvX3ZhKTsKIH0KIApAQCAt MTcwOSw3ICsxNzA5LDcgQEAgdm9pZCBhbWRncHVfdm1fZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCiAKIAlhbWRncHVfYm9fdW5yZWYoJnZtLT5w YWdlX2RpcmVjdG9yeS0+c2hhZG93KTsKIAlhbWRncHVfYm9fdW5yZWYoJnZtLT5wYWdlX2RpcmVj dG9yeSk7Ci0JZmVuY2VfcHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7CisJZG1hX2ZlbmNl X3B1dCh2bS0+cGFnZV9kaXJlY3RvcnlfZmVuY2UpOwogfQogCiAvKioKQEAgLTE3MzMsNyArMTcz Myw4IEBAIHZvaWQgYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAkJCSAgICAgICZhZGV2LT52bV9tYW5hZ2VyLmlkc19scnUpOwogCX0KIAotCWFkZXYt PnZtX21hbmFnZXIuZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoQU1ER1BVX01B WF9SSU5HUyk7CisJYWRldi0+dm1fbWFuYWdlci5mZW5jZV9jb250ZXh0ID0KKwkJZG1hX2ZlbmNl X2NvbnRleHRfYWxsb2MoQU1ER1BVX01BWF9SSU5HUyk7CiAJZm9yIChpID0gMDsgaSA8IEFNREdQ VV9NQVhfUklOR1M7ICsraSkKIAkJYWRldi0+dm1fbWFuYWdlci5zZXFub1tpXSA9IDA7CiAKQEAg LTE3NTUsOCArMTc1Niw4IEBAIHZvaWQgYW1kZ3B1X3ZtX21hbmFnZXJfZmluaShzdHJ1Y3QgYW1k 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 L21zbV9kcnYuaAppbmRleCBkMGRhNTJmMmE4MDYuLjk0MGJmNDk5MmZlMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmgKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIG1zbV9nZW1fdnVubWFwKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqLAogCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIGJvb2wg ZXhjbHVzaXZlKTsKIHZvaWQgbXNtX2dlbV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwKLQkJc3RydWN0IG1zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVj dCBmZW5jZSAqZmVuY2UpOworCQlzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBib29sIGV4Y2x1c2l2ZSwg c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwogdm9pZCBtc21fZ2VtX21vdmVfdG9faW5hY3RpdmUo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogaW50IG1zbV9nZW1fY3B1X3ByZXAoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosIHVpbnQzMl90IG9wLCBrdGltZV90ICp0aW1lb3V0KTsKIGlu dCBtc21fZ2VtX2NwdV9maW5pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9mZW5jZS5jCmluZGV4IGE5YjliMWM5NWEyZS4uNDI3YWM3NDc0MmE0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2ZlbmNlLmMKQEAgLTE1LDcgKzE1LDcgQEAKICAqIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAqLwogCi0jaW5jbHVkZSA8 bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2luY2x1ZGUg Im1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21fZmVuY2UuaCIKQEAgLTMyLDcgKzMyLDcgQEAgbXNt X2ZlbmNlX2NvbnRleHRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAq bmFtZSkKIAogCWZjdHgtPmRldiA9IGRldjsKIAlmY3R4LT5uYW1lID0gbmFtZTsKLQlmY3R4LT5j b250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYygxKTsKKwlmY3R4LT5jb250ZXh0ID0gZG1hX2Zl bmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZmN0eC0+ZXZlbnQp OwogCXNwaW5fbG9ja19pbml0KCZmY3R4LT5zcGlubG9jayk7CiAKQEAgLTQ0LDcgKzQ0LDcgQEAg dm9pZCBtc21fZmVuY2VfY29udGV4dF9mcmVlKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0 eCkKIAlrZnJlZShmY3R4KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGZlbmNlX2NvbXBsZXRl ZChzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIHVpbnQzMl90IGZlbmNlKQorc3RhdGlj IGlubGluZSBib29sIGRtYV9mZW5jZV9jb21wbGV0ZWQoc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0 ICpmY3R4LCB1aW50MzJfdCBmZW5jZSkKIHsKIAlyZXR1cm4gKGludDMyX3QpKGZjdHgtPmNvbXBs ZXRlZF9mZW5jZSAtIGZlbmNlKSA+PSAwOwogfQpAQCAtNjMsNyArNjMsNyBAQCBpbnQgbXNtX3dh aXRfZmVuY2Uoc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5jZSwK IAogCWlmICghdGltZW91dCkgewogCQkvKiBuby13YWl0OiAqLwotCQlyZXQgPSBmZW5jZV9jb21w bGV0ZWQoZmN0eCwgZmVuY2UpID8gMCA6IC1FQlVTWTsKKwkJcmV0ID0gZG1hX2ZlbmNlX2NvbXBs ZXRlZChmY3R4LCBmZW5jZSkgPyAwIDogLUVCVVNZOwogCX0gZWxzZSB7CiAJCXVuc2lnbmVkIGxv bmcgcmVtYWluaW5nX2ppZmZpZXMgPSB0aW1lb3V0X3RvX2ppZmZpZXModGltZW91dCk7CiAKQEAg LTEwMCw1MiArMTAwLDUyIEBAIHZvaWQgbXNtX3VwZGF0ZV9mZW5jZShzdHJ1Y3QgbXNtX2ZlbmNl X2NvbnRleHQgKmZjdHgsIHVpbnQzMl90IGZlbmNlKQogCiBzdHJ1Y3QgbXNtX2ZlbmNlIHsKIAlz dHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHg7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJc3Ry dWN0IGRtYV9mZW5jZSBiYXNlOwogfTsKIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgbXNtX2ZlbmNl ICp0b19tc21fZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0 IG1zbV9mZW5jZSAqdG9fbXNtX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJl dHVybiBjb250YWluZXJfb2YoZmVuY2UsIHN0cnVjdCBtc21fZmVuY2UsIGJhc2UpOwogfQogCi1z dGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKm1zbV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJtc20iOwogfQogCi1zdGF0aWMgY29u c3QgY2hhciAqbXNtX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitzdGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBtc21fZmVuY2UgKmYgPSB0b19tc21fZmVuY2Uo ZmVuY2UpOwogCXJldHVybiBmLT5mY3R4LT5uYW1lOwogfQogCi1zdGF0aWMgYm9vbCBtc21fZmVu Y2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgbXNt X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0 dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIG1zbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorc3RhdGljIGJvb2wgbXNtX2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKQogewogCXN0cnVjdCBtc21fZmVuY2UgKmYgPSB0b19tc21fZmVuY2UoZmVuY2Up OwotCXJldHVybiBmZW5jZV9jb21wbGV0ZWQoZi0+ZmN0eCwgZi0+YmFzZS5zZXFubyk7CisJcmV0 dXJuIGRtYV9mZW5jZV9jb21wbGV0ZWQoZi0+ZmN0eCwgZi0+YmFzZS5zZXFubyk7CiB9CiAKLXN0 YXRpYyB2b2lkIG1zbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMg dm9pZCBtc21fZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1 Y3QgbXNtX2ZlbmNlICpmID0gdG9fbXNtX2ZlbmNlKGZlbmNlKTsKIAlrZnJlZV9yY3UoZiwgYmFz ZS5yY3UpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBtc21fZmVuY2Vfb3Bz ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIG1zbV9mZW5jZV9vcHMgPSB7 CiAJLmdldF9kcml2ZXJfbmFtZSA9IG1zbV9mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90 aW1lbGluZV9uYW1lID0gbXNtX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2ln bmFsaW5nID0gbXNtX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gbXNtX2Zl bmNlX3NpZ25hbGVkLAotCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93YWl0LAorCS53YWl0ID0gZG1h X2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IG1zbV9mZW5jZV9yZWxlYXNlLAogfTsK IAotc3RydWN0IGZlbmNlICoKK3N0cnVjdCBkbWFfZmVuY2UgKgogbXNtX2ZlbmNlX2FsbG9jKHN0 cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCkKIHsKIAlzdHJ1Y3QgbXNtX2ZlbmNlICpmOwpA QCAtMTU2LDggKzE1Niw4IEBAIG1zbV9mZW5jZV9hbGxvYyhzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRl eHQgKmZjdHgpCiAKIAlmLT5mY3R4ID0gZmN0eDsKIAotCWZlbmNlX2luaXQoJmYtPmJhc2UsICZt c21fZmVuY2Vfb3BzLCAmZmN0eC0+c3BpbmxvY2ssCi0JCQlmY3R4LT5jb250ZXh0LCArK2ZjdHgt Pmxhc3RfZmVuY2UpOworCWRtYV9mZW5jZV9pbml0KCZmLT5iYXNlLCAmbXNtX2ZlbmNlX29wcywg JmZjdHgtPnNwaW5sb2NrLAorCQkgICAgICAgZmN0eC0+Y29udGV4dCwgKytmY3R4LT5sYXN0X2Zl bmNlKTsKIAogCXJldHVybiAmZi0+YmFzZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oCmluZGV4 IGNlYjViM2QzMTRiNC4uNTYwNjFhYTE5NTlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9mZW5jZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmgKQEAg LTQxLDYgKzQxLDYgQEAgaW50IG1zbV9xdWV1ZV9mZW5jZV9jYihzdHJ1Y3QgbXNtX2ZlbmNlX2Nv bnRleHQgKmZjdHgsCiAJCXN0cnVjdCBtc21fZmVuY2VfY2IgKmNiLCB1aW50MzJfdCBmZW5jZSk7 CiB2b2lkIG1zbV91cGRhdGVfZmVuY2Uoc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4LCB1 aW50MzJfdCBmZW5jZSk7CiAKLXN0cnVjdCBmZW5jZSAqIG1zbV9mZW5jZV9hbGxvYyhzdHJ1Y3Qg bXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpOworc3RydWN0IGRtYV9mZW5jZSAqIG1zbV9mZW5jZV9h bGxvYyhzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpOwogCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZ2VtLmMKaW5kZXggYjZhYzI3ZTMxOTI5Li41N2RiN2RiYmI2MTggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dlbS5jCkBAIC01MjEsNyArNTIxLDcgQEAgaW50IG1zbV9nZW1fc3luY19vYmplY3Qoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosCiB7CiAJc3RydWN0IG1zbV9nZW1fb2JqZWN0ICptc21fb2Jq ID0gdG9fbXNtX2JvKG9iaik7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2Jq OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50 IGksIHJldDsKIAogCWlmICghZXhjbHVzaXZlKSB7CkBAIC01NDAsNyArNTQwLDcgQEAgaW50IG1z bV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiAJCWZlbmNlID0g cmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG1zbV9vYmotPnJlc3YpOwogCQkvKiBkb24ndCBu ZWVkIHRvIHdhaXQgb24gb3VyIG93biBmZW5jZXMsIHNpbmNlIHJpbmcgaXMgZmlmbyAqLwogCQlp ZiAoZmVuY2UgJiYgKGZlbmNlLT5jb250ZXh0ICE9IGZjdHgtPmNvbnRleHQpKSB7Ci0JCQlyZXQg PSBmZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKKwkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNl LCB0cnVlKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQpAQCAtNTUzLDcgKzU1 Myw3IEBAIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq LAogCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLAog CQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQobXNtX29iai0+cmVzdikpOwogCQlpZiAoZmVu Y2UtPmNvbnRleHQgIT0gZmN0eC0+Y29udGV4dCkgewotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5j ZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CiAJCQlpZiAo cmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTU2Myw3ICs1NjMsNyBAQCBpbnQgbXNtX2dl bV9zeW5jX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIH0KIAogdm9pZCBtc21f Z2VtX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQlzdHJ1Y3Qg bXNtX2dwdSAqZ3B1LCBib29sIGV4Y2x1c2l2ZSwgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJc3Ry dWN0IG1zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHRvX21zbV9ibyhvYmopOwog CVdBUk5fT04obXNtX29iai0+bWFkdiAhPSBNU01fTUFEVl9XSUxMTkVFRCk7CkBAIC02MTYsMTAg KzYxNiwxMCBAQCBpbnQgbXNtX2dlbV9jcHVfZmluaShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aikKIH0KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGljIHZvaWQgZGVzY3JpYmVfZmVu Y2Uoc3RydWN0IGZlbmNlICpmZW5jZSwgY29uc3QgY2hhciAqdHlwZSwKK3N0YXRpYyB2b2lkIGRl c2NyaWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBjb25zdCBjaGFyICp0eXBlLAog CQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7Ci0JaWYgKCFmZW5jZV9pc19zaWduYWxlZChmZW5jZSkp CisJaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlzZXFfcHJpbnRmKG0sICJc dCU5czogJXMgJXMgc2VxICV1XG4iLCB0eXBlLAogCQkJCWZlbmNlLT5vcHMtPmdldF9kcml2ZXJf bmFtZShmZW5jZSksCiAJCQkJZmVuY2UtPm9wcy0+Z2V0X3RpbWVsaW5lX25hbWUoZmVuY2UpLApA QCAtNjMxLDcgKzYzMSw3IEBAIHZvaWQgbXNtX2dlbV9kZXNjcmliZShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwgc3RydWN0IHNlcV9maWxlICptKQogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAq bXNtX29iaiA9IHRvX21zbV9ibyhvYmopOwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJv YmogPSBtc21fb2JqLT5yZXN2OwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9i ajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXVp bnQ2NF90IG9mZiA9IGRybV92bWFfbm9kZV9zdGFydCgmb2JqLT52bWFfbm9kZSk7CiAJY29uc3Qg Y2hhciAqbWFkdjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaAppbmRleCBiMmYxM2NmZTk0NWUuLjJjYjg1 NTFmZGE3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBzdHJ1Y3Qg bXNtX2dlbV9zdWJtaXQgewogCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsgICAvKiBub2RlIGluIGdw dSBzdWJtaXRfbGlzdCAqLwogCXN0cnVjdCBsaXN0X2hlYWQgYm9fbGlzdDsKIAlzdHJ1Y3Qgd3df YWNxdWlyZV9jdHggdGlja2V0OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CiAJc3RydWN0IHBpZCAqcGlkOyAgICAvKiBzdWJtaXR0aW5nIHByb2Nlc3Mg Ki8KIAlib29sIHZhbGlkOyAgICAgICAgIC8qIHRydWUgaWYgbm8gY21kc3RyZWFtIHBhdGNoaW5n IG5lZWRlZCAqLwogCXVuc2lnbmVkIGludCBucl9jbWRzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2Vt X3N1Ym1pdC5jCmluZGV4IGI2YTBmMzdhNjVmMy4uMjVlODc4NmZhNGNhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ2VtX3N1Ym1pdC5jCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbXNt X2dlbV9zdWJtaXQgKnN1Ym1pdF9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogdm9p ZCBtc21fZ2VtX3N1Ym1pdF9mcmVlKHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0KQogewot CWZlbmNlX3B1dChzdWJtaXQtPmZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KHN1Ym1pdC0+ZmVuY2Up OwogCWxpc3RfZGVsKCZzdWJtaXQtPm5vZGUpOwogCXB1dF9waWQoc3VibWl0LT5waWQpOwogCWtm cmVlKHN1Ym1pdCk7CkBAIC0zODAsNyArMzgwLDcgQEAgaW50IG1zbV9pb2N0bF9nZW1fc3VibWl0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJc3RydWN0IG1zbV9maWxlX3By aXZhdGUgKmN0eCA9IGZpbGUtPmRyaXZlcl9wcml2OwogCXN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAq c3VibWl0OwogCXN0cnVjdCBtc21fZ3B1ICpncHUgPSBwcml2LT5ncHU7Ci0Jc3RydWN0IGZlbmNl ICppbl9mZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqaW5fZmVuY2UgPSBOVUxMOwog CXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IE5VTEw7CiAJaW50IG91dF9mZW5jZV9mZCA9 IC0xOwogCXVuc2lnbmVkIGk7CkBAIC00MzksNyArNDM5LDcgQEAgaW50IG1zbV9pb2N0bF9nZW1f c3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAqLwogCiAJCWlm IChpbl9mZW5jZS0+Y29udGV4dCAhPSBncHUtPmZjdHgtPmNvbnRleHQpIHsKLQkJCXJldCA9IGZl bmNlX3dhaXQoaW5fZmVuY2UsIHRydWUpOworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQoaW5fZmVu Y2UsIHRydWUpOwogCQkJaWYgKHJldCkKIAkJCQlnb3RvIG91dDsKIAkJfQpAQCAtNTQyLDcgKzU0 Miw3IEBAIGludCBtc21faW9jdGxfZ2VtX3N1Ym1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCiBvdXQ6CiAJaWYgKGluX2ZlbmNlKQotCQlmZW5jZV9wdXQoaW5fZmVuY2Up OworCQlkbWFfZmVuY2VfcHV0KGluX2ZlbmNlKTsKIAlzdWJtaXRfY2xlYW51cChzdWJtaXQpOwog CWlmIChyZXQpCiAJCW1zbV9nZW1fc3VibWl0X2ZyZWUoc3VibWl0KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1 LmMKaW5kZXggNWJiMDk4MzhiNWFlLi4zMjQ5NzA3ZTY4MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5j CkBAIC00NzYsNyArNDc2LDcgQEAgc3RhdGljIHZvaWQgcmV0aXJlX3N1Ym1pdHMoc3RydWN0IG1z bV9ncHUgKmdwdSkKIAkJc3VibWl0ID0gbGlzdF9maXJzdF9lbnRyeSgmZ3B1LT5zdWJtaXRfbGlz dCwKIAkJCQlzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQsIG5vZGUpOwogCi0JCWlmIChmZW5jZV9pc19z aWduYWxlZChzdWJtaXQtPmZlbmNlKSkgeworCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN1 Ym1pdC0+ZmVuY2UpKSB7CiAJCQlyZXRpcmVfc3VibWl0KGdwdSwgc3VibWl0KTsKIAkJfSBlbHNl IHsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCmluZGV4IDM0M2I4 NjU5NDcyYy4uZWM4YWM3NTZhYWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5j CkBAIC04MywxMyArODMsMTMgQEAgbnYxMF9ib19nZXRfdGlsZV9yZWdpb24oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGkpCiAKIHN0YXRpYyB2b2lkCiBudjEwX2JvX3B1dF90aWxlX3JlZ2lv bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qgbm91dmVhdV9kcm1fdGlsZSAqdGlsZSwK LQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7CiAKIAlpZiAodGls ZSkgewogCQlzcGluX2xvY2soJmRybS0+dGlsZS5sb2NrKTsKLQkJdGlsZS0+ZmVuY2UgPSAoc3Ry dWN0IG5vdXZlYXVfZmVuY2UgKilmZW5jZV9nZXQoZmVuY2UpOworCQl0aWxlLT5mZW5jZSA9IChz dHJ1Y3Qgbm91dmVhdV9mZW5jZSAqKWRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCQl0aWxlLT51c2Vk ID0gZmFsc2U7CiAJCXNwaW5fdW5sb2NrKCZkcm0tPnRpbGUubG9jayk7CiAJfQpAQCAtMTI0Myw3 ICsxMjQzLDcgQEAgbm91dmVhdV9ib192bV9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCiB7CiAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYm8tPmJk ZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcm0tPmRldjsKLQlzdHJ1Y3QgZmVuY2Ug KmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKGJvLT5yZXN2KTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+cmVzdik7 CiAKIAludjEwX2JvX3B1dF90aWxlX3JlZ2lvbihkZXYsICpvbGRfdGlsZSwgZmVuY2UpOwogCSpv bGRfdGlsZSA9IG5ld190aWxlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5j CmluZGV4IDRiYjlhYjg5MmFlMS4uZTk1MjllZTZiYzIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9mZW5jZS5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9r dGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KLSNpbmNsdWRlIDx0cmFjZS9ldmVu dHMvZmVuY2UuaD4KKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+CiAKICNpbmNs dWRlIDxudmlmL2NsODI2ZS5oPgogI2luY2x1ZGUgPG52aWYvbm90aWZ5Lmg+CkBAIC0zOCwxMSAr MzgsMTEgQEAKICNpbmNsdWRlICJub3V2ZWF1X2RtYS5oIgogI2luY2x1ZGUgIm5vdXZlYXVfZmVu Y2UuaCIKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNf dWV2ZW50Owotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNf bGVnYWN5Oworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vf b3BzX3VldmVudDsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBub3V2ZWF1X2Zl bmNlX29wc19sZWdhY3k7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5vdXZlYXVfZmVuY2UgKgot ZnJvbV9mZW5jZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorZnJvbV9mZW5jZShzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gY29udGFpbmVyX29mKGZlbmNlLCBzdHJ1Y3Qgbm91dmVh dV9mZW5jZSwgYmFzZSk7CiB9CkBAIC01OCwyMyArNTgsMjMgQEAgbm91dmVhdV9mZW5jZV9zaWdu YWwoc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlKQogewogCWludCBkcm9wID0gMDsKIAotCWZl bmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tl ZCgmZmVuY2UtPmJhc2UpOwogCWxpc3RfZGVsKCZmZW5jZS0+aGVhZCk7CiAJcmN1X2Fzc2lnbl9w b2ludGVyKGZlbmNlLT5jaGFubmVsLCBOVUxMKTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFH X1VTRVJfQklUUywgJmZlbmNlLT5iYXNlLmZsYWdzKSkgeworCWlmICh0ZXN0X2JpdChETUFfRkVO Q0VfRkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFzZS5mbGFncykpIHsKIAkJc3RydWN0IG5vdXZl YXVfZmVuY2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5jZSk7CiAKIAkJaWYgKCEtLWZj dHgtPm5vdGlmeV9yZWYpCiAJCQlkcm9wID0gMTsKIAl9CiAKLQlmZW5jZV9wdXQoJmZlbmNlLT5i YXNlKTsKKwlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJcmV0dXJuIGRyb3A7CiB9CiAK IHN0YXRpYyBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqCi1ub3V2ZWF1X2xvY2FsX2ZlbmNlKHN0cnVj dCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKSB7Citub3V2ZWF1X2xvY2Fs X2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkg ewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX3ByaXYgKnByaXYgPSAodm9pZCopZHJtLT5mZW5jZTsK IAogCWlmIChmZW5jZS0+b3BzICE9ICZub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3kgJiYKQEAgLTIw MSw3ICsyMDEsNyBAQCBub3V2ZWF1X2ZlbmNlX2NvbnRleHRfbmV3KHN0cnVjdCBub3V2ZWF1X2No YW5uZWwgKmNoYW4sIHN0cnVjdCBub3V2ZWF1X2ZlbmNlX2NoYQogCiBzdHJ1Y3Qgbm91dmVhdV9m ZW5jZV93b3JrIHsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKLQlzdHJ1Y3QgZmVuY2VfY2Ig Y2I7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIAl2b2lkICgqZnVuYykodm9pZCAqKTsKIAl2 b2lkICpkYXRhOwogfTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBub3V2ZWF1X2ZlbmNlX3dvcmtfaGFu ZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKmt3b3JrKQogCWtmcmVlKHdvcmspOwogfQogCi1zdGF0 aWMgdm9pZCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2Ioc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0 IGZlbmNlX2NiICpjYikKK3N0YXRpYyB2b2lkIG5vdXZlYXVfZmVuY2Vfd29ya19jYihzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0IG5v dXZlYXVfZmVuY2Vfd29yayAqd29yayA9IGNvbnRhaW5lcl9vZihjYiwgdHlwZW9mKCp3b3JrKSwg Y2IpOwogCkBAIC0yMjIsMTIgKzIyMiwxMiBAQCBzdGF0aWMgdm9pZCBub3V2ZWF1X2ZlbmNlX3dv cmtfY2Ioc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKIH0KIAogdm9p ZAotbm91dmVhdV9mZW5jZV93b3JrKHN0cnVjdCBmZW5jZSAqZmVuY2UsCitub3V2ZWF1X2ZlbmNl X3dvcmsoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCSAgIHZvaWQgKCpmdW5jKSh2b2lkICop LCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX3dvcmsgKndvcms7CiAKLQlp ZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQo ZmVuY2UpKQogCQlnb3RvIGVycjsKIAogCXdvcmsgPSBrbWFsbG9jKHNpemVvZigqd29yayksIEdG UF9LRVJORUwpOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIG5vdXZlYXVfZmVuY2Vfd29yayhzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLAogCXdvcmstPmZ1bmMgPSBmdW5jOwogCXdvcmstPmRhdGEgPSBkYXRhOwog Ci0JaWYgKGZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJndvcmstPmNiLCBub3V2ZWF1X2ZlbmNl X3dvcmtfY2IpIDwgMCkKKwlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJndvcmst PmNiLCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2IpIDwgMCkKIAkJZ290byBlcnJfZnJlZTsKIAlyZXR1 cm47CiAKQEAgLTI2NiwxNyArMjY2LDE3IEBAIG5vdXZlYXVfZmVuY2VfZW1pdChzdHJ1Y3Qgbm91 dmVhdV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4pCiAJZmVuY2Ut PnRpbWVvdXQgID0gamlmZmllcyArICgxNSAqIEhaKTsKIAogCWlmIChwcml2LT51ZXZlbnQpCi0J CWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmbm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50LAotCQkJ ICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+c2VxdWVuY2UpOworCQlkbWFf ZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1X2ZlbmNlX29wc191ZXZlbnQsCisJCQkg ICAgICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+c2VxdWVuY2UpOwogCWVs c2UKLQkJZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3ks Ci0JCQkgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwgKytmY3R4LT5zZXF1ZW5jZSk7CisJ CWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJm5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeSwK KwkJCSAgICAgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwgKytmY3R4LT5zZXF1ZW5jZSk7 CiAJa3JlZl9nZXQoJmZjdHgtPmZlbmNlX3JlZik7CiAKLQl0cmFjZV9mZW5jZV9lbWl0KCZmZW5j ZS0+YmFzZSk7CisJdHJhY2VfZG1hX2ZlbmNlX2VtaXQoJmZlbmNlLT5iYXNlKTsKIAlyZXQgPSBm Y3R4LT5lbWl0KGZlbmNlKTsKIAlpZiAoIXJldCkgewotCQlmZW5jZV9nZXQoJmZlbmNlLT5iYXNl KTsKKwkJZG1hX2ZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOwogCQlzcGluX2xvY2tfaXJxKCZmY3R4 LT5sb2NrKTsKIAogCQlpZiAobm91dmVhdV9mZW5jZV91cGRhdGUoY2hhbiwgZmN0eCkpCkBAIC0y OTgsNyArMjk4LDcgQEAgbm91dmVhdV9mZW5jZV9kb25lKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpm ZW5jZSkKIAkJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbjsKIAkJdW5zaWduZWQgbG9uZyBm bGFnczsKIAotCQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ YmFzZS5mbGFncykpCisJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQs ICZmZW5jZS0+YmFzZS5mbGFncykpCiAJCQlyZXR1cm4gdHJ1ZTsKIAogCQlzcGluX2xvY2tfaXJx c2F2ZSgmZmN0eC0+bG9jaywgZmxhZ3MpOwpAQCAtMzA3LDExICszMDcsMTEgQEAgbm91dmVhdV9m ZW5jZV9kb25lKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSkKIAkJCW52aWZfbm90aWZ5X3B1 dCgmZmN0eC0+bm90aWZ5KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmN0eC0+bG9jaywg ZmxhZ3MpOwogCX0KLQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoJmZlbmNlLT5iYXNlKTsKKwly ZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKCZmZW5jZS0+YmFzZSk7CiB9CiAKIHN0YXRpYyBs b25nCi1ub3V2ZWF1X2ZlbmNlX3dhaXRfbGVnYWN5KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRy LCBsb25nIHdhaXQpCitub3V2ZWF1X2ZlbmNlX3dhaXRfbGVnYWN5KHN0cnVjdCBkbWFfZmVuY2Ug KmYsIGJvb2wgaW50ciwgbG9uZyB3YWl0KQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5j ZSA9IGZyb21fZmVuY2UoZik7CiAJdW5zaWduZWQgbG9uZyBzbGVlcF90aW1lID0gTlNFQ19QRVJf TVNFQyAvIDEwMDA7CkBAIC0zNzgsNyArMzc4LDcgQEAgbm91dmVhdV9mZW5jZV93YWl0KHN0cnVj dCBub3V2ZWF1X2ZlbmNlICpmZW5jZSwgYm9vbCBsYXp5LCBib29sIGludHIpCiAJaWYgKCFsYXp5 KQogCQlyZXR1cm4gbm91dmVhdV9mZW5jZV93YWl0X2J1c3koZmVuY2UsIGludHIpOwogCi0JcmV0 ID0gZmVuY2Vfd2FpdF90aW1lb3V0KCZmZW5jZS0+YmFzZSwgaW50ciwgMTUgKiBIWik7CisJcmV0 ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dCgmZmVuY2UtPmJhc2UsIGludHIsIDE1ICogSFopOwog CWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCWVsc2UgaWYgKCFyZXQpCkBAIC0zOTEsNyAr MzkxLDcgQEAgaW50CiBub3V2ZWF1X2ZlbmNlX3N5bmMoc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8s IHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGJvb2wgZXhjbHVzaXZlLCBib29sIGludHIp CiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9IGNoYW4tPmZlbmNlOwotCXN0 cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IHJl c2VydmF0aW9uX29iamVjdCAqcmVzdiA9IG52Ym8tPmJvLnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdF9saXN0ICpmb2JqOwogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmOwpAQCAtNDIx LDcgKzQyMSw3IEBAIG5vdXZlYXVfZmVuY2Vfc3luYyhzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywg c3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgYm9vbCBlCiAJCX0KIAogCQlpZiAobXVzdF93 YWl0KQotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgaW50cik7CisJCQlyZXQgPSBkbWFfZmVu Y2Vfd2FpdChmZW5jZSwgaW50cik7CiAKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC00NDYsNyArNDQ2 LDcgQEAgbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLCBzdHJ1Y3Qg bm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIGUKIAkJfQogCiAJCWlmIChtdXN0X3dhaXQpCi0J CQlyZXQgPSBmZW5jZV93YWl0KGZlbmNlLCBpbnRyKTsKKwkJCXJldCA9IGRtYV9mZW5jZV93YWl0 KGZlbmNlLCBpbnRyKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZv aWQKIG5vdXZlYXVfZmVuY2VfdW5yZWYoc3RydWN0IG5vdXZlYXVfZmVuY2UgKipwZmVuY2UpCiB7 CiAJaWYgKCpwZmVuY2UpCi0JCWZlbmNlX3B1dCgmKCpwZmVuY2UpLT5iYXNlKTsKKwkJZG1hX2Zl bmNlX3B1dCgmKCpwZmVuY2UpLT5iYXNlKTsKIAkqcGZlbmNlID0gTlVMTDsKIH0KIApAQCAtNDg0 LDEyICs0ODQsMTIgQEAgbm91dmVhdV9mZW5jZV9uZXcoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAq Y2hhbiwgYm9vbCBzeXNtZW0sCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIg Km5vdXZlYXVfZmVuY2VfZ2V0X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQor c3RhdGljIGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gIm5vdXZlYXUiOwogfQogCi1zdGF0aWMg Y29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2Ug KmYpCitzdGF0aWMgY29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShz dHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZy b21fZmVuY2UoZik7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVf ZmN0eChmZW5jZSk7CkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKm5vdXZl YXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQogICogcmVzdWx0LiBU aGUgZHJtIG5vZGUgc2hvdWxkIHN0aWxsIGJlIHRoZXJlLCBzbyB3ZSBjYW4gZGVyaXZlIHRoZSBp bmRleCBmcm9tCiAgKiB0aGUgZmVuY2UgY29udGV4dC4KICAqLwotc3RhdGljIGJvb2wgbm91dmVh dV9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCBub3V2ZWF1 X2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IG5vdXZl YXVfZmVuY2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9j aGFuICpmY3R4ID0gbm91dmVhdV9mY3R4KGZlbmNlKTsKQEAgLTUxOSw3ICs1MTksNyBAQCBzdGF0 aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZikKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX25vX3NpZ25hbGluZyhzdHJ1 Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX25vX3NpZ25hbGluZyhzdHJ1 Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZyb21f ZmVuY2UoZik7CiAKQEAgLTUzMCwzMCArNTMwLDMwIEBAIHN0YXRpYyBib29sIG5vdXZlYXVfZmVu Y2Vfbm9fc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKIAlXQVJOX09OKGF0b21pY19yZWFkKCZm ZW5jZS0+YmFzZS5yZWZjb3VudC5yZWZjb3VudCkgPD0gMSk7CiAKIAkvKgotCSAqIFRoaXMgbmVl ZHMgdWV2ZW50cyB0byB3b3JrIGNvcnJlY3RseSwgYnV0IGZlbmNlX2FkZF9jYWxsYmFjayByZWxp ZXMgb24KKwkgKiBUaGlzIG5lZWRzIHVldmVudHMgdG8gd29yayBjb3JyZWN0bHksIGJ1dCBkbWFf ZmVuY2VfYWRkX2NhbGxiYWNrIHJlbGllcyBvbgogCSAqIGJlaW5nIGFibGUgdG8gZW5hYmxlIHNp Z25hbGluZy4gSXQgd2lsbCBzdGlsbCBnZXQgc2lnbmFsZWQgZXZlbnR1YWxseSwKIAkgKiBqdXN0 IG5vdCByaWdodCBhd2F5LgogCSAqLwogCWlmIChub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkKGYp KSB7CiAJCWxpc3RfZGVsKCZmZW5jZS0+aGVhZCk7CiAKLQkJZmVuY2VfcHV0KCZmZW5jZS0+YmFz ZSk7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBub3V2ZWF1X2ZlbmNlX3JlbGVhc2Uo c3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgbm91dmVhdV9mZW5jZV9yZWxlYXNlKHN0cnVj dCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlID0gZnJvbV9m ZW5jZShmKTsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0gbm91dmVhdV9mY3R4 KGZlbmNlKTsKIAogCWtyZWZfcHV0KCZmY3R4LT5mZW5jZV9yZWYsIG5vdXZlYXVfZmVuY2VfY29u dGV4dF9wdXQpOwotCWZlbmNlX2ZyZWUoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfZnJlZSgm ZmVuY2UtPmJhc2UpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBub3V2ZWF1 X2ZlbmNlX29wc19sZWdhY3kgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMg bm91dmVhdV9mZW5jZV9vcHNfbGVnYWN5ID0gewogCS5nZXRfZHJpdmVyX25hbWUgPSBub3V2ZWF1 X2ZlbmNlX2dldF9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gbm91dmVh dV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IG5vdXZlYXVf ZmVuY2Vfbm9fc2lnbmFsaW5nLApAQCAtNTYyLDcgKzU2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeSA9IHsKIAkucmVsZWFzZSA9IG5v dXZlYXVfZmVuY2VfcmVsZWFzZQogfTsKIAotc3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9lbmFi bGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIG5vdXZlYXVfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1 X2ZlbmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hh biAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5jZSk7CkBAIC01NzMsMTggKzU3MywxOCBAQCBzdGF0 aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQog CiAJcmV0ID0gbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmcoZik7CiAJaWYgKHJldCkKLQkJc2V0 X2JpdChGRU5DRV9GTEFHX1VTRVJfQklUUywgJmZlbmNlLT5iYXNlLmZsYWdzKTsKKwkJc2V0X2Jp dChETUFfRkVOQ0VfRkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFzZS5mbGFncyk7CiAJZWxzZSBp ZiAoIS0tZmN0eC0+bm90aWZ5X3JlZikKIAkJbnZpZl9ub3RpZnlfcHV0KCZmY3R4LT5ub3RpZnkp OwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgbm91 dmVhdV9mZW5jZV9vcHNfdWV2ZW50ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzIG5vdXZlYXVfZmVuY2Vfb3BzX3VldmVudCA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gbm91 dmVhdV9mZW5jZV9nZXRfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9IG5v dXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBub3V2 ZWF1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gbm91dmVhdV9mZW5jZV9p c19zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9m ZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBOVUxMCiB9OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9mZW5jZS5oCmluZGV4IDY0YzRjZTcxMTVhZC4uNDFmM2MwMTllNTM0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oCkBAIC0xLDE0ICsxLDE0IEBA CiAjaWZuZGVmIF9fTk9VVkVBVV9GRU5DRV9IX18KICNkZWZpbmUgX19OT1VWRUFVX0ZFTkNFX0hf XwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2Uu aD4KICNpbmNsdWRlIDxudmlmL25vdGlmeS5oPgogCiBzdHJ1Y3Qgbm91dmVhdV9kcm07CiBzdHJ1 Y3Qgbm91dmVhdV9ibzsKIAogc3RydWN0IG5vdXZlYXVfZmVuY2UgewotCXN0cnVjdCBmZW5jZSBi YXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsK IApAQCAtMjQsNyArMjQsNyBAQCB2b2lkIG5vdXZlYXVfZmVuY2VfdW5yZWYoc3RydWN0IG5vdXZl YXVfZmVuY2UgKiopOwogCiBpbnQgIG5vdXZlYXVfZmVuY2VfZW1pdChzdHJ1Y3Qgbm91dmVhdV9m ZW5jZSAqLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICopOwogYm9vbCBub3V2ZWF1X2ZlbmNlX2Rv bmUoc3RydWN0IG5vdXZlYXVfZmVuY2UgKik7Ci12b2lkIG5vdXZlYXVfZmVuY2Vfd29yayhzdHJ1 Y3QgZmVuY2UgKiwgdm9pZCAoKikodm9pZCAqKSwgdm9pZCAqKTsKK3ZvaWQgbm91dmVhdV9mZW5j ZV93b3JrKHN0cnVjdCBkbWFfZmVuY2UgKiwgdm9pZCAoKikodm9pZCAqKSwgdm9pZCAqKTsKIGlu dCAgbm91dmVhdV9mZW5jZV93YWl0KHN0cnVjdCBub3V2ZWF1X2ZlbmNlICosIGJvb2wgbGF6eSwg Ym9vbCBpbnRyKTsKIGludCAgbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBub3V2ZWF1X2JvICos IHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgYm9vbCBleGNsdXNpdmUsIGJvb2wgaW50cik7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCmluZGV4IDBiZDcxNjRiYzgxNy4uN2Yw ODNjOTVmNDIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMKQEAgLTExOSw3 ICsxMTksNyBAQCBub3V2ZWF1X2dlbV9vYmplY3RfdW5tYXAoc3RydWN0IG5vdXZlYXVfYm8gKm52 Ym8sIHN0cnVjdCBudmttX3ZtYSAqdm1hKQogCWNvbnN0IGJvb2wgbWFwcGVkID0gbnZiby0+Ym8u bWVtLm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU07CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqcmVzdiA9IG52Ym8tPmJvLnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0 ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlID0gTlVMTDsKIAogCWZvYmogPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QocmVz dik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MDRfZmVuY2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MDRfZmVuY2UuYwppbmRleCAxOTE1YjdiODJhNTku LmZhOGYyMzc1YzM5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYwNF9m ZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MDRfZmVuY2UuYwpAQCAtMTEw LDYgKzExMCw2IEBAIG52MDRfZmVuY2VfY3JlYXRlKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQog CXByaXYtPmJhc2UuY29udGV4dF9uZXcgPSBudjA0X2ZlbmNlX2NvbnRleHRfbmV3OwogCXByaXYt PmJhc2UuY29udGV4dF9kZWwgPSBudjA0X2ZlbmNlX2NvbnRleHRfZGVsOwogCXByaXYtPmJhc2Uu Y29udGV4dHMgPSAxNTsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRf YWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBk bWFfZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKIAlyZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBfZmVuY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBfZmVuY2UuYwppbmRleCA0ZTNkZTM0ZmY2ZjQuLmY5 OWZjZjU2OTI4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnYxMF9mZW5j ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBfZmVuY2UuYwpAQCAtMTA3LDcg KzEwNyw3IEBAIG52MTBfZmVuY2VfY3JlYXRlKHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQogCXBy aXYtPmJhc2UuY29udGV4dF9uZXcgPSBudjEwX2ZlbmNlX2NvbnRleHRfbmV3OwogCXByaXYtPmJh c2UuY29udGV4dF9kZWwgPSBudjEwX2ZlbmNlX2NvbnRleHRfZGVsOwogCXByaXYtPmJhc2UuY29u dGV4dHMgPSAzMTsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRfYWxs b2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBkbWFf ZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKIAlzcGluX2xvY2tfaW5p dCgmcHJpdi0+bG9jayk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjE3X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2Zl bmNlLmMKaW5kZXggN2Q1ZTU2MmE1NWM1Li43OWJjMDExMTEzNTEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udjE3X2ZlbmNlLmMKQEAgLTEyNiw3ICsxMjYsNyBAQCBudjE3X2ZlbmNlX2NyZWF0ZShz dHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKIAlwcml2LT5iYXNlLmNvbnRleHRfbmV3ID0gbnYxN19m ZW5jZV9jb250ZXh0X25ldzsKIAlwcml2LT5iYXNlLmNvbnRleHRfZGVsID0gbnYxMF9mZW5jZV9j b250ZXh0X2RlbDsKIAlwcml2LT5iYXNlLmNvbnRleHRzID0gMzE7Ci0JcHJpdi0+YmFzZS5jb250 ZXh0X2Jhc2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOworCXBy aXYtPmJhc2UuY29udGV4dF9iYXNlID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFz ZS5jb250ZXh0cyk7CiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOwogCiAJcmV0ID0gbm91 dmVhdV9ib19uZXcoZHJtLT5kZXYsIDQwOTYsIDB4MTAwMCwgVFRNX1BMX0ZMQUdfVlJBTSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYwppbmRleCA0ZDZmMjAyYjc3NzAuLjhjNTI5NTQx NDU3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYwpAQCAtOTcsNyArOTcsNyBA QCBudjUwX2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKIAlwcml2LT5iYXNl LmNvbnRleHRfbmV3ID0gbnY1MF9mZW5jZV9jb250ZXh0X25ldzsKIAlwcml2LT5iYXNlLmNvbnRl eHRfZGVsID0gbnYxMF9mZW5jZV9jb250ZXh0X2RlbDsKIAlwcml2LT5iYXNlLmNvbnRleHRzID0g MTI3OwotCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhwcml2 LT5iYXNlLmNvbnRleHRzKTsKKwlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGRtYV9mZW5jZV9j b250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOwogCXNwaW5fbG9ja19pbml0KCZwcml2 LT5sb2NrKTsKIAogCXJldCA9IG5vdXZlYXVfYm9fbmV3KGRybS0+ZGV2LCA0MDk2LCAweDEwMDAs IFRUTV9QTF9GTEFHX1ZSQU0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u djg0X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjg0X2ZlbmNlLmMKaW5kZXgg MThiZGU5ZDhlNmQ2Li4yM2VmMDRiNGUwYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L252ODRfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjg0X2Zl bmNlLmMKQEAgLTIyOSw3ICsyMjksNyBAQCBudjg0X2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVh dV9kcm0gKmRybSkKIAlwcml2LT5iYXNlLmNvbnRleHRfZGVsID0gbnY4NF9mZW5jZV9jb250ZXh0 X2RlbDsKIAogCXByaXYtPmJhc2UuY29udGV4dHMgPSBmaWZvLT5ucjsKLQlwcml2LT5iYXNlLmNv bnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CisJ cHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5i YXNlLmNvbnRleHRzKTsKIAlwcml2LT5iYXNlLnVldmVudCA9IHRydWU7CiAKIAkvKiBVc2UgVlJB TSBpZiB0aGVyZSBpcyBhbnkgOyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gc3lzdGVtIG1lbW9yeSAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vcXhsL3F4bF9kcnYuaAppbmRleCA1ZjNlNWFkOTlkZTcuLjg0OTk1ZWJjNmZmYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfZHJ2LmgKQEAgLTMxLDcgKzMxLDcgQEAKICAqIERlZmluaXRpb25zIHRha2Vu IGZyb20gc3BpY2UtcHJvdG9jb2wsIHBsdXMga2VybmVsIGRyaXZlciBzcGVjaWZpYyBiaXRzLgog ICovCiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5j ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Zpcm13 YXJlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CkBAIC0xOTAsNyArMTkw LDcgQEAgZW51bSB7CiAgKiBzcGljZS1wcm90b2NvbC9xeGxfZGV2LmggKi8KICNkZWZpbmUgUVhM X01BWF9SRVMgOTYKIHN0cnVjdCBxeGxfcmVsZWFzZSB7Ci0Jc3RydWN0IGZlbmNlIGJhc2U7CisJ c3RydWN0IGRtYV9mZW5jZSBiYXNlOwogCiAJaW50IGlkOwogCWludCB0eXBlOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfcmVsZWFzZS5jCmluZGV4IGNkODNmMDUwY2YzZS4uMDBkYzQzYmUxMzY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC0yMSw3ICsyMSw3IEBACiAgKi8KICNpbmNsdWRlICJx eGxfZHJ2LmgiCiAjaW5jbHVkZSAicXhsX29iamVjdC5oIgotI2luY2x1ZGUgPHRyYWNlL2V2ZW50 cy9mZW5jZS5oPgorI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9kbWFfZmVuY2UuaD4KIAogLyoKICAq IGRyYXdhYmxlIGNtZCBjYWNoZSAtIGFsbG9jYXRlIGEgYnVuY2ggb2YgVlJBTSBwYWdlcywgc3Vi YWxsb2NhdGUKQEAgLTQwLDIzICs0MCwyMyBAQAogc3RhdGljIGNvbnN0IGludCByZWxlYXNlX3Np emVfcGVyX2JvW10gPSB7IFJFTEVBU0VfU0laRSwgU1VSRkFDRV9SRUxFQVNFX1NJWkUsIFJFTEVB U0VfU0laRSB9Owogc3RhdGljIGNvbnN0IGludCByZWxlYXNlc19wZXJfYm9bXSA9IHsgUkVMRUFT RVNfUEVSX0JPLCBTVVJGQUNFX1JFTEVBU0VTX1BFUl9CTywgUkVMRUFTRVNfUEVSX0JPIH07CiAK LXN0YXRpYyBjb25zdCBjaGFyICpxeGxfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVu Y2UpCitzdGF0aWMgY29uc3QgY2hhciAqcXhsX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInF4bCI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpx eGxfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBj aGFyICpxeGxfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJ cmV0dXJuICJyZWxlYXNlIjsKIH0KIAotc3RhdGljIGJvb2wgcXhsX25vcF9zaWduYWxpbmcoc3Ry dWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHF4bF9ub3Bfc2lnbmFsaW5nKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKQogewogCS8qIGZlbmNlcyBhcmUgYWx3YXlzIGF1dG9tYXRpY2FsbHkg c2lnbmFsZWQsIHNvIGp1c3QgcHJldGVuZCB3ZSBkaWQgdGhpcy4uICovCiAJcmV0dXJuIHRydWU7 CiB9CiAKLXN0YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJv b2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK3N0YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0 KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQp CiB7CiAJc3RydWN0IHF4bF9kZXZpY2UgKnFkZXY7CiAJc3RydWN0IHF4bF9yZWxlYXNlICpyZWxl YXNlOwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgbG9uZyBxeGxfZmVuY2Vfd2FpdChzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiByZXRyeToKIAlz YysrOwogCi0JaWYgKGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lz X3NpZ25hbGVkKGZlbmNlKSkKIAkJZ290byBzaWduYWxlZDsKIAogCXF4bF9pb19ub3RpZnlfb29t KHFkZXYpOwpAQCAtODAsMTEgKzgwLDExIEBAIHN0YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0KHN0 cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAkJaWYg KCFxeGxfcXVldWVfZ2FyYmFnZV9jb2xsZWN0KHFkZXYsIHRydWUpKQogCQkJYnJlYWs7CiAKLQkJ aWYgKGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKKwkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxl ZChmZW5jZSkpCiAJCQlnb3RvIHNpZ25hbGVkOwogCX0KIAotCWlmIChmZW5jZV9pc19zaWduYWxl ZChmZW5jZSkpCisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCiAJCWdvdG8gc2ln bmFsZWQ7CiAKIAlpZiAoaGF2ZV9kcmF3YWJsZV9yZWxlYXNlcyB8fCBzYyA8IDQpIHsKQEAgLTk2 LDkgKzk2LDEwIEBAIHN0YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVu Y2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAkJCXJldHVybiAwOwogCiAJCWlm IChoYXZlX2RyYXdhYmxlX3JlbGVhc2VzICYmIHNjID4gMzAwKSB7Ci0JCQlGRU5DRV9XQVJOKGZl bmNlLCAiZmFpbGVkIHRvIHdhaXQgb24gcmVsZWFzZSAlbGx1ICIKLQkJCQkJICAiYWZ0ZXIgc3Bp bmNvdW50ICVkXG4iLAotCQkJCQkgIGZlbmNlLT5jb250ZXh0ICYgfjB4ZjAwMDAwMDAsIHNjKTsK KwkJCURNQV9GRU5DRV9XQVJOKGZlbmNlLAorCQkJCSAgICAgICAiZmFpbGVkIHRvIHdhaXQgb24g cmVsZWFzZSAlbGx1ICIKKwkJCQkgICAgICAgImFmdGVyIHNwaW5jb3VudCAlZFxuIiwKKwkJCQkg ICAgICAgZmVuY2UtPmNvbnRleHQgJiB+MHhmMDAwMDAwMCwgc2MpOwogCQkJZ290byBzaWduYWxl ZDsKIAkJfQogCQlnb3RvIHJldHJ5OwpAQCAtMTE1LDcgKzExNiw3IEBAIHN0YXRpYyBsb25nIHF4 bF9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcg dGltZW91dCkKIAlyZXR1cm4gZW5kIC0gY3VyOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZl bmNlX29wcyBxeGxfZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzIHF4bF9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IHF4bF9nZXRfZHJpdmVy X25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gcXhsX2dldF90aW1lbGluZV9uYW1lLAogCS5l bmFibGVfc2lnbmFsaW5nID0gcXhsX25vcF9zaWduYWxpbmcsCkBAIC0xOTIsOCArMTkzLDggQEAg cXhsX3JlbGVhc2VfZnJlZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKIAkJV0FSTl9PTihsaXN0 X2VtcHR5KCZyZWxlYXNlLT5ib3MpKTsKIAkJcXhsX3JlbGVhc2VfZnJlZV9saXN0KHJlbGVhc2Up OwogCi0JCWZlbmNlX3NpZ25hbCgmcmVsZWFzZS0+YmFzZSk7Ci0JCWZlbmNlX3B1dCgmcmVsZWFz ZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoJnJlbGVhc2UtPmJhc2UpOworCQlkbWFfZmVu Y2VfcHV0KCZyZWxlYXNlLT5iYXNlKTsKIAl9IGVsc2UgewogCQlxeGxfcmVsZWFzZV9mcmVlX2xp c3QocmVsZWFzZSk7CiAJCWtmcmVlKHJlbGVhc2UpOwpAQCAtNDUzLDkgKzQ1NCw5IEBAIHZvaWQg cXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9yZWxlYXNlICpyZWxl YXNlKQogCSAqIFNpbmNlIHdlIG5ldmVyIHJlYWxseSBhbGxvY2F0ZWQgYSBjb250ZXh0IGFuZCB3 ZSBkb24ndCB3YW50IHRvIGNvbmZsaWN0LAogCSAqIHNldCB0aGUgaGlnaGVzdCBiaXRzLiBUaGlz IHdpbGwgYnJlYWsgaWYgd2UgcmVhbGx5IGFsbG93IGV4cG9ydGluZyBvZiBkbWEtYnVmcy4KIAkg Ki8KLQlmZW5jZV9pbml0KCZyZWxlYXNlLT5iYXNlLCAmcXhsX2ZlbmNlX29wcywgJnFkZXYtPnJl bGVhc2VfbG9jaywKLQkJICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCByZWxlYXNlLT5iYXNl LnNlcW5vKTsKLQl0cmFjZV9mZW5jZV9lbWl0KCZyZWxlYXNlLT5iYXNlKTsKKwlkbWFfZmVuY2Vf aW5pdCgmcmVsZWFzZS0+YmFzZSwgJnF4bF9mZW5jZV9vcHMsICZxZGV2LT5yZWxlYXNlX2xvY2ss CisJCSAgICAgICByZWxlYXNlLT5pZCB8IDB4ZjAwMDAwMDAsIHJlbGVhc2UtPmJhc2Uuc2Vxbm8p OworCXRyYWNlX2RtYV9mZW5jZV9lbWl0KCZyZWxlYXNlLT5iYXNlKTsKIAogCWRyaXZlciA9IGJk ZXYtPmRyaXZlcjsKIAlnbG9iID0gYm8tPmdsb2I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAppbmRl eCAxYjBkY2FkOTE2YjAuLjQ0ZTBjNWVkNjQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBA IC02Niw3ICs2Niw3IEBACiAjaW5jbHVkZSA8bGludXgva3JlZi5oPgogI2luY2x1ZGUgPGxpbnV4 L2ludGVydmFsX3RyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9oYXNodGFibGUuaD4KLSNpbmNsdWRl IDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVk ZSA8dHRtL3R0bV9ib19hcGkuaD4KICNpbmNsdWRlIDx0dG0vdHRtX2JvX2RyaXZlci5oPgpAQCAt MzY3LDcgKzM2Nyw3IEBAIHN0cnVjdCByYWRlb25fZmVuY2VfZHJpdmVyIHsKIH07CiAKIHN0cnVj dCByYWRlb25fZmVuY2UgewotCXN0cnVjdCBmZW5jZQkJYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNl CQliYXNlOwogCiAJc3RydWN0IHJhZGVvbl9kZXZpY2UJKnJkZXY7CiAJdWludDY0X3QJCXNlcTsK QEAgLTc0Niw3ICs3NDYsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZsaXBfd29yayB7CiAJdWludDY0X3QJ CQliYXNlOwogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50OwogCXN0cnVj dCByYWRlb25fYm8JCSpvbGRfcmJvOwotCXN0cnVjdCBmZW5jZQkJCSpmZW5jZTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlCQkqZmVuY2U7CiAJYm9vbAkJCQlhc3luYzsKIH07CiAKQEAgLTI1MTQsOSArMjUx NCw5IEBAIHZvaWQgY2lrX21tX3dkb29yYmVsbChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg dTMyIGluZGV4LCB1MzIgdik7CiAvKgogICogQ2FzdCBoZWxwZXIKICAqLwotZXh0ZXJuIGNvbnN0 IHN0cnVjdCBmZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wczsKK2V4dGVybiBjb25zdCBzdHJ1Y3Qg ZG1hX2ZlbmNlX29wcyByYWRlb25fZmVuY2Vfb3BzOwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBy YWRlb25fZmVuY2UgKnRvX3JhZGVvbl9mZW5jZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgaW5s aW5lIHN0cnVjdCByYWRlb25fZmVuY2UgKnRvX3JhZGVvbl9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKl9fZiA9IGNvbnRhaW5lcl9vZihmLCBzdHJ1 Y3QgcmFkZW9uX2ZlbmNlLCBiYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZp Y2UuYwppbmRleCBlYjkyYWVmNDZlM2MuLjM2YjdhYzdlNTdlNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZGV2aWNlLmMKQEAgLTEzMjAsNyArMTMyMCw3IEBAIGludCByYWRlb25fZGV2 aWNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJZm9yIChpID0gMDsgaSA8IFJB REVPTl9OVU1fUklOR1M7IGkrKykgewogCQlyZGV2LT5yaW5nW2ldLmlkeCA9IGk7CiAJfQotCXJk ZXYtPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKFJBREVPTl9OVU1fUklOR1Mp OworCXJkZXYtPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyhSQURFT05f TlVNX1JJTkdTKTsKIAogCURSTV9JTkZPKCJpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5n ICglcyAweCUwNFg6MHglMDRYIDB4JTA0WDoweCUwNFggMHglMDJYKS5cbiIsCiAJCSByYWRlb25f ZmFtaWx5X25hbWVbcmRldi0+ZmFtaWx5XSwgcGRldi0+dmVuZG9yLCBwZGV2LT5kZXZpY2UsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKaW5kZXggY2RiOGNiNTY4YzE1Li5l NzQwOWU4YTlmODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKQEAg LTQzNyw3ICs0MzcsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fZmxpcF93b3JrX2Z1bmMoc3RydWN0 IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCQkJZG93bl9yZWFkKCZyZGV2LT5leGNsdXNpdmVfbG9j ayk7CiAJCQl9CiAJCX0gZWxzZQotCQkJciA9IGZlbmNlX3dhaXQod29yay0+ZmVuY2UsIGZhbHNl KTsKKwkJCXIgPSBkbWFfZmVuY2Vfd2FpdCh3b3JrLT5mZW5jZSwgZmFsc2UpOwogCiAJCWlmIChy KQogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gd2FpdCBvbiBwYWdlIGZsaXAgZmVuY2UgKCVkKSFc biIsIHIpOwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9mbGlwX3dvcmtf ZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAkJICogY29uZnVzZWQgYWJvdXQgd2hp Y2ggQk8gdGhlIENSVEMgaXMgc2Nhbm5pbmcgb3V0CiAJCSAqLwogCi0JCWZlbmNlX3B1dCh3b3Jr LT5mZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQod29yay0+ZmVuY2UpOwogCQl3b3JrLT5mZW5jZSA9 IE5VTEw7CiAJfQogCkBAIC01NDIsNyArNTQyLDcgQEAgc3RhdGljIGludCByYWRlb25fY3J0Y19w YWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gcGluIG5ldyByYm8gYnVmZmVyIGJlZm9yZSBmbGlwXG4iKTsKIAkJZ290byBjbGVhbnVw OwogCX0KLQl3b3JrLT5mZW5jZSA9IGZlbmNlX2dldChyZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4 Y2wobmV3X3Jiby0+dGJvLnJlc3YpKTsKKwl3b3JrLT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQocmVz ZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG5ld19yYm8tPnRiby5yZXN2KSk7CiAJcmFkZW9uX2Jv X2dldF90aWxpbmdfZmxhZ3MobmV3X3JibywgJnRpbGluZ19mbGFncywgTlVMTCk7CiAJcmFkZW9u X2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKIApAQCAtNjE3LDcgKzYxNyw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uX2NydGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIGNs ZWFudXA6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJndvcmstPm9sZF9y Ym8tPmdlbV9iYXNlKTsKLQlmZW5jZV9wdXQod29yay0+ZmVuY2UpOworCWRtYV9mZW5jZV9wdXQo d29yay0+ZmVuY2UpOwogCWtmcmVlKHdvcmspOwogCXJldHVybiByOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2ZlbmNlLmMKaW5kZXggN2VmMDc1YWNkZTljLi5lZjA5ZjBhNjM3NTQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYwpAQCAtMTQxLDggKzE0MSwxMCBAQCBp bnQgcmFkZW9uX2ZlbmNlX2VtaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJKCpmZW5j ZSktPnNlcSA9IHNlcSA9ICsrcmRldi0+ZmVuY2VfZHJ2W3JpbmddLnN5bmNfc2VxW3JpbmddOwog CSgqZmVuY2UpLT5yaW5nID0gcmluZzsKIAkoKmZlbmNlKS0+aXNfdm1fdXBkYXRlID0gZmFsc2U7 Ci0JZmVuY2VfaW5pdCgmKCpmZW5jZSktPmJhc2UsICZyYWRlb25fZmVuY2Vfb3BzLAotCQkgICAm cmRldi0+ZmVuY2VfcXVldWUubG9jaywgcmRldi0+ZmVuY2VfY29udGV4dCArIHJpbmcsIHNlcSk7 CisJZG1hX2ZlbmNlX2luaXQoJigqZmVuY2UpLT5iYXNlLCAmcmFkZW9uX2ZlbmNlX29wcywKKwkJ ICAgICAgICZyZGV2LT5mZW5jZV9xdWV1ZS5sb2NrLAorCQkgICAgICAgcmRldi0+ZmVuY2VfY29u dGV4dCArIHJpbmcsCisJCSAgICAgICBzZXEpOwogCXJhZGVvbl9mZW5jZV9yaW5nX2VtaXQocmRl diwgcmluZywgKmZlbmNlKTsKIAl0cmFjZV9yYWRlb25fZmVuY2VfZW1pdChyZGV2LT5kZGV2LCBy aW5nLCAoKmZlbmNlKS0+c2VxKTsKIAlyYWRlb25fZmVuY2Vfc2NoZWR1bGVfY2hlY2socmRldiwg cmluZyk7CkBAIC0xNjksMTggKzE3MSwxOCBAQCBzdGF0aWMgaW50IHJhZGVvbl9mZW5jZV9jaGVj a19zaWduYWxlZCh3YWl0X3F1ZXVlX3QgKndhaXQsIHVuc2lnbmVkIG1vZGUsIGludCBmbAogCSAq LwogCXNlcSA9IGF0b21pYzY0X3JlYWQoJmZlbmNlLT5yZGV2LT5mZW5jZV9kcnZbZmVuY2UtPnJp bmddLmxhc3Rfc2VxKTsKIAlpZiAoc2VxID49IGZlbmNlLT5zZXEpIHsKLQkJaW50IHJldCA9IGZl bmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKKwkJaW50IHJldCA9IGRtYV9mZW5jZV9z aWduYWxfbG9ja2VkKCZmZW5jZS0+YmFzZSk7CiAKIAkJaWYgKCFyZXQpCi0JCQlGRU5DRV9UUkFD RSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKKwkJCURNQV9G RU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsK IAkJZWxzZQotCQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAid2FzIGFscmVhZHkgc2lnbmFs ZWRcbiIpOworCQkJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgIndhcyBhbHJlYWR5IHNp Z25hbGVkXG4iKTsKIAogCQlyYWRlb25faXJxX2ttc19zd19pcnFfcHV0KGZlbmNlLT5yZGV2LCBm ZW5jZS0+cmluZyk7CiAJCV9fcmVtb3ZlX3dhaXRfcXVldWUoJmZlbmNlLT5yZGV2LT5mZW5jZV9x dWV1ZSwgJmZlbmNlLT5mZW5jZV93YWtlKTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CisJ CWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAl9IGVsc2UKLQkJRkVOQ0VfVFJBQ0UoJmZl bmNlLT5iYXNlLCAicGVuZGluZ1xuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2Us ICJwZW5kaW5nXG4iKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzUxLDcgKzM1Myw3IEBAIHN0YXRp YyBib29sIHJhZGVvbl9mZW5jZV9zZXFfc2lnbmFsZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCByYWRlb25fZmVuY2VfaXNfc2ln bmFsZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgcmFkZW9uX2ZlbmNlX2lzX3NpZ25h bGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2Ug PSB0b19yYWRlb25fZmVuY2UoZik7CiAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBmZW5j ZS0+cmRldjsKQEAgLTM4MSw3ICszODMsNyBAQCBzdGF0aWMgYm9vbCByYWRlb25fZmVuY2VfaXNf c2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQogICogdG8gZmVuY2VfcXVldWUgdGhhdCBjaGVja3Mg aWYgdGhpcyBmZW5jZSBpcyBzaWduYWxlZCwgYW5kIGlmIHNvIGl0CiAgKiBzaWduYWxzIHRoZSBm ZW5jZSBhbmQgcmVtb3ZlcyBpdHNlbGYuCiAgKi8KLXN0YXRpYyBib29sIHJhZGVvbl9mZW5jZV9l bmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIHJhZGVvbl9mZW5j ZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHJhZGVv bl9mZW5jZSAqZmVuY2UgPSB0b19yYWRlb25fZmVuY2UoZik7CiAJc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYgPSBmZW5jZS0+cmRldjsKQEAgLTQxNCw5ICs0MTYsOSBAQCBzdGF0aWMgYm9vbCBy YWRlb25fZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCiAJZmVuY2UtPmZl bmNlX3dha2UucHJpdmF0ZSA9IE5VTEw7CiAJZmVuY2UtPmZlbmNlX3dha2UuZnVuYyA9IHJhZGVv bl9mZW5jZV9jaGVja19zaWduYWxlZDsKIAlfX2FkZF93YWl0X3F1ZXVlKCZyZGV2LT5mZW5jZV9x dWV1ZSwgJmZlbmNlLT5mZW5jZV93YWtlKTsKLQlmZW5jZV9nZXQoZik7CisJZG1hX2ZlbmNlX2dl dChmKTsKIAotCUZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgImFybWVkIG9uIHJpbmcgJWkhXG4i LCBmZW5jZS0+cmluZyk7CisJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgImFybWVkIG9u IHJpbmcgJWkhXG4iLCBmZW5jZS0+cmluZyk7CiAJcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQzNiw5 ICs0MzgsOSBAQCBib29sIHJhZGVvbl9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgcmFkZW9uX2ZlbmNl ICpmZW5jZSkKIAlpZiAocmFkZW9uX2ZlbmNlX3NlcV9zaWduYWxlZChmZW5jZS0+cmRldiwgZmVu Y2UtPnNlcSwgZmVuY2UtPnJpbmcpKSB7CiAJCWludCByZXQ7CiAKLQkJcmV0ID0gZmVuY2Vfc2ln bmFsKCZmZW5jZS0+YmFzZSk7CisJCXJldCA9IGRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNl KTsKIAkJaWYgKCFyZXQpCi0JCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBm cm9tIHJhZGVvbl9mZW5jZV9zaWduYWxlZFxuIik7CisJCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNl LT5iYXNlLCAic2lnbmFsZWQgZnJvbSByYWRlb25fZmVuY2Vfc2lnbmFsZWRcbiIpOwogCQlyZXR1 cm4gdHJ1ZTsKIAl9CiAJcmV0dXJuIGZhbHNlOwpAQCAtNTUyLDcgKzU1NCw3IEBAIGxvbmcgcmFk ZW9uX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwgYm9vbCBp bnRyLCBsb25nIHRpbWVvCiAJICogZXhjbHVzaXZlX2xvY2sgaXMgbm90IGhlbGQgaW4gdGhhdCBj YXNlLgogCSAqLwogCWlmIChXQVJOX09OX09OQ0UoIXRvX3JhZGVvbl9mZW5jZSgmZmVuY2UtPmJh c2UpKSkKLQkJcmV0dXJuIGZlbmNlX3dhaXQoJmZlbmNlLT5iYXNlLCBpbnRyKTsKKwkJcmV0dXJu IGRtYV9mZW5jZV93YWl0KCZmZW5jZS0+YmFzZSwgaW50cik7CiAKIAlzZXFbZmVuY2UtPnJpbmdd ID0gZmVuY2UtPnNlcTsKIAlyID0gcmFkZW9uX2ZlbmNlX3dhaXRfc2VxX3RpbWVvdXQoZmVuY2Ut PnJkZXYsIHNlcSwgaW50ciwgdGltZW91dCk7CkBAIC01NjAsOSArNTYyLDkgQEAgbG9uZyByYWRl b25fZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlLCBib29sIGlu dHIsIGxvbmcgdGltZW8KIAkJcmV0dXJuIHI7CiAJfQogCi0Jcl9zaWcgPSBmZW5jZV9zaWduYWwo JmZlbmNlLT5iYXNlKTsKKwlyX3NpZyA9IGRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsK IAlpZiAoIXJfc2lnKQotCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9t IGZlbmNlX3dhaXRcbiIpOworCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFs ZWQgZnJvbSBmZW5jZV93YWl0XG4iKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAtNjk3LDcgKzY5OSw3 IEBAIGludCByYWRlb25fZmVuY2Vfd2FpdF9lbXB0eShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwgaW50IHJpbmcpCiAgKi8KIHN0cnVjdCByYWRlb25fZmVuY2UgKnJhZGVvbl9mZW5jZV9yZWYo c3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UpCiB7Ci0JZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7 CisJZG1hX2ZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOwogCXJldHVybiBmZW5jZTsKIH0KIApAQCAt NzE0LDcgKzcxNiw3IEBAIHZvaWQgcmFkZW9uX2ZlbmNlX3VucmVmKHN0cnVjdCByYWRlb25fZmVu Y2UgKipmZW5jZSkKIAogCSpmZW5jZSA9IE5VTEw7CiAJaWYgKHRtcCkgewotCQlmZW5jZV9wdXQo JnRtcC0+YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJnRtcC0+YmFzZSk7CiAJfQogfQogCkBAIC0x MDI4LDEyICsxMDMwLDEyIEBAIGludCByYWRlb25fZGVidWdmc19mZW5jZV9pbml0KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogI2VuZGlmCiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpyYWRl b25fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29u c3QgY2hhciAqcmFkZW9uX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSkKIHsKIAlyZXR1cm4gInJhZGVvbiI7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpyYWRl b25fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGNvbnN0 IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpm KQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlID0gdG9fcmFkZW9uX2ZlbmNlKGYpOwog CXN3aXRjaCAoZmVuY2UtPnJpbmcpIHsKQEAgLTEwNTEsMTYgKzEwNTMsMTYgQEAgc3RhdGljIGNv bnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmYp CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCByYWRlb25fdGVzdF9zaWduYWxlZChzdHJ1Y3QgcmFkZW9u X2ZlbmNlICpmZW5jZSkKIHsKLQlyZXR1cm4gdGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9C SVQsICZmZW5jZS0+YmFzZS5mbGFncyk7CisJcmV0dXJuIHRlc3RfYml0KERNQV9GRU5DRV9GTEFH X1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKTsKIH0KIAogc3RydWN0IHJhZGVvbl93 YWl0X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJh c2U7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogfTsKIAogc3RhdGljIHZvaWQKLXJhZGVv bl9mZW5jZV93YWl0X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2Ip CityYWRlb25fZmVuY2Vfd2FpdF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRt YV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0IHJhZGVvbl93YWl0X2NiICp3YWl0ID0KIAkJY29u dGFpbmVyX29mKGNiLCBzdHJ1Y3QgcmFkZW9uX3dhaXRfY2IsIGJhc2UpOwpAQCAtMTA2OCw3ICsx MDcwLDcgQEAgcmFkZW9uX2ZlbmNlX3dhaXRfY2Ioc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0 IGZlbmNlX2NiICpjYikKIAl3YWtlX3VwX3Byb2Nlc3Mod2FpdC0+dGFzayk7CiB9CiAKLXN0YXRp YyBzaWduZWQgbG9uZyByYWRlb25fZmVuY2VfZGVmYXVsdF93YWl0KHN0cnVjdCBmZW5jZSAqZiwg Ym9vbCBpbnRyLAorc3RhdGljIHNpZ25lZCBsb25nIHJhZGVvbl9mZW5jZV9kZWZhdWx0X3dhaXQo c3RydWN0IGRtYV9mZW5jZSAqZiwgYm9vbCBpbnRyLAogCQkJCQkgICAgIHNpZ25lZCBsb25nIHQp CiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UgPSB0b19yYWRlb25fZmVuY2UoZik7CkBA IC0xMDc3LDcgKzEwNzksNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgcmFkZW9uX2ZlbmNlX2RlZmF1 bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwKIAogCWNiLnRhc2sgPSBjdXJyZW50 OwogCi0JaWYgKGZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuYmFzZSwgcmFkZW9uX2ZlbmNlX3dh aXRfY2IpKQorCWlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGYsICZjYi5iYXNlLCByYWRlb25f ZmVuY2Vfd2FpdF9jYikpCiAJCXJldHVybiB0OwogCiAJd2hpbGUgKHQgPiAwKSB7CkBAIC0xMTA1 LDEyICsxMTA3LDEyIEBAIHN0YXRpYyBzaWduZWQgbG9uZyByYWRlb25fZmVuY2VfZGVmYXVsdF93 YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLAogCX0KIAogCV9fc2V0X2N1cnJlbnRfc3Rh dGUoVEFTS19SVU5OSU5HKTsKLQlmZW5jZV9yZW1vdmVfY2FsbGJhY2soZiwgJmNiLmJhc2UpOwor CWRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soZiwgJmNiLmJhc2UpOwogCiAJcmV0dXJuIHQ7CiB9 CiAKLWNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wcyA9IHsKK2NvbnN0IHN0 cnVjdCBkbWFfZmVuY2Vfb3BzIHJhZGVvbl9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFt ZSA9IHJhZGVvbl9mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0g cmFkZW9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gcmFk ZW9uX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9zeW5jLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5j LmMKaW5kZXggMDJhYzhhMWRlNGZmLi5iZTVkN2EzOGQzYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9zeW5jLmMKQEAgLTkyLDcgKzkyLDcgQEAgaW50IHJhZGVvbl9zeW5jX3Jlc3Yoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCSAgICAgYm9vbCBzaGFyZWQpCiB7CiAJc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmbGlzdDsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3Ry dWN0IGRtYV9mZW5jZSAqZjsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKIAl1bnNpZ25l ZCBpOwogCWludCByID0gMDsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbnQgcmFkZW9uX3N5bmNfcmVz dihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpZiAoZmVuY2UgJiYgZmVuY2UtPnJkZXYg PT0gcmRldikKIAkJcmFkZW9uX3N5bmNfZmVuY2Uoc3luYywgZmVuY2UpOwogCWVsc2UgaWYgKGYp Ci0JCXIgPSBmZW5jZV93YWl0KGYsIHRydWUpOworCQlyID0gZG1hX2ZlbmNlX3dhaXQoZiwgdHJ1 ZSk7CiAKIAlmbGlzdCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChyZXN2KTsKIAlpZiAo c2hhcmVkIHx8ICFmbGlzdCB8fCByKQpAQCAtMTE2LDcgKzExNiw3IEBAIGludCByYWRlb25fc3lu Y19yZXN2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQlpZiAoZmVuY2UgJiYgZmVuY2Ut PnJkZXYgPT0gcmRldikKIAkJCXJhZGVvbl9zeW5jX2ZlbmNlKHN5bmMsIGZlbmNlKTsKIAkJZWxz ZQotCQkJciA9IGZlbmNlX3dhaXQoZiwgdHJ1ZSk7CisJCQlyID0gZG1hX2ZlbmNlX3dhaXQoZiwg dHJ1ZSk7CiAKIAkJaWYgKHIpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX3V2ZC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZk LmMKaW5kZXggMGNkMGU3YmRlZTU1Li5kMzRkMWNmMzM4OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3V2ZC5jCkBAIC00NjcsNyArNDY3LDcgQEAgc3RhdGljIGludCByYWRlb25fdXZkX2Nz X21zZyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgc3RydWN0IHJhZGVvbl9ibyAqYm8sCiB7 CiAJaW50MzJfdCAqbXNnLCBtc2dfdHlwZSwgaGFuZGxlOwogCXVuc2lnbmVkIGltZ19zaXplID0g MDsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAl2b2lkICpwdHI7 CiAKIAlpbnQgaSwgcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IGZjNjIxN2RmZTQwMS4uOTE1ZTBk MWMzMTZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9p ZCB0dG1fYm9fcmVsZWFzZV9saXN0KHN0cnVjdCBrcmVmICpsaXN0X2tyZWYpCiAJQlVHX09OKCFs aXN0X2VtcHR5KCZiby0+ZGRlc3Ryb3kpKTsKIAl0dG1fdHRfZGVzdHJveShiby0+dHRtKTsKIAlh dG9taWNfZGVjKCZiby0+Z2xvYi0+Ym9fY291bnQpOwotCWZlbmNlX3B1dChiby0+bW92aW5nKTsK KwlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwogCWlmIChiby0+cmVzdiA9PSAmYm8tPnR0bV9y ZXN2KQogCQlyZXNlcnZhdGlvbl9vYmplY3RfZmluaSgmYm8tPnR0bV9yZXN2KTsKIAltdXRleF9k ZXN0cm95KCZiby0+d3VfbXV0ZXgpOwpAQCAtNDI2LDIwICs0MjYsMjAgQEAgc3RhdGljIHZvaWQg dHRtX2JvX2NsZWFudXBfbWVtdHlwZV91c2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykK IHN0YXRpYyB2b2lkIHR0bV9ib19mbHVzaF9hbGxfZmVuY2VzKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pCiB7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXN0 cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50IGk7CiAK IAlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KGJvLT5yZXN2KTsKIAlmZW5jZSA9 IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+cmVzdik7CiAJaWYgKGZlbmNlICYmICFm ZW5jZS0+b3BzLT5zaWduYWxlZCkKLQkJZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhmZW5jZSk7 CisJCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGZlbmNlKTsKIAogCWZvciAoaSA9IDA7 IGZvYmogJiYgaSA8IGZvYmotPnNoYXJlZF9jb3VudDsgKytpKSB7CiAJCWZlbmNlID0gcmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCiAJCQkJCXJlc2VydmF0aW9uX29i amVjdF9oZWxkKGJvLT5yZXN2KSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5zaWduYWxlZCkKLQkJ CWZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVuY2UpOworCQkJZG1hX2ZlbmNlX2VuYWJsZV9z d19zaWduYWxpbmcoZmVuY2UpOwogCX0KIH0KIApAQCAtNzkyLDExICs3OTIsMTEgQEAgc3RhdGlj IGludCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK IAkJCQkgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkJIHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2U7CiAJaW50IHJldDsKIAogCXNwaW5fbG9jaygmbWFuLT5tb3ZlX2xvY2spOwotCWZl bmNlID0gZmVuY2VfZ2V0KG1hbi0+bW92ZSk7CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KG1hbi0+ bW92ZSk7CiAJc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9sb2NrKTsKIAogCWlmIChmZW5jZSkgewpA QCAtODA2LDcgKzgwNiw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmICh1bmxpa2VseShyZXQpKQogCQkJcmV0dXJu IHJldDsKIAotCQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7CisJCWRtYV9mZW5jZV9wdXQoYm8tPm1v dmluZyk7CiAJCWJvLT5tb3ZpbmcgPSBmZW5jZTsKIAl9CiAKQEAgLTEyODYsNyArMTI4Niw3IEBA IHN0YXRpYyBpbnQgdHRtX2JvX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCiB7CiAJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSAmYmRldi0+bWFu W21lbV90eXBlXTsKIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7Ci0J c3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQgcmV0 OwogCiAJLyoKQEAgLTEzMDksMTIgKzEzMDksMTIgQEAgc3RhdGljIGludCB0dG1fYm9fZm9yY2Vf bGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAlzcGluX3VubG9jaygmZ2xv Yi0+bHJ1X2xvY2spOwogCiAJc3Bpbl9sb2NrKCZtYW4tPm1vdmVfbG9jayk7Ci0JZmVuY2UgPSBm ZW5jZV9nZXQobWFuLT5tb3ZlKTsKKwlmZW5jZSA9IGRtYV9mZW5jZV9nZXQobWFuLT5tb3ZlKTsK IAlzcGluX3VubG9jaygmbWFuLT5tb3ZlX2xvY2spOwogCiAJaWYgKGZlbmNlKSB7Ci0JCXJldCA9 IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0ID0g ZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJ CWlmIChyZXQpIHsKIAkJCWlmIChhbGxvd19lcnJvcnMpIHsKIAkJCQlyZXR1cm4gcmV0OwpAQCAt MTM0Myw3ICsxMzQzLDcgQEAgaW50IHR0bV9ib19jbGVhbl9tbShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgdW5zaWduZWQgbWVtX3R5cGUpCiAJCSAgICAgICBtZW1fdHlwZSk7CiAJCXJldHVy biByZXQ7CiAJfQotCWZlbmNlX3B1dChtYW4tPm1vdmUpOworCWRtYV9mZW5jZV9wdXQobWFuLT5t b3ZlKTsKIAogCW1hbi0+dXNlX3R5cGUgPSBmYWxzZTsKIAltYW4tPmhhc190eXBlID0gZmFsc2U7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKaW5kZXggYmY2ZTIxNjU1YzU3Li5kMDQ1OWIzOTJl NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKQEAgLTY0NCw3ICs2NDQsNyBAQCB2b2lk IHR0bV9ib19rdW5tYXAoc3RydWN0IHR0bV9ib19rbWFwX29iaiAqbWFwKQogRVhQT1JUX1NZTUJP TCh0dG1fYm9fa3VubWFwKTsKIAogaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UsCisJ CQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJCSAgICAgIGJvb2wgZXZpY3QsCiAJ CQkgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCiB7CkBAIC02NzQsOCArNjc0LDgg QEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAkJICogb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWQuCiAJCSAqLwogCi0JCWZlbmNlX3B1 dChiby0+bW92aW5nKTsKLQkJYm8tPm1vdmluZyA9IGZlbmNlX2dldChmZW5jZSk7CisJCWRtYV9m ZW5jZV9wdXQoYm8tPm1vdmluZyk7CisJCWJvLT5tb3ZpbmcgPSBkbWFfZmVuY2VfZ2V0KGZlbmNl KTsKIAogCQlyZXQgPSB0dG1fYnVmZmVyX29iamVjdF90cmFuc2ZlcihibywgJmdob3N0X29iaik7 CiAJCWlmIChyZXQpCkBAIC03MDYsNyArNzA2LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2Ns ZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIEVYUE9SVF9TWU1CT0wodHRtX2Jv X21vdmVfYWNjZWxfY2xlYW51cCk7CiAKIGludCB0dG1fYm9fcGlwZWxpbmVfbW92ZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJIHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgZXZp Y3QsCisJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCiAJCQkgc3RydWN0 IHR0bV9tZW1fcmVnICpuZXdfbWVtKQogewogCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0g Ym8tPmJkZXY7CkBAIC03MzAsOCArNzMwLDggQEAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCSAqIG9wZXJhdGlvbiBoYXMgY29tcGxldGVk LgogCQkgKi8KIAotCQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7Ci0JCWJvLT5tb3ZpbmcgPSBmZW5j ZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOworCQliby0+bW92aW5n ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAkJcmV0ID0gdHRtX2J1ZmZlcl9vYmplY3RfdHJh bnNmZXIoYm8sICZnaG9zdF9vYmopOwogCQlpZiAocmV0KQpAQCAtNzYxLDE2ICs3NjEsMTYgQEAg aW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJ CSAqLwogCiAJCXNwaW5fbG9jaygmZnJvbS0+bW92ZV9sb2NrKTsKLQkJaWYgKCFmcm9tLT5tb3Zl IHx8IGZlbmNlX2lzX2xhdGVyKGZlbmNlLCBmcm9tLT5tb3ZlKSkgewotCQkJZmVuY2VfcHV0KGZy b20tPm1vdmUpOwotCQkJZnJvbS0+bW92ZSA9IGZlbmNlX2dldChmZW5jZSk7CisJCWlmICghZnJv bS0+bW92ZSB8fCBkbWFfZmVuY2VfaXNfbGF0ZXIoZmVuY2UsIGZyb20tPm1vdmUpKSB7CisJCQlk bWFfZmVuY2VfcHV0KGZyb20tPm1vdmUpOworCQkJZnJvbS0+bW92ZSA9IGRtYV9mZW5jZV9nZXQo ZmVuY2UpOwogCQl9CiAJCXNwaW5fdW5sb2NrKCZmcm9tLT5tb3ZlX2xvY2spOwogCiAJCXR0bV9i b19mcmVlX29sZF9ub2RlKGJvKTsKIAotCQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7Ci0JCWJvLT5t b3ZpbmcgPSBmZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwor CQliby0+bW92aW5nID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAl9IGVsc2UgewogCQkvKioK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib192bS5jCmluZGV4IGE2ZWQ5ZDVlNTE2Ny4uNDc0OGFlZGM5MzNhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCB0dG1f Ym9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCS8qCiAJICog UXVpY2sgbm9uLXN0YWxsaW5nIGNoZWNrIGZvciBpZGxlLgogCSAqLwotCWlmIChmZW5jZV9pc19z aWduYWxlZChiby0+bW92aW5nKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGJvLT5tb3Zp bmcpKQogCQlnb3RvIG91dF9jbGVhcjsKIAogCS8qCkBAIC02NywxNCArNjcsMTQgQEAgc3RhdGlj IGludCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAog CQkJZ290byBvdXRfdW5sb2NrOwogCiAJCXVwX3JlYWQoJnZtYS0+dm1fbW0tPm1tYXBfc2VtKTsK LQkJKHZvaWQpIGZlbmNlX3dhaXQoYm8tPm1vdmluZywgdHJ1ZSk7CisJCSh2b2lkKSBkbWFfZmVu Y2Vfd2FpdChiby0+bW92aW5nLCB0cnVlKTsKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAogCS8q CiAJICogT3JkaW5hcnkgd2FpdC4KIAkgKi8KLQlyZXQgPSBmZW5jZV93YWl0KGJvLT5tb3Zpbmcs IHRydWUpOworCXJldCA9IGRtYV9mZW5jZV93YWl0KGJvLT5tb3ZpbmcsIHRydWUpOwogCWlmICh1 bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJcmV0ID0gKHJldCAhPSAtRVJFU1RBUlRTWVMpID8gVk1f RkFVTFRfU0lHQlVTIDoKIAkJCVZNX0ZBVUxUX05PUEFHRTsKQEAgLTgyLDcgKzgyLDcgQEAgc3Rh dGljIGludCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCX0KIAogb3V0X2NsZWFyOgotCWZlbmNlX3B1dChiby0+bW92aW5nKTsKKwlkbWFfZmVuY2Vf cHV0KGJvLT5tb3ZpbmcpOwogCWJvLT5tb3ZpbmcgPSBOVUxMOwogCiBvdXRfdW5sb2NrOgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwppbmRleCBhODA3MTdiMzVkYzYuLmQzNWJj NDkxZThkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKQEAgLTE3OSw3 ICsxNzksOCBAQCBpbnQgdHRtX2V1X3Jlc2VydmVfYnVmZmVycyhzdHJ1Y3Qgd3dfYWNxdWlyZV9j dHggKnRpY2tldCwKIEVYUE9SVF9TWU1CT0wodHRtX2V1X3Jlc2VydmVfYnVmZmVycyk7CiAKIHZv aWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlj a2V0LAotCQkJCSBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQor CQkJCSBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAorCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSkKIHsKIAlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqZW50cnk7CiAJc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1f ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwppbmRleCA1YzU3YzFm ZmExZjkuLjQ4ODkwOWEyMWVkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdl bV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwpAQCAtMjgs NTYgKzI4LDU3IEBACiAjZGVmaW5lIFZHRU1fRkVOQ0VfVElNRU9VVCAoMTAqSFopCiAKIHN0cnVj dCB2Z2VtX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJh c2U7CiAJc3RydWN0IHNwaW5sb2NrIGxvY2s7CiAJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CiB9 OwogCi1zdGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0 IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2ZlbmNlX2dldF9kcml2ZXJf bmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInZnZW0iOwogfQogCi1z dGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKnZnZW1fZmVuY2VfZ2V0X3RpbWVsaW5lX25h bWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJ1bmJvdW5kIjsKIH0KIAot c3RhdGljIGJvb2wgdmdlbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3Rh dGljIGJvb2wgdmdlbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIHZnZW1fZmVuY2VfZW5hYmxlX3NpZ25h bGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgdmdlbV9mZW5jZV9lbmFibGVf c2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiB0cnVlOwogfQog Ci1zdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpiYXNlKQorc3Rh dGljIHZvaWQgdmdlbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmJhc2UpCiB7CiAJ c3RydWN0IHZnZW1fZmVuY2UgKmZlbmNlID0gY29udGFpbmVyX29mKGJhc2UsIHR5cGVvZigqZmVu Y2UpLCBiYXNlKTsKIAogCWRlbF90aW1lcl9zeW5jKCZmZW5jZS0+dGltZXIpOwotCWZlbmNlX2Zy ZWUoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOwogfQogCi1z dGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFy ICpzdHIsIGludCBzaXplKQorc3RhdGljIHZvaWQgdmdlbV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7CiAJc25wcmludGYoc3Ry LCBzaXplLCAiJXUiLCBmZW5jZS0+c2Vxbm8pOwogfQogCi1zdGF0aWMgdm9pZCB2Z2VtX2ZlbmNl X3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsCitzdGF0 aWMgdm9pZCB2Z2VtX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSwgY2hhciAqc3RyLAogCQkJCQkgIGludCBzaXplKQogewotCXNucHJpbnRmKHN0ciwgc2l6 ZSwgIiV1IiwgZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpID8gZmVuY2UtPnNlcW5vIDogMCk7CisJ c25wcmludGYoc3RyLCBzaXplLCAiJXUiLAorCQkgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNl KSA/IGZlbmNlLT5zZXFubyA6IDApOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29w cyB2Z2VtX2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyB2 Z2VtX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gdmdlbV9mZW5jZV9nZXRfZHJp dmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gdmdlbV9mZW5jZV9nZXRfdGltZWxpbmVf bmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHZnZW1fZmVuY2VfZW5hYmxlX3NpZ25hbGluZywK IAkuc2lnbmFsZWQgPSB2Z2VtX2ZlbmNlX3NpZ25hbGVkLAotCS53YWl0ID0gZmVuY2VfZGVmYXVs dF93YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IHZn ZW1fZmVuY2VfcmVsZWFzZSwKIAogCS5mZW5jZV92YWx1ZV9zdHIgPSB2Z2VtX2ZlbmNlX3ZhbHVl X3N0ciwKQEAgLTg4LDExICs4OSwxMSBAQCBzdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3RpbWVvdXQo dW5zaWduZWQgbG9uZyBkYXRhKQogewogCXN0cnVjdCB2Z2VtX2ZlbmNlICpmZW5jZSA9IChzdHJ1 Y3QgdmdlbV9mZW5jZSAqKWRhdGE7CiAKLQlmZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsKKwlk bWFfZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2Ug KnZnZW1fZmVuY2VfY3JlYXRlKHN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlLAotCQkJCSAgICAgICB1 bnNpZ25lZCBpbnQgZmxhZ3MpCitzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSAqdmdlbV9mZW5jZV9j cmVhdGUoc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUsCisJCQkJCSAgIHVuc2lnbmVkIGludCBmbGFn cykKIHsKIAlzdHJ1Y3QgdmdlbV9mZW5jZSAqZmVuY2U7CiAKQEAgLTEwMSw4ICsxMDIsOCBAQCBz dGF0aWMgc3RydWN0IGZlbmNlICp2Z2VtX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgdmdlbV9maWxlICp2 ZmlsZSwKIAkJcmV0dXJuIE5VTEw7CiAKIAlzcGluX2xvY2tfaW5pdCgmZmVuY2UtPmxvY2spOwot CWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmdmdlbV9mZW5jZV9vcHMsICZmZW5jZS0+bG9jaywK LQkJICAgZmVuY2VfY29udGV4dF9hbGxvYygxKSwgMSk7CisJZG1hX2ZlbmNlX2luaXQoJmZlbmNl LT5iYXNlLCAmdmdlbV9mZW5jZV9vcHMsICZmZW5jZS0+bG9jaywKKwkJICAgICAgIGRtYV9mZW5j ZV9jb250ZXh0X2FsbG9jKDEpLCAxKTsKIAogCXNldHVwX3RpbWVyKCZmZW5jZS0+dGltZXIsIHZn ZW1fZmVuY2VfdGltZW91dCwgKHVuc2lnbmVkIGxvbmcpZmVuY2UpOwogCkBAIC0xNTcsNyArMTU4 LDcgQEAgaW50IHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUgPSBmaWxlLT5kcml2ZXJfcHJpdjsKIAlzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwot CXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50IHJl dDsKIAogCWlmIChhcmctPmZsYWdzICYgflZHRU1fRkVOQ0VfV1JJVEUpCkBAIC0yMDksOCArMjEw LDggQEAgaW50IHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJfQogZXJyX2ZlbmNlOgogCWlmIChyZXQpIHsKLQkJZmVuY2Vfc2lnbmFsKGZlbmNlKTsKLQkJ ZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbChmZW5jZSk7CisJCWRtYV9mZW5j ZV9wdXQoZmVuY2UpOwogCX0KIGVycjoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxv Y2tlZChvYmopOwpAQCAtMjM5LDcgKzI0MCw3IEBAIGludCB2Z2VtX2ZlbmNlX3NpZ25hbF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogewogCXN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlID0g ZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3RydWN0IGRybV92Z2VtX2ZlbmNlX3NpZ25hbCAqYXJnID0g ZGF0YTsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwog CWludCByZXQgPSAwOwogCiAJaWYgKGFyZy0+ZmxhZ3MpCkBAIC0yNTMsMTEgKzI1NCwxMSBAQCBp bnQgdmdlbV9mZW5jZV9zaWduYWxfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAo SVNfRVJSKGZlbmNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoZmVuY2UpOwogCi0JaWYgKGZlbmNlX2lz X3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKIAkJ cmV0ID0gLUVUSU1FRE9VVDsKIAotCWZlbmNlX3NpZ25hbChmZW5jZSk7Ci0JZmVuY2VfcHV0KGZl bmNlKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGZlbmNlKTsK IAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNzEsOCArMjcyLDggQEAgaW50IHZnZW1fZmVuY2Vfb3Bl bihzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSkKIAogc3RhdGljIGludCBfX3ZnZW1fZmVuY2VfaWRy X2ZpbmkoaW50IGlkLCB2b2lkICpwLCB2b2lkICpkYXRhKQogewotCWZlbmNlX3NpZ25hbChwKTsK LQlmZW5jZV9wdXQocCk7CisJZG1hX2ZlbmNlX3NpZ25hbChwKTsKKwlkbWFfZmVuY2VfcHV0KHAp OwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKaW5kZXgg YWU1OTA4MGQ2M2QxLi5lYzFlYmRjZmU4MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 aXJ0aW8vdmlydGdwdV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVf ZHJ2LmgKQEAgLTgyLDcgKzgyLDcgQEAgc3RydWN0IHZpcnRpb19ncHVfZmVuY2VfZHJpdmVyIHsK IH07CiAKIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgZjsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlIGY7CiAJc3RydWN0IHZpcnRpb19ncHVfZmVuY2VfZHJpdmVyICpkcnY7CiAJ c3RydWN0IGxpc3RfaGVhZCBub2RlOwogCXVpbnQ2NF90IHNlcTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2ZlbmNlLmMKaW5kZXggZjNmNzBmYThhNGM3Li4yMzM1MzUyMWY5MDMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jCkBAIC0yNiwyMiArMjYsMjIgQEAKICNp bmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgInZpcnRncHVfZHJ2LmgiCiAKLXN0YXRpYyBj b25zdCBjaGFyICp2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRp YyBjb25zdCBjaGFyICp2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmYp CiB7CiAJcmV0dXJuICJ2aXJ0aW9fZ3B1IjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKnZpcnRp b19nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgY29uc3QgY2hhciAq dmlydGlvX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJcmV0dXJu ICJjb250cm9scSI7CiB9CiAKLXN0YXRpYyBib29sIHZpcnRpb19lbmFibGVfc2lnbmFsaW5nKHN0 cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIHZpcnRpb19lbmFibGVfc2lnbmFsaW5nKHN0cnVj dCBkbWFfZmVuY2UgKmYpCiB7CiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIHZpcnRp b19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCB2aXJ0aW9fc2lnbmFsZWQo c3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSAqZmVuY2Ug PSB0b192aXJ0aW9fZmVuY2UoZik7CiAKQEAgLTUwLDI2ICs1MCwyNiBAQCBzdGF0aWMgYm9vbCB2 aXJ0aW9fc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQogCXJldHVybiBmYWxzZTsKIH0KIAotc3Rh dGljIHZvaWQgdmlydGlvX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmYsIGNoYXIgKnN0 ciwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB2aXJ0aW9fZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBk bWFfZmVuY2UgKmYsIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7CiAJc3RydWN0IHZpcnRpb19ncHVf ZmVuY2UgKmZlbmNlID0gdG9fdmlydGlvX2ZlbmNlKGYpOwogCiAJc25wcmludGYoc3RyLCBzaXpl LCAiJWxsdSIsIGZlbmNlLT5zZXEpOwogfQogCi1zdGF0aWMgdm9pZCB2aXJ0aW9fdGltZWxpbmVf dmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZiwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKK3N0YXRpYyB2 b2lkIHZpcnRpb190aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGRtYV9mZW5jZSAqZiwgY2hhciAq c3RyLCBpbnQgc2l6ZSkKIHsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSAqZmVuY2UgPSB0b192 aXJ0aW9fZmVuY2UoZik7CiAKIAlzbnByaW50ZihzdHIsIHNpemUsICIlbGx1IiwgKHU2NClhdG9t aWM2NF9yZWFkKCZmZW5jZS0+ZHJ2LT5sYXN0X3NlcSkpOwogfQogCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IGZlbmNlX29wcyB2aXJ0aW9fZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBk bWFfZmVuY2Vfb3BzIHZpcnRpb19mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSAgICAg PSB2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSAgID0gdmlydGlv X2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nICAgID0gdmlydGlvX2VuYWJs ZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkICAgICAgICAgICAgPSB2aXJ0aW9fc2lnbmFsZWQsCi0J LndhaXQgICAgICAgICAgICAgICAgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgICAgICAg ICAgICAgICAgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5mZW5jZV92YWx1ZV9zdHIgICAg ID0gdmlydGlvX2ZlbmNlX3ZhbHVlX3N0ciwKIAkudGltZWxpbmVfdmFsdWVfc3RyICA9IHZpcnRp b190aW1lbGluZV92YWx1ZV9zdHIsCiB9OwpAQCAtODgsOSArODgsOSBAQCBpbnQgdmlydGlvX2dw dV9mZW5jZV9lbWl0KHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYsCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJmRydi0+bG9jaywgaXJxX2ZsYWdzKTsKIAkoKmZlbmNlKS0+ZHJ2ID0gZHJ2Owog CSgqZmVuY2UpLT5zZXEgPSArK2Rydi0+c3luY19zZXE7Ci0JZmVuY2VfaW5pdCgmKCpmZW5jZSkt PmYsICZ2aXJ0aW9fZmVuY2Vfb3BzLCAmZHJ2LT5sb2NrLAotCQkgICBkcnYtPmNvbnRleHQsICgq ZmVuY2UpLT5zZXEpOwotCWZlbmNlX2dldCgmKCpmZW5jZSktPmYpOworCWRtYV9mZW5jZV9pbml0 KCYoKmZlbmNlKS0+ZiwgJnZpcnRpb19mZW5jZV9vcHMsICZkcnYtPmxvY2ssCisJCSAgICAgICBk cnYtPmNvbnRleHQsICgqZmVuY2UpLT5zZXEpOworCWRtYV9mZW5jZV9nZXQoJigqZmVuY2UpLT5m KTsKIAlsaXN0X2FkZF90YWlsKCYoKmZlbmNlKS0+bm9kZSwgJmRydi0+ZmVuY2VzKTsKIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkcnYtPmxvY2ssIGlycV9mbGFncyk7CiAKQEAgLTExMSw5ICsx MTEsOSBAQCB2b2lkIHZpcnRpb19ncHVfZmVuY2VfZXZlbnRfcHJvY2VzcyhzdHJ1Y3QgdmlydGlv X2dwdV9kZXZpY2UgKnZnZGV2LAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmZW5jZSwgdG1w LCAmZHJ2LT5mZW5jZXMsIG5vZGUpIHsKIAkJaWYgKGxhc3Rfc2VxIDwgZmVuY2UtPnNlcSkKIAkJ CWNvbnRpbnVlOwotCQlmZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+Zik7CisJCWRtYV9mZW5j ZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+Zik7CiAJCWxpc3RfZGVsKCZmZW5jZS0+bm9kZSk7Ci0J CWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiAJfQog CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRydi0+bG9jaywgaXJxX2ZsYWdzKTsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jIGIvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKaW5kZXggODE4NDc4YjRjNGYwLi42MWYzYTk2 M2FmOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCkBAIC0xNzIsNyAr MTcyLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X2V4ZWNidWZmZXJfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkvKiBmZW5jZSB0aGUgY29tbWFuZCBibyAqLwog CXZpcnRpb19ncHVfdW5yZWZfbGlzdCgmdmFsaWRhdGVfbGlzdCk7CiAJZHJtX2ZyZWVfbGFyZ2Uo YnVmbGlzdCk7Ci0JZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJZG1hX2ZlbmNlX3B1dCgmZmVuY2Ut PmYpOwogCXJldHVybiAwOwogCiBvdXRfdW5yZXN2OgpAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRp YyBpbnQgdmlydGlvX2dwdV9yZXNvdXJjZV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJZHJtX2dlbV9vYmplY3RfcmVsZWFzZShvYmopOwogCQlpZiAo dmdkZXYtPmhhc192aXJnbF8zZCkgewogCQkJdmlydGlvX2dwdV91bnJlZl9saXN0KCZ2YWxpZGF0 ZV9saXN0KTsKLQkJCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQkJZG1hX2ZlbmNlX3B1dCgmZmVu Y2UtPmYpOwogCQl9CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtMzA5LDEzICszMDksMTMgQEAgc3Rh dGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJaWYgKHZnZGV2LT5oYXNfdmlyZ2xfM2QpIHsKIAkJdmly dGlvX2dwdV91bnJlZl9saXN0KCZ2YWxpZGF0ZV9saXN0KTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+ Zik7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAl9CiAJcmV0dXJuIDA7CiBmYWlsX3Vu cmVmOgogCWlmICh2Z2Rldi0+aGFzX3ZpcmdsXzNkKSB7CiAJCXZpcnRpb19ncHVfdW5yZWZfbGlz dCgmdmFsaWRhdGVfbGlzdCk7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQlkbWFfZmVuY2Vf cHV0KCZmZW5jZS0+Zik7CiAJfQogLy9mYWlsX29iajoKIC8vCWRybV9nZW1fb2JqZWN0X2hhbmRs ZV91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOwpAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YXRpYyBp bnQgdmlydGlvX2dwdV90cmFuc2Zlcl9mcm9tX2hvc3RfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocW9iai0+dGJvLnJlc3Ys CiAJCQkJCSAgJmZlbmNlLT5mKTsKIAotCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCWRtYV9mZW5j ZV9wdXQoJmZlbmNlLT5mKTsKIG91dF91bnJlczoKIAl2aXJ0aW9fZ3B1X29iamVjdF91bnJlc2Vy dmUocW9iaik7CiBvdXQ6CkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1 X3RyYW5zZmVyX3RvX2hvc3RfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJCSBhcmdzLT5sZXZlbCwgJmJveCwgJmZlbmNlKTsKIAkJcmVzZXJ2YXRpb25fb2JqZWN0 X2FkZF9leGNsX2ZlbmNlKHFvYmotPnRiby5yZXN2LAogCQkJCQkJICAmZmVuY2UtPmYpOwotCQlm ZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmYpOwogCX0KIAog b3V0X3VucmVzOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2tt cy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCmluZGV4IDAzNmIwZmJh ZTBmYi4uMTIzNTUxOTg1M2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCkBA IC0xNTksNyArMTU5LDcgQEAgaW50IHZpcnRpb19ncHVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAl2aXJ0aW9fZ3B1X2luaXRfdnEoJnZn ZGV2LT5jdHJscSwgdmlydGlvX2dwdV9kZXF1ZXVlX2N0cmxfZnVuYyk7CiAJdmlydGlvX2dwdV9p bml0X3ZxKCZ2Z2Rldi0+Y3Vyc29ycSwgdmlydGlvX2dwdV9kZXF1ZXVlX2N1cnNvcl9mdW5jKTsK IAotCXZnZGV2LT5mZW5jZV9kcnYuY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJ dmdkZXYtPmZlbmNlX2Rydi5jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJ c3Bpbl9sb2NrX2luaXQoJnZnZGV2LT5mZW5jZV9kcnYubG9jayk7CiAJSU5JVF9MSVNUX0hFQUQo JnZnZGV2LT5mZW5jZV9kcnYuZmVuY2VzKTsKIAlJTklUX0xJU1RfSEVBRCgmdmdkZXYtPmNhcF9j YWNoZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUu YyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9wbGFuZS5jCmluZGV4IGJhMjhjMGY2 ZjI4YS4uY2I3NWYwNjYzYmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfcGxhbmUu YwpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19ncHVfY3Vyc29yX3BsYW5l X3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJaWYgKCFyZXQpIHsKIAkJCXJlc2Vy dmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+dGJvLnJlc3YsCiAJCQkJCQkJICAmZmVu Y2UtPmYpOwotCQkJZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJCQlkbWFfZmVuY2VfcHV0KCZmZW5j ZS0+Zik7CiAJCQlmZW5jZSA9IE5VTEw7CiAJCQl2aXJ0aW9fZ3B1X29iamVjdF91bnJlc2VydmUo Ym8pOwogCQkJdmlydGlvX2dwdV9vYmplY3Rfd2FpdChibywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ZlbmNlLmMKaW5kZXggMjZhYzhlODBhNDc4Li42NTQxZGQ4YjgyZGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwpAQCAtMTA4LDcgKzEwOCw3IEBAIGZt YW5fZnJvbV9mZW5jZShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiAgKiBvYmplY3RzIHdp dGggYWN0aW9ucyBhdHRhY2hlZCB0byB0aGVtLgogICovCiAKLXN0YXRpYyB2b2lkIHZtd19mZW5j ZV9vYmpfZGVzdHJveShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgdm9pZCB2bXdfZmVuY2Vfb2Jq X2Rlc3Ryb3koc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAq ZmVuY2UgPQogCQljb250YWluZXJfb2YoZiwgc3RydWN0IHZtd19mZW5jZV9vYmosIGJhc2UpOwpA QCAtMTIzLDE3ICsxMjMsMTcgQEAgc3RhdGljIHZvaWQgdm13X2ZlbmNlX29ial9kZXN0cm95KHN0 cnVjdCBmZW5jZSAqZikKIAlmZW5jZS0+ZGVzdHJveShmZW5jZSk7CiB9CiAKLXN0YXRpYyBjb25z dCBjaGFyICp2bXdfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRp YyBjb25zdCBjaGFyICp2bXdfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2Ug KmYpCiB7CiAJcmV0dXJuICJ2bXdnZngiOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqdm13X2Zl bmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBjb25zdCBjaGFy ICp2bXdfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAly ZXR1cm4gInN2Z2EiOwogfQogCi1zdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5hYmxlX3NpZ25hbGlu ZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5hYmxlX3NpZ25hbGlu ZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZSA9 CiAJCWNvbnRhaW5lcl9vZihmLCBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiwgYmFzZSk7CkBAIC0xNTIs MTIgKzE1MiwxMiBAQCBzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1 Y3QgZmVuY2UgKmYpCiB9CiAKIHN0cnVjdCB2bXdnZnhfd2FpdF9jYiB7Ci0Jc3RydWN0IGZlbmNl X2NiIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBiYXNlOwogCXN0cnVjdCB0YXNrX3N0cnVj dCAqdGFzazsKIH07CiAKIHN0YXRpYyB2b2lkCi12bXdnZnhfd2FpdF9jYihzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQordm13Z2Z4X3dhaXRfY2Ioc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCB2bXdnZnhf d2FpdF9jYiAqd2FpdCA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHZtd2dmeF93YWl0X2Ni LCBiYXNlKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2bXdnZnhfd2FpdF9jYihzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogCiBzdGF0aWMgdm9pZCBfX3Ztd19mZW5jZXNf dXBkYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbik7CiAKLXN0YXRpYyBsb25nIHZt d19mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1l b3V0KQorc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZiwgYm9v bCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCB2bXdfZmVuY2Vfb2JqICpm ZW5jZSA9CiAJCWNvbnRhaW5lcl9vZihmLCBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiwgYmFzZSk7CkBA IC0xOTcsNyArMTk3LDcgQEAgc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNl ICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAKIAl3aGlsZSAocmV0ID4gMCkg ewogCQlfX3Ztd19mZW5jZXNfdXBkYXRlKGZtYW4pOwotCQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxB R19TSUdOQUxFRF9CSVQsICZmLT5mbGFncykpCisJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxB R19TSUdOQUxFRF9CSVQsICZmLT5mbGFncykpCiAJCQlicmVhazsKIAogCQlpZiAoaW50cikKQEAg LTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgbG9uZyB2bXdfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2Ug KmYsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgc3RydWN0IGZlbmNlX29wcyB2bXdfZmVuY2Vfb3BzID0geworc3RhdGljIHN0cnVjdCBk bWFfZmVuY2Vfb3BzIHZtd19mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IHZtd19m ZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gdm13X2ZlbmNlX2dl dF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gdm13X2ZlbmNlX2VuYWJsZV9z aWduYWxpbmcsCkBAIC0yOTgsNyArMjk4LDcgQEAgc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICp2 bXdfZmVuY2VfbWFuYWdlcl9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZm1h bi0+ZXZlbnRfZmVuY2VfYWN0aW9uX3NpemUgPQogCQl0dG1fcm91bmRfcG90KHNpemVvZihzdHJ1 Y3Qgdm13X2V2ZW50X2ZlbmNlX2FjdGlvbikpOwogCW11dGV4X2luaXQoJmZtYW4tPmdvYWxfaXJx X211dGV4KTsKLQlmbWFuLT5jdHggPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOworCWZtYW4tPmN0 eCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCiAJcmV0dXJuIGZtYW47CiB9CkBAIC0z MjYsOCArMzI2LDggQEAgc3RhdGljIGludCB2bXdfZmVuY2Vfb2JqX2luaXQoc3RydWN0IHZtd19m ZW5jZV9tYW5hZ2VyICpmbWFuLAogCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOwogCWludCByZXQg PSAwOwogCi0JZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZ2bXdfZmVuY2Vfb3BzLCAmZm1hbi0+ bG9jaywKLQkJICAgZm1hbi0+Y3R4LCBzZXFubyk7CisJZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5i YXNlLCAmdm13X2ZlbmNlX29wcywgJmZtYW4tPmxvY2ssCisJCSAgICAgICBmbWFuLT5jdHgsIHNl cW5vKTsKIAlJTklUX0xJU1RfSEVBRCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucyk7CiAJZmVu Y2UtPmRlc3Ryb3kgPSBkZXN0cm95OwogCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGJvb2wg dm13X2ZlbmNlX2dvYWxfY2hlY2tfbG9ja2VkKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZSkK IAl1MzIgZ29hbF9zZXFubzsKIAl1MzIgKmZpZm9fbWVtOwogCi0JaWYgKGZlbmNlX2lzX3NpZ25h bGVkX2xvY2tlZCgmZmVuY2UtPmJhc2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWRfbG9j a2VkKCZmZW5jZS0+YmFzZSkpCiAJCXJldHVybiBmYWxzZTsKIAogCWZpZm9fbWVtID0gZm1hbi0+ ZGV2X3ByaXYtPm1taW9fdmlydDsKQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGF0aWMgdm9pZCBfX3Zt d19mZW5jZXNfdXBkYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbikKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUoZmVuY2UsIG5leHRfZmVuY2UsICZmbWFuLT5mZW5jZV9saXN0LCBo ZWFkKSB7CiAJCWlmIChzZXFubyAtIGZlbmNlLT5iYXNlLnNlcW5vIDwgVk1XX0ZFTkNFX1dSQVAp IHsKIAkJCWxpc3RfZGVsX2luaXQoJmZlbmNlLT5oZWFkKTsKLQkJCWZlbmNlX3NpZ25hbF9sb2Nr ZWQoJmZlbmNlLT5iYXNlKTsKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+YmFz ZSk7CiAJCQlJTklUX0xJU1RfSEVBRCgmYWN0aW9uX2xpc3QpOwogCQkJbGlzdF9zcGxpY2VfaW5p dCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucywKIAkJCQkJICZhY3Rpb25fbGlzdCk7CkBAIC01 MDAsMTggKzUwMCwxOCBAQCBib29sIHZtd19mZW5jZV9vYmpfc2lnbmFsZWQoc3RydWN0IHZtd19m ZW5jZV9vYmogKmZlbmNlKQogewogCXN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbiA9IGZt YW5fZnJvbV9mZW5jZShmZW5jZSk7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxF RF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFH X1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKSkKIAkJcmV0dXJuIDE7CiAKIAl2bXdf ZmVuY2VzX3VwZGF0ZShmbWFuKTsKIAotCXJldHVybiBmZW5jZV9pc19zaWduYWxlZCgmZmVuY2Ut PmJhc2UpOworCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJmZlbmNlLT5iYXNlKTsKIH0K IAogaW50IHZtd19mZW5jZV9vYmpfd2FpdChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UsIGJv b2wgbGF6eSwKIAkJICAgICAgIGJvb2wgaW50ZXJydXB0aWJsZSwgdW5zaWduZWQgbG9uZyB0aW1l b3V0KQogewotCWxvbmcgcmV0ID0gZmVuY2Vfd2FpdF90aW1lb3V0KCZmZW5jZS0+YmFzZSwgaW50 ZXJydXB0aWJsZSwgdGltZW91dCk7CisJbG9uZyByZXQgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0 KCZmZW5jZS0+YmFzZSwgaW50ZXJydXB0aWJsZSwgdGltZW91dCk7CiAKIAlpZiAobGlrZWx5KHJl dCA+IDApKQogCQlyZXR1cm4gMDsKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIHZtd19mZW5jZV9v YmpfZmx1c2goc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogCiBzdGF0aWMgdm9pZCB2bXdf ZmVuY2VfZGVzdHJveShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiB7Ci0JZmVuY2VfZnJl ZSgmZmVuY2UtPmJhc2UpOworCWRtYV9mZW5jZV9mcmVlKCZmZW5jZS0+YmFzZSk7CiB9CiAKIGlu dCB2bXdfZmVuY2VfY3JlYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbiwKQEAgLTY2 OSw3ICs2NjksNyBAQCB2b2lkIHZtd19mZW5jZV9maWZvX2Rvd24oc3RydWN0IHZtd19mZW5jZV9t YW5hZ2VyICpmbWFuKQogCQlzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UgPQogCQkJbGlzdF9l bnRyeShmbWFuLT5mZW5jZV9saXN0LnByZXYsIHN0cnVjdCB2bXdfZmVuY2Vfb2JqLAogCQkJCSAg IGhlYWQpOwotCQlmZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX2dldCgmZmVu Y2UtPmJhc2UpOwogCQlzcGluX3VubG9ja19pcnEoJmZtYW4tPmxvY2spOwogCiAJCXJldCA9IHZt d19mZW5jZV9vYmpfd2FpdChmZW5jZSwgZmFsc2UsIGZhbHNlLApAQCAtNjc3LDcgKzY3Nyw3IEBA IHZvaWQgdm13X2ZlbmNlX2ZpZm9fZG93bihzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4p CiAKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewogCQkJbGlzdF9kZWxfaW5pdCgmZmVuY2Ut PmhlYWQpOwotCQkJZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CisJCQlkbWFfZmVuY2Vfc2ln bmFsKCZmZW5jZS0+YmFzZSk7CiAJCQlJTklUX0xJU1RfSEVBRCgmYWN0aW9uX2xpc3QpOwogCQkJ bGlzdF9zcGxpY2VfaW5pdCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucywKIAkJCQkJICZhY3Rp b25fbGlzdCk7CkBAIC02ODUsNyArNjg1LDcgQEAgdm9pZCB2bXdfZmVuY2VfZmlmb19kb3duKHN0 cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbikKIAkJfQogCiAJCUJVR19PTighbGlzdF9lbXB0 eSgmZmVuY2UtPmhlYWQpKTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CisJCWRtYV9mZW5j ZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAkJc3Bpbl9sb2NrX2lycSgmZm1hbi0+bG9jayk7CiAJfQog CXNwaW5fdW5sb2NrX2lycSgmZm1hbi0+bG9jayk7CkBAIC04ODQsNyArODg0LDcgQEAgc3RhdGlj IHZvaWQgdm13X2ZlbmNlX29ial9hZGRfYWN0aW9uKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5j ZSwKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZm1hbi0+bG9jaywgaXJxX2ZsYWdzKTsKIAogCWZtYW4t PnBlbmRpbmdfYWN0aW9uc1thY3Rpb24tPnR5cGVdKys7Ci0JaWYgKGZlbmNlX2lzX3NpZ25hbGVk X2xvY2tlZCgmZmVuY2UtPmJhc2UpKSB7CisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2Nr ZWQoJmZlbmNlLT5iYXNlKSkgewogCQlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGlvbl9saXN0OwogCiAJ CUlOSVRfTElTVF9IRUFEKCZhY3Rpb25fbGlzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf ZmVuY2UuaAppbmRleCA4M2FlMzAxZWUxNDEuLmQ5ZDg1YWE2ZWQyMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZm5kZWYgX1ZNV0dG WF9GRU5DRV9IXwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9k bWEtZmVuY2UuaD4KIAogI2RlZmluZSBWTVdfRkVOQ0VfV0FJVF9USU1FT1VUICg1KkhaKQogCkBA IC01Miw3ICs1Miw3IEBAIHN0cnVjdCB2bXdfZmVuY2VfYWN0aW9uIHsKIH07CiAKIHN0cnVjdCB2 bXdfZmVuY2Vfb2JqIHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJh c2U7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CiAJc3RydWN0IGxpc3RfaGVhZCBzZXFfcGFz c2VkX2FjdGlvbnM7CkBAIC03MSwxNCArNzEsMTQgQEAgdm13X2ZlbmNlX29ial91bnJlZmVyZW5j ZShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKmZlbmNlX3ApCiAKIAkqZmVuY2VfcCA9IE5VTEw7CiAJ aWYgKGZlbmNlKQotCQlmZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgm ZmVuY2UtPmJhc2UpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2bXdfZmVuY2Vfb2JqICoK IHZtd19mZW5jZV9vYmpfcmVmZXJlbmNlKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZSkKIHsK IAlpZiAoZmVuY2UpCi0JCWZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOworCQlkbWFfZmVuY2VfZ2V0 KCZmZW5jZS0+YmFzZSk7CiAJcmV0dXJuIGZlbmNlOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfcmVzb3VyY2UuYwppbmRleCAxYTg1ZmIyZDRkYzYuLjhlODZkNmQ0MTQxYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCkBAIC0xNDU0LDcgKzE0NTQs NyBAQCB2b2lkIHZtd19mZW5jZV9zaW5nbGVfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKIAlpZiAoZmVuY2UgPT0gTlVMTCkgewogCQl2bXdfZXhlY2J1Zl9mZW5jZV9jb21tYW5kcyhO VUxMLCBkZXZfcHJpdiwgJmZlbmNlLCBOVUxMKTsKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9l eGNsX2ZlbmNlKGJvLT5yZXN2LCAmZmVuY2UtPmJhc2UpOwotCQlmZW5jZV9wdXQoJmZlbmNlLT5i YXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCX0gZWxzZQogCQlyZXNlcnZh dGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsICZmZW5jZS0+YmFzZSk7CiB9CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5kZXgg NjcyNjQ0MDMxYmQ1Li5lMzM2ZTM5MDE4NzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAu aAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTU3LDcgKzU3LDcgQEAKICNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51 eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4 L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVkZSA8YXNtL21tYW4uaD4KICNpbmNsdWRlIDxhc20vcGdh bGxvYy5oPgpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0cnVjdCBkcm1faW9jdGxfZGVzYyB7CiBzdHJ1 Y3QgZHJtX3BlbmRpbmdfZXZlbnQgewogCXN0cnVjdCBjb21wbGV0aW9uICpjb21wbGV0aW9uOwog CXN0cnVjdCBkcm1fZXZlbnQgKmV2ZW50OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwogCXN0cnVjdCBsaXN0 X2hlYWQgcGVuZGluZ19saW5rOwogCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5k ZXggYmM4NjBjZmM2N2NhLi5mYTFhYTIxNGM4ZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtNTQsNyArNTQsNyBAQCBz dHJ1Y3QgZHJtX21vZGVfc2V0Owogc3RydWN0IGRybV9maWxlOwogc3RydWN0IGRybV9jbGlwX3Jl Y3Q7CiBzdHJ1Y3QgZGV2aWNlX25vZGU7Ci1zdHJ1Y3QgZmVuY2U7CitzdHJ1Y3QgZG1hX2ZlbmNl Owogc3RydWN0IGVkaWQ7CiAKIHN0YXRpYyBpbmxpbmUgaW50NjRfdCBVNjQySTY0KHVpbnQ2NF90 IHZhbCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5jbHVkZS9kcm0v ZHJtX3BsYW5lLmgKaW5kZXggOThiMzlkNjZlYjMyLi5jNWU4YTBkZjE2MjMgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCkBA IC01OSw3ICs1OSw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewogCiAJc3RydWN0IGRybV9j cnRjICpjcnRjOyAgIC8qIGRvIG5vdCB3cml0ZSBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfc2V0 X2NydGNfZm9yX3BsYW5lKCkgKi8KIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsgIC8qIGRv IG5vdCB3cml0ZSBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZSgpICov Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCS8q IFNpZ25lZCBkZXN0IGxvY2F0aW9uIGFsbG93cyBpdCB0byBiZSBwYXJ0aWFsbHkgb2ZmIHNjcmVl biAqLwogCWludDMyX3QgY3J0Y194LCBjcnRjX3k7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90 dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAppbmRleCA5ZWI5 NDBkNjc1NWYuLjViZWFlNzk2OWJmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19hcGkuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCkBAIC0yMDksNyArMjA5 LDcgQEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsKIAkgKiBNZW1iZXJzIHByb3RlY3RlZCBi eSBhIGJvIHJlc2VydmF0aW9uLgogCSAqLwogCi0Jc3RydWN0IGZlbmNlICptb3Zpbmc7CisJc3Ry dWN0IGRtYV9mZW5jZSAqbW92aW5nOwogCiAJc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgdm1h X25vZGU7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9p bmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDRmMGE5MjE4NTk5NS4uMjdlOWMy NmM5MTUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBi L2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTMwMyw3ICszMDMsNyBAQCBzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgewogCS8qCiAJICogUHJvdGVjdGVkIGJ5IEBtb3ZlX2xv Y2suCiAJICovCi0Jc3RydWN0IGZlbmNlICptb3ZlOworCXN0cnVjdCBkbWFfZmVuY2UgKm1vdmU7 CiB9OwogCiAvKioKQEAgLTEwMjUsNyArMTAyNSw3IEBAIGV4dGVybiB2b2lkIHR0bV9ib19mcmVl X29sZF9ub2RlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwogICovCiAKIGV4dGVybiBp bnQgdHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAotCQkJCSAgICAgc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKKwkJCQkgICAgIHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0LAogCQkJCSAgICAgc3RydWN0IHR0bV9t ZW1fcmVnICpuZXdfbWVtKTsKIAogLyoqCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBleHRlcm4gaW50 IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK ICAqIGltbWVkaWF0ZWx5IG9yIGhhbmcgaXQgb24gYSB0ZW1wb3JhcnkgYnVmZmVyIG9iamVjdC4K ICAqLwogaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCi0JCQkgc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKKwkJCSBzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKIAkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19t ZW0pOwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oCmluZGV4IGI2MjBjMzE3Yzc3 Mi4uNDdmMzViOGU2ZDA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZf dXRpbC5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmgKQEAgLTExNCw2 ICsxMTQsNiBAQCBleHRlcm4gaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2Fj cXVpcmVfY3R4ICp0aWNrZXQsCiAKIGV4dGVybiB2b2lkIHR0bV9ldV9mZW5jZV9idWZmZXJfb2Jq ZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAkJCQkJc3RydWN0IGxpc3RfaGVh ZCAqbGlzdCwKLQkJCQkJc3RydWN0IGZlbmNlICpmZW5jZSk7CisJCQkJCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYu aCBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCmluZGV4IGUwYjA3NDFhZTY3MS4uOGRhZWIzY2Uw MDE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAorKysgYi9pbmNsdWRlL2xp bnV4L2RtYS1idWYuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4K ICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0j aW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KICNp bmNsdWRlIDxsaW51eC93YWl0Lmg+CiAKIHN0cnVjdCBkZXZpY2U7CkBAIC0xNDMsNyArMTQzLDcg QEAgc3RydWN0IGRtYV9idWYgewogCXdhaXRfcXVldWVfaGVhZF90IHBvbGw7CiAKIAlzdHJ1Y3Qg ZG1hX2J1Zl9wb2xsX2NiX3QgewotCQlzdHJ1Y3QgZmVuY2VfY2IgY2I7CisJCXN0cnVjdCBkbWFf ZmVuY2VfY2IgY2I7CiAJCXdhaXRfcXVldWVfaGVhZF90ICpwb2xsOwogCiAJCXVuc2lnbmVkIGxv bmcgYWN0aXZlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UtYXJyYXkuaCBi L2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi41OTAwOTQ1Zjk2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl L2xpbnV4L2RtYS1mZW5jZS1hcnJheS5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBmZW5jZS1h cnJheTogYWdncmVnYXRlcyBmZW5jZSB0byBiZSB3YWl0ZWQgdG9nZXRoZXIKKyAqCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTYgQ29sbGFib3JhIEx0ZAorICogQ29weXJpZ2h0IChDKSAyMDE2IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcnM6CisgKglHdXN0YXZvIFBhZG92YW4g PGd1c3Rhdm9AcGFkb3Zhbi5vcmc+CisgKglDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29l bmlnQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBi eQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ VEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRh aWxzLgorICovCisKKyNpZm5kZWYgX19MSU5VWF9ETUFfRkVOQ0VfQVJSQVlfSAorI2RlZmluZSBf X0xJTlVYX0RNQV9GRU5DRV9BUlJBWV9ICisKKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4K KworLyoqCisgKiBzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiIC0gY2FsbGJhY2sgaGVscGVyIGZv ciBmZW5jZSBhcnJheQorICogQGNiOiBmZW5jZSBjYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHNpZ25h bGluZworICogQGFycmF5OiByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBmZW5jZSBhcnJheSBvYmpl Y3QKKyAqLworc3RydWN0IGRtYV9mZW5jZV9hcnJheV9jYiB7CisJc3RydWN0IGRtYV9mZW5jZV9j YiBjYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheTsKK307CisKKy8qKgorICogc3Ry dWN0IGRtYV9mZW5jZV9hcnJheSAtIGZlbmNlIHRvIHJlcHJlc2VudCBhbiBhcnJheSBvZiBmZW5j ZXMKKyAqIEBiYXNlOiBmZW5jZSBiYXNlIGNsYXNzCisgKiBAbG9jazogc3BpbmxvY2sgZm9yIGZl bmNlIGhhbmRsaW5nCisgKiBAbnVtX2ZlbmNlczogbnVtYmVyIG9mIGZlbmNlcyBpbiB0aGUgYXJy YXkKKyAqIEBudW1fcGVuZGluZzogZmVuY2VzIGluIHRoZSBhcnJheSBzdGlsbCBwZW5kaW5nCisg KiBAZmVuY2VzOiBhcnJheSBvZiB0aGUgZmVuY2VzCisgKi8KK3N0cnVjdCBkbWFfZmVuY2VfYXJy YXkgeworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKKworCXNwaW5sb2NrX3QgbG9jazsKKwl1bnNp Z25lZCBudW1fZmVuY2VzOworCWF0b21pY190IG51bV9wZW5kaW5nOworCXN0cnVjdCBkbWFfZmVu Y2UgKipmZW5jZXM7Cit9OworCitleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgZG1h X2ZlbmNlX2FycmF5X29wczsKKworLyoqCisgKiBkbWFfZmVuY2VfaXNfYXJyYXkgLSBjaGVjayBp ZiBhIGZlbmNlIGlzIGZyb20gdGhlIGFycmF5IHN1YnNjbGFzcworICogQGZlbmNlOiBmZW5jZSB0 byB0ZXN0CisgKgorICogUmV0dXJuIHRydWUgaWYgaXQgaXMgYSBkbWFfZmVuY2VfYXJyYXkgYW5k IGZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSBib29sIGRtYV9mZW5jZV9pc19h cnJheShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gZmVuY2UtPm9wcyA9PSAm ZG1hX2ZlbmNlX2FycmF5X29wczsKK30KKworLyoqCisgKiB0b19kbWFfZmVuY2VfYXJyYXkgLSBj YXN0IGEgZmVuY2UgdG8gYSBkbWFfZmVuY2VfYXJyYXkKKyAqIEBmZW5jZTogZmVuY2UgdG8gY2Fz dCB0byBhIGRtYV9mZW5jZV9hcnJheQorICoKKyAqIFJldHVybnMgTlVMTCBpZiB0aGUgZmVuY2Ug aXMgbm90IGEgZG1hX2ZlbmNlX2FycmF5LAorICogb3IgdGhlIGRtYV9mZW5jZV9hcnJheSBvdGhl cndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqCit0b19k bWFfZmVuY2VfYXJyYXkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7CisJaWYgKGZlbmNlLT5v cHMgIT0gJmRtYV9mZW5jZV9hcnJheV9vcHMpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuIGNv bnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9hcnJheSwgYmFzZSk7Cit9CisKK3N0 cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmRtYV9mZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5j ZXMsCisJCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLAorCQkJCQkgICAgICAg dTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAorCQkJCQkgICAgICAgYm9vbCBzaWduYWxfb25f YW55KTsKKworI2VuZGlmIC8qIF9fTElOVVhfRE1BX0ZFTkNFX0FSUkFZX0ggKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvZmVuY2UuaCBiL2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLmgKc2lt aWxhcml0eSBpbmRleCA1OSUKcmVuYW1lIGZyb20gaW5jbHVkZS9saW51eC9mZW5jZS5oCnJlbmFt ZSB0byBpbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCmluZGV4IGM5YzViYTk4YzMwMi4uYmE2MGMw NDNhNWQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLmgKKysrIGIvaW5jbHVkZS9s aW51eC9kbWEtZmVuY2UuaApAQCAtMTgsOCArMTgsOCBAQAogICogbW9yZSBkZXRhaWxzLgogICov CiAKLSNpZm5kZWYgX19MSU5VWF9GRU5DRV9ICi0jZGVmaW5lIF9fTElOVVhfRkVOQ0VfSAorI2lm bmRlZiBfX0xJTlVYX0RNQV9GRU5DRV9ICisjZGVmaW5lIF9fTElOVVhfRE1BX0ZFTkNFX0gKIAog I2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KQEAgLTMwLDQ4 ICszMCw0OCBAQAogI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPgogI2luY2x1ZGUgPGxpbnV4L3Jj dXBkYXRlLmg+CiAKLXN0cnVjdCBmZW5jZTsKLXN0cnVjdCBmZW5jZV9vcHM7Ci1zdHJ1Y3QgZmVu Y2VfY2I7CitzdHJ1Y3QgZG1hX2ZlbmNlOworc3RydWN0IGRtYV9mZW5jZV9vcHM7CitzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiOwogCiAvKioKLSAqIHN0cnVjdCBmZW5jZSAtIHNvZnR3YXJlIHN5bmNocm9u aXphdGlvbiBwcmltaXRpdmUKKyAqIHN0cnVjdCBkbWFfZmVuY2UgLSBzb2Z0d2FyZSBzeW5jaHJv bml6YXRpb24gcHJpbWl0aXZlCiAgKiBAcmVmY291bnQ6IHJlZmNvdW50IGZvciB0aGlzIGZlbmNl Ci0gKiBAb3BzOiBmZW5jZV9vcHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmVuY2UKKyAqIEBvcHM6 IGRtYV9mZW5jZV9vcHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmVuY2UKICAqIEByY3U6IHVzZWQg Zm9yIHJlbGVhc2luZyBmZW5jZSB3aXRoIGtmcmVlX3JjdQogICogQGNiX2xpc3Q6IGxpc3Qgb2Yg YWxsIGNhbGxiYWNrcyB0byBjYWxsCiAgKiBAbG9jazogc3Bpbl9sb2NrX2lycXNhdmUgdXNlZCBm b3IgbG9ja2luZwogICogQGNvbnRleHQ6IGV4ZWN1dGlvbiBjb250ZXh0IHRoaXMgZmVuY2UgYmVs b25ncyB0bywgcmV0dXJuZWQgYnkKLSAqICAgICAgICAgICBmZW5jZV9jb250ZXh0X2FsbG9jKCkK KyAqICAgICAgICAgICBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygpCiAgKiBAc2Vxbm86IHRoZSBz ZXF1ZW5jZSBudW1iZXIgb2YgdGhpcyBmZW5jZSBpbnNpZGUgdGhlIGV4ZWN1dGlvbiBjb250ZXh0 LAogICogY2FuIGJlIGNvbXBhcmVkIHRvIGRlY2lkZSB3aGljaCBmZW5jZSB3b3VsZCBiZSBzaWdu YWxlZCBsYXRlci4KLSAqIEBmbGFnczogQSBtYXNrIG9mIEZFTkNFX0ZMQUdfKiBkZWZpbmVkIGJl bG93CisgKiBAZmxhZ3M6IEEgbWFzayBvZiBETUFfRkVOQ0VfRkxBR18qIGRlZmluZWQgYmVsb3cK ICAqIEB0aW1lc3RhbXA6IFRpbWVzdGFtcCB3aGVuIHRoZSBmZW5jZSB3YXMgc2lnbmFsZWQuCiAg KiBAc3RhdHVzOiBPcHRpb25hbCwgb25seSB2YWxpZCBpZiA8IDAsIG11c3QgYmUgc2V0IGJlZm9y ZSBjYWxsaW5nCi0gKiBmZW5jZV9zaWduYWwsIGluZGljYXRlcyB0aGF0IHRoZSBmZW5jZSBoYXMg Y29tcGxldGVkIHdpdGggYW4gZXJyb3IuCisgKiBkbWFfZmVuY2Vfc2lnbmFsLCBpbmRpY2F0ZXMg dGhhdCB0aGUgZmVuY2UgaGFzIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yLgogICoKICAqIHRoZSBm bGFncyBtZW1iZXIgbXVzdCBiZSBtYW5pcHVsYXRlZCBhbmQgcmVhZCB1c2luZyB0aGUgYXBwcm9w cmlhdGUKICAqIGF0b21pYyBvcHMgKGJpdF8qKSwgc28gdGFraW5nIHRoZSBzcGlubG9jayB3aWxs IG5vdCBiZSBuZWVkZWQgbW9zdAogICogb2YgdGhlIHRpbWUuCiAgKgotICogRkVOQ0VfRkxBR19T SUdOQUxFRF9CSVQgLSBmZW5jZSBpcyBhbHJlYWR5IHNpZ25hbGVkCi0gKiBGRU5DRV9GTEFHX0VO QUJMRV9TSUdOQUxfQklUIC0gZW5hYmxlX3NpZ25hbGluZyBtaWdodCBoYXZlIGJlZW4gY2FsbGVk KgotICogRkVOQ0VfRkxBR19VU0VSX0JJVFMgLSBzdGFydCBvZiB0aGUgdW51c2VkIGJpdHMsIGNh biBiZSB1c2VkIGJ5IHRoZQorICogRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIC0gZmVuY2Ug aXMgYWxyZWFkeSBzaWduYWxlZAorICogRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQg LSBlbmFibGVfc2lnbmFsaW5nIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQKKyAqIERNQV9GRU5DRV9G TEFHX1VTRVJfQklUUyAtIHN0YXJ0IG9mIHRoZSB1bnVzZWQgYml0cywgY2FuIGJlIHVzZWQgYnkg dGhlCiAgKiBpbXBsZW1lbnRlciBvZiB0aGUgZmVuY2UgZm9yIGl0cyBvd24gcHVycG9zZXMuIENh biBiZSB1c2VkIGluIGRpZmZlcmVudAogICogd2F5cyBieSBkaWZmZXJlbnQgZmVuY2UgaW1wbGVt ZW50ZXJzLCBzbyBkbyBub3QgcmVseSBvbiB0aGlzLgogICoKICAqIFNpbmNlIGF0b21pYyBiaXRv cHMgYXJlIHVzZWQsIHRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgdGhlIGNhc2UuCi0gKiBQ YXJ0aWN1bGFybHksIGlmIHRoZSBiaXQgd2FzIHNldCwgYnV0IGZlbmNlX3NpZ25hbCB3YXMgY2Fs bGVkIHJpZ2h0CisgKiBQYXJ0aWN1bGFybHksIGlmIHRoZSBiaXQgd2FzIHNldCwgYnV0IGRtYV9m ZW5jZV9zaWduYWwgd2FzIGNhbGxlZCByaWdodAogICogYmVmb3JlIHRoaXMgYml0IHdhcyBzZXQs IGl0IHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHNldCB0aGUKLSAqIEZFTkNFX0ZMQUdfU0lHTkFM RURfQklULCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyB3YXMgY2FsbGVkLgotICogQWRkaW5nIGEg Y2hlY2sgZm9yIEZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIGFmdGVyIHNldHRpbmcKLSAqIEZFTkNF X0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQgY2xvc2VzIHRoaXMgcmFjZSwgYW5kIG1ha2VzIHN1cmUg dGhhdAotICogYWZ0ZXIgZmVuY2Vfc2lnbmFsIHdhcyBjYWxsZWQsIGFueSBlbmFibGVfc2lnbmFs aW5nIGNhbGwgd2lsbCBoYXZlIGVpdGhlcgorICogRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklU LCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyB3YXMgY2FsbGVkLgorICogQWRkaW5nIGEgY2hlY2sg Zm9yIERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBhZnRlciBzZXR0aW5nCisgKiBETUFfRkVO Q0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCBjbG9zZXMgdGhpcyByYWNlLCBhbmQgbWFrZXMgc3Vy ZSB0aGF0CisgKiBhZnRlciBkbWFfZmVuY2Vfc2lnbmFsIHdhcyBjYWxsZWQsIGFueSBlbmFibGVf c2lnbmFsaW5nIGNhbGwgd2lsbCBoYXZlIGVpdGhlcgogICogYmVlbiBjb21wbGV0ZWQsIG9yIG5l dmVyIGNhbGxlZCBhdCBhbGwuCiAgKi8KLXN0cnVjdCBmZW5jZSB7CitzdHJ1Y3QgZG1hX2ZlbmNl IHsKIAlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKLQljb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpvcHM7 CisJY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKIAlzdHJ1Y3QgcmN1X2hlYWQgcmN1 OwogCXN0cnVjdCBsaXN0X2hlYWQgY2JfbGlzdDsKIAlzcGlubG9ja190ICpsb2NrOwpAQCAtODIs MzQgKzgyLDM1IEBAIHN0cnVjdCBmZW5jZSB7CiAJaW50IHN0YXR1czsKIH07CiAKLWVudW0gZmVu Y2VfZmxhZ19iaXRzIHsKLQlGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwKLQlGRU5DRV9GTEFHX0VO QUJMRV9TSUdOQUxfQklULAotCUZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAvKiBtdXN0IGFsd2F5cyBi ZSBsYXN0IG1lbWJlciAqLworZW51bSBkbWFfZmVuY2VfZmxhZ19iaXRzIHsKKwlETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsCisJRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsCisJ RE1BX0ZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAvKiBtdXN0IGFsd2F5cyBiZSBsYXN0IG1lbWJlciAq LwogfTsKIAotdHlwZWRlZiB2b2lkICgqZmVuY2VfZnVuY190KShzdHJ1Y3QgZmVuY2UgKmZlbmNl LCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKTsKK3R5cGVkZWYgdm9pZCAoKmRtYV9mZW5jZV9mdW5jX3Qp KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYik7 CiAKIC8qKgotICogc3RydWN0IGZlbmNlX2NiIC0gY2FsbGJhY2sgZm9yIGZlbmNlX2FkZF9jYWxs YmFjawotICogQG5vZGU6IHVzZWQgYnkgZmVuY2VfYWRkX2NhbGxiYWNrIHRvIGFwcGVuZCB0aGlz IHN0cnVjdCB0byBmZW5jZTo6Y2JfbGlzdAotICogQGZ1bmM6IGZlbmNlX2Z1bmNfdCB0byBjYWxs CisgKiBzdHJ1Y3QgZG1hX2ZlbmNlX2NiIC0gY2FsbGJhY2sgZm9yIGRtYV9mZW5jZV9hZGRfY2Fs bGJhY2sKKyAqIEBub2RlOiB1c2VkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2sgdG8gYXBwZW5k IHRoaXMgc3RydWN0IHRvIGZlbmNlOjpjYl9saXN0CisgKiBAZnVuYzogZG1hX2ZlbmNlX2Z1bmNf dCB0byBjYWxsCiAgKgotICogVGhpcyBzdHJ1Y3Qgd2lsbCBiZSBpbml0aWFsaXplZCBieSBmZW5j ZV9hZGRfY2FsbGJhY2ssIGFkZGl0aW9uYWwKLSAqIGRhdGEgY2FuIGJlIHBhc3NlZCBhbG9uZyBi eSBlbWJlZGRpbmcgZmVuY2VfY2IgaW4gYW5vdGhlciBzdHJ1Y3QuCisgKiBUaGlzIHN0cnVjdCB3 aWxsIGJlIGluaXRpYWxpemVkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2ssIGFkZGl0aW9uYWwK KyAqIGRhdGEgY2FuIGJlIHBhc3NlZCBhbG9uZyBieSBlbWJlZGRpbmcgZG1hX2ZlbmNlX2NiIGlu IGFub3RoZXIgc3RydWN0LgogICovCi1zdHJ1Y3QgZmVuY2VfY2Igeworc3RydWN0IGRtYV9mZW5j ZV9jYiB7CiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwotCWZlbmNlX2Z1bmNfdCBmdW5jOworCWRt YV9mZW5jZV9mdW5jX3QgZnVuYzsKIH07CiAKIC8qKgotICogc3RydWN0IGZlbmNlX29wcyAtIG9w ZXJhdGlvbnMgaW1wbGVtZW50ZWQgZm9yIGZlbmNlCisgKiBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAt IG9wZXJhdGlvbnMgaW1wbGVtZW50ZWQgZm9yIGZlbmNlCiAgKiBAZ2V0X2RyaXZlcl9uYW1lOiBy ZXR1cm5zIHRoZSBkcml2ZXIgbmFtZS4KICAqIEBnZXRfdGltZWxpbmVfbmFtZTogcmV0dXJuIHRo ZSBuYW1lIG9mIHRoZSBjb250ZXh0IHRoaXMgZmVuY2UgYmVsb25ncyB0by4KICAqIEBlbmFibGVf c2lnbmFsaW5nOiBlbmFibGUgc29mdHdhcmUgc2lnbmFsaW5nIG9mIGZlbmNlLgogICogQHNpZ25h bGVkOiBbb3B0aW9uYWxdIHBlZWsgd2hldGhlciB0aGUgZmVuY2UgaXMgc2lnbmFsZWQsIGNhbiBi ZSBudWxsLgotICogQHdhaXQ6IGN1c3RvbSB3YWl0IGltcGxlbWVudGF0aW9uLCBvciBmZW5jZV9k ZWZhdWx0X3dhaXQuCisgKiBAd2FpdDogY3VzdG9tIHdhaXQgaW1wbGVtZW50YXRpb24sIG9yIGRt YV9mZW5jZV9kZWZhdWx0X3dhaXQuCiAgKiBAcmVsZWFzZTogW29wdGlvbmFsXSBjYWxsZWQgb24g ZGVzdHJ1Y3Rpb24gb2YgZmVuY2UsIGNhbiBiZSBudWxsCiAgKiBAZmlsbF9kcml2ZXJfZGF0YTog W29wdGlvbmFsXSBjYWxsYmFjayB0byBmaWxsIGluIGZyZWUtZm9ybSBkZWJ1ZyBpbmZvCiAgKiBS ZXR1cm5zIGFtb3VudCBvZiBieXRlcyBmaWxsZWQsIG9yIC1lcnJuby4KQEAgLTEzNSwyMCArMTM2 LDIwIEBAIHN0cnVjdCBmZW5jZV9jYiB7CiAgKiBmZW5jZS0+c3RhdHVzIG1heSBiZSBzZXQgaW4g ZW5hYmxlX3NpZ25hbGluZywgYnV0IG9ubHkgd2hlbiBmYWxzZSBpcwogICogcmV0dXJuZWQuCiAg KgotICogQ2FsbGluZyBmZW5jZV9zaWduYWwgYmVmb3JlIGVuYWJsZV9zaWduYWxpbmcgaXMgY2Fs bGVkIGFsbG93cworICogQ2FsbGluZyBkbWFfZmVuY2Vfc2lnbmFsIGJlZm9yZSBlbmFibGVfc2ln bmFsaW5nIGlzIGNhbGxlZCBhbGxvd3MKICAqIGZvciBhIHRpbnkgcmFjZSB3aW5kb3cgaW4gd2hp Y2ggZW5hYmxlX3NpZ25hbGluZyBpcyBjYWxsZWQgZHVyaW5nLAotICogYmVmb3JlLCBvciBhZnRl ciBmZW5jZV9zaWduYWwuIFRvIGZpZ2h0IHRoaXMsIGl0IGlzIHJlY29tbWVuZGVkCisgKiBiZWZv cmUsIG9yIGFmdGVyIGRtYV9mZW5jZV9zaWduYWwuIFRvIGZpZ2h0IHRoaXMsIGl0IGlzIHJlY29t bWVuZGVkCiAgKiB0aGF0IGJlZm9yZSBlbmFibGVfc2lnbmFsaW5nIHJldHVybnMgdHJ1ZSBhbiBl eHRyYSByZWZlcmVuY2UgaXMKICAqIHRha2VuIG9uIHRoZSBmZW5jZSwgdG8gYmUgcmVsZWFzZWQg d2hlbiB0aGUgZmVuY2UgaXMgc2lnbmFsZWQuCi0gKiBUaGlzIHdpbGwgbWVhbiBmZW5jZV9zaWdu YWwgd2lsbCBzdGlsbCBiZSBjYWxsZWQgdHdpY2UsIGJ1dAorICogVGhpcyB3aWxsIG1lYW4gZG1h X2ZlbmNlX3NpZ25hbCB3aWxsIHN0aWxsIGJlIGNhbGxlZCB0d2ljZSwgYnV0CiAgKiB0aGUgc2Vj b25kIHRpbWUgd2lsbCBiZSBhIG5vb3Agc2luY2UgaXQgd2FzIGFscmVhZHkgc2lnbmFsZWQuCiAg KgogICogTm90ZXMgb24gc2lnbmFsZWQ6CiAgKiBNYXkgc2V0IGZlbmNlLT5zdGF0dXMgaWYgcmV0 dXJuaW5nIHRydWUuCiAgKgogICogTm90ZXMgb24gd2FpdDoKLSAqIE11c3Qgbm90IGJlIE5VTEws IHNldCB0byBmZW5jZV9kZWZhdWx0X3dhaXQgZm9yIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCi0g KiB0aGUgZmVuY2VfZGVmYXVsdF93YWl0IGltcGxlbWVudGF0aW9uIHNob3VsZCB3b3JrIGZvciBh bnkgZmVuY2UsIGFzIGxvbmcKKyAqIE11c3Qgbm90IGJlIE5VTEwsIHNldCB0byBkbWFfZmVuY2Vf ZGVmYXVsdF93YWl0IGZvciBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICogdGhlIGRtYV9mZW5j ZV9kZWZhdWx0X3dhaXQgaW1wbGVtZW50YXRpb24gc2hvdWxkIHdvcmsgZm9yIGFueSBmZW5jZSwg YXMgbG9uZwogICogYXMgZW5hYmxlX3NpZ25hbGluZyB3b3JrcyBjb3JyZWN0bHkuCiAgKgogICog TXVzdCByZXR1cm4gLUVSRVNUQVJUU1lTIGlmIHRoZSB3YWl0IGlzIGludHIgPSB0cnVlIGFuZCB0 aGUgd2FpdCB3YXMKQEAgLTE2Myw0MiArMTY0LDQ0IEBAIHN0cnVjdCBmZW5jZV9jYiB7CiAgKiBJ ZiBwb2ludGVyIGlzIHNldCB0byBOVUxMLCBrZnJlZSB3aWxsIGdldCBjYWxsZWQgaW5zdGVhZC4K ICAqLwogCi1zdHJ1Y3QgZmVuY2Vfb3BzIHsKLQljb25zdCBjaGFyICogKCpnZXRfZHJpdmVyX25h bWUpKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotCWNvbnN0IGNoYXIgKiAoKmdldF90aW1lbGluZV9u YW1lKShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLQlib29sICgqZW5hYmxlX3NpZ25hbGluZykoc3Ry dWN0IGZlbmNlICpmZW5jZSk7Ci0JYm9vbCAoKnNpZ25hbGVkKShzdHJ1Y3QgZmVuY2UgKmZlbmNl KTsKLQlzaWduZWQgbG9uZyAoKndhaXQpKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwg c2lnbmVkIGxvbmcgdGltZW91dCk7Ci0Jdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBmZW5jZSAqZmVu Y2UpOwotCi0JaW50ICgqZmlsbF9kcml2ZXJfZGF0YSkoc3RydWN0IGZlbmNlICpmZW5jZSwgdm9p ZCAqZGF0YSwgaW50IHNpemUpOwotCXZvaWQgKCpmZW5jZV92YWx1ZV9zdHIpKHN0cnVjdCBmZW5j ZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpOwotCXZvaWQgKCp0aW1lbGluZV92YWx1ZV9z dHIpKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpOworc3RydWN0IGRt YV9mZW5jZV9vcHMgeworCWNvbnN0IGNoYXIgKiAoKmdldF9kcml2ZXJfbmFtZSkoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpOworCWNvbnN0IGNoYXIgKiAoKmdldF90aW1lbGluZV9uYW1lKShzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CisJYm9vbCAoKmVuYWJsZV9zaWduYWxpbmcpKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKTsKKwlib29sICgqc2lnbmFsZWQpKHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlKTsKKwlzaWduZWQgbG9uZyAoKndhaXQpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJ ICAgIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7CisJdm9pZCAoKnJlbGVhc2UpKHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKKworCWludCAoKmZpbGxfZHJpdmVyX2RhdGEpKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlLCB2b2lkICpkYXRhLCBpbnQgc2l6ZSk7CisJdm9pZCAoKmZlbmNl X3ZhbHVlX3N0cikoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUp OworCXZvaWQgKCp0aW1lbGluZV92YWx1ZV9zdHIpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAor CQkJCSAgIGNoYXIgKnN0ciwgaW50IHNpemUpOwogfTsKIAotdm9pZCBmZW5jZV9pbml0KHN0cnVj dCBmZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgKm9wcywKLQkJc3BpbmxvY2tf dCAqbG9jaywgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vKTsKK3ZvaWQgZG1hX2ZlbmNlX2lu aXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzICpv cHMsCisJCSAgICBzcGlubG9ja190ICpsb2NrLCB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8p OwogCi12b2lkIGZlbmNlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpOwotdm9pZCBmZW5jZV9m cmVlKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwordm9pZCBkbWFfZmVuY2VfcmVsZWFzZShzdHJ1Y3Qg a3JlZiAqa3JlZik7Cit2b2lkIGRtYV9mZW5jZV9mcmVlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KTsKIAogLyoqCi0gKiBmZW5jZV9wdXQgLSBkZWNyZWFzZXMgcmVmY291bnQgb2YgdGhlIGZlbmNl CisgKiBkbWFfZmVuY2VfcHV0IC0gZGVjcmVhc2VzIHJlZmNvdW50IG9mIHRoZSBmZW5jZQogICog QGZlbmNlOglbaW5dCWZlbmNlIHRvIHJlZHVjZSByZWZjb3VudCBvZgogICovCi1zdGF0aWMgaW5s aW5lIHZvaWQgZmVuY2VfcHV0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHZv aWQgZG1hX2ZlbmNlX3B1dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlpZiAoZmVuY2Up Ci0JCWtyZWZfcHV0KCZmZW5jZS0+cmVmY291bnQsIGZlbmNlX3JlbGVhc2UpOworCQlrcmVmX3B1 dCgmZmVuY2UtPnJlZmNvdW50LCBkbWFfZmVuY2VfcmVsZWFzZSk7CiB9CiAKIC8qKgotICogZmVu Y2VfZ2V0IC0gaW5jcmVhc2VzIHJlZmNvdW50IG9mIHRoZSBmZW5jZQorICogZG1hX2ZlbmNlX2dl dCAtIGluY3JlYXNlcyByZWZjb3VudCBvZiB0aGUgZmVuY2UKICAqIEBmZW5jZToJW2luXQlmZW5j ZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKICAqIFJldHVybnMgdGhlIHNhbWUgZmVuY2Us IHdpdGggcmVmY291bnQgaW5jcmVhc2VkIGJ5IDEuCiAgKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0 IGZlbmNlICpmZW5jZV9nZXQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2dldChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlpZiAoZmVuY2UpCiAJCWtyZWZfZ2V0KCZmZW5jZS0+cmVmY291bnQpOwpAQCAtMjA2LDEyICsy MDksMTMgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldChzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQogfQogCiAvKioKLSAqIGZlbmNlX2dldF9yY3UgLSBnZXQgYSBmZW5jZSBmcm9t IGEgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qgd2l0aCByY3UgcmVhZCBsb2NrCisgKiBkbWFfZmVu Y2VfZ2V0X3JjdSAtIGdldCBhIGZlbmNlIGZyb20gYSByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCB3 aXRoCisgKiAgICAgICAgICAgICAgICAgICAgIHJjdSByZWFkIGxvY2sKICAqIEBmZW5jZToJW2lu XQlmZW5jZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKICAqIEZ1bmN0aW9uIHJldHVybnMg TlVMTCBpZiBubyByZWZjb3VudCBjb3VsZCBiZSBvYnRhaW5lZCwgb3IgdGhlIGZlbmNlLgogICov Ci1zdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICpkbWFfZmVuY2VfZ2V0X3Jj dShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlpZiAoa3JlZl9nZXRfdW5sZXNzX3plcm8o JmZlbmNlLT5yZWZjb3VudCkpCiAJCXJldHVybiBmZW5jZTsKQEAgLTIyMCw3ICsyMjQsNyBAQCBz dGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZmVuY2UgKmZl bmNlKQogfQogCiAvKioKLSAqIGZlbmNlX2dldF9yY3Vfc2FmZSAgLSBhY3F1aXJlIGEgcmVmZXJl bmNlIHRvIGFuIFJDVSB0cmFja2VkIGZlbmNlCisgKiBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlICAt IGFjcXVpcmUgYSByZWZlcmVuY2UgdG8gYW4gUkNVIHRyYWNrZWQgZmVuY2UKICAqIEBmZW5jZToJ W2luXQlwb2ludGVyIHRvIGZlbmNlIHRvIGluY3JlYXNlIHJlZmNvdW50IG9mCiAgKgogICogRnVu Y3Rpb24gcmV0dXJucyBOVUxMIGlmIG5vIHJlZmNvdW50IGNvdWxkIGJlIG9idGFpbmVkLCBvciB0 aGUgZmVuY2UuCkBAIC0yMzUsMTYgKzIzOSwxNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5j ZSAqZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogICoKICAqIFRoZSBjYWxsZXIg aXMgcmVxdWlyZWQgdG8gaG9sZCB0aGUgUkNVIHJlYWQgbG9jay4KICAqLwotc3RhdGljIGlubGlu ZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldF9yY3Vfc2FmZShzdHJ1Y3QgZmVuY2UgKiBfX3JjdSAq ZmVuY2VwKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKK2RtYV9mZW5jZV9nZXRf cmN1X3NhZmUoc3RydWN0IGRtYV9mZW5jZSAqIF9fcmN1ICpmZW5jZXApCiB7CiAJZG8gewotCQlz dHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQlmZW5j ZSA9IHJjdV9kZXJlZmVyZW5jZSgqZmVuY2VwKTsKLQkJaWYgKCFmZW5jZSB8fCAhZmVuY2VfZ2V0 X3JjdShmZW5jZSkpCisJCWlmICghZmVuY2UgfHwgIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKSkK IAkJCXJldHVybiBOVUxMOwogCi0JCS8qIFRoZSBhdG9taWNfaW5jX25vdF96ZXJvKCkgaW5zaWRl IGZlbmNlX2dldF9yY3UoKQorCQkvKiBUaGUgYXRvbWljX2luY19ub3RfemVybygpIGluc2lkZSBk bWFfZmVuY2VfZ2V0X3JjdSgpCiAJCSAqIHByb3ZpZGVzIGEgZnVsbCBtZW1vcnkgYmFycmllciB1 cG9uIHN1Y2Nlc3MgKHN1Y2ggYXMgbm93KS4KIAkJICogVGhpcyBpcyBwYWlyZWQgd2l0aCB0aGUg d3JpdGUgYmFycmllciBmcm9tIGFzc2lnbmluZwogCQkgKiB0byB0aGUgX19yY3UgcHJvdGVjdGVk IGZlbmNlIHBvaW50ZXIgc28gdGhhdCBpZiB0aGF0CkBAIC0yNjEsMzcgKzI2Niw0MSBAQCBzdGF0 aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdV9zYWZlKHN0cnVjdCBmZW5jZSAq IF9fcmN1ICpmZW5jZXApCiAJCWlmIChmZW5jZSA9PSByY3VfYWNjZXNzX3BvaW50ZXIoKmZlbmNl cCkpCiAJCQlyZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZihmZW5jZSk7CiAKLQkJZmVuY2VfcHV0 KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJfSB3aGlsZSAoMSk7CiB9CiAKLWlu dCBmZW5jZV9zaWduYWwoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci1pbnQgZmVuY2Vfc2lnbmFsX2xv Y2tlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLXNpZ25lZCBsb25nIGZlbmNlX2RlZmF1bHRfd2Fp dChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwot aW50IGZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2Vf Y2IgKmNiLAotCQkgICAgICAgZmVuY2VfZnVuY190IGZ1bmMpOwotYm9vbCBmZW5jZV9yZW1vdmVf Y2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYik7Ci12b2lk IGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSk7CitpbnQgZG1h X2ZlbmNlX3NpZ25hbChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CitpbnQgZG1hX2ZlbmNlX3Np Z25hbF9sb2NrZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworc2lnbmVkIGxvbmcgZG1hX2Zl bmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJCQkgICBib29sIGlu dHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOworaW50IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiwKKwkJ CSAgIGRtYV9mZW5jZV9mdW5jX3QgZnVuYyk7Citib29sIGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJh Y2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZV9j YiAqY2IpOwordm9pZCBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSk7CiAKIC8qKgotICogZmVuY2VfaXNfc2lnbmFsZWRfbG9ja2VkIC0gUmV0dXJu IGFuIGluZGljYXRpb24gaWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVkIHlldC4KKyAqIGRtYV9mZW5j ZV9pc19zaWduYWxlZF9sb2NrZWQgLSBSZXR1cm4gYW4gaW5kaWNhdGlvbiBpZiB0aGUgZmVuY2UK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBzaWduYWxlZCB5ZXQuCiAgKiBA ZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIGNoZWNrCiAgKgogICogUmV0dXJucyB0cnVlIGlmIHRo ZSBmZW5jZSB3YXMgYWxyZWFkeSBzaWduYWxlZCwgZmFsc2UgaWYgbm90LiBTaW5jZSB0aGlzCiAg KiBmdW5jdGlvbiBkb2Vzbid0IGVuYWJsZSBzaWduYWxpbmcsIGl0IGlzIG5vdCBndWFyYW50ZWVk IHRvIGV2ZXIgcmV0dXJuCi0gKiB0cnVlIGlmIGZlbmNlX2FkZF9jYWxsYmFjaywgZmVuY2Vfd2Fp dCBvciBmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nCi0gKiBoYXZlbid0IGJlZW4gY2FsbGVkIGJl Zm9yZS4KKyAqIHRydWUgaWYgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywgZG1hX2ZlbmNlX3dhaXQg b3IKKyAqIGRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nIGhhdmVuJ3QgYmVlbiBjYWxsZWQg YmVmb3JlLgogICoKICAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZmVuY2UtPmxvY2sgdG8gYmUg aGVsZC4KICAqLwogc3RhdGljIGlubGluZSBib29sCi1mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQo c3RydWN0IGZlbmNlICpmZW5jZSkKK2RtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURf QklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFM RURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlpZiAoZmVuY2UtPm9w cy0+c2lnbmFsZWQgJiYgZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpKSB7Ci0JCWZlbmNlX3Np Z25hbF9sb2NrZWQoZmVuY2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7CiAJ CXJldHVybiB0cnVlOwogCX0KIApAQCAtMjk5LDI3ICszMDgsMjcgQEAgZmVuY2VfaXNfc2lnbmFs ZWRfbG9ja2VkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiB9CiAKIC8qKgotICogZmVuY2VfaXNfc2ln bmFsZWQgLSBSZXR1cm4gYW4gaW5kaWNhdGlvbiBpZiB0aGUgZmVuY2UgaXMgc2lnbmFsZWQgeWV0 LgorICogZG1hX2ZlbmNlX2lzX3NpZ25hbGVkIC0gUmV0dXJuIGFuIGluZGljYXRpb24gaWYgdGhl IGZlbmNlIGlzIHNpZ25hbGVkIHlldC4KICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gY2hl Y2sKICAqCiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGZlbmNlIHdhcyBhbHJlYWR5IHNpZ25hbGVk LCBmYWxzZSBpZiBub3QuIFNpbmNlIHRoaXMKICAqIGZ1bmN0aW9uIGRvZXNuJ3QgZW5hYmxlIHNp Z25hbGluZywgaXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gZXZlciByZXR1cm4KLSAqIHRydWUgaWYg ZmVuY2VfYWRkX2NhbGxiYWNrLCBmZW5jZV93YWl0IG9yIGZlbmNlX2VuYWJsZV9zd19zaWduYWxp bmcKLSAqIGhhdmVuJ3QgYmVlbiBjYWxsZWQgYmVmb3JlLgorICogdHJ1ZSBpZiBkbWFfZmVuY2Vf YWRkX2NhbGxiYWNrLCBkbWFfZmVuY2Vfd2FpdCBvcgorICogZG1hX2ZlbmNlX2VuYWJsZV9zd19z aWduYWxpbmcgaGF2ZW4ndCBiZWVuIGNhbGxlZCBiZWZvcmUuCiAgKgotICogSXQncyByZWNvbW1l bmRlZCBmb3Igc2Vxbm8gZmVuY2VzIHRvIGNhbGwgZmVuY2Vfc2lnbmFsIHdoZW4gdGhlCisgKiBJ dCdzIHJlY29tbWVuZGVkIGZvciBzZXFubyBmZW5jZXMgdG8gY2FsbCBkbWFfZmVuY2Vfc2lnbmFs IHdoZW4gdGhlCiAgKiBvcGVyYXRpb24gaXMgY29tcGxldGUsIGl0IG1ha2VzIGl0IHBvc3NpYmxl IHRvIHByZXZlbnQgaXNzdWVzIGZyb20KICAqIHdyYXBhcm91bmQgYmV0d2VlbiB0aW1lIG9mIGlz c3VlIGFuZCB0aW1lIG9mIHVzZSBieSBjaGVja2luZyB0aGUgcmV0dXJuCiAgKiB2YWx1ZSBvZiB0 aGlzIGZ1bmN0aW9uIGJlZm9yZSBjYWxsaW5nIGhhcmR3YXJlLXNwZWNpZmljIHdhaXQgaW5zdHJ1 Y3Rpb25zLgogICovCiBzdGF0aWMgaW5saW5lIGJvb2wKLWZlbmNlX2lzX3NpZ25hbGVkKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCiB7Ci0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2Ut PmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVu Y2UtPmZsYWdzKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlpZiAoZmVuY2UtPm9wcy0+c2lnbmFsZWQg JiYgZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpKSB7Ci0JCWZlbmNlX3NpZ25hbChmZW5jZSk7 CisJCWRtYV9mZW5jZV9zaWduYWwoZmVuY2UpOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTMy NywxNCArMzM2LDE1IEBAIGZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiB9 CiAKIC8qKgotICogZmVuY2VfaXNfbGF0ZXIgLSByZXR1cm4gaWYgZjEgaXMgY2hyb25vbG9naWNh bGx5IGxhdGVyIHRoYW4gZjIKKyAqIGRtYV9mZW5jZV9pc19sYXRlciAtIHJldHVybiBpZiBmMSBp cyBjaHJvbm9sb2dpY2FsbHkgbGF0ZXIgdGhhbiBmMgogICogQGYxOglbaW5dCXRoZSBmaXJzdCBm ZW5jZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQKICAqIEBmMjoJW2luXQl0aGUgc2Vjb25kIGZlbmNl IGZyb20gdGhlIHNhbWUgY29udGV4dAogICoKICAqIFJldHVybnMgdHJ1ZSBpZiBmMSBpcyBjaHJv bm9sb2dpY2FsbHkgbGF0ZXIgdGhhbiBmMi4gQm90aCBmZW5jZXMgbXVzdCBiZQogICogZnJvbSB0 aGUgc2FtZSBjb250ZXh0LCBzaW5jZSBhIHNlcW5vIGlzIG5vdCByZS11c2VkIGFjcm9zcyBjb250 ZXh0cy4KICAqLwotc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2xhdGVyKHN0cnVjdCBmZW5j ZSAqZjEsIHN0cnVjdCBmZW5jZSAqZjIpCitzdGF0aWMgaW5saW5lIGJvb2wgZG1hX2ZlbmNlX2lz X2xhdGVyKHN0cnVjdCBkbWFfZmVuY2UgKmYxLAorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2Ug KmYyKQogewogCWlmIChXQVJOX09OKGYxLT5jb250ZXh0ICE9IGYyLT5jb250ZXh0KSkKIAkJcmV0 dXJuIGZhbHNlOwpAQCAtMzQzLDcgKzM1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9p c19sYXRlcihzdHJ1Y3QgZmVuY2UgKmYxLCBzdHJ1Y3QgZmVuY2UgKmYyKQogfQogCiAvKioKLSAq IGZlbmNlX2xhdGVyIC0gcmV0dXJuIHRoZSBjaHJvbm9sb2dpY2FsbHkgbGF0ZXIgZmVuY2UKKyAq IGRtYV9mZW5jZV9sYXRlciAtIHJldHVybiB0aGUgY2hyb25vbG9naWNhbGx5IGxhdGVyIGZlbmNl CiAgKiBAZjE6CVtpbl0JdGhlIGZpcnN0IGZlbmNlIGZyb20gdGhlIHNhbWUgY29udGV4dAogICog QGYyOglbaW5dCXRoZSBzZWNvbmQgZmVuY2UgZnJvbSB0aGUgc2FtZSBjb250ZXh0CiAgKgpAQCAt MzUxLDI4ICszNjEsMzEgQEAgc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2xhdGVyKHN0cnVj dCBmZW5jZSAqZjEsIHN0cnVjdCBmZW5jZSAqZjIpCiAgKiBzaWduYWxlZCBsYXN0LiBCb3RoIGZl bmNlcyBtdXN0IGJlIGZyb20gdGhlIHNhbWUgY29udGV4dCwgc2luY2UgYSBzZXFubyBpcwogICog bm90IHJlLXVzZWQgYWNyb3NzIGNvbnRleHRzLgogICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBm ZW5jZSAqZmVuY2VfbGF0ZXIoc3RydWN0IGZlbmNlICpmMSwgc3RydWN0IGZlbmNlICpmMikKK3N0 YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2xhdGVyKHN0cnVjdCBkbWFf ZmVuY2UgKmYxLAorCQkJCQkJc3RydWN0IGRtYV9mZW5jZSAqZjIpCiB7CiAJaWYgKFdBUk5fT04o ZjEtPmNvbnRleHQgIT0gZjItPmNvbnRleHQpKQogCQlyZXR1cm4gTlVMTDsKIAogCS8qCi0JICog Y2FuJ3QgY2hlY2sganVzdCBGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBoZXJlLCBpdCBtYXkgbmV2 ZXIgaGF2ZSBiZWVuCi0JICogc2V0IGlmIGVuYWJsZV9zaWduYWxpbmcgd2Fzbid0IGNhbGxlZCwg YW5kIGVuYWJsaW5nIHRoYXQgaGVyZSBpcwotCSAqIG92ZXJraWxsLgorCSAqIENhbid0IGNoZWNr IGp1c3QgRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIGhlcmUsIGl0IG1heSBuZXZlcgorCSAq IGhhdmUgYmVlbiBzZXQgaWYgZW5hYmxlX3NpZ25hbGluZyB3YXNuJ3QgY2FsbGVkLCBhbmQgZW5h YmxpbmcgdGhhdAorCSAqIGhlcmUgaXMgb3ZlcmtpbGwuCiAJICovCi0JaWYgKGZlbmNlX2lzX2xh dGVyKGYxLCBmMikpCi0JCXJldHVybiBmZW5jZV9pc19zaWduYWxlZChmMSkgPyBOVUxMIDogZjE7 CisJaWYgKGRtYV9mZW5jZV9pc19sYXRlcihmMSwgZjIpKQorCQlyZXR1cm4gZG1hX2ZlbmNlX2lz X3NpZ25hbGVkKGYxKSA/IE5VTEwgOiBmMTsKIAllbHNlCi0JCXJldHVybiBmZW5jZV9pc19zaWdu YWxlZChmMikgPyBOVUxMIDogZjI7CisJCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZjIp ID8gTlVMTCA6IGYyOwogfQogCi1zaWduZWQgbG9uZyBmZW5jZV93YWl0X3RpbWVvdXQoc3RydWN0 IGZlbmNlICosIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7Ci1zaWduZWQgbG9uZyBm ZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBmZW5jZSAqKmZlbmNlcywgdWludDMyX3QgY291 bnQsCitzaWduZWQgbG9uZyBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2Ug KiwKIAkJCQkgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOworc2lnbmVkIGxvbmcg ZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcywKKwkJ CQkgICAgICAgdWludDMyX3QgY291bnQsCisJCQkJICAgICAgIGJvb2wgaW50ciwgc2lnbmVkIGxv bmcgdGltZW91dCk7CiAKIC8qKgotICogZmVuY2Vfd2FpdCAtIHNsZWVwIHVudGlsIHRoZSBmZW5j ZSBnZXRzIHNpZ25hbGVkCisgKiBkbWFfZmVuY2Vfd2FpdCAtIHNsZWVwIHVudGlsIHRoZSBmZW5j ZSBnZXRzIHNpZ25hbGVkCiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIHdhaXQgb24KICAq IEBpbnRyOglbaW5dCWlmIHRydWUsIGRvIGFuIGludGVycnVwdGlibGUgd2FpdAogICoKQEAgLTM4 NCw0MSArMzk3LDQxIEBAIHNpZ25lZCBsb25nIGZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0 IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKICAqIGRpcmVjdGx5IG9yIGluZGlyZWN0 bHkgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGZlbmNlLCBvdGhlcndpc2UgdGhlCiAgKiBmZW5j ZSBtaWdodCBiZSBmcmVlZCBiZWZvcmUgcmV0dXJuLCByZXN1bHRpbmcgaW4gdW5kZWZpbmVkIGJl aGF2aW9yLgogICovCi1zdGF0aWMgaW5saW5lIHNpZ25lZCBsb25nIGZlbmNlX3dhaXQoc3RydWN0 IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyKQorc3RhdGljIGlubGluZSBzaWduZWQgbG9uZyBkbWFf ZmVuY2Vfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyKQogewogCXNpZ25l ZCBsb25nIHJldDsKIAotCS8qIFNpbmNlIGZlbmNlX3dhaXRfdGltZW91dCBjYW5ub3QgdGltZW91 dCB3aXRoCisJLyogU2luY2UgZG1hX2ZlbmNlX3dhaXRfdGltZW91dCBjYW5ub3QgdGltZW91dCB3 aXRoCiAJICogTUFYX1NDSEVEVUxFX1RJTUVPVVQsIG9ubHkgdmFsaWQgcmV0dXJuIHZhbHVlcyBh cmUKIAkgKiAtRVJFU1RBUlRTWVMgYW5kIE1BWF9TQ0hFRFVMRV9USU1FT1VULgogCSAqLwotCXJl dCA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgaW50ciwgTUFYX1NDSEVEVUxFX1RJTUVPVVQp OworCXJldCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIsIE1BWF9TQ0hFRFVM RV9USU1FT1VUKTsKIAogCXJldHVybiByZXQgPCAwID8gcmV0IDogMDsKIH0KIAotdTY0IGZlbmNl X2NvbnRleHRfYWxsb2ModW5zaWduZWQgbnVtKTsKK3U2NCBkbWFfZmVuY2VfY29udGV4dF9hbGxv Yyh1bnNpZ25lZCBudW0pOwogCi0jZGVmaW5lIEZFTkNFX1RSQUNFKGYsIGZtdCwgYXJncy4uLikg XAorI2RlZmluZSBETUFfRkVOQ0VfVFJBQ0UoZiwgZm10LCBhcmdzLi4uKSBcCiAJZG8gewkJCQkJ CQkJXAotCQlzdHJ1Y3QgZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKLQkJaWYgKElTX0VOQUJMRUQo Q09ORklHX0ZFTkNFX1RSQUNFKSkJCQlcCisJCXN0cnVjdCBkbWFfZmVuY2UgKl9fZmYgPSAoZik7 CQkJCVwKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RNQV9GRU5DRV9UUkFDRSkpCQkJXAogCQkJ cHJfaW5mbygiZiAlbGx1IyV1OiAiIGZtdCwJCQlcCiAJCQkJX19mZi0+Y29udGV4dCwgX19mZi0+ c2Vxbm8sICMjYXJncyk7CVwKIAl9IHdoaWxlICgwKQogCi0jZGVmaW5lIEZFTkNFX1dBUk4oZiwg Zm10LCBhcmdzLi4uKSBcCisjZGVmaW5lIERNQV9GRU5DRV9XQVJOKGYsIGZtdCwgYXJncy4uLikg XAogCWRvIHsJCQkJCQkJCVwKLQkJc3RydWN0IGZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCisJCXN0 cnVjdCBkbWFfZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKIAkJcHJfd2FybigiZiAlbGx1IyV1OiAi IGZtdCwgX19mZi0+Y29udGV4dCwgX19mZi0+c2Vxbm8sCVwKIAkJCSAjI2FyZ3MpOwkJCQkJXAog CX0gd2hpbGUgKDApCiAKLSNkZWZpbmUgRkVOQ0VfRVJSKGYsIGZtdCwgYXJncy4uLikgXAorI2Rl ZmluZSBETUFfRkVOQ0VfRVJSKGYsIGZtdCwgYXJncy4uLikgXAogCWRvIHsJCQkJCQkJCVwKLQkJ c3RydWN0IGZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCisJCXN0cnVjdCBkbWFfZmVuY2UgKl9fZmYg PSAoZik7CQkJCVwKIAkJcHJfZXJyKCJmICVsbHUjJXU6ICIgZm10LCBfX2ZmLT5jb250ZXh0LCBf X2ZmLT5zZXFubywJXAogCQkJIyNhcmdzKTsJCQkJCVwKIAl9IHdoaWxlICgwKQogCi0jZW5kaWYg LyogX19MSU5VWF9GRU5DRV9IICovCisjZW5kaWYgLyogX19MSU5VWF9ETUFfRkVOQ0VfSCAqLwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mZW5jZS1hcnJheS5oIGIvaW5jbHVkZS9saW51eC9m ZW5jZS1hcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZWEyYmRlMTBhYzEu LjAwMDAwMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLWFycmF5LmgKKysrIC9kZXYv bnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogZmVuY2UtYXJyYXk6IGFnZ3JlZ2F0ZXMgZmVu Y2UgdG8gYmUgd2FpdGVkIHRvZ2V0aGVyCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDE2IENvbGxh Ym9yYSBMdGQKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJ bmMuCi0gKiBBdXRob3JzOgotICoJR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvQHBhZG92YW4ub3Jn PgotICoJQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotICoKLSAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5IGl0Ci0gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCi0gKiBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKLSAqIG1vcmUgZGV0YWlscy4KLSAqLwotCi0jaWZuZGVm IF9fTElOVVhfRkVOQ0VfQVJSQVlfSAotI2RlZmluZSBfX0xJTlVYX0ZFTkNFX0FSUkFZX0gKLQot I2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+Ci0KLS8qKgotICogc3RydWN0IGZlbmNlX2FycmF5X2Ni IC0gY2FsbGJhY2sgaGVscGVyIGZvciBmZW5jZSBhcnJheQotICogQGNiOiBmZW5jZSBjYWxsYmFj ayBzdHJ1Y3R1cmUgZm9yIHNpZ25hbGluZwotICogQGFycmF5OiByZWZlcmVuY2UgdG8gdGhlIHBh cmVudCBmZW5jZSBhcnJheSBvYmplY3QKLSAqLwotc3RydWN0IGZlbmNlX2FycmF5X2NiIHsKLQlz dHJ1Y3QgZmVuY2VfY2IgY2I7Ci0Jc3RydWN0IGZlbmNlX2FycmF5ICphcnJheTsKLX07Ci0KLS8q KgotICogc3RydWN0IGZlbmNlX2FycmF5IC0gZmVuY2UgdG8gcmVwcmVzZW50IGFuIGFycmF5IG9m IGZlbmNlcwotICogQGJhc2U6IGZlbmNlIGJhc2UgY2xhc3MKLSAqIEBsb2NrOiBzcGlubG9jayBm b3IgZmVuY2UgaGFuZGxpbmcKLSAqIEBudW1fZmVuY2VzOiBudW1iZXIgb2YgZmVuY2VzIGluIHRo ZSBhcnJheQotICogQG51bV9wZW5kaW5nOiBmZW5jZXMgaW4gdGhlIGFycmF5IHN0aWxsIHBlbmRp bmcKLSAqIEBmZW5jZXM6IGFycmF5IG9mIHRoZSBmZW5jZXMKLSAqLwotc3RydWN0IGZlbmNlX2Fy cmF5IHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKLQotCXNwaW5sb2NrX3QgbG9jazsKLQl1bnNpZ25l ZCBudW1fZmVuY2VzOwotCWF0b21pY190IG51bV9wZW5kaW5nOwotCXN0cnVjdCBmZW5jZSAqKmZl bmNlczsKLX07Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGZlbmNlX2FycmF5X29w czsKLQotLyoqCi0gKiBmZW5jZV9pc19hcnJheSAtIGNoZWNrIGlmIGEgZmVuY2UgaXMgZnJvbSB0 aGUgYXJyYXkgc3Vic2NsYXNzCi0gKiBAZmVuY2U6IGZlbmNlIHRvIHRlc3QKLSAqCi0gKiBSZXR1 cm4gdHJ1ZSBpZiBpdCBpcyBhIGZlbmNlX2FycmF5IGFuZCBmYWxzZSBvdGhlcndpc2UuCi0gKi8K LXN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9pc19hcnJheShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQot ewotCXJldHVybiBmZW5jZS0+b3BzID09ICZmZW5jZV9hcnJheV9vcHM7Ci19Ci0KLS8qKgotICog dG9fZmVuY2VfYXJyYXkgLSBjYXN0IGEgZmVuY2UgdG8gYSBmZW5jZV9hcnJheQotICogQGZlbmNl OiBmZW5jZSB0byBjYXN0IHRvIGEgZmVuY2VfYXJyYXkKLSAqCi0gKiBSZXR1cm5zIE5VTEwgaWYg dGhlIGZlbmNlIGlzIG5vdCBhIGZlbmNlX2FycmF5LAotICogb3IgdGhlIGZlbmNlX2FycmF5IG90 aGVyd2lzZS4KLSAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2VfYXJyYXkgKnRvX2ZlbmNl X2FycmF5KHN0cnVjdCBmZW5jZSAqZmVuY2UpCi17Ci0JaWYgKGZlbmNlLT5vcHMgIT0gJmZlbmNl X2FycmF5X29wcykKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gY29udGFpbmVyX29mKGZlbmNl LCBzdHJ1Y3QgZmVuY2VfYXJyYXksIGJhc2UpOwotfQotCi1zdHJ1Y3QgZmVuY2VfYXJyYXkgKmZl bmNlX2FycmF5X2NyZWF0ZShpbnQgbnVtX2ZlbmNlcywgc3RydWN0IGZlbmNlICoqZmVuY2VzLAot CQkJCSAgICAgICB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8sCi0JCQkJICAgICAgIGJvb2wg c2lnbmFsX29uX2FueSk7Ci0KLSNlbmRpZiAvKiBfX0xJTlVYX0ZFTkNFX0FSUkFZX0ggKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaCBiL2luY2x1ZGUvbGludXgvcmVz ZXJ2YXRpb24uaAppbmRleCBiMGYzMDVlNzdiN2YuLjJlMzEzY2NhMDhmMCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCisrKyBiL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRp b24uaApAQCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSBfTElOVVhfUkVTRVJWQVRJT05fSAogCiAj aW5jbHVkZSA8bGludXgvd3dfbXV0ZXguaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNs dWRlIDxsaW51eC9zZXFsb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KQEAgLTU5 LDcgKzU5LDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgcmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5n W107CiBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgewogCXN0cnVjdCByY3VfaGVhZCBy Y3U7CiAJdTMyIHNoYXJlZF9jb3VudCwgc2hhcmVkX21heDsKLQlzdHJ1Y3QgZmVuY2UgX19yY3Ug KnNoYXJlZFtdOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtdOwogfTsKIAogLyoq CkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgewogCXN0cnVjdCB3 d19tdXRleCBsb2NrOwogCXNlcWNvdW50X3Qgc2VxOwogCi0Jc3RydWN0IGZlbmNlIF9fcmN1ICpm ZW5jZV9leGNsOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4Y2w7CiAJc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKIAlzdHJ1Y3QgcmVzZXJ2YXRp b25fb2JqZWN0X2xpc3QgKnN0YWdlZDsKIH07CkBAIC0xMDcsNyArMTA3LDcgQEAgcmVzZXJ2YXRp b25fb2JqZWN0X2Zpbmkoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQogewogCWludCBp OwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKLQlzdHJ1Y3QgZmVuY2Ug KmV4Y2w7CisJc3RydWN0IGRtYV9mZW5jZSAqZXhjbDsKIAogCS8qCiAJICogVGhpcyBvYmplY3Qg c2hvdWxkIGJlIGRlYWQgYW5kIGFsbCByZWZlcmVuY2VzIG11c3QgaGF2ZQpAQCAtMTE1LDEyICsx MTUsMTIgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2Zpbmkoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqKQogCSAqLwogCWV4Y2wgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVu Y2VfZXhjbCwgMSk7CiAJaWYgKGV4Y2wpCi0JCWZlbmNlX3B1dChleGNsKTsKKwkJZG1hX2ZlbmNl X3B1dChleGNsKTsKIAogCWZvYmogPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ZmVu Y2UsIDEpOwogCWlmIChmb2JqKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBmb2JqLT5zaGFyZWRfY291 bnQ7ICsraSkKLQkJCWZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmotPnNo YXJlZFtpXSwgMSkpOworCQkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KGZvYmotPnNoYXJlZFtpXSwgMSkpOwogCiAJCWtmcmVlKGZvYmopOwogCX0KQEAgLTE1NSw3ICsx NTUsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qoc3RydWN0IHJlc2VydmF0aW9uX29i amVjdCAqb2JqKQogICogUkVUVVJOUwogICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMCiAg Ki8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRt YV9mZW5jZSAqCiByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqb2JqKQogewogCXJldHVybiByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9iai0+ ZmVuY2VfZXhjbCwKQEAgLTE3MywxMCArMTczLDEwIEBAIHJlc2VydmF0aW9uX29iamVjdF9nZXRf ZXhjbChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAgKiBSRVRVUk5TCiAgKiBUaGUg ZXhjbHVzaXZlIGZlbmNlIG9yIE5VTEwgaWYgbm9uZQogICovCi1zdGF0aWMgaW5saW5lIHN0cnVj dCBmZW5jZSAqCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKgogcmVzZXJ2YXRpb25f b2JqZWN0X2dldF9leGNsX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiB7Ci0J c3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAl1bnNpZ25l ZCBzZXE7CiByZXRyeToKIAlzZXEgPSByZWFkX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7CkBA IC0xODYsMjIgKzE4NiwyMiBAQCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCWdvdG8g cmV0cnk7CiAJfQotCWZlbmNlID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlmZW5jZSA9IGRtYV9mZW5j ZV9nZXQoZmVuY2UpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiBmZW5jZTsKIH0KIAog aW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0ICpvYmopOwogdm9pZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNl KTsKKwkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIAogdm9pZCByZXNlcnZhdGlvbl9v YmplY3RfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAotCQkJ CSAgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpOwogCiBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipwZmVu Y2VfZXhjbCwKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCiAJCQkJ ICAgICAgdW5zaWduZWQgKnBzaGFyZWRfY291bnQsCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoq KnBzaGFyZWQpOworCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCk7CiAKIGxv bmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqb2JqLAogCQkJCQkgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRyLApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9zZXFuby1mZW5jZS5oIGIvaW5jbHVkZS9saW51eC9zZXFuby1mZW5j ZS5oCmluZGV4IGExYmE2YTVjY2RkNi4uYzU4YzUzNWQxMmE4IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3NlcW5vLWZlbmNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZXFuby1mZW5jZS5oCkBA IC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIF9fTElOVVhfU0VRTk9fRkVOQ0VfSAogI2RlZmluZSBf X0xJTlVYX1NFUU5PX0ZFTkNFX0gKIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVk ZSA8bGludXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogCiBlbnVt IHNlcW5vX2ZlbmNlX2NvbmRpdGlvbiB7CkBAIC0yOSwxNSArMjksMTUgQEAgZW51bSBzZXFub19m ZW5jZV9jb25kaXRpb24gewogfTsKIAogc3RydWN0IHNlcW5vX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVu Y2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiAKLQljb25zdCBzdHJ1Y3QgZmVuY2Vf b3BzICpvcHM7CisJY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKIAlzdHJ1Y3QgZG1h X2J1ZiAqc3luY19idWY7CiAJdWludDMyX3Qgc2Vxbm9fb2ZzOwogCWVudW0gc2Vxbm9fZmVuY2Vf Y29uZGl0aW9uIGNvbmRpdGlvbjsKIH07CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz IHNlcW5vX2ZlbmNlX29wczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBzZXFu b19mZW5jZV9vcHM7CiAKIC8qKgogICogdG9fc2Vxbm9fZmVuY2UgLSBjYXN0IGEgZmVuY2UgdG8g YSBzZXFub19mZW5jZQpAQCAtNDcsNyArNDcsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGZlbmNl X29wcyBzZXFub19mZW5jZV9vcHM7CiAgKiBvciB0aGUgc2Vxbm9fZmVuY2Ugb3RoZXJ3aXNlLgog ICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBzZXFub19mZW5jZSAqCi10b19zZXFub19mZW5jZShz dHJ1Y3QgZmVuY2UgKmZlbmNlKQordG9fc2Vxbm9fZmVuY2Uoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCiB7CiAJaWYgKGZlbmNlLT5vcHMgIT0gJnNlcW5vX2ZlbmNlX29wcykKIAkJcmV0dXJuIE5V TEw7CkBAIC04Myw5ICs4Myw5IEBAIHRvX3NlcW5vX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2Up CiAgKiBkbWEtYnVmIGZvciBzeW5jX2J1Ziwgc2luY2UgbWFwcGluZyBvciB1bm1hcHBpbmcgdGhl IHN5bmNfYnVmIHRvIHRoZQogICogZGV2aWNlJ3Mgdm0gY2FuIGJlIGV4cGVuc2l2ZS4KICAqCi0g KiBJdCBpcyByZWNvbW1lbmRlZCBmb3IgY3JlYXRvcnMgb2Ygc2Vxbm9fZmVuY2UgdG8gY2FsbCBm ZW5jZV9zaWduYWwKKyAqIEl0IGlzIHJlY29tbWVuZGVkIGZvciBjcmVhdG9ycyBvZiBzZXFub19m ZW5jZSB0byBjYWxsIGRtYV9mZW5jZV9zaWduYWwoKQogICogYmVmb3JlIGRlc3RydWN0aW9uLiBU aGlzIHdpbGwgcHJldmVudCBwb3NzaWJsZSBpc3N1ZXMgZnJvbSB3cmFwYXJvdW5kIGF0Ci0gKiB0 aW1lIG9mIGlzc3VlIHZzIHRpbWUgb2YgY2hlY2ssIHNpbmNlIHVzZXJzIGNhbiBjaGVjayBmZW5j ZV9pc19zaWduYWxlZAorICogdGltZSBvZiBpc3N1ZSB2cyB0aW1lIG9mIGNoZWNrLCBzaW5jZSB1 c2VycyBjYW4gY2hlY2sgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKCkKICAqIGJlZm9yZSBzdWJtaXR0 aW5nIGluc3RydWN0aW9ucyBmb3IgdGhlIGhhcmR3YXJlIHRvIHdhaXQgb24gdGhlIGZlbmNlLgog ICogSG93ZXZlciwgd2hlbiBvcHMuZW5hYmxlX3NpZ25hbGluZyBpcyBub3QgY2FsbGVkLCBpdCBk b2Vzbid0IGhhdmUgdG8gYmUKICAqIGRvbmUgYXMgc29vbiBhcyBwb3NzaWJsZSwganVzdCBiZWZv cmUgdGhlcmUncyBhbnkgcmVhbCBkYW5nZXIgb2Ygc2Vxbm8KQEAgLTk2LDE4ICs5NiwxOCBAQCBz ZXFub19mZW5jZV9pbml0KHN0cnVjdCBzZXFub19mZW5jZSAqZmVuY2UsIHNwaW5sb2NrX3QgKmxv Y2ssCiAJCSBzdHJ1Y3QgZG1hX2J1ZiAqc3luY19idWYsICB1aW50MzJfdCBjb250ZXh0LAogCQkg dWludDMyX3Qgc2Vxbm9fb2ZzLCB1aW50MzJfdCBzZXFubywKIAkJIGVudW0gc2Vxbm9fZmVuY2Vf Y29uZGl0aW9uIGNvbmQsCi0JCSBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpvcHMpCisJCSBjb25z dCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqb3BzKQogewogCUJVR19PTighZmVuY2UgfHwgIXN5bmNf YnVmIHx8ICFvcHMpOwogCUJVR19PTighb3BzLT53YWl0IHx8ICFvcHMtPmVuYWJsZV9zaWduYWxp bmcgfHwKIAkgICAgICAgIW9wcy0+Z2V0X2RyaXZlcl9uYW1lIHx8ICFvcHMtPmdldF90aW1lbGlu ZV9uYW1lKTsKIAogCS8qCi0JICogb3BzIGlzIHVzZWQgaW4gZmVuY2VfaW5pdCBmb3IgZ2V0X2Ry aXZlcl9uYW1lLCBzbyBuZWVkcyB0byBiZQorCSAqIG9wcyBpcyB1c2VkIGluIGRtYV9mZW5jZV9p bml0IGZvciBnZXRfZHJpdmVyX25hbWUsIHNvIG5lZWRzIHRvIGJlCiAJICogaW5pdGlhbGl6ZWQg Zmlyc3QKIAkgKi8KIAlmZW5jZS0+b3BzID0gb3BzOwotCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNl LCAmc2Vxbm9fZmVuY2Vfb3BzLCBsb2NrLCBjb250ZXh0LCBzZXFubyk7CisJZG1hX2ZlbmNlX2lu aXQoJmZlbmNlLT5iYXNlLCAmc2Vxbm9fZmVuY2Vfb3BzLCBsb2NrLCBjb250ZXh0LCBzZXFubyk7 CiAJZ2V0X2RtYV9idWYoc3luY19idWYpOwogCWZlbmNlLT5zeW5jX2J1ZiA9IHN5bmNfYnVmOwog CWZlbmNlLT5zZXFub19vZnMgPSBzZXFub19vZnM7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3N5bmNfZmlsZS5oIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaAppbmRleCBhYTE3Y2NmYzJm NTcuLjNlM2FiODRmYzRjZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaAor KysgYi9pbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oCkBAIC0xOCw4ICsxOCw4IEBACiAjaW5jbHVk ZSA8bGludXgva3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGlu dXgvc3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgotI2luY2x1ZGUgPGxpbnV4 L2ZlbmNlLWFycmF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CisjaW5jbHVkZSA8 bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+CiAKIC8qKgogICogc3RydWN0IHN5bmNfZmlsZSAtIHN5 bmMgZmlsZSB0byBleHBvcnQgdG8gdGhlIHVzZXJzcGFjZQpAQCAtNDEsMTMgKzQxLDEzIEBAIHN0 cnVjdCBzeW5jX2ZpbGUgewogCiAJd2FpdF9xdWV1ZV9oZWFkX3QJd3E7CiAKLQlzdHJ1Y3QgZmVu Y2UJCSpmZW5jZTsKLQlzdHJ1Y3QgZmVuY2VfY2IgY2I7CisJc3RydWN0IGRtYV9mZW5jZQkqZmVu Y2U7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIH07CiAKLSNkZWZpbmUgUE9MTF9FTkFCTEVE IEZFTkNFX0ZMQUdfVVNFUl9CSVRTCisjZGVmaW5lIFBPTExfRU5BQkxFRCBETUFfRkVOQ0VfRkxB R19VU0VSX0JJVFMKIAotc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0ZShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKTsKLXN0cnVjdCBmZW5jZSAqc3luY19maWxlX2dldF9mZW5jZShpbnQgZmQp Oworc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0ZShzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSk7CitzdHJ1Y3QgZG1hX2ZlbmNlICpzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGludCBmZCk7CiAK ICNlbmRpZiAvKiBfTElOVVhfU1lOQ19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2 ZW50cy9mZW5jZS5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmgKc2ltaWxhcml0 eSBpbmRleCA3MiUKcmVuYW1lIGZyb20gaW5jbHVkZS90cmFjZS9ldmVudHMvZmVuY2UuaApyZW5h bWUgdG8gaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmgKaW5kZXggZDZkZmEwNWJhMzIy Li4xMTU3Y2I0YzNjNmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2ZlbmNlLmgK KysrIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmgKQEAgLTEsMTcgKzEsMTcgQEAK ICN1bmRlZiBUUkFDRV9TWVNURU0KLSNkZWZpbmUgVFJBQ0VfU1lTVEVNIGZlbmNlCisjZGVmaW5l IFRSQUNFX1NZU1RFTSBkbWFfZmVuY2UKIAogI2lmICFkZWZpbmVkKF9UUkFDRV9GRU5DRV9IKSB8 fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9SRUFEKQotI2RlZmluZSBfVFJBQ0VfRkVOQ0Vf SAorI2RlZmluZSBfVFJBQ0VfRE1BX0ZFTkNFX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RyYWNlcG9p bnQuaD4KIAotc3RydWN0IGZlbmNlOworc3RydWN0IGRtYV9mZW5jZTsKIAotVFJBQ0VfRVZFTlQo ZmVuY2VfYW5ub3RhdGVfd2FpdF9vbiwKK1RSQUNFX0VWRU5UKGRtYV9mZW5jZV9hbm5vdGF0ZV93 YWl0X29uLAogCiAJLyogZmVuY2U6IHRoZSBmZW5jZSB3YWl0aW5nIG9uIGYxLCBmMTogdGhlIGZl bmNlIHRvIGJlIHdhaXRlZCBvbi4gKi8KLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBz dHJ1Y3QgZmVuY2UgKmYxKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3Ry dWN0IGRtYV9mZW5jZSAqZjEpLAogCiAJVFBfQVJHUyhmZW5jZSwgZjEpLAogCkBAIC00OCw5ICs0 OCw5IEBAIFRSQUNFX0VWRU5UKGZlbmNlX2Fubm90YXRlX3dhaXRfb24sCiAJCSAgX19lbnRyeS0+ d2FpdGluZ19jb250ZXh0LCBfX2VudHJ5LT53YWl0aW5nX3NlcW5vKQogKTsKIAotREVDTEFSRV9F VkVOVF9DTEFTUyhmZW5jZSwKK0RFQ0xBUkVfRVZFTlRfQ0xBU1MoZG1hX2ZlbmNlLAogCi0JVFBf UFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSksCiAKQEAgLTczLDU2ICs3Myw1NiBAQCBERUNMQVJF X0VWRU5UX0NMQVNTKGZlbmNlLAogCQkgIF9fZW50cnktPnNlcW5vKQogKTsKIAotREVGSU5FX0VW RU5UKGZlbmNlLCBmZW5jZV9lbWl0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNl X2VtaXQsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VW RU5UKGZlbmNlLCBmZW5jZV9pbml0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNl X2luaXQsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VW RU5UKGZlbmNlLCBmZW5jZV9kZXN0cm95LAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2Zl bmNlX2Rlc3Ryb3ksCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9U TyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVG SU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9lbmFibGVfc2lnbmFsLAorREVGSU5FX0VWRU5UKGRtYV9m ZW5jZSwgZG1hX2ZlbmNlX2VuYWJsZV9zaWduYWwsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2Ug KmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdT KGZlbmNlKQogKTsKIAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9zaWduYWxlZCwKK0RFRklO RV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV9zaWduYWxlZCwKIAotCVRQX1BST1RPKHN0cnVj dCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwKIAog CVRQX0FSR1MoZmVuY2UpCiApOwogCi1ERUZJTkVfRVZFTlQoZmVuY2UsIGZlbmNlX3dhaXRfc3Rh cnQsCitERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2Vfd2FpdF9zdGFydCwKIAotCVRQ X1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpCiApOwogCi1ERUZJTkVfRVZFTlQoZmVuY2UsIGZl bmNlX3dhaXRfZW5kLAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNlX3dhaXRfZW5k LAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAKLSNlbmRpZiAvKiAgX1RS QUNFX0ZFTkNFX0ggKi8KKyNlbmRpZiAvKiAgX1RSQUNFX0RNQV9GRU5DRV9IICovCiAKIC8qIFRo aXMgcGFydCBtdXN0IGJlIG91dHNpZGUgcHJvdGVjdGlvbiAqLwogI2luY2x1ZGUgPHRyYWNlL2Rl ZmluZV90cmFjZS5oPgotLSAKMi4xMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK