From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4] dma-buf: Rename struct fence to dma_fence Date: Tue, 25 Oct 2016 13:00:45 +0100 Message-ID: <20161025120045.28839-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 ZS4KdjQ6IFRyeSBhZ2FpbiBmb3IgbXNtLCBzb3JyeSBEYW5pZWwKCmNvY2NpbmVsbGUgc2NyaXB0 OgpAQAoKQEAKLSBzdHJ1Y3QgZmVuY2UKKyBzdHJ1Y3QgZG1hX2ZlbmNlCkBACgpAQAotIHN0cnVj dCBmZW5jZV9vcHMKKyBzdHJ1Y3QgZG1hX2ZlbmNlX29wcwpAQAoKQEAKLSBzdHJ1Y3QgZmVuY2Vf Y2IKKyBzdHJ1Y3QgZG1hX2ZlbmNlX2NiCkBACgpAQAotIHN0cnVjdCBmZW5jZV9hcnJheQorIHN0 cnVjdCBkbWFfZmVuY2VfYXJyYXkKQEAKCkBACi0gZW51bSBmZW5jZV9mbGFnX2JpdHMKKyBlbnVt IGRtYV9mZW5jZV9mbGFnX2JpdHMKQEAKCkBACigKLSBmZW5jZV9pbml0CisgZG1hX2ZlbmNlX2lu aXQKfAotIGZlbmNlX3JlbGVhc2UKKyBkbWFfZmVuY2VfcmVsZWFzZQp8Ci0gZmVuY2VfZnJlZQor IGRtYV9mZW5jZV9mcmVlCnwKLSBmZW5jZV9nZXQKKyBkbWFfZmVuY2VfZ2V0CnwKLSBmZW5jZV9n ZXRfcmN1CisgZG1hX2ZlbmNlX2dldF9yY3UKfAotIGZlbmNlX3B1dAorIGRtYV9mZW5jZV9wdXQK fAotIGZlbmNlX3NpZ25hbAorIGRtYV9mZW5jZV9zaWduYWwKfAotIGZlbmNlX3NpZ25hbF9sb2Nr ZWQKKyBkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZAp8Ci0gZmVuY2VfZGVmYXVsdF93YWl0CisgZG1h X2ZlbmNlX2RlZmF1bHRfd2FpdAp8Ci0gZmVuY2VfYWRkX2NhbGxiYWNrCisgZG1hX2ZlbmNlX2Fk ZF9jYWxsYmFjawp8Ci0gZmVuY2VfcmVtb3ZlX2NhbGxiYWNrCisgZG1hX2ZlbmNlX3JlbW92ZV9j YWxsYmFjawp8Ci0gZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZworIGRtYV9mZW5jZV9lbmFibGVf c3dfc2lnbmFsaW5nCnwKLSBmZW5jZV9pc19zaWduYWxlZF9sb2NrZWQKKyBkbWFfZmVuY2VfaXNf c2lnbmFsZWRfbG9ja2VkCnwKLSBmZW5jZV9pc19zaWduYWxlZAorIGRtYV9mZW5jZV9pc19zaWdu YWxlZAp8Ci0gZmVuY2VfaXNfbGF0ZXIKKyBkbWFfZmVuY2VfaXNfbGF0ZXIKfAotIGZlbmNlX2xh dGVyCisgZG1hX2ZlbmNlX2xhdGVyCnwKLSBmZW5jZV93YWl0X3RpbWVvdXQKKyBkbWFfZmVuY2Vf d2FpdF90aW1lb3V0CnwKLSBmZW5jZV93YWl0X2FueV90aW1lb3V0CisgZG1hX2ZlbmNlX3dhaXRf YW55X3RpbWVvdXQKfAotIGZlbmNlX3dhaXQKKyBkbWFfZmVuY2Vfd2FpdAp8Ci0gZmVuY2VfY29u dGV4dF9hbGxvYworIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jCnwKLSBmZW5jZV9hcnJheV9jcmVh dGUKKyBkbWFfZmVuY2VfYXJyYXlfY3JlYXRlCnwKLSB0b19mZW5jZV9hcnJheQorIHRvX2RtYV9m ZW5jZV9hcnJheQp8Ci0gZmVuY2VfaXNfYXJyYXkKKyBkbWFfZmVuY2VfaXNfYXJyYXkKfAotIHRy YWNlX2ZlbmNlX2VtaXQKKyB0cmFjZV9kbWFfZmVuY2VfZW1pdAp8Ci0gRkVOQ0VfVFJBQ0UKKyBE TUFfRkVOQ0VfVFJBQ0UKfAotIEZFTkNFX1dBUk4KKyBETUFfRkVOQ0VfV0FSTgp8Ci0gRkVOQ0Vf RVJSCisgRE1BX0ZFTkNFX0VSUgopCiAoCiAuLi4KICkKClNpZ25lZC1vZmYtYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogR3VzdGF2byBQYWRv dmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgpBY2tlZC1ieTogU3VtaXQgU2Vt d2FsIDxzdW1pdC5zZW13YWxAbGluYXJvLm9yZz4KQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcg PGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3N5bmNfZmlsZS50 eHQgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogZHJpdmVycy9iYXNlL0tjb25maWcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZG1hLWJ1Zi9L Y29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2RtYS1i dWYvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjggKy0tCiAuLi4v ZG1hLWJ1Zi97ZmVuY2UtYXJyYXkuYyA9PiBkbWEtZmVuY2UtYXJyYXkuY30gICB8ICA5MSArKysr LS0tLQogZHJpdmVycy9kbWEtYnVmL3tmZW5jZS5jID0+IGRtYS1mZW5jZS5jfSAgICAgICAgICAg fCAxOTkgKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jICAg ICAgICAgICAgICAgICAgICAgIHwgIDk0ICsrKystLS0tCiBkcml2ZXJzL2RtYS1idWYvc2Vxbm8t ZmVuY2UuYyAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogZHJpdmVycy9kbWEtYnVmL3N3 X3N5bmMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDggKystLS0KIGRyaXZlcnMvZG1h LWJ1Zi9zeW5jX2RlYnVnLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstCiBkcml2ZXJz L2RtYS1idWYvc3luY19kZWJ1Zy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQogZHJp dmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjMgKysr LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgICAgICB8 ICA1NCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2JlbmNobWFyay5j ICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jICAg ICAgICAgICAgIHwgIDE2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4 LmMgICAgICAgICAgICB8ICAyMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2RldmljZS5jICAgICAgICAgfCAgMTQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kaXNwbGF5LmMgICAgICAgIHwgIDE2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZmVuY2UuYyAgICAgICAgICB8ICA1OCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2liLmMgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYyAgICAgICAgICAgIHwgIDIyICstCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgICAgICAgICB8ICAxNCArLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oICAgICAgICAgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zYS5jICAgICAgICAgICAgIHwgIDI0ICst LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYyAgICAgICAgICAgfCAg NDggKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgICAgICAg ICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHJhY2UuaCAg ICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5j ICAgICAgICAgICAgfCAgMTAgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uaCAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdXZkLmMgICAgICAgICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV91dmQuaCAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdmNlLmMgICAgICAgICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92Y2UuaCAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICAgICAgICAgICB8ICA3OSArKystLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jICAgICAgICAgICAgICB8ICAgNiArLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYyAgICAgICAgICAgICAgfCAgIDYg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgICAgICAgICAgICAgIHwg ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgICAgICAgICAg ICB8ICAxMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMgICAgICAg ICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jICAg ICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kbWEuYyAg ICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1 X3NjaGVkX3RyYWNlLmggICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVy L2dwdV9zY2hlZHVsZXIuYyAgICAgIHwgIDY3ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9z Y2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5oICAgICAgfCAgMjYgKy0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL3NjaGVkdWxlci9zY2hlZF9mZW5jZS5jICAgICAgICB8ICA0OCArKystLQogZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAgICAgICAgICAgICAgIHwgICA4ICstCiBk cml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiAr LQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYyAgICAgICAgICAgICAgfCAg IDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMgICAgICAgICAgICAg IHwgIDQ2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggICAgICAg ICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMg ICAgICAgICAgICB8ICAzMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuaCAgICAgICAgICAgIHwgIDE4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2Zl bmNlLmMgICAgICAgICAgICAgICB8ICA0MSArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N3X2ZlbmNlLmggICAgICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV90cmFjZS5oICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZHJ2LmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMgICAgICAgICAgICAgICAgICAgIHwgIDI4ICstLQog ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jICAgICAgICAgICAgICAgICAgICAgIHwg IDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jICAgICAgICAg ICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMg ICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9m ZW5jZS5jICAgICAgICAgICAgfCAgODAgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9mZW5jZS5oICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZ2VtLmMgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udjA0X2ZlbmNlLmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnYxMF9mZW5jZS5jICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2ZlbmNlLmMgICAgICAgICAgICAgICB8ICAgMiArLQog ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY4NF9mZW5jZS5jICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAgICAgICAgICAgICAgICAgICAgIHwg ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMgICAgICAgICAgICAgICAg ICB8ICAzNSArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAgICAgICAg ICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyAg ICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxh eS5jICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Zl bmNlLmMgICAgICAgICAgICAgIHwgIDU2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9zeW5jLmMgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdXZkLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstLQogZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBkcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyAgICAgICAgICAgICB8ICAgMyArLQog ZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jICAgICAgICAgICAgICAgICAgfCAgNTMg KystLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCAgICAgICAgICAgICAg IHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmVuY2UuYyAgICAgICAg ICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jICAg ICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21zLmMg ICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3Bs YW5lLmMgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ZlbmNlLmMgICAgICAgICAgICAgIHwgIDQ0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2ZlbmNlLmggICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9kcm0vZHJt UC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvZHJt L2RybV9jcnRjLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBpbmNsdWRl L2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICAgICAgIHwgICA2 ICstCiBpbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oICAgICAgICAgICAgICAgICB8 ICAgMiArLQogaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGluY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5LmggICAgICAgICAgICAg ICAgICAgIHwgIDg2ICsrKysrKysrCiBpbmNsdWRlL2xpbnV4L3tmZW5jZS5oID0+IGRtYS1mZW5j ZS5ofSAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKy0tLS0tLS0tLS0KIGluY2x1ZGUvbGlu dXgvZmVuY2UtYXJyYXkuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg0IC0tLS0tLS0tCiBp bmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCAr LS0KIGluY2x1ZGUvbGludXgvc2Vxbm8tZmVuY2UuaCAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIwICstCiBpbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAxNCArLQogaW5jbHVkZS90cmFjZS9ldmVudHMve2ZlbmNlLmggPT4gZG1hX2ZlbmNlLmh9 ICAgICAgfCAgNDQgKystLQogMTEwIGZpbGVzIGNoYW5nZWQsIDEyNTIgaW5zZXJ0aW9ucygrKSwg MTIxNCBkZWxldGlvbnMoLSkKIHJlbmFtZSBkcml2ZXJzL2RtYS1idWYve2ZlbmNlLWFycmF5LmMg PT4gZG1hLWZlbmNlLWFycmF5LmN9ICg1MSUpCiByZW5hbWUgZHJpdmVycy9kbWEtYnVmL3tmZW5j ZS5jID0+IGRtYS1mZW5jZS5jfSAoNjQlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGlu dXgvZG1hLWZlbmNlLWFycmF5LmgKIHJlbmFtZSBpbmNsdWRlL2xpbnV4L3tmZW5jZS5oID0+IGRt YS1mZW5jZS5ofSAoNTklKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvZmVuY2Ut YXJyYXkuaAogcmVuYW1lIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3tmZW5jZS5oID0+IGRtYV9mZW5j ZS5ofSAoNzIlKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc3luY19maWxlLnR4dCBiL0Rv Y3VtZW50YXRpb24vc3luY19maWxlLnR4dAppbmRleCBiNjNhNjg1MzFhZmQuLjI2OTY4MWE2ZmFl YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zeW5jX2ZpbGUudHh0CisrKyBiL0RvY3VtZW50 YXRpb24vc3luY19maWxlLnR4dApAQCAtNiw3ICs2LDcgQEAKIAogVGhpcyBkb2N1bWVudCBzZXJ2 ZXMgYXMgYSBndWlkZSBmb3IgZGV2aWNlIGRyaXZlcnMgd3JpdGVycyBvbiB3aGF0IHRoZQogc3lu Y19maWxlIEFQSSBpcywgYW5kIGhvdyBkcml2ZXJzIGNhbiBzdXBwb3J0IGl0LiBTeW5jIGZpbGUg aXMgdGhlIGNhcnJpZXIgb2YKLXRoZSBmZW5jZXMoc3RydWN0IGZlbmNlKSB0aGF0IGFyZSBuZWVk ZWQgdG8gc3luY2hyb25pemUgYmV0d2VlbiBkcml2ZXJzIG9yCit0aGUgZmVuY2VzKHN0cnVjdCBk bWFfZmVuY2UpIHRoYXQgYXJlIG5lZWRlZCB0byBzeW5jaHJvbml6ZSBiZXR3ZWVuIGRyaXZlcnMg b3IKIGFjcm9zcyBwcm9jZXNzIGJvdW5kYXJpZXMuCiAKIFRoZSBzeW5jX2ZpbGUgQVBJIGlzIG1l YW50IHRvIGJlIHVzZWQgdG8gc2VuZCBhbmQgcmVjZWl2ZSBmZW5jZSBpbmZvcm1hdGlvbgpAQCAt MzIsOSArMzIsOSBAQCBpbi1mZW5jZXMgYW5kIG91dC1mZW5jZXMKIFN5bmMgZmlsZXMgY2FuIGdv IGVpdGhlciB0byBvciBmcm9tIHVzZXJzcGFjZS4gV2hlbiBhIHN5bmNfZmlsZSBpcyBzZW50IGZy b20KIHRoZSBkcml2ZXIgdG8gdXNlcnNwYWNlIHdlIGNhbGwgdGhlIGZlbmNlcyBpdCBjb250YWlu cyAnb3V0LWZlbmNlcycuIFRoZXkgYXJlCiByZWxhdGVkIHRvIGEgYnVmZmVyIHRoYXQgdGhlIGRy aXZlciBpcyBwcm9jZXNzaW5nIG9yIGlzIGdvaW5nIHRvIHByb2Nlc3MsIHNvCi10aGUgZHJpdmVy IGNyZWF0ZXMgYW4gb3V0LWZlbmNlIHRvIGJlIGFibGUgdG8gbm90aWZ5LCB0aHJvdWdoIGZlbmNl X3NpZ25hbCgpLAotd2hlbiBpdCBoYXMgZmluaXNoZWQgdXNpbmcgKG9yIHByb2Nlc3NpbmcpIHRo YXQgYnVmZmVyLiBPdXQtZmVuY2VzIGFyZSBmZW5jZXMKLXRoYXQgdGhlIGRyaXZlciBjcmVhdGVz LgordGhlIGRyaXZlciBjcmVhdGVzIGFuIG91dC1mZW5jZSB0byBiZSBhYmxlIHRvIG5vdGlmeSwg dGhyb3VnaAorZG1hX2ZlbmNlX3NpZ25hbCgpLCB3aGVuIGl0IGhhcyBmaW5pc2hlZCB1c2luZyAo b3IgcHJvY2Vzc2luZykgdGhhdCBidWZmZXIuCitPdXQtZmVuY2VzIGFyZSBmZW5jZXMgdGhhdCB0 aGUgZHJpdmVyIGNyZWF0ZXMuCiAKIE9uIHRoZSBvdGhlciBoYW5kIGlmIHRoZSBkcml2ZXIgcmVj ZWl2ZXMgZmVuY2UocykgdGhyb3VnaCBhIHN5bmNfZmlsZSBmcm9tCiB1c2Vyc3BhY2Ugd2UgY2Fs bCB0aGVzZSBmZW5jZShzKSAnaW4tZmVuY2VzJy4gUmVjZWl2ZWluZyBpbi1mZW5jZXMgbWVhbnMg dGhhdApAQCAtNDcsNyArNDcsNyBAQCBDcmVhdGluZyBTeW5jIEZpbGVzCiBXaGVuIGEgZHJpdmVy IG5lZWRzIHRvIHNlbmQgYW4gb3V0LWZlbmNlIHVzZXJzcGFjZSBpdCBjcmVhdGVzIGEgc3luY19m aWxlLgogCiBJbnRlcmZhY2U6Ci0Jc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0ZShz dHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfY3JlYXRl KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIAogVGhlIGNhbGxlciBwYXNzIHRoZSBvdXQtZmVu Y2UgYW5kIGdldHMgYmFjayB0aGUgc3luY19maWxlLiBUaGF0IGlzIGp1c3QgdGhlCiBmaXJzdCBz dGVwLCBuZXh0IGl0IG5lZWRzIHRvIGluc3RhbGwgYW4gZmQgb24gc3luY19maWxlLT5maWxlLiBT byBpdCBnZXRzIGFuCkBAIC03MiwxMSArNzIsMTEgQEAgb2YgdGhlIFN5bmMgRmlsZSB0byB0aGUg a2VybmVsLiBUaGUga2VybmVsIGNhbiB0aGVuIHJldHJpZXZlIHRoZSBmZW5jZXMKIGZyb20gaXQu CiAKIEludGVyZmFjZToKLQlzdHJ1Y3QgZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVuY2UoaW50IGZk KTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGludCBmZCk7CiAKIAog VGhlIHJldHVybmVkIHJlZmVyZW5jZSBpcyBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBtdXN0IGJl IGRpc3Bvc2VkIG9mCi1hZnRlcndhcmRzIHVzaW5nIGZlbmNlX3B1dCgpLiBJbiBjYXNlIG9mIGVy cm9yLCBhIE5VTEwgaXMgcmV0dXJuZWQgaW5zdGVhZC4KK2FmdGVyd2FyZHMgdXNpbmcgZG1hX2Zl bmNlX3B1dCgpLiBJbiBjYXNlIG9mIGVycm9yLCBhIE5VTEwgaXMgcmV0dXJuZWQgaW5zdGVhZC4K IAogUmVmZXJlbmNlczoKIFsxXSBzdHJ1Y3Qgc3luY19maWxlIGluIGluY2x1ZGUvbGludXgvc3lu Y19maWxlLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9LY29uZmlnIGIvZHJpdmVycy9iYXNl L0tjb25maWcKaW5kZXggZmRmNDRjYWMwOGU2Li4zN2JmMjVjNmI0YTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvYmFzZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvYmFzZS9LY29uZmlnCkBAIC0yNDgsMTEg KzI0OCwxMSBAQCBjb25maWcgRE1BX1NIQVJFRF9CVUZGRVIKIAkgIEFQSXMgZXh0ZW5zaW9uOyB0 aGUgZmlsZSdzIGRlc2NyaXB0b3IgY2FuIHRoZW4gYmUgcGFzc2VkIG9uIHRvIG90aGVyCiAJICBk cml2ZXIuCiAKLWNvbmZpZyBGRU5DRV9UUkFDRQotCWJvb2wgIkVuYWJsZSB2ZXJib3NlIEZFTkNF X1RSQUNFIG1lc3NhZ2VzIgorY29uZmlnIERNQV9GRU5DRV9UUkFDRQorCWJvb2wgIkVuYWJsZSB2 ZXJib3NlIERNQV9GRU5DRV9UUkFDRSBtZXNzYWdlcyIKIAlkZXBlbmRzIG9uIERNQV9TSEFSRURf QlVGRkVSCiAJaGVscAotCSAgRW5hYmxlIHRoZSBGRU5DRV9UUkFDRSBwcmludGtzLiBUaGlzIHdp bGwgYWRkIGV4dHJhCisJICBFbmFibGUgdGhlIERNQV9GRU5DRV9UUkFDRSBwcmludGtzLiBUaGlz IHdpbGwgYWRkIGV4dHJhCiAJICBzcGFtIHRvIHRoZSBjb25zb2xlIGxvZywgYnV0IHdpbGwgbWFr ZSBpdCBlYXNpZXIgdG8gZGlhZ25vc2UKIAkgIGxvY2t1cCByZWxhdGVkIHByb2JsZW1zIGZvciBk bWEtYnVmZmVycyBzaGFyZWQgYWNyb3NzIG11bHRpcGxlCiAJICBkZXZpY2VzLgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9kbWEtYnVmL0tjb25maWcgYi9kcml2ZXJzL2RtYS1idWYvS2NvbmZpZwppbmRl eCAyNTg1ODIxYjI0YWIuLmVkM2I3ODViYWUzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVm L0tjb25maWcKKysrIGIvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKQEAgLTcsNyArNyw3IEBAIGNv bmZpZyBTWU5DX0ZJTEUKIAlzZWxlY3QgRE1BX1NIQVJFRF9CVUZGRVIKIAktLS1oZWxwLS0tCiAJ ICBUaGUgU3luYyBGaWxlIEZyYW1ld29yayBhZGRzIGV4cGxpY2l0IHN5bmNyb25pemF0aW9uIHZp YQotCSAgdXNlcnNwYWNlLiBJdCBlbmFibGVzIHNlbmQvcmVjZWl2ZSAnc3RydWN0IGZlbmNlJyBv YmplY3RzIHRvL2Zyb20KKwkgIHVzZXJzcGFjZS4gSXQgZW5hYmxlcyBzZW5kL3JlY2VpdmUgJ3N0 cnVjdCBkbWFfZmVuY2UnIG9iamVjdHMgdG8vZnJvbQogCSAgdXNlcnNwYWNlIHZpYSBTeW5jIEZp bGUgZmRzIGZvciBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBkcml2ZXJzIHZpYQogCSAgdXNlcnNw YWNlIGNvbXBvbmVudHMuIEl0IGhhcyBiZWVuIHBvcnRlZCBmcm9tIEFuZHJvaWQuCiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSBiL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmls ZQppbmRleCAyMTBhMTBiZmFkMmIuLmMzM2JmODg2MzE0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9k bWEtYnVmL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZQpAQCAtMSwzICsx LDMgQEAKLW9iai15IDo9IGRtYS1idWYubyBmZW5jZS5vIHJlc2VydmF0aW9uLm8gc2Vxbm8tZmVu Y2UubyBmZW5jZS1hcnJheS5vCitvYmoteSA6PSBkbWEtYnVmLm8gZG1hLWZlbmNlLm8gZG1hLWZl bmNlLWFycmF5Lm8gcmVzZXJ2YXRpb24ubyBzZXFuby1mZW5jZS5vCiBvYmotJChDT05GSUdfU1lO Q19GSUxFKQkJKz0gc3luY19maWxlLm8KIG9iai0kKENPTkZJR19TV19TWU5DKQkJKz0gc3dfc3lu Yy5vIHN5bmNfZGVidWcubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBi L2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKaW5kZXggY2YwNGQyNDlhNmE0Li5lNzJlNjQ0ODQx MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKKysrIGIvZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+ CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KLSNp bmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L2Fub25faW5vZGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAj aW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgpAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyBsb2Zm X3QgZG1hX2J1Zl9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCB3 aGVuY2UpCiAJcmV0dXJuIGJhc2UgKyBvZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGRtYV9idWZf cG9sbF9jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGlj IHZvaWQgZG1hX2J1Zl9wb2xsX2NiKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZG1h X2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1Y3QgZG1hX2J1Zl9wb2xsX2NiX3QgKmRjYiA9IChzdHJ1 Y3QgZG1hX2J1Zl9wb2xsX2NiX3QgKiljYjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTQw LDcgKzE0MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZG1hX2J1Zl9wb2xsKHN0cnVjdCBmaWxl ICpmaWxlLCBwb2xsX3RhYmxlICpwb2xsKQogCXN0cnVjdCBkbWFfYnVmICpkbWFidWY7CiAJc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 X2xpc3QgKmZvYmo7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZV9leGNsOworCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlX2V4Y2w7CiAJdW5zaWduZWQgbG9uZyBldmVudHM7CiAJdW5zaWduZWQgc2hhcmVk X2NvdW50LCBzZXE7CiAKQEAgLTE4NywyMCArMTg3LDIwIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQg ZG1hX2J1Zl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICpwb2xsKQogCQlzcGlu X3VubG9ja19pcnEoJmRtYWJ1Zi0+cG9sbC5sb2NrKTsKIAogCQlpZiAoZXZlbnRzICYgcGV2ZW50 cykgewotCQkJaWYgKCFmZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wpKSB7CisJCQlpZiAoIWRtYV9m ZW5jZV9nZXRfcmN1KGZlbmNlX2V4Y2wpKSB7CiAJCQkJLyogZm9yY2UgYSByZWNoZWNrICovCiAJ CQkJZXZlbnRzICY9IH5wZXZlbnRzOwogCQkJCWRtYV9idWZfcG9sbF9jYihOVUxMLCAmZGNiLT5j Yik7Ci0JCQl9IGVsc2UgaWYgKCFmZW5jZV9hZGRfY2FsbGJhY2soZmVuY2VfZXhjbCwgJmRjYi0+ Y2IsCi0JCQkJCQkgICAgICAgZG1hX2J1Zl9wb2xsX2NiKSkgeworCQkJfSBlbHNlIGlmICghZG1h X2ZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZV9leGNsLCAmZGNiLT5jYiwKKwkJCQkJCQkgICBkbWFf YnVmX3BvbGxfY2IpKSB7CiAJCQkJZXZlbnRzICY9IH5wZXZlbnRzOwotCQkJCWZlbmNlX3B1dChm ZW5jZV9leGNsKTsKKwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOwogCQkJfSBlbHNlIHsK IAkJCQkvKgogCQkJCSAqIE5vIGNhbGxiYWNrIHF1ZXVlZCwgd2FrZSB1cCBhbnkgYWRkaXRpb25h bAogCQkJCSAqIHdhaXRlcnMuCiAJCQkJICovCi0JCQkJZmVuY2VfcHV0KGZlbmNlX2V4Y2wpOwor CQkJCWRtYV9mZW5jZV9wdXQoZmVuY2VfZXhjbCk7CiAJCQkJZG1hX2J1Zl9wb2xsX2NiKE5VTEws ICZkY2ItPmNiKTsKIAkJCX0KIAkJfQpAQCAtMjIyLDkgKzIyMiw5IEBAIHN0YXRpYyB1bnNpZ25l ZCBpbnQgZG1hX2J1Zl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICpwb2xsKQog CQkJZ290byBvdXQ7CiAKIAkJZm9yIChpID0gMDsgaSA8IHNoYXJlZF9jb3VudDsgKytpKSB7Ci0J CQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7 CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShmb2JqLT5zaGFy ZWRbaV0pOwogCi0JCQlpZiAoIWZlbmNlX2dldF9yY3UoZmVuY2UpKSB7CisJCQlpZiAoIWRtYV9m ZW5jZV9nZXRfcmN1KGZlbmNlKSkgewogCQkJCS8qCiAJCQkJICogZmVuY2UgcmVmY291bnQgZHJv cHBlZCB0byB6ZXJvLCB0aGlzIG1lYW5zCiAJCQkJICogdGhhdCBmb2JqIGhhcyBiZWVuIGZyZWVk CkBAIC0yMzUsMTMgKzIzNSwxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGRtYV9idWZfcG9sbChz dHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqcG9sbCkKIAkJCQlkbWFfYnVmX3BvbGxfY2Io TlVMTCwgJmRjYi0+Y2IpOwogCQkJCWJyZWFrOwogCQkJfQotCQkJaWYgKCFmZW5jZV9hZGRfY2Fs bGJhY2soZmVuY2UsICZkY2ItPmNiLAotCQkJCQkJZG1hX2J1Zl9wb2xsX2NiKSkgewotCQkJCWZl bmNlX3B1dChmZW5jZSk7CisJCQlpZiAoIWRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZk Y2ItPmNiLAorCQkJCQkJICAgIGRtYV9idWZfcG9sbF9jYikpIHsKKwkJCQlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAkJCQlldmVudHMgJj0gflBPTExPVVQ7CiAJCQkJYnJlYWs7CiAJCQl9Ci0JCQlm ZW5jZV9wdXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJCX0KIAogCQkvKiBO byBjYWxsYmFjayBxdWV1ZWQsIHdha2UgdXAgYW55IGFkZGl0aW9uYWwgd2FpdGVycy4gKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS1hcnJheS5jIGIvZHJpdmVycy9kbWEtYnVm L2RtYS1mZW5jZS1hcnJheS5jCnNpbWlsYXJpdHkgaW5kZXggNTElCnJlbmFtZSBmcm9tIGRyaXZl cnMvZG1hLWJ1Zi9mZW5jZS1hcnJheS5jCnJlbmFtZSB0byBkcml2ZXJzL2RtYS1idWYvZG1hLWZl bmNlLWFycmF5LmMKaW5kZXggZjE5ODlmY2FmMzU0Li42N2ViN2M4ZmI4OGMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZG1hLWJ1Zi9mZW5jZS1hcnJheS5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEt ZmVuY2UtYXJyYXkuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBmZW5jZS1hcnJheTogYWdncmVn YXRlIGZlbmNlcyB0byBiZSB3YWl0ZWQgdG9nZXRoZXIKKyAqIGRtYS1mZW5jZS1hcnJheTogYWdn cmVnYXRlIGZlbmNlcyB0byBiZSB3YWl0ZWQgdG9nZXRoZXIKICAqCiAgKiBDb3B5cmlnaHQgKEMp IDIwMTYgQ29sbGFib3JhIEx0ZAogICogQ29weXJpZ2h0IChDKSAyMDE2IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4KQEAgLTE5LDM1ICsxOSwzNCBAQAogCiAjaW5jbHVkZSA8bGludXgvZXhw b3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLWFy cmF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+CiAKLXN0YXRpYyB2b2lk IGZlbmNlX2FycmF5X2NiX2Z1bmMoc3RydWN0IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNi KTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKmZlbmNlX2FycmF5X2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmRtYV9mZW5jZV9hcnJheV9nZXRf ZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JcmV0dXJuICJmZW5jZV9h cnJheSI7CisJcmV0dXJuICJkbWFfZmVuY2VfYXJyYXkiOwogfQogCi1zdGF0aWMgY29uc3QgY2hh ciAqZmVuY2VfYXJyYXlfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyBjb25zdCBjaGFyICpkbWFfZmVuY2VfYXJyYXlfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJ1bmJvdW5kIjsKIH0KIAotc3RhdGljIHZv aWQgZmVuY2VfYXJyYXlfY2JfZnVuYyhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAq Y2IpCitzdGF0aWMgdm9pZCBkbWFfZmVuY2VfYXJyYXlfY2JfZnVuYyhzdHJ1Y3QgZG1hX2ZlbmNl ICpmLAorCQkJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKLQlzdHJ1Y3QgZmVuY2Vf YXJyYXlfY2IgKmFycmF5X2NiID0KLQkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgZmVuY2VfYXJy YXlfY2IsIGNiKTsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXkgKmFycmF5ID0gYXJyYXlfY2ItPmFycmF5 OworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgKmFycmF5X2NiID0KKwkJY29udGFpbmVyX29m KGNiLCBzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiLCBjYik7CisJc3RydWN0IGRtYV9mZW5jZV9h cnJheSAqYXJyYXkgPSBhcnJheV9jYi0+YXJyYXk7CiAKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVz dCgmYXJyYXktPm51bV9wZW5kaW5nKSkKLQkJZmVuY2Vfc2lnbmFsKCZhcnJheS0+YmFzZSk7Ci0J ZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoJmFycmF5LT5iYXNl KTsKKwlkbWFfZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CiB9CiAKLXN0YXRpYyBib29sIGZlbmNl X2FycmF5X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29s IGRtYV9mZW5jZV9hcnJheV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewotCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXkgPSB0b19mZW5jZV9hcnJheShmZW5jZSk7 Ci0Jc3RydWN0IGZlbmNlX2FycmF5X2NiICpjYiA9ICh2b2lkICopKCZhcnJheVsxXSk7CisJc3Ry dWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVuY2VfYXJyYXkoZmVuY2UpOwor CXN0cnVjdCBkbWFfZmVuY2VfYXJyYXlfY2IgKmNiID0gKHZvaWQgKikoJmFycmF5WzFdKTsKIAl1 bnNpZ25lZCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGFycmF5LT5udW1fZmVuY2VzOyArK2kpIHsK QEAgLTYwLDEwICs1OSwxMCBAQCBzdGF0aWMgYm9vbCBmZW5jZV9hcnJheV9lbmFibGVfc2lnbmFs aW5nKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiAJCSAqIHVudGlsIHdlIHNpZ25hbCB0aGUgYXJyYXkg YXMgY29tcGxldGUgKGJ1dCB0aGF0IGlzIG5vdwogCQkgKiBpbnN1ZmZpY2llbnQpLgogCQkgKi8K LQkJZmVuY2VfZ2V0KCZhcnJheS0+YmFzZSk7Ci0JCWlmIChmZW5jZV9hZGRfY2FsbGJhY2soYXJy YXktPmZlbmNlc1tpXSwgJmNiW2ldLmNiLAotCQkJCSAgICAgICBmZW5jZV9hcnJheV9jYl9mdW5j KSkgewotCQkJZmVuY2VfcHV0KCZhcnJheS0+YmFzZSk7CisJCWRtYV9mZW5jZV9nZXQoJmFycmF5 LT5iYXNlKTsKKwkJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soYXJyYXktPmZlbmNlc1tpXSwg JmNiW2ldLmNiLAorCQkJCQkgICBkbWFfZmVuY2VfYXJyYXlfY2JfZnVuYykpIHsKKwkJCWRtYV9m ZW5jZV9wdXQoJmFycmF5LT5iYXNlKTsKIAkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcnJh eS0+bnVtX3BlbmRpbmcpKQogCQkJCXJldHVybiBmYWxzZTsKIAkJfQpAQCAtNzIsNjkgKzcxLDcx IEBAIHN0YXRpYyBib29sIGZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNl ICpmZW5jZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZmVuY2VfYXJyYXlfc2ln bmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIGRtYV9mZW5jZV9hcnJheV9z aWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXkg KmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoZmVuY2UpOworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkg KmFycmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KGZlbmNlKTsKIAogCXJldHVybiBhdG9taWNfcmVh ZCgmYXJyYXktPm51bV9wZW5kaW5nKSA8PSAwOwogfQogCi1zdGF0aWMgdm9pZCBmZW5jZV9hcnJh eV9yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBkbWFfZmVuY2VfYXJy YXlfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKLQlzdHJ1Y3QgZmVuY2VfYXJy YXkgKmFycmF5ID0gdG9fZmVuY2VfYXJyYXkoZmVuY2UpOworCXN0cnVjdCBkbWFfZmVuY2VfYXJy YXkgKmFycmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KGZlbmNlKTsKIAl1bnNpZ25lZCBpOwogCiAJ Zm9yIChpID0gMDsgaSA8IGFycmF5LT5udW1fZmVuY2VzOyArK2kpCi0JCWZlbmNlX3B1dChhcnJh eS0+ZmVuY2VzW2ldKTsKKwkJZG1hX2ZlbmNlX3B1dChhcnJheS0+ZmVuY2VzW2ldKTsKIAogCWtm cmVlKGFycmF5LT5mZW5jZXMpOwotCWZlbmNlX2ZyZWUoZmVuY2UpOworCWRtYV9mZW5jZV9mcmVl KGZlbmNlKTsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyBmZW5jZV9hcnJheV9vcHMgPSB7 Ci0JLmdldF9kcml2ZXJfbmFtZSA9IGZlbmNlX2FycmF5X2dldF9kcml2ZXJfbmFtZSwKLQkuZ2V0 X3RpbWVsaW5lX25hbWUgPSBmZW5jZV9hcnJheV9nZXRfdGltZWxpbmVfbmFtZSwKLQkuZW5hYmxl X3NpZ25hbGluZyA9IGZlbmNlX2FycmF5X2VuYWJsZV9zaWduYWxpbmcsCi0JLnNpZ25hbGVkID0g ZmVuY2VfYXJyYXlfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCi0JLnJl bGVhc2UgPSBmZW5jZV9hcnJheV9yZWxlYXNlLAorY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMg ZG1hX2ZlbmNlX2FycmF5X29wcyA9IHsKKwkuZ2V0X2RyaXZlcl9uYW1lID0gZG1hX2ZlbmNlX2Fy cmF5X2dldF9kcml2ZXJfbmFtZSwKKwkuZ2V0X3RpbWVsaW5lX25hbWUgPSBkbWFfZmVuY2VfYXJy YXlfZ2V0X3RpbWVsaW5lX25hbWUsCisJLmVuYWJsZV9zaWduYWxpbmcgPSBkbWFfZmVuY2VfYXJy YXlfZW5hYmxlX3NpZ25hbGluZywKKwkuc2lnbmFsZWQgPSBkbWFfZmVuY2VfYXJyYXlfc2lnbmFs ZWQsCisJLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAorCS5yZWxlYXNlID0gZG1hX2Zl bmNlX2FycmF5X3JlbGVhc2UsCiB9OwotRVhQT1JUX1NZTUJPTChmZW5jZV9hcnJheV9vcHMpOwor RVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfYXJyYXlfb3BzKTsKIAogLyoqCi0gKiBmZW5jZV9hcnJh eV9jcmVhdGUgLSBDcmVhdGUgYSBjdXN0b20gZmVuY2UgYXJyYXkKKyAqIGRtYV9mZW5jZV9hcnJh eV9jcmVhdGUgLSBDcmVhdGUgYSBjdXN0b20gZmVuY2UgYXJyYXkKICAqIEBudW1fZmVuY2VzOgkJ W2luXQludW1iZXIgb2YgZmVuY2VzIHRvIGFkZCBpbiB0aGUgYXJyYXkKICAqIEBmZW5jZXM6CQlb aW5dCWFycmF5IGNvbnRhaW5pbmcgdGhlIGZlbmNlcwogICogQGNvbnRleHQ6CQlbaW5dCWZlbmNl IGNvbnRleHQgdG8gdXNlCiAgKiBAc2Vxbm86CQlbaW5dCXNlcXVlbmNlIG51bWJlciB0byB1c2UK ICAqIEBzaWduYWxfb25fYW55OglbaW5dCXNpZ25hbCBvbiBhbnkgZmVuY2UgaW4gdGhlIGFycmF5 CiAgKgotICogQWxsb2NhdGUgYSBmZW5jZV9hcnJheSBvYmplY3QgYW5kIGluaXRpYWxpemUgdGhl IGJhc2UgZmVuY2Ugd2l0aCBmZW5jZV9pbml0KCkuCisgKiBBbGxvY2F0ZSBhIGRtYV9mZW5jZV9h cnJheSBvYmplY3QgYW5kIGluaXRpYWxpemUgdGhlIGJhc2UgZmVuY2Ugd2l0aAorICogZG1hX2Zl bmNlX2luaXQoKS4KICAqIEluIGNhc2Ugb2YgZXJyb3IgaXQgcmV0dXJucyBOVUxMLgogICoKICAq IFRoZSBjYWxsZXIgc2hvdWxkIGFsbG9jYXRlIHRoZSBmZW5jZXMgYXJyYXkgd2l0aCBudW1fZmVu Y2VzIHNpemUKICAqIGFuZCBmaWxsIGl0IHdpdGggdGhlIGZlbmNlcyBpdCB3YW50cyB0byBhZGQg dG8gdGhlIG9iamVjdC4gT3duZXJzaGlwIG9mIHRoaXMKLSAqIGFycmF5IGlzIHRha2VuIGFuZCBm ZW5jZV9wdXQoKSBpcyB1c2VkIG9uIGVhY2ggZmVuY2Ugb24gcmVsZWFzZS4KKyAqIGFycmF5IGlz IHRha2VuIGFuZCBkbWFfZmVuY2VfcHV0KCkgaXMgdXNlZCBvbiBlYWNoIGZlbmNlIG9uIHJlbGVh c2UuCiAgKgogICogSWYgQHNpZ25hbF9vbl9hbnkgaXMgdHJ1ZSB0aGUgZmVuY2UgYXJyYXkgc2ln bmFscyBpZiBhbnkgZmVuY2UgaW4gdGhlIGFycmF5CiAgKiBzaWduYWxzLCBvdGhlcndpc2UgaXQg c2lnbmFscyB3aGVuIGFsbCBmZW5jZXMgaW4gdGhlIGFycmF5IHNpZ25hbC4KICAqLwotc3RydWN0 IGZlbmNlX2FycmF5ICpmZW5jZV9hcnJheV9jcmVhdGUoaW50IG51bV9mZW5jZXMsIHN0cnVjdCBm ZW5jZSAqKmZlbmNlcywKLQkJCQkgICAgICAgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAot CQkJCSAgICAgICBib29sIHNpZ25hbF9vbl9hbnkpCitzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICpk bWFfZmVuY2VfYXJyYXlfY3JlYXRlKGludCBudW1fZmVuY2VzLAorCQkJCQkgICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqKmZlbmNlcywKKwkJCQkJICAgICAgIHU2NCBjb250ZXh0LCB1bnNpZ25lZCBz ZXFubywKKwkJCQkJICAgICAgIGJvb2wgc2lnbmFsX29uX2FueSkKIHsKLQlzdHJ1Y3QgZmVuY2Vf YXJyYXkgKmFycmF5OworCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5OwogCXNpemVfdCBz aXplID0gc2l6ZW9mKCphcnJheSk7CiAKIAkvKiBBbGxvY2F0ZSB0aGUgY2FsbGJhY2sgc3RydWN0 dXJlcyBiZWhpbmQgdGhlIGFycmF5LiAqLwotCXNpemUgKz0gbnVtX2ZlbmNlcyAqIHNpemVvZihz dHJ1Y3QgZmVuY2VfYXJyYXlfY2IpOworCXNpemUgKz0gbnVtX2ZlbmNlcyAqIHNpemVvZihzdHJ1 Y3QgZG1hX2ZlbmNlX2FycmF5X2NiKTsKIAlhcnJheSA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5F TCk7CiAJaWYgKCFhcnJheSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlzcGluX2xvY2tfaW5pdCgmYXJy YXktPmxvY2spOwotCWZlbmNlX2luaXQoJmFycmF5LT5iYXNlLCAmZmVuY2VfYXJyYXlfb3BzLCAm YXJyYXktPmxvY2ssCi0JCSAgIGNvbnRleHQsIHNlcW5vKTsKKwlkbWFfZmVuY2VfaW5pdCgmYXJy YXktPmJhc2UsICZkbWFfZmVuY2VfYXJyYXlfb3BzLCAmYXJyYXktPmxvY2ssCisJCSAgICAgICBj b250ZXh0LCBzZXFubyk7CiAKIAlhcnJheS0+bnVtX2ZlbmNlcyA9IG51bV9mZW5jZXM7CiAJYXRv bWljX3NldCgmYXJyYXktPm51bV9wZW5kaW5nLCBzaWduYWxfb25fYW55ID8gMSA6IG51bV9mZW5j ZXMpOwpAQCAtMTQyLDQgKzE0Myw0IEBAIHN0cnVjdCBmZW5jZV9hcnJheSAqZmVuY2VfYXJyYXlf Y3JlYXRlKGludCBudW1fZmVuY2VzLCBzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsCiAKIAlyZXR1cm4g YXJyYXk7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX2FycmF5X2NyZWF0ZSk7CitFWFBPUlRfU1lN Qk9MKGRtYV9mZW5jZV9hcnJheV9jcmVhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVm L2ZlbmNlLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMKc2ltaWxhcml0eSBpbmRleCA2 NCUKcmVuYW1lIGZyb20gZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMKcmVuYW1lIHRvIGRyaXZlcnMv ZG1hLWJ1Zi9kbWEtZmVuY2UuYwppbmRleCBjYzA1ZGRkYzc3YTYuLjNhN2JmMDA5YzIxYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2ZlbmNlLmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL2Rt YS1mZW5jZS5jCkBAIC0yMSwxMyArMjEsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAj aW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvYXRvbWljLmg+Ci0jaW5j bHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2Rl ZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCi0jaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2ZlbmNlLmg+ CisjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPgogCi1FWFBPUlRfVFJBQ0VQT0lO VF9TWU1CT0woZmVuY2VfYW5ub3RhdGVfd2FpdF9vbik7Ci1FWFBPUlRfVFJBQ0VQT0lOVF9TWU1C T0woZmVuY2VfZW1pdCk7CitFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0woZG1hX2ZlbmNlX2Fubm90 YXRlX3dhaXRfb24pOworRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9mZW5jZV9lbWl0KTsK IAogLyoKICAqIGZlbmNlIGNvbnRleHQgY291bnRlcjogZWFjaCBleGVjdXRpb24gY29udGV4dCBz aG91bGQgaGF2ZSBpdHMgb3duCkBAIC0zNSwzNyArMzUsMzcgQEAgRVhQT1JUX1RSQUNFUE9JTlRf U1lNQk9MKGZlbmNlX2VtaXQpOwogICogY29udGV4dCBvciBub3QuIE9uZSBkZXZpY2UgY2FuIGhh dmUgbXVsdGlwbGUgc2VwYXJhdGUgY29udGV4dHMsCiAgKiBhbmQgdGhleSdyZSB1c2VkIGlmIHNv bWUgZW5naW5lIGNhbiBydW4gaW5kZXBlbmRlbnRseSBvZiBhbm90aGVyLgogICovCi1zdGF0aWMg YXRvbWljNjRfdCBmZW5jZV9jb250ZXh0X2NvdW50ZXIgPSBBVE9NSUM2NF9JTklUKDApOworc3Rh dGljIGF0b21pYzY0X3QgZG1hX2ZlbmNlX2NvbnRleHRfY291bnRlciA9IEFUT01JQzY0X0lOSVQo MCk7CiAKIC8qKgotICogZmVuY2VfY29udGV4dF9hbGxvYyAtIGFsbG9jYXRlIGFuIGFycmF5IG9m IGZlbmNlIGNvbnRleHRzCisgKiBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyAtIGFsbG9jYXRlIGFu IGFycmF5IG9mIGZlbmNlIGNvbnRleHRzCiAgKiBAbnVtOglbaW5dCWFtb3VudCBvZiBjb250ZXh0 cyB0byBhbGxvY2F0ZQogICoKICAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIGZpcnN0 IGluZGV4IG9mIHRoZSBudW1iZXIgb2YgZmVuY2VzIGFsbG9jYXRlZC4KICAqIFRoZSBmZW5jZSBj b250ZXh0IGlzIHVzZWQgZm9yIHNldHRpbmcgZmVuY2UtPmNvbnRleHQgdG8gYSB1bmlxdWUgbnVt YmVyLgogICovCi11NjQgZmVuY2VfY29udGV4dF9hbGxvYyh1bnNpZ25lZCBudW0pCit1NjQgZG1h X2ZlbmNlX2NvbnRleHRfYWxsb2ModW5zaWduZWQgbnVtKQogewogCUJVR19PTighbnVtKTsKLQly ZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybihudW0sICZmZW5jZV9jb250ZXh0X2NvdW50ZXIpIC0g bnVtOworCXJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKG51bSwgJmRtYV9mZW5jZV9jb250ZXh0 X2NvdW50ZXIpIC0gbnVtOwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9jb250ZXh0X2FsbG9jKTsK K0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MpOwogCiAvKioKLSAqIGZlbmNl X3NpZ25hbF9sb2NrZWQgLSBzaWduYWwgY29tcGxldGlvbiBvZiBhIGZlbmNlCisgKiBkbWFfZmVu Y2Vfc2lnbmFsX2xvY2tlZCAtIHNpZ25hbCBjb21wbGV0aW9uIG9mIGEgZmVuY2UKICAqIEBmZW5j ZTogdGhlIGZlbmNlIHRvIHNpZ25hbAogICoKICAqIFNpZ25hbCBjb21wbGV0aW9uIGZvciBzb2Z0 d2FyZSBjYWxsYmFja3Mgb24gYSBmZW5jZSwgdGhpcyB3aWxsIHVuYmxvY2sKLSAqIGZlbmNlX3dh aXQoKSBjYWxscyBhbmQgcnVuIGFsbCB0aGUgY2FsbGJhY2tzIGFkZGVkIHdpdGgKLSAqIGZlbmNl X2FkZF9jYWxsYmFjaygpLiBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBidXQgc2luY2Ug YSBmZW5jZQorICogZG1hX2ZlbmNlX3dhaXQoKSBjYWxscyBhbmQgcnVuIGFsbCB0aGUgY2FsbGJh Y2tzIGFkZGVkIHdpdGgKKyAqIGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soKS4gQ2FuIGJlIGNhbGxl ZCBtdWx0aXBsZSB0aW1lcywgYnV0IHNpbmNlIGEgZmVuY2UKICAqIGNhbiBvbmx5IGdvIGZyb20g dW5zaWduYWxlZCB0byBzaWduYWxlZCBzdGF0ZSwgaXQgd2lsbCBvbmx5IGJlIGVmZmVjdGl2ZQog ICogdGhlIGZpcnN0IHRpbWUuCiAgKgotICogVW5saWtlIGZlbmNlX3NpZ25hbCwgdGhpcyBmdW5j dGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIGZlbmNlLT5sb2NrIGhlbGQuCisgKiBVbmxpa2UgZG1h X2ZlbmNlX3NpZ25hbCwgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIGZlbmNlLT5s b2NrIGhlbGQuCiAgKi8KLWludCBmZW5jZV9zaWduYWxfbG9ja2VkKHN0cnVjdCBmZW5jZSAqZmVu Y2UpCitpbnQgZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up CiB7Ci0Jc3RydWN0IGZlbmNlX2NiICpjdXIsICp0bXA7CisJc3RydWN0IGRtYV9mZW5jZV9jYiAq Y3VyLCAqdG1wOwogCWludCByZXQgPSAwOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZChmZW5jZS0+ bG9jayk7CkBAIC03OCwxNSArNzgsMTUgQEAgaW50IGZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0 IGZlbmNlICpmZW5jZSkKIAkJc21wX21iX19iZWZvcmVfYXRvbWljKCk7CiAJfQogCi0JaWYgKHRl c3RfYW5kX3NldF9iaXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7 CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVu Y2UtPmZsYWdzKSkgewogCQlyZXQgPSAtRUlOVkFMOwogCiAJCS8qCi0JCSAqIHdlIG1pZ2h0IGhh dmUgcmFjZWQgd2l0aCB0aGUgdW5sb2NrZWQgZmVuY2Vfc2lnbmFsLAorCQkgKiB3ZSBtaWdodCBo YXZlIHJhY2VkIHdpdGggdGhlIHVubG9ja2VkIGRtYV9mZW5jZV9zaWduYWwsCiAJCSAqIHN0aWxs IHJ1biB0aHJvdWdoIGFsbCBjYWxsYmFja3MKIAkJICovCiAJfSBlbHNlCi0JCXRyYWNlX2ZlbmNl X3NpZ25hbGVkKGZlbmNlKTsKKwkJdHJhY2VfZG1hX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKTsKIAog CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJmZlbmNlLT5jYl9saXN0LCBub2Rl KSB7CiAJCWxpc3RfZGVsX2luaXQoJmN1ci0+bm9kZSk7CkBAIC05NCwxOSArOTQsMTkgQEAgaW50 IGZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKIAl9CiAJcmV0dXJuIHJl dDsKIH0KLUVYUE9SVF9TWU1CT0woZmVuY2Vfc2lnbmFsX2xvY2tlZCk7CitFWFBPUlRfU1lNQk9M KGRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKTsKIAogLyoqCi0gKiBmZW5jZV9zaWduYWwgLSBzaWdu YWwgY29tcGxldGlvbiBvZiBhIGZlbmNlCisgKiBkbWFfZmVuY2Vfc2lnbmFsIC0gc2lnbmFsIGNv bXBsZXRpb24gb2YgYSBmZW5jZQogICogQGZlbmNlOiB0aGUgZmVuY2UgdG8gc2lnbmFsCiAgKgog ICogU2lnbmFsIGNvbXBsZXRpb24gZm9yIHNvZnR3YXJlIGNhbGxiYWNrcyBvbiBhIGZlbmNlLCB0 aGlzIHdpbGwgdW5ibG9jawotICogZmVuY2Vfd2FpdCgpIGNhbGxzIGFuZCBydW4gYWxsIHRoZSBj YWxsYmFja3MgYWRkZWQgd2l0aAotICogZmVuY2VfYWRkX2NhbGxiYWNrKCkuIENhbiBiZSBjYWxs ZWQgbXVsdGlwbGUgdGltZXMsIGJ1dCBzaW5jZSBhIGZlbmNlCisgKiBkbWFfZmVuY2Vfd2FpdCgp IGNhbGxzIGFuZCBydW4gYWxsIHRoZSBjYWxsYmFja3MgYWRkZWQgd2l0aAorICogZG1hX2ZlbmNl X2FkZF9jYWxsYmFjaygpLiBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBidXQgc2luY2Ug YSBmZW5jZQogICogY2FuIG9ubHkgZ28gZnJvbSB1bnNpZ25hbGVkIHRvIHNpZ25hbGVkIHN0YXRl LCBpdCB3aWxsIG9ubHkgYmUgZWZmZWN0aXZlCiAgKiB0aGUgZmlyc3QgdGltZS4KICAqLwotaW50 IGZlbmNlX3NpZ25hbChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQoraW50IGRtYV9mZW5jZV9zaWduYWwo c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAt MTE4LDEzICsxMTgsMTMgQEAgaW50IGZlbmNlX3NpZ25hbChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQog CQlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsKIAl9CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdChG RU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRlc3RfYW5kX3Nl dF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKLQl0cmFjZV9mZW5jZV9zaWduYWxlZChmZW5jZSk7CisJdHJhY2VfZG1h X2ZlbmNlX3NpZ25hbGVkKGZlbmNlKTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9GTEFHX0VOQUJM RV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKSkgewotCQlzdHJ1Y3QgZmVuY2VfY2IgKmN1ciwg KnRtcDsKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQsICZm ZW5jZS0+ZmxhZ3MpKSB7CisJCXN0cnVjdCBkbWFfZmVuY2VfY2IgKmN1ciwgKnRtcDsKIAogCQlz cGluX2xvY2tfaXJxc2F2ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwogCQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoY3VyLCB0bXAsICZmZW5jZS0+Y2JfbGlzdCwgbm9kZSkgewpAQCAtMTM1LDEwICsx MzUsMTAgQEAgaW50IGZlbmNlX3NpZ25hbChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCX0KIAlyZXR1 cm4gMDsKIH0KLUVYUE9SVF9TWU1CT0woZmVuY2Vfc2lnbmFsKTsKK0VYUE9SVF9TWU1CT0woZG1h X2ZlbmNlX3NpZ25hbCk7CiAKIC8qKgotICogZmVuY2Vfd2FpdF90aW1lb3V0IC0gc2xlZXAgdW50 aWwgdGhlIGZlbmNlIGdldHMgc2lnbmFsZWQKKyAqIGRtYV9mZW5jZV93YWl0X3RpbWVvdXQgLSBz bGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0cyBzaWduYWxlZAogICogb3IgdW50aWwgdGltZW91dCBl bGFwc2VzCiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIHdhaXQgb24KICAqIEBpbnRyOglb aW5dCWlmIHRydWUsIGRvIGFuIGludGVycnVwdGlibGUgd2FpdApAQCAtMTU0LDcgKzE1NCw3IEBA IEVYUE9SVF9TWU1CT0woZmVuY2Vfc2lnbmFsKTsKICAqIGZyZWVkIGJlZm9yZSByZXR1cm4sIHJl c3VsdGluZyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCiAgKi8KIHNpZ25lZCBsb25nCi1mZW5jZV93 YWl0X3RpbWVvdXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0 aW1lb3V0KQorZG1hX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwg Ym9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXNpZ25lZCBsb25nIHJldDsKIApA QCAtMTYyLDcwICsxNjIsNzEgQEAgZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCBmZW5jZSAqZmVu Y2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAK IAlpZiAodGltZW91dCA9PSAwKQotCQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOwor CQlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKTsKIAotCXRyYWNlX2ZlbmNlX3dh aXRfc3RhcnQoZmVuY2UpOworCXRyYWNlX2RtYV9mZW5jZV93YWl0X3N0YXJ0KGZlbmNlKTsKIAly ZXQgPSBmZW5jZS0+b3BzLT53YWl0KGZlbmNlLCBpbnRyLCB0aW1lb3V0KTsKLQl0cmFjZV9mZW5j ZV93YWl0X2VuZChmZW5jZSk7CisJdHJhY2VfZG1hX2ZlbmNlX3dhaXRfZW5kKGZlbmNlKTsKIAly ZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV93YWl0X3RpbWVvdXQpOworRVhQT1JU X1NZTUJPTChkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KTsKIAotdm9pZCBmZW5jZV9yZWxlYXNlKHN0 cnVjdCBrcmVmICprcmVmKQordm9pZCBkbWFfZmVuY2VfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3Jl ZikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0KLQkJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1 Y3QgZmVuY2UsIHJlZmNvdW50KTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9CisJCWNvbnRh aW5lcl9vZihrcmVmLCBzdHJ1Y3QgZG1hX2ZlbmNlLCByZWZjb3VudCk7CiAKLQl0cmFjZV9mZW5j ZV9kZXN0cm95KGZlbmNlKTsKKwl0cmFjZV9kbWFfZmVuY2VfZGVzdHJveShmZW5jZSk7CiAKIAlC VUdfT04oIWxpc3RfZW1wdHkoJmZlbmNlLT5jYl9saXN0KSk7CiAKIAlpZiAoZmVuY2UtPm9wcy0+ cmVsZWFzZSkKIAkJZmVuY2UtPm9wcy0+cmVsZWFzZShmZW5jZSk7CiAJZWxzZQotCQlmZW5jZV9m cmVlKGZlbmNlKTsKKwkJZG1hX2ZlbmNlX2ZyZWUoZmVuY2UpOwogfQotRVhQT1JUX1NZTUJPTChm ZW5jZV9yZWxlYXNlKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX3JlbGVhc2UpOwogCi12b2lk IGZlbmNlX2ZyZWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3ZvaWQgZG1hX2ZlbmNlX2ZyZWUoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJa2ZyZWVfcmN1KGZlbmNlLCByY3UpOwogfQotRVhQ T1JUX1NZTUJPTChmZW5jZV9mcmVlKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2ZyZWUpOwog CiAvKioKLSAqIGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcgLSBlbmFibGUgc2lnbmFsaW5nIG9u IGZlbmNlCisgKiBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyAtIGVuYWJsZSBzaWduYWxp bmcgb24gZmVuY2UKICAqIEBmZW5jZToJW2luXQl0aGUgZmVuY2UgdG8gZW5hYmxlCiAgKgogICog dGhpcyB3aWxsIHJlcXVlc3QgZm9yIHN3IHNpZ25hbGluZyB0byBiZSBlbmFibGVkLCB0byBtYWtl IHRoZSBmZW5jZQogICogY29tcGxldGUgYXMgc29vbiBhcyBwb3NzaWJsZQogICovCi12b2lkIGZl bmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3ZvaWQgZG1hX2Zl bmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJdW5z aWduZWQgbG9uZyBmbGFnczsKIAotCWlmICghdGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VO QUJMRV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdzKSAmJgotCSAgICAhdGVzdF9iaXQoRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7Ci0JCXRyYWNlX2ZlbmNlX2VuYWJs ZV9zaWduYWwoZmVuY2UpOworCWlmICghdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19F TkFCTEVfU0lHTkFMX0JJVCwKKwkJCSAgICAgICZmZW5jZS0+ZmxhZ3MpICYmCisJICAgICF0ZXN0 X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKSB7CisJCXRy YWNlX2RtYV9mZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNlKTsKIAogCQlzcGluX2xvY2tfaXJxc2F2 ZShmZW5jZS0+bG9jaywgZmxhZ3MpOwogCiAJCWlmICghZmVuY2UtPm9wcy0+ZW5hYmxlX3NpZ25h bGluZyhmZW5jZSkpCi0JCQlmZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJCWRtYV9mZW5j ZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKIAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGZlbmNl LT5sb2NrLCBmbGFncyk7CiAJfQogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9lbmFibGVfc3dfc2ln bmFsaW5nKTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcpOwog CiAvKioKLSAqIGZlbmNlX2FkZF9jYWxsYmFjayAtIGFkZCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxl ZCB3aGVuIHRoZSBmZW5jZQorICogZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayAtIGFkZCBhIGNhbGxi YWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmZW5jZQogICogaXMgc2lnbmFsZWQKICAqIEBmZW5j ZToJW2luXQl0aGUgZmVuY2UgdG8gd2FpdCBvbgogICogQGNiOgkJW2luXQl0aGUgY2FsbGJhY2sg dG8gcmVnaXN0ZXIKICAqIEBmdW5jOglbaW5dCXRoZSBmdW5jdGlvbiB0byBjYWxsCiAgKgotICog Y2Igd2lsbCBiZSBpbml0aWFsaXplZCBieSBmZW5jZV9hZGRfY2FsbGJhY2ssIG5vIGluaXRpYWxp emF0aW9uCisgKiBjYiB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJh Y2ssIG5vIGluaXRpYWxpemF0aW9uCiAgKiBieSB0aGUgY2FsbGVyIGlzIHJlcXVpcmVkLiBBbnkg bnVtYmVyIG9mIGNhbGxiYWNrcyBjYW4gYmUgcmVnaXN0ZXJlZAogICogdG8gYSBmZW5jZSwgYnV0 IGEgY2FsbGJhY2sgY2FuIG9ubHkgYmUgcmVnaXN0ZXJlZCB0byBvbmUgZmVuY2UgYXQgYSB0aW1l LgogICoKQEAgLTIzNCwxNSArMjM1LDE1IEBAIEVYUE9SVF9TWU1CT0woZmVuY2VfZW5hYmxlX3N3 X3NpZ25hbGluZyk7CiAgKiAqbm90KiBjYWxsIHRoZSBjYWxsYmFjaykKICAqCiAgKiBBZGQgYSBz b2Z0d2FyZSBjYWxsYmFjayB0byB0aGUgZmVuY2UuIFNhbWUgcmVzdHJpY3Rpb25zIGFwcGx5IHRv Ci0gKiByZWZjb3VudCBhcyBpdCBkb2VzIHRvIGZlbmNlX3dhaXQsIGhvd2V2ZXIgdGhlIGNhbGxl ciBkb2Vzbid0IG5lZWQgdG8KKyAqIHJlZmNvdW50IGFzIGl0IGRvZXMgdG8gZG1hX2ZlbmNlX3dh aXQsIGhvd2V2ZXIgdGhlIGNhbGxlciBkb2Vzbid0IG5lZWQgdG8KICAqIGtlZXAgYSByZWZjb3Vu dCB0byBmZW5jZSBhZnRlcndhcmRzOiB3aGVuIHNvZnR3YXJlIGFjY2VzcyBpcyBlbmFibGVkLAog ICogdGhlIGNyZWF0b3Igb2YgdGhlIGZlbmNlIGlzIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGZlbmNl IGFsaXZlIHVudGlsCi0gKiBhZnRlciBpdCBzaWduYWxzIHdpdGggZmVuY2Vfc2lnbmFsLiBUaGUg Y2FsbGJhY2sgaXRzZWxmIGNhbiBiZSBjYWxsZWQKKyAqIGFmdGVyIGl0IHNpZ25hbHMgd2l0aCBk bWFfZmVuY2Vfc2lnbmFsLiBUaGUgY2FsbGJhY2sgaXRzZWxmIGNhbiBiZSBjYWxsZWQKICAqIGZy b20gaXJxIGNvbnRleHQuCiAgKgogICovCi1pbnQgZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBm ZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IsCi0JCSAgICAgICBmZW5jZV9mdW5jX3Qg ZnVuYykKK2ludCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl LCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiwKKwkJCSAgIGRtYV9mZW5jZV9mdW5jX3QgZnVuYykK IHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQgPSAwOwpAQCAtMjUxLDIyICsyNTIs MjMgQEAgaW50IGZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qg ZmVuY2VfY2IgKmNiLAogCWlmIChXQVJOX09OKCFmZW5jZSB8fCAhZnVuYykpCiAJCXJldHVybiAt RUlOVkFMOwogCi0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2Ut PmZsYWdzKSkgeworCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZm ZW5jZS0+ZmxhZ3MpKSB7CiAJCUlOSVRfTElTVF9IRUFEKCZjYi0+bm9kZSk7CiAJCXJldHVybiAt RU5PRU5UOwogCX0KIAogCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAK LQl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklU LCAmZmVuY2UtPmZsYWdzKTsKKwl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0Vf RkxBR19FTkFCTEVfU0lHTkFMX0JJVCwKKwkJCQkgICAmZmVuY2UtPmZsYWdzKTsKIAotCWlmICh0 ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRl c3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCXJl dCA9IC1FTk9FTlQ7CiAJZWxzZSBpZiAoIXdhc19zZXQpIHsKLQkJdHJhY2VfZmVuY2VfZW5hYmxl X3NpZ25hbChmZW5jZSk7CisJCXRyYWNlX2RtYV9mZW5jZV9lbmFibGVfc2lnbmFsKGZlbmNlKTsK IAogCQlpZiAoIWZlbmNlLT5vcHMtPmVuYWJsZV9zaWduYWxpbmcoZmVuY2UpKSB7Ci0JCQlmZW5j ZV9zaWduYWxfbG9ja2VkKGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKGZlbmNl KTsKIAkJCXJldCA9IC1FTk9FTlQ7CiAJCX0KIAl9CkBAIC0yODAsMTAgKzI4MiwxMCBAQCBpbnQg ZmVuY2VfYWRkX2NhbGxiYWNrKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAq Y2IsCiAKIAlyZXR1cm4gcmV0OwogfQotRVhQT1JUX1NZTUJPTChmZW5jZV9hZGRfY2FsbGJhY2sp OworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKTsKIAogLyoqCi0gKiBmZW5j ZV9yZW1vdmVfY2FsbGJhY2sgLSByZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBzaWduYWxpbmcg bGlzdAorICogZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayAtIHJlbW92ZSBhIGNhbGxiYWNrIGZy b20gdGhlIHNpZ25hbGluZyBsaXN0CiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIHdhaXQg b24KICAqIEBjYjoJCVtpbl0JdGhlIGNhbGxiYWNrIHRvIHJlbW92ZQogICoKQEAgLTI5OCw3ICsz MDAsNyBAQCBFWFBPUlRfU1lNQk9MKGZlbmNlX2FkZF9jYWxsYmFjayk7CiAgKiB3aXRoIGEgcmVm ZXJlbmNlIGhlbGQgdG8gdGhlIGZlbmNlLgogICovCiBib29sCi1mZW5jZV9yZW1vdmVfY2FsbGJh Y2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKK2RtYV9mZW5jZV9y ZW1vdmVfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2Vf Y2IgKmNiKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCByZXQ7CkBAIC0zMTMsMTUg KzMxNSwxNSBAQCBmZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3Ry dWN0IGZlbmNlX2NiICpjYikKIAogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNl X3JlbW92ZV9jYWxsYmFjayk7CitFWFBPUlRfU1lNQk9MKGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJh Y2spOwogCiBzdHJ1Y3QgZGVmYXVsdF93YWl0X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsK KwlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGJhc2U7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwog fTsKIAogc3RhdGljIHZvaWQKLWZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZl bmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQorZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdF9jYihzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0 IGRlZmF1bHRfd2FpdF9jYiAqd2FpdCA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGRlZmF1 bHRfd2FpdF9jYiwgYmFzZSk7CkBAIC0zMzAsNyArMzMyLDcgQEAgZmVuY2VfZGVmYXVsdF93YWl0 X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiB9CiAKIC8qKgot ICogZmVuY2VfZGVmYXVsdF93YWl0IC0gZGVmYXVsdCBzbGVlcCB1bnRpbCB0aGUgZmVuY2UgZ2V0 cyBzaWduYWxlZAorICogZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCAtIGRlZmF1bHQgc2xlZXAgdW50 aWwgdGhlIGZlbmNlIGdldHMgc2lnbmFsZWQKICAqIG9yIHVudGlsIHRpbWVvdXQgZWxhcHNlcwog ICogQGZlbmNlOglbaW5dCXRoZSBmZW5jZSB0byB3YWl0IG9uCiAgKiBAaW50cjoJW2luXQlpZiB0 cnVlLCBkbyBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQKQEAgLTM0MCwxNCArMzQyLDE0IEBAIGZlbmNl X2RlZmF1bHRfd2FpdF9jYihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNi KQogICogcmVtYWluaW5nIHRpbWVvdXQgaW4gamlmZmllcyBvbiBzdWNjZXNzLgogICovCiBzaWdu ZWQgbG9uZwotZmVuY2VfZGVmYXVsdF93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50 ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK2RtYV9mZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1 Y3QgZGVmYXVsdF93YWl0X2NiIGNiOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc2lnbmVkIGxv bmcgcmV0ID0gdGltZW91dDsKIAlib29sIHdhc19zZXQ7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKQorCWlmICh0ZXN0X2JpdChETUFfRkVO Q0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ZmxhZ3MpKQogCQlyZXR1cm4gdGltZW91dDsK IAogCXNwaW5fbG9ja19pcnFzYXZlKGZlbmNlLT5sb2NrLCBmbGFncyk7CkBAIC0zNTcsMjUgKzM1 OSwyNiBAQCBmZW5jZV9kZWZhdWx0X3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRy LCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCQlnb3RvIG91dDsKIAl9CiAKLQl3YXNfc2V0ID0gdGVz dF9hbmRfc2V0X2JpdChGRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmZmVuY2UtPmZsYWdz KTsKKwl3YXNfc2V0ID0gdGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lH TkFMX0JJVCwKKwkJCQkgICAmZmVuY2UtPmZsYWdzKTsKIAotCWlmICh0ZXN0X2JpdChGRU5DRV9G TEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJaWYgKHRlc3RfYml0KERNQV9GRU5D RV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCiAJCWdvdG8gb3V0OwogCiAJaWYg KCF3YXNfc2V0KSB7Ci0JCXRyYWNlX2ZlbmNlX2VuYWJsZV9zaWduYWwoZmVuY2UpOworCQl0cmFj ZV9kbWFfZmVuY2VfZW5hYmxlX3NpZ25hbChmZW5jZSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5l bmFibGVfc2lnbmFsaW5nKGZlbmNlKSkgewotCQkJZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7 CisJCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZChmZW5jZSk7CiAJCQlnb3RvIG91dDsKIAkJfQog CX0KIAotCWNiLmJhc2UuZnVuYyA9IGZlbmNlX2RlZmF1bHRfd2FpdF9jYjsKKwljYi5iYXNlLmZ1 bmMgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0X2NiOwogCWNiLnRhc2sgPSBjdXJyZW50OwogCWxp c3RfYWRkKCZjYi5iYXNlLm5vZGUsICZmZW5jZS0+Y2JfbGlzdCk7CiAKLQl3aGlsZSAoIXRlc3Rf Yml0KEZFTkNFX0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSAmJiByZXQgPiAwKSB7 CisJd2hpbGUgKCF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+ ZmxhZ3MpICYmIHJldCA+IDApIHsKIAkJaWYgKGludHIpCiAJCQlfX3NldF9jdXJyZW50X3N0YXRl KFRBU0tfSU5URVJSVVBUSUJMRSk7CiAJCWVsc2UKQEAgLTM5NywyMyArNDAwLDIzIEBAIGZlbmNl X2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25n IHRpbWVvdXQpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShmZW5jZS0+bG9jaywgZmxhZ3MpOwog CXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX2RlZmF1bHRfd2FpdCk7CitFWFBP UlRfU1lNQk9MKGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQpOwogCiBzdGF0aWMgYm9vbAotZmVuY2Vf dGVzdF9zaWduYWxlZF9hbnkoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCkK K2RtYV9mZW5jZV90ZXN0X3NpZ25hbGVkX2FueShzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLCB1 aW50MzJfdCBjb3VudCkKIHsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytp KSB7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBmZW5jZXNbaV07Ci0JCWlmICh0ZXN0X2JpdChG RU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykpCisJCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlID0gZmVuY2VzW2ldOworCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lH TkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJCXJldHVybiB0cnVlOwogCX0KIAlyZXR1cm4g ZmFsc2U7CiB9CiAKIC8qKgotICogZmVuY2Vfd2FpdF9hbnlfdGltZW91dCAtIHNsZWVwIHVudGls IGFueSBmZW5jZSBnZXRzIHNpZ25hbGVkCisgKiBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dCAt IHNsZWVwIHVudGlsIGFueSBmZW5jZSBnZXRzIHNpZ25hbGVkCiAgKiBvciB1bnRpbCB0aW1lb3V0 IGVsYXBzZXMKICAqIEBmZW5jZXM6CVtpbl0JYXJyYXkgb2YgZmVuY2VzIHRvIHdhaXQgb24KICAq IEBjb3VudDoJW2luXQludW1iZXIgb2YgZmVuY2VzIHRvIHdhaXQgb24KQEAgLTQyOSw4ICs0MzIs OCBAQCBmZW5jZV90ZXN0X3NpZ25hbGVkX2FueShzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQz Ml90IGNvdW50KQogICogZmVuY2UgbWlnaHQgYmUgZnJlZWQgYmVmb3JlIHJldHVybiwgcmVzdWx0 aW5nIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KICAqLwogc2lnbmVkIGxvbmcKLWZlbmNlX3dhaXRf YW55X3RpbWVvdXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKLQkJICAg ICAgIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK2RtYV9mZW5jZV93YWl0X2FueV90 aW1lb3V0KHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAorCQkJICAg Ym9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBkZWZhdWx0X3dhaXRf Y2IgKmNiOwogCXNpZ25lZCBsb25nIHJldCA9IHRpbWVvdXQ7CkBAIC00NDEsNyArNDQ0LDcgQEAg ZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIHVpbnQzMl90IGNv dW50LAogCiAJaWYgKHRpbWVvdXQgPT0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsr aSkKLQkJCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZXNbaV0pKQorCQkJaWYgKGRtYV9mZW5j ZV9pc19zaWduYWxlZChmZW5jZXNbaV0pKQogCQkJCXJldHVybiAxOwogCiAJCXJldHVybiAwOwpA QCAtNDU0LDE2ICs0NTcsMTYgQEAgZmVuY2Vfd2FpdF9hbnlfdGltZW91dChzdHJ1Y3QgZmVuY2Ug KipmZW5jZXMsIHVpbnQzMl90IGNvdW50LAogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsg KytpKSB7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBmZW5jZXNbaV07CisJCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0gZmVuY2VzW2ldOwogCi0JCWlmIChmZW5jZS0+b3BzLT53YWl0ICE9IGZl bmNlX2RlZmF1bHRfd2FpdCkgeworCQlpZiAoZmVuY2UtPm9wcy0+d2FpdCAhPSBkbWFfZmVuY2Vf ZGVmYXVsdF93YWl0KSB7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBmZW5jZV9ybV9jYjsK IAkJfQogCiAJCWNiW2ldLnRhc2sgPSBjdXJyZW50OwotCQlpZiAoZmVuY2VfYWRkX2NhbGxiYWNr KGZlbmNlLCAmY2JbaV0uYmFzZSwKLQkJCQkgICAgICAgZmVuY2VfZGVmYXVsdF93YWl0X2NiKSkg eworCQlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJmNiW2ldLmJhc2UsCisJCQkJ CSAgIGRtYV9mZW5jZV9kZWZhdWx0X3dhaXRfY2IpKSB7CiAJCQkvKiBUaGlzIGZlbmNlIGlzIGFs cmVhZHkgc2lnbmFsZWQgKi8KIAkJCWdvdG8gZmVuY2Vfcm1fY2I7CiAJCX0KQEAgLTQ3NSw3ICs0 NzgsNyBAQCBmZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBmZW5jZSAqKmZlbmNlcywgdWlu dDMyX3QgY291bnQsCiAJCWVsc2UKIAkJCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRFUlJV UFRJQkxFKTsKIAotCQlpZiAoZmVuY2VfdGVzdF9zaWduYWxlZF9hbnkoZmVuY2VzLCBjb3VudCkp CisJCWlmIChkbWFfZmVuY2VfdGVzdF9zaWduYWxlZF9hbnkoZmVuY2VzLCBjb3VudCkpCiAJCQli cmVhazsKIAogCQlyZXQgPSBzY2hlZHVsZV90aW1lb3V0KHJldCk7CkBAIC00ODgsMzQgKzQ5MSwz NCBAQCBmZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBmZW5jZSAqKmZlbmNlcywgdWludDMy X3QgY291bnQsCiAKIGZlbmNlX3JtX2NiOgogCXdoaWxlIChpLS0gPiAwKQotCQlmZW5jZV9yZW1v dmVfY2FsbGJhY2soZmVuY2VzW2ldLCAmY2JbaV0uYmFzZSk7CisJCWRtYV9mZW5jZV9yZW1vdmVf Y2FsbGJhY2soZmVuY2VzW2ldLCAmY2JbaV0uYmFzZSk7CiAKIGVycl9mcmVlX2NiOgogCWtmcmVl KGNiKTsKIAogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MKGZlbmNlX3dhaXRfYW55X3Rp bWVvdXQpOworRVhQT1JUX1NZTUJPTChkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dCk7CiAKIC8q KgotICogZmVuY2VfaW5pdCAtIEluaXRpYWxpemUgYSBjdXN0b20gZmVuY2UuCisgKiBkbWFfZmVu Y2VfaW5pdCAtIEluaXRpYWxpemUgYSBjdXN0b20gZmVuY2UuCiAgKiBAZmVuY2U6CVtpbl0JdGhl IGZlbmNlIHRvIGluaXRpYWxpemUKLSAqIEBvcHM6CVtpbl0JdGhlIGZlbmNlX29wcyBmb3Igb3Bl cmF0aW9ucyBvbiB0aGlzIGZlbmNlCisgKiBAb3BzOglbaW5dCXRoZSBkbWFfZmVuY2Vfb3BzIGZv ciBvcGVyYXRpb25zIG9uIHRoaXMgZmVuY2UKICAqIEBsb2NrOglbaW5dCXRoZSBpcnFzYWZlIHNw aW5sb2NrIHRvIHVzZSBmb3IgbG9ja2luZyB0aGlzIGZlbmNlCiAgKiBAY29udGV4dDoJW2luXQl0 aGUgZXhlY3V0aW9uIGNvbnRleHQgdGhpcyBmZW5jZSBpcyBydW4gb24KICAqIEBzZXFubzoJW2lu XQlhIGxpbmVhciBpbmNyZWFzaW5nIHNlcXVlbmNlIG51bWJlciBmb3IgdGhpcyBjb250ZXh0CiAg KgogICogSW5pdGlhbGl6ZXMgYW4gYWxsb2NhdGVkIGZlbmNlLCB0aGUgY2FsbGVyIGRvZXNuJ3Qg aGF2ZSB0byBrZWVwIGl0cwogICogcmVmY291bnQgYWZ0ZXIgY29tbWl0dGluZyB3aXRoIHRoaXMg ZmVuY2UsIGJ1dCBpdCB3aWxsIG5lZWQgdG8gaG9sZCBhCi0gKiByZWZjb3VudCBhZ2FpbiBpZiBm ZW5jZV9vcHMuZW5hYmxlX3NpZ25hbGluZyBnZXRzIGNhbGxlZC4gVGhpcyBjYW4KKyAqIHJlZmNv dW50IGFnYWluIGlmIGRtYV9mZW5jZV9vcHMuZW5hYmxlX3NpZ25hbGluZyBnZXRzIGNhbGxlZC4g VGhpcyBjYW4KICAqIGJlIHVzZWQgZm9yIG90aGVyIGltcGxlbWVudGluZyBvdGhlciB0eXBlcyBv ZiBmZW5jZS4KICAqCiAgKiBjb250ZXh0IGFuZCBzZXFubyBhcmUgdXNlZCBmb3IgZWFzeSBjb21w YXJpc29uIGJldHdlZW4gZmVuY2VzLCBhbGxvd2luZwotICogdG8gY2hlY2sgd2hpY2ggZmVuY2Ug aXMgbGF0ZXIgYnkgc2ltcGx5IHVzaW5nIGZlbmNlX2xhdGVyLgorICogdG8gY2hlY2sgd2hpY2gg ZmVuY2UgaXMgbGF0ZXIgYnkgc2ltcGx5IHVzaW5nIGRtYV9mZW5jZV9sYXRlci4KICAqLwogdm9p ZAotZmVuY2VfaW5pdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz ICpvcHMsCi0JICAgICBzcGlubG9ja190ICpsb2NrLCB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vx bm8pCitkbWFfZmVuY2VfaW5pdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY29uc3Qgc3RydWN0 IGRtYV9mZW5jZV9vcHMgKm9wcywKKwkgICAgICAgc3BpbmxvY2tfdCAqbG9jaywgdTY0IGNvbnRl eHQsIHVuc2lnbmVkIHNlcW5vKQogewogCUJVR19PTighbG9jayk7CiAJQlVHX09OKCFvcHMgfHwg IW9wcy0+d2FpdCB8fCAhb3BzLT5lbmFibGVfc2lnbmFsaW5nIHx8CkBAIC01MjksNiArNTMyLDYg QEAgZmVuY2VfaW5pdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3Bz ICpvcHMsCiAJZmVuY2UtPnNlcW5vID0gc2Vxbm87CiAJZmVuY2UtPmZsYWdzID0gMFVMOwogCi0J dHJhY2VfZmVuY2VfaW5pdChmZW5jZSk7CisJdHJhY2VfZG1hX2ZlbmNlX2luaXQoZmVuY2UpOwog fQotRVhQT1JUX1NZTUJPTChmZW5jZV9pbml0KTsKK0VYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2lu aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMgYi9kcml2ZXJz L2RtYS1idWYvcmVzZXJ2YXRpb24uYwppbmRleCA4MmRlNTlmN2NiYmQuLjdlZDU2ZjNlZGZiNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMKKysrIGIvZHJpdmVycy9k bWEtYnVmL3Jlc2VydmF0aW9uLmMKQEAgLTEwMiwxNyArMTAyLDE3IEBAIEVYUE9SVF9TWU1CT0wo cmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKTsKIHN0YXRpYyB2b2lkCiByZXNlcnZh dGlvbl9vYmplY3RfYWRkX3NoYXJlZF9pbnBsYWNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Qg Km9iaiwKIAkJCQkgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmosCi0J CQkJICAgICAgc3RydWN0IGZlbmNlICpmZW5jZSkKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAl1MzIgaTsKIAotCWZlbmNlX2dldChmZW5jZSk7CisJZG1hX2ZlbmNlX2dl dChmZW5jZSk7CiAKIAlwcmVlbXB0X2Rpc2FibGUoKTsKIAl3cml0ZV9zZXFjb3VudF9iZWdpbigm b2JqLT5zZXEpOwogCiAJZm9yIChpID0gMDsgaSA8IGZvYmotPnNoYXJlZF9jb3VudDsgKytpKSB7 Ci0JCXN0cnVjdCBmZW5jZSAqb2xkX2ZlbmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGRfZmVu Y2U7CiAKIAkJb2xkX2ZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5zaGFy ZWRbaV0sCiAJCQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKQEAgLTEyMyw3ICsx MjMsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9pbnBsYWNlKHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOwog CQkJcHJlZW1wdF9lbmFibGUoKTsKIAotCQkJZmVuY2VfcHV0KG9sZF9mZW5jZSk7CisJCQlkbWFf ZmVuY2VfcHV0KG9sZF9mZW5jZSk7CiAJCQlyZXR1cm47CiAJCX0KIAl9CkBAIC0xNDMsMTIgKzE0 MywxMiBAQCBzdGF0aWMgdm9pZAogcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfcmVwbGFj ZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJCQkJICAgICAgc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0ICpvbGQsCiAJCQkJICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29i amVjdF9saXN0ICpmb2JqLAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQkJICAg ICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJdW5zaWduZWQgaTsKLQlzdHJ1Y3QgZmVu Y2UgKm9sZF9mZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqb2xkX2ZlbmNlID0gTlVM TDsKIAotCWZlbmNlX2dldChmZW5jZSk7CisJZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAlpZiAo IW9sZCkgewogCQlSQ1VfSU5JVF9QT0lOVEVSKGZvYmotPnNoYXJlZFswXSwgZmVuY2UpOwpAQCAt MTY1LDcgKzE2NSw3IEBAIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX3JlcGxhY2Uoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCWZvYmotPnNoYXJlZF9jb3VudCA9IG9sZC0+ c2hhcmVkX2NvdW50OwogCiAJZm9yIChpID0gMDsgaSA8IG9sZC0+c2hhcmVkX2NvdW50OyArK2kp IHsKLQkJc3RydWN0IGZlbmNlICpjaGVjazsKKwkJc3RydWN0IGRtYV9mZW5jZSAqY2hlY2s7CiAK IAkJY2hlY2sgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAogCQkJ CQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7CkBAIC0xOTYsNyArMTk2LDcgQEAgcmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfcmVwbGFjZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpvYmosCiAJCWtmcmVlX3JjdShvbGQsIHJjdSk7CiAKIAlpZiAob2xkX2ZlbmNlKQotCQlm ZW5jZV9wdXQob2xkX2ZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChvbGRfZmVuY2UpOwogfQogCiAv KioKQEAgLTIwOCw3ICsyMDgsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9yZXBs YWNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKICAqIHJlc2VydmF0aW9uX29iamVj dF9yZXNlcnZlX3NoYXJlZCgpIGhhcyBiZWVuIGNhbGxlZC4KICAqLwogdm9pZCByZXNlcnZhdGlv bl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmos Ci0JCQkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorCQkJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCiB7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpvbGQsICpmb2JqID0gb2Jq LT5zdGFnZWQ7CiAKQEAgLTIzMSw5ICsyMzEsOSBAQCBFWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9u X29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKTsKICAqIEFkZCBhIGZlbmNlIHRvIHRoZSBleGNsdXNp dmUgc2xvdC4gIFRoZSBvYmotPmxvY2sgbXVzdCBiZSBoZWxkLgogICovCiB2b2lkIHJlc2VydmF0 aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmos Ci0JCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQkJICAgICAgIHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKQogewotCXN0cnVjdCBmZW5jZSAqb2xkX2ZlbmNlID0gcmVzZXJ2YXRpb25f b2JqZWN0X2dldF9leGNsKG9iaik7CisJc3RydWN0IGRtYV9mZW5jZSAqb2xkX2ZlbmNlID0gcmVz ZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG9iaik7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVj dF9saXN0ICpvbGQ7CiAJdTMyIGkgPSAwOwogCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCByZXNl cnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAq b2JqLAogCQlpID0gb2xkLT5zaGFyZWRfY291bnQ7CiAKIAlpZiAoZmVuY2UpCi0JCWZlbmNlX2dl dChmZW5jZSk7CisJCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCiAJcHJlZW1wdF9kaXNhYmxlKCk7 CiAJd3JpdGVfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKQEAgLTI1NSwxMSArMjU1LDExIEBA IHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwKIAogCS8qIGlucGxhY2UgdXBkYXRlLCBubyBzaGFyZWQgZmVuY2VzICov CiAJd2hpbGUgKGktLSkKLQkJZmVuY2VfcHV0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xk LT5zaGFyZWRbaV0sCisJCWRtYV9mZW5jZV9wdXQocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChv bGQtPnNoYXJlZFtpXSwKIAkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpKTsKIAog CWlmIChvbGRfZmVuY2UpCi0JCWZlbmNlX3B1dChvbGRfZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0 KG9sZF9mZW5jZSk7CiB9CiBFWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhj bF9mZW5jZSk7CiAKQEAgLTI3NiwxMiArMjc2LDEyIEBAIEVYUE9SVF9TWU1CT0wocmVzZXJ2YXRp b25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKTsKICAqIFplcm8gb3IgLWVycm5vCiAgKi8KIGludCBy ZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKnBmZW5jZV9leGNsLAorCQkJCSAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKipwZmVuY2VfZXhjbCwKIAkJCQkgICAgICB1bnNpZ25lZCAqcHNo YXJlZF9jb3VudCwKLQkJCQkgICAgICBzdHJ1Y3QgZmVuY2UgKioqcHNoYXJlZCkKKwkJCQkgICAg ICBzdHJ1Y3QgZG1hX2ZlbmNlICoqKnBzaGFyZWQpCiB7Ci0Jc3RydWN0IGZlbmNlICoqc2hhcmVk ID0gTlVMTDsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlX2V4Y2w7CisJc3RydWN0IGRtYV9mZW5jZSAq KnNoYXJlZCA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VfZXhjbDsKIAl1bnNpZ25l ZCBpbnQgc2hhcmVkX2NvdW50OwogCWludCByZXQgPSAxOwogCkBAIC0yOTYsMTIgKzI5NiwxMiBA QCBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwKIAkJc2VxID0gcmVhZF9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwog CiAJCWZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKLQkJaWYg KGZlbmNlX2V4Y2wgJiYgIWZlbmNlX2dldF9yY3UoZmVuY2VfZXhjbCkpCisJCWlmIChmZW5jZV9l eGNsICYmICFkbWFfZmVuY2VfZ2V0X3JjdShmZW5jZV9leGNsKSkKIAkJCWdvdG8gdW5sb2NrOwog CiAJCWZvYmogPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZSk7CiAJCWlmIChmb2JqKSB7Ci0J CQlzdHJ1Y3QgZmVuY2UgKipuc2hhcmVkOworCQkJc3RydWN0IGRtYV9mZW5jZSAqKm5zaGFyZWQ7 CiAJCQlzaXplX3Qgc3ogPSBzaXplb2YoKnNoYXJlZCkgKiBmb2JqLT5zaGFyZWRfbWF4OwogCiAJ CQluc2hhcmVkID0ga3JlYWxsb2Moc2hhcmVkLCBzeiwKQEAgLTMyMiwxNSArMzIyLDE1IEBAIGlu dCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29i amVjdCAqb2JqLAogCiAJCQlmb3IgKGkgPSAwOyBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKIAkJ CQlzaGFyZWRbaV0gPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKLQkJCQlpZiAo IWZlbmNlX2dldF9yY3Uoc2hhcmVkW2ldKSkKKwkJCQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KHNo YXJlZFtpXSkpCiAJCQkJCWJyZWFrOwogCQkJfQogCQl9CiAKIAkJaWYgKGkgIT0gc2hhcmVkX2Nv dW50IHx8IHJlYWRfc2VxY291bnRfcmV0cnkoJm9iai0+c2VxLCBzZXEpKSB7CiAJCQl3aGlsZSAo aS0tKQotCQkJCWZlbmNlX3B1dChzaGFyZWRbaV0pOwotCQkJZmVuY2VfcHV0KGZlbmNlX2V4Y2wp OworCQkJCWRtYV9mZW5jZV9wdXQoc2hhcmVkW2ldKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2Vf ZXhjbCk7CiAJCQlnb3RvIHVubG9jazsKIAkJfQogCkBAIC0zNjgsNyArMzY4LDcgQEAgbG9uZyBy ZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpvYmosCiAJCQkJCSBib29sIHdhaXRfYWxsLCBib29sIGludHIsCiAJCQkJCSB1bnNpZ25l ZCBsb25nIHRpbWVvdXQpCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKIAl1bnNpZ25lZCBzZXEsIHNoYXJlZF9jb3VudCwgaSA9IDA7CiAJbG9uZyBy ZXQgPSB0aW1lb3V0OwogCkBAIC0zODksMTYgKzM4OSwxNyBAQCBsb25nIHJlc2VydmF0aW9uX29i amVjdF93YWl0X3RpbWVvdXRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAkJ CXNoYXJlZF9jb3VudCA9IGZvYmotPnNoYXJlZF9jb3VudDsKIAogCQlmb3IgKGkgPSAwOyBpIDwg c2hhcmVkX2NvdW50OyArK2kpIHsKLQkJCXN0cnVjdCBmZW5jZSAqbGZlbmNlID0gcmN1X2RlcmVm ZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpsZmVuY2UgPSBy Y3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKIAotCQkJaWYgKHRlc3RfYml0KEZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmbGZlbmNlLT5mbGFncykpCisJCQlpZiAodGVzdF9iaXQoRE1B X0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklULAorCQkJCSAgICAgJmxmZW5jZS0+ZmxhZ3MpKQogCQkJ CWNvbnRpbnVlOwogCi0JCQlpZiAoIWZlbmNlX2dldF9yY3UobGZlbmNlKSkKKwkJCWlmICghZG1h X2ZlbmNlX2dldF9yY3UobGZlbmNlKSkKIAkJCQlnb3RvIHVubG9ja19yZXRyeTsKIAotCQkJaWYg KGZlbmNlX2lzX3NpZ25hbGVkKGxmZW5jZSkpIHsKLQkJCQlmZW5jZV9wdXQobGZlbmNlKTsKKwkJ CWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQobGZlbmNlKSkgeworCQkJCWRtYV9mZW5jZV9wdXQo bGZlbmNlKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIApAQCAtNDA4LDE1ICs0MDksMTYgQEAgbG9u ZyByZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0ICpvYmosCiAJfQogCiAJaWYgKCFzaGFyZWRfY291bnQpIHsKLQkJc3RydWN0IGZlbmNl ICpmZW5jZV9leGNsID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2VfZXhjbCk7CisJCXN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlX2V4Y2wgPSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNs KTsKIAogCQlpZiAoZmVuY2VfZXhjbCAmJgotCQkgICAgIXRlc3RfYml0KEZFTkNFX0ZMQUdfU0lH TkFMRURfQklULCAmZmVuY2VfZXhjbC0+ZmxhZ3MpKSB7Ci0JCQlpZiAoIWZlbmNlX2dldF9yY3Uo ZmVuY2VfZXhjbCkpCisJCSAgICAhdGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklU LAorCQkJICAgICAgJmZlbmNlX2V4Y2wtPmZsYWdzKSkgeworCQkJaWYgKCFkbWFfZmVuY2VfZ2V0 X3JjdShmZW5jZV9leGNsKSkKIAkJCQlnb3RvIHVubG9ja19yZXRyeTsKIAotCQkJaWYgKGZlbmNl X2lzX3NpZ25hbGVkKGZlbmNlX2V4Y2wpKQotCQkJCWZlbmNlX3B1dChmZW5jZV9leGNsKTsKKwkJ CWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2VfZXhjbCkpCisJCQkJZG1hX2ZlbmNlX3B1 dChmZW5jZV9leGNsKTsKIAkJCWVsc2UKIAkJCQlmZW5jZSA9IGZlbmNlX2V4Y2w7CiAJCX0KQEAg LTQyNSwxMiArNDI3LDEyIEBAIGxvbmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9y Y3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCXJjdV9yZWFkX3VubG9jaygpOwog CWlmIChmZW5jZSkgewogCQlpZiAocmVhZF9zZXFjb3VudF9yZXRyeSgmb2JqLT5zZXEsIHNlcSkp IHsKLQkJCWZlbmNlX3B1dChmZW5jZSk7CisJCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAkJCWdv dG8gcmV0cnk7CiAJCX0KIAotCQlyZXQgPSBmZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIs IHJldCk7Ci0JCWZlbmNlX3B1dChmZW5jZSk7CisJCXJldCA9IGRtYV9mZW5jZV93YWl0X3RpbWVv dXQoZmVuY2UsIGludHIsIHJldCk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQlpZiAocmV0 ID4gMCAmJiB3YWl0X2FsbCAmJiAoaSArIDEgPCBzaGFyZWRfY291bnQpKQogCQkJZ290byByZXRy eTsKIAl9CkBAIC00NDQsMTggKzQ0NiwxOCBAQCBFWFBPUlRfU1lNQk9MX0dQTChyZXNlcnZhdGlv bl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdSk7CiAKIAogc3RhdGljIGlubGluZSBpbnQKLXJlc2Vy dmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3NpbmdsZShzdHJ1Y3QgZmVuY2UgKnBhc3NlZF9m ZW5jZSkKK3Jlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3NpbmdsZShzdHJ1Y3QgZG1h X2ZlbmNlICpwYXNzZWRfZmVuY2UpCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSwgKmxmZW5jZSA9 IHBhc3NlZF9mZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgKmxmZW5jZSA9IHBhc3Nl ZF9mZW5jZTsKIAlpbnQgcmV0ID0gMTsKIAotCWlmICghdGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdO QUxFRF9CSVQsICZsZmVuY2UtPmZsYWdzKSkgewotCQlmZW5jZSA9IGZlbmNlX2dldF9yY3UobGZl bmNlKTsKKwlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmxmZW5j ZS0+ZmxhZ3MpKSB7CisJCWZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3UobGZlbmNlKTsKIAkJaWYg KCFmZW5jZSkKIAkJCXJldHVybiAtMTsKIAotCQlyZXQgPSAhIWZlbmNlX2lzX3NpZ25hbGVkKGZl bmNlKTsKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0ID0gISFkbWFfZmVuY2VfaXNfc2lnbmFs ZWQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAl9CiAJcmV0dXJuIHJldDsKIH0K QEAgLTQ5Miw3ICs0OTQsNyBAQCBib29sIHJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVk X3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCiAJCQlzaGFyZWRfY291bnQgPSBm b2JqLT5zaGFyZWRfY291bnQ7CiAKIAkJZm9yIChpID0gMDsgaSA8IHNoYXJlZF9jb3VudDsgKytp KSB7Ci0JCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJl ZFtpXSk7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZShmb2Jq LT5zaGFyZWRbaV0pOwogCiAJCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxl ZF9zaW5nbGUoZmVuY2UpOwogCQkJaWYgKHJldCA8IDApCkBAIC01MDYsNyArNTA4LDcgQEAgYm9v bCByZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3Uoc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqb2JqLAogCX0KIAogCWlmICghc2hhcmVkX2NvdW50KSB7Ci0JCXN0cnVjdCBmZW5j ZSAqZmVuY2VfZXhjbCA9IHJjdV9kZXJlZmVyZW5jZShvYmotPmZlbmNlX2V4Y2wpOworCQlzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZV9leGNsID0gcmN1X2RlcmVmZXJlbmNlKG9iai0+ZmVuY2VfZXhj bCk7CiAKIAkJaWYgKGZlbmNlX2V4Y2wpIHsKIAkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF90 ZXN0X3NpZ25hbGVkX3NpbmdsZSgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zZXFuby1m ZW5jZS5jIGIvZHJpdmVycy9kbWEtYnVmL3NlcW5vLWZlbmNlLmMKaW5kZXggNzExMjdmOGYxNjI2 Li5mNDcxMTJhNjQ3NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9zZXFuby1mZW5jZS5j CisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zZXFuby1mZW5jZS5jCkBAIC0yMSwzNSArMjEsMzUgQEAK ICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFuby1mZW5jZS5o PgogCi1zdGF0aWMgY29uc3QgY2hhciAqc2Vxbm9fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqc2Vxbm9fZmVuY2VfZ2V0X2RyaXZl cl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBzZXFub19mZW5jZSAq c2Vxbm9fZmVuY2UgPSB0b19zZXFub19mZW5jZShmZW5jZSk7CiAKIAlyZXR1cm4gc2Vxbm9fZmVu Y2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIg KnNlcW5vX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0 aWMgY29uc3QgY2hhciAqc2Vxbm9fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpzZXFub19mZW5jZSA9IHRvX3Nl cW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBzZXFub19mZW5jZS0+b3BzLT5nZXRfdGltZWxp bmVfbmFtZShmZW5jZSk7CiB9CiAKLXN0YXRpYyBib29sIHNlcW5vX2VuYWJsZV9zaWduYWxpbmco c3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHNlcW5vX2VuYWJsZV9zaWduYWxpbmco c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJc3RydWN0IHNlcW5vX2ZlbmNlICpzZXFub19m ZW5jZSA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsKIAogCXJldHVybiBzZXFub19mZW5jZS0+b3Bz LT5lbmFibGVfc2lnbmFsaW5nKGZlbmNlKTsKIH0KIAotc3RhdGljIGJvb2wgc2Vxbm9fc2lnbmFs ZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHNlcW5vX3NpZ25hbGVkKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBzZXFub19mZW5jZSAqc2Vxbm9fZmVuY2Ug PSB0b19zZXFub19mZW5jZShmZW5jZSk7CiAKIAlyZXR1cm4gc2Vxbm9fZmVuY2UtPm9wcy0+c2ln bmFsZWQgJiYgc2Vxbm9fZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpOwogfQogCi1zdGF0aWMg dm9pZCBzZXFub19yZWxlYXNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBzZXFu b19yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBzZXFub19mZW5j ZSAqZiA9IHRvX3NlcW5vX2ZlbmNlKGZlbmNlKTsKIApAQCAtNTcsMTggKzU3LDE4IEBAIHN0YXRp YyB2b2lkIHNlcW5vX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKIAlpZiAoZi0+b3BzLT5y ZWxlYXNlKQogCQlmLT5vcHMtPnJlbGVhc2UoZmVuY2UpOwogCWVsc2UKLQkJZmVuY2VfZnJlZSgm Zi0+YmFzZSk7CisJCWRtYV9mZW5jZV9mcmVlKCZmLT5iYXNlKTsKIH0KIAotc3RhdGljIHNpZ25l ZCBsb25nIHNlcW5vX3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLAotCQkJCXNp Z25lZCBsb25nIHRpbWVvdXQpCitzdGF0aWMgc2lnbmVkIGxvbmcgc2Vxbm9fd2FpdChzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLAorCQkJICAgICAgc2lnbmVkIGxvbmcgdGltZW91 dCkKIHsKIAlzdHJ1Y3Qgc2Vxbm9fZmVuY2UgKmYgPSB0b19zZXFub19mZW5jZShmZW5jZSk7CiAK IAlyZXR1cm4gZi0+b3BzLT53YWl0KGZlbmNlLCBpbnRyLCB0aW1lb3V0KTsKIH0KIAotY29uc3Qg c3RydWN0IGZlbmNlX29wcyBzZXFub19mZW5jZV9vcHMgPSB7Citjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBzZXFub19mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IHNlcW5vX2Zl bmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBzZXFub19mZW5jZV9n ZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHNlcW5vX2VuYWJsZV9zaWdu YWxpbmcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jIGIvZHJpdmVycy9k bWEtYnVmL3N3X3N5bmMuYwppbmRleCA2MmU4ZTZkYzc5NTMuLjgyZTBjYTRkZDBjMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYworKysgYi9kcml2ZXJzL2RtYS1idWYvc3df c3luYy5jCkBAIC02OCw5ICs2OCw5IEBAIHN0cnVjdCBzd19zeW5jX2NyZWF0ZV9mZW5jZV9kYXRh IHsKIAogI2RlZmluZSBTV19TWU5DX0lPQ19JTkMJCQlfSU9XKFNXX1NZTkNfSU9DX01BR0lDLCAx LCBfX3UzMikKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgdGltZWxpbmVfZmVuY2Vf b3BzOworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHRpbWVsaW5lX2ZlbmNlX29w czsKIAotc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3luY19wdCAqZmVuY2VfdG9fc3luY19wdChzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3luY19wdCAqZG1hX2ZlbmNl X3RvX3N5bmNfcHQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGZlbmNlLT5vcHMg IT0gJnRpbWVsaW5lX2ZlbmNlX29wcykKIAkJcmV0dXJuIE5VTEw7CkBAIC05Myw3ICs5Myw3IEBA IHN0cnVjdCBzeW5jX3RpbWVsaW5lICpzeW5jX3RpbWVsaW5lX2NyZWF0ZShjb25zdCBjaGFyICpu YW1lKQogCQlyZXR1cm4gTlVMTDsKIAogCWtyZWZfaW5pdCgmb2JqLT5rcmVmKTsKLQlvYmotPmNv bnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOworCW9iai0+Y29udGV4dCA9IGRtYV9mZW5j ZV9jb250ZXh0X2FsbG9jKDEpOwogCXN0cmxjcHkob2JqLT5uYW1lLCBuYW1lLCBzaXplb2Yob2Jq LT5uYW1lKSk7CiAKIAlJTklUX0xJU1RfSEVBRCgmb2JqLT5jaGlsZF9saXN0X2hlYWQpOwpAQCAt MTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfdGltZWxpbmVfc2lnbmFsKHN0cnVjdCBz eW5jX3RpbWVsaW5lICpvYmosIHVuc2lnbmVkIGludCBpbmMpCiAKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUocHQsIG5leHQsICZvYmotPmFjdGl2ZV9saXN0X2hlYWQsCiAJCQkJIGFjdGl2ZV9s aXN0KSB7Ci0JCWlmIChmZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoJnB0LT5iYXNlKSkKKwkJaWYg KGRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoJnB0LT5iYXNlKSkKIAkJCWxpc3RfZGVsX2lu aXQoJnB0LT5hY3RpdmVfbGlzdCk7CiAJfQogCkBAIC0xNzksMzAgKzE3OSwzMCBAQCBzdGF0aWMg c3RydWN0IHN5bmNfcHQgKnN5bmNfcHRfY3JlYXRlKHN0cnVjdCBzeW5jX3RpbWVsaW5lICpvYmos IGludCBzaXplLAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm9iai0+Y2hpbGRfbGlzdF9sb2NrLCBm bGFncyk7CiAJc3luY190aW1lbGluZV9nZXQob2JqKTsKLQlmZW5jZV9pbml0KCZwdC0+YmFzZSwg JnRpbWVsaW5lX2ZlbmNlX29wcywgJm9iai0+Y2hpbGRfbGlzdF9sb2NrLAotCQkgICBvYmotPmNv bnRleHQsIHZhbHVlKTsKKwlkbWFfZmVuY2VfaW5pdCgmcHQtPmJhc2UsICZ0aW1lbGluZV9mZW5j ZV9vcHMsICZvYmotPmNoaWxkX2xpc3RfbG9jaywKKwkJICAgICAgIG9iai0+Y29udGV4dCwgdmFs dWUpOwogCWxpc3RfYWRkX3RhaWwoJnB0LT5jaGlsZF9saXN0LCAmb2JqLT5jaGlsZF9saXN0X2hl YWQpOwogCUlOSVRfTElTVF9IRUFEKCZwdC0+YWN0aXZlX2xpc3QpOwogCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJm9iai0+Y2hpbGRfbGlzdF9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIHB0OwogfQog Ci1zdGF0aWMgY29uc3QgY2hhciAqdGltZWxpbmVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqdGltZWxpbmVfZmVuY2VfZ2V0X2Ry aXZlcl9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVybiAic3dfc3luYyI7 CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp0aW1lbGluZV9mZW5jZV9nZXRfdGltZWxpbmVfbmFt ZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKnRpbWVsaW5lX2ZlbmNl X2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewotCXN0cnVjdCBz eW5jX3RpbWVsaW5lICpwYXJlbnQgPSBmZW5jZV9wYXJlbnQoZmVuY2UpOworCXN0cnVjdCBzeW5j X3RpbWVsaW5lICpwYXJlbnQgPSBkbWFfZmVuY2VfcGFyZW50KGZlbmNlKTsKIAogCXJldHVybiBw YXJlbnQtPm5hbWU7CiB9CiAKLXN0YXRpYyB2b2lkIHRpbWVsaW5lX2ZlbmNlX3JlbGVhc2Uoc3Ry dWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyB2b2lkIHRpbWVsaW5lX2ZlbmNlX3JlbGVhc2Uoc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IHN5bmNfcHQgKnB0ID0gZmVuY2VfdG9f c3luY19wdChmZW5jZSk7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGZlbmNlX3Bh cmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfcHQgKnB0ID0gZG1hX2ZlbmNlX3RvX3N5bmNfcHQo ZmVuY2UpOworCXN0cnVjdCBzeW5jX3RpbWVsaW5lICpwYXJlbnQgPSBkbWFfZmVuY2VfcGFyZW50 KGZlbmNlKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoZmVu Y2UtPmxvY2ssIGZsYWdzKTsKQEAgLTIxMiwyMCArMjEyLDIwIEBAIHN0YXRpYyB2b2lkIHRpbWVs aW5lX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKGZlbmNlLT5sb2NrLCBmbGFncyk7CiAKIAlzeW5jX3RpbWVsaW5lX3B1dChwYXJlbnQp OwotCWZlbmNlX2ZyZWUoZmVuY2UpOworCWRtYV9mZW5jZV9mcmVlKGZlbmNlKTsKIH0KIAotc3Rh dGljIGJvb2wgdGltZWxpbmVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyBib29sIHRpbWVsaW5lX2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl KQogewotCXN0cnVjdCBzeW5jX3RpbWVsaW5lICpwYXJlbnQgPSBmZW5jZV9wYXJlbnQoZmVuY2Up OworCXN0cnVjdCBzeW5jX3RpbWVsaW5lICpwYXJlbnQgPSBkbWFfZmVuY2VfcGFyZW50KGZlbmNl KTsKIAogCXJldHVybiAoZmVuY2UtPnNlcW5vID4gcGFyZW50LT52YWx1ZSkgPyBmYWxzZSA6IHRy dWU7CiB9CiAKLXN0YXRpYyBib29sIHRpbWVsaW5lX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3Ry dWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHRpbWVsaW5lX2ZlbmNlX2VuYWJsZV9zaWdu YWxpbmcoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IHN5bmNfcHQgKnB0ID0g ZmVuY2VfdG9fc3luY19wdChmZW5jZSk7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9 IGZlbmNlX3BhcmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfcHQgKnB0ID0gZG1hX2ZlbmNlX3Rv X3N5bmNfcHQoZmVuY2UpOworCXN0cnVjdCBzeW5jX3RpbWVsaW5lICpwYXJlbnQgPSBkbWFfZmVu Y2VfcGFyZW50KGZlbmNlKTsKIAogCWlmICh0aW1lbGluZV9mZW5jZV9zaWduYWxlZChmZW5jZSkp CiAJCXJldHVybiBmYWxzZTsKQEAgLTIzNCwyNiArMjM0LDI2IEBAIHN0YXRpYyBib29sIHRpbWVs aW5lX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKIAlyZXR1cm4g dHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgdGltZWxpbmVfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBm ZW5jZSAqZmVuY2UsCitzdGF0aWMgdm9pZCB0aW1lbGluZV9mZW5jZV92YWx1ZV9zdHIoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UsCiAJCQkJICAgIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7CiAJc25w cmludGYoc3RyLCBzaXplLCAiJWQiLCBmZW5jZS0+c2Vxbm8pOwogfQogCi1zdGF0aWMgdm9pZCB0 aW1lbGluZV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwKK3N0 YXRpYyB2b2lkIHRpbWVsaW5lX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSwKIAkJCQkJICAgICBjaGFyICpzdHIsIGludCBzaXplKQogewotCXN0cnVjdCBz eW5jX3RpbWVsaW5lICpwYXJlbnQgPSBmZW5jZV9wYXJlbnQoZmVuY2UpOworCXN0cnVjdCBzeW5j X3RpbWVsaW5lICpwYXJlbnQgPSBkbWFfZmVuY2VfcGFyZW50KGZlbmNlKTsKIAogCXNucHJpbnRm KHN0ciwgc2l6ZSwgIiVkIiwgcGFyZW50LT52YWx1ZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmVuY2Vfb3BzIHRpbWVsaW5lX2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1hX2ZlbmNlX29wcyB0aW1lbGluZV9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9 IHRpbWVsaW5lX2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSB0 aW1lbGluZV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHRp bWVsaW5lX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gdGltZWxpbmVfZmVu Y2Vfc2lnbmFsZWQsCi0JLndhaXQgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLndhaXQgPSBkbWFf ZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0gdGltZWxpbmVfZmVuY2VfcmVsZWFzZSwK IAkuZmVuY2VfdmFsdWVfc3RyID0gdGltZWxpbmVfZmVuY2VfdmFsdWVfc3RyLAogCS50aW1lbGlu ZV92YWx1ZV9zdHIgPSB0aW1lbGluZV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIsCkBAIC0zMTcs NyArMzE3LDcgQEAgc3RhdGljIGxvbmcgc3dfc3luY19pb2N0bF9jcmVhdGVfZmVuY2Uoc3RydWN0 IHN5bmNfdGltZWxpbmUgKm9iaiwKIAogCXN5bmNfZmlsZSA9IHN5bmNfZmlsZV9jcmVhdGUoJnB0 LT5iYXNlKTsKIAlpZiAoIXN5bmNfZmlsZSkgewotCQlmZW5jZV9wdXQoJnB0LT5iYXNlKTsKKwkJ ZG1hX2ZlbmNlX3B1dCgmcHQtPmJhc2UpOwogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVycjsK IAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5jIGIvZHJpdmVycy9k bWEtYnVmL3N5bmNfZGVidWcuYwppbmRleCAyZGQ0YzNkYjZjYWEuLjQ4YjIwZTM0ZmI2ZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuYworKysgYi9kcml2ZXJzL2RtYS1i dWYvc3luY19kZWJ1Zy5jCkBAIC03MSwxMiArNzEsMTMgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnN5 bmNfc3RhdHVzX3N0cihpbnQgc3RhdHVzKQogCXJldHVybiAiZXJyb3IiOwogfQogCi1zdGF0aWMg dm9pZCBzeW5jX3ByaW50X2ZlbmNlKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IGZlbmNlICpm ZW5jZSwgYm9vbCBzaG93KQorc3RhdGljIHZvaWQgc3luY19wcmludF9mZW5jZShzdHJ1Y3Qgc2Vx X2ZpbGUgKnMsCisJCQkgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIHNob3cpCiB7 CiAJaW50IHN0YXR1cyA9IDE7Ci0Jc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGZlbmNl X3BhcmVudChmZW5jZSk7CisJc3RydWN0IHN5bmNfdGltZWxpbmUgKnBhcmVudCA9IGRtYV9mZW5j ZV9wYXJlbnQoZmVuY2UpOwogCi0JaWYgKGZlbmNlX2lzX3NpZ25hbGVkX2xvY2tlZChmZW5jZSkp CisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoZmVuY2UpKQogCQlzdGF0dXMgPSBm ZW5jZS0+c3RhdHVzOwogCiAJc2VxX3ByaW50ZihzLCAiICAlcyVzZmVuY2UgJXMiLApAQCAtMTM1 LDEwICsxMzYsMTAgQEAgc3RhdGljIHZvaWQgc3luY19wcmludF9zeW5jX2ZpbGUoc3RydWN0IHNl cV9maWxlICpzLAogCWludCBpOwogCiAJc2VxX3ByaW50ZihzLCAiWyVwXSAlczogJXNcbiIsIHN5 bmNfZmlsZSwgc3luY19maWxlLT5uYW1lLAotCQkgICBzeW5jX3N0YXR1c19zdHIoIWZlbmNlX2lz X3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpKSk7CisJCSAgIHN5bmNfc3RhdHVzX3N0cighZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpKSk7CiAKLQlpZiAoZmVuY2VfaXNf YXJyYXkoc3luY19maWxlLT5mZW5jZSkpIHsKLQkJc3RydWN0IGZlbmNlX2FycmF5ICphcnJheSA9 IHRvX2ZlbmNlX2FycmF5KHN5bmNfZmlsZS0+ZmVuY2UpOworCWlmIChkbWFfZmVuY2VfaXNfYXJy YXkoc3luY19maWxlLT5mZW5jZSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkg PSB0b19kbWFfZmVuY2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CiAKIAkJZm9yIChpID0gMDsg aSA8IGFycmF5LT5udW1fZmVuY2VzOyArK2kpCiAJCQlzeW5jX3ByaW50X2ZlbmNlKHMsIGFycmF5 LT5mZW5jZXNbaV0sIHRydWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVi dWcuaCBiL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmgKaW5kZXggZDI2OWFhNjc4M2FhLi4y NmZlOGI5OTA3YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2RlYnVnLmgKKysr IGIvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuaApAQCAtMTUsNyArMTUsNyBAQAogCiAjaW5j bHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVk ZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2luY2x1 ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvc3luY19maWxlLmg+ CkBAIC00NSwxMCArNDUsOSBAQCBzdHJ1Y3Qgc3luY190aW1lbGluZSB7CiAJc3RydWN0IGxpc3Rf aGVhZAlzeW5jX3RpbWVsaW5lX2xpc3Q7CiB9OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBzeW5j X3RpbWVsaW5lICpmZW5jZV9wYXJlbnQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBpbmxp bmUgc3RydWN0IHN5bmNfdGltZWxpbmUgKmRtYV9mZW5jZV9wYXJlbnQoc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UpCiB7Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZS0+bG9jaywgc3RydWN0IHN5 bmNfdGltZWxpbmUsCi0JCQkgICAgY2hpbGRfbGlzdF9sb2NrKTsKKwlyZXR1cm4gY29udGFpbmVy X29mKGZlbmNlLT5sb2NrLCBzdHJ1Y3Qgc3luY190aW1lbGluZSwgY2hpbGRfbGlzdF9sb2NrKTsK IH0KIAogLyoqCkBAIC01OCw3ICs1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHN5bmNfdGlt ZWxpbmUgKmZlbmNlX3BhcmVudChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogICogQGFjdGl2ZV9saXN0 OiBzeW5jIHRpbWVsaW5lIGFjdGl2ZSBjaGlsZCdzIGxpc3QKICAqLwogc3RydWN0IHN5bmNfcHQg ewotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIGNoaWxkX2xpc3Q7CiAJc3RydWN0IGxpc3RfaGVhZCBhY3RpdmVfbGlzdDsKIH07 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMgYi9kcml2ZXJzL2RtYS1i dWYvc3luY19maWxlLmMKaW5kZXggMjM1ZjhhYzExM2NjLi42OWQ4ZWY5OGQzNGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYworKysgYi9kcml2ZXJzL2RtYS1idWYvc3lu Y19maWxlLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNf ZmlsZV9hbGxvYyh2b2lkKQogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCBmZW5jZV9j aGVja19jYl9mdW5jKHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2NiICpjYikKK3N0YXRp YyB2b2lkIGZlbmNlX2NoZWNrX2NiX2Z1bmMoc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRt YV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwogCkBAIC03 MSw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIGZlbmNlX2NoZWNrX2NiX2Z1bmMoc3RydWN0IGZlbmNl ICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogICogdGFrZXMgb3duZXJzaGlwIG9mIEBmZW5jZS4g VGhlIHN5bmNfZmlsZSBjYW4gYmUgcmVsZWFzZWQgd2l0aAogICogZnB1dChzeW5jX2ZpbGUtPmZp bGUpLiBSZXR1cm5zIHRoZSBzeW5jX2ZpbGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgogICov Ci1zdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfY3JlYXRlKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfY3JlYXRlKHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlKQogewogCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZTsKIApAQCAtNzksNyArNzksNyBA QCBzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfY3JlYXRlKHN0cnVjdCBmZW5jZSAqZmVuY2Up CiAJaWYgKCFzeW5jX2ZpbGUpCiAJCXJldHVybiBOVUxMOwogCi0Jc3luY19maWxlLT5mZW5jZSA9 IGZlbmNlX2dldChmZW5jZSk7CisJc3luY19maWxlLT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQoZmVu Y2UpOwogCiAJc25wcmludGYoc3luY19maWxlLT5uYW1lLCBzaXplb2Yoc3luY19maWxlLT5uYW1l KSwgIiVzLSVzJWxsdS0lZCIsCiAJCSBmZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25hbWUoZmVuY2Up LApAQCAtMTIxLDE2ICsxMjEsMTYgQEAgc3RhdGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmls ZV9mZGdldChpbnQgZmQpCiAgKiBFbnN1cmVzIEBmZCByZWZlcmVuY2VzIGEgdmFsaWQgc3luY19m aWxlIGFuZCByZXR1cm5zIGEgZmVuY2UgdGhhdAogICogcmVwcmVzZW50cyBhbGwgZmVuY2UgaW4g dGhlIHN5bmNfZmlsZS4gT24gZXJyb3IgTlVMTCBpcyByZXR1cm5lZC4KICAqLwotc3RydWN0IGZl bmNlICpzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGludCBmZCkKK3N0cnVjdCBkbWFfZmVuY2UgKnN5bmNf ZmlsZV9nZXRfZmVuY2UoaW50IGZkKQogewogCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZTsK LQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJc3lu Y19maWxlID0gc3luY19maWxlX2ZkZ2V0KGZkKTsKIAlpZiAoIXN5bmNfZmlsZSkKIAkJcmV0dXJu IE5VTEw7CiAKLQlmZW5jZSA9IGZlbmNlX2dldChzeW5jX2ZpbGUtPmZlbmNlKTsKKwlmZW5jZSA9 IGRtYV9mZW5jZV9nZXQoc3luY19maWxlLT5mZW5jZSk7CiAJZnB1dChzeW5jX2ZpbGUtPmZpbGUp OwogCiAJcmV0dXJuIGZlbmNlOwpAQCAtMTM4LDIyICsxMzgsMjMgQEAgc3RydWN0IGZlbmNlICpz eW5jX2ZpbGVfZ2V0X2ZlbmNlKGludCBmZCkKIEVYUE9SVF9TWU1CT0woc3luY19maWxlX2dldF9m ZW5jZSk7CiAKIHN0YXRpYyBpbnQgc3luY19maWxlX3NldF9mZW5jZShzdHJ1Y3Qgc3luY19maWxl ICpzeW5jX2ZpbGUsCi0JCQkgICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2VzLCBpbnQgbnVtX2Zl bmNlcykKKwkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLCBpbnQgbnVtX2ZlbmNl cykKIHsKLQlzdHJ1Y3QgZmVuY2VfYXJyYXkgKmFycmF5OworCXN0cnVjdCBkbWFfZmVuY2VfYXJy YXkgKmFycmF5OwogCiAJLyoKIAkgKiBUaGUgcmVmZXJlbmNlIGZvciB0aGUgZmVuY2VzIGluIHRo ZSBuZXcgc3luY19maWxlIGFuZCBoZWxkCiAJICogaW4gYWRkX2ZlbmNlKCkgZHVyaW5nIHRoZSBt ZXJnZSBwcm9jZWR1cmUsIHNvIGZvciBudW1fZmVuY2VzID09IDEKIAkgKiB3ZSBhbHJlYWR5IG93 biBhIG5ldyByZWZlcmVuY2UgdG8gdGhlIGZlbmNlLiBGb3IgbnVtX2ZlbmNlID4gMQotCSAqIHdl IG93biB0aGUgcmVmZXJlbmNlIG9mIHRoZSBmZW5jZV9hcnJheSBjcmVhdGlvbi4KKwkgKiB3ZSBv d24gdGhlIHJlZmVyZW5jZSBvZiB0aGUgZG1hX2ZlbmNlX2FycmF5IGNyZWF0aW9uLgogCSAqLwog CWlmIChudW1fZmVuY2VzID09IDEpIHsKIAkJc3luY19maWxlLT5mZW5jZSA9IGZlbmNlc1swXTsK IAkJa2ZyZWUoZmVuY2VzKTsKIAl9IGVsc2UgewotCQlhcnJheSA9IGZlbmNlX2FycmF5X2NyZWF0 ZShudW1fZmVuY2VzLCBmZW5jZXMsCi0JCQkJCSAgIGZlbmNlX2NvbnRleHRfYWxsb2MoMSksIDEs IGZhbHNlKTsKKwkJYXJyYXkgPSBkbWFfZmVuY2VfYXJyYXlfY3JlYXRlKG51bV9mZW5jZXMsIGZl bmNlcywKKwkJCQkJICAgICAgIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpLAorCQkJCQkgICAg ICAgMSwgZmFsc2UpOwogCQlpZiAoIWFycmF5KQogCQkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTE2 MywxMCArMTY0LDExIEBAIHN0YXRpYyBpbnQgc3luY19maWxlX3NldF9mZW5jZShzdHJ1Y3Qgc3lu Y19maWxlICpzeW5jX2ZpbGUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmVuY2Ug KipnZXRfZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwgaW50ICpudW1fZmVuY2Vz KQorc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKipnZXRfZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUg KnN5bmNfZmlsZSwKKwkJCQkgICAgIGludCAqbnVtX2ZlbmNlcykKIHsKLQlpZiAoZmVuY2VfaXNf YXJyYXkoc3luY19maWxlLT5mZW5jZSkpIHsKLQkJc3RydWN0IGZlbmNlX2FycmF5ICphcnJheSA9 IHRvX2ZlbmNlX2FycmF5KHN5bmNfZmlsZS0+ZmVuY2UpOworCWlmIChkbWFfZmVuY2VfaXNfYXJy YXkoc3luY19maWxlLT5mZW5jZSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkg PSB0b19kbWFfZmVuY2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CiAKIAkJKm51bV9mZW5jZXMg PSBhcnJheS0+bnVtX2ZlbmNlczsKIAkJcmV0dXJuIGFycmF5LT5mZW5jZXM7CkBAIC0xNzYsMTIg KzE3OCwxMyBAQCBzdGF0aWMgc3RydWN0IGZlbmNlICoqZ2V0X2ZlbmNlcyhzdHJ1Y3Qgc3luY19m aWxlICpzeW5jX2ZpbGUsIGludCAqbnVtX2ZlbmNlcykKIAlyZXR1cm4gJnN5bmNfZmlsZS0+ZmVu Y2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZF9mZW5jZShzdHJ1Y3QgZmVuY2UgKipmZW5jZXMsIGlu dCAqaSwgc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyB2b2lkIGFkZF9mZW5jZShzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZmVuY2VzLAorCQkgICAgICBpbnQgKmksIHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlKQogewogCWZlbmNlc1sqaV0gPSBmZW5jZTsKIAotCWlmICghZmVuY2VfaXNfc2lnbmFsZWQo ZmVuY2UpKSB7Ci0JCWZlbmNlX2dldChmZW5jZSk7CisJaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFs ZWQoZmVuY2UpKSB7CisJCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCQkoKmkpKys7CiAJfQogfQpA QCAtMjAwLDcgKzIwMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfbWVy Z2UoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5bmNfZmlsZSAqYSwKIAkJCQkJIHN0cnVjdCBz eW5jX2ZpbGUgKmIpCiB7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwotCXN0cnVjdCBm ZW5jZSAqKmZlbmNlcywgKipuZmVuY2VzLCAqKmFfZmVuY2VzLCAqKmJfZmVuY2VzOworCXN0cnVj dCBkbWFfZmVuY2UgKipmZW5jZXMsICoqbmZlbmNlcywgKiphX2ZlbmNlcywgKipiX2ZlbmNlczsK IAlpbnQgaSwgaV9hLCBpX2IsIG51bV9mZW5jZXMsIGFfbnVtX2ZlbmNlcywgYl9udW1fZmVuY2Vz OwogCiAJc3luY19maWxlID0gc3luY19maWxlX2FsbG9jKCk7CkBAIC0yMjYsOCArMjI5LDggQEAg c3RhdGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9tZXJnZShjb25zdCBjaGFyICpuYW1l LCBzdHJ1Y3Qgc3luY19maWxlICphLAogCSAqIGFuZCBzeW5jX2ZpbGVfY3JlYXRlLCB0aGlzIGlz IGEgcmVhc29uYWJsZSBhc3N1bXB0aW9uLgogCSAqLwogCWZvciAoaSA9IGlfYSA9IGlfYiA9IDA7 IGlfYSA8IGFfbnVtX2ZlbmNlcyAmJiBpX2IgPCBiX251bV9mZW5jZXM7ICkgewotCQlzdHJ1Y3Qg ZmVuY2UgKnB0X2EgPSBhX2ZlbmNlc1tpX2FdOwotCQlzdHJ1Y3QgZmVuY2UgKnB0X2IgPSBiX2Zl bmNlc1tpX2JdOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpwdF9hID0gYV9mZW5jZXNbaV9hXTsKKwkJ c3RydWN0IGRtYV9mZW5jZSAqcHRfYiA9IGJfZmVuY2VzW2lfYl07CiAKIAkJaWYgKHB0X2EtPmNv bnRleHQgPCBwdF9iLT5jb250ZXh0KSB7CiAJCQlhZGRfZmVuY2UoZmVuY2VzLCAmaSwgcHRfYSk7 CkBAIC0yNTUsNyArMjU4LDcgQEAgc3RhdGljIHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZV9t ZXJnZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3luY19maWxlICphLAogCQlhZGRfZmVuY2Uo ZmVuY2VzLCAmaSwgYl9mZW5jZXNbaV9iXSk7CiAKIAlpZiAoaSA9PSAwKQotCQlmZW5jZXNbaSsr XSA9IGZlbmNlX2dldChhX2ZlbmNlc1swXSk7CisJCWZlbmNlc1tpKytdID0gZG1hX2ZlbmNlX2dl dChhX2ZlbmNlc1swXSk7CiAKIAlpZiAobnVtX2ZlbmNlcyA+IGkpIHsKIAkJbmZlbmNlcyA9IGty ZWFsbG9jKGZlbmNlcywgaSAqIHNpemVvZigqZmVuY2VzKSwKQEAgLTI4Niw4ICsyODksOCBAQCBz dGF0aWMgdm9pZCBzeW5jX2ZpbGVfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJCQkJCSAgICAg a3JlZik7CiAKIAlpZiAodGVzdF9iaXQoUE9MTF9FTkFCTEVELCAmc3luY19maWxlLT5mZW5jZS0+ ZmxhZ3MpKQotCQlmZW5jZV9yZW1vdmVfY2FsbGJhY2soc3luY19maWxlLT5mZW5jZSwgJnN5bmNf ZmlsZS0+Y2IpOwotCWZlbmNlX3B1dChzeW5jX2ZpbGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3Jl bW92ZV9jYWxsYmFjayhzeW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYik7CisJZG1hX2Zl bmNlX3B1dChzeW5jX2ZpbGUtPmZlbmNlKTsKIAlrZnJlZShzeW5jX2ZpbGUpOwogfQogCkBAIC0z MDcsMTIgKzMxMCwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHN5bmNfZmlsZV9wb2xsKHN0cnVj dCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQogCiAJaWYgKCFwb2xsX2RvZXNfbm90X3dh aXQod2FpdCkgJiYKIAkgICAgIXRlc3RfYW5kX3NldF9iaXQoUE9MTF9FTkFCTEVELCAmc3luY19m aWxlLT5mZW5jZS0+ZmxhZ3MpKSB7Ci0JCWlmIChmZW5jZV9hZGRfY2FsbGJhY2soc3luY19maWxl LT5mZW5jZSwgJnN5bmNfZmlsZS0+Y2IsCi0JCQkJICAgICAgIGZlbmNlX2NoZWNrX2NiX2Z1bmMp IDwgMCkKKwkJaWYgKGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soc3luY19maWxlLT5mZW5jZSwgJnN5 bmNfZmlsZS0+Y2IsCisJCQkJCSAgIGZlbmNlX2NoZWNrX2NiX2Z1bmMpIDwgMCkKIAkJCXdha2Vf dXBfYWxsKCZzeW5jX2ZpbGUtPndxKTsKIAl9CiAKLQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQo c3luY19maWxlLT5mZW5jZSkgPyBQT0xMSU4gOiAwOworCXJldHVybiBkbWFfZmVuY2VfaXNfc2ln bmFsZWQoc3luY19maWxlLT5mZW5jZSkgPyBQT0xMSU4gOiAwOwogfQogCiBzdGF0aWMgbG9uZyBz eW5jX2ZpbGVfaW9jdGxfbWVyZ2Uoc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLApAQCAtMzcw LDE0ICszNzMsMTQgQEAgc3RhdGljIGxvbmcgc3luY19maWxlX2lvY3RsX21lcmdlKHN0cnVjdCBz eW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBzeW5j X2ZpbGxfZmVuY2VfaW5mbyhzdHJ1Y3QgZmVuY2UgKmZlbmNlLAorc3RhdGljIHZvaWQgc3luY19m aWxsX2ZlbmNlX2luZm8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCQkJIHN0cnVjdCBzeW5j X2ZlbmNlX2luZm8gKmluZm8pCiB7CiAJc3RybGNweShpbmZvLT5vYmpfbmFtZSwgZmVuY2UtPm9w cy0+Z2V0X3RpbWVsaW5lX25hbWUoZmVuY2UpLAogCQlzaXplb2YoaW5mby0+b2JqX25hbWUpKTsK IAlzdHJsY3B5KGluZm8tPmRyaXZlcl9uYW1lLCBmZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25hbWUo ZmVuY2UpLAogCQlzaXplb2YoaW5mby0+ZHJpdmVyX25hbWUpKTsKLQlpZiAoZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlpbmZv LT5zdGF0dXMgPSBmZW5jZS0+c3RhdHVzID49IDAgPyAxIDogZmVuY2UtPnN0YXR1czsKIAllbHNl CiAJCWluZm8tPnN0YXR1cyA9IDA7CkBAIC0zODksNyArMzkyLDcgQEAgc3RhdGljIGxvbmcgc3lu Y19maWxlX2lvY3RsX2ZlbmNlX2luZm8oc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogewog CXN0cnVjdCBzeW5jX2ZpbGVfaW5mbyBpbmZvOwogCXN0cnVjdCBzeW5jX2ZlbmNlX2luZm8gKmZl bmNlX2luZm8gPSBOVUxMOwotCXN0cnVjdCBmZW5jZSAqKmZlbmNlczsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICoqZmVuY2VzOwogCV9fdTMyIHNpemU7CiAJaW50IG51bV9mZW5jZXMsIHJldCwgaTsKIApA QCAtNDI5LDcgKzQzMiw3IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9pbmZv KHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAogbm9fZmVuY2VzOgogCXN0cmxjcHkoaW5m by5uYW1lLCBzeW5jX2ZpbGUtPm5hbWUsIHNpemVvZihpbmZvLm5hbWUpKTsKLQlpbmZvLnN0YXR1 cyA9IGZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOworCWluZm8uc3RhdHVzID0g ZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOwogCWluZm8ubnVtX2ZlbmNl cyA9IG51bV9mZW5jZXM7CiAKIAlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywg JmluZm8sIHNpemVvZihpbmZvKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4 IDAzOWI1N2U0NjQ0Yy4uMjgzZDA1OTI3ZDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRl IDxsaW51eC9pbnRlcnZhbF90cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+Ci0j aW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAog I2luY2x1ZGUgPHR0bS90dG1fYm9fYXBpLmg+CiAjaW5jbHVkZSA8dHRtL3R0bV9ib19kcml2ZXIu aD4KQEAgLTM3OCw3ICszNzgsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlX2RyaXZlciB7CiAJc3Ry dWN0IHRpbWVyX2xpc3QJCWZhbGxiYWNrX3RpbWVyOwogCXVuc2lnbmVkCQkJbnVtX2ZlbmNlc19t YXNrOwogCXNwaW5sb2NrX3QJCQlsb2NrOwotCXN0cnVjdCBmZW5jZQkJCSoqZmVuY2VzOworCXN0 cnVjdCBkbWFfZmVuY2UJCSoqZmVuY2VzOwogfTsKIAogLyogc29tZSBzcGVjaWFsIHZhbHVlcyBm b3IgdGhlIG93bmVyIGZpZWxkICovCkBAIC0zOTksNyArMzk5LDcgQEAgaW50IGFtZGdwdV9mZW5j ZV9kcml2ZXJfc3RhcnRfcmluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCQkJICAgdW5z aWduZWQgaXJxX3R5cGUpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3N1c3BlbmQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3Jlc3VtZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Ci1pbnQgYW1kZ3B1X2ZlbmNlX2VtaXQoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CitpbnQgYW1kZ3B1X2Zl bmNlX2VtaXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVu Y2UpOwogdm9pZCBhbWRncHVfZmVuY2VfcHJvY2VzcyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp OwogaW50IGFtZGdwdV9mZW5jZV93YWl0X2VtcHR5KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7 CiB1bnNpZ25lZCBhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZChzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpOwpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyB7 CiBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhIHsKIAkvKiBwcm90ZWN0ZWQgYnkgYm8gYmVpbmcgcmVzZXJ2 ZWQgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkCQlib19saXN0OwotCXN0cnVjdCBmZW5jZQkJICAgICAg ICAqbGFzdF9wdF91cGRhdGU7CisJc3RydWN0IGRtYV9mZW5jZQkgICAgICAgICpsYXN0X3B0X3Vw ZGF0ZTsKIAl1bnNpZ25lZAkJCXJlZl9jb3VudDsKIAogCS8qIHByb3RlY3RlZCBieSB2bSBtdXRl eCBhbmQgc3BpbmxvY2sgKi8KQEAgLTU0Myw3ICs1NDMsNyBAQCBzdHJ1Y3QgYW1kZ3B1X3NhX2Jv IHsKIAlzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIJKm1hbmFnZXI7CiAJdW5zaWduZWQJCQlzb2Zm c2V0OwogCXVuc2lnbmVkCQkJZW9mZnNldDsKLQlzdHJ1Y3QgZmVuY2UJCSAgICAgICAgKmZlbmNl OworCXN0cnVjdCBkbWFfZmVuY2UJICAgICAgICAqZmVuY2U7CiB9OwogCiAvKgpAQCAtNTY2LDE5 ICs1NjYsMTkgQEAgaW50IGFtZGdwdV9tb2RlX2R1bWJfbW1hcChzdHJ1Y3QgZHJtX2ZpbGUgKmZp bHAsCiAgKi8KIHN0cnVjdCBhbWRncHVfc3luYyB7CiAJREVDTEFSRV9IQVNIVEFCTEUoZmVuY2Vz LCA0KTsKLQlzdHJ1Y3QgZmVuY2UJICAgICAgICAqbGFzdF92bV91cGRhdGU7CisJc3RydWN0IGRt YV9mZW5jZSAgICAgICAgKmxhc3Rfdm1fdXBkYXRlOwogfTsKIAogdm9pZCBhbWRncHVfc3luY19j cmVhdGUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKTsKIGludCBhbWRncHVfc3luY19mZW5jZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAotCQkg ICAgICBzdHJ1Y3QgZmVuY2UgKmYpOworCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKIGlu dCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkgICAgIHN0 cnVjdCBhbWRncHVfc3luYyAqc3luYywKIAkJICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpyZXN2LAogCQkgICAgIHZvaWQgKm93bmVyKTsKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNf cGVla19mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCitzdHJ1Y3QgZG1hX2ZlbmNlICph bWRncHVfc3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKIAkJCQkgICAg IHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7Ci1zdHJ1Y3QgZmVuY2UgKmFtZGdwdV9zeW5jX2dl dF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMpOworc3RydWN0IGRtYV9mZW5jZSAqYW1k Z3B1X3N5bmNfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYyk7CiB2b2lkIGFtZGdw dV9zeW5jX2ZyZWUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKTsKIGludCBhbWRncHVfc3luY19p bml0KHZvaWQpOwogdm9pZCBhbWRncHVfc3luY19maW5pKHZvaWQpOwpAQCAtNzAzLDEwICs3MDMs MTAgQEAgc3RydWN0IGFtZGdwdV9mbGlwX3dvcmsgewogCXVpbnQ2NF90CQkJYmFzZTsKIAlzdHJ1 Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKIAlzdHJ1Y3QgYW1kZ3B1X2JvCQkq b2xkX2FibzsKLQlzdHJ1Y3QgZmVuY2UJCQkqZXhjbDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCQkqZXhj bDsKIAl1bnNpZ25lZAkJCXNoYXJlZF9jb3VudDsKLQlzdHJ1Y3QgZmVuY2UJCQkqKnNoYXJlZDsK LQlzdHJ1Y3QgZmVuY2VfY2IJCQljYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCQkqKnNoYXJlZDsKKwlz dHJ1Y3QgZG1hX2ZlbmNlX2NiCQljYjsKIAlib29sCQkJCWFzeW5jOwogfTsKIApAQCAtNzQyLDcg Kzc0Miw3IEBAIHZvaWQgYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgYW1kZ3B1X2pv YiAqam9iKTsKIHZvaWQgYW1kZ3B1X2pvYl9mcmVlKHN0cnVjdCBhbWRncHVfam9iICpqb2IpOwog aW50IGFtZGdwdV9qb2Jfc3VibWl0KHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIAkJICAgICAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSwg dm9pZCAqb3duZXIsCi0JCSAgICAgIHN0cnVjdCBmZW5jZSAqKmYpOworCQkgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZik7CiAKIHN0cnVjdCBhbWRncHVfcmluZyB7CiAJc3RydWN0IGFtZGdwdV9k ZXZpY2UJCSphZGV2OwpAQCAtODQ0LDcgKzg0NCw3IEBAIHN0cnVjdCBhbWRncHVfdm0gewogCS8q IGNvbnRhaW5zIHRoZSBwYWdlIGRpcmVjdG9yeSAqLwogCXN0cnVjdCBhbWRncHVfYm8JKnBhZ2Vf ZGlyZWN0b3J5OwogCXVuc2lnbmVkCQltYXhfcGRlX3VzZWQ7Ci0Jc3RydWN0IGZlbmNlCQkqcGFn ZV9kaXJlY3RvcnlfZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkqcGFnZV9kaXJlY3RvcnlfZmVu Y2U7CiAJdWludDY0X3QJCWxhc3RfZXZpY3Rpb25fY291bnRlcjsKIAogCS8qIGFycmF5IG9mIHBh Z2UgdGFibGVzLCBvbmUgZm9yIGVhY2ggcGFnZSBkaXJlY3RvcnkgZW50cnkgKi8KQEAgLTg2NSwx NCArODY1LDE0IEBAIHN0cnVjdCBhbWRncHVfdm0gewogCiBzdHJ1Y3QgYW1kZ3B1X3ZtX2lkIHsK IAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Ci0Jc3RydWN0IGZlbmNlCQkqZmlyc3Q7CisJc3RydWN0 IGRtYV9mZW5jZQkqZmlyc3Q7CiAJc3RydWN0IGFtZGdwdV9zeW5jCWFjdGl2ZTsKLQlzdHJ1Y3Qg ZmVuY2UJCSpsYXN0X2ZsdXNoOworCXN0cnVjdCBkbWFfZmVuY2UJKmxhc3RfZmx1c2g7CiAJYXRv bWljNjRfdAkJb3duZXI7CiAKIAl1aW50NjRfdAkJcGRfZ3B1X2FkZHI7CiAJLyogbGFzdCBmbHVz aGVkIFBEL1BUIHVwZGF0ZSAqLwotCXN0cnVjdCBmZW5jZQkJKmZsdXNoZWRfdXBkYXRlczsKKwlz dHJ1Y3QgZG1hX2ZlbmNlCSpmbHVzaGVkX3VwZGF0ZXM7CiAKIAl1aW50MzJfdCAgICAgICAgICAg ICAgICBjdXJyZW50X2dwdV9yZXNldF9jb3VudDsKIApAQCAtOTIxLDcgKzkyMSw3IEBAIHZvaWQg YW1kZ3B1X3ZtX2dldF9wdF9ib3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBh bWRncHVfdm0gKnZtLAogdm9pZCBhbWRncHVfdm1fbW92ZV9wdF9ib3NfaW5fbHJ1KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCQkJCSAgc3RydWN0IGFtZGdwdV92bSAqdm0pOwogaW50IGFt ZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsCi0JCSAgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywgc3RydWN0IGZlbmNlICpm ZW5jZSwKKwkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLCBzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSwKIAkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7CiBpbnQgYW1kZ3B1X3Zt X2ZsdXNoKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYik7 CiB2b2lkIGFtZGdwdV92bV9yZXNldF9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5z aWduZWQgdm1faWQpOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX3Jtdihz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogc3RydWN0IGFtZGdwdV9jdHhfcmluZyB7CiAJ dWludDY0X3QJCXNlcXVlbmNlOwotCXN0cnVjdCBmZW5jZQkJKipmZW5jZXM7CisJc3RydWN0IGRt YV9mZW5jZQkqKmZlbmNlczsKIAlzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eQllbnRpdHk7CiB9Owog CkBAIC05NjYsNyArOTY2LDcgQEAgc3RydWN0IGFtZGdwdV9jdHggewogCXN0cnVjdCBhbWRncHVf ZGV2aWNlICAgICphZGV2OwogCXVuc2lnbmVkCQlyZXNldF9jb3VudGVyOwogCXNwaW5sb2NrX3QJ CXJpbmdfbG9jazsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAqKmZlbmNlczsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlCSoqZmVuY2VzOwogCXN0cnVjdCBhbWRncHVfY3R4X3JpbmcJcmluZ3NbQU1ER1BV X01BWF9SSU5HU107CiAJYm9vbCBwcmVhbWJsZV9wcmVzZW50ZWQ7CiB9OwpAQCAtOTgyLDggKzk4 Miw4IEBAIHN0cnVjdCBhbWRncHVfY3R4ICphbWRncHVfY3R4X2dldChzdHJ1Y3QgYW1kZ3B1X2Zw cml2ICpmcHJpdiwgdWludDMyX3QgaWQpOwogaW50IGFtZGdwdV9jdHhfcHV0KHN0cnVjdCBhbWRn cHVfY3R4ICpjdHgpOwogCiB1aW50NjRfdCBhbWRncHVfY3R4X2FkZF9mZW5jZShzdHJ1Y3QgYW1k Z3B1X2N0eCAqY3R4LCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkgICAgICBzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKTsKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X2N0eF9nZXRfZmVuY2Uoc3RydWN0 IGFtZGdwdV9jdHggKmN0eCwKKwkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKK3N0 cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9jdHhfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4ICpj dHgsCiAJCQkJICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50NjRfdCBzZXEpOwogCiBp bnQgYW1kZ3B1X2N0eF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLApA QCAtMTE4MSwxMCArMTE4MSwxMCBAQCBzdHJ1Y3QgYW1kZ3B1X2dmeCB7CiBpbnQgYW1kZ3B1X2li X2dldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJ CSAgdW5zaWduZWQgc2l6ZSwgc3RydWN0IGFtZGdwdV9pYiAqaWIpOwogdm9pZCBhbWRncHVfaWJf ZnJlZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9pYiAqaWIsCi0J CSAgICBzdHJ1Y3QgZmVuY2UgKmYpOworCQkgICAgc3RydWN0IGRtYV9mZW5jZSAqZik7CiBpbnQg YW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgbnVt X2licywKLQkJICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBzdHJ1Y3QgZmVuY2UgKmxhc3Rf dm1fdXBkYXRlLAotCQkgICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYiwgc3RydWN0IGZlbmNl ICoqZik7CisJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwgc3RydWN0IGRtYV9mZW5jZSAq bGFzdF92bV91cGRhdGUsCisJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZik7CiBpbnQgYW1kZ3B1X2liX3Bvb2xfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV9pYl9wb29sX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpOwogaW50IGFtZGdwdV9pYl9yaW5nX3Rlc3RzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KTsKQEAgLTEyMjUsNyArMTIyNSw3IEBAIHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyIHsK IAlzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3QJCSpib19saXN0OwogCXN0cnVjdCBhbWRncHVfYm9fbGlz dF9lbnRyeQl2bV9wZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQl2YWxpZGF0ZWQ7Ci0Jc3RydWN0IGZl bmNlCQkJKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UJCSpmZW5jZTsKIAl1aW50NjRfdAkJCWJ5 dGVzX21vdmVkX3RocmVzaG9sZDsKIAl1aW50NjRfdAkJCWJ5dGVzX21vdmVkOwogCXN0cnVjdCBh bWRncHVfYm9fbGlzdF9lbnRyeQkqZXZpY3RhYmxlOwpAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgc3Ry dWN0IGFtZGdwdV9qb2IgewogCXN0cnVjdCBhbWRncHVfcmluZwkqcmluZzsKIAlzdHJ1Y3QgYW1k Z3B1X3N5bmMJc3luYzsKIAlzdHJ1Y3QgYW1kZ3B1X2liCSppYnM7Ci0Jc3RydWN0IGZlbmNlCQkq ZmVuY2U7IC8qIHRoZSBodyBmZW5jZSAqLworCXN0cnVjdCBkbWFfZmVuY2UJKmZlbmNlOyAvKiB0 aGUgaHcgZmVuY2UgKi8KIAl1aW50MzJfdAkJcHJlYW1ibGVfc3RhdHVzOwogCXVpbnQzMl90CQlu dW1faWJzOwogCXZvaWQJCQkqb3duZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfYmVuY2htYXJrLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYmVuY2htYXJrLmMKaW5kZXggMzQ1MzA1MjM1MzQ5Li5jYzk3ZWVlOTMyMjYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9iZW5jaG1hcmsuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYmVuY2htYXJrLmMKQEAgLTMzLDcg KzMzLDcgQEAgc3RhdGljIGludCBhbWRncHVfYmVuY2htYXJrX2RvX21vdmUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIHNpemUsCiB7CiAJdW5zaWduZWQgbG9uZyBzdGFydF9q aWZmaWVzOwogCXVuc2lnbmVkIGxvbmcgZW5kX2ppZmZpZXM7Ci0Jc3RydWN0IGZlbmNlICpmZW5j ZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCWludCBpLCByOwog CiAJc3RhcnRfamlmZmllcyA9IGppZmZpZXM7CkBAIC00MywxNyArNDMsMTcgQEAgc3RhdGljIGlu dCBhbWRncHVfYmVuY2htYXJrX2RvX21vdmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVu c2lnbmVkIHNpemUsCiAJCQkJICAgICAgIGZhbHNlKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGV4aXRf ZG9fbW92ZTsKLQkJciA9IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJciA9IGRtYV9mZW5j ZV93YWl0KGZlbmNlLCBmYWxzZSk7CiAJCWlmIChyKQogCQkJZ290byBleGl0X2RvX21vdmU7Ci0J CWZlbmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCX0KIAllbmRfamlm ZmllcyA9IGppZmZpZXM7CiAJciA9IGppZmZpZXNfdG9fbXNlY3MoZW5kX2ppZmZpZXMgLSBzdGFy dF9qaWZmaWVzKTsKIAogZXhpdF9kb19tb3ZlOgogCWlmIChmZW5jZSkKLQkJZmVuY2VfcHV0KGZl bmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIHI7CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggYjBmNmU2OTU3NTM2Li41ZDU4MjI2NWU5 MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC03MTksNyArNzE5 LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKHN0cnVjdCBhbWRncHVfY3Nf cGFyc2VyICpwYXJzZXIsIGludCBlcnJvciwgYm8KIAkJdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRp b24oJnBhcnNlci0+dGlja2V0LAogCQkJCQkgICAmcGFyc2VyLT52YWxpZGF0ZWQpOwogCX0KLQlm ZW5jZV9wdXQocGFyc2VyLT5mZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChwYXJzZXItPmZlbmNlKTsK IAogCWlmIChwYXJzZXItPmN0eCkKIAkJYW1kZ3B1X2N0eF9wdXQocGFyc2VyLT5jdHgpOwpAQCAt NzU2LDcgKzc1Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX3ZtX3VwZGF0ZV9wdGUoc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAKIAlpZiAocC0+Ym9fbGlzdCkgewogCQlmb3IgKGkgPSAw OyBpIDwgcC0+Ym9fbGlzdC0+bnVtX2VudHJpZXM7IGkrKykgewotCQkJc3RydWN0IGZlbmNlICpm OworCQkJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAogCQkJLyogaWdub3JlIGR1cGxpY2F0ZXMgKi8K IAkJCWJvID0gcC0+Ym9fbGlzdC0+YXJyYXlbaV0ucm9iajsKQEAgLTk1Niw3ICs5NTYsNyBAQCBz dGF0aWMgaW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAJCWZvciAoaiA9IDA7IGogPCBudW1fZGVwczsgKytqKSB7CiAJCQlzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmc7CiAJCQlzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4OwotCQkJc3RydWN0IGZlbmNl ICpmZW5jZTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCQlyID0gYW1kZ3B1X2Nz X2dldF9yaW5nKGFkZXYsIGRlcHNbal0uaXBfdHlwZSwKIAkJCQkJICAgICAgIGRlcHNbal0uaXBf aW5zdGFuY2UsCkBAIC05NzgsNyArOTc4LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfZGVwZW5k ZW5jaWVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJfSBlbHNlIGlmIChmZW5jZSkg ewogCQkJCXIgPSBhbWRncHVfc3luY19mZW5jZShhZGV2LCAmcC0+am9iLT5zeW5jLAogCQkJCQkJ ICAgICAgZmVuY2UpOwotCQkJCWZlbmNlX3B1dChmZW5jZSk7CisJCQkJZG1hX2ZlbmNlX3B1dChm ZW5jZSk7CiAJCQkJYW1kZ3B1X2N0eF9wdXQoY3R4KTsKIAkJCQlpZiAocikKIAkJCQkJcmV0dXJu IHI7CkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXQoc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAKIAlqb2ItPm93bmVyID0gcC0+ZmlscDsKIAlqb2It PmZlbmNlX2N0eCA9IGVudGl0eS0+ZmVuY2VfY29udGV4dDsKLQlwLT5mZW5jZSA9IGZlbmNlX2dl dCgmam9iLT5iYXNlLnNfZmVuY2UtPmZpbmlzaGVkKTsKKwlwLT5mZW5jZSA9IGRtYV9mZW5jZV9n ZXQoJmpvYi0+YmFzZS5zX2ZlbmNlLT5maW5pc2hlZCk7CiAJY3MtPm91dC5oYW5kbGUgPSBhbWRn cHVfY3R4X2FkZF9mZW5jZShwLT5jdHgsIHJpbmcsIHAtPmZlbmNlKTsKIAlqb2ItPnVmX3NlcXVl bmNlID0gY3MtPm91dC5oYW5kbGU7CiAJYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhqb2IpOwpA QCAtMTA5MSw3ICsxMDkxLDcgQEAgaW50IGFtZGdwdV9jc193YWl0X2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gYW1kZ3B1 X2dlbV90aW1lb3V0KHdhaXQtPmluLnRpbWVvdXQpOwogCXN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZyA9IE5VTEw7CiAJc3RydWN0IGFtZGdwdV9jdHggKmN0eDsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNl OworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCWxvbmcgcjsKIAogCXIgPSBhbWRncHVfY3Nf Z2V0X3JpbmcoYWRldiwgd2FpdC0+aW4uaXBfdHlwZSwgd2FpdC0+aW4uaXBfaW5zdGFuY2UsCkBA IC0xMTA3LDggKzExMDcsOCBAQCBpbnQgYW1kZ3B1X2NzX3dhaXRfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoSVNfRVJSKGZlbmNlKSkKIAkJciA9IFBUUl9F UlIoZmVuY2UpOwogCWVsc2UgaWYgKGZlbmNlKSB7Ci0JCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQo ZmVuY2UsIHRydWUsIHRpbWVvdXQpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlyID0gZG1hX2Zl bmNlX3dhaXRfdGltZW91dChmZW5jZSwgdHJ1ZSwgdGltZW91dCk7CisJCWRtYV9mZW5jZV9wdXQo ZmVuY2UpOwogCX0gZWxzZQogCQlyID0gMTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2N0eC5jCmluZGV4IGE1ZTJmY2JlZjBmMC4uOTliYmM4NjAzMjJmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCkBAIC0zNSw3ICszNSw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1 X2N0eCAqY3R4KQogCWtyZWZfaW5pdCgmY3R4LT5yZWZjb3VudCk7CiAJc3Bpbl9sb2NrX2luaXQo JmN0eC0+cmluZ19sb2NrKTsKIAljdHgtPmZlbmNlcyA9IGtjYWxsb2MoYW1kZ3B1X3NjaGVkX2pv YnMgKiBBTURHUFVfTUFYX1JJTkdTLAotCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBmZW5jZSopLCBH RlBfS0VSTkVMKTsKKwkJCSAgICAgIHNpemVvZihzdHJ1Y3QgZG1hX2ZlbmNlKiksIEdGUF9LRVJO RUwpOwogCWlmICghY3R4LT5mZW5jZXMpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC03OSw3ICs3 OSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jdHhfZmluaShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4 KQogCiAJZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkKIAkJZm9yIChqID0g MDsgaiA8IGFtZGdwdV9zY2hlZF9qb2JzOyArK2opCi0JCQlmZW5jZV9wdXQoY3R4LT5yaW5nc1tp XS5mZW5jZXNbal0pOworCQkJZG1hX2ZlbmNlX3B1dChjdHgtPnJpbmdzW2ldLmZlbmNlc1tqXSk7 CiAJa2ZyZWUoY3R4LT5mZW5jZXMpOwogCWN0eC0+ZmVuY2VzID0gTlVMTDsKIApAQCAtMjQxLDM5 ICsyNDEsMzkgQEAgaW50IGFtZGdwdV9jdHhfcHV0KHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCiB9 CiAKIHVpbnQ2NF90IGFtZGdwdV9jdHhfYWRkX2ZlbmNlKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgs IHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2Up CisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2N0 eF9yaW5nICpjcmluZyA9ICYgY3R4LT5yaW5nc1tyaW5nLT5pZHhdOwogCXVpbnQ2NF90IHNlcSA9 IGNyaW5nLT5zZXF1ZW5jZTsKIAl1bnNpZ25lZCBpZHggPSAwOwotCXN0cnVjdCBmZW5jZSAqb3Ro ZXIgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKm90aGVyID0gTlVMTDsKIAogCWlkeCA9IHNl cSAmIChhbWRncHVfc2NoZWRfam9icyAtIDEpOwogCW90aGVyID0gY3JpbmctPmZlbmNlc1tpZHhd OwogCWlmIChvdGhlcikgewogCQlzaWduZWQgbG9uZyByOwotCQlyID0gZmVuY2Vfd2FpdF90aW1l b3V0KG90aGVyLCBmYWxzZSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOworCQlyID0gZG1hX2ZlbmNl X3dhaXRfdGltZW91dChvdGhlciwgZmFsc2UsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAkJaWYg KHIgPCAwKQogCQkJRFJNX0VSUk9SKCJFcnJvciAoJWxkKSB3YWl0aW5nIGZvciBmZW5jZSFcbiIs IHIpOwogCX0KIAotCWZlbmNlX2dldChmZW5jZSk7CisJZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAK IAlzcGluX2xvY2soJmN0eC0+cmluZ19sb2NrKTsKIAljcmluZy0+ZmVuY2VzW2lkeF0gPSBmZW5j ZTsKIAljcmluZy0+c2VxdWVuY2UrKzsKIAlzcGluX3VubG9jaygmY3R4LT5yaW5nX2xvY2spOwog Ci0JZmVuY2VfcHV0KG90aGVyKTsKKwlkbWFfZmVuY2VfcHV0KG90aGVyKTsKIAogCXJldHVybiBz ZXE7CiB9CiAKLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X2N0eF9nZXRfZmVuY2Uoc3RydWN0IGFtZGdw dV9jdHggKmN0eCwKLQkJCQkgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IHNl cSkKK3N0cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9jdHhfZ2V0X2ZlbmNlKHN0cnVjdCBhbWRncHVf Y3R4ICpjdHgsCisJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDY0X3Qg c2VxKQogewogCXN0cnVjdCBhbWRncHVfY3R4X3JpbmcgKmNyaW5nID0gJiBjdHgtPnJpbmdzW3Jp bmctPmlkeF07Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKIAogCXNwaW5fbG9jaygmY3R4LT5yaW5nX2xvY2spOwogCkBAIC0yODgsNyArMjg4LDcgQEAg c3RydWN0IGZlbmNlICphbWRncHVfY3R4X2dldF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4 LAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlmZW5jZSA9IGZlbmNlX2dldChjcmluZy0+ZmVuY2Vz W3NlcSAmIChhbWRncHVfc2NoZWRfam9icyAtIDEpXSk7CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0 KGNyaW5nLT5mZW5jZXNbc2VxICYgKGFtZGdwdV9zY2hlZF9qb2JzIC0gMSldKTsKIAlzcGluX3Vu bG9jaygmY3R4LT5yaW5nX2xvY2spOwogCiAJcmV0dXJuIGZlbmNlOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4IGI0ZjRhOTIzOTA2OS4uMDI2MmI0M2M4 ZjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCkBAIC0x NTk5LDcgKzE1OTksNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAogCWFkZXYtPnZtX21hbmFnZXIudm1fcHRlX2Z1bmNzID0gTlVMTDsKIAlhZGV2 LT52bV9tYW5hZ2VyLnZtX3B0ZV9udW1fcmluZ3MgPSAwOwogCWFkZXYtPmdhcnQuZ2FydF9mdW5j cyA9IE5VTEw7Ci0JYWRldi0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoQU1E R1BVX01BWF9SSU5HUyk7CisJYWRldi0+ZmVuY2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0 X2FsbG9jKEFNREdQVV9NQVhfUklOR1MpOwogCiAJYWRldi0+c21jX3JyZWcgPSAmYW1kZ3B1X2lu dmFsaWRfcnJlZzsKIAlhZGV2LT5zbWNfd3JlZyA9ICZhbWRncHVfaW52YWxpZF93cmVnOwpAQCAt MjE5Myw3ICsyMTkzLDcgQEAgYm9vbCBhbWRncHVfbmVlZF9iYWNrdXAoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiBzdGF0aWMgaW50IGFtZGdwdV9yZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3co c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCSAgIHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywKIAkJCQkJICAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCi0JCQkJCSAgIHN0cnVjdCBmZW5j ZSAqKmZlbmNlKQorCQkJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJdWludDMy X3QgZG9tYWluOwogCWludCByOwpAQCAtMjMxMiwzMCArMjMxMiwzMCBAQCBpbnQgYW1kZ3B1X2dw dV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYgKG5lZWRfZnVsbF9yZXNl dCAmJiBhbWRncHVfbmVlZF9iYWNrdXAoYWRldikpIHsKIAkJCXN0cnVjdCBhbWRncHVfcmluZyAq cmluZyA9IGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3Jpbmc7CiAJCQlzdHJ1Y3QgYW1kZ3B1X2Jv ICpibywgKnRtcDsKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMLCAqbmV4dCA9IE5VTEw7 CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEwsICpuZXh0ID0gTlVMTDsKIAogCQkJ RFJNX0lORk8oInJlY292ZXIgdnJhbSBibyBmcm9tIHNoYWRvd1xuIik7CiAJCQltdXRleF9sb2Nr KCZhZGV2LT5zaGFkb3dfbGlzdF9sb2NrKTsKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShi bywgdG1wLCAmYWRldi0+c2hhZG93X2xpc3QsIHNoYWRvd19saXN0KSB7CiAJCQkJYW1kZ3B1X3Jl Y292ZXJfdnJhbV9mcm9tX3NoYWRvdyhhZGV2LCByaW5nLCBibywgJm5leHQpOwogCQkJCWlmIChm ZW5jZSkgewotCQkJCQlyID0gZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCQkJCQlyID0gZG1h X2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJCQkJaWYgKHIpIHsKIAkJCQkJCVdBUk4ociwg InJlY292ZXJ5IGZyb20gc2hhZG93IGlzbid0IGNvbWxldGVkXG4iKTsKIAkJCQkJCWJyZWFrOwog CQkJCQl9CiAJCQkJfQogCi0JCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCQlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAkJCQlmZW5jZSA9IG5leHQ7CiAJCQl9CiAJCQltdXRleF91bmxvY2soJmFkZXYt PnNoYWRvd19saXN0X2xvY2spOwogCQkJaWYgKGZlbmNlKSB7Ci0JCQkJciA9IGZlbmNlX3dhaXQo ZmVuY2UsIGZhbHNlKTsKKwkJCQlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKIAkJ CQlpZiAocikKIAkJCQkJV0FSTihyLCAicmVjb3ZlcnkgZnJvbSBzaGFkb3cgaXNuJ3QgY29tbGV0 ZWRcbiIpOwogCQkJfQotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCQl9CiAJCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKIAkJ CXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYtPnJpbmdzW2ldOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKaW5kZXggMDgzZTJiNDI5ODcyLi4wNzVj MGQ3ZGIyMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXku YwpAQCAtMzUsMjkgKzM1LDI5IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgog I2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgogCi1zdGF0aWMgdm9pZCBhbWRncHVfZmxpcF9jYWxs YmFjayhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBh bWRncHVfZmxpcF9jYWxsYmFjayhzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNl X2NiICpjYikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2ZsaXBfd29yayAqd29yayA9CiAJCWNvbnRhaW5l cl9vZihjYiwgc3RydWN0IGFtZGdwdV9mbGlwX3dvcmssIGNiKTsKIAotCWZlbmNlX3B1dChmKTsK KwlkbWFfZmVuY2VfcHV0KGYpOwogCXNjaGVkdWxlX3dvcmsoJndvcmstPmZsaXBfd29yay53b3Jr KTsKIH0KIAogc3RhdGljIGJvb2wgYW1kZ3B1X2ZsaXBfaGFuZGxlX2ZlbmNlKHN0cnVjdCBhbWRn cHVfZmxpcF93b3JrICp3b3JrLAotCQkJCSAgICAgc3RydWN0IGZlbmNlICoqZikKKwkJCQkgICAg IHN0cnVjdCBkbWFfZmVuY2UgKipmKQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U9ICpmOworCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlPSAqZjsKIAogCWlmIChmZW5jZSA9PSBOVUxMKQogCQlyZXR1 cm4gZmFsc2U7CiAKIAkqZiA9IE5VTEw7CiAKLQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhmZW5j ZSwgJndvcmstPmNiLCBhbWRncHVfZmxpcF9jYWxsYmFjaykpCisJaWYgKCFkbWFfZmVuY2VfYWRk X2NhbGxiYWNrKGZlbmNlLCAmd29yay0+Y2IsIGFtZGdwdV9mbGlwX2NhbGxiYWNrKSkKIAkJcmV0 dXJuIHRydWU7CiAKLQlmZW5jZV9wdXQoZmVuY2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwog CXJldHVybiBmYWxzZTsKIH0KIApAQCAtMjQ0LDkgKzI0NCw5IEBAIGludCBhbWRncHVfY3J0Y19w YWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogY2xlYW51cDoKIAlhbWRn cHVfYm9fdW5yZWYoJndvcmstPm9sZF9hYm8pOwotCWZlbmNlX3B1dCh3b3JrLT5leGNsKTsKKwlk bWFfZmVuY2VfcHV0KHdvcmstPmV4Y2wpOwogCWZvciAoaSA9IDA7IGkgPCB3b3JrLT5zaGFyZWRf Y291bnQ7ICsraSkKLQkJZmVuY2VfcHV0KHdvcmstPnNoYXJlZFtpXSk7CisJCWRtYV9mZW5jZV9w dXQod29yay0+c2hhcmVkW2ldKTsKIAlrZnJlZSh3b3JrLT5zaGFyZWQpOwogCWtmcmVlKHdvcmsp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCmluZGV4IDNhMmU0 MmY0Yjg5Ny4uNTc1NTJjNzllYzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZmVuY2UuYwpAQCAtNDgsNyArNDgsNyBAQAogICovCiAKIHN0cnVjdCBhbWRncHVfZmVuY2Ug ewotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCS8qIFJC LCBETUEsIGV0Yy4gKi8KIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcJCSpyaW5nOwpAQCAtNzMsOCArNzMs OCBAQCB2b2lkIGFtZGdwdV9mZW5jZV9zbGFiX2Zpbmkodm9pZCkKIC8qCiAgKiBDYXN0IGhlbHBl cgogICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBhbWRncHVfZmVuY2Vfb3BzOwot c3RhdGljIGlubGluZSBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICp0b19hbWRncHVfZmVuY2Uoc3RydWN0 IGZlbmNlICpmKQorc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGFtZGdwdV9mZW5j ZV9vcHM7CitzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZmVuY2UgKnRvX2FtZGdwdV9mZW5j ZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBhbWRncHVfZmVuY2UgKl9fZiA9IGNv bnRhaW5lcl9vZihmLCBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlLCBiYXNlKTsKIApAQCAtMTMwLDExICsx MzAsMTEgQEAgc3RhdGljIHUzMiBhbWRncHVfZmVuY2VfcmVhZChzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcpCiAgKiBFbWl0cyBhIGZlbmNlIGNvbW1hbmQgb24gdGhlIHJlcXVlc3RlZCByaW5nIChh bGwgYXNpY3MpLgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1FTk9NRU0gb24gZmFpbHVyZS4K ICAqLwotaW50IGFtZGdwdV9mZW5jZV9lbWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3Ry dWN0IGZlbmNlICoqZikKK2ludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICpmZW5jZTsKLQlzdHJ1Y3Qg ZmVuY2UgKm9sZCwgKipwdHI7CisJc3RydWN0IGRtYV9mZW5jZSAqb2xkLCAqKnB0cjsKIAl1aW50 MzJfdCBzZXE7CiAKIAlmZW5jZSA9IGttZW1fY2FjaGVfYWxsb2MoYW1kZ3B1X2ZlbmNlX3NsYWIs IEdGUF9LRVJORUwpOwpAQCAtMTQzLDEwICsxNDMsMTAgQEAgaW50IGFtZGdwdV9mZW5jZV9lbWl0 KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGZlbmNlICoqZikKIAogCXNlcSA9ICsr cmluZy0+ZmVuY2VfZHJ2LnN5bmNfc2VxOwogCWZlbmNlLT5yaW5nID0gcmluZzsKLQlmZW5jZV9p bml0KCZmZW5jZS0+YmFzZSwgJmFtZGdwdV9mZW5jZV9vcHMsCi0JCSAgICZyaW5nLT5mZW5jZV9k cnYubG9jaywKLQkJICAgYWRldi0+ZmVuY2VfY29udGV4dCArIHJpbmctPmlkeCwKLQkJICAgc2Vx KTsKKwlkbWFfZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZhbWRncHVfZmVuY2Vfb3BzLAorCQkg ICAgICAgJnJpbmctPmZlbmNlX2Rydi5sb2NrLAorCQkgICAgICAgYWRldi0+ZmVuY2VfY29udGV4 dCArIHJpbmctPmlkeCwKKwkJICAgICAgIHNlcSk7CiAJYW1kZ3B1X3JpbmdfZW1pdF9mZW5jZShy aW5nLCByaW5nLT5mZW5jZV9kcnYuZ3B1X2FkZHIsCiAJCQkgICAgICAgc2VxLCBBTURHUFVfRkVO Q0VfRkxBR19JTlQpOwogCkBAIC0xNTUsMTIgKzE1NSwxMiBAQCBpbnQgYW1kZ3B1X2ZlbmNlX2Vt aXQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZmVuY2UgKipmKQogCSAqIGVtaXR0 aW5nIHRoZSBmZW5jZSB3b3VsZCBtZXNzIHVwIHRoZSBoYXJkd2FyZSByaW5nIGJ1ZmZlci4KIAkg Ki8KIAlvbGQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpwdHIsIDEpOwotCWlmIChvbGQg JiYgIWZlbmNlX2lzX3NpZ25hbGVkKG9sZCkpIHsKKwlpZiAob2xkICYmICFkbWFfZmVuY2VfaXNf c2lnbmFsZWQob2xkKSkgewogCQlEUk1fSU5GTygicmN1IHNsb3QgaXMgYnVzeVxuIik7Ci0JCWZl bmNlX3dhaXQob2xkLCBmYWxzZSk7CisJCWRtYV9mZW5jZV93YWl0KG9sZCwgZmFsc2UpOwogCX0K IAotCXJjdV9hc3NpZ25fcG9pbnRlcigqcHRyLCBmZW5jZV9nZXQoJmZlbmNlLT5iYXNlKSk7CisJ cmN1X2Fzc2lnbl9wb2ludGVyKCpwdHIsIGRtYV9mZW5jZV9nZXQoJmZlbmNlLT5iYXNlKSk7CiAK IAkqZiA9ICZmZW5jZS0+YmFzZTsKIApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgYW1kZ3B1X2Zl bmNlX3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCXNlcSAmPSBkcnYtPm51bV9m ZW5jZXNfbWFzazsKIAogCWRvIHsKLQkJc3RydWN0IGZlbmNlICpmZW5jZSwgKipwdHI7CisJCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCAqKnB0cjsKIAogCQkrK2xhc3Rfc2VxOwogCQlsYXN0X3Nl cSAmPSBkcnYtPm51bV9mZW5jZXNfbWFzazsKQEAgLTIyNCwxMyArMjI0LDEzIEBAIHZvaWQgYW1k Z3B1X2ZlbmNlX3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCQlpZiAoIWZlbmNl KQogCQkJY29udGludWU7CiAKLQkJciA9IGZlbmNlX3NpZ25hbChmZW5jZSk7CisJCXIgPSBkbWFf ZmVuY2Vfc2lnbmFsKGZlbmNlKTsKIAkJaWYgKCFyKQotCQkJRkVOQ0VfVFJBQ0UoZmVuY2UsICJz aWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4iKTsKKwkJCURNQV9GRU5DRV9UUkFDRShmZW5jZSwg InNpZ25hbGVkIGZyb20gaXJxIGNvbnRleHRcbiIpOwogCQllbHNlCiAJCQlCVUcoKTsKIAotCQlm ZW5jZV9wdXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAl9IHdoaWxlIChsYXN0 X3NlcSAhPSBzZXEpOwogfQogCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1 X2ZlbmNlX2ZhbGxiYWNrKHVuc2lnbmVkIGxvbmcgYXJnKQogaW50IGFtZGdwdV9mZW5jZV93YWl0 X2VtcHR5KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsKIAl1aW50NjRfdCBzZXEgPSBBQ0NF U1NfT05DRShyaW5nLT5mZW5jZV9kcnYuc3luY19zZXEpOwotCXN0cnVjdCBmZW5jZSAqZmVuY2Us ICoqcHRyOworCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCAqKnB0cjsKIAlpbnQgcjsKIAogCWlm ICghc2VxKQpAQCAtMjY5LDE0ICsyNjksMTQgQEAgaW50IGFtZGdwdV9mZW5jZV93YWl0X2VtcHR5 KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAlwdHIgPSAmcmluZy0+ZmVuY2VfZHJ2LmZlbmNl c1tzZXEgJiByaW5nLT5mZW5jZV9kcnYubnVtX2ZlbmNlc19tYXNrXTsKIAlyY3VfcmVhZF9sb2Nr KCk7CiAJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoKnB0cik7Ci0JaWYgKCFmZW5jZSB8fCAhZmVu Y2VfZ2V0X3JjdShmZW5jZSkpIHsKKwlpZiAoIWZlbmNlIHx8ICFkbWFfZmVuY2VfZ2V0X3JjdShm ZW5jZSkpIHsKIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCXJldHVybiAwOwogCX0KIAlyY3VfcmVh ZF91bmxvY2soKTsKIAotCXIgPSBmZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7Ci0JZmVuY2VfcHV0 KGZlbmNlKTsKKwlyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwlkbWFfZmVuY2Vf cHV0KGZlbmNlKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAtNDUyLDcgKzQ1Miw3IEBAIHZvaWQgYW1k Z3B1X2ZlbmNlX2RyaXZlcl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlhbWRf c2NoZWRfZmluaSgmcmluZy0+c2NoZWQpOwogCQlkZWxfdGltZXJfc3luYygmcmluZy0+ZmVuY2Vf ZHJ2LmZhbGxiYWNrX3RpbWVyKTsKIAkJZm9yIChqID0gMDsgaiA8PSByaW5nLT5mZW5jZV9kcnYu bnVtX2ZlbmNlc19tYXNrOyArK2opCi0JCQlmZW5jZV9wdXQocmluZy0+ZmVuY2VfZHJ2LmZlbmNl c1tqXSk7CisJCQlkbWFfZmVuY2VfcHV0KHJpbmctPmZlbmNlX2Rydi5mZW5jZXNbal0pOwogCQlr ZnJlZShyaW5nLT5mZW5jZV9kcnYuZmVuY2VzKTsKIAkJcmluZy0+ZmVuY2VfZHJ2LmZlbmNlcyA9 IE5VTEw7CiAJCXJpbmctPmZlbmNlX2Rydi5pbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtNTQxLDEy ICs1NDEsMTIgQEAgdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX2ZvcmNlX2NvbXBsZXRpb24oc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKiBDb21tb24gZmVuY2UgaW1wbGVtZW50YXRpb24K ICAqLwogCi1zdGF0aWMgY29uc3QgY2hhciAqYW1kZ3B1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZShz dHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmFtZGdwdV9mZW5jZV9nZXRf ZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJhbWRncHUi OwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqYW1kZ3B1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1l KHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICphbWRncHVfZmVuY2VfZ2V0X3Rp bWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2ZlbmNl ICpmZW5jZSA9IHRvX2FtZGdwdV9mZW5jZShmKTsKIAlyZXR1cm4gKGNvbnN0IGNoYXIgKilmZW5j ZS0+cmluZy0+bmFtZTsKQEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqYW1k Z3B1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKICAqIHRvIGZlbmNl X3F1ZXVlIHRoYXQgY2hlY2tzIGlmIHRoaXMgZmVuY2UgaXMgc2lnbmFsZWQsIGFuZCBpZiBzbyBp dAogICogc2lnbmFscyB0aGUgZmVuY2UgYW5kIHJlbW92ZXMgaXRzZWxmLgogICovCi1zdGF0aWMg Ym9vbCBhbWRncHVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0 aWMgYm9vbCBhbWRncHVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpm KQogewogCXN0cnVjdCBhbWRncHVfZmVuY2UgKmZlbmNlID0gdG9fYW1kZ3B1X2ZlbmNlKGYpOwog CXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGZlbmNlLT5yaW5nOwpAQCAtNTY4LDcgKzU2OCw3 IEBAIHN0YXRpYyBib29sIGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5j ZSAqZikKIAlpZiAoIXRpbWVyX3BlbmRpbmcoJnJpbmctPmZlbmNlX2Rydi5mYWxsYmFja190aW1l cikpCiAJCWFtZGdwdV9mZW5jZV9zY2hlZHVsZV9mYWxsYmFjayhyaW5nKTsKIAotCUZFTkNFX1RS QUNFKCZmZW5jZS0+YmFzZSwgImFybWVkIG9uIHJpbmcgJWkhXG4iLCByaW5nLT5pZHgpOworCURN QV9GRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJhcm1lZCBvbiByaW5nICVpIVxuIiwgcmluZy0+ aWR4KTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtNTgyLDcgKzU4Miw3IEBAIHN0YXRpYyBib29s IGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKICAqLwogc3Rh dGljIHZvaWQgYW1kZ3B1X2ZlbmNlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpCiB7Ci0Jc3Ry dWN0IGZlbmNlICpmID0gY29udGFpbmVyX29mKHJjdSwgc3RydWN0IGZlbmNlLCByY3UpOworCXN0 cnVjdCBkbWFfZmVuY2UgKmYgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgZG1hX2ZlbmNlLCBy Y3UpOwogCXN0cnVjdCBhbWRncHVfZmVuY2UgKmZlbmNlID0gdG9fYW1kZ3B1X2ZlbmNlKGYpOwog CWttZW1fY2FjaGVfZnJlZShhbWRncHVfZmVuY2Vfc2xhYiwgZmVuY2UpOwogfQpAQCAtNTk1LDE2 ICs1OTUsMTYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2ZlbmNlX2ZyZWUoc3RydWN0IHJjdV9oZWFk ICpyY3UpCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSByZWZlcmVuY2UgY291 bnQgYmVjb21lcyB6ZXJvLgogICogSXQganVzdCBSQ1Ugc2NoZWR1bGVzIGZyZWVpbmcgdXAgdGhl IGZlbmNlLgogICovCi1zdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZmVu Y2UgKmYpCitzdGF0aWMgdm9pZCBhbWRncHVfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmKQogewogCWNhbGxfcmN1KCZmLT5yY3UsIGFtZGdwdV9mZW5jZV9mcmVlKTsKIH0KIAotc3Rh dGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kZ3B1X2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBhbWRncHVfZmVuY2Vfb3BzID0gewogCS5nZXRfZHJp dmVyX25hbWUgPSBhbWRncHVfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVf bmFtZSA9IGFtZGdwdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGlu ZyA9IGFtZGdwdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLAotCS53YWl0ID0gZmVuY2VfZGVmYXVs dF93YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IGFt ZGdwdV9mZW5jZV9yZWxlYXNlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2liLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf aWIuYwppbmRleCA2YTZjODZjOWMxNjkuLmMzNjcyZGZjZmQ2YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2liLmMKQEAgLTg5LDcgKzg5LDcgQEAgaW50IGFtZGdwdV9pYl9nZXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogICogRnJl ZSBhbiBJQiAoYWxsIGFzaWNzKS4KICAqLwogdm9pZCBhbWRncHVfaWJfZnJlZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9pYiAqaWIsCi0JCSAgICBzdHJ1Y3QgZmVu Y2UgKmYpCisJCSAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCWFtZGdwdV9zYV9ib19mcmVl KGFkZXYsICZpYi0+c2FfYm8sIGYpOwogfQpAQCAtMTE2LDggKzExNiw4IEBAIHZvaWQgYW1kZ3B1 X2liX2ZyZWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfaWIgKmli LAogICogdG8gU0kgdGhlcmUgd2FzIGp1c3QgYSBERSBJQi4KICAqLwogaW50IGFtZGdwdV9pYl9z Y2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMsCi0JCSAg ICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYnMsIHN0cnVjdCBmZW5jZSAqbGFzdF92bV91cGRhdGUs Ci0JCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBzdHJ1Y3QgZmVuY2UgKipmKQorCQkg ICAgICAgc3RydWN0IGFtZGdwdV9pYiAqaWJzLCBzdHJ1Y3QgZG1hX2ZlbmNlICpsYXN0X3ZtX3Vw ZGF0ZSwKKwkJICAgICAgIHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBkbWFfZmVuY2Ug KipmKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1 Y3QgYW1kZ3B1X2liICppYiA9ICZpYnNbMF07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfam9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfam9iLmMKaW5kZXggOGM1ODA3OTk0MDczLi5hMGRlNjI4NmM0NTMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMKQEAgLTgxLDcgKzgxLDcgQEAgaW50IGFtZGdwdV9q b2JfYWxsb2Nfd2l0aF9pYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgc2l6 ZSwKIAogdm9pZCBhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBhbWRncHVfam9iICpq b2IpCiB7Ci0Jc3RydWN0IGZlbmNlICpmOworCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJdW5zaWdu ZWQgaTsKIAogCS8qIHVzZSBzY2hlZCBmZW5jZSBpZiBhdmFpbGFibGUgKi8KQEAgLTk1LDcgKzk1 LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2pvYl9mcmVlX2NiKHN0cnVjdCBhbWRfc2NoZWRfam9i ICpzX2pvYikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iID0gY29udGFpbmVyX29mKHNfam9i LCBzdHJ1Y3QgYW1kZ3B1X2pvYiwgYmFzZSk7CiAKLQlmZW5jZV9wdXQoam9iLT5mZW5jZSk7CisJ ZG1hX2ZlbmNlX3B1dChqb2ItPmZlbmNlKTsKIAlhbWRncHVfc3luY19mcmVlKCZqb2ItPnN5bmMp OwogCWtmcmVlKGpvYik7CiB9CkBAIC0xMDQsMTQgKzEwNCwxNCBAQCB2b2lkIGFtZGdwdV9qb2Jf ZnJlZShzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQogewogCWFtZGdwdV9qb2JfZnJlZV9yZXNvdXJj ZXMoam9iKTsKIAotCWZlbmNlX3B1dChqb2ItPmZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGpvYi0+ ZmVuY2UpOwogCWFtZGdwdV9zeW5jX2ZyZWUoJmpvYi0+c3luYyk7CiAJa2ZyZWUoam9iKTsKIH0K IAogaW50IGFtZGdwdV9qb2Jfc3VibWl0KHN0cnVjdCBhbWRncHVfam9iICpqb2IsIHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywKIAkJICAgICAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0 eSwgdm9pZCAqb3duZXIsCi0JCSAgICAgIHN0cnVjdCBmZW5jZSAqKmYpCisJCSAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKipmKQogewogCWludCByOwogCWpvYi0+cmluZyA9IHJpbmc7CkBAIC0xMjUs MTkgKzEyNSwxOSBAQCBpbnQgYW1kZ3B1X2pvYl9zdWJtaXQoc3RydWN0IGFtZGdwdV9qb2IgKmpv Yiwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCiAJam9iLT5vd25lciA9IG93bmVyOwogCWpv Yi0+ZmVuY2VfY3R4ID0gZW50aXR5LT5mZW5jZV9jb250ZXh0OwotCSpmID0gZmVuY2VfZ2V0KCZq b2ItPmJhc2Uuc19mZW5jZS0+ZmluaXNoZWQpOworCSpmID0gZG1hX2ZlbmNlX2dldCgmam9iLT5i YXNlLnNfZmVuY2UtPmZpbmlzaGVkKTsKIAlhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKGpvYik7 CiAJYW1kX3NjaGVkX2VudGl0eV9wdXNoX2pvYigmam9iLT5iYXNlKTsKIAogCXJldHVybiAwOwog fQogCi1zdGF0aWMgc3RydWN0IGZlbmNlICphbWRncHVfam9iX2RlcGVuZGVuY3koc3RydWN0IGFt ZF9zY2hlZF9qb2IgKnNjaGVkX2pvYikKK3N0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVf am9iX2RlcGVuZGVuY3koc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIHsKIAlzdHJ1 Y3QgYW1kZ3B1X2pvYiAqam9iID0gdG9fYW1kZ3B1X2pvYihzY2hlZF9qb2IpOwogCXN0cnVjdCBh bWRncHVfdm0gKnZtID0gam9iLT52bTsKIAotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBhbWRncHVf c3luY19nZXRfZmVuY2UoJmpvYi0+c3luYyk7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBh bWRncHVfc3luY19nZXRfZmVuY2UoJmpvYi0+c3luYyk7CiAKIAlpZiAoZmVuY2UgPT0gTlVMTCAm JiB2bSAmJiAham9iLT52bV9pZCkgewogCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBqb2It PnJpbmc7CkBAIC0xNTUsOSArMTU1LDkgQEAgc3RhdGljIHN0cnVjdCBmZW5jZSAqYW1kZ3B1X2pv Yl9kZXBlbmRlbmN5KHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJcmV0dXJuIGZl bmNlOwogfQogCi1zdGF0aWMgc3RydWN0IGZlbmNlICphbWRncHVfam9iX3J1bihzdHJ1Y3QgYW1k X3NjaGVkX2pvYiAqc2NoZWRfam9iKQorc3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKmFtZGdwdV9q b2JfcnVuKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiB7Ci0Jc3RydWN0IGZlbmNl ICpmZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCXN0cnVj dCBhbWRncHVfam9iICpqb2I7CiAJaW50IHI7CiAKQEAgLTE3Niw4ICsxNzYsOCBAQCBzdGF0aWMg c3RydWN0IGZlbmNlICphbWRncHVfam9iX3J1bihzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRf am9iKQogCQlEUk1fRVJST1IoIkVycm9yIHNjaGVkdWxpbmcgSUJzICglZClcbiIsIHIpOwogCiAJ LyogaWYgZ3B1IHJlc2V0LCBodyBmZW5jZSB3aWxsIGJlIHJlcGxhY2VkIGhlcmUgKi8KLQlmZW5j ZV9wdXQoam9iLT5mZW5jZSk7Ci0Jam9iLT5mZW5jZSA9IGZlbmNlX2dldChmZW5jZSk7CisJZG1h X2ZlbmNlX3B1dChqb2ItPmZlbmNlKTsKKwlqb2ItPmZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5j ZSk7CiAJYW1kZ3B1X2pvYl9mcmVlX3Jlc291cmNlcyhqb2IpOwogCXJldHVybiBmZW5jZTsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCBhYTA3NGZh YzBjN2YuLjU1ZTE0MmE1ZmY1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYwpAQCAtMzgzLDcgKzM4Myw3IEBAIGludCBhbWRncHVfYm9fY3JlYXRlX3Jlc3Ry aWN0ZWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlpZiAoZmxhZ3MgJiBBTURHUFVf R0VNX0NSRUFURV9WUkFNX0NMRUFSRUQgJiYKIAkgICAgYm8tPnRiby5tZW0ucGxhY2VtZW50ICYg VFRNX1BMX0ZMQUdfVlJBTSkgewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZTsKIAogCQlpZiAoYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZyA9PSBO VUxMIHx8CiAJCSAgICFhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nLT5yZWFkeSkgewpAQCAt NDAzLDkgKzQwMyw5IEBAIGludCBhbWRncHVfYm9fY3JlYXRlX3Jlc3RyaWN0ZWQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJCWFtZGdwdV9maWxsX2J1ZmZlcihibywgMCwgYm8tPnRiby5y ZXN2LCAmZmVuY2UpOwogCQlhbWRncHVfYm9fZmVuY2UoYm8sIGZlbmNlLCBmYWxzZSk7CiAJCWFt ZGdwdV9ib191bnJlc2VydmUoYm8pOwotCQlmZW5jZV9wdXQoYm8tPnRiby5tb3ZpbmcpOwotCQli by0+dGJvLm1vdmluZyA9IGZlbmNlX2dldChmZW5jZSk7Ci0JCWZlbmNlX3B1dChmZW5jZSk7CisJ CWRtYV9mZW5jZV9wdXQoYm8tPnRiby5tb3ZpbmcpOworCQliby0+dGJvLm1vdmluZyA9IGRtYV9m ZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAl9CiAJKmJvX3B0ciA9 IGJvOwogCkBAIC00OTEsNyArNDkxLDcgQEAgaW50IGFtZGdwdV9ib19iYWNrdXBfdG9fc2hhZG93 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywKIAkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCSAgICAgICBzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqKmZl bmNlLAorCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwKIAkJCSAgICAgICBib29s IGRpcmVjdCkKIAogewpAQCAtNTIzLDcgKzUyMyw3IEBAIGludCBhbWRncHVfYm9fcmVzdG9yZV9m cm9tX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkgIHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKIAkJCQkgIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJCSAgc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJCQkgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLAor CQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLAogCQkJCSAgYm9vbCBkaXJlY3QpCiAKIHsK QEAgLTkyNiw3ICs5MjYsNyBAQCBpbnQgYW1kZ3B1X2JvX2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAgKiBAc2hhcmVkOiB0cnVlIGlmIGZlbmNlIHNo b3VsZCBiZSBhZGRlZCBzaGFyZWQKICAqCiAgKi8KLXZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVj dCBhbWRncHVfYm8gKmJvLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLAordm9pZCBhbWRncHVfYm9fZmVu Y2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogCQkgICAg IGJvb2wgc2hhcmVkKQogewogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBiby0+ dGJvLnJlc3Y7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKaW5k ZXggODI1NTAzNGQ3M2ViLi4zZTc4NWVkM2NiNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfb2JqZWN0LmgKQEAgLTE1NiwxOSArMTU2LDE5IEBAIGludCBhbWRncHVfYm9f Z2V0X21ldGFkYXRhKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB2b2lkICpidWZmZXIsCiB2b2lkIGFt ZGdwdV9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSAg c3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKTsKIGludCBhbWRncHVfYm9fZmF1bHRfcmVzZXJ2 ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Ci12b2lkIGFtZGdwdV9ib19m ZW5jZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgc3RydWN0IGZlbmNlICpmZW5jZSwKK3ZvaWQgYW1k Z3B1X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSwKIAkJICAgICBib29sIHNoYXJlZCk7CiB1NjQgYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc3RydWN0 IGFtZGdwdV9ibyAqYm8pOwogaW50IGFtZGdwdV9ib19iYWNrdXBfdG9fc2hhZG93KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCQkJICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywK IAkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCSAgICAgICBzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLCBib29s IGRpcmVjdCk7CisJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLCBib29sIGRpcmVj dCk7CiBpbnQgYW1kZ3B1X2JvX3Jlc3RvcmVfZnJvbV9zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCQkJICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCQkJICBzdHJ1Y3Qg YW1kZ3B1X2JvICpibywKIAkJCQkgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0J CQkJICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSwKKwkJCQkgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5j ZSwKIAkJCQkgIGJvb2wgZGlyZWN0KTsKIAogCkBAIC0yMDAsNyArMjAwLDcgQEAgaW50IGFtZGdw dV9zYV9ib19uZXcoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogCQkgICAg IHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduKTsKIHZvaWQgYW1kZ3B1X3NhX2JvX2ZyZWUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2Jv ICoqc2FfYm8sCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJCSAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKTsKICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKIHZvaWQg YW1kZ3B1X3NhX2JvX2R1bXBfZGVidWdfaW5mbyhzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNh X21hbmFnZXIsCiAJCQkJCSBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfc2EuYwppbmRleCBkOGFmMzdhODQ1ZjQuLmZkMjZjNGI4ZDc5MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NhLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0 aWMgdm9pZCBhbWRncHVfc2FfYm9fcmVtb3ZlX2xvY2tlZChzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpz YV9ibykKIAl9CiAJbGlzdF9kZWxfaW5pdCgmc2FfYm8tPm9saXN0KTsKIAlsaXN0X2RlbF9pbml0 KCZzYV9iby0+Zmxpc3QpOwotCWZlbmNlX3B1dChzYV9iby0+ZmVuY2UpOworCWRtYV9mZW5jZV9w dXQoc2FfYm8tPmZlbmNlKTsKIAlrZnJlZShzYV9ibyk7CiB9CiAKQEAgLTE2MSw3ICsxNjEsNyBA QCBzdGF0aWMgdm9pZCBhbWRncHVfc2FfYm9fdHJ5X2ZyZWUoc3RydWN0IGFtZGdwdV9zYV9tYW5h Z2VyICpzYV9tYW5hZ2VyKQogCXNhX2JvID0gbGlzdF9lbnRyeShzYV9tYW5hZ2VyLT5ob2xlLT5u ZXh0LCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvLCBvbGlzdCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlX2Zyb20oc2FfYm8sIHRtcCwgJnNhX21hbmFnZXItPm9saXN0LCBvbGlzdCkgewogCQlpZiAo c2FfYm8tPmZlbmNlID09IE5VTEwgfHwKLQkJICAgICFmZW5jZV9pc19zaWduYWxlZChzYV9iby0+ ZmVuY2UpKSB7CisJCSAgICAhZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHNhX2JvLT5mZW5jZSkpIHsK IAkJCXJldHVybjsKIAkJfQogCQlhbWRncHVfc2FfYm9fcmVtb3ZlX2xvY2tlZChzYV9ibyk7CkBA IC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X3NhX2V2ZW50KHN0cnVjdCBhbWRn cHVfc2FfbWFuYWdlciAqc2FfbWFuYWdlciwKIH0KIAogc3RhdGljIGJvb2wgYW1kZ3B1X3NhX2Jv X25leHRfaG9sZShzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCi0JCQkJICAg c3RydWN0IGZlbmNlICoqZmVuY2VzLAorCQkJCSAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMs CiAJCQkJICAgdW5zaWduZWQgKnRyaWVzKQogewogCXN0cnVjdCBhbWRncHVfc2FfYm8gKmJlc3Rf Ym8gPSBOVUxMOwpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBib29sIGFtZGdwdV9zYV9ib19u ZXh0X2hvbGUoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpzYV9tYW5hZ2VyLAogCQlzYV9ibyA9 IGxpc3RfZmlyc3RfZW50cnkoJnNhX21hbmFnZXItPmZsaXN0W2ldLAogCQkJCQkgc3RydWN0IGFt ZGdwdV9zYV9ibywgZmxpc3QpOwogCi0JCWlmICghZmVuY2VfaXNfc2lnbmFsZWQoc2FfYm8tPmZl bmNlKSkgeworCQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChzYV9iby0+ZmVuY2UpKSB7CiAJ CQlmZW5jZXNbaV0gPSBzYV9iby0+ZmVuY2U7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMzE0LDcg KzMxNCw3IEBAIGludCBhbWRncHVfc2FfYm9fbmV3KHN0cnVjdCBhbWRncHVfc2FfbWFuYWdlciAq c2FfbWFuYWdlciwKIAkJICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICoqc2FfYm8sCiAJCSAgICAg dW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgYWxpZ24pCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZXNb QU1ER1BVX1NBX05VTV9GRU5DRV9MSVNUU107CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2VzW0FN REdQVV9TQV9OVU1fRkVOQ0VfTElTVFNdOwogCXVuc2lnbmVkIHRyaWVzW0FNREdQVV9TQV9OVU1f RkVOQ0VfTElTVFNdOwogCXVuc2lnbmVkIGNvdW50OwogCWludCBpLCByOwpAQCAtMzU2LDE0ICsz NTYsMTQgQEAgaW50IGFtZGdwdV9zYV9ib19uZXcoc3RydWN0IGFtZGdwdV9zYV9tYW5hZ2VyICpz YV9tYW5hZ2VyLAogCiAJCWZvciAoaSA9IDAsIGNvdW50ID0gMDsgaSA8IEFNREdQVV9TQV9OVU1f RkVOQ0VfTElTVFM7ICsraSkKIAkJCWlmIChmZW5jZXNbaV0pCi0JCQkJZmVuY2VzW2NvdW50Kytd ID0gZmVuY2VfZ2V0KGZlbmNlc1tpXSk7CisJCQkJZmVuY2VzW2NvdW50KytdID0gZG1hX2ZlbmNl X2dldChmZW5jZXNbaV0pOwogCiAJCWlmIChjb3VudCkgewogCQkJc3Bpbl91bmxvY2soJnNhX21h bmFnZXItPndxLmxvY2spOwotCQkJdCA9IGZlbmNlX3dhaXRfYW55X3RpbWVvdXQoZmVuY2VzLCBj b3VudCwgZmFsc2UsCi0JCQkJCQkgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CisJCQl0ID0gZG1h X2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQoZmVuY2VzLCBjb3VudCwgZmFsc2UsCisJCQkJCQkgICAg ICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwogCQkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kp Ci0JCQkJZmVuY2VfcHV0KGZlbmNlc1tpXSk7CisJCQkJZG1hX2ZlbmNlX3B1dChmZW5jZXNbaV0p OwogCiAJCQlyID0gKHQgPiAwKSA/IDAgOiB0OwogCQkJc3Bpbl9sb2NrKCZzYV9tYW5hZ2VyLT53 cS5sb2NrKTsKQEAgLTM4NCw3ICszODQsNyBAQCBpbnQgYW1kZ3B1X3NhX2JvX25ldyhzdHJ1Y3Qg YW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXIsCiB9CiAKIHZvaWQgYW1kZ3B1X3NhX2JvX2Zy ZWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc2FfYm8gKipzYV9i bywKLQkJICAgICAgIHN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCSAgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3NhX21hbmFnZXIgKnNhX21hbmFnZXI7CiAK QEAgLTM5NCwxMCArMzk0LDEwIEBAIHZvaWQgYW1kZ3B1X3NhX2JvX2ZyZWUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc2FfYm8gKipzYV9ibywKIAogCXNhX21hbmFn ZXIgPSAoKnNhX2JvKS0+bWFuYWdlcjsKIAlzcGluX2xvY2soJnNhX21hbmFnZXItPndxLmxvY2sp OwotCWlmIChmZW5jZSAmJiAhZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CisJaWYgKGZlbmNl ICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CiAJCXVpbnQzMl90IGlkeDsKIAot CQkoKnNhX2JvKS0+ZmVuY2UgPSBmZW5jZV9nZXQoZmVuY2UpOworCQkoKnNhX2JvKS0+ZmVuY2Ug PSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAkJaWR4ID0gZmVuY2UtPmNvbnRleHQgJSBBTURHUFVf U0FfTlVNX0ZFTkNFX0xJU1RTOwogCQlsaXN0X2FkZF90YWlsKCYoKnNhX2JvKS0+Zmxpc3QsICZz YV9tYW5hZ2VyLT5mbGlzdFtpZHhdKTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9zeW5jLmMKaW5kZXggNWM4ZDMwMjJmYjg3Li5lZDgxNGU2ZDAyMDcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYwpAQCAtMzQsNyArMzQsNyBAQAog CiBzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgewogCXN0cnVjdCBobGlzdF9ub2RlCW5vZGU7Ci0J c3RydWN0IGZlbmNlCQkqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZQkqZmVuY2U7CiB9OwogCiBz dGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmFtZGdwdV9zeW5jX3NsYWI7CkBAIC02MCw3ICs2MCw4 IEBAIHZvaWQgYW1kZ3B1X3N5bmNfY3JlYXRlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYykKICAq CiAgKiBUZXN0IGlmIHRoZSBmZW5jZSB3YXMgaXNzdWVkIGJ5IHVzLgogICovCi1zdGF0aWMgYm9v bCBhbWRncHVfc3luY19zYW1lX2RldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0 IGZlbmNlICpmKQorc3RhdGljIGJvb2wgYW1kZ3B1X3N5bmNfc2FtZV9kZXYoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCisJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFt ZF9zY2hlZF9mZW5jZSAqc19mZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShmKTsKIApAQCAtODEs NyArODIsNyBAQCBzdGF0aWMgYm9vbCBhbWRncHVfc3luY19zYW1lX2RldihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgc3RydWN0IGZlbmNlICpmKQogICoKICAqIEV4dHJhY3Qgd2hvIG9yaWdp bmFsbHkgY3JlYXRlZCB0aGUgZmVuY2UuCiAgKi8KLXN0YXRpYyB2b2lkICphbWRncHVfc3luY19n ZXRfb3duZXIoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgKmFtZGdwdV9zeW5jX2dldF9v d25lcihzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNf ZmVuY2UgPSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAKQEAgLTk5LDEzICsxMDAsMTQgQEAgc3Rh dGljIHZvaWQgKmFtZGdwdV9zeW5jX2dldF9vd25lcihzdHJ1Y3QgZmVuY2UgKmYpCiAgKgogICog RWl0aGVyIGtlZXAgdGhlIGV4aXN0aW5nIGZlbmNlIG9yIHRoZSBuZXcgb25lLCBkZXBlbmRpbmcg d2hpY2ggb25lIGlzIGxhdGVyLgogICovCi1zdGF0aWMgdm9pZCBhbWRncHVfc3luY19rZWVwX2xh dGVyKHN0cnVjdCBmZW5jZSAqKmtlZXAsIHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgdm9p ZCBhbWRncHVfc3luY19rZWVwX2xhdGVyKHN0cnVjdCBkbWFfZmVuY2UgKiprZWVwLAorCQkJCSAg IHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewotCWlmICgqa2VlcCAmJiBmZW5jZV9pc19sYXRl cigqa2VlcCwgZmVuY2UpKQorCWlmICgqa2VlcCAmJiBkbWFfZmVuY2VfaXNfbGF0ZXIoKmtlZXAs IGZlbmNlKSkKIAkJcmV0dXJuOwogCi0JZmVuY2VfcHV0KCprZWVwKTsKLQkqa2VlcCA9IGZlbmNl X2dldChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dCgqa2VlcCk7CisJKmtlZXAgPSBkbWFfZmVuY2Vf Z2V0KGZlbmNlKTsKIH0KIAogLyoqCkBAIC0xMTcsNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgYW1k Z3B1X3N5bmNfa2VlcF9sYXRlcihzdHJ1Y3QgZmVuY2UgKiprZWVwLCBzdHJ1Y3QgZmVuY2UgKmZl bmNlKQogICogVHJpZXMgdG8gYWRkIHRoZSBmZW5jZSB0byBhbiBleGlzdGluZyBoYXNoIGVudHJ5 LiBSZXR1cm5zIHRydWUgd2hlbiBhbiBlbnRyeQogICogd2FzIGZvdW5kLCBmYWxzZSBvdGhlcndp c2UuCiAgKi8KLXN0YXRpYyBib29sIGFtZGdwdV9zeW5jX2FkZF9sYXRlcihzdHJ1Y3QgYW1kZ3B1 X3N5bmMgKnN5bmMsIHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIGFtZGdwdV9zeW5jX2Fk ZF9sYXRlcihzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsIHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7 CiAJc3RydWN0IGFtZGdwdV9zeW5jX2VudHJ5ICplOwogCkBAIC0xMzksNyArMTQxLDcgQEAgc3Rh dGljIGJvb2wgYW1kZ3B1X3N5bmNfYWRkX2xhdGVyKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywg c3RydWN0IGZlbmNlICpmKQogICoKICAqLwogaW50IGFtZGdwdV9zeW5jX2ZlbmNlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCi0JCSAgICAgIHN0 cnVjdCBmZW5jZSAqZikKKwkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAKQEAgLTE1OCw3ICsxNjAsNyBAQCBpbnQgYW1kZ3B1X3N5 bmNfZmVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfc3luYyAq c3luYywKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAloYXNoX2FkZChzeW5jLT5mZW5jZXMsICZlLT5u b2RlLCBmLT5jb250ZXh0KTsKLQllLT5mZW5jZSA9IGZlbmNlX2dldChmKTsKKwllLT5mZW5jZSA9 IGRtYV9mZW5jZV9nZXQoZik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE3Nyw3ICsxNzksNyBAQCBp bnQgYW1kZ3B1X3N5bmNfcmVzdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJICAgICB2 b2lkICpvd25lcikKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZsaXN0Owot CXN0cnVjdCBmZW5jZSAqZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwogCXZvaWQgKmZlbmNlX293 bmVyOwogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwpAQCAtMjMxLDE1ICsyMzMsMTUgQEAgaW50 IGFtZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAgKiBSZXR1cm5z IHRoZSBuZXh0IGZlbmNlIG5vdCBzaWduYWxlZCB5ZXQgd2l0aG91dCByZW1vdmluZyBpdCBmcm9t IHRoZSBzeW5jCiAgKiBvYmplY3QuCiAgKi8KLXN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNfcGVl a19mZW5jZShzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCi0JCQkJICAgICBzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcpCitzdHJ1Y3QgZG1hX2ZlbmNlICphbWRncHVfc3luY19wZWVrX2ZlbmNlKHN0 cnVjdCBhbWRncHVfc3luYyAqc3luYywKKwkJCQkJIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykK IHsKIAlzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAJc3RydWN0IGhsaXN0X25vZGUgKnRt cDsKIAlpbnQgaTsKIAogCWhhc2hfZm9yX2VhY2hfc2FmZShzeW5jLT5mZW5jZXMsIGksIHRtcCwg ZSwgbm9kZSkgewotCQlzdHJ1Y3QgZmVuY2UgKmYgPSBlLT5mZW5jZTsKKwkJc3RydWN0IGRtYV9m ZW5jZSAqZiA9IGUtPmZlbmNlOwogCQlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0g dG9fYW1kX3NjaGVkX2ZlbmNlKGYpOwogCiAJCWlmIChyaW5nICYmIHNfZmVuY2UpIHsKQEAgLTI0 NywxNiArMjQ5LDE2IEBAIHN0cnVjdCBmZW5jZSAqYW1kZ3B1X3N5bmNfcGVla19mZW5jZShzdHJ1 Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCiAJCQkgKiB3aGVuIHRoZXkgYXJlIHNjaGVkdWxlZC4KIAkJ CSAqLwogCQkJaWYgKHNfZmVuY2UtPnNjaGVkID09ICZyaW5nLT5zY2hlZCkgewotCQkJCWlmIChm ZW5jZV9pc19zaWduYWxlZCgmc19mZW5jZS0+c2NoZWR1bGVkKSkKKwkJCQlpZiAoZG1hX2ZlbmNl X2lzX3NpZ25hbGVkKCZzX2ZlbmNlLT5zY2hlZHVsZWQpKQogCQkJCQljb250aW51ZTsKIAogCQkJ CXJldHVybiAmc19mZW5jZS0+c2NoZWR1bGVkOwogCQkJfQogCQl9CiAKLQkJaWYgKGZlbmNlX2lz X3NpZ25hbGVkKGYpKSB7CisJCWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZikpIHsKIAkJCWhh c2hfZGVsKCZlLT5ub2RlKTsKLQkJCWZlbmNlX3B1dChmKTsKKwkJCWRtYV9mZW5jZV9wdXQoZik7 CiAJCQlrbWVtX2NhY2hlX2ZyZWUoYW1kZ3B1X3N5bmNfc2xhYiwgZSk7CiAJCQljb250aW51ZTsK IAkJfQpAQCAtMjc0LDExICsyNzYsMTEgQEAgc3RydWN0IGZlbmNlICphbWRncHVfc3luY19wZWVr X2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKICAqCiAgKiBHZXQgYW5kIHJlbW92ZXMg dGhlIG5leHQgZmVuY2UgZnJvbSB0aGUgc3luYyBvYmplY3Qgbm90IHNpZ25hbGVkIHlldC4KICAq Lwotc3RydWN0IGZlbmNlICphbWRncHVfc3luY19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5j ICpzeW5jKQorc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X3N5bmNfZ2V0X2ZlbmNlKHN0cnVjdCBh bWRncHVfc3luYyAqc3luYykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X3N5bmNfZW50cnkgKmU7CiAJc3Ry dWN0IGhsaXN0X25vZGUgKnRtcDsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3RydWN0IGRtYV9mZW5j ZSAqZjsKIAlpbnQgaTsKIAogCWhhc2hfZm9yX2VhY2hfc2FmZShzeW5jLT5mZW5jZXMsIGksIHRt cCwgZSwgbm9kZSkgewpAQCAtMjg4LDEwICsyOTAsMTAgQEAgc3RydWN0IGZlbmNlICphbWRncHVf c3luY19nZXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKQogCQloYXNoX2RlbCgmZS0+ bm9kZSk7CiAJCWttZW1fY2FjaGVfZnJlZShhbWRncHVfc3luY19zbGFiLCBlKTsKIAotCQlpZiAo IWZlbmNlX2lzX3NpZ25hbGVkKGYpKQorCQlpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChmKSkK IAkJCXJldHVybiBmOwogCi0JCWZlbmNlX3B1dChmKTsKKwkJZG1hX2ZlbmNlX3B1dChmKTsKIAl9 CiAJcmV0dXJuIE5VTEw7CiB9CkBAIC0zMTEsMTEgKzMxMywxMSBAQCB2b2lkIGFtZGdwdV9zeW5j X2ZyZWUoc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jKQogCiAJaGFzaF9mb3JfZWFjaF9zYWZlKHN5 bmMtPmZlbmNlcywgaSwgdG1wLCBlLCBub2RlKSB7CiAJCWhhc2hfZGVsKCZlLT5ub2RlKTsKLQkJ ZmVuY2VfcHV0KGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChlLT5mZW5jZSk7CiAJCWttZW1f Y2FjaGVfZnJlZShhbWRncHVfc3luY19zbGFiLCBlKTsKIAl9CiAKLQlmZW5jZV9wdXQoc3luYy0+ bGFzdF92bV91cGRhdGUpOworCWRtYV9mZW5jZV9wdXQoc3luYy0+bGFzdF92bV91cGRhdGUpOwog fQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IGI4 MjdjNzVlOTVkZS4uZTA1YTI0MzI1ZWViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdGVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90ZXN0LmMKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RvX3Rlc3Rf bW92ZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCXZvaWQgKmd0dF9tYXAsICp2cmFt X21hcDsKIAkJdm9pZCAqKmd0dF9zdGFydCwgKipndHRfZW5kOwogCQl2b2lkICoqdnJhbV9zdGFy dCwgKip2cmFtX2VuZDsKLQkJc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlID0gTlVMTDsKIAogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBz aXplLCBQQUdFX1NJWkUsIHRydWUsCiAJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9HVFQsIDAs IE5VTEwsCkBAIC0xMTgsMTMgKzExOCwxMyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG9fdGVzdF9t b3ZlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWdvdG8gb3V0X2xjbGVhbl91bnBp bjsKIAkJfQogCi0JCXIgPSBmZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7CisJCXIgPSBkbWFfZmVu Y2Vfd2FpdChmZW5jZSwgZmFsc2UpOwogCQlpZiAocikgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gd2FpdCBmb3IgR1RULT5WUkFNIGZlbmNlICVkXG4iLCBpKTsKIAkJCWdvdG8gb3V0X2xjbGVh bl91bnBpbjsKIAkJfQogCi0JCWZlbmNlX3B1dChmZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOwogCiAJCXIgPSBhbWRncHVfYm9fa21hcCh2cmFtX29iaiwgJnZyYW1fbWFwKTsKIAkJaWYg KHIpIHsKQEAgLTE2MywxMyArMTYzLDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kb190ZXN0X21v dmVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJZ290byBvdXRfbGNsZWFuX3VucGlu OwogCQl9CiAKLQkJciA9IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJciA9IGRtYV9mZW5j ZV93YWl0KGZlbmNlLCBmYWxzZSk7CiAJCWlmIChyKSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byB3YWl0IGZvciBWUkFNLT5HVFQgZmVuY2UgJWRcbiIsIGkpOwogCQkJZ290byBvdXRfbGNsZWFu X3VucGluOwogCQl9CiAKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5j ZSk7CiAKIAkJciA9IGFtZGdwdV9ib19rbWFwKGd0dF9vYmpbaV0sICZndHRfbWFwKTsKIAkJaWYg KHIpIHsKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZG9fdGVzdF9tb3Zl cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCWFtZGdwdV9ib191bnJlZigmZ3R0X29i altpXSk7CiAJCX0KIAkJaWYgKGZlbmNlKQotCQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9m ZW5jZV9wdXQoZmVuY2UpOwogCQlicmVhazsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3RyYWNlLmgKaW5kZXggMDY3ZTVlNjgzYmIzLi5iYjk2NGE4ZmY5MzggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCkBAIC0xMDQsNyArMTA0LDcg QEAgVFJBQ0VfRVZFTlQoYW1kZ3B1X2NzX2lvY3RsLAogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBh bWRncHVfZGV2aWNlICosIGFkZXYpCiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZF9zY2hlZF9q b2IgKiwgc2NoZWRfam9iKQogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRncHVfaWIgKiwgaWIp Ci0JCQkgICAgIF9fZmllbGQoc3RydWN0IGZlbmNlICosIGZlbmNlKQorCQkJICAgICBfX2ZpZWxk KHN0cnVjdCBkbWFfZmVuY2UgKiwgZmVuY2UpCiAJCQkgICAgIF9fZmllbGQoY2hhciAqLCByaW5n X25hbWUpCiAJCQkgICAgIF9fZmllbGQodTMyLCBudW1faWJzKQogCQkJICAgICApLApAQCAtMTI5 LDcgKzEyOSw3IEBAIFRSQUNFX0VWRU5UKGFtZGdwdV9zY2hlZF9ydW5fam9iLAogCQkJICAgICBf X2ZpZWxkKHN0cnVjdCBhbWRncHVfZGV2aWNlICosIGFkZXYpCiAJCQkgICAgIF9fZmllbGQoc3Ry dWN0IGFtZF9zY2hlZF9qb2IgKiwgc2NoZWRfam9iKQogCQkJICAgICBfX2ZpZWxkKHN0cnVjdCBh bWRncHVfaWIgKiwgaWIpCi0JCQkgICAgIF9fZmllbGQoc3RydWN0IGZlbmNlICosIGZlbmNlKQor CQkJICAgICBfX2ZpZWxkKHN0cnVjdCBkbWFfZmVuY2UgKiwgZmVuY2UpCiAJCQkgICAgIF9fZmll bGQoY2hhciAqLCByaW5nX25hbWUpCiAJCQkgICAgIF9fZmllbGQodTMyLCBudW1faWJzKQogCQkJ ICAgICApLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCmluZGV4IGRjYWY2 OTFmNTZiNS4uYTc0M2FlYWJjNzY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5jCkBAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7 CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCXVpbnQ2NF90IG9sZF9zdGFydCwgbmV3X3N0 YXJ0OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJ aW50IHI7CiAKIAlhZGV2ID0gYW1kZ3B1X2dldF9hZGV2KGJvLT5iZGV2KTsKQEAgLTMxNiw3ICsz MTYsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKIAkJcmV0dXJuIHI7CiAKIAlyID0gdHRtX2JvX3BpcGVsaW5lX21vdmUoYm8sIGZl bmNlLCBldmljdCwgbmV3X21lbSk7Ci0JZmVuY2VfcHV0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgaW50IGFtZGdw dV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCSAgICAgICB1aW50NjRf dCBkc3Rfb2Zmc2V0LAogCQkgICAgICAgdWludDMyX3QgYnl0ZV9jb3VudCwKIAkJICAgICAgIHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YsCi0JCSAgICAgICBzdHJ1Y3QgZmVuY2UgKipm ZW5jZSwgYm9vbCBkaXJlY3Rfc3VibWl0KQorCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZl bmNlLCBib29sIGRpcmVjdF9zdWJtaXQpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYg PSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CkBAIC0xMjk0LDcgKzEyOTQs NyBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlp ZiAoZGlyZWN0X3N1Ym1pdCkgewogCQlyID0gYW1kZ3B1X2liX3NjaGVkdWxlKHJpbmcsIGpvYi0+ bnVtX2licywgam9iLT5pYnMsCiAJCQkJICAgICAgIE5VTEwsIE5VTEwsIGZlbmNlKTsKLQkJam9i LT5mZW5jZSA9IGZlbmNlX2dldCgqZmVuY2UpOworCQlqb2ItPmZlbmNlID0gZG1hX2ZlbmNlX2dl dCgqZmVuY2UpOwogCQlpZiAocikKIAkJCURSTV9FUlJPUigiRXJyb3Igc2NoZWR1bGluZyBJQnMg KCVkKVxuIiwgcik7CiAJCWFtZGdwdV9qb2JfZnJlZShqb2IpOwpAQCAtMTMxNSw3ICsxMzE1LDcg QEAgaW50IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiBpbnQg YW1kZ3B1X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQl1aW50MzJfdCBzcmNf ZGF0YSwKIAkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJc3RydWN0IGZlbmNl ICoqZmVuY2UpCisJCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGJvLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKaW5kZXggOTgxMmM4MDUzMjZjLi4zZjI5 M2UxODkzNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKQEAgLTc3 LDExICs3NywxMSBAQCBpbnQgYW1kZ3B1X2NvcHlfYnVmZmVyKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywKIAkJICAgICAgIHVpbnQ2NF90IGRzdF9vZmZzZXQsCiAJCSAgICAgICB1aW50MzJfdCBi eXRlX2NvdW50LAogCQkgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJ ICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQpOworCQkgICAg ICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLCBib29sIGRpcmVjdF9zdWJtaXQpOwogaW50IGFt ZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCXVpbnQzMl90IHNyY19k YXRhLAogCQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKLQkJCXN0cnVjdCBmZW5j ZSAqKmZlbmNlKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiAKIGludCBhbWRncHVf bW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogYm9v bCBhbWRncHVfdHRtX2lzX2JvdW5kKHN0cnVjdCB0dG1fdHQgKnR0bSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKaW5kZXggZTMyODFjYWNjNTg2Li4wZjY1NzVlN2VmOGMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKQEAgLTMzMyw3ICszMzMs NyBAQCB2b2lkIGFtZGdwdV91dmRfZnJlZV9oYW5kbGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnV2ZC5t YXhfaGFuZGxlczsgKytpKSB7CiAJCXVpbnQzMl90IGhhbmRsZSA9IGF0b21pY19yZWFkKCZhZGV2 LT51dmQuaGFuZGxlc1tpXSk7CiAJCWlmIChoYW5kbGUgIT0gMCAmJiBhZGV2LT51dmQuZmlscFtp XSA9PSBmaWxwKSB7Ci0JCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQkJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2U7CiAKIAkJCXIgPSBhbWRncHVfdXZkX2dldF9kZXN0cm95X21zZyhyaW5nLCBoYW5k bGUsCiAJCQkJCQkgICAgICAgZmFsc2UsICZmZW5jZSk7CkBAIC0zNDIsOCArMzQyLDggQEAgdm9p ZCBhbWRncHVfdXZkX2ZyZWVfaGFuZGxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3Ry dWN0IGRybV9maWxlICpmaWxwKQogCQkJCWNvbnRpbnVlOwogCQkJfQogCi0JCQlmZW5jZV93YWl0 KGZlbmNlLCBmYWxzZSk7Ci0JCQlmZW5jZV9wdXQoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3dhaXQo ZmVuY2UsIGZhbHNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCiAJCQlhZGV2LT51dmQu ZmlscFtpXSA9IE5VTEw7CiAJCQlhdG9taWNfc2V0KCZhZGV2LT51dmQuaGFuZGxlc1tpXSwgMCk7 CkBAIC05MDksMTQgKzkwOSwxNCBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3BhcnNlX2NzKHN0cnVj dCBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIsIHVpbnQzMl90IGliX2lkeCkKIH0KIAogc3RhdGlj IGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0 IGFtZGdwdV9ibyAqYm8sCi0JCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBmZW5jZSAqKmZl bmNlKQorCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7 CiAJc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7CiAJc3RydWN0IHd3X2FjcXVpcmVfY3R4 IHRpY2tldDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CiAJc3RydWN0IGFtZGdwdV9qb2IgKmpv YjsKIAlzdHJ1Y3QgYW1kZ3B1X2liICppYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0 cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g cmluZy0+YWRldjsKIAl1aW50NjRfdCBhZGRyOwogCWludCBpLCByOwpAQCAtOTYwLDcgKzk2MCw3 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCiAJaWYgKGRpcmVjdCkgewogCQlyID0gYW1kZ3B1 X2liX3NjaGVkdWxlKHJpbmcsIDEsIGliLCBOVUxMLCBOVUxMLCAmZik7Ci0JCWpvYi0+ZmVuY2Ug PSBmZW5jZV9nZXQoZik7CisJCWpvYi0+ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwogCQlpZiAo cikKIAkJCWdvdG8gZXJyX2ZyZWU7CiAKQEAgLTk3NSw5ICs5NzUsOSBAQCBzdGF0aWMgaW50IGFt ZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1 X2JvICpibywKIAl0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoJnRpY2tldCwgJmhlYWQsIGYp OwogCiAJaWYgKGZlbmNlKQotCQkqZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJCSpmZW5jZSA9IGRt YV9mZW5jZV9nZXQoZik7CiAJYW1kZ3B1X2JvX3VucmVmKCZibyk7Ci0JZmVuY2VfcHV0KGYpOwor CWRtYV9mZW5jZV9wdXQoZik7CiAKIAlyZXR1cm4gMDsKIApAQCAtOTkzLDcgKzk5Myw3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0 cnVjdCBhbWRncHVfYm8gKmJvLAogICAgY3Jhc2ggdGhlIHZjcHUgc28ganVzdCB0cnkgdG8gZW1t aXQgYSBkdW1teSBjcmVhdGUvZGVzdHJveSBtc2cgdG8KICAgIGF2b2lkIHRoaXMgKi8KIGludCBh bWRncHVfdXZkX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMy X3QgaGFuZGxlLAotCQkJICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICBzdHJ1 Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBy aW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfYm8gKmJvOwpAQCAtMTA0Miw3ICsxMDQyLDcgQEAg aW50IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1 aW50MzJfdCBoYW5kbGUsCiB9CiAKIGludCBhbWRncHVfdXZkX2dldF9kZXN0cm95X21zZyhzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKLQkJCSAgICAgICBib29sIGRp cmVjdCwgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVj dCBkbWFfZmVuY2UgKipmZW5jZSkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJp bmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9ibyAqYm87CkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2 b2lkIGFtZGdwdV91dmRfcmluZ19lbmRfdXNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAq LwogaW50IGFtZGdwdV91dmRfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg bG9uZyB0aW1lb3V0KQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2U7CiAJbG9uZyByOwogCiAJciA9IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2cocmlu ZywgMSwgTlVMTCk7CkBAIC0xMTQzLDcgKzExNDMsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3Rl c3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJCWdvdG8gZXJy b3I7CiAJfQogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQp OworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGZlbmNlLCBmYWxzZSwgdGltZW91dCk7CiAJ aWYgKHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFtZGdwdTogSUIgdGVzdCB0aW1lZCBvdXQuXG4i KTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBpbnQgYW1kZ3B1X3V2 ZF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJ CXIgPSAwOwogCX0KIAotCWZlbmNlX3B1dChmZW5jZSk7CisJZG1hX2ZlbmNlX3B1dChmZW5jZSk7 CiAKIGVycm9yOgogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3V2ZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2 ZC5oCmluZGV4IGM4NTAwMDk2MDJkMS4uNjI0OWJhMWJkZTJhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3V2ZC5oCkBAIC0yOSw5ICsyOSw5IEBAIGludCBhbWRncHVfdXZkX3N3 X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFtZGdwdV91dmRfc3VzcGVu ZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBpbnQgYW1kZ3B1X3V2ZF9yZXN1bWUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2co c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCi0JCQkgICAgICBzdHJ1 Y3QgZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwog aW50IGFtZGdwdV91dmRfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg dWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZmVuY2UgKipm ZW5jZSk7CisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7 CiB2b2lkIGFtZGdwdV91dmRfZnJlZV9oYW5kbGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogaW50IGFtZGdwdV91dmRfcmluZ19w YXJzZV9jcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLCB1aW50MzJfdCBpYl9pZHgp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCmluZGV4IDdmZThmZDg4NGYw Ni4uZjBmOGFmYjg1NTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5j CkBAIC0zOTUsMTIgKzM5NSwxMiBAQCB2b2lkIGFtZGdwdV92Y2VfZnJlZV9oYW5kbGVzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAgKiBPcGVuIHVw IGEgc3RyZWFtIGZvciBIVyB0ZXN0CiAgKi8KIGludCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNn KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgc3Ry dWN0IGZlbmNlICoqZmVuY2UpCisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCiB7 CiAJY29uc3QgdW5zaWduZWQgaWJfc2l6ZV9kdyA9IDEwMjQ7CiAJc3RydWN0IGFtZGdwdV9qb2Ig KmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X2liICppYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOwor CXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQ2NF90IGR1bW15OwogCWludCBpLCBy OwogCkBAIC00NTAsMTQgKzQ1MCwxNCBAQCBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRlX21zZyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKIAkJaWItPnB0cltpXSA9 IDB4MDsKIAogCXIgPSBhbWRncHVfaWJfc2NoZWR1bGUocmluZywgMSwgaWIsIE5VTEwsIE5VTEws ICZmKTsKLQlqb2ItPmZlbmNlID0gZmVuY2VfZ2V0KGYpOworCWpvYi0+ZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0KGYpOwogCWlmIChyKQogCQlnb3RvIGVycjsKIAogCWFtZGdwdV9qb2JfZnJlZShqb2Ip OwogCWlmIChmZW5jZSkKLQkJKmZlbmNlID0gZmVuY2VfZ2V0KGYpOwotCWZlbmNlX3B1dChmKTsK KwkJKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogCXJldHVy biAwOwogCiBlcnI6CkBAIC00NzYsMTIgKzQ3NiwxMiBAQCBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3Jl YXRlX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKICAqIENs b3NlIHVwIGEgc3RyZWFtIGZvciBIVyB0ZXN0IG9yIGlmIHVzZXJzcGFjZSBmYWlsZWQgdG8gZG8g c28KICAqLwogaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3Qg ZmVuY2UgKipmZW5jZSkKKwkJCSAgICAgICBib29sIGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAq KmZlbmNlKQogewogCWNvbnN0IHVuc2lnbmVkIGliX3NpemVfZHcgPSAxMDI0OwogCXN0cnVjdCBh bWRncHVfam9iICpqb2I7CiAJc3RydWN0IGFtZGdwdV9pYiAqaWI7Ci0Jc3RydWN0IGZlbmNlICpm ID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAlpbnQgaSwgcjsKIAogCXIg PSBhbWRncHVfam9iX2FsbG9jX3dpdGhfaWIocmluZy0+YWRldiwgaWJfc2l6ZV9kdyAqIDQsICZq b2IpOwpAQCAtNTEzLDcgKzUxMyw3IEBAIGludCBhbWRncHVfdmNlX2dldF9kZXN0cm95X21zZyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKIAogCWlmIChkaXJlY3Qp IHsKIAkJciA9IGFtZGdwdV9pYl9zY2hlZHVsZShyaW5nLCAxLCBpYiwgTlVMTCwgTlVMTCwgJmYp OwotCQlqb2ItPmZlbmNlID0gZmVuY2VfZ2V0KGYpOworCQlqb2ItPmZlbmNlID0gZG1hX2ZlbmNl X2dldChmKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGVycjsKIApAQCAtNTI2LDggKzUyNiw4IEBAIGlu dCBhbWRncHVfdmNlX2dldF9kZXN0cm95X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVp bnQzMl90IGhhbmRsZSwKIAl9CiAKIAlpZiAoZmVuY2UpCi0JCSpmZW5jZSA9IGZlbmNlX2dldChm KTsKLQlmZW5jZV9wdXQoZik7CisJCSpmZW5jZSA9IGRtYV9mZW5jZV9nZXQoZik7CisJZG1hX2Zl bmNlX3B1dChmKTsKIAlyZXR1cm4gMDsKIAogZXJyOgpAQCAtODgzLDcgKzg4Myw3IEBAIGludCBh bWRncHVfdmNlX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqLwog aW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9u ZyB0aW1lb3V0KQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0gTlVMTDsKIAlsb25nIHI7CiAKIAkvKiBza2lwIHZjZSByaW5nMS8yIGli IHRlc3QgZm9yIG5vdywgc2luY2UgaXQncyBub3QgcmVsaWFibGUgKi8KQEAgLTkwMiw3ICs5MDIs NyBAQCBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCBsb25nIHRpbWVvdXQpCiAJCWdvdG8gZXJyb3I7CiAJfQogCi0JciA9IGZlbmNlX3dhaXRfdGlt ZW91dChmZW5jZSwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0 KGZlbmNlLCBmYWxzZSwgdGltZW91dCk7CiAJaWYgKHIgPT0gMCkgewogCQlEUk1fRVJST1IoImFt ZGdwdTogSUIgdGVzdCB0aW1lZCBvdXQuXG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC05MTMs NiArOTEzLDYgQEAgaW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywgbG9uZyB0aW1lb3V0KQogCQlyID0gMDsKIAl9CiBlcnJvcjoKLQlmZW5jZV9wdXQo ZmVuY2UpOworCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCXJldHVybiByOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCmluZGV4IDEyNzI5ZDI4NTJkZi4uNTY2YzI5ZGRl ZWI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCkBAIC0yOSw5ICsy OSw5IEBAIGludCBhbWRncHVfdmNlX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp OwogaW50IGFtZGdwdV92Y2Vfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiBp bnQgYW1kZ3B1X3ZjZV9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogaW50IGFt ZGdwdV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJf dCBoYW5kbGUsCi0JCQkgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICBzdHJ1 Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwogaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAotCQkJICAgICAgIGJvb2wg ZGlyZWN0LCBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7CisJCQkgICAgICAgYm9vbCBkaXJlY3QsIHN0 cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiB2b2lkIGFtZGdwdV92Y2VfZnJlZV9oYW5kbGVzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogaW50IGFt ZGdwdV92Y2VfcmluZ19wYXJzZV9jcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdWludDMy X3QgaWJfaWR4KTsKIHZvaWQgYW1kZ3B1X3ZjZV9yaW5nX2VtaXRfaWIoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2liICppYiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKaW5kZXggMDZmMjQzMjJlN2MzLi4yMmNhYmI1NDU2ZTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCkBAIC0yNSw3ICsyNSw3IEBACiAgKiAgICAgICAg ICBBbGV4IERldWNoZXIKICAqICAgICAgICAgIEplcm9tZSBHbGlzc2UKICAqLwotI2luY2x1ZGUg PGxpbnV4L2ZlbmNlLWFycmF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+ CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vYW1kZ3B1X2RybS5oPgogI2lu Y2x1ZGUgImFtZGdwdS5oIgpAQCAtMTk0LDE0ICsxOTQsMTQgQEAgc3RhdGljIGJvb2wgYW1kZ3B1 X3ZtX2lzX2dwdV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKICAqIEFsbG9jYXRl IGFuIGlkIGZvciB0aGUgdm0sIGFkZGluZyBmZW5jZXMgdG8gdGhlIHN5bmMgb2JqIGFzIG5lY2Vz c2FyeS4KICAqLwogaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCSAgICAgIHN0cnVjdCBhbWRncHVfc3luYyAqc3lu Yywgc3RydWN0IGZlbmNlICpmZW5jZSwKKwkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5j LCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpv YikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJdWludDY0 X3QgZmVuY2VfY29udGV4dCA9IGFkZXYtPmZlbmNlX2NvbnRleHQgKyByaW5nLT5pZHg7Ci0Jc3Ry dWN0IGZlbmNlICp1cGRhdGVzID0gc3luYy0+bGFzdF92bV91cGRhdGU7CisJc3RydWN0IGRtYV9m ZW5jZSAqdXBkYXRlcyA9IHN5bmMtPmxhc3Rfdm1fdXBkYXRlOwogCXN0cnVjdCBhbWRncHVfdm1f aWQgKmlkLCAqaWRsZTsKLQlzdHJ1Y3QgZmVuY2UgKipmZW5jZXM7CisJc3RydWN0IGRtYV9mZW5j ZSAqKmZlbmNlczsKIAl1bnNpZ25lZCBpOwogCWludCByID0gMDsKIApAQCAtMjI1LDE3ICsyMjUs MTcgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsCiAJaWYgKCZpZGxlLT5saXN0ID09ICZhZGV2LT52bV9tYW5hZ2Vy Lmlkc19scnUpIHsKIAkJdTY0IGZlbmNlX2NvbnRleHQgPSBhZGV2LT52bV9tYW5hZ2VyLmZlbmNl X2NvbnRleHQgKyByaW5nLT5pZHg7CiAJCXVuc2lnbmVkIHNlcW5vID0gKythZGV2LT52bV9tYW5h Z2VyLnNlcW5vW3JpbmctPmlkeF07Ci0JCXN0cnVjdCBmZW5jZV9hcnJheSAqYXJyYXk7CisJCXN0 cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFycmF5OwogCQl1bnNpZ25lZCBqOwogCiAJCWZvciAoaiA9 IDA7IGogPCBpOyArK2opCi0JCQlmZW5jZV9nZXQoZmVuY2VzW2pdKTsKKwkJCWRtYV9mZW5jZV9n ZXQoZmVuY2VzW2pdKTsKIAotCQlhcnJheSA9IGZlbmNlX2FycmF5X2NyZWF0ZShpLCBmZW5jZXMs IGZlbmNlX2NvbnRleHQsCisJCWFycmF5ID0gZG1hX2ZlbmNlX2FycmF5X2NyZWF0ZShpLCBmZW5j ZXMsIGZlbmNlX2NvbnRleHQsCiAJCQkJCSAgIHNlcW5vLCB0cnVlKTsKIAkJaWYgKCFhcnJheSkg ewogCQkJZm9yIChqID0gMDsgaiA8IGk7ICsraikKLQkJCQlmZW5jZV9wdXQoZmVuY2VzW2pdKTsK KwkJCQlkbWFfZmVuY2VfcHV0KGZlbmNlc1tqXSk7CiAJCQlrZnJlZShmZW5jZXMpOwogCQkJciA9 IC1FTk9NRU07CiAJCQlnb3RvIGVycm9yOwpAQCAtMjQzLDcgKzI0Myw3IEBAIGludCBhbWRncHVf dm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LAogCiAKIAkJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKHJpbmctPmFkZXYsIHN5bmMsICZhcnJheS0+ YmFzZSk7Ci0JCWZlbmNlX3B1dCgmYXJyYXktPmJhc2UpOworCQlkbWFfZmVuY2VfcHV0KCZhcnJh eS0+YmFzZSk7CiAJCWlmIChyKQogCQkJZ290byBlcnJvcjsKIApAQCAtMjU3LDcgKzI1Nyw3IEBA IGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLAogCS8qIENoZWNrIGlmIHdlIGNhbiB1c2UgYSBWTUlEIGFscmVhZHkgYXNz aWduZWQgdG8gdGhpcyBWTSAqLwogCWkgPSByaW5nLT5pZHg7CiAJZG8gewotCQlzdHJ1Y3QgZmVu Y2UgKmZsdXNoZWQ7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZsdXNoZWQ7CiAKIAkJaWQgPSB2bS0+ aWRzW2krK107CiAJCWlmIChpID09IEFNREdQVV9NQVhfUklOR1MpCkBAIC0yNzksMTIgKzI3OSwx MiBAQCBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFtZGdwdV92bSAqdm0sIHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChpZC0+bGFzdF9mbHVzaC0+ Y29udGV4dCAhPSBmZW5jZV9jb250ZXh0ICYmCi0JCSAgICAhZmVuY2VfaXNfc2lnbmFsZWQoaWQt Pmxhc3RfZmx1c2gpKQorCQkgICAgIWRtYV9mZW5jZV9pc19zaWduYWxlZChpZC0+bGFzdF9mbHVz aCkpCiAJCQljb250aW51ZTsKIAogCQlmbHVzaGVkICA9IGlkLT5mbHVzaGVkX3VwZGF0ZXM7CiAJ CWlmICh1cGRhdGVzICYmCi0JCSAgICAoIWZsdXNoZWQgfHwgZmVuY2VfaXNfbGF0ZXIodXBkYXRl cywgZmx1c2hlZCkpKQorCQkgICAgKCFmbHVzaGVkIHx8IGRtYV9mZW5jZV9pc19sYXRlcih1cGRh dGVzLCBmbHVzaGVkKSkpCiAJCQljb250aW51ZTsKIAogCQkvKiBHb29kIHdlIGNhbiB1c2UgdGhp cyBWTUlELiBSZW1lbWJlciB0aGlzIHN1Ym1pc3Npb24gYXMKQEAgLTMxNSwxNCArMzE1LDE0IEBA IGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLAogCWlmIChyKQogCQlnb3RvIGVycm9yOwogCi0JZmVuY2VfcHV0KGlkLT5m aXJzdCk7Ci0JaWQtPmZpcnN0ID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGlk LT5maXJzdCk7CisJaWQtPmZpcnN0ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKLQlmZW5jZV9w dXQoaWQtPmxhc3RfZmx1c2gpOworCWRtYV9mZW5jZV9wdXQoaWQtPmxhc3RfZmx1c2gpOwogCWlk LT5sYXN0X2ZsdXNoID0gTlVMTDsKIAotCWZlbmNlX3B1dChpZC0+Zmx1c2hlZF91cGRhdGVzKTsK LQlpZC0+Zmx1c2hlZF91cGRhdGVzID0gZmVuY2VfZ2V0KHVwZGF0ZXMpOworCWRtYV9mZW5jZV9w dXQoaWQtPmZsdXNoZWRfdXBkYXRlcyk7CisJaWQtPmZsdXNoZWRfdXBkYXRlcyA9IGRtYV9mZW5j ZV9nZXQodXBkYXRlcyk7CiAKIAlpZC0+cGRfZ3B1X2FkZHIgPSBqb2ItPnZtX3BkX2FkZHI7CiAJ aWQtPmN1cnJlbnRfZ3B1X3Jlc2V0X2NvdW50ID0gYXRvbWljX3JlYWQoJmFkZXYtPmdwdV9yZXNl dF9jb3VudGVyKTsKQEAgLTM5Myw3ICszOTMsNyBAQCBpbnQgYW1kZ3B1X3ZtX2ZsdXNoKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9qb2IgKmpvYikKIAogCWlmIChyaW5n LT5mdW5jcy0+ZW1pdF92bV9mbHVzaCAmJiAoam9iLT52bV9uZWVkc19mbHVzaCB8fAogCSAgICBh bWRncHVfdm1faXNfZ3B1X3Jlc2V0KGFkZXYsIGlkKSkpIHsKLQkJc3RydWN0IGZlbmNlICpmZW5j ZTsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAkJdHJhY2VfYW1kZ3B1X3ZtX2ZsdXNo KGpvYi0+dm1fcGRfYWRkciwgcmluZy0+aWR4LCBqb2ItPnZtX2lkKTsKIAkJYW1kZ3B1X3Jpbmdf ZW1pdF92bV9mbHVzaChyaW5nLCBqb2ItPnZtX2lkLCBqb2ItPnZtX3BkX2FkZHIpOwpAQCAtNDAz LDcgKzQwMyw3IEBAIGludCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQogCQkJcmV0dXJuIHI7CiAKIAkJbXV0ZXhfbG9jaygm YWRldi0+dm1fbWFuYWdlci5sb2NrKTsKLQkJZmVuY2VfcHV0KGlkLT5sYXN0X2ZsdXNoKTsKKwkJ ZG1hX2ZlbmNlX3B1dChpZC0+bGFzdF9mbHVzaCk7CiAJCWlkLT5sYXN0X2ZsdXNoID0gZmVuY2U7 CiAJCW11dGV4X3VubG9jaygmYWRldi0+dm1fbWFuYWdlci5sb2NrKTsKIAl9CkBAIC01MzcsNyAr NTM3LDcgQEAgc3RhdGljIGludCBhbWRncHVfdm1fY2xlYXJfYm8oc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibykKIHsKIAlzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmc7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UgPSBOVUxMOwogCXN0cnVjdCBhbWRncHVfam9iICpqb2I7CiAJc3RydWN0 IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyBwYXJhbXM7CiAJdW5zaWduZWQgZW50cmllczsKQEAg LTU3OCw3ICs1NzgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVhcl9ibyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKIAkJZ290byBlcnJvcl9mcmVlOwogCiAJYW1kZ3B1X2JvX2ZlbmNl KGJvLCBmZW5jZSwgdHJ1ZSk7Ci0JZmVuY2VfcHV0KGZlbmNlKTsKKwlkbWFfZmVuY2VfcHV0KGZl bmNlKTsKIAlyZXR1cm4gMDsKIAogZXJyb3JfZnJlZToKQEAgLTYyNSw3ICs2MjUsNyBAQCBzdGF0 aWMgaW50IGFtZGdwdV92bV91cGRhdGVfcGRfb3Jfc2hhZG93KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAogCXVuc2lnbmVkIGNvdW50ID0gMCwgcHRfaWR4LCBuZHc7CiAJc3RydWN0IGFtZGdw dV9qb2IgKmpvYjsKIAlzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zIHBhcmFtczsKLQlz dHJ1Y3QgZmVuY2UgKmZlbmNlID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5V TEw7CiAKIAlpbnQgcjsKIApAQCAtNzE0LDkgKzcxNCw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X3VwZGF0ZV9wZF9vcl9zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQlnb3Rv IGVycm9yX2ZyZWU7CiAKIAkJYW1kZ3B1X2JvX2ZlbmNlKHBkLCBmZW5jZSwgdHJ1ZSk7Ci0JCWZl bmNlX3B1dCh2bS0+cGFnZV9kaXJlY3RvcnlfZmVuY2UpOwotCQl2bS0+cGFnZV9kaXJlY3Rvcnlf ZmVuY2UgPSBmZW5jZV9nZXQoZmVuY2UpOwotCQlmZW5jZV9wdXQoZmVuY2UpOworCQlkbWFfZmVu Y2VfcHV0KHZtLT5wYWdlX2RpcmVjdG9yeV9mZW5jZSk7CisJCXZtLT5wYWdlX2RpcmVjdG9yeV9m ZW5jZSA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAog CX0gZWxzZSB7CiAJCWFtZGdwdV9qb2JfZnJlZShqb2IpOwpAQCAtOTI5LDIwICs5MjksMjAgQEAg c3RhdGljIHZvaWQgYW1kZ3B1X3ZtX2ZyYWdfcHRlcyhzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVf cGFyYW1zCSpwYXJhbXMsCiAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MsIC1FSU5WQUwgZm9yIGZh aWx1cmUuCiAgKi8KIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZmVuY2UgKmV4Y2x1c2l2 ZSwKKwkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZXhjbHVzaXZlLAogCQkJCSAgICAgICB1 aW50NjRfdCBzcmMsCiAJCQkJICAgICAgIGRtYV9hZGRyX3QgKnBhZ2VzX2FkZHIsCiAJCQkJICAg ICAgIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJCSAgICAgICB1aW50NjRfdCBzdGFydCwgdWlu dDY0X3QgbGFzdCwKIAkJCQkgICAgICAgdWludDMyX3QgZmxhZ3MsIHVpbnQ2NF90IGFkZHIsCi0J CQkJICAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlKQorCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICoqZmVuY2UpCiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCXZvaWQgKm93bmVy ID0gQU1ER1BVX0ZFTkNFX09XTkVSX1ZNOwogCXVuc2lnbmVkIG5wdGVzLCBuY21kcywgbmR3Owog CXN0cnVjdCBhbWRncHVfam9iICpqb2I7CiAJc3RydWN0IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFt cyBwYXJhbXM7Ci0Jc3RydWN0IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ID0gTlVMTDsKIAlpbnQgcjsKIAogCW1lbXNldCgmcGFyYW1zLCAwLCBzaXplb2YocGFyYW1zKSk7 CkBAIC0xMDQ1LDEwICsxMDQ1LDEwIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9t YXBwaW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJYW1kZ3B1X2JvX2ZlbmNlKHZt LT5wYWdlX2RpcmVjdG9yeSwgZiwgdHJ1ZSk7CiAJaWYgKGZlbmNlKSB7Ci0JCWZlbmNlX3B1dCgq ZmVuY2UpOwotCQkqZmVuY2UgPSBmZW5jZV9nZXQoZik7CisJCWRtYV9mZW5jZV9wdXQoKmZlbmNl KTsKKwkJKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKIAl9Ci0JZmVuY2VfcHV0KGYpOworCWRt YV9mZW5jZV9wdXQoZik7CiAJcmV0dXJuIDA7CiAKIGVycm9yX2ZyZWU6CkBAIC0xMDc0LDEzICsx MDc0LDEzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCAtRUlOVkFMIGZv ciBmYWlsdXJlLgogICovCiBzdGF0aWMgaW50IGFtZGdwdV92bV9ib19zcGxpdF9tYXBwaW5nKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqZXhjbHVz aXZlLAorCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmV4Y2x1c2l2ZSwKIAkJCQkgICAgICB1 aW50MzJfdCBndHRfZmxhZ3MsCiAJCQkJICAgICAgZG1hX2FkZHJfdCAqcGFnZXNfYWRkciwKIAkJ CQkgICAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKIAkJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2Jv X3ZhX21hcHBpbmcgKm1hcHBpbmcsCiAJCQkJICAgICAgdWludDMyX3QgZmxhZ3MsIHVpbnQ2NF90 IGFkZHIsCi0JCQkJICAgICAgc3RydWN0IGZlbmNlICoqZmVuY2UpCisJCQkJICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqKmZlbmNlKQogewogCWNvbnN0IHVpbnQ2NF90IG1heF9zaXplID0gNjRVTEwg KiAxMDI0VUxMICogMTAyNFVMTCAvIEFNREdQVV9HUFVfUEFHRV9TSVpFOwogCkBAIC0xMTQ3LDcg KzExNDcsNyBAQCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKIAlkbWFfYWRkcl90ICpwYWdlc19hZGRyID0gTlVMTDsKIAl1aW50MzJfdCBndHRfZmxh Z3MsIGZsYWdzOwogCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtOwotCXN0cnVjdCBmZW5jZSAqZXhj bHVzaXZlOworCXN0cnVjdCBkbWFfZmVuY2UgKmV4Y2x1c2l2ZTsKIAl1aW50NjRfdCBhZGRyOwog CWludCByOwogCkBAIC0xNTQ3LDcgKzE1NDcsNyBAQCB2b2lkIGFtZGdwdV92bV9ib19ybXYoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCWtmcmVlKG1hcHBpbmcpOwogCX0KIAotCWZlbmNl X3B1dChib192YS0+bGFzdF9wdF91cGRhdGUpOworCWRtYV9mZW5jZV9wdXQoYm9fdmEtPmxhc3Rf cHRfdXBkYXRlKTsKIAlrZnJlZShib192YSk7CiB9CiAKQEAgLTE3MDksNyArMTcwOSw3IEBAIHZv aWQgYW1kZ3B1X3ZtX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRn cHVfdm0gKnZtKQogCiAJYW1kZ3B1X2JvX3VucmVmKCZ2bS0+cGFnZV9kaXJlY3RvcnktPnNoYWRv dyk7CiAJYW1kZ3B1X2JvX3VucmVmKCZ2bS0+cGFnZV9kaXJlY3RvcnkpOwotCWZlbmNlX3B1dCh2 bS0+cGFnZV9kaXJlY3RvcnlfZmVuY2UpOworCWRtYV9mZW5jZV9wdXQodm0tPnBhZ2VfZGlyZWN0 b3J5X2ZlbmNlKTsKIH0KIAogLyoqCkBAIC0xNzMzLDcgKzE3MzMsOCBAQCB2b2lkIGFtZGdwdV92 bV9tYW5hZ2VyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkgICAgICAmYWRl di0+dm1fbWFuYWdlci5pZHNfbHJ1KTsKIAl9CiAKLQlhZGV2LT52bV9tYW5hZ2VyLmZlbmNlX2Nv bnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKEFNREdQVV9NQVhfUklOR1MpOworCWFkZXYtPnZt X21hbmFnZXIuZmVuY2VfY29udGV4dCA9CisJCWRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKEFNREdQ VV9NQVhfUklOR1MpOwogCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpCiAJ CWFkZXYtPnZtX21hbmFnZXIuc2Vxbm9baV0gPSAwOwogCkBAIC0xNzU1LDggKzE3NTYsOCBAQCB2 b2lkIGFtZGdwdV92bV9tYW5hZ2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ Zm9yIChpID0gMDsgaSA8IEFNREdQVV9OVU1fVk07ICsraSkgewogCQlzdHJ1Y3QgYW1kZ3B1X3Zt X2lkICppZCA9ICZhZGV2LT52bV9tYW5hZ2VyLmlkc1tpXTsKIAotCQlmZW5jZV9wdXQoYWRldi0+ dm1fbWFuYWdlci5pZHNbaV0uZmlyc3QpOworCQlkbWFfZmVuY2VfcHV0KGFkZXYtPnZtX21hbmFn ZXIuaWRzW2ldLmZpcnN0KTsKIAkJYW1kZ3B1X3N5bmNfZnJlZSgmYWRldi0+dm1fbWFuYWdlci5p ZHNbaV0uYWN0aXZlKTsKLQkJZmVuY2VfcHV0KGlkLT5mbHVzaGVkX3VwZGF0ZXMpOworCQlkbWFf ZmVuY2VfcHV0KGlkLT5mbHVzaGVkX3VwZGF0ZXMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9jaWtfc2RtYS5jCmluZGV4IGNiOTUyYWNjNzEzMy4uMzIxYjlkNWE0ZTZlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKQEAgLTYyMiw3ICs2MjIsNyBAQCBzdGF0aWMg aW50IGNpa19zZG1hX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcg dGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJ c3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBk bWFfZmVuY2UgKmYgPSBOVUxMOwogCXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2 NCBncHVfYWRkcjsKQEAgLTY1NSw3ICs2NTUsNyBAQCBzdGF0aWMgaW50IGNpa19zZG1hX3Jpbmdf dGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikK IAkJZ290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91 dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlm IChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsK IAkJciA9IC1FVElNRURPVVQ7CkBAIC02NzUsNyArNjc1LDcgQEAgc3RhdGljIGludCBjaWtfc2Rt YV9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAK IGVycjE6CiAJYW1kZ3B1X2liX2ZyZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7 CisJZG1hX2ZlbmNlX3B1dChmKTsKIGVycjA6CiAJYW1kZ3B1X3diX2ZyZWUoYWRldiwgaW5kZXgp OwogCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y2XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92Nl8wLmMKaW5kZXggNDBh YmI2YjgxYzA5Li43ZGMxMWExOWU0OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92Nl8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2 XzAuYwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3Rf aWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiB7CiAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCXN0cnVjdCBhbWRncHVfaWIgaWI7Ci0J c3RydWN0IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAl1 aW50MzJfdCBzY3JhdGNoOwogCXVpbnQzMl90IHRtcCA9IDA7CiAJbG9uZyByOwpAQCAtMTU0OCw3 ICsxNTQ4LDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMjsKIAotCXIg PSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vf d2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9F UlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7CiAJCXIgPSAtRVRJTUVET1VUOwpA QCAtMTU2OSw3ICsxNTY5LDcgQEAgc3RhdGljIGludCBnZnhfdjZfMF9yaW5nX3Rlc3RfaWIoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAKIGVycjI6CiAJYW1kZ3B1X2li X2ZyZWUoYWRldiwgJmliLCBOVUxMKTsKLQlmZW5jZV9wdXQoZik7CisJZG1hX2ZlbmNlX3B1dChm KTsKIGVycjE6CiAJYW1kZ3B1X2dmeF9zY3JhdGNoX2ZyZWUoYWRldiwgc2NyYXRjaCk7CiAJcmV0 dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwppbmRleCA3MTExNmRhOWU3 ODIuLjM4NjVmZmU3ZGU1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y3XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCkBA IC0yMjg2LDcgKzIyODYsNyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3Qg ZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQzMl90 IHNjcmF0Y2g7CiAJdWludDMyX3QgdG1wID0gMDsKIAlsb25nIHI7CkBAIC0yMzEyLDcgKzIzMTIs NyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsIGxvbmcgdGltZW91dCkKIAlpZiAocikKIAkJZ290byBlcnIyOwogCi0JciA9IGZlbmNl X3dhaXRfdGltZW91dChmLCBmYWxzZSwgdGltZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3Rp bWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOwogCWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJh bWRncHU6IElCIHRlc3QgdGltZWQgb3V0XG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC0yMzMz LDcgKzIzMzMsNyBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAogZXJyMjoKIAlhbWRncHVfaWJfZnJlZShh ZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChmKTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogZXJy MToKIAlhbWRncHVfZ2Z4X3NjcmF0Y2hfZnJlZShhZGV2LCBzY3JhdGNoKTsKIAlyZXR1cm4gcjsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCmluZGV4IGVlNmE0OGEwOTIxNC4uYTlk ZDE4ODQ3YzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhf MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKQEAgLTc5OCw3 ICs3OTgsNyBAQCBzdGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYg PSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxMOwogCXVpbnQzMl90IHNjcmF0Y2g7 CiAJdWludDMyX3QgdG1wID0gMDsKIAlsb25nIHI7CkBAIC04MjQsNyArODI0LDcgQEAgc3RhdGlj IGludCBnZnhfdjhfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25n IHRpbWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMjsKIAotCXIgPSBmZW5jZV93YWl0X3RpbWVv dXQoZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZh bHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0 ZXN0IHRpbWVkIG91dC5cbiIpOwogCQlyID0gLUVUSU1FRE9VVDsKQEAgLTg0NCw3ICs4NDQsNyBA QCBzdGF0aWMgaW50IGdmeF92OF8wX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIGxvbmcgdGltZW91dCkKIAl9CiBlcnIyOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwg TlVMTCk7Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiBlcnIxOgogCWFtZGdw dV9nZnhfc2NyYXRjaF9mcmVlKGFkZXYsIHNjcmF0Y2gpOwogCXJldHVybiByOwpAQCAtMTU3NSw3 ICsxNTc1LDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9kb19lZGNfZ3ByX3dvcmthcm91bmRzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9 ICZhZGV2LT5nZnguY29tcHV0ZV9yaW5nWzBdOwogCXN0cnVjdCBhbWRncHVfaWIgaWI7Ci0Jc3Ry dWN0IGZlbmNlICpmID0gTlVMTDsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmID0gTlVMTDsKIAlpbnQg ciwgaTsKIAl1MzIgdG1wOwogCXVuc2lnbmVkIHRvdGFsX3NpemUsIHZncHJfb2Zmc2V0LCBzZ3By X29mZnNldDsKQEAgLTE3MDgsNyArMTcwOCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfZG9fZWRj X2dwcl93b3JrYXJvdW5kcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiAKIAkvKiB3 YWl0IGZvciB0aGUgR1BVIHRvIGZpbmlzaCBwcm9jZXNzaW5nIHRoZSBJQiAqLwotCXIgPSBmZW5j ZV93YWl0KGYsIGZhbHNlKTsKKwlyID0gZG1hX2ZlbmNlX3dhaXQoZiwgZmFsc2UpOwogCWlmIChy KSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7 CiAJCWdvdG8gZmFpbDsKQEAgLTE3MjksNyArMTcyOSw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBf ZG9fZWRjX2dwcl93b3JrYXJvdW5kcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogZmFp bDoKIAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChmKTsKKwlk bWFfZmVuY2VfcHV0KGYpOwogCiAJcmV0dXJuIHI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3NkbWFfdjJfNC5jCmluZGV4IDU2NWRhYjNjNzIxOC4uN2VkZjZlOGM2M2RjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYwpAQCAtNjY4LDcgKzY2OCw3IEBAIHN0YXRpYyBp bnQgc2RtYV92Ml80X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcg dGltZW91dCkKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJ c3RydWN0IGFtZGdwdV9pYiBpYjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBk bWFfZmVuY2UgKmYgPSBOVUxMOwogCXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2 NCBncHVfYWRkcjsKQEAgLTcwNSw3ICs3MDUsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjJfNF9yaW5n X3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIp CiAJCWdvdG8gZXJyMTsKIAotCXIgPSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVv dXQpOworCXIgPSBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlp ZiAociA9PSAwKSB7CiAJCURSTV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7 CiAJCXIgPSAtRVRJTUVET1VUOwpAQCAtNzI1LDcgKzcyNSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92 Ml80X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkK IAogZXJyMToKIAlhbWRncHVfaWJfZnJlZShhZGV2LCAmaWIsIE5VTEwpOwotCWZlbmNlX3B1dChm KTsKKwlkbWFfZmVuY2VfcHV0KGYpOwogZXJyMDoKIAlhbWRncHVfd2JfZnJlZShhZGV2LCBpbmRl eCk7CiAJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z ZG1hX3YzXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCmluZGV4 IGE5ZDEwOTQxZmI1My4uMTkzMmE2N2M2MmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zZG1hX3YzXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z ZG1hX3YzXzAuYwpAQCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3Jpbmdf dGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIHsKIAlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiBp YjsKLQlzdHJ1Y3QgZmVuY2UgKmYgPSBOVUxMOworCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSBOVUxM OwogCXVuc2lnbmVkIGluZGV4OwogCXUzMiB0bXAgPSAwOwogCXU2NCBncHVfYWRkcjsKQEAgLTkw OCw3ICs5MDgsNyBAQCBzdGF0aWMgaW50IHNkbWFfdjNfMF9yaW5nX3Rlc3RfaWIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCiAJaWYgKHIpCiAJCWdvdG8gZXJyMTsKIAot CXIgPSBmZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQpOworCXIgPSBkbWFfZmVu Y2Vfd2FpdF90aW1lb3V0KGYsIGZhbHNlLCB0aW1lb3V0KTsKIAlpZiAociA9PSAwKSB7CiAJCURS TV9FUlJPUigiYW1kZ3B1OiBJQiB0ZXN0IHRpbWVkIG91dFxuIik7CiAJCXIgPSAtRVRJTUVET1VU OwpAQCAtOTI3LDcgKzkyNyw3IEBAIHN0YXRpYyBpbnQgc2RtYV92M18wX3JpbmdfdGVzdF9pYihz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAl9CiBlcnIxOgogCWFtZGdw dV9pYl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7Ci0JZmVuY2VfcHV0KGYpOworCWRtYV9mZW5jZV9w dXQoZik7CiBlcnIwOgogCWFtZGdwdV93Yl9mcmVlKGFkZXYsIGluZGV4KTsKIAlyZXR1cm4gcjsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2lfZG1hLmMKaW5kZXggZGUzNTgxOTNhOGY5Li5iNGNmNGUy NWJmOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5jCkBAIC0yNzQsNyArMjc0LDcg QEAgc3RhdGljIGludCBzaV9kbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZywgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+ YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2liIGliOwotCXN0cnVjdCBmZW5jZSAqZiA9IE5VTEw7CisJ c3RydWN0IGRtYV9mZW5jZSAqZiA9IE5VTEw7CiAJdW5zaWduZWQgaW5kZXg7CiAJdTMyIHRtcCA9 IDA7CiAJdTY0IGdwdV9hZGRyOwpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBpbnQgc2lfZG1h X3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKIAlp ZiAocikKIAkJZ290byBlcnIxOwogCi0JciA9IGZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwg dGltZW91dCk7CisJciA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIHRpbWVvdXQp OwogCWlmIChyID09IDApIHsKIAkJRFJNX0VSUk9SKCJhbWRncHU6IElCIHRlc3QgdGltZWQgb3V0 XG4iKTsKIAkJciA9IC1FVElNRURPVVQ7CkBAIC0zMjUsNyArMzI1LDcgQEAgc3RhdGljIGludCBz aV9kbWFfcmluZ190ZXN0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyB0aW1lb3V0 KQogCiBlcnIxOgogCWFtZGdwdV9pYl9mcmVlKGFkZXYsICZpYiwgTlVMTCk7Ci0JZmVuY2VfcHV0 KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiBlcnIwOgogCWFtZGdwdV93Yl9mcmVlKGFkZXYsIGlu ZGV4KTsKIAlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1 bGVyL2dwdV9zY2hlZF90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1 X3NjaGVkX3RyYWNlLmgKaW5kZXggYjk2MWExYzZjYWYzLi5kYmQ0ZmQzYTgxMGIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZF90cmFjZS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZF90cmFjZS5oCkBAIC0xNyw3 ICsxNyw3IEBAIFRSQUNFX0VWRU5UKGFtZF9zY2hlZF9qb2IsCiAJICAgIFRQX1NUUlVDVF9fZW50 cnkoCiAJCQkgICAgIF9fZmllbGQoc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKiwgZW50aXR5KQog CQkJICAgICBfX2ZpZWxkKHN0cnVjdCBhbWRfc2NoZWRfam9iICosIHNjaGVkX2pvYikKLQkJCSAg ICAgX19maWVsZChzdHJ1Y3QgZmVuY2UgKiwgZmVuY2UpCisJCQkgICAgIF9fZmllbGQoc3RydWN0 IGRtYV9mZW5jZSAqLCBmZW5jZSkKIAkJCSAgICAgX19maWVsZChjb25zdCBjaGFyICosIG5hbWUp CiAJCQkgICAgIF9fZmllbGQodTMyLCBqb2JfY291bnQpCiAJCQkgICAgIF9fZmllbGQoaW50LCBo d19qb2JfY291bnQpCkBAIC00Miw3ICs0Miw3IEBAIFRSQUNFX0VWRU5UKGFtZF9zY2hlZF9wcm9j ZXNzX2pvYiwKIAkgICAgVFBfUFJPVE8oc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2UpLAog CSAgICBUUF9BUkdTKGZlbmNlKSwKIAkgICAgVFBfU1RSVUNUX19lbnRyeSgKLQkJICAgIF9fZmll bGQoc3RydWN0IGZlbmNlICosIGZlbmNlKQorCQkgICAgX19maWVsZChzdHJ1Y3QgZG1hX2ZlbmNl ICosIGZlbmNlKQogCQkgICAgKSwKIAogCSAgICBUUF9mYXN0X2Fzc2lnbigKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwppbmRleCA5NjNhMjRkNDZhOTMu LjUzNjRlNmE3ZWM4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIv Z3B1X3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9z Y2hlZHVsZXIuYwpAQCAtMzIsNyArMzIsNyBAQAogCiBzdGF0aWMgYm9vbCBhbWRfc2NoZWRfZW50 aXR5X2lzX3JlYWR5KHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5ICplbnRpdHkpOwogc3RhdGljIHZv aWQgYW1kX3NjaGVkX3dha2V1cChzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkKTsKLXN0 YXRpYyB2b2lkIGFtZF9zY2hlZF9wcm9jZXNzX2pvYihzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBm ZW5jZV9jYiAqY2IpOworc3RhdGljIHZvaWQgYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBk bWFfZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKTsKIAogc3RydWN0IGttZW1fY2Fj aGUgKnNjaGVkX2ZlbmNlX3NsYWI7CiBhdG9taWNfdCBzY2hlZF9mZW5jZV9zbGFiX3JlZiA9IEFU T01JQ19JTklUKDApOwpAQCAtMTQxLDcgKzE0MSw3IEBAIGludCBhbWRfc2NoZWRfZW50aXR5X2lu aXQoc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hlZCwKIAkJcmV0dXJuIHI7CiAKIAlhdG9t aWNfc2V0KCZlbnRpdHktPmZlbmNlX3NlcSwgMCk7Ci0JZW50aXR5LT5mZW5jZV9jb250ZXh0ID0g ZmVuY2VfY29udGV4dF9hbGxvYygyKTsKKwllbnRpdHktPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVu Y2VfY29udGV4dF9hbGxvYygyKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjIxLDMyICsyMjEsMzIg QEAgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2Zpbmkoc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpz Y2hlZCwKIAlrZmlmb19mcmVlKCZlbnRpdHktPmpvYl9xdWV1ZSk7CiB9CiAKLXN0YXRpYyB2b2lk IGFtZF9zY2hlZF9lbnRpdHlfd2FrZXVwKHN0cnVjdCBmZW5jZSAqZiwgc3RydWN0IGZlbmNlX2Ni ICpjYikKK3N0YXRpYyB2b2lkIGFtZF9zY2hlZF9lbnRpdHlfd2FrZXVwKHN0cnVjdCBkbWFfZmVu Y2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZW50 aXR5ICplbnRpdHkgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5 LCBjYik7CiAJZW50aXR5LT5kZXBlbmRlbmN5ID0gTlVMTDsKLQlmZW5jZV9wdXQoZik7CisJZG1h X2ZlbmNlX3B1dChmKTsKIAlhbWRfc2NoZWRfd2FrZXVwKGVudGl0eS0+c2NoZWQpOwogfQogCi1z dGF0aWMgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2NsZWFyX2RlcChzdHJ1Y3QgZmVuY2UgKmYsIHN0 cnVjdCBmZW5jZV9jYiAqY2IpCitzdGF0aWMgdm9pZCBhbWRfc2NoZWRfZW50aXR5X2NsZWFyX2Rl cChzdHJ1Y3QgZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYikKIHsKIAlzdHJ1 Y3QgYW1kX3NjaGVkX2VudGl0eSAqZW50aXR5ID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3Qg YW1kX3NjaGVkX2VudGl0eSwgY2IpOwogCWVudGl0eS0+ZGVwZW5kZW5jeSA9IE5VTEw7Ci0JZmVu Y2VfcHV0KGYpOworCWRtYV9mZW5jZV9wdXQoZik7CiB9CiAKIHN0YXRpYyBib29sIGFtZF9zY2hl ZF9lbnRpdHlfYWRkX2RlcGVuZGVuY3lfY2Ioc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0 eSkKIHsKIAlzdHJ1Y3QgYW1kX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gZW50aXR5LT5zY2hlZDsK LQlzdHJ1Y3QgZmVuY2UgKiBmZW5jZSA9IGVudGl0eS0+ZGVwZW5kZW5jeTsKKwlzdHJ1Y3QgZG1h X2ZlbmNlICogZmVuY2UgPSBlbnRpdHktPmRlcGVuZGVuY3k7CiAJc3RydWN0IGFtZF9zY2hlZF9m ZW5jZSAqc19mZW5jZTsKIAogCWlmIChmZW5jZS0+Y29udGV4dCA9PSBlbnRpdHktPmZlbmNlX2Nv bnRleHQpIHsKIAkJLyogV2UgY2FuIGlnbm9yZSBmZW5jZXMgZnJvbSBvdXJzZWxmICovCi0JCWZl bmNlX3B1dChlbnRpdHktPmRlcGVuZGVuY3kpOworCQlkbWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVw ZW5kZW5jeSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTI1NywyMyArMjU3LDIzIEBAIHN0 YXRpYyBib29sIGFtZF9zY2hlZF9lbnRpdHlfYWRkX2RlcGVuZGVuY3lfY2Ioc3RydWN0IGFtZF9z Y2hlZF9lbnRpdHkgKmVudGl0eSkKIAkJICogRmVuY2UgaXMgZnJvbSB0aGUgc2FtZSBzY2hlZHVs ZXIsIG9ubHkgbmVlZCB0byB3YWl0IGZvcgogCQkgKiBpdCB0byBiZSBzY2hlZHVsZWQKIAkJICov Ci0JCWZlbmNlID0gZmVuY2VfZ2V0KCZzX2ZlbmNlLT5zY2hlZHVsZWQpOwotCQlmZW5jZV9wdXQo ZW50aXR5LT5kZXBlbmRlbmN5KTsKKwkJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KCZzX2ZlbmNlLT5z Y2hlZHVsZWQpOworCQlkbWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5kZW5jeSk7CiAJCWVudGl0 eS0+ZGVwZW5kZW5jeSA9IGZlbmNlOwotCQlpZiAoIWZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwg JmVudGl0eS0+Y2IsCi0JCQkJCWFtZF9zY2hlZF9lbnRpdHlfY2xlYXJfZGVwKSkKKwkJaWYgKCFk bWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmZW50aXR5LT5jYiwKKwkJCQkJICAgIGFtZF9z Y2hlZF9lbnRpdHlfY2xlYXJfZGVwKSkKIAkJCXJldHVybiB0cnVlOwogCiAJCS8qIElnbm9yZSBp dCB3aGVuIGl0IGlzIGFscmVhZHkgc2NoZWR1bGVkICovCi0JCWZlbmNlX3B1dChmZW5jZSk7CisJ CWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaWYgKCFmZW5j ZV9hZGRfY2FsbGJhY2soZW50aXR5LT5kZXBlbmRlbmN5LCAmZW50aXR5LT5jYiwKLQkJCQlhbWRf c2NoZWRfZW50aXR5X3dha2V1cCkpCisJaWYgKCFkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGVudGl0 eS0+ZGVwZW5kZW5jeSwgJmVudGl0eS0+Y2IsCisJCQkJICAgIGFtZF9zY2hlZF9lbnRpdHlfd2Fr ZXVwKSkKIAkJcmV0dXJuIHRydWU7CiAKLQlmZW5jZV9wdXQoZW50aXR5LT5kZXBlbmRlbmN5KTsK KwlkbWFfZmVuY2VfcHV0KGVudGl0eS0+ZGVwZW5kZW5jeSk7CiAJcmV0dXJuIGZhbHNlOwogfQog CkBAIC0zNTQsNyArMzU0LDggQEAgc3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2goc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXNjaGVkLT5vcHMtPmZyZWVfam9iKHNfam9iKTsKIH0K IAotc3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2hfY2Ioc3RydWN0IGZlbmNlICpmLCBz dHJ1Y3QgZmVuY2VfY2IgKmNiKQorc3RhdGljIHZvaWQgYW1kX3NjaGVkX2pvYl9maW5pc2hfY2Io c3RydWN0IGRtYV9mZW5jZSAqZiwKKwkJCQkgICAgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7 CiAJc3RydWN0IGFtZF9zY2hlZF9qb2IgKmpvYiA9IGNvbnRhaW5lcl9vZihjYiwgc3RydWN0IGFt ZF9zY2hlZF9qb2IsCiAJCQkJCQkgZmluaXNoX2NiKTsKQEAgLTM4OCw4ICszODksOCBAQCB2b2lk IGFtZF9zY2hlZF9od19qb2JfcmVzZXQoc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICpzY2hlZCkK IAogCXNwaW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50 cnlfcmV2ZXJzZShzX2pvYiwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7Ci0JCWlm IChmZW5jZV9yZW1vdmVfY2FsbGJhY2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwgJnNfam9iLT5z X2ZlbmNlLT5jYikpIHsKLQkJCWZlbmNlX3B1dChzX2pvYi0+c19mZW5jZS0+cGFyZW50KTsKKwkJ aWYgKGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwgJnNf am9iLT5zX2ZlbmNlLT5jYikpIHsKKwkJCWRtYV9mZW5jZV9wdXQoc19qb2ItPnNfZmVuY2UtPnBh cmVudCk7CiAJCQlzX2pvYi0+c19mZW5jZS0+cGFyZW50ID0gTlVMTDsKIAkJfQogCX0KQEAgLTQx MCwyMSArNDExLDIxIEBAIHZvaWQgYW1kX3NjaGVkX2pvYl9yZWNvdmVyeShzdHJ1Y3QgYW1kX2dw dV9zY2hlZHVsZXIgKnNjaGVkKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0 bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdHJ1Y3QgYW1kX3NjaGVk X2ZlbmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVuY2U7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2U7 CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCiAJCXNwaW5fdW5sb2NrKCZzY2hlZC0+am9i X2xpc3RfbG9jayk7CiAJCWZlbmNlID0gc2NoZWQtPm9wcy0+cnVuX2pvYihzX2pvYik7CiAJCWF0 b21pY19pbmMoJnNjaGVkLT5od19ycV9jb3VudCk7CiAJCWlmIChmZW5jZSkgewotCQkJc19mZW5j ZS0+cGFyZW50ID0gZmVuY2VfZ2V0KGZlbmNlKTsKLQkJCXIgPSBmZW5jZV9hZGRfY2FsbGJhY2so ZmVuY2UsICZzX2ZlbmNlLT5jYiwKLQkJCQkJICAgICAgIGFtZF9zY2hlZF9wcm9jZXNzX2pvYik7 CisJCQlzX2ZlbmNlLT5wYXJlbnQgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKKwkJCXIgPSBkbWFf ZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmc19mZW5jZS0+Y2IsCisJCQkJCQkgICBhbWRfc2No ZWRfcHJvY2Vzc19qb2IpOwogCQkJaWYgKHIgPT0gLUVOT0VOVCkKIAkJCQlhbWRfc2NoZWRfcHJv Y2Vzc19qb2IoZmVuY2UsICZzX2ZlbmNlLT5jYik7CiAJCQllbHNlIGlmIChyKQogCQkJCURSTV9F UlJPUigiZmVuY2UgYWRkIGNhbGxiYWNrIGZhaWxlZCAoJWQpXG4iLAogCQkJCQkgIHIpOwotCQkJ ZmVuY2VfcHV0KGZlbmNlKTsKKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQl9IGVsc2Ugewog CQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcnVuIGpvYiFcbiIpOwogCQkJYW1kX3NjaGVkX3Byb2Nl c3Nfam9iKE5VTEwsICZzX2ZlbmNlLT5jYik7CkBAIC00NDYsOCArNDQ3LDggQEAgdm9pZCBhbWRf c2NoZWRfZW50aXR5X3B1c2hfam9iKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJ c3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9IHNjaGVkX2pvYi0+c19lbnRpdHk7CiAK IAl0cmFjZV9hbWRfc2NoZWRfam9iKHNjaGVkX2pvYik7Ci0JZmVuY2VfYWRkX2NhbGxiYWNrKCZz Y2hlZF9qb2ItPnNfZmVuY2UtPmZpbmlzaGVkLCAmc2NoZWRfam9iLT5maW5pc2hfY2IsCi0JCQkg ICBhbWRfc2NoZWRfam9iX2ZpbmlzaF9jYik7CisJZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaygmc2No ZWRfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCwgJnNjaGVkX2pvYi0+ZmluaXNoX2NiLAorCQkJICAg ICAgIGFtZF9zY2hlZF9qb2JfZmluaXNoX2NiKTsKIAl3YWl0X2V2ZW50KGVudGl0eS0+c2NoZWQt PmpvYl9zY2hlZHVsZWQsCiAJCSAgIGFtZF9zY2hlZF9lbnRpdHlfaW4oc2NoZWRfam9iKSk7CiB9 CkBAIC01MTEsNyArNTEyLDcgQEAgYW1kX3NjaGVkX3NlbGVjdF9lbnRpdHkoc3RydWN0IGFtZF9n cHVfc2NoZWR1bGVyICpzY2hlZCkKIAlyZXR1cm4gZW50aXR5OwogfQogCi1zdGF0aWMgdm9pZCBh bWRfc2NoZWRfcHJvY2Vzc19qb2Ioc3RydWN0IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNi KQorc3RhdGljIHZvaWQgYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFfZmVuY2UgKmYs IHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNf ZmVuY2UgPQogCQljb250YWluZXJfb2YoY2IsIHN0cnVjdCBhbWRfc2NoZWRfZmVuY2UsIGNiKTsK QEAgLTUyMSw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCBhbWRfc2NoZWRfcHJvY2Vzc19qb2Ioc3Ry dWN0IGZlbmNlICpmLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogCWFtZF9zY2hlZF9mZW5jZV9maW5p c2hlZChzX2ZlbmNlKTsKIAogCXRyYWNlX2FtZF9zY2hlZF9wcm9jZXNzX2pvYihzX2ZlbmNlKTsK LQlmZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsKKwlkbWFfZmVuY2VfcHV0KCZzX2ZlbmNl LT5maW5pc2hlZCk7CiAJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZzY2hlZC0+d2FrZV91cF93b3Jr ZXIpOwogfQogCkBAIC01NDcsNyArNTQ4LDcgQEAgc3RhdGljIGludCBhbWRfc2NoZWRfbWFpbih2 b2lkICpwYXJhbSkKIAkJc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgKmVudGl0eSA9IE5VTEw7CiAJ CXN0cnVjdCBhbWRfc2NoZWRfZmVuY2UgKnNfZmVuY2U7CiAJCXN0cnVjdCBhbWRfc2NoZWRfam9i ICpzY2hlZF9qb2I7Ci0JCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlOwogCiAJCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShzY2hlZC0+d2FrZV91cF93b3Jr ZXIsCiAJCQkJCSAoIWFtZF9zY2hlZF9ibG9ja2VkKHNjaGVkKSAmJgpAQCAtNTY5LDE1ICs1NzAs MTUgQEAgc3RhdGljIGludCBhbWRfc2NoZWRfbWFpbih2b2lkICpwYXJhbSkKIAkJZmVuY2UgPSBz Y2hlZC0+b3BzLT5ydW5fam9iKHNjaGVkX2pvYik7CiAJCWFtZF9zY2hlZF9mZW5jZV9zY2hlZHVs ZWQoc19mZW5jZSk7CiAJCWlmIChmZW5jZSkgewotCQkJc19mZW5jZS0+cGFyZW50ID0gZmVuY2Vf Z2V0KGZlbmNlKTsKLQkJCXIgPSBmZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzX2ZlbmNlLT5j YiwKLQkJCQkJICAgICAgIGFtZF9zY2hlZF9wcm9jZXNzX2pvYik7CisJCQlzX2ZlbmNlLT5wYXJl bnQgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKKwkJCXIgPSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNr KGZlbmNlLCAmc19mZW5jZS0+Y2IsCisJCQkJCQkgICBhbWRfc2NoZWRfcHJvY2Vzc19qb2IpOwog CQkJaWYgKHIgPT0gLUVOT0VOVCkKIAkJCQlhbWRfc2NoZWRfcHJvY2Vzc19qb2IoZmVuY2UsICZz X2ZlbmNlLT5jYik7CiAJCQllbHNlIGlmIChyKQogCQkJCURSTV9FUlJPUigiZmVuY2UgYWRkIGNh bGxiYWNrIGZhaWxlZCAoJWQpXG4iLAogCQkJCQkgIHIpOwotCQkJZmVuY2VfcHV0KGZlbmNlKTsK KwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQl9IGVsc2UgewogCQkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcnVuIGpvYiFcbiIpOwogCQkJYW1kX3NjaGVkX3Byb2Nlc3Nfam9iKE5VTEwsICZzX2Zl bmNlLT5jYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVf c2NoZWR1bGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVy LmgKaW5kZXggN2NiYmJmYjUwMmVmLi44NzZhYTQzYjU3ZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNkZWZp bmUgX0dQVV9TQ0hFRFVMRVJfSF8KIAogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+Ci0jaW5jbHVk ZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogc3RydWN0 IGFtZF9ncHVfc2NoZWR1bGVyOwogc3RydWN0IGFtZF9zY2hlZF9ycTsKQEAgLTUwLDggKzUwLDgg QEAgc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgewogCWF0b21pY190CQkJZmVuY2Vfc2VxOwogCXVp bnQ2NF90ICAgICAgICAgICAgICAgICAgICAgICAgZmVuY2VfY29udGV4dDsKIAotCXN0cnVjdCBm ZW5jZQkJCSpkZXBlbmRlbmN5OwotCXN0cnVjdCBmZW5jZV9jYgkJCWNiOworCXN0cnVjdCBkbWFf ZmVuY2UJCSpkZXBlbmRlbmN5OworCXN0cnVjdCBkbWFfZmVuY2VfY2IJCWNiOwogfTsKIAogLyoq CkBAIC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGFtZF9zY2hlZF9ycSB7CiB9OwogCiBzdHJ1Y3Qg YW1kX3NjaGVkX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAgICAgICAgIHNjaGVk dWxlZDsKLQlzdHJ1Y3QgZmVuY2UgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkOwotCXN0cnVj dCBmZW5jZV9jYiAgICAgICAgICAgICAgICAgY2I7Ci0Jc3RydWN0IGZlbmNlICAgICAgICAgICAg ICAgICAgICAqcGFyZW50OworCXN0cnVjdCBkbWFfZmVuY2UgICAgICAgICAgICAgICAgc2NoZWR1 bGVkOworCXN0cnVjdCBkbWFfZmVuY2UgICAgICAgICAgICAgICAgZmluaXNoZWQ7CisJc3RydWN0 IGRtYV9mZW5jZV9jYiAgICAgICAgICAgICBjYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICAgICAgICAg ICAgICAgICpwYXJlbnQ7CiAJc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyCSpzY2hlZDsKIAlzcGlu bG9ja190CQkJbG9jazsKIAl2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvd25lcjsK QEAgLTc5LDE1ICs3OSwxNSBAQCBzdHJ1Y3QgYW1kX3NjaGVkX2pvYiB7CiAJc3RydWN0IGFtZF9n cHVfc2NoZWR1bGVyICAgICAgICAqc2NoZWQ7CiAJc3RydWN0IGFtZF9zY2hlZF9lbnRpdHkgICAg ICAgICAqc19lbnRpdHk7CiAJc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAgICAgICAgICAqc19mZW5j ZTsKLQlzdHJ1Y3QgZmVuY2VfY2IJCQlmaW5pc2hfY2I7CisJc3RydWN0IGRtYV9mZW5jZV9jYgkJ ZmluaXNoX2NiOwogCXN0cnVjdCB3b3JrX3N0cnVjdAkJZmluaXNoX3dvcms7CiAJc3RydWN0IGxp c3RfaGVhZAkJbm9kZTsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrCQl3b3JrX3RkcjsKIH07CiAKLWV4 dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVk OwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNlX29wc19maW5p c2hlZDsKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqdG9fYW1kX3NjaGVk X2ZlbmNlKHN0cnVjdCBmZW5jZSAqZikKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29w cyBhbWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyBhbWRfc2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkOworc3RhdGljIGlubGluZSBz dHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICp0b19hbWRfc2NoZWRfZmVuY2Uoc3RydWN0IGRtYV9mZW5j ZSAqZikKIHsKIAlpZiAoZi0+b3BzID09ICZhbWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZCkK IAkJcmV0dXJuIGNvbnRhaW5lcl9vZihmLCBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlLCBzY2hlZHVs ZWQpOwpAQCAtMTAzLDggKzEwMyw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZF9zY2hlZF9m ZW5jZSAqdG9fYW1kX3NjaGVkX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZikKICAqIHRoZXNlIGZ1bmN0 aW9ucyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gZHJpdmVyIHNpZGUKICovCiBzdHJ1Y3QgYW1k X3NjaGVkX2JhY2tlbmRfb3BzIHsKLQlzdHJ1Y3QgZmVuY2UgKigqZGVwZW5kZW5jeSkoc3RydWN0 IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYik7Ci0Jc3RydWN0IGZlbmNlICooKnJ1bl9qb2IpKHN0 cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpOworCXN0cnVjdCBkbWFfZmVuY2UgKigqZGVw ZW5kZW5jeSkoc3RydWN0IGFtZF9zY2hlZF9qb2IgKnNjaGVkX2pvYik7CisJc3RydWN0IGRtYV9m ZW5jZSAqKCpydW5fam9iKShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKTsKIAl2b2lk ICgqdGltZWRvdXRfam9iKShzdHJ1Y3QgYW1kX3NjaGVkX2pvYiAqc2NoZWRfam9iKTsKIAl2b2lk ICgqZnJlZV9qb2IpKHN0cnVjdCBhbWRfc2NoZWRfam9iICpzY2hlZF9qb2IpOwogfTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVkX2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9zY2hlZF9mZW5jZS5jCmluZGV4IDZiNjNiZWFmNzU3 NC4uYzI2ZmEyOThmZTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxl ci9zY2hlZF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL3NjaGVk X2ZlbmNlLmMKQEAgLTQyLDQ2ICs0Miw1MCBAQCBzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICphbWRf c2NoZWRfZmVuY2VfY3JlYXRlKHN0cnVjdCBhbWRfc2NoZWRfZW50aXR5ICplbnRpdHksCiAJc3Bp bl9sb2NrX2luaXQoJmZlbmNlLT5sb2NrKTsKIAogCXNlcSA9IGF0b21pY19pbmNfcmV0dXJuKCZl bnRpdHktPmZlbmNlX3NlcSk7Ci0JZmVuY2VfaW5pdCgmZmVuY2UtPnNjaGVkdWxlZCwgJmFtZF9z Y2hlZF9mZW5jZV9vcHNfc2NoZWR1bGVkLAotCQkgICAmZmVuY2UtPmxvY2ssIGVudGl0eS0+ZmVu Y2VfY29udGV4dCwgc2VxKTsKLQlmZW5jZV9pbml0KCZmZW5jZS0+ZmluaXNoZWQsICZhbWRfc2No ZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkLAotCQkgICAmZmVuY2UtPmxvY2ssIGVudGl0eS0+ZmVuY2Vf Y29udGV4dCArIDEsIHNlcSk7CisJZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5zY2hlZHVsZWQsICZh bWRfc2NoZWRfZmVuY2Vfb3BzX3NjaGVkdWxlZCwKKwkJICAgICAgICZmZW5jZS0+bG9jaywgZW50 aXR5LT5mZW5jZV9jb250ZXh0LCBzZXEpOworCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+ZmluaXNo ZWQsICZhbWRfc2NoZWRfZmVuY2Vfb3BzX2ZpbmlzaGVkLAorCQkgICAgICAgJmZlbmNlLT5sb2Nr LCBlbnRpdHktPmZlbmNlX2NvbnRleHQgKyAxLCBzZXEpOwogCiAJcmV0dXJuIGZlbmNlOwogfQog CiB2b2lkIGFtZF9zY2hlZF9mZW5jZV9zY2hlZHVsZWQoc3RydWN0IGFtZF9zY2hlZF9mZW5jZSAq ZmVuY2UpCiB7Ci0JaW50IHJldCA9IGZlbmNlX3NpZ25hbCgmZmVuY2UtPnNjaGVkdWxlZCk7CisJ aW50IHJldCA9IGRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5zY2hlZHVsZWQpOwogCiAJaWYgKCFy ZXQpCi0JCUZFTkNFX1RSQUNFKCZmZW5jZS0+c2NoZWR1bGVkLCAic2lnbmFsZWQgZnJvbSBpcnEg Y29udGV4dFxuIik7CisJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPnNjaGVkdWxlZCwKKwkJCQki c2lnbmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CiAJZWxzZQotCQlGRU5DRV9UUkFDRSgmZmVu Y2UtPnNjaGVkdWxlZCwgIndhcyBhbHJlYWR5IHNpZ25hbGVkXG4iKTsKKwkJRE1BX0ZFTkNFX1RS QUNFKCZmZW5jZS0+c2NoZWR1bGVkLAorCQkJCSJ3YXMgYWxyZWFkeSBzaWduYWxlZFxuIik7CiB9 CiAKIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX2ZpbmlzaGVkKHN0cnVjdCBhbWRfc2NoZWRfZmVuY2Ug KmZlbmNlKQogewotCWludCByZXQgPSBmZW5jZV9zaWduYWwoJmZlbmNlLT5maW5pc2hlZCk7CisJ aW50IHJldCA9IGRtYV9mZW5jZV9zaWduYWwoJmZlbmNlLT5maW5pc2hlZCk7CiAKIAlpZiAoIXJl dCkKLQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5maW5pc2hlZCwgInNpZ25hbGVkIGZyb20gaXJxIGNv bnRleHRcbiIpOworCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5maW5pc2hlZCwKKwkJCQkic2ln bmFsZWQgZnJvbSBpcnEgY29udGV4dFxuIik7CiAJZWxzZQotCQlGRU5DRV9UUkFDRSgmZmVuY2Ut PmZpbmlzaGVkLCAid2FzIGFscmVhZHkgc2lnbmFsZWRcbiIpOworCQlETUFfRkVOQ0VfVFJBQ0Uo JmZlbmNlLT5maW5pc2hlZCwKKwkJCQkid2FzIGFscmVhZHkgc2lnbmFsZWRcbiIpOwogfQogCi1z dGF0aWMgY29uc3QgY2hhciAqYW1kX3NjaGVkX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKmFtZF9zY2hlZF9mZW5jZV9nZXRfZHJp dmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJhbWRfc2NoZWQi OwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqYW1kX3NjaGVkX2ZlbmNlX2dldF90aW1lbGluZV9u YW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICphbWRfc2NoZWRfZmVuY2Vf Z2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgYW1kX3Nj aGVkX2ZlbmNlICpmZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShmKTsKIAlyZXR1cm4gKGNvbnN0 IGNoYXIgKilmZW5jZS0+c2NoZWQtPm5hbWU7CiB9CiAKLXN0YXRpYyBib29sIGFtZF9zY2hlZF9m ZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIGFtZF9z Y2hlZF9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJcmV0 dXJuIHRydWU7CiB9CkBAIC05NSwxMCArOTksMTAgQEAgc3RhdGljIGJvb2wgYW1kX3NjaGVkX2Zl bmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQogICovCiBzdGF0aWMgdm9pZCBh bWRfc2NoZWRfZmVuY2VfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKIHsKLQlzdHJ1Y3QgZmVu Y2UgKmYgPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgZmVuY2UsIHJjdSk7CisJc3RydWN0IGRt YV9mZW5jZSAqZiA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBkbWFfZmVuY2UsIHJjdSk7CiAJ c3RydWN0IGFtZF9zY2hlZF9mZW5jZSAqZmVuY2UgPSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAK LQlmZW5jZV9wdXQoZmVuY2UtPnBhcmVudCk7CisJZG1hX2ZlbmNlX3B1dChmZW5jZS0+cGFyZW50 KTsKIAlrbWVtX2NhY2hlX2ZyZWUoc2NoZWRfZmVuY2Vfc2xhYiwgZmVuY2UpOwogfQogCkBAIC0x MTAsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX2ZyZWUoc3RydWN0IHJj dV9oZWFkICpyY3UpCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSByZWZlcmVu Y2UgY291bnQgYmVjb21lcyB6ZXJvLgogICogSXQganVzdCBSQ1Ugc2NoZWR1bGVzIGZyZWVpbmcg dXAgdGhlIGZlbmNlLgogICovCi1zdGF0aWMgdm9pZCBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9z Y2hlZHVsZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgYW1kX3NjaGVkX2ZlbmNlX3Jl bGVhc2Vfc2NoZWR1bGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IGFtZF9zY2hl ZF9mZW5jZSAqZmVuY2UgPSB0b19hbWRfc2NoZWRfZmVuY2UoZik7CiAKQEAgLTEyNCwyNyArMTI4 LDI3IEBAIHN0YXRpYyB2b2lkIGFtZF9zY2hlZF9mZW5jZV9yZWxlYXNlX3NjaGVkdWxlZChzdHJ1 Y3QgZmVuY2UgKmYpCiAgKgogICogRHJvcCB0aGUgZXh0cmEgcmVmZXJlbmNlIGZyb20gdGhlIHNj aGVkdWxlZCBmZW5jZSB0byB0aGUgYmFzZSBmZW5jZS4KICAqLwotc3RhdGljIHZvaWQgYW1kX3Nj aGVkX2ZlbmNlX3JlbGVhc2VfZmluaXNoZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQg YW1kX3NjaGVkX2ZlbmNlX3JlbGVhc2VfZmluaXNoZWQoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsK IAlzdHJ1Y3QgYW1kX3NjaGVkX2ZlbmNlICpmZW5jZSA9IHRvX2FtZF9zY2hlZF9mZW5jZShmKTsK IAotCWZlbmNlX3B1dCgmZmVuY2UtPnNjaGVkdWxlZCk7CisJZG1hX2ZlbmNlX3B1dCgmZmVuY2Ut PnNjaGVkdWxlZCk7CiB9CiAKLWNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNl X29wc19zY2hlZHVsZWQgPSB7Citjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyBhbWRfc2NoZWRf ZmVuY2Vfb3BzX3NjaGVkdWxlZCA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gYW1kX3NjaGVkX2Zl bmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSBhbWRfc2NoZWRfZmVu Y2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBhbWRfc2NoZWRfZmVu Y2VfZW5hYmxlX3NpZ25hbGluZywKIAkuc2lnbmFsZWQgPSBOVUxMLAotCS53YWl0ID0gZmVuY2Vf ZGVmYXVsdF93YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFz ZSA9IGFtZF9zY2hlZF9mZW5jZV9yZWxlYXNlX3NjaGVkdWxlZCwKIH07CiAKLWNvbnN0IHN0cnVj dCBmZW5jZV9vcHMgYW1kX3NjaGVkX2ZlbmNlX29wc19maW5pc2hlZCA9IHsKK2NvbnN0IHN0cnVj dCBkbWFfZmVuY2Vfb3BzIGFtZF9zY2hlZF9mZW5jZV9vcHNfZmluaXNoZWQgPSB7CiAJLmdldF9k cml2ZXJfbmFtZSA9IGFtZF9zY2hlZF9mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1l bGluZV9uYW1lID0gYW1kX3NjaGVkX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVf c2lnbmFsaW5nID0gYW1kX3NjaGVkX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVk ID0gTlVMTCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9mZW5j ZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBhbWRfc2NoZWRfZmVuY2VfcmVsZWFzZV9maW5p c2hlZCwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCAxYjVhMzJkZjlhOWEuLmMzMmZiM2MxZDZm MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC0xNDYzLDcgKzE0NjMsNyBAQCBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0KTsKIAogc3RhdGljIHN0cnVjdCBkcm1fcGVu ZGluZ192YmxhbmtfZXZlbnQgKmNyZWF0ZV92YmxhbmtfZXZlbnQoCiAJCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQlzdHJ1Y3QgZmVuY2UgKmZl bmNlLCB1aW50NjRfdCB1c2VyX2RhdGEpCisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCB1aW50 NjRfdCB1c2VyX2RhdGEpCiB7CiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSA9 IE5VTEw7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggZjkz NjI3NjBiZmIyLi43NWFkMDFkNTk1ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNf aGVscGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEt ZmVuY2UuaD4KIAogI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCiAKQEAgLTEwMTcsNyAr MTAxNyw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRf ZW5hYmxlcyk7CiAgKiBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKCkgc28gaXQgdXNlcyB0 aGUgY3VycmVudCBwbGFuZSBzdGF0ZSAoYW5kCiAgKiBqdXN0IHVzZXMgdGhlIGF0b21pYyBzdGF0 ZSB0byBmaW5kIHRoZSBjaGFuZ2VkIHBsYW5lcykKICAqCi0gKiBSZXR1cm5zIHplcm8gaWYgc3Vj Y2VzcyBvciA8IDAgaWYgZmVuY2Vfd2FpdCgpIGZhaWxzLgorICogUmV0dXJucyB6ZXJvIGlmIHN1 Y2Nlc3Mgb3IgPCAwIGlmIGRtYV9mZW5jZV93YWl0KCkgZmFpbHMuCiAgKi8KIGludCBkcm1fYXRv bWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkg ICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCkBAIC0xMDQxLDExICsxMDQxLDEx IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9mZW5jZXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJICogc3RpbGwgaW50ZXJydXB0IHRoZSBvcGVyYXRpb24uIEluc3RlYWQgb2Yg YmxvY2tpbmcgdW50aWwgdGhlCiAJCSAqIHRpbWVyIGV4cGlyZXMsIG1ha2UgdGhlIHdhaXQgaW50 ZXJydXB0aWJsZS4KIAkJICovCi0JCXJldCA9IGZlbmNlX3dhaXQocGxhbmVfc3RhdGUtPmZlbmNl LCBwcmVfc3dhcCk7CisJCXJldCA9IGRtYV9mZW5jZV93YWl0KHBsYW5lX3N0YXRlLT5mZW5jZSwg cHJlX3N3YXApOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlmZW5jZV9wdXQocGxh bmVfc3RhdGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChwbGFuZV9zdGF0ZS0+ZmVuY2UpOwog CQlwbGFuZV9zdGF0ZS0+ZmVuY2UgPSBOVUxMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mb3BzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwppbmRleCA4YmVk NWY0NTkxODIuLmNmOTkzZGJmNjAyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9m b3BzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMKQEAgLTY2NSw3ICs2NjUsNyBA QCB2b2lkIGRybV9ldmVudF9jYW5jZWxfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwogCiAJaWYgKHAt PmZlbmNlKQotCQlmZW5jZV9wdXQocC0+ZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KHAtPmZlbmNl KTsKIAogCWtmcmVlKHApOwogfQpAQCAtNjk2LDggKzY5Niw4IEBAIHZvaWQgZHJtX3NlbmRfZXZl bnRfbG9ja2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fcGVuZGluZ19ldmVu dCAqZSkKIAl9CiAKIAlpZiAoZS0+ZmVuY2UpIHsKLQkJZmVuY2Vfc2lnbmFsKGUtPmZlbmNlKTsK LQkJZmVuY2VfcHV0KGUtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbChlLT5mZW5jZSk7CisJ CWRtYV9mZW5jZV9wdXQoZS0+ZmVuY2UpOwogCX0KIAogCWlmICghZS0+ZmlsZV9wcml2KSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwppbmRleCAzNzU1ZWY5MzVhZjQuLjdkMDY2 YTkxZDc3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jCkBAIC00NjYsMTAg KzQ2NiwxMCBAQCBpbnQgZXRuYXZpdl9nZW1fd2FpdF9ibyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdw dSwgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiB9CiAKICNpZmRlZiBDT05GSUdfREVCVUdf RlMKLXN0YXRpYyB2b2lkIGV0bmF2aXZfZ2VtX2Rlc2NyaWJlX2ZlbmNlKHN0cnVjdCBmZW5jZSAq ZmVuY2UsCitzdGF0aWMgdm9pZCBldG5hdml2X2dlbV9kZXNjcmliZV9mZW5jZShzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSwKIAljb25zdCBjaGFyICp0eXBlLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7 Ci0JaWYgKCF0ZXN0X2JpdChGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5mbGFncykp CisJaWYgKCF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+Zmxh Z3MpKQogCQlzZXFfcHJpbnRmKG0sICJcdCU5czogJXMgJXMgc2VxICV1XG4iLAogCQkJICAgdHlw ZSwKIAkJCSAgIGZlbmNlLT5vcHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSksCkBAIC00ODIsNyAr NDgyLDcgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9nZW1fZGVzY3JpYmUoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2Jq ZWN0ICpldG5hdml2X29iaiA9IHRvX2V0bmF2aXZfYm8ob2JqKTsKIAlzdHJ1Y3QgcmVzZXJ2YXRp b25fb2JqZWN0ICpyb2JqID0gZXRuYXZpdl9vYmotPnJlc3Y7CiAJc3RydWN0IHJlc2VydmF0aW9u X29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CiAJdW5zaWduZWQgbG9uZyBvZmYgPSBkcm1fdm1hX25vZGVfc3RhcnQoJm9i ai0+dm1hX25vZGUpOwogCiAJc2VxX3ByaW50ZihtLCAiJTA4eDogJWMgJTJkICglMmQpICUwOGx4 ICVwICV6ZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jCmluZGV4IGIxMjU0 Zjg4NWZlZC4uZDIyMTE4MjVlNWM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1 LmMKQEAgLTE1LDcgKzE1LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+ Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4K ICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2Rldmlj ZS5oPgogI2luY2x1ZGUgImV0bmF2aXZfZHVtcC5oIgpAQCAtODgyLDcgKzg4Miw3IEBAIHN0YXRp YyB2b2lkIHJlY292ZXJfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShncHUtPmV2ZW50KTsgaSsrKSB7CiAJCWlmICghZ3B1LT5ldmVu dFtpXS51c2VkKQogCQkJY29udGludWU7Ci0JCWZlbmNlX3NpZ25hbChncHUtPmV2ZW50W2ldLmZl bmNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbChncHUtPmV2ZW50W2ldLmZlbmNlKTsKIAkJZ3B1LT5l dmVudFtpXS5mZW5jZSA9IE5VTEw7CiAJCWdwdS0+ZXZlbnRbaV0udXNlZCA9IGZhbHNlOwogCQlj b21wbGV0ZSgmZ3B1LT5ldmVudF9mcmVlKTsKQEAgLTk1Miw1NSArOTUyLDU1IEBAIHN0YXRpYyB2 b2lkIGhhbmdjaGVja19kaXNhYmxlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogLyogZmVuY2Ug b2JqZWN0IG1hbmFnZW1lbnQgKi8KIHN0cnVjdCBldG5hdml2X2ZlbmNlIHsKIAlzdHJ1Y3QgZXRu YXZpdl9ncHUgKmdwdTsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJh c2U7CiB9OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBldG5hdml2X2ZlbmNlICp0b19ldG5hdml2 X2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBldG5hdml2 X2ZlbmNlICp0b19ldG5hdml2X2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJl dHVybiBjb250YWluZXJfb2YoZmVuY2UsIHN0cnVjdCBldG5hdml2X2ZlbmNlLCBiYXNlKTsKIH0K IAotc3RhdGljIGNvbnN0IGNoYXIgKmV0bmF2aXZfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqZXRuYXZpdl9mZW5jZV9nZXRfZHJp dmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJldG5hdml2IjsK IH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKmV0bmF2aXZfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUo c3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICpldG5hdml2X2ZlbmNlX2dl dF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBldG5h dml2X2ZlbmNlICpmID0gdG9fZXRuYXZpdl9mZW5jZShmZW5jZSk7CiAKIAlyZXR1cm4gZGV2X25h bWUoZi0+Z3B1LT5kZXYpOwogfQogCi1zdGF0aWMgYm9vbCBldG5hdml2X2ZlbmNlX2VuYWJsZV9z aWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIGV0bmF2aXZfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gdHJ1 ZTsKIH0KIAotc3RhdGljIGJvb2wgZXRuYXZpdl9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGJvb2wgZXRuYXZpdl9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9mZW5jZSAqZiA9IHRvX2V0bmF2aXZfZmVu Y2UoZmVuY2UpOwogCiAJcmV0dXJuIGZlbmNlX2NvbXBsZXRlZChmLT5ncHUsIGYtPmJhc2Uuc2Vx bm8pOwogfQogCi1zdGF0aWMgdm9pZCBldG5hdml2X2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNl ICpmZW5jZSkKK3N0YXRpYyB2b2lkIGV0bmF2aXZfZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9mZW5jZSAqZiA9IHRvX2V0bmF2aXZfZmVu Y2UoZmVuY2UpOwogCiAJa2ZyZWVfcmN1KGYsIGJhc2UucmN1KTsKIH0KIAotc3RhdGljIGNvbnN0 IHN0cnVjdCBmZW5jZV9vcHMgZXRuYXZpdl9mZW5jZV9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRtYV9mZW5jZV9vcHMgZXRuYXZpdl9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFt ZSA9IGV0bmF2aXZfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFtZSA9 IGV0bmF2aXZfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9zaWduYWxpbmcgPSBl dG5hdml2X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gZXRuYXZpdl9mZW5j ZV9zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKKwkud2FpdCA9IGRtYV9m ZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBldG5hdml2X2ZlbmNlX3JlbGVhc2UsCiB9 OwogCi1zdGF0aWMgc3RydWN0IGZlbmNlICpldG5hdml2X2dwdV9mZW5jZV9hbGxvYyhzdHJ1Y3Qg ZXRuYXZpdl9ncHUgKmdwdSkKK3N0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICpldG5hdml2X2dwdV9m ZW5jZV9hbGxvYyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9m ZW5jZSAqZjsKIApAQCAtMTAxMCw4ICsxMDEwLDggQEAgc3RhdGljIHN0cnVjdCBmZW5jZSAqZXRu YXZpdl9ncHVfZmVuY2VfYWxsb2Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAKIAlmLT5ncHUg PSBncHU7CiAKLQlmZW5jZV9pbml0KCZmLT5iYXNlLCAmZXRuYXZpdl9mZW5jZV9vcHMsICZncHUt PmZlbmNlX3NwaW5sb2NrLAotCQkgICBncHUtPmZlbmNlX2NvbnRleHQsICsrZ3B1LT5uZXh0X2Zl bmNlKTsKKwlkbWFfZmVuY2VfaW5pdCgmZi0+YmFzZSwgJmV0bmF2aXZfZmVuY2Vfb3BzLCAmZ3B1 LT5mZW5jZV9zcGlubG9jaywKKwkJICAgICAgIGdwdS0+ZmVuY2VfY29udGV4dCwgKytncHUtPm5l eHRfZmVuY2UpOwogCiAJcmV0dXJuICZmLT5iYXNlOwogfQpAQCAtMTAyMSw3ICsxMDIxLDcgQEAg aW50IGV0bmF2aXZfZ3B1X2ZlbmNlX3N5bmNfb2JqKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3Qg KmV0bmF2aXZfb2JqLAogewogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJvYmogPSBldG5h dml2X29iai0+cmVzdjsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Ci0J c3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQgaSwg cmV0OwogCiAJaWYgKCFleGNsdXNpdmUpIHsKQEAgLTEwMzksNyArMTAzOSw3IEBAIGludCBldG5h dml2X2dwdV9mZW5jZV9zeW5jX29iaihzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2 X29iaiwKIAkJLyogV2FpdCBvbiBhbnkgZXhpc3RpbmcgZXhjbHVzaXZlIGZlbmNlIHdoaWNoIGlz bid0IG91ciBvd24gKi8KIAkJZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2wocm9i aik7CiAJCWlmIChmZW5jZSAmJiBmZW5jZS0+Y29udGV4dCAhPSBjb250ZXh0KSB7Ci0JCQlyZXQg PSBmZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKKwkJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNl LCB0cnVlKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQpAQCAtMTA1Miw3ICsx MDUyLDcgQEAgaW50IGV0bmF2aXZfZ3B1X2ZlbmNlX3N5bmNfb2JqKHN0cnVjdCBldG5hdml2X2dl bV9vYmplY3QgKmV0bmF2aXZfb2JqLAogCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0 ZWQoZm9iai0+c2hhcmVkW2ldLAogCQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQocm9iaikp OwogCQlpZiAoZmVuY2UtPmNvbnRleHQgIT0gY29udGV4dCkgewotCQkJcmV0ID0gZmVuY2Vfd2Fp dChmZW5jZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CiAJ CQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTExNTgsMTEgKzExNTgsMTEgQEAg c3RhdGljIHZvaWQgcmV0aXJlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAlt dXRleF9sb2NrKCZncHUtPmxvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbWRidWYs IHRtcCwgJmdwdS0+YWN0aXZlX2NtZF9saXN0LCBub2RlKSB7Ci0JCWlmICghZmVuY2VfaXNfc2ln bmFsZWQoY21kYnVmLT5mZW5jZSkpCisJCWlmICghZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGNtZGJ1 Zi0+ZmVuY2UpKQogCQkJYnJlYWs7CiAKIAkJbGlzdF9kZWwoJmNtZGJ1Zi0+bm9kZSk7Ci0JCWZl bmNlX3B1dChjbWRidWYtPmZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChjbWRidWYtPmZlbmNlKTsK IAogCQlmb3IgKGkgPSAwOyBpIDwgY21kYnVmLT5ucl9ib3M7IGkrKykgewogCQkJc3RydWN0IGV0 bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nID0gY21kYnVmLT5ib19tYXBbaV07CkBAIC0xMjc1 LDcgKzEyNzUsNyBAQCB2b2lkIGV0bmF2aXZfZ3B1X3BtX3B1dChzdHJ1Y3QgZXRuYXZpdl9ncHUg KmdwdSkKIGludCBldG5hdml2X2dwdV9zdWJtaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCiAJ c3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0LCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYg KmNtZGJ1ZikKIHsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOwogCXVuc2lnbmVkIGludCBldmVudCwgaTsKIAlpbnQgcmV0OwogCkBAIC0xMzkxLDcgKzEz OTEsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0 YSkKIAkJfQogCiAJCXdoaWxlICgoZXZlbnQgPSBmZnMoaW50cikpICE9IDApIHsKLQkJCXN0cnVj dCBmZW5jZSAqZmVuY2U7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAogCQkJZXZlbnQg LT0gMTsKIApAQCAtMTQwMSw3ICsxNDAxLDcgQEAgc3RhdGljIGlycXJldHVybl90IGlycV9oYW5k bGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAKIAkJCWZlbmNlID0gZ3B1LT5ldmVudFtldmVudF0u ZmVuY2U7CiAJCQlncHUtPmV2ZW50W2V2ZW50XS5mZW5jZSA9IE5VTEw7Ci0JCQlmZW5jZV9zaWdu YWwoZmVuY2UpOworCQkJZG1hX2ZlbmNlX3NpZ25hbChmZW5jZSk7CiAKIAkJCS8qCiAJCQkgKiBF dmVudHMgY2FuIGJlIHByb2Nlc3NlZCBvdXQgb2Ygb3JkZXIuICBFZywKQEAgLTE1NTMsNyArMTU1 Myw3IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9ncHVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2UgKm1hc3RlciwKIAkJcmV0dXJuIHJldDsKIAogCWdwdS0+ZHJtID0gZHJtOwot CWdwdS0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJZ3B1LT5mZW5j ZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJc3Bpbl9sb2NrX2luaXQo JmdwdS0+ZmVuY2Vfc3BpbmxvY2spOwogCiAJSU5JVF9MSVNUX0hFQUQoJmdwdS0+YWN0aXZlX2Nt ZF9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1 LmggYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5oCmluZGV4IDczYzI3OGRj MzcwNi4uOGM2YjgyNGU5ZDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgK QEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0IGV0bmF2aXZfY2hpcF9pZGVudGl0eSB7CiAKIHN0cnVj dCBldG5hdml2X2V2ZW50IHsKIAlib29sIHVzZWQ7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIH07CiAKIHN0cnVjdCBldG5hdml2X2NtZGJ1ZjsKQEAg LTE2Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgewogCS8qIHZyYW0gbm9kZSB1 c2VkIGlmIHRoZSBjbWRidWYgaXMgbWFwcGVkIHRocm91Z2ggdGhlIE1NVXYyICovCiAJc3RydWN0 IGRybV9tbV9ub2RlIHZyYW1fbm9kZTsKIAkvKiBmZW5jZSBhZnRlciB3aGljaCB0aGlzIGJ1ZmZl ciBpcyB0byBiZSBkaXNwb3NlZCAqLwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRt YV9mZW5jZSAqZmVuY2U7CiAJLyogdGFyZ2V0IGV4ZWMgc3RhdGUgKi8KIAl1MzIgZXhlY19zdGF0 ZTsKIAkvKiBwZXIgR1BVIGluLWZsaWdodCBsaXN0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9yZXF1ZXN0LmMKaW5kZXggNzRlZGUxZjUzMzcyLi5mOWFmMmEwMDYyNWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKQEAgLTI2LDEyICsyNiwxMiBAQAogCiAj aW5jbHVkZSAiaTkxNV9kcnYuaCIKIAotc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqaTkx NV9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0 dXJuICJpOTE1IjsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVs aW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2Zl bmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCS8qIFRp bWVsaW5lcyBhcmUgYm91bmQgYnkgZXZpY3Rpb24gdG8gYSBWTS4gSG93ZXZlciwgc2luY2UKIAkg KiB3ZSBvbmx5IGhhdmUgYSBnbG9iYWwgc2Vxbm8gYXQgdGhlIG1vbWVudCwgd2Ugb25seSBoYXZl CkBAIC00MiwxMiArNDIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3Rp bWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKIAlyZXR1cm4gImdsb2JhbCI7CiB9CiAK LXN0YXRpYyBib29sIGk5MTVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0 YXRpYyBib29sIGk5MTVfZmVuY2Vfc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7 CiAJcmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHRvX3JlcXVlc3QoZmVuY2UpKTsK IH0KIAotc3RhdGljIGJvb2wgaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5j ZSAqZmVuY2UpCitzdGF0aWMgYm9vbCBpOTE1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGk5MTVfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpKQog CQlyZXR1cm4gZmFsc2U7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBib29sIGk5MTVfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogCXJldHVybiB0cnVlOwogfQog Ci1zdGF0aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2Us CitzdGF0aWMgc2lnbmVkIGxvbmcgaTkxNV9mZW5jZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlLAogCQkJCSAgIGJvb2wgaW50ZXJydXB0aWJsZSwKIAkJCQkgICBzaWduZWQgbG9uZyB0aW1l b3V0X2ppZmZpZXMpCiB7CkBAIC04NSwyNiArODUsMjYgQEAgc3RhdGljIHNpZ25lZCBsb25nIGk5 MTVfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLAogCXJldHVybiB0aW1lb3V0X2ppZmZp ZXM7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAq ZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCitzdGF0aWMgdm9pZCBpOTE1X2ZlbmNlX3ZhbHVl X3N0cihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlz bnByaW50ZihzdHIsIHNpemUsICIldSIsIGZlbmNlLT5zZXFubyk7CiB9CiAKLXN0YXRpYyB2b2lk IGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIg KnN0ciwKK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsCiAJCQkJCSAgaW50IHNpemUpCiB7CiAJc25wcmlu dGYoc3RyLCBzaXplLCAiJXUiLAogCQkgaW50ZWxfZW5naW5lX2dldF9zZXFubyh0b19yZXF1ZXN0 KGZlbmNlKS0+ZW5naW5lKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZmVuY2VfcmVsZWFzZShz dHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIHZvaWQgaTkxNV9mZW5jZV9yZWxlYXNlKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx ID0gdG9fcmVxdWVzdChmZW5jZSk7CiAKIAlrbWVtX2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1 ZXN0cywgcmVxKTsKIH0KIAotY29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2ZlbmNlX29wcyA9 IHsKK2NvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGk5MTVfZmVuY2Vfb3BzID0gewogCS5nZXRf ZHJpdmVyX25hbWUgPSBpOTE1X2ZlbmNlX2dldF9kcml2ZXJfbmFtZSwKIAkuZ2V0X3RpbWVsaW5l X25hbWUgPSBpOTE1X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5n ID0gaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nLApAQCAtMzg4LDggKzM4OCw4IEBAIGk5MTVf Z2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIFRo ZSByZWZlcmVuY2UgY291bnQgaXMgaW5jcmVtZW50ZWQgYXRvbWljYWxseS4gSWYgaXQgaXMgemVy bywKIAkgKiB0aGUgbG9va3VwIGtub3dzIHRoZSByZXF1ZXN0IGlzIHVuYWxsb2NhdGVkIGFuZCBj b21wbGV0ZS4gT3RoZXJ3aXNlLAogCSAqIGl0IGlzIGVpdGhlciBzdGlsbCBpbiB1c2UsIG9yIGhh cyBiZWVuIHJlYWxsb2NhdGVkIGFuZCByZXNldAotCSAqIHdpdGggZmVuY2VfaW5pdCgpLiBUaGlz IGluY3JlbWVudCBpcyBzYWZlIGZvciByZWxlYXNlIGFzIHdlIGNoZWNrCi0JICogdGhhdCB0aGUg cmVxdWVzdCB3ZSBoYXZlIGEgcmVmZXJlbmNlIHRvIGFuZCBtYXRjaGVzIHRoZSBhY3RpdmUKKwkg KiB3aXRoIGRtYV9mZW5jZV9pbml0KCkuIFRoaXMgaW5jcmVtZW50IGlzIHNhZmUgZm9yIHJlbGVh c2UgYXMgd2UKKwkgKiBjaGVjayB0aGF0IHRoZSByZXF1ZXN0IHdlIGhhdmUgYSByZWZlcmVuY2Ug dG8gYW5kIG1hdGNoZXMgdGhlIGFjdGl2ZQogCSAqIHJlcXVlc3QuCiAJICoKIAkgKiBCZWZvcmUg d2UgaW5jcmVtZW50IHRoZSByZWZjb3VudCwgd2UgY2hhc2UgdGhlIHJlcXVlc3QtPmVuZ2luZQpA QCAtNDEyLDExICs0MTIsMTEgQEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCiAJCWdvdG8gZXJyOwogCiAJc3Bpbl9sb2NrX2luaXQoJnJlcS0+ bG9jayk7Ci0JZmVuY2VfaW5pdCgmcmVxLT5mZW5jZSwKLQkJICAgJmk5MTVfZmVuY2Vfb3BzLAot CQkgICAmcmVxLT5sb2NrLAotCQkgICBlbmdpbmUtPmZlbmNlX2NvbnRleHQsCi0JCSAgIHNlcW5v KTsKKwlkbWFfZmVuY2VfaW5pdCgmcmVxLT5mZW5jZSwKKwkJICAgICAgICZpOTE1X2ZlbmNlX29w cywKKwkJICAgICAgICZyZXEtPmxvY2ssCisJCSAgICAgICBlbmdpbmUtPmZlbmNlX2NvbnRleHQs CisJCSAgICAgICBzZXFubyk7CiAKIAlpOTE1X3N3X2ZlbmNlX2luaXQoJnJlcS0+c3VibWl0LCBz dWJtaXRfbm90aWZ5KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCmlu ZGV4IDk3NGJkN2JjYzgwMS4uYmNlZWFhM2E1MTkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5oCkBAIC0yNSw3ICsyNSw3IEBACiAjaWZuZGVmIEk5MTVfR0VNX1JFUVVF U1RfSAogI2RlZmluZSBJOTE1X0dFTV9SRVFVRVNUX0gKIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNl Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAKICNpbmNsdWRlICJpOTE1X2dlbS5o IgogI2luY2x1ZGUgImk5MTVfc3dfZmVuY2UuaCIKQEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IGlu dGVsX3NpZ25hbF9ub2RlIHsKICAqIFRoZSByZXF1ZXN0cyBhcmUgcmVmZXJlbmNlIGNvdW50ZWQu CiAgKi8KIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Ci0Jc3RydWN0IGZlbmNlIGZlbmNl OworCXN0cnVjdCBkbWFfZmVuY2UgZmVuY2U7CiAJc3BpbmxvY2tfdCBsb2NrOwogCiAJLyoqIE9u IFdoaWNoIHJpbmcgdGhpcyByZXF1ZXN0IHdhcyBnZW5lcmF0ZWQgKi8KQEAgLTE0NSw5ICsxNDUs OSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgewogCXN0cnVjdCBsaXN0X2hlYWQgZXhl Y2xpc3RfbGluazsKIH07CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGk5MTVfZmVu Y2Vfb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGk5MTVfZmVuY2Vfb3Bz OwogCi1zdGF0aWMgaW5saW5lIGJvb2wgZmVuY2VfaXNfaTkxNShzdHJ1Y3QgZmVuY2UgKmZlbmNl KQorc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2k5MTUoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCiB7CiAJcmV0dXJuIGZlbmNlLT5vcHMgPT0gJmk5MTVfZmVuY2Vfb3BzOwogfQpAQCAtMTcy LDcgKzE3Miw3IEBAIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKgotdG9fcmVxdWVzdChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQordG9fcmVxdWVzdChz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAkvKiBXZSBhc3N1bWUgdGhhdCBOVUxMIGZlbmNl L3JlcXVlc3QgYXJlIGludGVyb3BlcmFibGUgKi8KIAlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0LCBmZW5jZSkgIT0gMCk7CkBAIC0xODMsMTkgKzE4Mywx OSBAQCB0b19yZXF1ZXN0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCiBpOTE1X2dlbV9yZXF1ZXN0X2dldChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1cm4gdG9fcmVxdWVzdChmZW5jZV9nZXQo JnJlcS0+ZmVuY2UpKTsKKwlyZXR1cm4gdG9fcmVxdWVzdChkbWFfZmVuY2VfZ2V0KCZyZXEtPmZl bmNlKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoK IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JjdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKIHsKLQlyZXR1cm4gdG9fcmVxdWVzdChmZW5jZV9nZXRfcmN1KCZyZXEtPmZlbmNlKSk7CisJ cmV0dXJuIHRvX3JlcXVlc3QoZG1hX2ZlbmNlX2dldF9yY3UoJnJlcS0+ZmVuY2UpKTsKIH0KIAog c3RhdGljIGlubGluZSB2b2lkCiBpOTE1X2dlbV9yZXF1ZXN0X3B1dChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlmZW5jZV9wdXQoJnJlcS0+ZmVuY2UpOworCWRtYV9mZW5j ZV9wdXQoJnJlcS0+ZmVuY2UpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fcmVx dWVzdF9hc3NpZ24oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcGRzdCwKQEAgLTQ5Nyw3 ICs0OTcsNyBAQCBfX2k5MTVfZ2VtX2FjdGl2ZV9nZXRfcmN1KGNvbnN0IHN0cnVjdCBpOTE1X2dl bV9hY3RpdmUgKmFjdGl2ZSkKIAkJICogY29tcGlsZXIuCiAJCSAqCiAJCSAqIFRoZSBhdG9taWMg b3BlcmF0aW9uIGF0IHRoZSBoZWFydCBvZgotCQkgKiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yY3Uo KSwgc2VlIGZlbmNlX2dldF9yY3UoKSwgaXMKKwkJICogaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmN1 KCksIHNlZSBkbWFfZmVuY2VfZ2V0X3JjdSgpLCBpcwogCQkgKiBhdG9taWNfaW5jX25vdF96ZXJv KCkgd2hpY2ggaXMgb25seSBhIGZ1bGwgbWVtb3J5IGJhcnJpZXIKIAkJICogd2hlbiBzdWNjZXNz ZnVsLiBUaGF0IGlzLCBpZiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yY3UoKQogCQkgKiByZXR1cm5z IHRoZSByZXF1ZXN0IChhbmQgc28gd2l0aCB0aGUgcmVmZXJlbmNlIGNvdW50ZWQKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc3dfZmVuY2UuYwppbmRleCAxZTVjYmM1ODVjYTIuLjgxODUwMDJkN2VjOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwpAQCAtOCw3ICs4LDcgQEAKICAqLwog CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5j bHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4K IAogI2luY2x1ZGUgImk5MTVfc3dfZmVuY2UuaCIKQEAgLTIyNiw0OSArMjI2LDUwIEBAIGludCBp OTE1X3N3X2ZlbmNlX2F3YWl0X3N3X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwK IAlyZXR1cm4gcGVuZGluZzsKIH0KIAotc3RydWN0IGRtYV9mZW5jZV9jYiB7Ci0Jc3RydWN0IGZl bmNlX2NiIGJhc2U7CitzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgeworCXN0cnVjdCBkbWFf ZmVuY2VfY2IgYmFzZTsKIAlzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2U7Ci0Jc3RydWN0IGZl bmNlICpkbWE7CisJc3RydWN0IGRtYV9mZW5jZSAqZG1hOwogCXN0cnVjdCB0aW1lcl9saXN0IHRp bWVyOwogfTsKIAogc3RhdGljIHZvaWQgdGltZXJfaTkxNV9zd19mZW5jZV93YWtlKHVuc2lnbmVk IGxvbmcgZGF0YSkKIHsKLQlzdHJ1Y3QgZG1hX2ZlbmNlX2NiICpjYiA9IChzdHJ1Y3QgZG1hX2Zl bmNlX2NiICopZGF0YTsKKwlzdHJ1Y3QgaTkxNV9zd19kbWFfZmVuY2VfY2IgKmNiID0gKHN0cnVj dCBpOTE1X3N3X2RtYV9mZW5jZV9jYiAqKWRhdGE7CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJh c3luY2hyb25vdXMgd2FpdCBvbiBmZW5jZSAlczolczoleCB0aW1lZCBvdXRcbiIsCiAJICAgICAg IGNiLT5kbWEtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGNiLT5kbWEpLAogCSAgICAgICBjYi0+ZG1h LT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGNiLT5kbWEpLAogCSAgICAgICBjYi0+ZG1hLT5zZXFu byk7Ci0JZmVuY2VfcHV0KGNiLT5kbWEpOworCWRtYV9mZW5jZV9wdXQoY2ItPmRtYSk7CiAJY2It PmRtYSA9IE5VTEw7CiAKIAlpOTE1X3N3X2ZlbmNlX2NvbW1pdChjYi0+ZmVuY2UpOwogCWNiLT50 aW1lci5mdW5jdGlvbiA9IE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGRtYV9pOTE1X3N3X2ZlbmNl X3dha2Uoc3RydWN0IGZlbmNlICpkbWEsIHN0cnVjdCBmZW5jZV9jYiAqZGF0YSkKK3N0YXRpYyB2 b2lkIGRtYV9pOTE1X3N3X2ZlbmNlX3dha2Uoc3RydWN0IGRtYV9mZW5jZSAqZG1hLAorCQkJCSAg IHN0cnVjdCBkbWFfZmVuY2VfY2IgKmRhdGEpCiB7Ci0Jc3RydWN0IGRtYV9mZW5jZV9jYiAqY2Ig PSBjb250YWluZXJfb2YoZGF0YSwgdHlwZW9mKCpjYiksIGJhc2UpOworCXN0cnVjdCBpOTE1X3N3 X2RtYV9mZW5jZV9jYiAqY2IgPSBjb250YWluZXJfb2YoZGF0YSwgdHlwZW9mKCpjYiksIGJhc2Up OwogCiAJZGVsX3RpbWVyX3N5bmMoJmNiLT50aW1lcik7CiAJaWYgKGNiLT50aW1lci5mdW5jdGlv bikKIAkJaTkxNV9zd19mZW5jZV9jb21taXQoY2ItPmZlbmNlKTsKLQlmZW5jZV9wdXQoY2ItPmRt YSk7CisJZG1hX2ZlbmNlX3B1dChjYi0+ZG1hKTsKIAogCWtmcmVlKGNiKTsKIH0KIAogaW50IGk5 MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwK LQkJCQkgIHN0cnVjdCBmZW5jZSAqZG1hLAorCQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqZG1hLAog CQkJCSAgdW5zaWduZWQgbG9uZyB0aW1lb3V0LAogCQkJCSAgZ2ZwX3QgZ2ZwKQogewotCXN0cnVj dCBkbWFfZmVuY2VfY2IgKmNiOworCXN0cnVjdCBpOTE1X3N3X2RtYV9mZW5jZV9jYiAqY2I7CiAJ aW50IHJldDsKIAotCWlmIChmZW5jZV9pc19zaWduYWxlZChkbWEpKQorCWlmIChkbWFfZmVuY2Vf aXNfc2lnbmFsZWQoZG1hKSkKIAkJcmV0dXJuIDA7CiAKIAljYiA9IGttYWxsb2Moc2l6ZW9mKCpj YiksIGdmcCk7CkBAIC0yNzYsNyArMjc3LDcgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1h X2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAkJaWYgKCFnZnBmbGFnc19hbGxv d19ibG9ja2luZyhnZnApKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKLQkJcmV0dXJuIGZlbmNlX3dh aXQoZG1hLCBmYWxzZSk7CisJCXJldHVybiBkbWFfZmVuY2Vfd2FpdChkbWEsIGZhbHNlKTsKIAl9 CiAKIAljYi0+ZmVuY2UgPSBpOTE1X3N3X2ZlbmNlX2dldChmZW5jZSk7CkBAIC0yODcsMTEgKzI4 OCwxMSBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3df ZmVuY2UgKmZlbmNlLAogCQkgICAgICB0aW1lcl9pOTE1X3N3X2ZlbmNlX3dha2UsICh1bnNpZ25l ZCBsb25nKWNiLAogCQkgICAgICBUSU1FUl9JUlFTQUZFKTsKIAlpZiAodGltZW91dCkgewotCQlj Yi0+ZG1hID0gZmVuY2VfZ2V0KGRtYSk7CisJCWNiLT5kbWEgPSBkbWFfZmVuY2VfZ2V0KGRtYSk7 CiAJCW1vZF90aW1lcigmY2ItPnRpbWVyLCByb3VuZF9qaWZmaWVzX3VwKGppZmZpZXMgKyB0aW1l b3V0KSk7CiAJfQogCi0JcmV0ID0gZmVuY2VfYWRkX2NhbGxiYWNrKGRtYSwgJmNiLT5iYXNlLCBk bWFfaTkxNV9zd19mZW5jZV93YWtlKTsKKwlyZXQgPSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGRt YSwgJmNiLT5iYXNlLCBkbWFfaTkxNV9zd19mZW5jZV93YWtlKTsKIAlpZiAocmV0ID09IDApIHsK IAkJcmV0ID0gMTsKIAl9IGVsc2UgewpAQCAtMzA1LDE2ICszMDYsMTYgQEAgaW50IGk5MTVfc3df ZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwKIAogaW50 IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZl bmNlLAogCQkJCSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJCSAgICBj b25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpleGNsdWRlLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyAqZXhjbHVkZSwKIAkJCQkgICAgYm9vbCB3cml0ZSwKIAkJCQkgICAgdW5zaWdu ZWQgbG9uZyB0aW1lb3V0LAogCQkJCSAgICBnZnBfdCBnZnApCiB7Ci0Jc3RydWN0IGZlbmNlICpl eGNsOworCXN0cnVjdCBkbWFfZmVuY2UgKmV4Y2w7CiAJaW50IHJldCA9IDAsIHBlbmRpbmc7CiAK IAlpZiAod3JpdGUpIHsKLQkJc3RydWN0IGZlbmNlICoqc2hhcmVkOworCQlzdHJ1Y3QgZG1hX2Zl bmNlICoqc2hhcmVkOwogCQl1bnNpZ25lZCBpbnQgY291bnQsIGk7CiAKIAkJcmV0ID0gcmVzZXJ2 YXRpb25fb2JqZWN0X2dldF9mZW5jZXNfcmN1KHJlc3YsCkBAIC0zMzksNyArMzQwLDcgQEAgaW50 IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZl bmNlLAogCQl9CiAKIAkJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0JCQlmZW5jZV9wdXQo c2hhcmVkW2ldKTsKKwkJCWRtYV9mZW5jZV9wdXQoc2hhcmVkW2ldKTsKIAkJa2ZyZWUoc2hhcmVk KTsKIAl9IGVsc2UgewogCQlleGNsID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShy ZXN2KTsKQEAgLTM1Niw3ICszNTcsNyBAQCBpbnQgaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZh dGlvbihzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJCQlyZXQgfD0gcGVuZGluZzsKIAl9 CiAKLQlmZW5jZV9wdXQoZXhjbCk7CisJZG1hX2ZlbmNlX3B1dChleGNsKTsKIAogCXJldHVybiBy ZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKaW5kZXggMzczMTQxNjAyY2E0 Li5jZDIzOWU5MmY2N2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKQEAgLTE2 LDggKzE2LDggQEAKICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAKIHN0cnVjdCBjb21wbGV0aW9u Owotc3RydWN0IGZlbmNlOwotc3RydWN0IGZlbmNlX29wczsKK3N0cnVjdCBkbWFfZmVuY2U7Citz dHJ1Y3QgZG1hX2ZlbmNlX29wczsKIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Q7CiAKIHN0cnVj dCBpOTE1X3N3X2ZlbmNlIHsKQEAgLTQ3LDEyICs0NywxMiBAQCBpbnQgaTkxNV9zd19mZW5jZV9h d2FpdF9zd19mZW5jZShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsCiAJCQkJIHN0cnVjdCBp OTE1X3N3X2ZlbmNlICphZnRlciwKIAkJCQkgd2FpdF9xdWV1ZV90ICp3cSk7CiBpbnQgaTkxNV9z d19mZW5jZV9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAotCQkJ CSAgc3RydWN0IGZlbmNlICpkbWEsCisJCQkJICBzdHJ1Y3QgZG1hX2ZlbmNlICpkbWEsCiAJCQkJ ICB1bnNpZ25lZCBsb25nIHRpbWVvdXQsCiAJCQkJICBnZnBfdCBnZnApOwogaW50IGk5MTVfc3df ZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAogCQkJ CSAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAotCQkJCSAgICBjb25zdCBzdHJ1 Y3QgZmVuY2Vfb3BzICpleGNsdWRlLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29w cyAqZXhjbHVkZSwKIAkJCQkgICAgYm9vbCB3cml0ZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyB0 aW1lb3V0LAogCQkJCSAgICBnZnBfdCBnZnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCmlu ZGV4IDE3ODc5ODAwMmE3My4uNWM5MTJjMjVmN2QzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFj ZS5oCkBAIC00OTEsNyArNDkxLDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmluZ19kaXNwYXRj aCwKIAkJCSAgIF9fZW50cnktPnJpbmcgPSByZXEtPmVuZ2luZS0+aWQ7CiAJCQkgICBfX2VudHJ5 LT5zZXFubyA9IHJlcS0+ZmVuY2Uuc2Vxbm87CiAJCQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdz OwotCQkJICAgZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZygmcmVxLT5mZW5jZSk7CisJCQkgICBk bWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZygmcmVxLT5mZW5jZSk7CiAJCQkgICApLAogCiAJ ICAgIFRQX3ByaW50aygiZGV2PSV1LCByaW5nPSV1LCBzZXFubz0ldSwgZmxhZ3M9JXgiLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKaW5kZXggMjNmYzEwNDJmZWQ0Li41 NmVmY2M1MDdlYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFk Y3J1bWJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwpA QCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIo dm9pZCAqYXJnKQogCQkJCQkJICZyZXF1ZXN0LT5zaWduYWxpbmcud2FpdCk7CiAKIAkJCWxvY2Fs X2JoX2Rpc2FibGUoKTsKLQkJCWZlbmNlX3NpZ25hbCgmcmVxdWVzdC0+ZmVuY2UpOworCQkJZG1h X2ZlbmNlX3NpZ25hbCgmcmVxdWVzdC0+ZmVuY2UpOwogCQkJbG9jYWxfYmhfZW5hYmxlKCk7IC8q IGtpY2sgc3RhcnQgdGhlIHRhc2tsZXRzICovCiAKIAkJCS8qIEZpbmQgdGhlIG5leHQgb2xkZXN0 IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUKQEAgLTUwMiw3ICs1MDIsNyBAQCB2b2lkIGlu dGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKIAlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LCAqKnA7CiAJYm9vbCBmaXJzdCwgd2Fr ZXVwOwogCi0JLyogbG9ja2VkIGJ5IGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoKSAqLworCS8q IGxvY2tlZCBieSBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZygpICovCiAJYXNzZXJ0X3Nw aW5fbG9ja2VkKCZyZXF1ZXN0LT5sb2NrKTsKIAogCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnRz ayA9IGItPnNpZ25hbGVyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRl eCAyZGM5NDgxMmJlYTUuLjhjY2ViMzQ1YWEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9j b21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCUlOSVRfTElTVF9IRUFEKCZl bmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5leGVjbGlz dF9sb2NrKTsKIAotCWVuZ2luZS0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2Mo MSk7CisJZW5naW5lLT5mZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7 CiAKIAlpbnRlbF9lbmdpbmVfaW5pdF9yZXF1ZXN0cyhlbmdpbmUpOwogCWludGVsX2VuZ2luZV9p bml0X2hhbmdjaGVjayhlbmdpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAppbmRleCBkMGRhNTJmMmE4 MDYuLjk0MGJmNDk5MmZlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKQEAgLTIxNyw3ICsyMTcsNyBA QCB2b2lkIG1zbV9nZW1fdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIGludCBt c21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQlzdHJ1Y3Qg bXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIGJvb2wgZXhjbHVzaXZlKTsKIHZvaWQgbXNtX2dlbV9t b3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKLQkJc3RydWN0IG1zbV9n cHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVjdCBmZW5jZSAqZmVuY2UpOworCQlzdHJ1Y3Qg bXNtX2dwdSAqZ3B1LCBib29sIGV4Y2x1c2l2ZSwgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwog dm9pZCBtc21fZ2VtX21vdmVfdG9faW5hY3RpdmUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmop OwogaW50IG1zbV9nZW1fY3B1X3ByZXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHVpbnQz Ml90IG9wLCBrdGltZV90ICp0aW1lb3V0KTsKIGludCBtc21fZ2VtX2NwdV9maW5pKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5jCmluZGV4IGE5YjliMWM5 NWEyZS4uM2YyOTljNTM3Yjc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9m ZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMKQEAgLTE1LDcgKzE1 LDcgQEAKICAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxs aW51eC9kbWEtZmVuY2UuaD4KIAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21f ZmVuY2UuaCIKQEAgLTMyLDcgKzMyLDcgQEAgbXNtX2ZlbmNlX2NvbnRleHRfYWxsb2Moc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSkKIAogCWZjdHgtPmRldiA9IGRldjsK IAlmY3R4LT5uYW1lID0gbmFtZTsKLQlmY3R4LT5jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxv YygxKTsKKwlmY3R4LT5jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CiAJaW5p dF93YWl0cXVldWVfaGVhZCgmZmN0eC0+ZXZlbnQpOwogCXNwaW5fbG9ja19pbml0KCZmY3R4LT5z cGlubG9jayk7CiAKQEAgLTEwMCw1MiArMTAwLDUyIEBAIHZvaWQgbXNtX3VwZGF0ZV9mZW5jZShz dHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsIHVpbnQzMl90IGZlbmNlKQogCiBzdHJ1Y3Qg bXNtX2ZlbmNlIHsKIAlzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHg7Ci0Jc3RydWN0IGZl bmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOwogfTsKIAotc3RhdGljIGlubGluZSBz dHJ1Y3QgbXNtX2ZlbmNlICp0b19tc21fZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRp YyBpbmxpbmUgc3RydWN0IG1zbV9mZW5jZSAqdG9fbXNtX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKQogewogCXJldHVybiBjb250YWluZXJfb2YoZmVuY2UsIHN0cnVjdCBtc21fZmVuY2Us IGJhc2UpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dldF9kcml2ZXJfbmFt ZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKm1zbV9mZW5jZV9nZXRf ZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJtc20iOwog fQogCi1zdGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVj dCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqbXNtX2ZlbmNlX2dldF90aW1lbGlu ZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBtc21fZmVuY2UgKmYg PSB0b19tc21fZmVuY2UoZmVuY2UpOwogCXJldHVybiBmLT5mY3R4LT5uYW1lOwogfQogCi1zdGF0 aWMgYm9vbCBtc21fZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQor c3RhdGljIGJvb2wgbXNtX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCiB7CiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIG1zbV9mZW5jZV9zaWdu YWxlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgbXNtX2ZlbmNlX3NpZ25hbGVk KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBtc21fZmVuY2UgKmYgPSB0b19t c21fZmVuY2UoZmVuY2UpOwogCXJldHVybiBmZW5jZV9jb21wbGV0ZWQoZi0+ZmN0eCwgZi0+YmFz ZS5zZXFubyk7CiB9CiAKLXN0YXRpYyB2b2lkIG1zbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBmZW5j ZSAqZmVuY2UpCitzdGF0aWMgdm9pZCBtc21fZmVuY2VfcmVsZWFzZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAlzdHJ1Y3QgbXNtX2ZlbmNlICpmID0gdG9fbXNtX2ZlbmNlKGZlbmNlKTsK IAlrZnJlZV9yY3UoZiwgYmFzZS5yY3UpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNl X29wcyBtc21fZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IG1zbV9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IG1zbV9mZW5jZV9nZXRfZHJp dmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gbXNtX2ZlbmNlX2dldF90aW1lbGluZV9u YW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gbXNtX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJ LnNpZ25hbGVkID0gbXNtX2ZlbmNlX3NpZ25hbGVkLAotCS53YWl0ID0gZmVuY2VfZGVmYXVsdF93 YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IG1zbV9m ZW5jZV9yZWxlYXNlLAogfTsKIAotc3RydWN0IGZlbmNlICoKK3N0cnVjdCBkbWFfZmVuY2UgKgog bXNtX2ZlbmNlX2FsbG9jKHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCkKIHsKIAlzdHJ1 Y3QgbXNtX2ZlbmNlICpmOwpAQCAtMTU2LDggKzE1Niw4IEBAIG1zbV9mZW5jZV9hbGxvYyhzdHJ1 Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpCiAKIAlmLT5mY3R4ID0gZmN0eDsKIAotCWZlbmNl X2luaXQoJmYtPmJhc2UsICZtc21fZmVuY2Vfb3BzLCAmZmN0eC0+c3BpbmxvY2ssCi0JCQlmY3R4 LT5jb250ZXh0LCArK2ZjdHgtPmxhc3RfZmVuY2UpOworCWRtYV9mZW5jZV9pbml0KCZmLT5iYXNl LCAmbXNtX2ZlbmNlX29wcywgJmZjdHgtPnNwaW5sb2NrLAorCQkgICAgICAgZmN0eC0+Y29udGV4 dCwgKytmY3R4LT5sYXN0X2ZlbmNlKTsKIAogCXJldHVybiAmZi0+YmFzZTsKIH0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9mZW5jZS5oCmluZGV4IGNlYjViM2QzMTRiNC4uNTYwNjFhYTE5NTlkIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2ZlbmNlLmgKQEAgLTQxLDYgKzQxLDYgQEAgaW50IG1zbV9xdWV1ZV9mZW5jZV9jYihz dHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgsCiAJCXN0cnVjdCBtc21fZmVuY2VfY2IgKmNi LCB1aW50MzJfdCBmZW5jZSk7CiB2b2lkIG1zbV91cGRhdGVfZmVuY2Uoc3RydWN0IG1zbV9mZW5j ZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5jZSk7CiAKLXN0cnVjdCBmZW5jZSAqIG1zbV9m ZW5jZV9hbGxvYyhzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpOworc3RydWN0IGRtYV9m ZW5jZSAqIG1zbV9mZW5jZV9hbGxvYyhzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZjdHgpOwog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKaW5kZXggYjZhYzI3ZTMxOTI5Li41N2RiN2RiYmI2 MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCkBAIC01MjEsNyArNTIxLDcgQEAgaW50IG1zbV9nZW1f c3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCiB7CiAJc3RydWN0IG1zbV9n ZW1fb2JqZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7CiAJc3RydWN0IHJlc2VydmF0aW9u X29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CiAJaW50IGksIHJldDsKIAogCWlmICghZXhjbHVzaXZlKSB7CkBAIC01NDAs NyArNTQwLDcgQEAgaW50IG1zbV9nZW1fc3luY19vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmosCiAJCWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG1zbV9vYmotPnJl c3YpOwogCQkvKiBkb24ndCBuZWVkIHRvIHdhaXQgb24gb3VyIG93biBmZW5jZXMsIHNpbmNlIHJp bmcgaXMgZmlmbyAqLwogCQlpZiAoZmVuY2UgJiYgKGZlbmNlLT5jb250ZXh0ICE9IGZjdHgtPmNv bnRleHQpKSB7Ci0JCQlyZXQgPSBmZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKKwkJCXJldCA9IGRt YV9mZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsK IAkJfQpAQCAtNTUzLDcgKzU1Myw3IEBAIGludCBtc21fZ2VtX3N5bmNfb2JqZWN0KHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLAogCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQo Zm9iai0+c2hhcmVkW2ldLAogCQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQobXNtX29iai0+ cmVzdikpOwogCQlpZiAoZmVuY2UtPmNvbnRleHQgIT0gZmN0eC0+Y29udGV4dCkgewotCQkJcmV0 ID0gZmVuY2Vfd2FpdChmZW5jZSwgdHJ1ZSk7CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5j ZSwgdHJ1ZSk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTU2Myw3ICs1 NjMsNyBAQCBpbnQgbXNtX2dlbV9zeW5jX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwKIH0KIAogdm9pZCBtc21fZ2VtX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqLAotCQlzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBib29sIGV4Y2x1c2l2ZSwgc3RydWN0IGZl bmNlICpmZW5jZSkKKwkJc3RydWN0IG1zbV9ncHUgKmdwdSwgYm9vbCBleGNsdXNpdmUsIHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9 IHRvX21zbV9ibyhvYmopOwogCVdBUk5fT04obXNtX29iai0+bWFkdiAhPSBNU01fTUFEVl9XSUxM TkVFRCk7CkBAIC02MTYsMTAgKzYxNiwxMCBAQCBpbnQgbXNtX2dlbV9jcHVfZmluaShzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaikKIH0KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGlj IHZvaWQgZGVzY3JpYmVfZmVuY2Uoc3RydWN0IGZlbmNlICpmZW5jZSwgY29uc3QgY2hhciAqdHlw ZSwKK3N0YXRpYyB2b2lkIGRlc2NyaWJlX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBj b25zdCBjaGFyICp0eXBlLAogCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7Ci0JaWYgKCFmZW5jZV9p c19zaWduYWxlZChmZW5jZSkpCisJaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQog CQlzZXFfcHJpbnRmKG0sICJcdCU5czogJXMgJXMgc2VxICV1XG4iLCB0eXBlLAogCQkJCWZlbmNl LT5vcHMtPmdldF9kcml2ZXJfbmFtZShmZW5jZSksCiAJCQkJZmVuY2UtPm9wcy0+Z2V0X3RpbWVs aW5lX25hbWUoZmVuY2UpLApAQCAtNjMxLDcgKzYzMSw3IEBAIHZvaWQgbXNtX2dlbV9kZXNjcmli ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHNlcV9maWxlICptKQogCXN0cnVj dCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHRvX21zbV9ibyhvYmopOwogCXN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3QgKnJvYmogPSBtc21fb2JqLT5yZXN2OwogCXN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3RfbGlzdCAqZm9iajsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlOwogCXVpbnQ2NF90IG9mZiA9IGRybV92bWFfbm9kZV9zdGFydCgmb2JqLT52 bWFfbm9kZSk7CiAJY29uc3QgY2hhciAqbWFkdjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaAppbmRleCBi MmYxM2NmZTk0NWUuLjJjYjg1NTFmZGE3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ2VtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKQEAgLTEwNCw3 ICsxMDQsNyBAQCBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgewogCXN0cnVjdCBsaXN0X2hlYWQgbm9k ZTsgICAvKiBub2RlIGluIGdwdSBzdWJtaXRfbGlzdCAqLwogCXN0cnVjdCBsaXN0X2hlYWQgYm9f bGlzdDsKIAlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggdGlja2V0OwotCXN0cnVjdCBmZW5jZSAqZmVu Y2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IHBpZCAqcGlkOyAgICAvKiBz dWJtaXR0aW5nIHByb2Nlc3MgKi8KIAlib29sIHZhbGlkOyAgICAgICAgIC8qIHRydWUgaWYgbm8g Y21kc3RyZWFtIHBhdGNoaW5nIG5lZWRlZCAqLwogCXVuc2lnbmVkIGludCBucl9jbWRzOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCmluZGV4IGI2YTBmMzdhNjVmMy4uMjVlODc4NmZh NGNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCkBAIC02MCw3ICs2MCw3IEBA IHN0YXRpYyBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdF9jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAogdm9pZCBtc21fZ2VtX3N1Ym1pdF9mcmVlKHN0cnVjdCBtc21fZ2VtX3N1 Ym1pdCAqc3VibWl0KQogewotCWZlbmNlX3B1dChzdWJtaXQtPmZlbmNlKTsKKwlkbWFfZmVuY2Vf cHV0KHN1Ym1pdC0+ZmVuY2UpOwogCWxpc3RfZGVsKCZzdWJtaXQtPm5vZGUpOwogCXB1dF9waWQo c3VibWl0LT5waWQpOwogCWtmcmVlKHN1Ym1pdCk7CkBAIC0zODAsNyArMzgwLDcgQEAgaW50IG1z bV9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ c3RydWN0IG1zbV9maWxlX3ByaXZhdGUgKmN0eCA9IGZpbGUtPmRyaXZlcl9wcml2OwogCXN0cnVj dCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0OwogCXN0cnVjdCBtc21fZ3B1ICpncHUgPSBwcml2LT5n cHU7Ci0Jc3RydWN0IGZlbmNlICppbl9mZW5jZSA9IE5VTEw7CisJc3RydWN0IGRtYV9mZW5jZSAq aW5fZmVuY2UgPSBOVUxMOwogCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IE5VTEw7CiAJ aW50IG91dF9mZW5jZV9mZCA9IC0xOwogCXVuc2lnbmVkIGk7CkBAIC00MzksNyArNDM5LDcgQEAg aW50IG1zbV9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCSAqLwogCiAJCWlmIChpbl9mZW5jZS0+Y29udGV4dCAhPSBncHUtPmZjdHgtPmNvbnRl eHQpIHsKLQkJCXJldCA9IGZlbmNlX3dhaXQoaW5fZmVuY2UsIHRydWUpOworCQkJcmV0ID0gZG1h X2ZlbmNlX3dhaXQoaW5fZmVuY2UsIHRydWUpOwogCQkJaWYgKHJldCkKIAkJCQlnb3RvIG91dDsK IAkJfQpAQCAtNTQyLDcgKzU0Miw3IEBAIGludCBtc21faW9jdGxfZ2VtX3N1Ym1pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiBvdXQ6CiAJaWYgKGluX2ZlbmNlKQotCQlm ZW5jZV9wdXQoaW5fZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGluX2ZlbmNlKTsKIAlzdWJtaXRf Y2xlYW51cChzdWJtaXQpOwogCWlmIChyZXQpCiAJCW1zbV9nZW1fc3VibWl0X2ZyZWUoc3VibWl0 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ3B1LmMKaW5kZXggNWJiMDk4MzhiNWFlLi4zMjQ5NzA3ZTY4MzQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2dwdS5jCkBAIC00NzYsNyArNDc2LDcgQEAgc3RhdGljIHZvaWQgcmV0aXJl X3N1Ym1pdHMoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAkJc3VibWl0ID0gbGlzdF9maXJzdF9lbnRy eSgmZ3B1LT5zdWJtaXRfbGlzdCwKIAkJCQlzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQsIG5vZGUpOwog Ci0JCWlmIChmZW5jZV9pc19zaWduYWxlZChzdWJtaXQtPmZlbmNlKSkgeworCQlpZiAoZG1hX2Zl bmNlX2lzX3NpZ25hbGVkKHN1Ym1pdC0+ZmVuY2UpKSB7CiAJCQlyZXRpcmVfc3VibWl0KGdwdSwg c3VibWl0KTsKIAkJfSBlbHNlIHsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9iby5jCmluZGV4IDM0M2I4NjU5NDcyYy4uZWM4YWM3NTZhYWI0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9iby5jCkBAIC04MywxMyArODMsMTMgQEAgbnYxMF9ib19nZXRfdGlsZV9y ZWdpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGkpCiAKIHN0YXRpYyB2b2lkCiBudjEw X2JvX3B1dF90aWxlX3JlZ2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qgbm91dmVh dV9kcm1fdGlsZSAqdGlsZSwKLQkJCXN0cnVjdCBmZW5jZSAqZmVuY2UpCisJCQlzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJt KGRldik7CiAKIAlpZiAodGlsZSkgewogCQlzcGluX2xvY2soJmRybS0+dGlsZS5sb2NrKTsKLQkJ dGlsZS0+ZmVuY2UgPSAoc3RydWN0IG5vdXZlYXVfZmVuY2UgKilmZW5jZV9nZXQoZmVuY2UpOwor CQl0aWxlLT5mZW5jZSA9IChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqKWRtYV9mZW5jZV9nZXQoZmVu Y2UpOwogCQl0aWxlLT51c2VkID0gZmFsc2U7CiAJCXNwaW5fdW5sb2NrKCZkcm0tPnRpbGUubG9j ayk7CiAJfQpAQCAtMTI0Myw3ICsxMjQzLDcgQEAgbm91dmVhdV9ib192bV9jbGVhbnVwKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiB7CiAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBu b3V2ZWF1X2JkZXYoYm8tPmJkZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcm0tPmRl djsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKGJv LT5yZXN2KTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9n ZXRfZXhjbChiby0+cmVzdik7CiAKIAludjEwX2JvX3B1dF90aWxlX3JlZ2lvbihkZXYsICpvbGRf dGlsZSwgZmVuY2UpOwogCSpvbGRfdGlsZSA9IG5ld190aWxlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9mZW5jZS5jCmluZGV4IDRiYjlhYjg5MmFlMS4uZTk1MjllZTZiYzIzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5jCkBAIC0yOCw3ICsyOCw3IEBACiAK ICNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KLSNp bmNsdWRlIDx0cmFjZS9ldmVudHMvZmVuY2UuaD4KKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1h X2ZlbmNlLmg+CiAKICNpbmNsdWRlIDxudmlmL2NsODI2ZS5oPgogI2luY2x1ZGUgPG52aWYvbm90 aWZ5Lmg+CkBAIC0zOCwxMSArMzgsMTEgQEAKICNpbmNsdWRlICJub3V2ZWF1X2RtYS5oIgogI2lu Y2x1ZGUgIm5vdXZlYXVfZmVuY2UuaCIKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMg bm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50Owotc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMg bm91dmVhdV9mZW5jZV9vcHNfbGVnYWN5Oworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vf b3BzIG5vdXZlYXVfZmVuY2Vfb3BzX3VldmVudDsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3k7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0 IG5vdXZlYXVfZmVuY2UgKgotZnJvbV9mZW5jZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorZnJvbV9m ZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gY29udGFpbmVyX29mKGZl bmNlLCBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSwgYmFzZSk7CiB9CkBAIC01OCwyMyArNTgsMjMgQEAg bm91dmVhdV9mZW5jZV9zaWduYWwoc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlKQogewogCWlu dCBkcm9wID0gMDsKIAotCWZlbmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKKwlkbWFf ZmVuY2Vfc2lnbmFsX2xvY2tlZCgmZmVuY2UtPmJhc2UpOwogCWxpc3RfZGVsKCZmZW5jZS0+aGVh ZCk7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKGZlbmNlLT5jaGFubmVsLCBOVUxMKTsKIAotCWlmICh0 ZXN0X2JpdChGRU5DRV9GTEFHX1VTRVJfQklUUywgJmZlbmNlLT5iYXNlLmZsYWdzKSkgeworCWlm ICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFzZS5mbGFncykp IHsKIAkJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5j ZSk7CiAKIAkJaWYgKCEtLWZjdHgtPm5vdGlmeV9yZWYpCiAJCQlkcm9wID0gMTsKIAl9CiAKLQlm ZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7CiAJ cmV0dXJuIGRyb3A7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqCi1ub3V2ZWF1 X2xvY2FsX2ZlbmNlKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJt KSB7Citub3V2ZWF1X2xvY2FsX2ZlbmNlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSkgewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlX3ByaXYgKnByaXYgPSAo dm9pZCopZHJtLT5mZW5jZTsKIAogCWlmIChmZW5jZS0+b3BzICE9ICZub3V2ZWF1X2ZlbmNlX29w c19sZWdhY3kgJiYKQEAgLTIwMSw3ICsyMDEsNyBAQCBub3V2ZWF1X2ZlbmNlX2NvbnRleHRfbmV3 KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBub3V2ZWF1X2ZlbmNlX2NoYQog CiBzdHJ1Y3Qgbm91dmVhdV9mZW5jZV93b3JrIHsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsK LQlzdHJ1Y3QgZmVuY2VfY2IgY2I7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIAl2b2lkICgq ZnVuYykodm9pZCAqKTsKIAl2b2lkICpkYXRhOwogfTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBub3V2 ZWF1X2ZlbmNlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKmt3b3JrKQogCWtmcmVl KHdvcmspOwogfQogCi1zdGF0aWMgdm9pZCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2Ioc3RydWN0IGZl bmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKK3N0YXRpYyB2b2lkIG5vdXZlYXVfZmVu Y2Vfd29ya19jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAq Y2IpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2Vfd29yayAqd29yayA9IGNvbnRhaW5lcl9vZihj YiwgdHlwZW9mKCp3b3JrKSwgY2IpOwogCkBAIC0yMjIsMTIgKzIyMiwxMiBAQCBzdGF0aWMgdm9p ZCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2Ioc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNl X2NiICpjYikKIH0KIAogdm9pZAotbm91dmVhdV9mZW5jZV93b3JrKHN0cnVjdCBmZW5jZSAqZmVu Y2UsCitub3V2ZWF1X2ZlbmNlX3dvcmsoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiAJCSAgIHZv aWQgKCpmdW5jKSh2b2lkICopLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNl X3dvcmsgKndvcms7CiAKLQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQorCWlmIChkbWFf ZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQlnb3RvIGVycjsKIAogCXdvcmsgPSBrbWFsbG9j KHNpemVvZigqd29yayksIEdGUF9LRVJORUwpOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIG5vdXZlYXVf ZmVuY2Vfd29yayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLAogCXdvcmstPmZ1bmMgPSBmdW5jOwogCXdv cmstPmRhdGEgPSBkYXRhOwogCi0JaWYgKGZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJndvcmst PmNiLCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2IpIDwgMCkKKwlpZiAoZG1hX2ZlbmNlX2FkZF9jYWxs YmFjayhmZW5jZSwgJndvcmstPmNiLCBub3V2ZWF1X2ZlbmNlX3dvcmtfY2IpIDwgMCkKIAkJZ290 byBlcnJfZnJlZTsKIAlyZXR1cm47CiAKQEAgLTI2NiwxNyArMjY2LDE3IEBAIG5vdXZlYXVfZmVu Y2VfZW1pdChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBub3V2ZWF1X2NoYW5u ZWwgKmNoYW4pCiAJZmVuY2UtPnRpbWVvdXQgID0gamlmZmllcyArICgxNSAqIEhaKTsKIAogCWlm IChwcml2LT51ZXZlbnQpCi0JCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmbm91dmVhdV9mZW5j ZV9vcHNfdWV2ZW50LAotCQkJICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0eC0+ c2VxdWVuY2UpOworCQlkbWFfZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1X2ZlbmNl X29wc191ZXZlbnQsCisJCQkgICAgICAgJmZjdHgtPmxvY2ssIGZjdHgtPmNvbnRleHQsICsrZmN0 eC0+c2VxdWVuY2UpOwogCWVsc2UKLQkJZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZub3V2ZWF1 X2ZlbmNlX29wc19sZWdhY3ksCi0JCQkgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwgKytm Y3R4LT5zZXF1ZW5jZSk7CisJCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJm5vdXZlYXVf ZmVuY2Vfb3BzX2xlZ2FjeSwKKwkJCSAgICAgICAmZmN0eC0+bG9jaywgZmN0eC0+Y29udGV4dCwg KytmY3R4LT5zZXF1ZW5jZSk7CiAJa3JlZl9nZXQoJmZjdHgtPmZlbmNlX3JlZik7CiAKLQl0cmFj ZV9mZW5jZV9lbWl0KCZmZW5jZS0+YmFzZSk7CisJdHJhY2VfZG1hX2ZlbmNlX2VtaXQoJmZlbmNl LT5iYXNlKTsKIAlyZXQgPSBmY3R4LT5lbWl0KGZlbmNlKTsKIAlpZiAoIXJldCkgewotCQlmZW5j ZV9nZXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOwogCQlz cGluX2xvY2tfaXJxKCZmY3R4LT5sb2NrKTsKIAogCQlpZiAobm91dmVhdV9mZW5jZV91cGRhdGUo Y2hhbiwgZmN0eCkpCkBAIC0yOTgsNyArMjk4LDcgQEAgbm91dmVhdV9mZW5jZV9kb25lKHN0cnVj dCBub3V2ZWF1X2ZlbmNlICpmZW5jZSkKIAkJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbjsK IAkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCQlpZiAodGVzdF9iaXQoRkVOQ0VfRkxBR19TSUdO QUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncykpCisJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncykpCiAJCQlyZXR1cm4gdHJ1ZTsK IAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmZmN0eC0+bG9jaywgZmxhZ3MpOwpAQCAtMzA3LDExICsz MDcsMTEgQEAgbm91dmVhdV9mZW5jZV9kb25lKHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSkK IAkJCW52aWZfbm90aWZ5X3B1dCgmZmN0eC0+bm90aWZ5KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZmN0eC0+bG9jaywgZmxhZ3MpOwogCX0KLQlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQo JmZlbmNlLT5iYXNlKTsKKwlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKCZmZW5jZS0+YmFz ZSk7CiB9CiAKIHN0YXRpYyBsb25nCi1ub3V2ZWF1X2ZlbmNlX3dhaXRfbGVnYWN5KHN0cnVjdCBm ZW5jZSAqZiwgYm9vbCBpbnRyLCBsb25nIHdhaXQpCitub3V2ZWF1X2ZlbmNlX3dhaXRfbGVnYWN5 KHN0cnVjdCBkbWFfZmVuY2UgKmYsIGJvb2wgaW50ciwgbG9uZyB3YWl0KQogewogCXN0cnVjdCBu b3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAJdW5zaWduZWQgbG9uZyBzbGVl cF90aW1lID0gTlNFQ19QRVJfTVNFQyAvIDEwMDA7CkBAIC0zNzgsNyArMzc4LDcgQEAgbm91dmVh dV9mZW5jZV93YWl0KHN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSwgYm9vbCBsYXp5LCBib29s IGludHIpCiAJaWYgKCFsYXp5KQogCQlyZXR1cm4gbm91dmVhdV9mZW5jZV93YWl0X2J1c3koZmVu Y2UsIGludHIpOwogCi0JcmV0ID0gZmVuY2Vfd2FpdF90aW1lb3V0KCZmZW5jZS0+YmFzZSwgaW50 ciwgMTUgKiBIWik7CisJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dCgmZmVuY2UtPmJhc2Us IGludHIsIDE1ICogSFopOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCWVsc2UgaWYg KCFyZXQpCkBAIC0zOTEsNyArMzkxLDcgQEAgaW50CiBub3V2ZWF1X2ZlbmNlX3N5bmMoc3RydWN0 IG5vdXZlYXVfYm8gKm52Ym8sIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sIGJvb2wgZXhj bHVzaXZlLCBib29sIGludHIpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9 IGNoYW4tPmZlbmNlOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IG52Ym8tPmJvLnJlc3Y7 CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwogCXN0cnVjdCBub3V2ZWF1 X2ZlbmNlICpmOwpAQCAtNDIxLDcgKzQyMSw3IEBAIG5vdXZlYXVfZmVuY2Vfc3luYyhzdHJ1Y3Qg bm91dmVhdV9ibyAqbnZibywgc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgYm9vbCBlCiAJ CX0KIAogCQlpZiAobXVzdF93YWl0KQotCQkJcmV0ID0gZmVuY2Vfd2FpdChmZW5jZSwgaW50cik7 CisJCQlyZXQgPSBkbWFfZmVuY2Vfd2FpdChmZW5jZSwgaW50cik7CiAKIAkJcmV0dXJuIHJldDsK IAl9CkBAIC00NDYsNyArNDQ2LDcgQEAgbm91dmVhdV9mZW5jZV9zeW5jKHN0cnVjdCBub3V2ZWF1 X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBib29sIGUKIAkJfQogCiAJ CWlmIChtdXN0X3dhaXQpCi0JCQlyZXQgPSBmZW5jZV93YWl0KGZlbmNlLCBpbnRyKTsKKwkJCXJl dCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCBpbnRyKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAt NDU2LDcgKzQ1Niw3IEBAIHZvaWQKIG5vdXZlYXVfZmVuY2VfdW5yZWYoc3RydWN0IG5vdXZlYXVf ZmVuY2UgKipwZmVuY2UpCiB7CiAJaWYgKCpwZmVuY2UpCi0JCWZlbmNlX3B1dCgmKCpwZmVuY2Up LT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmKCpwZmVuY2UpLT5iYXNlKTsKIAkqcGZlbmNlID0g TlVMTDsKIH0KIApAQCAtNDg0LDEyICs0ODQsMTIgQEAgbm91dmVhdV9mZW5jZV9uZXcoc3RydWN0 IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgYm9vbCBzeXNtZW0sCiAJcmV0dXJuIHJldDsKIH0KIAot c3RhdGljIGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X2dldF9kcml2ZXJfbmFtZShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X2dl dF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gIm5vdXZl YXUiOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVf bmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgY29uc3QgY2hhciAqbm91dmVhdV9mZW5jZV9n ZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1 X2ZlbmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2VfY2hh biAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5jZSk7CkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGlj IGNvbnN0IGNoYXIgKm5vdXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNl ICpmKQogICogcmVzdWx0LiBUaGUgZHJtIG5vZGUgc2hvdWxkIHN0aWxsIGJlIHRoZXJlLCBzbyB3 ZSBjYW4gZGVyaXZlIHRoZSBpbmRleCBmcm9tCiAgKiB0aGUgZmVuY2UgY29udGV4dC4KICAqLwot c3RhdGljIGJvb2wgbm91dmVhdV9mZW5jZV9pc19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitz dGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYp CiB7CiAJc3RydWN0IG5vdXZlYXVfZmVuY2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAlzdHJ1 Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpmY3R4ID0gbm91dmVhdV9mY3R4KGZlbmNlKTsKQEAgLTUx OSw3ICs1MTksNyBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2lzX3NpZ25hbGVkKHN0cnVj dCBmZW5jZSAqZikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNl X25vX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNl X25vX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCBub3V2ZWF1X2Zl bmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAKQEAgLTUzMCwzMCArNTMwLDMwIEBAIHN0YXRp YyBib29sIG5vdXZlYXVfZmVuY2Vfbm9fc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKIAlXQVJO X09OKGF0b21pY19yZWFkKCZmZW5jZS0+YmFzZS5yZWZjb3VudC5yZWZjb3VudCkgPD0gMSk7CiAK IAkvKgotCSAqIFRoaXMgbmVlZHMgdWV2ZW50cyB0byB3b3JrIGNvcnJlY3RseSwgYnV0IGZlbmNl X2FkZF9jYWxsYmFjayByZWxpZXMgb24KKwkgKiBUaGlzIG5lZWRzIHVldmVudHMgdG8gd29yayBj b3JyZWN0bHksIGJ1dCBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrIHJlbGllcyBvbgogCSAqIGJlaW5n IGFibGUgdG8gZW5hYmxlIHNpZ25hbGluZy4gSXQgd2lsbCBzdGlsbCBnZXQgc2lnbmFsZWQgZXZl bnR1YWxseSwKIAkgKiBqdXN0IG5vdCByaWdodCBhd2F5LgogCSAqLwogCWlmIChub3V2ZWF1X2Zl bmNlX2lzX3NpZ25hbGVkKGYpKSB7CiAJCWxpc3RfZGVsKCZmZW5jZS0+aGVhZCk7CiAKLQkJZmVu Y2VfcHV0KCZmZW5jZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAkJ cmV0dXJuIGZhbHNlOwogCX0KIAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBub3V2 ZWF1X2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIHZvaWQgbm91dmVhdV9m ZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IG5vdXZlYXVfZmVu Y2UgKmZlbmNlID0gZnJvbV9mZW5jZShmKTsKIAlzdHJ1Y3Qgbm91dmVhdV9mZW5jZV9jaGFuICpm Y3R4ID0gbm91dmVhdV9mY3R4KGZlbmNlKTsKIAogCWtyZWZfcHV0KCZmY3R4LT5mZW5jZV9yZWYs IG5vdXZlYXVfZmVuY2VfY29udGV4dF9wdXQpOwotCWZlbmNlX2ZyZWUoJmZlbmNlLT5iYXNlKTsK KwlkbWFfZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGZlbmNlX29wcyBub3V2ZWF1X2ZlbmNlX29wc19sZWdhY3kgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRtYV9mZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNfbGVnYWN5ID0gewogCS5nZXRfZHJp dmVyX25hbWUgPSBub3V2ZWF1X2ZlbmNlX2dldF9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1l bGluZV9uYW1lID0gbm91dmVhdV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3Np Z25hbGluZyA9IG5vdXZlYXVfZmVuY2Vfbm9fc2lnbmFsaW5nLApAQCAtNTYyLDcgKzU2Miw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vfb3BzX2xlZ2FjeSA9 IHsKIAkucmVsZWFzZSA9IG5vdXZlYXVfZmVuY2VfcmVsZWFzZQogfTsKIAotc3RhdGljIGJvb2wg bm91dmVhdV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBi b29sIG5vdXZlYXVfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQog ewogCXN0cnVjdCBub3V2ZWF1X2ZlbmNlICpmZW5jZSA9IGZyb21fZmVuY2UoZik7CiAJc3RydWN0 IG5vdXZlYXVfZmVuY2VfY2hhbiAqZmN0eCA9IG5vdXZlYXVfZmN0eChmZW5jZSk7CkBAIC01NzMs MTggKzU3MywxOCBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmco c3RydWN0IGZlbmNlICpmKQogCiAJcmV0ID0gbm91dmVhdV9mZW5jZV9ub19zaWduYWxpbmcoZik7 CiAJaWYgKHJldCkKLQkJc2V0X2JpdChGRU5DRV9GTEFHX1VTRVJfQklUUywgJmZlbmNlLT5iYXNl LmZsYWdzKTsKKwkJc2V0X2JpdChETUFfRkVOQ0VfRkxBR19VU0VSX0JJVFMsICZmZW5jZS0+YmFz ZS5mbGFncyk7CiAJZWxzZSBpZiAoIS0tZmN0eC0+bm90aWZ5X3JlZikKIAkJbnZpZl9ub3RpZnlf cHV0KCZmY3R4LT5ub3RpZnkpOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGNvbnN0IHN0 cnVjdCBmZW5jZV9vcHMgbm91dmVhdV9mZW5jZV9vcHNfdWV2ZW50ID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIG5vdXZlYXVfZmVuY2Vfb3BzX3VldmVudCA9IHsKIAkuZ2V0 X2RyaXZlcl9uYW1lID0gbm91dmVhdV9mZW5jZV9nZXRfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRf dGltZWxpbmVfbmFtZSA9IG5vdXZlYXVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJs ZV9zaWduYWxpbmcgPSBub3V2ZWF1X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVk ID0gbm91dmVhdV9mZW5jZV9pc19zaWduYWxlZCwKLQkud2FpdCA9IGZlbmNlX2RlZmF1bHRfd2Fp dCwKKwkud2FpdCA9IGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJlbGVhc2UgPSBOVUxMCiB9 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5oCmluZGV4IDY0YzRjZTcxMTVh ZC4uNDFmM2MwMTllNTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2ZlbmNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5jZS5o CkBAIC0xLDE0ICsxLDE0IEBACiAjaWZuZGVmIF9fTk9VVkVBVV9GRU5DRV9IX18KICNkZWZpbmUg X19OT1VWRUFVX0ZFTkNFX0hfXwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRl IDxsaW51eC9kbWEtZmVuY2UuaD4KICNpbmNsdWRlIDxudmlmL25vdGlmeS5oPgogCiBzdHJ1Y3Qg bm91dmVhdV9kcm07CiBzdHJ1Y3Qgbm91dmVhdV9ibzsKIAogc3RydWN0IG5vdXZlYXVfZmVuY2Ug ewotCXN0cnVjdCBmZW5jZSBiYXNlOworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKIAogCXN0cnVj dCBsaXN0X2hlYWQgaGVhZDsKIApAQCAtMjQsNyArMjQsNyBAQCB2b2lkIG5vdXZlYXVfZmVuY2Vf dW5yZWYoc3RydWN0IG5vdXZlYXVfZmVuY2UgKiopOwogCiBpbnQgIG5vdXZlYXVfZmVuY2VfZW1p dChzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICopOwogYm9v bCBub3V2ZWF1X2ZlbmNlX2RvbmUoc3RydWN0IG5vdXZlYXVfZmVuY2UgKik7Ci12b2lkIG5vdXZl YXVfZmVuY2Vfd29yayhzdHJ1Y3QgZmVuY2UgKiwgdm9pZCAoKikodm9pZCAqKSwgdm9pZCAqKTsK K3ZvaWQgbm91dmVhdV9mZW5jZV93b3JrKHN0cnVjdCBkbWFfZmVuY2UgKiwgdm9pZCAoKikodm9p ZCAqKSwgdm9pZCAqKTsKIGludCAgbm91dmVhdV9mZW5jZV93YWl0KHN0cnVjdCBub3V2ZWF1X2Zl bmNlICosIGJvb2wgbGF6eSwgYm9vbCBpbnRyKTsKIGludCAgbm91dmVhdV9mZW5jZV9zeW5jKHN0 cnVjdCBub3V2ZWF1X2JvICosIHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgYm9vbCBleGNsdXNp dmUsIGJvb2wgaW50cik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCmluZGV4 IDBiZDcxNjRiYzgxNy4uN2YwODNjOTVmNDIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZ2VtLmMKQEAgLTExOSw3ICsxMTksNyBAQCBub3V2ZWF1X2dlbV9vYmplY3RfdW5tYXAoc3Ry dWN0IG5vdXZlYXVfYm8gKm52Ym8sIHN0cnVjdCBudmttX3ZtYSAqdm1hKQogCWNvbnN0IGJvb2wg bWFwcGVkID0gbnZiby0+Ym8ubWVtLm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU07CiAJc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IG52Ym8tPmJvLnJlc3Y7CiAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOwor CXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gTlVMTDsKIAogCWZvYmogPSByZXNlcnZhdGlvbl9v YmplY3RfZ2V0X2xpc3QocmVzdik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L252MDRfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MDRfZmVuY2UuYwpp bmRleCAxOTE1YjdiODJhNTkuLmZhOGYyMzc1YzM5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnYwNF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 MDRfZmVuY2UuYwpAQCAtMTEwLDYgKzExMCw2IEBAIG52MDRfZmVuY2VfY3JlYXRlKHN0cnVjdCBu b3V2ZWF1X2RybSAqZHJtKQogCXByaXYtPmJhc2UuY29udGV4dF9uZXcgPSBudjA0X2ZlbmNlX2Nv bnRleHRfbmV3OwogCXByaXYtPmJhc2UuY29udGV4dF9kZWwgPSBudjA0X2ZlbmNlX2NvbnRleHRf ZGVsOwogCXByaXYtPmJhc2UuY29udGV4dHMgPSAxNTsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFz ZSA9IGZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFz ZS5jb250ZXh0X2Jhc2UgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRl eHRzKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L252MTBfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBfZmVuY2UuYwppbmRl eCA0ZTNkZTM0ZmY2ZjQuLmY5OWZjZjU2OTI4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbnYxMF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTBf ZmVuY2UuYwpAQCAtMTA3LDcgKzEwNyw3IEBAIG52MTBfZmVuY2VfY3JlYXRlKHN0cnVjdCBub3V2 ZWF1X2RybSAqZHJtKQogCXByaXYtPmJhc2UuY29udGV4dF9uZXcgPSBudjEwX2ZlbmNlX2NvbnRl eHRfbmV3OwogCXByaXYtPmJhc2UuY29udGV4dF9kZWwgPSBudjEwX2ZlbmNlX2NvbnRleHRfZGVs OwogCXByaXYtPmJhc2UuY29udGV4dHMgPSAzMTsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9 IGZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5j b250ZXh0X2Jhc2UgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRz KTsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bG9jayk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKaW5kZXggN2Q1ZTU2MmE1NWM1Li43OWJjMDExMTEzNTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKQEAgLTEyNiw3ICsxMjYsNyBAQCBu djE3X2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKIAlwcml2LT5iYXNlLmNv bnRleHRfbmV3ID0gbnYxN19mZW5jZV9jb250ZXh0X25ldzsKIAlwcml2LT5iYXNlLmNvbnRleHRf ZGVsID0gbnYxMF9mZW5jZV9jb250ZXh0X2RlbDsKIAlwcml2LT5iYXNlLmNvbnRleHRzID0gMzE7 Ci0JcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBmZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJh c2UuY29udGV4dHMpOworCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0gZG1hX2ZlbmNlX2NvbnRl eHRfYWxsb2MocHJpdi0+YmFzZS5jb250ZXh0cyk7CiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxv Y2spOwogCiAJcmV0ID0gbm91dmVhdV9ib19uZXcoZHJtLT5kZXYsIDQwOTYsIDB4MTAwMCwgVFRN X1BMX0ZMQUdfVlJBTSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBf ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2UuYwppbmRleCA0ZDZm MjAyYjc3NzAuLjhjNTI5NTQxNDU3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnY1MF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVuY2Uu YwpAQCAtOTcsNyArOTcsNyBAQCBudjUwX2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0g KmRybSkKIAlwcml2LT5iYXNlLmNvbnRleHRfbmV3ID0gbnY1MF9mZW5jZV9jb250ZXh0X25ldzsK IAlwcml2LT5iYXNlLmNvbnRleHRfZGVsID0gbnYxMF9mZW5jZV9jb250ZXh0X2RlbDsKIAlwcml2 LT5iYXNlLmNvbnRleHRzID0gMTI3OwotCXByaXYtPmJhc2UuY29udGV4dF9iYXNlID0gZmVuY2Vf Y29udGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKKwlwcml2LT5iYXNlLmNvbnRleHRf YmFzZSA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKHByaXYtPmJhc2UuY29udGV4dHMpOwogCXNw aW5fbG9ja19pbml0KCZwcml2LT5sb2NrKTsKIAogCXJldCA9IG5vdXZlYXVfYm9fbmV3KGRybS0+ ZGV2LCA0MDk2LCAweDEwMDAsIFRUTV9QTF9GTEFHX1ZSQU0sCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9udjg0X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u djg0X2ZlbmNlLmMKaW5kZXggMThiZGU5ZDhlNmQ2Li4yM2VmMDRiNGUwYjIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252ODRfZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9udjg0X2ZlbmNlLmMKQEAgLTIyOSw3ICsyMjksNyBAQCBudjg0X2ZlbmNlX2Ny ZWF0ZShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKIAlwcml2LT5iYXNlLmNvbnRleHRfZGVsID0g bnY4NF9mZW5jZV9jb250ZXh0X2RlbDsKIAogCXByaXYtPmJhc2UuY29udGV4dHMgPSBmaWZvLT5u cjsKLQlwcml2LT5iYXNlLmNvbnRleHRfYmFzZSA9IGZlbmNlX2NvbnRleHRfYWxsb2MocHJpdi0+ YmFzZS5jb250ZXh0cyk7CisJcHJpdi0+YmFzZS5jb250ZXh0X2Jhc2UgPSBkbWFfZmVuY2VfY29u dGV4dF9hbGxvYyhwcml2LT5iYXNlLmNvbnRleHRzKTsKIAlwcml2LT5iYXNlLnVldmVudCA9IHRy dWU7CiAKIAkvKiBVc2UgVlJBTSBpZiB0aGVyZSBpcyBhbnkgOyBvdGhlcndpc2UgZmFsbGJhY2sg dG8gc3lzdGVtIG1lbW9yeSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAppbmRleCA1ZjNlNWFkOTlkZTcu Ljg0OTk1ZWJjNmZmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmgKQEAgLTMxLDcgKzMxLDcgQEAKICAq IERlZmluaXRpb25zIHRha2VuIGZyb20gc3BpY2UtcHJvdG9jb2wsIHBsdXMga2VybmVsIGRyaXZl ciBzcGVjaWZpYyBiaXRzLgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1 ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNl Lmg+CkBAIC0xOTAsNyArMTkwLDcgQEAgZW51bSB7CiAgKiBzcGljZS1wcm90b2NvbC9xeGxfZGV2 LmggKi8KICNkZWZpbmUgUVhMX01BWF9SRVMgOTYKIHN0cnVjdCBxeGxfcmVsZWFzZSB7Ci0Jc3Ry dWN0IGZlbmNlIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZSBiYXNlOwogCiAJaW50IGlkOwogCWlu dCB0eXBlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jIGIv ZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCmluZGV4IGNkODNmMDUwY2YzZS4uNTBi NGU1MjJmMDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC0yMSw3ICsyMSw3IEBA CiAgKi8KICNpbmNsdWRlICJxeGxfZHJ2LmgiCiAjaW5jbHVkZSAicXhsX29iamVjdC5oIgotI2lu Y2x1ZGUgPHRyYWNlL2V2ZW50cy9mZW5jZS5oPgorI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9kbWFf ZmVuY2UuaD4KIAogLyoKICAqIGRyYXdhYmxlIGNtZCBjYWNoZSAtIGFsbG9jYXRlIGEgYnVuY2gg b2YgVlJBTSBwYWdlcywgc3ViYWxsb2NhdGUKQEAgLTQwLDIzICs0MCwyNCBAQAogc3RhdGljIGNv bnN0IGludCByZWxlYXNlX3NpemVfcGVyX2JvW10gPSB7IFJFTEVBU0VfU0laRSwgU1VSRkFDRV9S RUxFQVNFX1NJWkUsIFJFTEVBU0VfU0laRSB9Owogc3RhdGljIGNvbnN0IGludCByZWxlYXNlc19w ZXJfYm9bXSA9IHsgUkVMRUFTRVNfUEVSX0JPLCBTVVJGQUNFX1JFTEVBU0VTX1BFUl9CTywgUkVM RUFTRVNfUEVSX0JPIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICpxeGxfZ2V0X2RyaXZlcl9uYW1l KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0aWMgY29uc3QgY2hhciAqcXhsX2dldF9kcml2ZXJf bmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInF4bCI7CiB9CiAKLXN0 YXRpYyBjb25zdCBjaGFyICpxeGxfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5j ZSkKK3N0YXRpYyBjb25zdCBjaGFyICpxeGxfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJyZWxlYXNlIjsKIH0KIAotc3RhdGljIGJvb2wgcXhs X25vcF9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBib29sIHF4bF9ub3Bf c2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCS8qIGZlbmNlcyBhcmUgYWx3 YXlzIGF1dG9tYXRpY2FsbHkgc2lnbmFsZWQsIHNvIGp1c3QgcHJldGVuZCB3ZSBkaWQgdGhpcy4u ICovCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0KHN0cnVj dCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKK3N0YXRpYyBs b25nIHF4bF9mZW5jZV93YWl0KHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGludHIsCisJ CQkgICBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCBxeGxfZGV2aWNlICpxZGV2Owog CXN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZTsKQEAgLTcxLDcgKzcyLDcgQEAgc3RhdGljIGxv bmcgcXhsX2ZlbmNlX3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQg bG9uZyB0aW1lb3V0KQogcmV0cnk6CiAJc2MrKzsKIAotCWlmIChmZW5jZV9pc19zaWduYWxlZChm ZW5jZSkpCisJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCiAJCWdvdG8gc2lnbmFs ZWQ7CiAKIAlxeGxfaW9fbm90aWZ5X29vbShxZGV2KTsKQEAgLTgwLDExICs4MSwxMSBAQCBzdGF0 aWMgbG9uZyBxeGxfZmVuY2Vfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNp Z25lZCBsb25nIHRpbWVvdXQpCiAJCWlmICghcXhsX3F1ZXVlX2dhcmJhZ2VfY29sbGVjdChxZGV2 LCB0cnVlKSkKIAkJCWJyZWFrOwogCi0JCWlmIChmZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCisJ CWlmIChkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQogCQkJZ290byBzaWduYWxlZDsKIAl9 CiAKLQlpZiAoZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQorCWlmIChkbWFfZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQogCQlnb3RvIHNpZ25hbGVkOwogCiAJaWYgKGhhdmVfZHJhd2FibGVfcmVs ZWFzZXMgfHwgc2MgPCA0KSB7CkBAIC05Niw5ICs5Nyw5IEBAIHN0YXRpYyBsb25nIHF4bF9mZW5j ZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91 dCkKIAkJCXJldHVybiAwOwogCiAJCWlmIChoYXZlX2RyYXdhYmxlX3JlbGVhc2VzICYmIHNjID4g MzAwKSB7Ci0JCQlGRU5DRV9XQVJOKGZlbmNlLCAiZmFpbGVkIHRvIHdhaXQgb24gcmVsZWFzZSAl bGx1ICIKLQkJCQkJICAiYWZ0ZXIgc3BpbmNvdW50ICVkXG4iLAotCQkJCQkgIGZlbmNlLT5jb250 ZXh0ICYgfjB4ZjAwMDAwMDAsIHNjKTsKKwkJCURNQV9GRU5DRV9XQVJOKGZlbmNlLCAiZmFpbGVk IHRvIHdhaXQgb24gcmVsZWFzZSAlbGx1ICIKKwkJCQkgICAgICAgImFmdGVyIHNwaW5jb3VudCAl ZFxuIiwKKwkJCQkgICAgICAgZmVuY2UtPmNvbnRleHQgJiB+MHhmMDAwMDAwMCwgc2MpOwogCQkJ Z290byBzaWduYWxlZDsKIAkJfQogCQlnb3RvIHJldHJ5OwpAQCAtMTE1LDcgKzExNiw3IEBAIHN0 YXRpYyBsb25nIHF4bF9mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGJvb2wgaW50ciwg c2lnbmVkIGxvbmcgdGltZW91dCkKIAlyZXR1cm4gZW5kIC0gY3VyOwogfQogCi1zdGF0aWMgY29u c3Qgc3RydWN0IGZlbmNlX29wcyBxeGxfZmVuY2Vfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVj dCBkbWFfZmVuY2Vfb3BzIHF4bF9mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJfbmFtZSA9IHF4 bF9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gcXhsX2dldF90aW1lbGlu ZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gcXhsX25vcF9zaWduYWxpbmcsCkBAIC0xOTIs OCArMTkzLDggQEAgcXhsX3JlbGVhc2VfZnJlZShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKIAkJ V0FSTl9PTihsaXN0X2VtcHR5KCZyZWxlYXNlLT5ib3MpKTsKIAkJcXhsX3JlbGVhc2VfZnJlZV9s aXN0KHJlbGVhc2UpOwogCi0JCWZlbmNlX3NpZ25hbCgmcmVsZWFzZS0+YmFzZSk7Ci0JCWZlbmNl X3B1dCgmcmVsZWFzZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoJnJlbGVhc2UtPmJhc2Up OworCQlkbWFfZmVuY2VfcHV0KCZyZWxlYXNlLT5iYXNlKTsKIAl9IGVsc2UgewogCQlxeGxfcmVs ZWFzZV9mcmVlX2xpc3QocmVsZWFzZSk7CiAJCWtmcmVlKHJlbGVhc2UpOwpAQCAtNDUzLDkgKzQ1 NCw5IEBAIHZvaWQgcXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9y ZWxlYXNlICpyZWxlYXNlKQogCSAqIFNpbmNlIHdlIG5ldmVyIHJlYWxseSBhbGxvY2F0ZWQgYSBj b250ZXh0IGFuZCB3ZSBkb24ndCB3YW50IHRvIGNvbmZsaWN0LAogCSAqIHNldCB0aGUgaGlnaGVz dCBiaXRzLiBUaGlzIHdpbGwgYnJlYWsgaWYgd2UgcmVhbGx5IGFsbG93IGV4cG9ydGluZyBvZiBk bWEtYnVmcy4KIAkgKi8KLQlmZW5jZV9pbml0KCZyZWxlYXNlLT5iYXNlLCAmcXhsX2ZlbmNlX29w cywgJnFkZXYtPnJlbGVhc2VfbG9jaywKLQkJICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCBy ZWxlYXNlLT5iYXNlLnNlcW5vKTsKLQl0cmFjZV9mZW5jZV9lbWl0KCZyZWxlYXNlLT5iYXNlKTsK KwlkbWFfZmVuY2VfaW5pdCgmcmVsZWFzZS0+YmFzZSwgJnF4bF9mZW5jZV9vcHMsICZxZGV2LT5y ZWxlYXNlX2xvY2ssCisJCSAgICAgICByZWxlYXNlLT5pZCB8IDB4ZjAwMDAwMDAsIHJlbGVhc2Ut PmJhc2Uuc2Vxbm8pOworCXRyYWNlX2RtYV9mZW5jZV9lbWl0KCZyZWxlYXNlLT5iYXNlKTsKIAog CWRyaXZlciA9IGJkZXYtPmRyaXZlcjsKIAlnbG9iID0gYm8tPmdsb2I7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb24uaAppbmRleCAxYjBkY2FkOTE2YjAuLjQ0ZTBjNWVkNjQxOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbi5oCkBAIC02Niw3ICs2Niw3IEBACiAjaW5jbHVkZSA8bGludXgva3JlZi5oPgogI2lu Y2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9oYXNodGFibGUu aD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5o PgogCiAjaW5jbHVkZSA8dHRtL3R0bV9ib19hcGkuaD4KICNpbmNsdWRlIDx0dG0vdHRtX2JvX2Ry aXZlci5oPgpAQCAtMzY3LDcgKzM2Nyw3IEBAIHN0cnVjdCByYWRlb25fZmVuY2VfZHJpdmVyIHsK IH07CiAKIHN0cnVjdCByYWRlb25fZmVuY2UgewotCXN0cnVjdCBmZW5jZQkJYmFzZTsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlCQliYXNlOwogCiAJc3RydWN0IHJhZGVvbl9kZXZpY2UJKnJkZXY7CiAJdWlu dDY0X3QJCXNlcTsKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZsaXBfd29yayB7 CiAJdWludDY0X3QJCQliYXNlOwogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2 ZW50OwogCXN0cnVjdCByYWRlb25fYm8JCSpvbGRfcmJvOwotCXN0cnVjdCBmZW5jZQkJCSpmZW5j ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlCQkqZmVuY2U7CiAJYm9vbAkJCQlhc3luYzsKIH07CiAKQEAg LTI1MTQsOSArMjUxNCw5IEBAIHZvaWQgY2lrX21tX3dkb29yYmVsbChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwgdTMyIGluZGV4LCB1MzIgdik7CiAvKgogICogQ2FzdCBoZWxwZXIKICAqLwot ZXh0ZXJuIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wczsKK2V4dGVybiBj b25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyByYWRlb25fZmVuY2Vfb3BzOwogCi1zdGF0aWMgaW5s aW5lIHN0cnVjdCByYWRlb25fZmVuY2UgKnRvX3JhZGVvbl9mZW5jZShzdHJ1Y3QgZmVuY2UgKmYp CitzdGF0aWMgaW5saW5lIHN0cnVjdCByYWRlb25fZmVuY2UgKnRvX3JhZGVvbl9mZW5jZShzdHJ1 Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKl9fZiA9IGNvbnRhaW5l cl9vZihmLCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlLCBiYXNlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kZXZpY2UuYwppbmRleCBlYjkyYWVmNDZlM2MuLjM2YjdhYzdlNTdlNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMKQEAgLTEzMjAsNyArMTMyMCw3IEBAIGlu dCByYWRlb25fZGV2aWNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJZm9yIChp ID0gMDsgaSA8IFJBREVPTl9OVU1fUklOR1M7IGkrKykgewogCQlyZGV2LT5yaW5nW2ldLmlkeCA9 IGk7CiAJfQotCXJkZXYtPmZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKFJBREVP Tl9OVU1fUklOR1MpOworCXJkZXYtPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVuY2VfY29udGV4dF9h bGxvYyhSQURFT05fTlVNX1JJTkdTKTsKIAogCURSTV9JTkZPKCJpbml0aWFsaXppbmcga2VybmVs IG1vZGVzZXR0aW5nICglcyAweCUwNFg6MHglMDRYIDB4JTA0WDoweCUwNFggMHglMDJYKS5cbiIs CiAJCSByYWRlb25fZmFtaWx5X25hbWVbcmRldi0+ZmFtaWx5XSwgcGRldi0+dmVuZG9yLCBwZGV2 LT5kZXZpY2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKaW5kZXggY2Ri OGNiNTY4YzE1Li5lNzQwOWU4YTlmODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k aXNwbGF5LmMKQEAgLTQzNyw3ICs0MzcsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fZmxpcF93b3Jr X2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCQkJZG93bl9yZWFkKCZyZGV2LT5l eGNsdXNpdmVfbG9jayk7CiAJCQl9CiAJCX0gZWxzZQotCQkJciA9IGZlbmNlX3dhaXQod29yay0+ ZmVuY2UsIGZhbHNlKTsKKwkJCXIgPSBkbWFfZmVuY2Vfd2FpdCh3b3JrLT5mZW5jZSwgZmFsc2Up OwogCiAJCWlmIChyKQogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gd2FpdCBvbiBwYWdlIGZsaXAg ZmVuY2UgKCVkKSFcbiIsIHIpOwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIHJhZGVv bl9mbGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAkJICogY29uZnVz ZWQgYWJvdXQgd2hpY2ggQk8gdGhlIENSVEMgaXMgc2Nhbm5pbmcgb3V0CiAJCSAqLwogCi0JCWZl bmNlX3B1dCh3b3JrLT5mZW5jZSk7CisJCWRtYV9mZW5jZV9wdXQod29yay0+ZmVuY2UpOwogCQl3 b3JrLT5mZW5jZSA9IE5VTEw7CiAJfQogCkBAIC01NDIsNyArNTQyLDcgQEAgc3RhdGljIGludCBy YWRlb25fY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJRFJN X0VSUk9SKCJmYWlsZWQgdG8gcGluIG5ldyByYm8gYnVmZmVyIGJlZm9yZSBmbGlwXG4iKTsKIAkJ Z290byBjbGVhbnVwOwogCX0KLQl3b3JrLT5mZW5jZSA9IGZlbmNlX2dldChyZXNlcnZhdGlvbl9v YmplY3RfZ2V0X2V4Y2wobmV3X3Jiby0+dGJvLnJlc3YpKTsKKwl3b3JrLT5mZW5jZSA9IGRtYV9m ZW5jZV9nZXQocmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsKG5ld19yYm8tPnRiby5yZXN2KSk7 CiAJcmFkZW9uX2JvX2dldF90aWxpbmdfZmxhZ3MobmV3X3JibywgJnRpbGluZ19mbGFncywgTlVM TCk7CiAJcmFkZW9uX2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKIApAQCAtNjE3LDcgKzYxNyw3IEBA IHN0YXRpYyBpbnQgcmFkZW9uX2NydGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAKIGNsZWFudXA6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQo JndvcmstPm9sZF9yYm8tPmdlbV9iYXNlKTsKLQlmZW5jZV9wdXQod29yay0+ZmVuY2UpOworCWRt YV9mZW5jZV9wdXQod29yay0+ZmVuY2UpOwogCWtmcmVlKHdvcmspOwogCXJldHVybiByOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMKaW5kZXggN2VmMDc1YWNkZTljLi5lZjA5 ZjBhNjM3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYwpAQCAtMTQxLDgg KzE0MSwxMCBAQCBpbnQgcmFkZW9uX2ZlbmNlX2VtaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJKCpmZW5jZSktPnNlcSA9IHNlcSA9ICsrcmRldi0+ZmVuY2VfZHJ2W3JpbmddLnN5bmNf c2VxW3JpbmddOwogCSgqZmVuY2UpLT5yaW5nID0gcmluZzsKIAkoKmZlbmNlKS0+aXNfdm1fdXBk YXRlID0gZmFsc2U7Ci0JZmVuY2VfaW5pdCgmKCpmZW5jZSktPmJhc2UsICZyYWRlb25fZmVuY2Vf b3BzLAotCQkgICAmcmRldi0+ZmVuY2VfcXVldWUubG9jaywgcmRldi0+ZmVuY2VfY29udGV4dCAr IHJpbmcsIHNlcSk7CisJZG1hX2ZlbmNlX2luaXQoJigqZmVuY2UpLT5iYXNlLCAmcmFkZW9uX2Zl bmNlX29wcywKKwkJICAgICAgICZyZGV2LT5mZW5jZV9xdWV1ZS5sb2NrLAorCQkgICAgICAgcmRl di0+ZmVuY2VfY29udGV4dCArIHJpbmcsCisJCSAgICAgICBzZXEpOwogCXJhZGVvbl9mZW5jZV9y aW5nX2VtaXQocmRldiwgcmluZywgKmZlbmNlKTsKIAl0cmFjZV9yYWRlb25fZmVuY2VfZW1pdChy ZGV2LT5kZGV2LCByaW5nLCAoKmZlbmNlKS0+c2VxKTsKIAlyYWRlb25fZmVuY2Vfc2NoZWR1bGVf Y2hlY2socmRldiwgcmluZyk7CkBAIC0xNjksMTggKzE3MSwxOCBAQCBzdGF0aWMgaW50IHJhZGVv bl9mZW5jZV9jaGVja19zaWduYWxlZCh3YWl0X3F1ZXVlX3QgKndhaXQsIHVuc2lnbmVkIG1vZGUs IGludCBmbAogCSAqLwogCXNlcSA9IGF0b21pYzY0X3JlYWQoJmZlbmNlLT5yZGV2LT5mZW5jZV9k cnZbZmVuY2UtPnJpbmddLmxhc3Rfc2VxKTsKIAlpZiAoc2VxID49IGZlbmNlLT5zZXEpIHsKLQkJ aW50IHJldCA9IGZlbmNlX3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKKwkJaW50IHJldCA9 IGRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+YmFzZSk7CiAKIAkJaWYgKCFyZXQpCi0J CQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIGlycSBjb250ZXh0XG4i KTsKKwkJCURNQV9GRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJzaWduYWxlZCBmcm9tIGlycSBj b250ZXh0XG4iKTsKIAkJZWxzZQotCQkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAid2FzIGFs cmVhZHkgc2lnbmFsZWRcbiIpOworCQkJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgIndh cyBhbHJlYWR5IHNpZ25hbGVkXG4iKTsKIAogCQlyYWRlb25faXJxX2ttc19zd19pcnFfcHV0KGZl bmNlLT5yZGV2LCBmZW5jZS0+cmluZyk7CiAJCV9fcmVtb3ZlX3dhaXRfcXVldWUoJmZlbmNlLT5y ZGV2LT5mZW5jZV9xdWV1ZSwgJmZlbmNlLT5mZW5jZV93YWtlKTsKLQkJZmVuY2VfcHV0KCZmZW5j ZS0+YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAl9IGVsc2UKLQkJRkVO Q0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAicGVuZGluZ1xuIik7CisJCURNQV9GRU5DRV9UUkFDRSgm ZmVuY2UtPmJhc2UsICJwZW5kaW5nXG4iKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzUxLDcgKzM1 Myw3IEBAIHN0YXRpYyBib29sIHJhZGVvbl9mZW5jZV9zZXFfc2lnbmFsZWQoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsCiAJcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCByYWRlb25f ZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQorc3RhdGljIGJvb2wgcmFkZW9uX2Zl bmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJc3RydWN0IHJhZGVvbl9m ZW5jZSAqZmVuY2UgPSB0b19yYWRlb25fZmVuY2UoZik7CiAJc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYgPSBmZW5jZS0+cmRldjsKQEAgLTM4MSw3ICszODMsNyBAQCBzdGF0aWMgYm9vbCByYWRl b25fZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQogICogdG8gZmVuY2VfcXVldWUg dGhhdCBjaGVja3MgaWYgdGhpcyBmZW5jZSBpcyBzaWduYWxlZCwgYW5kIGlmIHNvIGl0CiAgKiBz aWduYWxzIHRoZSBmZW5jZSBhbmQgcmVtb3ZlcyBpdHNlbGYuCiAgKi8KLXN0YXRpYyBib29sIHJh ZGVvbl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29s IHJhZGVvbl9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJ c3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UgPSB0b19yYWRlb25fZmVuY2UoZik7CiAJc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBmZW5jZS0+cmRldjsKQEAgLTQxNCw5ICs0MTYsOSBAQCBz dGF0aWMgYm9vbCByYWRlb25fZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYp CiAJZmVuY2UtPmZlbmNlX3dha2UucHJpdmF0ZSA9IE5VTEw7CiAJZmVuY2UtPmZlbmNlX3dha2Uu ZnVuYyA9IHJhZGVvbl9mZW5jZV9jaGVja19zaWduYWxlZDsKIAlfX2FkZF93YWl0X3F1ZXVlKCZy ZGV2LT5mZW5jZV9xdWV1ZSwgJmZlbmNlLT5mZW5jZV93YWtlKTsKLQlmZW5jZV9nZXQoZik7CisJ ZG1hX2ZlbmNlX2dldChmKTsKIAotCUZFTkNFX1RSQUNFKCZmZW5jZS0+YmFzZSwgImFybWVkIG9u IHJpbmcgJWkhXG4iLCBmZW5jZS0+cmluZyk7CisJRE1BX0ZFTkNFX1RSQUNFKCZmZW5jZS0+YmFz ZSwgImFybWVkIG9uIHJpbmcgJWkhXG4iLCBmZW5jZS0+cmluZyk7CiAJcmV0dXJuIHRydWU7CiB9 CiAKQEAgLTQzNiw5ICs0MzgsOSBAQCBib29sIHJhZGVvbl9mZW5jZV9zaWduYWxlZChzdHJ1Y3Qg cmFkZW9uX2ZlbmNlICpmZW5jZSkKIAlpZiAocmFkZW9uX2ZlbmNlX3NlcV9zaWduYWxlZChmZW5j ZS0+cmRldiwgZmVuY2UtPnNlcSwgZmVuY2UtPnJpbmcpKSB7CiAJCWludCByZXQ7CiAKLQkJcmV0 ID0gZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CisJCXJldCA9IGRtYV9mZW5jZV9zaWduYWwo JmZlbmNlLT5iYXNlKTsKIAkJaWYgKCFyZXQpCi0JCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2Us ICJzaWduYWxlZCBmcm9tIHJhZGVvbl9mZW5jZV9zaWduYWxlZFxuIik7CisJCQlETUFfRkVOQ0Vf VFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFsZWQgZnJvbSByYWRlb25fZmVuY2Vfc2lnbmFsZWRc biIpOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAJcmV0dXJuIGZhbHNlOwpAQCAtNTUyLDcgKzU1NCw3 IEBAIGxvbmcgcmFkZW9uX2ZlbmNlX3dhaXRfdGltZW91dChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpm ZW5jZSwgYm9vbCBpbnRyLCBsb25nIHRpbWVvCiAJICogZXhjbHVzaXZlX2xvY2sgaXMgbm90IGhl bGQgaW4gdGhhdCBjYXNlLgogCSAqLwogCWlmIChXQVJOX09OX09OQ0UoIXRvX3JhZGVvbl9mZW5j ZSgmZmVuY2UtPmJhc2UpKSkKLQkJcmV0dXJuIGZlbmNlX3dhaXQoJmZlbmNlLT5iYXNlLCBpbnRy KTsKKwkJcmV0dXJuIGRtYV9mZW5jZV93YWl0KCZmZW5jZS0+YmFzZSwgaW50cik7CiAKIAlzZXFb ZmVuY2UtPnJpbmddID0gZmVuY2UtPnNlcTsKIAlyID0gcmFkZW9uX2ZlbmNlX3dhaXRfc2VxX3Rp bWVvdXQoZmVuY2UtPnJkZXYsIHNlcSwgaW50ciwgdGltZW91dCk7CkBAIC01NjAsOSArNTYyLDkg QEAgbG9uZyByYWRlb25fZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVjdCByYWRlb25fZmVuY2UgKmZl bmNlLCBib29sIGludHIsIGxvbmcgdGltZW8KIAkJcmV0dXJuIHI7CiAJfQogCi0Jcl9zaWcgPSBm ZW5jZV9zaWduYWwoJmZlbmNlLT5iYXNlKTsKKwlyX3NpZyA9IGRtYV9mZW5jZV9zaWduYWwoJmZl bmNlLT5iYXNlKTsKIAlpZiAoIXJfc2lnKQotCQlGRU5DRV9UUkFDRSgmZmVuY2UtPmJhc2UsICJz aWduYWxlZCBmcm9tIGZlbmNlX3dhaXRcbiIpOworCQlETUFfRkVOQ0VfVFJBQ0UoJmZlbmNlLT5i YXNlLCAic2lnbmFsZWQgZnJvbSBmZW5jZV93YWl0XG4iKTsKIAlyZXR1cm4gcjsKIH0KIApAQCAt Njk3LDcgKzY5OSw3IEBAIGludCByYWRlb25fZmVuY2Vfd2FpdF9lbXB0eShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwgaW50IHJpbmcpCiAgKi8KIHN0cnVjdCByYWRlb25fZmVuY2UgKnJhZGVv bl9mZW5jZV9yZWYoc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UpCiB7Ci0JZmVuY2VfZ2V0KCZm ZW5jZS0+YmFzZSk7CisJZG1hX2ZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOwogCXJldHVybiBmZW5j ZTsKIH0KIApAQCAtNzE0LDcgKzcxNiw3IEBAIHZvaWQgcmFkZW9uX2ZlbmNlX3VucmVmKHN0cnVj dCByYWRlb25fZmVuY2UgKipmZW5jZSkKIAogCSpmZW5jZSA9IE5VTEw7CiAJaWYgKHRtcCkgewot CQlmZW5jZV9wdXQoJnRtcC0+YmFzZSk7CisJCWRtYV9mZW5jZV9wdXQoJnRtcC0+YmFzZSk7CiAJ fQogfQogCkBAIC0xMDI4LDEyICsxMDMwLDEyIEBAIGludCByYWRlb25fZGVidWdmc19mZW5jZV9p bml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogI2VuZGlmCiB9CiAKLXN0YXRpYyBjb25z dCBjaGFyICpyYWRlb25fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2Up CitzdGF0aWMgY29uc3QgY2hhciAqcmFkZW9uX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInJhZGVvbiI7CiB9CiAKLXN0YXRpYyBjb25z dCBjaGFyICpyYWRlb25fZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmKQor c3RhdGljIGNvbnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3Qg ZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlID0gdG9fcmFkZW9u X2ZlbmNlKGYpOwogCXN3aXRjaCAoZmVuY2UtPnJpbmcpIHsKQEAgLTEwNTEsMTYgKzEwNTMsMTYg QEAgc3RhdGljIGNvbnN0IGNoYXIgKnJhZGVvbl9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZShzdHJ1 Y3QgZmVuY2UgKmYpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCByYWRlb25fdGVzdF9zaWduYWxlZChz dHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSkKIHsKLQlyZXR1cm4gdGVzdF9iaXQoRkVOQ0VfRkxB R19TSUdOQUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncyk7CisJcmV0dXJuIHRlc3RfYml0KERN QV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKTsKIH0KIAogc3Ry dWN0IHJhZGVvbl93YWl0X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgYmFzZTsKKwlzdHJ1Y3QgZG1h X2ZlbmNlX2NiIGJhc2U7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogfTsKIAogc3RhdGlj IHZvaWQKLXJhZGVvbl9mZW5jZV93YWl0X2NiKHN0cnVjdCBmZW5jZSAqZmVuY2UsIHN0cnVjdCBm ZW5jZV9jYiAqY2IpCityYWRlb25fZmVuY2Vfd2FpdF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZSwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCiB7CiAJc3RydWN0IHJhZGVvbl93YWl0X2NiICp3 YWl0ID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3QgcmFkZW9uX3dhaXRfY2IsIGJhc2UpOwpA QCAtMTA2OCw3ICsxMDcwLDcgQEAgcmFkZW9uX2ZlbmNlX3dhaXRfY2Ioc3RydWN0IGZlbmNlICpm ZW5jZSwgc3RydWN0IGZlbmNlX2NiICpjYikKIAl3YWtlX3VwX3Byb2Nlc3Mod2FpdC0+dGFzayk7 CiB9CiAKLXN0YXRpYyBzaWduZWQgbG9uZyByYWRlb25fZmVuY2VfZGVmYXVsdF93YWl0KHN0cnVj dCBmZW5jZSAqZiwgYm9vbCBpbnRyLAorc3RhdGljIHNpZ25lZCBsb25nIHJhZGVvbl9mZW5jZV9k ZWZhdWx0X3dhaXQoc3RydWN0IGRtYV9mZW5jZSAqZiwgYm9vbCBpbnRyLAogCQkJCQkgICAgIHNp Z25lZCBsb25nIHQpCiB7CiAJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UgPSB0b19yYWRlb25f ZmVuY2UoZik7CkBAIC0xMDc3LDcgKzEwNzksNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgcmFkZW9u X2ZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwKIAogCWNiLnRh c2sgPSBjdXJyZW50OwogCi0JaWYgKGZlbmNlX2FkZF9jYWxsYmFjayhmLCAmY2IuYmFzZSwgcmFk ZW9uX2ZlbmNlX3dhaXRfY2IpKQorCWlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGYsICZjYi5i YXNlLCByYWRlb25fZmVuY2Vfd2FpdF9jYikpCiAJCXJldHVybiB0OwogCiAJd2hpbGUgKHQgPiAw KSB7CkBAIC0xMTA1LDEyICsxMTA3LDEyIEBAIHN0YXRpYyBzaWduZWQgbG9uZyByYWRlb25fZmVu Y2VfZGVmYXVsdF93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLAogCX0KIAogCV9fc2V0 X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKLQlmZW5jZV9yZW1vdmVfY2FsbGJhY2soZiwg JmNiLmJhc2UpOworCWRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soZiwgJmNiLmJhc2UpOwogCiAJ cmV0dXJuIHQ7CiB9CiAKLWNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgcmFkZW9uX2ZlbmNlX29wcyA9 IHsKK2NvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHJhZGVvbl9mZW5jZV9vcHMgPSB7CiAJLmdl dF9kcml2ZXJfbmFtZSA9IHJhZGVvbl9mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1l bGluZV9uYW1lID0gcmFkZW9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2ln bmFsaW5nID0gcmFkZW9uX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9zeW5jLmMKaW5kZXggMDJhYzhhMWRlNGZmLi5iZTVkN2EzOGQzYWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N5bmMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9zeW5jLmMKQEAgLTkyLDcgKzkyLDcgQEAgaW50IHJhZGVvbl9z eW5jX3Jlc3Yoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCSAgICAgYm9vbCBzaGFyZWQp CiB7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpmbGlzdDsKLQlzdHJ1Y3QgZmVu Y2UgKmY7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5j ZTsKIAl1bnNpZ25lZCBpOwogCWludCByID0gMDsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbnQgcmFk ZW9uX3N5bmNfcmVzdihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpZiAoZmVuY2UgJiYg ZmVuY2UtPnJkZXYgPT0gcmRldikKIAkJcmFkZW9uX3N5bmNfZmVuY2Uoc3luYywgZmVuY2UpOwog CWVsc2UgaWYgKGYpCi0JCXIgPSBmZW5jZV93YWl0KGYsIHRydWUpOworCQlyID0gZG1hX2ZlbmNl X3dhaXQoZiwgdHJ1ZSk7CiAKIAlmbGlzdCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChy ZXN2KTsKIAlpZiAoc2hhcmVkIHx8ICFmbGlzdCB8fCByKQpAQCAtMTE2LDcgKzExNiw3IEBAIGlu dCByYWRlb25fc3luY19yZXN2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQlpZiAoZmVu Y2UgJiYgZmVuY2UtPnJkZXYgPT0gcmRldikKIAkJCXJhZGVvbl9zeW5jX2ZlbmNlKHN5bmMsIGZl bmNlKTsKIAkJZWxzZQotCQkJciA9IGZlbmNlX3dhaXQoZiwgdHJ1ZSk7CisJCQlyID0gZG1hX2Zl bmNlX3dhaXQoZiwgdHJ1ZSk7CiAKIAkJaWYgKHIpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdXZkLmMKaW5kZXggMGNkMGU3YmRlZTU1Li5kMzRkMWNmMzM4OTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCkBAIC00NjcsNyArNDY3LDcgQEAgc3RhdGljIGludCBy YWRlb25fdXZkX2NzX21zZyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgc3RydWN0IHJhZGVv bl9ibyAqYm8sCiB7CiAJaW50MzJfdCAqbXNnLCBtc2dfdHlwZSwgaGFuZGxlOwogCXVuc2lnbmVk IGltZ19zaXplID0gMDsKLQlzdHJ1Y3QgZmVuY2UgKmY7CisJc3RydWN0IGRtYV9mZW5jZSAqZjsK IAl2b2lkICpwdHI7CiAKIAlpbnQgaSwgcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IGZjNjIxN2Rm ZTQwMS4uOTE1ZTBkMWMzMTZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTE0OCw3ICsxNDgsNyBA QCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZV9saXN0KHN0cnVjdCBrcmVmICpsaXN0X2tyZWYp CiAJQlVHX09OKCFsaXN0X2VtcHR5KCZiby0+ZGRlc3Ryb3kpKTsKIAl0dG1fdHRfZGVzdHJveShi by0+dHRtKTsKIAlhdG9taWNfZGVjKCZiby0+Z2xvYi0+Ym9fY291bnQpOwotCWZlbmNlX3B1dChi by0+bW92aW5nKTsKKwlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwogCWlmIChiby0+cmVzdiA9 PSAmYm8tPnR0bV9yZXN2KQogCQlyZXNlcnZhdGlvbl9vYmplY3RfZmluaSgmYm8tPnR0bV9yZXN2 KTsKIAltdXRleF9kZXN0cm95KCZiby0+d3VfbXV0ZXgpOwpAQCAtNDI2LDIwICs0MjYsMjAgQEAg c3RhdGljIHZvaWQgdHRtX2JvX2NsZWFudXBfbWVtdHlwZV91c2Uoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKIHN0YXRpYyB2b2lkIHR0bV9ib19mbHVzaF9hbGxfZmVuY2VzKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0 ICpmb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 CiAJaW50IGk7CiAKIAlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KGJvLT5yZXN2 KTsKIAlmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChiby0+cmVzdik7CiAJaWYg KGZlbmNlICYmICFmZW5jZS0+b3BzLT5zaWduYWxlZCkKLQkJZmVuY2VfZW5hYmxlX3N3X3NpZ25h bGluZyhmZW5jZSk7CisJCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGZlbmNlKTsKIAog CWZvciAoaSA9IDA7IGZvYmogJiYgaSA8IGZvYmotPnNoYXJlZF9jb3VudDsgKytpKSB7CiAJCWZl bmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCiAJCQkJCXJl c2VydmF0aW9uX29iamVjdF9oZWxkKGJvLT5yZXN2KSk7CiAKIAkJaWYgKCFmZW5jZS0+b3BzLT5z aWduYWxlZCkKLQkJCWZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVuY2UpOworCQkJZG1hX2Zl bmNlX2VuYWJsZV9zd19zaWduYWxpbmcoZmVuY2UpOwogCX0KIH0KIApAQCAtNzkyLDExICs3OTIs MTEgQEAgc3RhdGljIGludCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKIAkJCQkgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkJ IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQogewotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50IHJldDsKIAogCXNwaW5fbG9jaygmbWFuLT5tb3Zl X2xvY2spOwotCWZlbmNlID0gZmVuY2VfZ2V0KG1hbi0+bW92ZSk7CisJZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0KG1hbi0+bW92ZSk7CiAJc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9sb2NrKTsKIAogCWlm IChmZW5jZSkgewpAQCAtODA2LDcgKzgwNiw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2FkZF9tb3Zl X2ZlbmNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCWlmICh1bmxpa2VseShyZXQp KQogCQkJcmV0dXJuIHJldDsKIAotCQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7CisJCWRtYV9mZW5j ZV9wdXQoYm8tPm1vdmluZyk7CiAJCWJvLT5tb3ZpbmcgPSBmZW5jZTsKIAl9CiAKQEAgLTEyODYs NyArMTI4Niw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCiB7CiAJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4g PSAmYmRldi0+bWFuW21lbV90eXBlXTsKIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGJk ZXYtPmdsb2I7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKIAlpbnQgcmV0OwogCiAJLyoKQEAgLTEzMDksMTIgKzEzMDksMTIgQEAgc3RhdGljIGludCB0 dG1fYm9fZm9yY2VfbGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAlzcGlu X3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCiAJc3Bpbl9sb2NrKCZtYW4tPm1vdmVfbG9jayk7 Ci0JZmVuY2UgPSBmZW5jZV9nZXQobWFuLT5tb3ZlKTsKKwlmZW5jZSA9IGRtYV9mZW5jZV9nZXQo bWFuLT5tb3ZlKTsKIAlzcGluX3VubG9jaygmbWFuLT5tb3ZlX2xvY2spOwogCiAJaWYgKGZlbmNl KSB7Ci0JCXJldCA9IGZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKLQkJZmVuY2VfcHV0KGZlbmNl KTsKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJZG1hX2ZlbmNlX3B1 dChmZW5jZSk7CiAJCWlmIChyZXQpIHsKIAkJCWlmIChhbGxvd19lcnJvcnMpIHsKIAkJCQlyZXR1 cm4gcmV0OwpAQCAtMTM0Myw3ICsxMzQzLDcgQEAgaW50IHR0bV9ib19jbGVhbl9tbShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgbWVtX3R5cGUpCiAJCSAgICAgICBtZW1fdHlw ZSk7CiAJCXJldHVybiByZXQ7CiAJfQotCWZlbmNlX3B1dChtYW4tPm1vdmUpOworCWRtYV9mZW5j ZV9wdXQobWFuLT5tb3ZlKTsKIAogCW1hbi0+dXNlX3R5cGUgPSBmYWxzZTsKIAltYW4tPmhhc190 eXBlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGls LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKaW5kZXggYmY2ZTIxNjU1YzU3 Li5kMDQ1OWIzOTJlNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0 aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKQEAgLTY0NCw3ICs2 NDQsNyBAQCB2b2lkIHR0bV9ib19rdW5tYXAoc3RydWN0IHR0bV9ib19rbWFwX29iaiAqbWFwKQog RVhQT1JUX1NZTUJPTCh0dG1fYm9fa3VubWFwKTsKIAogaW50IHR0bV9ib19tb3ZlX2FjY2VsX2Ns ZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJCSAgICAgIHN0cnVjdCBmZW5j ZSAqZmVuY2UsCisJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAkJCSAgICAgIGJv b2wgZXZpY3QsCiAJCQkgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCiB7CkBAIC02 NzQsOCArNjc0LDggQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKIAkJICogb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWQuCiAJCSAqLwog Ci0JCWZlbmNlX3B1dChiby0+bW92aW5nKTsKLQkJYm8tPm1vdmluZyA9IGZlbmNlX2dldChmZW5j ZSk7CisJCWRtYV9mZW5jZV9wdXQoYm8tPm1vdmluZyk7CisJCWJvLT5tb3ZpbmcgPSBkbWFfZmVu Y2VfZ2V0KGZlbmNlKTsKIAogCQlyZXQgPSB0dG1fYnVmZmVyX29iamVjdF90cmFuc2Zlcihibywg Jmdob3N0X29iaik7CiAJCWlmIChyZXQpCkBAIC03MDYsNyArNzA2LDcgQEAgaW50IHR0bV9ib19t b3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIEVYUE9SVF9T WU1CT0wodHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cCk7CiAKIGludCB0dG1fYm9fcGlwZWxpbmVf bW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJIHN0cnVjdCBmZW5jZSAqZmVu Y2UsIGJvb2wgZXZpY3QsCisJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3Qs CiAJCQkgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQogewogCXN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2ID0gYm8tPmJkZXY7CkBAIC03MzAsOCArNzMwLDggQEAgaW50IHR0bV9ib19waXBl bGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCSAqIG9wZXJhdGlvbiBo YXMgY29tcGxldGVkLgogCQkgKi8KIAotCQlmZW5jZV9wdXQoYm8tPm1vdmluZyk7Ci0JCWJvLT5t b3ZpbmcgPSBmZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwor CQliby0+bW92aW5nID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAkJcmV0ID0gdHRtX2J1ZmZl cl9vYmplY3RfdHJhbnNmZXIoYm8sICZnaG9zdF9vYmopOwogCQlpZiAocmV0KQpAQCAtNzYxLDE2 ICs3NjEsMTYgQEAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAJCSAqLwogCiAJCXNwaW5fbG9jaygmZnJvbS0+bW92ZV9sb2NrKTsKLQkJaWYg KCFmcm9tLT5tb3ZlIHx8IGZlbmNlX2lzX2xhdGVyKGZlbmNlLCBmcm9tLT5tb3ZlKSkgewotCQkJ ZmVuY2VfcHV0KGZyb20tPm1vdmUpOwotCQkJZnJvbS0+bW92ZSA9IGZlbmNlX2dldChmZW5jZSk7 CisJCWlmICghZnJvbS0+bW92ZSB8fCBkbWFfZmVuY2VfaXNfbGF0ZXIoZmVuY2UsIGZyb20tPm1v dmUpKSB7CisJCQlkbWFfZmVuY2VfcHV0KGZyb20tPm1vdmUpOworCQkJZnJvbS0+bW92ZSA9IGRt YV9mZW5jZV9nZXQoZmVuY2UpOwogCQl9CiAJCXNwaW5fdW5sb2NrKCZmcm9tLT5tb3ZlX2xvY2sp OwogCiAJCXR0bV9ib19mcmVlX29sZF9ub2RlKGJvKTsKIAotCQlmZW5jZV9wdXQoYm8tPm1vdmlu Zyk7Ci0JCWJvLT5tb3ZpbmcgPSBmZW5jZV9nZXQoZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGJv LT5tb3ZpbmcpOworCQliby0+bW92aW5nID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAKIAl9IGVs c2UgewogCQkvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCmluZGV4IGE2ZWQ5ZDVlNTE2Ny4uNDc0 OGFlZGM5MzNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3Rh dGljIGludCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCS8qCiAJICogUXVpY2sgbm9uLXN0YWxsaW5nIGNoZWNrIGZvciBpZGxlLgogCSAqLwotCWlm IChmZW5jZV9pc19zaWduYWxlZChiby0+bW92aW5nKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25h bGVkKGJvLT5tb3ZpbmcpKQogCQlnb3RvIG91dF9jbGVhcjsKIAogCS8qCkBAIC02NywxNCArNjcs MTQgQEAgc3RhdGljIGludCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAogCQkJZ290byBvdXRfdW5sb2NrOwogCiAJCXVwX3JlYWQoJnZtYS0+dm1fbW0t Pm1tYXBfc2VtKTsKLQkJKHZvaWQpIGZlbmNlX3dhaXQoYm8tPm1vdmluZywgdHJ1ZSk7CisJCSh2 b2lkKSBkbWFfZmVuY2Vfd2FpdChiby0+bW92aW5nLCB0cnVlKTsKIAkJZ290byBvdXRfdW5sb2Nr OwogCX0KIAogCS8qCiAJICogT3JkaW5hcnkgd2FpdC4KIAkgKi8KLQlyZXQgPSBmZW5jZV93YWl0 KGJvLT5tb3ZpbmcsIHRydWUpOworCXJldCA9IGRtYV9mZW5jZV93YWl0KGJvLT5tb3ZpbmcsIHRy dWUpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJcmV0ID0gKHJldCAhPSAtRVJFU1RB UlRTWVMpID8gVk1fRkFVTFRfU0lHQlVTIDoKIAkJCVZNX0ZBVUxUX05PUEFHRTsKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGludCB0dG1fYm9fdm1fZmF1bHRfaWRsZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAogCX0KIAogb3V0X2NsZWFyOgotCWZlbmNlX3B1dChiby0+bW92aW5nKTsK KwlkbWFfZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOwogCWJvLT5tb3ZpbmcgPSBOVUxMOwogCiBvdXRf dW5sb2NrOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwppbmRleCBhODA3MTdi MzVkYzYuLmQzNWJjNDkxZThkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f ZXhlY2J1Zl91dGlsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMKQEAgLTE3OSw3ICsxNzksOCBAQCBpbnQgdHRtX2V1X3Jlc2VydmVfYnVmZmVycyhzdHJ1Y3Qg d3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIEVYUE9SVF9TWU1CT0wodHRtX2V1X3Jlc2VydmVfYnVm ZmVycyk7CiAKIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCB3d19hY3F1 aXJlX2N0eCAqdGlja2V0LAotCQkJCSBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCBzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQorCQkJCSBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAorCQkJCSBzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSkKIHsKIAlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqZW50cnk7CiAJ c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92Z2VtL3ZnZW1fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwpp bmRleCA1YzU3YzFmZmExZjkuLjQ4ODkwOWEyMWVkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZnZW0vdmdlbV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVu Y2UuYwpAQCAtMjgsNTYgKzI4LDU3IEBACiAjZGVmaW5lIFZHRU1fRkVOQ0VfVElNRU9VVCAoMTAq SFopCiAKIHN0cnVjdCB2Z2VtX2ZlbmNlIHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlIGJhc2U7CiAJc3RydWN0IHNwaW5sb2NrIGxvY2s7CiAJc3RydWN0IHRpbWVyX2xp c3QgdGltZXI7CiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5jZV9nZXRfZHJpdmVy X25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2ZlbmNl X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlyZXR1cm4gInZn ZW0iOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqdmdlbV9mZW5jZV9nZXRfdGltZWxpbmVfbmFt ZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGNvbnN0IGNoYXIgKnZnZW1fZmVuY2VfZ2V0 X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7CiAJcmV0dXJuICJ1bmJv dW5kIjsKIH0KIAotc3RhdGljIGJvb2wgdmdlbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZmVuY2Ug KmZlbmNlKQorc3RhdGljIGJvb2wgdmdlbV9mZW5jZV9zaWduYWxlZChzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIHZnZW1fZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGJvb2wgdmdlbV9m ZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCXJldHVy biB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNl ICpiYXNlKQorc3RhdGljIHZvaWQgdmdlbV9mZW5jZV9yZWxlYXNlKHN0cnVjdCBkbWFfZmVuY2Ug KmJhc2UpCiB7CiAJc3RydWN0IHZnZW1fZmVuY2UgKmZlbmNlID0gY29udGFpbmVyX29mKGJhc2Us IHR5cGVvZigqZmVuY2UpLCBiYXNlKTsKIAogCWRlbF90aW1lcl9zeW5jKCZmZW5jZS0+dGltZXIp OwotCWZlbmNlX2ZyZWUoJmZlbmNlLT5iYXNlKTsKKwlkbWFfZmVuY2VfZnJlZSgmZmVuY2UtPmJh c2UpOwogfQogCi1zdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2Ug KmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKQorc3RhdGljIHZvaWQgdmdlbV9mZW5jZV92YWx1 ZV9zdHIoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7CiAJ c25wcmludGYoc3RyLCBzaXplLCAiJXUiLCBmZW5jZS0+c2Vxbm8pOwogfQogCi1zdGF0aWMgdm9p ZCB2Z2VtX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFy ICpzdHIsCitzdGF0aWMgdm9pZCB2Z2VtX2ZlbmNlX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSwgY2hhciAqc3RyLAogCQkJCQkgIGludCBzaXplKQogewotCXNucHJp bnRmKHN0ciwgc2l6ZSwgIiV1IiwgZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpID8gZmVuY2UtPnNl cW5vIDogMCk7CisJc25wcmludGYoc3RyLCBzaXplLCAiJXUiLAorCQkgZG1hX2ZlbmNlX2lzX3Np Z25hbGVkKGZlbmNlKSA/IGZlbmNlLT5zZXFubyA6IDApOwogfQogCi1zdGF0aWMgY29uc3Qgc3Ry dWN0IGZlbmNlX29wcyB2Z2VtX2ZlbmNlX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyB2Z2VtX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lID0gdmdlbV9m ZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0gdmdlbV9mZW5jZV9n ZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHZnZW1fZmVuY2VfZW5hYmxl X3NpZ25hbGluZywKIAkuc2lnbmFsZWQgPSB2Z2VtX2ZlbmNlX3NpZ25hbGVkLAotCS53YWl0ID0g ZmVuY2VfZGVmYXVsdF93YWl0LAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAku cmVsZWFzZSA9IHZnZW1fZmVuY2VfcmVsZWFzZSwKIAogCS5mZW5jZV92YWx1ZV9zdHIgPSB2Z2Vt X2ZlbmNlX3ZhbHVlX3N0ciwKQEAgLTg4LDExICs4OSwxMSBAQCBzdGF0aWMgdm9pZCB2Z2VtX2Zl bmNlX3RpbWVvdXQodW5zaWduZWQgbG9uZyBkYXRhKQogewogCXN0cnVjdCB2Z2VtX2ZlbmNlICpm ZW5jZSA9IChzdHJ1Y3QgdmdlbV9mZW5jZSAqKWRhdGE7CiAKLQlmZW5jZV9zaWduYWwoJmZlbmNl LT5iYXNlKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CiB9CiAKLXN0YXRpYyBz dHJ1Y3QgZmVuY2UgKnZnZW1fZmVuY2VfY3JlYXRlKHN0cnVjdCB2Z2VtX2ZpbGUgKnZmaWxlLAot CQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCitzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSAq dmdlbV9mZW5jZV9jcmVhdGUoc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUsCisJCQkJCSAgIHVuc2ln bmVkIGludCBmbGFncykKIHsKIAlzdHJ1Y3QgdmdlbV9mZW5jZSAqZmVuY2U7CiAKQEAgLTEwMSw4 ICsxMDIsOCBAQCBzdGF0aWMgc3RydWN0IGZlbmNlICp2Z2VtX2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qg dmdlbV9maWxlICp2ZmlsZSwKIAkJcmV0dXJuIE5VTEw7CiAKIAlzcGluX2xvY2tfaW5pdCgmZmVu Y2UtPmxvY2spOwotCWZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmdmdlbV9mZW5jZV9vcHMsICZm ZW5jZS0+bG9jaywKLQkJICAgZmVuY2VfY29udGV4dF9hbGxvYygxKSwgMSk7CisJZG1hX2ZlbmNl X2luaXQoJmZlbmNlLT5iYXNlLCAmdmdlbV9mZW5jZV9vcHMsICZmZW5jZS0+bG9jaywKKwkJICAg ICAgIGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpLCAxKTsKIAogCXNldHVwX3RpbWVyKCZmZW5j ZS0+dGltZXIsIHZnZW1fZmVuY2VfdGltZW91dCwgKHVuc2lnbmVkIGxvbmcpZmVuY2UpOwogCkBA IC0xNTcsNyArMTU4LDcgQEAgaW50IHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUgPSBmaWxlLT5kcml2ZXJfcHJp djsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2OwogCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqOwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CiAJaW50IHJldDsKIAogCWlmIChhcmctPmZsYWdzICYgflZHRU1fRkVOQ0VfV1JJVEUpCkBA IC0yMDksOCArMjEwLDggQEAgaW50IHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJfQogZXJyX2ZlbmNlOgogCWlmIChyZXQpIHsKLQkJZmVuY2Vfc2lnbmFs KGZlbmNlKTsKLQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3NpZ25hbChmZW5jZSk7 CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCX0KIGVycjoKIAlkcm1fZ2VtX29iamVjdF91bnJl ZmVyZW5jZV91bmxvY2tlZChvYmopOwpAQCAtMjM5LDcgKzI0MCw3IEBAIGludCB2Z2VtX2ZlbmNl X3NpZ25hbF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogewogCXN0cnVjdCB2Z2VtX2Zp bGUgKnZmaWxlID0gZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3RydWN0IGRybV92Z2VtX2ZlbmNlX3Np Z25hbCAqYXJnID0gZGF0YTsKLQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwogCWludCByZXQgPSAwOwogCiAJaWYgKGFyZy0+ZmxhZ3MpCkBAIC0yNTMsMTEg KzI1NCwxMSBAQCBpbnQgdmdlbV9mZW5jZV9zaWduYWxfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAlpZiAoSVNfRVJSKGZlbmNlKSkKIAkJcmV0dXJuIFBUUl9FUlIoZmVuY2UpOwogCi0J aWYgKGZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKKwlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVk KGZlbmNlKSkKIAkJcmV0ID0gLUVUSU1FRE9VVDsKIAotCWZlbmNlX3NpZ25hbChmZW5jZSk7Ci0J ZmVuY2VfcHV0KGZlbmNlKTsKKwlkbWFfZmVuY2Vfc2lnbmFsKGZlbmNlKTsKKwlkbWFfZmVuY2Vf cHV0KGZlbmNlKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNzEsOCArMjcyLDggQEAgaW50IHZn ZW1fZmVuY2Vfb3BlbihzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZSkKIAogc3RhdGljIGludCBfX3Zn ZW1fZmVuY2VfaWRyX2ZpbmkoaW50IGlkLCB2b2lkICpwLCB2b2lkICpkYXRhKQogewotCWZlbmNl X3NpZ25hbChwKTsKLQlmZW5jZV9wdXQocCk7CisJZG1hX2ZlbmNlX3NpZ25hbChwKTsKKwlkbWFf ZmVuY2VfcHV0KHApOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVf ZHJ2LmgKaW5kZXggYWU1OTA4MGQ2M2QxLi5lYzFlYmRjZmU4MGIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmly dGlvL3ZpcnRncHVfZHJ2LmgKQEAgLTgyLDcgKzgyLDcgQEAgc3RydWN0IHZpcnRpb19ncHVfZmVu Y2VfZHJpdmVyIHsKIH07CiAKIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlIHsKLQlzdHJ1Y3QgZmVu Y2UgZjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGY7CiAJc3RydWN0IHZpcnRpb19ncHVfZmVuY2VfZHJp dmVyICpkcnY7CiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwogCXVpbnQ2NF90IHNlcTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jIGIvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZlbmNlLmMKaW5kZXggZjNmNzBmYThhNGM3Li4yMzM1MzUy MWY5MDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mZW5jZS5jCkBAIC0yNiwyMiAr MjYsMjIgQEAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgInZpcnRncHVfZHJ2Lmgi CiAKLXN0YXRpYyBjb25zdCBjaGFyICp2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5j ZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICp2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBk bWFfZmVuY2UgKmYpCiB7CiAJcmV0dXJuICJ2aXJ0aW9fZ3B1IjsKIH0KIAotc3RhdGljIGNvbnN0 IGNoYXIgKnZpcnRpb19nZXRfdGltZWxpbmVfbmFtZShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMg Y29uc3QgY2hhciAqdmlydGlvX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2UgKmYp CiB7CiAJcmV0dXJuICJjb250cm9scSI7CiB9CiAKLXN0YXRpYyBib29sIHZpcnRpb19lbmFibGVf c2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRpYyBib29sIHZpcnRpb19lbmFibGVfc2ln bmFsaW5nKHN0cnVjdCBkbWFfZmVuY2UgKmYpCiB7CiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp YyBib29sIHZpcnRpb19zaWduYWxlZChzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCB2aXJ0 aW9fc2lnbmFsZWQoc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9m ZW5jZSAqZmVuY2UgPSB0b192aXJ0aW9fZmVuY2UoZik7CiAKQEAgLTUwLDI2ICs1MCwyNiBAQCBz dGF0aWMgYm9vbCB2aXJ0aW9fc2lnbmFsZWQoc3RydWN0IGZlbmNlICpmKQogCXJldHVybiBmYWxz ZTsKIH0KIAotc3RhdGljIHZvaWQgdmlydGlvX2ZlbmNlX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2Ug KmYsIGNoYXIgKnN0ciwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB2aXJ0aW9fZmVuY2VfdmFsdWVf c3RyKHN0cnVjdCBkbWFfZmVuY2UgKmYsIGNoYXIgKnN0ciwgaW50IHNpemUpCiB7CiAJc3RydWN0 IHZpcnRpb19ncHVfZmVuY2UgKmZlbmNlID0gdG9fdmlydGlvX2ZlbmNlKGYpOwogCiAJc25wcmlu dGYoc3RyLCBzaXplLCAiJWxsdSIsIGZlbmNlLT5zZXEpOwogfQogCi1zdGF0aWMgdm9pZCB2aXJ0 aW9fdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZiwgY2hhciAqc3RyLCBpbnQgc2l6 ZSkKK3N0YXRpYyB2b2lkIHZpcnRpb190aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGRtYV9mZW5j ZSAqZiwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKIHsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9mZW5jZSAq ZmVuY2UgPSB0b192aXJ0aW9fZmVuY2UoZik7CiAKIAlzbnByaW50ZihzdHIsIHNpemUsICIlbGx1 IiwgKHU2NClhdG9taWM2NF9yZWFkKCZmZW5jZS0+ZHJ2LT5sYXN0X3NlcSkpOwogfQogCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyB2aXJ0aW9fZmVuY2Vfb3BzID0geworc3RhdGljIGNv bnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHZpcnRpb19mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2 ZXJfbmFtZSAgICAgPSB2aXJ0aW9fZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxpbmVfbmFt ZSAgID0gdmlydGlvX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nICAgID0g dmlydGlvX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkICAgICAgICAgICAgPSB2aXJ0aW9f c2lnbmFsZWQsCi0JLndhaXQgICAgICAgICAgICAgICAgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJ LndhaXQgICAgICAgICAgICAgICAgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5mZW5jZV92 YWx1ZV9zdHIgICAgID0gdmlydGlvX2ZlbmNlX3ZhbHVlX3N0ciwKIAkudGltZWxpbmVfdmFsdWVf c3RyICA9IHZpcnRpb190aW1lbGluZV92YWx1ZV9zdHIsCiB9OwpAQCAtODgsOSArODgsOSBAQCBp bnQgdmlydGlvX2dwdV9mZW5jZV9lbWl0KHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYs CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRydi0+bG9jaywgaXJxX2ZsYWdzKTsKIAkoKmZlbmNlKS0+ ZHJ2ID0gZHJ2OwogCSgqZmVuY2UpLT5zZXEgPSArK2Rydi0+c3luY19zZXE7Ci0JZmVuY2VfaW5p dCgmKCpmZW5jZSktPmYsICZ2aXJ0aW9fZmVuY2Vfb3BzLCAmZHJ2LT5sb2NrLAotCQkgICBkcnYt PmNvbnRleHQsICgqZmVuY2UpLT5zZXEpOwotCWZlbmNlX2dldCgmKCpmZW5jZSktPmYpOworCWRt YV9mZW5jZV9pbml0KCYoKmZlbmNlKS0+ZiwgJnZpcnRpb19mZW5jZV9vcHMsICZkcnYtPmxvY2ss CisJCSAgICAgICBkcnYtPmNvbnRleHQsICgqZmVuY2UpLT5zZXEpOworCWRtYV9mZW5jZV9nZXQo JigqZmVuY2UpLT5mKTsKIAlsaXN0X2FkZF90YWlsKCYoKmZlbmNlKS0+bm9kZSwgJmRydi0+ZmVu Y2VzKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcnYtPmxvY2ssIGlycV9mbGFncyk7CiAK QEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIHZpcnRpb19ncHVfZmVuY2VfZXZlbnRfcHJvY2Vzcyhz dHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShmZW5jZSwgdG1wLCAmZHJ2LT5mZW5jZXMsIG5vZGUpIHsKIAkJaWYgKGxhc3Rfc2VxIDwgZmVu Y2UtPnNlcSkKIAkJCWNvbnRpbnVlOwotCQlmZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+Zik7 CisJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKCZmZW5jZS0+Zik7CiAJCWxpc3RfZGVsKCZmZW5j ZS0+bm9kZSk7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQlkbWFfZmVuY2VfcHV0KCZmZW5j ZS0+Zik7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRydi0+bG9jaywgaXJxX2ZsYWdz KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5j IGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKaW5kZXggODE4NDc4YjRj NGYwLi42MWYzYTk2M2FmOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmly dGdwdV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5j CkBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X2V4ZWNidWZmZXJfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkvKiBmZW5jZSB0aGUgY29t bWFuZCBibyAqLwogCXZpcnRpb19ncHVfdW5yZWZfbGlzdCgmdmFsaWRhdGVfbGlzdCk7CiAJZHJt X2ZyZWVfbGFyZ2UoYnVmbGlzdCk7Ci0JZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJZG1hX2ZlbmNl X3B1dCgmZmVuY2UtPmYpOwogCXJldHVybiAwOwogCiBvdXRfdW5yZXN2OgpAQCAtMjk4LDcgKzI5 OCw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9yZXNvdXJjZV9jcmVhdGVfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZHJtX2dlbV9vYmplY3RfcmVsZWFzZShv YmopOwogCQlpZiAodmdkZXYtPmhhc192aXJnbF8zZCkgewogCQkJdmlydGlvX2dwdV91bnJlZl9s aXN0KCZ2YWxpZGF0ZV9saXN0KTsKLQkJCWZlbmNlX3B1dCgmZmVuY2UtPmYpOworCQkJZG1hX2Zl bmNlX3B1dCgmZmVuY2UtPmYpOwogCQl9CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtMzA5LDEzICsz MDksMTMgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJaWYgKHZnZGV2LT5oYXNfdmlyZ2xf M2QpIHsKIAkJdmlydGlvX2dwdV91bnJlZl9saXN0KCZ2YWxpZGF0ZV9saXN0KTsKLQkJZmVuY2Vf cHV0KCZmZW5jZS0+Zik7CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIAl9CiAJcmV0dXJu IDA7CiBmYWlsX3VucmVmOgogCWlmICh2Z2Rldi0+aGFzX3ZpcmdsXzNkKSB7CiAJCXZpcnRpb19n cHVfdW5yZWZfbGlzdCgmdmFsaWRhdGVfbGlzdCk7Ci0JCWZlbmNlX3B1dCgmZmVuY2UtPmYpOwor CQlkbWFfZmVuY2VfcHV0KCZmZW5jZS0+Zik7CiAJfQogLy9mYWlsX29iajoKIC8vCWRybV9nZW1f b2JqZWN0X2hhbmRsZV91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOwpAQCAtMzgzLDcgKzM4Myw3 IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV90cmFuc2Zlcl9mcm9tX2hvc3RfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocW9i ai0+dGJvLnJlc3YsCiAJCQkJCSAgJmZlbmNlLT5mKTsKIAotCWZlbmNlX3B1dCgmZmVuY2UtPmYp OworCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5mKTsKIG91dF91bnJlczoKIAl2aXJ0aW9fZ3B1X29i amVjdF91bnJlc2VydmUocW9iaik7CiBvdXQ6CkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGlu dCB2aXJ0aW9fZ3B1X3RyYW5zZmVyX3RvX2hvc3RfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJCSBhcmdzLT5sZXZlbCwgJmJveCwgJmZlbmNlKTsKIAkJcmVzZXJ2 YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHFvYmotPnRiby5yZXN2LAogCQkJCQkJICAmZmVu Y2UtPmYpOwotCQlmZW5jZV9wdXQoJmZlbmNlLT5mKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2Ut PmYpOwogCX0KIAogb3V0X3VucmVzOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCmlu ZGV4IDAzNmIwZmJhZTBmYi4uMTIzNTUxOTg1M2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0 Z3B1X2ttcy5jCkBAIC0xNTksNyArMTU5LDcgQEAgaW50IHZpcnRpb19ncHVfZHJpdmVyX2xvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAl2aXJ0aW9fZ3B1 X2luaXRfdnEoJnZnZGV2LT5jdHJscSwgdmlydGlvX2dwdV9kZXF1ZXVlX2N0cmxfZnVuYyk7CiAJ dmlydGlvX2dwdV9pbml0X3ZxKCZ2Z2Rldi0+Y3Vyc29ycSwgdmlydGlvX2dwdV9kZXF1ZXVlX2N1 cnNvcl9mdW5jKTsKIAotCXZnZGV2LT5mZW5jZV9kcnYuY29udGV4dCA9IGZlbmNlX2NvbnRleHRf YWxsb2MoMSk7CisJdmdkZXYtPmZlbmNlX2Rydi5jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRf YWxsb2MoMSk7CiAJc3Bpbl9sb2NrX2luaXQoJnZnZGV2LT5mZW5jZV9kcnYubG9jayk7CiAJSU5J VF9MSVNUX0hFQUQoJnZnZGV2LT5mZW5jZV9kcnYuZmVuY2VzKTsKIAlJTklUX0xJU1RfSEVBRCgm dmdkZXYtPmNhcF9jYWNoZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9wbGFuZS5jCmlu ZGV4IGJhMjhjMGY2ZjI4YS4uY2I3NWYwNjYzYmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfcGxhbmUuYwpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19ncHVf Y3Vyc29yX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJaWYgKCFyZXQp IHsKIAkJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+dGJvLnJlc3YsCiAJ CQkJCQkJICAmZmVuY2UtPmYpOwotCQkJZmVuY2VfcHV0KCZmZW5jZS0+Zik7CisJCQlkbWFfZmVu Y2VfcHV0KCZmZW5jZS0+Zik7CiAJCQlmZW5jZSA9IE5VTEw7CiAJCQl2aXJ0aW9fZ3B1X29iamVj dF91bnJlc2VydmUoYm8pOwogCQkJdmlydGlvX2dwdV9vYmplY3Rfd2FpdChibywgZmFsc2UpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKaW5kZXggMjZhYzhlODBhNDc4Li42NTQx ZGQ4YjgyZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwpAQCAtMTA4LDcg KzEwOCw3IEBAIGZtYW5fZnJvbV9mZW5jZShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiAg KiBvYmplY3RzIHdpdGggYWN0aW9ucyBhdHRhY2hlZCB0byB0aGVtLgogICovCiAKLXN0YXRpYyB2 b2lkIHZtd19mZW5jZV9vYmpfZGVzdHJveShzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgdm9pZCB2 bXdfZmVuY2Vfb2JqX2Rlc3Ryb3koc3RydWN0IGRtYV9mZW5jZSAqZikKIHsKIAlzdHJ1Y3Qgdm13 X2ZlbmNlX29iaiAqZmVuY2UgPQogCQljb250YWluZXJfb2YoZiwgc3RydWN0IHZtd19mZW5jZV9v YmosIGJhc2UpOwpAQCAtMTIzLDE3ICsxMjMsMTcgQEAgc3RhdGljIHZvaWQgdm13X2ZlbmNlX29i al9kZXN0cm95KHN0cnVjdCBmZW5jZSAqZikKIAlmZW5jZS0+ZGVzdHJveShmZW5jZSk7CiB9CiAK LXN0YXRpYyBjb25zdCBjaGFyICp2bXdfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5j ZSAqZikKK3N0YXRpYyBjb25zdCBjaGFyICp2bXdfZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVj dCBkbWFfZmVuY2UgKmYpCiB7CiAJcmV0dXJuICJ2bXdnZngiOwogfQogCi1zdGF0aWMgY29uc3Qg Y2hhciAqdm13X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZikKK3N0YXRp YyBjb25zdCBjaGFyICp2bXdfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGRtYV9mZW5j ZSAqZikKIHsKIAlyZXR1cm4gInN2Z2EiOwogfQogCi1zdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5h YmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCitzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5h YmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmKQogewogCXN0cnVjdCB2bXdfZmVuY2Vf b2JqICpmZW5jZSA9CiAJCWNvbnRhaW5lcl9vZihmLCBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiwgYmFz ZSk7CkBAIC0xNTIsMTIgKzE1MiwxMiBAQCBzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZW5hYmxlX3Np Z25hbGluZyhzdHJ1Y3QgZmVuY2UgKmYpCiB9CiAKIHN0cnVjdCB2bXdnZnhfd2FpdF9jYiB7Ci0J c3RydWN0IGZlbmNlX2NiIGJhc2U7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBiYXNlOwogCXN0cnVj dCB0YXNrX3N0cnVjdCAqdGFzazsKIH07CiAKIHN0YXRpYyB2b2lkCi12bXdnZnhfd2FpdF9jYihz dHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQordm13Z2Z4X3dhaXRfY2Io c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0 cnVjdCB2bXdnZnhfd2FpdF9jYiAqd2FpdCA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHZt d2dmeF93YWl0X2NiLCBiYXNlKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2bXdnZnhfd2FpdF9jYihz dHJ1Y3QgZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKQogCiBzdGF0aWMgdm9pZCBf X3Ztd19mZW5jZXNfdXBkYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbik7CiAKLXN0 YXRpYyBsb25nIHZtd19mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWdu ZWQgbG9uZyB0aW1lb3V0KQorc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQoc3RydWN0IGRtYV9m ZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogewogCXN0cnVjdCB2bXdf ZmVuY2Vfb2JqICpmZW5jZSA9CiAJCWNvbnRhaW5lcl9vZihmLCBzdHJ1Y3Qgdm13X2ZlbmNlX29i aiwgYmFzZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgc3RhdGljIGxvbmcgdm13X2ZlbmNlX3dhaXQo c3RydWN0IGZlbmNlICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAKIAl3aGls ZSAocmV0ID4gMCkgewogCQlfX3Ztd19mZW5jZXNfdXBkYXRlKGZtYW4pOwotCQlpZiAodGVzdF9i aXQoRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmLT5mbGFncykpCisJCWlmICh0ZXN0X2JpdChE TUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZmLT5mbGFncykpCiAJCQlicmVhazsKIAogCQlp ZiAoaW50cikKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgbG9uZyB2bXdfZmVuY2Vfd2FpdChz dHJ1Y3QgZmVuY2UgKmYsIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCkKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgc3RydWN0IGZlbmNlX29wcyB2bXdfZmVuY2Vfb3BzID0geworc3Rh dGljIHN0cnVjdCBkbWFfZmVuY2Vfb3BzIHZtd19mZW5jZV9vcHMgPSB7CiAJLmdldF9kcml2ZXJf bmFtZSA9IHZtd19mZW5jZV9nZXRfZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lID0g dm13X2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gdm13X2Zl bmNlX2VuYWJsZV9zaWduYWxpbmcsCkBAIC0yOTgsNyArMjk4LDcgQEAgc3RydWN0IHZtd19mZW5j ZV9tYW5hZ2VyICp2bXdfZmVuY2VfbWFuYWdlcl9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJZm1hbi0+ZXZlbnRfZmVuY2VfYWN0aW9uX3NpemUgPQogCQl0dG1fcm91bmRfcG90 KHNpemVvZihzdHJ1Y3Qgdm13X2V2ZW50X2ZlbmNlX2FjdGlvbikpOwogCW11dGV4X2luaXQoJmZt YW4tPmdvYWxfaXJxX211dGV4KTsKLQlmbWFuLT5jdHggPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEp OworCWZtYW4tPmN0eCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCiAJcmV0dXJuIGZt YW47CiB9CkBAIC0zMjYsOCArMzI2LDggQEAgc3RhdGljIGludCB2bXdfZmVuY2Vfb2JqX2luaXQo c3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuLAogCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdz OwogCWludCByZXQgPSAwOwogCi0JZmVuY2VfaW5pdCgmZmVuY2UtPmJhc2UsICZ2bXdfZmVuY2Vf b3BzLCAmZm1hbi0+bG9jaywKLQkJICAgZm1hbi0+Y3R4LCBzZXFubyk7CisJZG1hX2ZlbmNlX2lu aXQoJmZlbmNlLT5iYXNlLCAmdm13X2ZlbmNlX29wcywgJmZtYW4tPmxvY2ssCisJCSAgICAgICBm bWFuLT5jdHgsIHNlcW5vKTsKIAlJTklUX0xJU1RfSEVBRCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0 aW9ucyk7CiAJZmVuY2UtPmRlc3Ryb3kgPSBkZXN0cm95OwogCkBAIC00MzEsNyArNDMxLDcgQEAg c3RhdGljIGJvb2wgdm13X2ZlbmNlX2dvYWxfY2hlY2tfbG9ja2VkKHN0cnVjdCB2bXdfZmVuY2Vf b2JqICpmZW5jZSkKIAl1MzIgZ29hbF9zZXFubzsKIAl1MzIgKmZpZm9fbWVtOwogCi0JaWYgKGZl bmNlX2lzX3NpZ25hbGVkX2xvY2tlZCgmZmVuY2UtPmJhc2UpKQorCWlmIChkbWFfZmVuY2VfaXNf c2lnbmFsZWRfbG9ja2VkKCZmZW5jZS0+YmFzZSkpCiAJCXJldHVybiBmYWxzZTsKIAogCWZpZm9f bWVtID0gZm1hbi0+ZGV2X3ByaXYtPm1taW9fdmlydDsKQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGF0 aWMgdm9pZCBfX3Ztd19mZW5jZXNfdXBkYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1h bikKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmVuY2UsIG5leHRfZmVuY2UsICZmbWFuLT5m ZW5jZV9saXN0LCBoZWFkKSB7CiAJCWlmIChzZXFubyAtIGZlbmNlLT5iYXNlLnNlcW5vIDwgVk1X X0ZFTkNFX1dSQVApIHsKIAkJCWxpc3RfZGVsX2luaXQoJmZlbmNlLT5oZWFkKTsKLQkJCWZlbmNl X3NpZ25hbF9sb2NrZWQoJmZlbmNlLT5iYXNlKTsKKwkJCWRtYV9mZW5jZV9zaWduYWxfbG9ja2Vk KCZmZW5jZS0+YmFzZSk7CiAJCQlJTklUX0xJU1RfSEVBRCgmYWN0aW9uX2xpc3QpOwogCQkJbGlz dF9zcGxpY2VfaW5pdCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucywKIAkJCQkJICZhY3Rpb25f bGlzdCk7CkBAIC01MDAsMTggKzUwMCwxOCBAQCBib29sIHZtd19mZW5jZV9vYmpfc2lnbmFsZWQo c3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogewogCXN0cnVjdCB2bXdfZmVuY2VfbWFuYWdl ciAqZm1hbiA9IGZtYW5fZnJvbV9mZW5jZShmZW5jZSk7CiAKLQlpZiAodGVzdF9iaXQoRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQsICZmZW5jZS0+YmFzZS5mbGFncykpCisJaWYgKHRlc3RfYml0KERN QV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwgJmZlbmNlLT5iYXNlLmZsYWdzKSkKIAkJcmV0dXJu IDE7CiAKIAl2bXdfZmVuY2VzX3VwZGF0ZShmbWFuKTsKIAotCXJldHVybiBmZW5jZV9pc19zaWdu YWxlZCgmZmVuY2UtPmJhc2UpOworCXJldHVybiBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJmZlbmNl LT5iYXNlKTsKIH0KIAogaW50IHZtd19mZW5jZV9vYmpfd2FpdChzdHJ1Y3Qgdm13X2ZlbmNlX29i aiAqZmVuY2UsIGJvb2wgbGF6eSwKIAkJICAgICAgIGJvb2wgaW50ZXJydXB0aWJsZSwgdW5zaWdu ZWQgbG9uZyB0aW1lb3V0KQogewotCWxvbmcgcmV0ID0gZmVuY2Vfd2FpdF90aW1lb3V0KCZmZW5j ZS0+YmFzZSwgaW50ZXJydXB0aWJsZSwgdGltZW91dCk7CisJbG9uZyByZXQgPSBkbWFfZmVuY2Vf d2FpdF90aW1lb3V0KCZmZW5jZS0+YmFzZSwgaW50ZXJydXB0aWJsZSwgdGltZW91dCk7CiAKIAlp ZiAobGlrZWx5KHJldCA+IDApKQogCQlyZXR1cm4gMDsKQEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lk IHZtd19mZW5jZV9vYmpfZmx1c2goc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogCiBzdGF0 aWMgdm9pZCB2bXdfZmVuY2VfZGVzdHJveShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2UpCiB7 Ci0JZmVuY2VfZnJlZSgmZmVuY2UtPmJhc2UpOworCWRtYV9mZW5jZV9mcmVlKCZmZW5jZS0+YmFz ZSk7CiB9CiAKIGludCB2bXdfZmVuY2VfY3JlYXRlKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAq Zm1hbiwKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lkIHZtd19mZW5jZV9maWZvX2Rvd24oc3RydWN0 IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuKQogCQlzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2Ug PQogCQkJbGlzdF9lbnRyeShmbWFuLT5mZW5jZV9saXN0LnByZXYsIHN0cnVjdCB2bXdfZmVuY2Vf b2JqLAogCQkJCSAgIGhlYWQpOwotCQlmZW5jZV9nZXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2Zl bmNlX2dldCgmZmVuY2UtPmJhc2UpOwogCQlzcGluX3VubG9ja19pcnEoJmZtYW4tPmxvY2spOwog CiAJCXJldCA9IHZtd19mZW5jZV9vYmpfd2FpdChmZW5jZSwgZmFsc2UsIGZhbHNlLApAQCAtNjc3 LDcgKzY3Nyw3IEBAIHZvaWQgdm13X2ZlbmNlX2ZpZm9fZG93bihzdHJ1Y3Qgdm13X2ZlbmNlX21h bmFnZXIgKmZtYW4pCiAKIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewogCQkJbGlzdF9kZWxf aW5pdCgmZmVuY2UtPmhlYWQpOwotCQkJZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CisJCQlk bWFfZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7CiAJCQlJTklUX0xJU1RfSEVBRCgmYWN0aW9u X2xpc3QpOwogCQkJbGlzdF9zcGxpY2VfaW5pdCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucywK IAkJCQkJICZhY3Rpb25fbGlzdCk7CkBAIC02ODUsNyArNjg1LDcgQEAgdm9pZCB2bXdfZmVuY2Vf Zmlmb19kb3duKHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbikKIAkJfQogCiAJCUJVR19P TighbGlzdF9lbXB0eSgmZmVuY2UtPmhlYWQpKTsKLQkJZmVuY2VfcHV0KCZmZW5jZS0+YmFzZSk7 CisJCWRtYV9mZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKIAkJc3Bpbl9sb2NrX2lycSgmZm1hbi0+ bG9jayk7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmZm1hbi0+bG9jayk7CkBAIC04ODQsNyArODg0 LDcgQEAgc3RhdGljIHZvaWQgdm13X2ZlbmNlX29ial9hZGRfYWN0aW9uKHN0cnVjdCB2bXdfZmVu Y2Vfb2JqICpmZW5jZSwKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZm1hbi0+bG9jaywgaXJxX2ZsYWdz KTsKIAogCWZtYW4tPnBlbmRpbmdfYWN0aW9uc1thY3Rpb24tPnR5cGVdKys7Ci0JaWYgKGZlbmNl X2lzX3NpZ25hbGVkX2xvY2tlZCgmZmVuY2UtPmJhc2UpKSB7CisJaWYgKGRtYV9mZW5jZV9pc19z aWduYWxlZF9sb2NrZWQoJmZlbmNlLT5iYXNlKSkgewogCQlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGlv bl9saXN0OwogCiAJCUlOSVRfTElTVF9IRUFEKCZhY3Rpb25fbGlzdCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZmVuY2UuaAppbmRleCA4M2FlMzAxZWUxNDEuLmQ5ZDg1YWE2ZWQyMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNp Zm5kZWYgX1ZNV0dGWF9GRU5DRV9IXwogCi0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNs dWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KIAogI2RlZmluZSBWTVdfRkVOQ0VfV0FJVF9USU1FT1VU ICg1KkhaKQogCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCB2bXdfZmVuY2VfYWN0aW9uIHsKIH07 CiAKIHN0cnVjdCB2bXdfZmVuY2Vfb2JqIHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3Qg ZG1hX2ZlbmNlIGJhc2U7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CiAJc3RydWN0IGxpc3Rf aGVhZCBzZXFfcGFzc2VkX2FjdGlvbnM7CkBAIC03MSwxNCArNzEsMTQgQEAgdm13X2ZlbmNlX29i al91bnJlZmVyZW5jZShzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKmZlbmNlX3ApCiAKIAkqZmVuY2Vf cCA9IE5VTEw7CiAJaWYgKGZlbmNlKQotCQlmZW5jZV9wdXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1h X2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2bXdf ZmVuY2Vfb2JqICoKIHZtd19mZW5jZV9vYmpfcmVmZXJlbmNlKHN0cnVjdCB2bXdfZmVuY2Vfb2Jq ICpmZW5jZSkKIHsKIAlpZiAoZmVuY2UpCi0JCWZlbmNlX2dldCgmZmVuY2UtPmJhc2UpOworCQlk bWFfZmVuY2VfZ2V0KCZmZW5jZS0+YmFzZSk7CiAJcmV0dXJuIGZlbmNlOwogfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwppbmRleCAxYTg1ZmIyZDRkYzYuLjhlODZk NmQ0MTQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3Vy Y2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCkBAIC0x NDU0LDcgKzE0NTQsNyBAQCB2b2lkIHZtd19mZW5jZV9zaW5nbGVfYm8oc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAlpZiAoZmVuY2UgPT0gTlVMTCkgewogCQl2bXdfZXhlY2J1Zl9mZW5j ZV9jb21tYW5kcyhOVUxMLCBkZXZfcHJpdiwgJmZlbmNlLCBOVUxMKTsKIAkJcmVzZXJ2YXRpb25f b2JqZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCAmZmVuY2UtPmJhc2UpOwotCQlmZW5jZV9w dXQoJmZlbmNlLT5iYXNlKTsKKwkJZG1hX2ZlbmNlX3B1dCgmZmVuY2UtPmJhc2UpOwogCX0gZWxz ZQogCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UoYm8tPnJlc3YsICZmZW5jZS0+ YmFzZSk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9k cm1QLmgKaW5kZXggNjcyNjQ0MDMxYmQ1Li5lMzM2ZTM5MDE4NzYgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL2RybVAuaAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTU3LDcgKzU3LDcgQEAK ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNp bmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAjaW5jbHVkZSA8YXNtL21tYW4uaD4KICNpbmNs dWRlIDxhc20vcGdhbGxvYy5oPgpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0cnVjdCBkcm1faW9jdGxf ZGVzYyB7CiBzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQgewogCXN0cnVjdCBjb21wbGV0aW9uICpj b21wbGV0aW9uOwogCXN0cnVjdCBkcm1fZXZlbnQgKmV2ZW50OwotCXN0cnVjdCBmZW5jZSAqZmVu Y2U7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwog CXN0cnVjdCBsaXN0X2hlYWQgcGVuZGluZ19saW5rOwogCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKaW5kZXggYmM4NjBjZmM2N2NhLi5mYTFhYTIxNGM4ZWEgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtNTQs NyArNTQsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfc2V0Owogc3RydWN0IGRybV9maWxlOwogc3RydWN0 IGRybV9jbGlwX3JlY3Q7CiBzdHJ1Y3QgZGV2aWNlX25vZGU7Ci1zdHJ1Y3QgZmVuY2U7CitzdHJ1 Y3QgZG1hX2ZlbmNlOwogc3RydWN0IGVkaWQ7CiAKIHN0YXRpYyBpbmxpbmUgaW50NjRfdCBVNjQy STY0KHVpbnQ2NF90IHZhbCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIv aW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKaW5kZXggOThiMzlkNjZlYjMyLi5jNWU4YTBkZjE2MjMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9wbGFuZS5oCkBAIC01OSw3ICs1OSw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewogCiAJ c3RydWN0IGRybV9jcnRjICpjcnRjOyAgIC8qIGRvIG5vdCB3cml0ZSBkaXJlY3RseSwgdXNlIGRy bV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKCkgKi8KIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYjsgIC8qIGRvIG5vdCB3cml0ZSBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfc2V0X2ZiX2Zv cl9wbGFuZSgpICovCi0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZTsKIAogCS8qIFNpZ25lZCBkZXN0IGxvY2F0aW9uIGFsbG93cyBpdCB0byBiZSBwYXJ0aWFs bHkgb2ZmIHNjcmVlbiAqLwogCWludDMyX3QgY3J0Y194LCBjcnRjX3k7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGku aAppbmRleCA5ZWI5NDBkNjc1NWYuLjViZWFlNzk2OWJmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCkBA IC0yMDksNyArMjA5LDcgQEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsKIAkgKiBNZW1iZXJz IHByb3RlY3RlZCBieSBhIGJvIHJlc2VydmF0aW9uLgogCSAqLwogCi0Jc3RydWN0IGZlbmNlICpt b3Zpbmc7CisJc3RydWN0IGRtYV9mZW5jZSAqbW92aW5nOwogCiAJc3RydWN0IGRybV92bWFfb2Zm c2V0X25vZGUgdm1hX25vZGU7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDRmMGE5MjE4 NTk5NS4uMjdlOWMyNmM5MTUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTMwMyw3ICsz MDMsNyBAQCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgewogCS8qCiAJICogUHJvdGVjdGVk IGJ5IEBtb3ZlX2xvY2suCiAJICovCi0Jc3RydWN0IGZlbmNlICptb3ZlOworCXN0cnVjdCBkbWFf ZmVuY2UgKm1vdmU7CiB9OwogCiAvKioKQEAgLTEwMjUsNyArMTAyNSw3IEBAIGV4dGVybiB2b2lk IHR0bV9ib19mcmVlX29sZF9ub2RlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwogICov CiAKIGV4dGVybiBpbnQgdHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAotCQkJCSAgICAgc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwK KwkJCQkgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0LAogCQkJCSAgICAg c3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKTsKIAogLyoqCkBAIC0xMDQwLDcgKzEwNDAsNyBA QCBleHRlcm4gaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKICAqIGltbWVkaWF0ZWx5IG9yIGhhbmcgaXQgb24gYSB0ZW1wb3JhcnkgYnVm ZmVyIG9iamVjdC4KICAqLwogaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCi0JCQkgc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKKwkJ CSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwKIAkJCSBzdHJ1Y3QgdHRtX21l bV9yZWcgKm5ld19tZW0pOwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1f ZXhlY2J1Zl91dGlsLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oCmluZGV4 IGI2MjBjMzE3Yzc3Mi4uNDdmMzViOGU2ZDA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0v dHRtX2V4ZWNidWZfdXRpbC5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmgKQEAgLTExNCw2ICsxMTQsNiBAQCBleHRlcm4gaW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMo c3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAKIGV4dGVybiB2b2lkIHR0bV9ldV9mZW5j ZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tldCwKIAkJCQkJc3Ry dWN0IGxpc3RfaGVhZCAqbGlzdCwKLQkJCQkJc3RydWN0IGZlbmNlICpmZW5jZSk7CisJCQkJCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2RtYS1idWYuaCBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCmluZGV4IGUwYjA3NDFhZTY3 MS4uOGRhZWIzY2UwMDE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAorKysg Yi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGxp bnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxp bnV4L2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEt ZmVuY2UuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAKIHN0cnVjdCBkZXZpY2U7CkBAIC0x NDMsNyArMTQzLDcgQEAgc3RydWN0IGRtYV9idWYgewogCXdhaXRfcXVldWVfaGVhZF90IHBvbGw7 CiAKIAlzdHJ1Y3QgZG1hX2J1Zl9wb2xsX2NiX3QgewotCQlzdHJ1Y3QgZmVuY2VfY2IgY2I7CisJ CXN0cnVjdCBkbWFfZmVuY2VfY2IgY2I7CiAJCXdhaXRfcXVldWVfaGVhZF90ICpwb2xsOwogCiAJ CXVuc2lnbmVkIGxvbmcgYWN0aXZlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtZmVu Y2UtYXJyYXkuaCBiL2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLWFycmF5LmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41OTAwOTQ1Zjk2MmQKLS0tIC9kZXYvbnVsbAor KysgYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS1hcnJheS5oCkBAIC0wLDAgKzEsODYgQEAKKy8q CisgKiBmZW5jZS1hcnJheTogYWdncmVnYXRlcyBmZW5jZSB0byBiZSB3YWl0ZWQgdG9nZXRoZXIK KyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ29sbGFib3JhIEx0ZAorICogQ29weXJpZ2h0IChD KSAyMDE2IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcnM6CisgKglHdXN0 YXZvIFBhZG92YW4gPGd1c3Rhdm9AcGFkb3Zhbi5vcmc+CisgKglDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFz IHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0IFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgor ICogbW9yZSBkZXRhaWxzLgorICovCisKKyNpZm5kZWYgX19MSU5VWF9ETUFfRkVOQ0VfQVJSQVlf SAorI2RlZmluZSBfX0xJTlVYX0RNQV9GRU5DRV9BUlJBWV9ICisKKyNpbmNsdWRlIDxsaW51eC9k bWEtZmVuY2UuaD4KKworLyoqCisgKiBzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5X2NiIC0gY2FsbGJh Y2sgaGVscGVyIGZvciBmZW5jZSBhcnJheQorICogQGNiOiBmZW5jZSBjYWxsYmFjayBzdHJ1Y3R1 cmUgZm9yIHNpZ25hbGluZworICogQGFycmF5OiByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBmZW5j ZSBhcnJheSBvYmplY3QKKyAqLworc3RydWN0IGRtYV9mZW5jZV9hcnJheV9jYiB7CisJc3RydWN0 IGRtYV9mZW5jZV9jYiBjYjsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2FycmF5ICphcnJheTsKK307CisK Ky8qKgorICogc3RydWN0IGRtYV9mZW5jZV9hcnJheSAtIGZlbmNlIHRvIHJlcHJlc2VudCBhbiBh cnJheSBvZiBmZW5jZXMKKyAqIEBiYXNlOiBmZW5jZSBiYXNlIGNsYXNzCisgKiBAbG9jazogc3Bp bmxvY2sgZm9yIGZlbmNlIGhhbmRsaW5nCisgKiBAbnVtX2ZlbmNlczogbnVtYmVyIG9mIGZlbmNl cyBpbiB0aGUgYXJyYXkKKyAqIEBudW1fcGVuZGluZzogZmVuY2VzIGluIHRoZSBhcnJheSBzdGls bCBwZW5kaW5nCisgKiBAZmVuY2VzOiBhcnJheSBvZiB0aGUgZmVuY2VzCisgKi8KK3N0cnVjdCBk bWFfZmVuY2VfYXJyYXkgeworCXN0cnVjdCBkbWFfZmVuY2UgYmFzZTsKKworCXNwaW5sb2NrX3Qg bG9jazsKKwl1bnNpZ25lZCBudW1fZmVuY2VzOworCWF0b21pY190IG51bV9wZW5kaW5nOworCXN0 cnVjdCBkbWFfZmVuY2UgKipmZW5jZXM7Cit9OworCitleHRlcm4gY29uc3Qgc3RydWN0IGRtYV9m ZW5jZV9vcHMgZG1hX2ZlbmNlX2FycmF5X29wczsKKworLyoqCisgKiBkbWFfZmVuY2VfaXNfYXJy YXkgLSBjaGVjayBpZiBhIGZlbmNlIGlzIGZyb20gdGhlIGFycmF5IHN1YnNjbGFzcworICogQGZl bmNlOiBmZW5jZSB0byB0ZXN0CisgKgorICogUmV0dXJuIHRydWUgaWYgaXQgaXMgYSBkbWFfZmVu Y2VfYXJyYXkgYW5kIGZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSBib29sIGRt YV9mZW5jZV9pc19hcnJheShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gZmVu Y2UtPm9wcyA9PSAmZG1hX2ZlbmNlX2FycmF5X29wczsKK30KKworLyoqCisgKiB0b19kbWFfZmVu Y2VfYXJyYXkgLSBjYXN0IGEgZmVuY2UgdG8gYSBkbWFfZmVuY2VfYXJyYXkKKyAqIEBmZW5jZTog ZmVuY2UgdG8gY2FzdCB0byBhIGRtYV9mZW5jZV9hcnJheQorICoKKyAqIFJldHVybnMgTlVMTCBp ZiB0aGUgZmVuY2UgaXMgbm90IGEgZG1hX2ZlbmNlX2FycmF5LAorICogb3IgdGhlIGRtYV9mZW5j ZV9hcnJheSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZV9h cnJheSAqCit0b19kbWFfZmVuY2VfYXJyYXkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCit7CisJ aWYgKGZlbmNlLT5vcHMgIT0gJmRtYV9mZW5jZV9hcnJheV9vcHMpCisJCXJldHVybiBOVUxMOwor CisJcmV0dXJuIGNvbnRhaW5lcl9vZihmZW5jZSwgc3RydWN0IGRtYV9mZW5jZV9hcnJheSwgYmFz ZSk7Cit9CisKK3N0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmRtYV9mZW5jZV9hcnJheV9jcmVhdGUo aW50IG51bV9mZW5jZXMsCisJCQkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2VzLAor CQkJCQkgICAgICAgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vLAorCQkJCQkgICAgICAgYm9v bCBzaWduYWxfb25fYW55KTsKKworI2VuZGlmIC8qIF9fTElOVVhfRE1BX0ZFTkNFX0FSUkFZX0gg Ki8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmVuY2UuaCBiL2luY2x1ZGUvbGludXgvZG1h LWZlbmNlLmgKc2ltaWxhcml0eSBpbmRleCA1OSUKcmVuYW1lIGZyb20gaW5jbHVkZS9saW51eC9m ZW5jZS5oCnJlbmFtZSB0byBpbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCmluZGV4IGM5YzViYTk4 YzMwMi4uYmE2MGMwNDNhNWQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLmgKKysr IGIvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaApAQCAtMTgsOCArMTgsOCBAQAogICogbW9yZSBk ZXRhaWxzLgogICovCiAKLSNpZm5kZWYgX19MSU5VWF9GRU5DRV9ICi0jZGVmaW5lIF9fTElOVVhf RkVOQ0VfSAorI2lmbmRlZiBfX0xJTlVYX0RNQV9GRU5DRV9ICisjZGVmaW5lIF9fTElOVVhfRE1B X0ZFTkNFX0gKIAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQu aD4KQEAgLTMwLDQ4ICszMCw0OCBAQAogI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPgogI2luY2x1 ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAKLXN0cnVjdCBmZW5jZTsKLXN0cnVjdCBmZW5jZV9vcHM7 Ci1zdHJ1Y3QgZmVuY2VfY2I7CitzdHJ1Y3QgZG1hX2ZlbmNlOworc3RydWN0IGRtYV9mZW5jZV9v cHM7CitzdHJ1Y3QgZG1hX2ZlbmNlX2NiOwogCiAvKioKLSAqIHN0cnVjdCBmZW5jZSAtIHNvZnR3 YXJlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmUKKyAqIHN0cnVjdCBkbWFfZmVuY2UgLSBzb2Z0 d2FyZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlCiAgKiBAcmVmY291bnQ6IHJlZmNvdW50IGZv ciB0aGlzIGZlbmNlCi0gKiBAb3BzOiBmZW5jZV9vcHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmVu Y2UKKyAqIEBvcHM6IGRtYV9mZW5jZV9vcHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmVuY2UKICAq IEByY3U6IHVzZWQgZm9yIHJlbGVhc2luZyBmZW5jZSB3aXRoIGtmcmVlX3JjdQogICogQGNiX2xp c3Q6IGxpc3Qgb2YgYWxsIGNhbGxiYWNrcyB0byBjYWxsCiAgKiBAbG9jazogc3Bpbl9sb2NrX2ly cXNhdmUgdXNlZCBmb3IgbG9ja2luZwogICogQGNvbnRleHQ6IGV4ZWN1dGlvbiBjb250ZXh0IHRo aXMgZmVuY2UgYmVsb25ncyB0bywgcmV0dXJuZWQgYnkKLSAqICAgICAgICAgICBmZW5jZV9jb250 ZXh0X2FsbG9jKCkKKyAqICAgICAgICAgICBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygpCiAgKiBA c2Vxbm86IHRoZSBzZXF1ZW5jZSBudW1iZXIgb2YgdGhpcyBmZW5jZSBpbnNpZGUgdGhlIGV4ZWN1 dGlvbiBjb250ZXh0LAogICogY2FuIGJlIGNvbXBhcmVkIHRvIGRlY2lkZSB3aGljaCBmZW5jZSB3 b3VsZCBiZSBzaWduYWxlZCBsYXRlci4KLSAqIEBmbGFnczogQSBtYXNrIG9mIEZFTkNFX0ZMQUdf KiBkZWZpbmVkIGJlbG93CisgKiBAZmxhZ3M6IEEgbWFzayBvZiBETUFfRkVOQ0VfRkxBR18qIGRl ZmluZWQgYmVsb3cKICAqIEB0aW1lc3RhbXA6IFRpbWVzdGFtcCB3aGVuIHRoZSBmZW5jZSB3YXMg c2lnbmFsZWQuCiAgKiBAc3RhdHVzOiBPcHRpb25hbCwgb25seSB2YWxpZCBpZiA8IDAsIG11c3Qg YmUgc2V0IGJlZm9yZSBjYWxsaW5nCi0gKiBmZW5jZV9zaWduYWwsIGluZGljYXRlcyB0aGF0IHRo ZSBmZW5jZSBoYXMgY29tcGxldGVkIHdpdGggYW4gZXJyb3IuCisgKiBkbWFfZmVuY2Vfc2lnbmFs LCBpbmRpY2F0ZXMgdGhhdCB0aGUgZmVuY2UgaGFzIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yLgog ICoKICAqIHRoZSBmbGFncyBtZW1iZXIgbXVzdCBiZSBtYW5pcHVsYXRlZCBhbmQgcmVhZCB1c2lu ZyB0aGUgYXBwcm9wcmlhdGUKICAqIGF0b21pYyBvcHMgKGJpdF8qKSwgc28gdGFraW5nIHRoZSBz cGlubG9jayB3aWxsIG5vdCBiZSBuZWVkZWQgbW9zdAogICogb2YgdGhlIHRpbWUuCiAgKgotICog RkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQgLSBmZW5jZSBpcyBhbHJlYWR5IHNpZ25hbGVkCi0gKiBG RU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklUIC0gZW5hYmxlX3NpZ25hbGluZyBtaWdodCBoYXZl IGJlZW4gY2FsbGVkKgotICogRkVOQ0VfRkxBR19VU0VSX0JJVFMgLSBzdGFydCBvZiB0aGUgdW51 c2VkIGJpdHMsIGNhbiBiZSB1c2VkIGJ5IHRoZQorICogRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURf QklUIC0gZmVuY2UgaXMgYWxyZWFkeSBzaWduYWxlZAorICogRE1BX0ZFTkNFX0ZMQUdfRU5BQkxF X1NJR05BTF9CSVQgLSBlbmFibGVfc2lnbmFsaW5nIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQKKyAq IERNQV9GRU5DRV9GTEFHX1VTRVJfQklUUyAtIHN0YXJ0IG9mIHRoZSB1bnVzZWQgYml0cywgY2Fu IGJlIHVzZWQgYnkgdGhlCiAgKiBpbXBsZW1lbnRlciBvZiB0aGUgZmVuY2UgZm9yIGl0cyBvd24g cHVycG9zZXMuIENhbiBiZSB1c2VkIGluIGRpZmZlcmVudAogICogd2F5cyBieSBkaWZmZXJlbnQg ZmVuY2UgaW1wbGVtZW50ZXJzLCBzbyBkbyBub3QgcmVseSBvbiB0aGlzLgogICoKICAqIFNpbmNl IGF0b21pYyBiaXRvcHMgYXJlIHVzZWQsIHRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgdGhl IGNhc2UuCi0gKiBQYXJ0aWN1bGFybHksIGlmIHRoZSBiaXQgd2FzIHNldCwgYnV0IGZlbmNlX3Np Z25hbCB3YXMgY2FsbGVkIHJpZ2h0CisgKiBQYXJ0aWN1bGFybHksIGlmIHRoZSBiaXQgd2FzIHNl dCwgYnV0IGRtYV9mZW5jZV9zaWduYWwgd2FzIGNhbGxlZCByaWdodAogICogYmVmb3JlIHRoaXMg Yml0IHdhcyBzZXQsIGl0IHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHNldCB0aGUKLSAqIEZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyB3YXMgY2FsbGVkLgot ICogQWRkaW5nIGEgY2hlY2sgZm9yIEZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIGFmdGVyIHNldHRp bmcKLSAqIEZFTkNFX0ZMQUdfRU5BQkxFX1NJR05BTF9CSVQgY2xvc2VzIHRoaXMgcmFjZSwgYW5k IG1ha2VzIHN1cmUgdGhhdAotICogYWZ0ZXIgZmVuY2Vfc2lnbmFsIHdhcyBjYWxsZWQsIGFueSBl bmFibGVfc2lnbmFsaW5nIGNhbGwgd2lsbCBoYXZlIGVpdGhlcgorICogRE1BX0ZFTkNFX0ZMQUdf U0lHTkFMRURfQklULCBiZWZvcmUgZW5hYmxlX3NpZ25hbGluZyB3YXMgY2FsbGVkLgorICogQWRk aW5nIGEgY2hlY2sgZm9yIERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBhZnRlciBzZXR0aW5n CisgKiBETUFfRkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCBjbG9zZXMgdGhpcyByYWNlLCBh bmQgbWFrZXMgc3VyZSB0aGF0CisgKiBhZnRlciBkbWFfZmVuY2Vfc2lnbmFsIHdhcyBjYWxsZWQs IGFueSBlbmFibGVfc2lnbmFsaW5nIGNhbGwgd2lsbCBoYXZlIGVpdGhlcgogICogYmVlbiBjb21w bGV0ZWQsIG9yIG5ldmVyIGNhbGxlZCBhdCBhbGwuCiAgKi8KLXN0cnVjdCBmZW5jZSB7CitzdHJ1 Y3QgZG1hX2ZlbmNlIHsKIAlzdHJ1Y3Qga3JlZiByZWZjb3VudDsKLQljb25zdCBzdHJ1Y3QgZmVu Y2Vfb3BzICpvcHM7CisJY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsKIAlzdHJ1Y3Qg cmN1X2hlYWQgcmN1OwogCXN0cnVjdCBsaXN0X2hlYWQgY2JfbGlzdDsKIAlzcGlubG9ja190ICps b2NrOwpAQCAtODIsMzQgKzgyLDM1IEBAIHN0cnVjdCBmZW5jZSB7CiAJaW50IHN0YXR1czsKIH07 CiAKLWVudW0gZmVuY2VfZmxhZ19iaXRzIHsKLQlGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCwKLQlG RU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULAotCUZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAvKiBt dXN0IGFsd2F5cyBiZSBsYXN0IG1lbWJlciAqLworZW51bSBkbWFfZmVuY2VfZmxhZ19iaXRzIHsK KwlETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCisJRE1BX0ZFTkNFX0ZMQUdfRU5BQkxFX1NJ R05BTF9CSVQsCisJRE1BX0ZFTkNFX0ZMQUdfVVNFUl9CSVRTLCAvKiBtdXN0IGFsd2F5cyBiZSBs YXN0IG1lbWJlciAqLwogfTsKIAotdHlwZWRlZiB2b2lkICgqZmVuY2VfZnVuY190KShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2VfY2IgKmNiKTsKK3R5cGVkZWYgdm9pZCAoKmRtYV9m ZW5jZV9mdW5jX3QpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJCSBzdHJ1Y3QgZG1hX2Zl bmNlX2NiICpjYik7CiAKIC8qKgotICogc3RydWN0IGZlbmNlX2NiIC0gY2FsbGJhY2sgZm9yIGZl bmNlX2FkZF9jYWxsYmFjawotICogQG5vZGU6IHVzZWQgYnkgZmVuY2VfYWRkX2NhbGxiYWNrIHRv IGFwcGVuZCB0aGlzIHN0cnVjdCB0byBmZW5jZTo6Y2JfbGlzdAotICogQGZ1bmM6IGZlbmNlX2Z1 bmNfdCB0byBjYWxsCisgKiBzdHJ1Y3QgZG1hX2ZlbmNlX2NiIC0gY2FsbGJhY2sgZm9yIGRtYV9m ZW5jZV9hZGRfY2FsbGJhY2sKKyAqIEBub2RlOiB1c2VkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJh Y2sgdG8gYXBwZW5kIHRoaXMgc3RydWN0IHRvIGZlbmNlOjpjYl9saXN0CisgKiBAZnVuYzogZG1h X2ZlbmNlX2Z1bmNfdCB0byBjYWxsCiAgKgotICogVGhpcyBzdHJ1Y3Qgd2lsbCBiZSBpbml0aWFs aXplZCBieSBmZW5jZV9hZGRfY2FsbGJhY2ssIGFkZGl0aW9uYWwKLSAqIGRhdGEgY2FuIGJlIHBh c3NlZCBhbG9uZyBieSBlbWJlZGRpbmcgZmVuY2VfY2IgaW4gYW5vdGhlciBzdHJ1Y3QuCisgKiBU aGlzIHN0cnVjdCB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2ss IGFkZGl0aW9uYWwKKyAqIGRhdGEgY2FuIGJlIHBhc3NlZCBhbG9uZyBieSBlbWJlZGRpbmcgZG1h X2ZlbmNlX2NiIGluIGFub3RoZXIgc3RydWN0LgogICovCi1zdHJ1Y3QgZmVuY2VfY2Igeworc3Ry dWN0IGRtYV9mZW5jZV9jYiB7CiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwotCWZlbmNlX2Z1bmNf dCBmdW5jOworCWRtYV9mZW5jZV9mdW5jX3QgZnVuYzsKIH07CiAKIC8qKgotICogc3RydWN0IGZl bmNlX29wcyAtIG9wZXJhdGlvbnMgaW1wbGVtZW50ZWQgZm9yIGZlbmNlCisgKiBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyAtIG9wZXJhdGlvbnMgaW1wbGVtZW50ZWQgZm9yIGZlbmNlCiAgKiBAZ2V0X2Ry aXZlcl9uYW1lOiByZXR1cm5zIHRoZSBkcml2ZXIgbmFtZS4KICAqIEBnZXRfdGltZWxpbmVfbmFt ZTogcmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IHRoaXMgZmVuY2UgYmVsb25ncyB0by4K ICAqIEBlbmFibGVfc2lnbmFsaW5nOiBlbmFibGUgc29mdHdhcmUgc2lnbmFsaW5nIG9mIGZlbmNl LgogICogQHNpZ25hbGVkOiBbb3B0aW9uYWxdIHBlZWsgd2hldGhlciB0aGUgZmVuY2UgaXMgc2ln bmFsZWQsIGNhbiBiZSBudWxsLgotICogQHdhaXQ6IGN1c3RvbSB3YWl0IGltcGxlbWVudGF0aW9u LCBvciBmZW5jZV9kZWZhdWx0X3dhaXQuCisgKiBAd2FpdDogY3VzdG9tIHdhaXQgaW1wbGVtZW50 YXRpb24sIG9yIGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQuCiAgKiBAcmVsZWFzZTogW29wdGlvbmFs XSBjYWxsZWQgb24gZGVzdHJ1Y3Rpb24gb2YgZmVuY2UsIGNhbiBiZSBudWxsCiAgKiBAZmlsbF9k cml2ZXJfZGF0YTogW29wdGlvbmFsXSBjYWxsYmFjayB0byBmaWxsIGluIGZyZWUtZm9ybSBkZWJ1 ZyBpbmZvCiAgKiBSZXR1cm5zIGFtb3VudCBvZiBieXRlcyBmaWxsZWQsIG9yIC1lcnJuby4KQEAg LTEzNSwyMCArMTM2LDIwIEBAIHN0cnVjdCBmZW5jZV9jYiB7CiAgKiBmZW5jZS0+c3RhdHVzIG1h eSBiZSBzZXQgaW4gZW5hYmxlX3NpZ25hbGluZywgYnV0IG9ubHkgd2hlbiBmYWxzZSBpcwogICog cmV0dXJuZWQuCiAgKgotICogQ2FsbGluZyBmZW5jZV9zaWduYWwgYmVmb3JlIGVuYWJsZV9zaWdu YWxpbmcgaXMgY2FsbGVkIGFsbG93cworICogQ2FsbGluZyBkbWFfZmVuY2Vfc2lnbmFsIGJlZm9y ZSBlbmFibGVfc2lnbmFsaW5nIGlzIGNhbGxlZCBhbGxvd3MKICAqIGZvciBhIHRpbnkgcmFjZSB3 aW5kb3cgaW4gd2hpY2ggZW5hYmxlX3NpZ25hbGluZyBpcyBjYWxsZWQgZHVyaW5nLAotICogYmVm b3JlLCBvciBhZnRlciBmZW5jZV9zaWduYWwuIFRvIGZpZ2h0IHRoaXMsIGl0IGlzIHJlY29tbWVu ZGVkCisgKiBiZWZvcmUsIG9yIGFmdGVyIGRtYV9mZW5jZV9zaWduYWwuIFRvIGZpZ2h0IHRoaXMs IGl0IGlzIHJlY29tbWVuZGVkCiAgKiB0aGF0IGJlZm9yZSBlbmFibGVfc2lnbmFsaW5nIHJldHVy bnMgdHJ1ZSBhbiBleHRyYSByZWZlcmVuY2UgaXMKICAqIHRha2VuIG9uIHRoZSBmZW5jZSwgdG8g YmUgcmVsZWFzZWQgd2hlbiB0aGUgZmVuY2UgaXMgc2lnbmFsZWQuCi0gKiBUaGlzIHdpbGwgbWVh biBmZW5jZV9zaWduYWwgd2lsbCBzdGlsbCBiZSBjYWxsZWQgdHdpY2UsIGJ1dAorICogVGhpcyB3 aWxsIG1lYW4gZG1hX2ZlbmNlX3NpZ25hbCB3aWxsIHN0aWxsIGJlIGNhbGxlZCB0d2ljZSwgYnV0 CiAgKiB0aGUgc2Vjb25kIHRpbWUgd2lsbCBiZSBhIG5vb3Agc2luY2UgaXQgd2FzIGFscmVhZHkg c2lnbmFsZWQuCiAgKgogICogTm90ZXMgb24gc2lnbmFsZWQ6CiAgKiBNYXkgc2V0IGZlbmNlLT5z dGF0dXMgaWYgcmV0dXJuaW5nIHRydWUuCiAgKgogICogTm90ZXMgb24gd2FpdDoKLSAqIE11c3Qg bm90IGJlIE5VTEwsIHNldCB0byBmZW5jZV9kZWZhdWx0X3dhaXQgZm9yIGRlZmF1bHQgaW1wbGVt ZW50YXRpb24uCi0gKiB0aGUgZmVuY2VfZGVmYXVsdF93YWl0IGltcGxlbWVudGF0aW9uIHNob3Vs ZCB3b3JrIGZvciBhbnkgZmVuY2UsIGFzIGxvbmcKKyAqIE11c3Qgbm90IGJlIE5VTEwsIHNldCB0 byBkbWFfZmVuY2VfZGVmYXVsdF93YWl0IGZvciBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICog dGhlIGRtYV9mZW5jZV9kZWZhdWx0X3dhaXQgaW1wbGVtZW50YXRpb24gc2hvdWxkIHdvcmsgZm9y IGFueSBmZW5jZSwgYXMgbG9uZwogICogYXMgZW5hYmxlX3NpZ25hbGluZyB3b3JrcyBjb3JyZWN0 bHkuCiAgKgogICogTXVzdCByZXR1cm4gLUVSRVNUQVJUU1lTIGlmIHRoZSB3YWl0IGlzIGludHIg PSB0cnVlIGFuZCB0aGUgd2FpdCB3YXMKQEAgLTE2Myw0MiArMTY0LDQ0IEBAIHN0cnVjdCBmZW5j ZV9jYiB7CiAgKiBJZiBwb2ludGVyIGlzIHNldCB0byBOVUxMLCBrZnJlZSB3aWxsIGdldCBjYWxs ZWQgaW5zdGVhZC4KICAqLwogCi1zdHJ1Y3QgZmVuY2Vfb3BzIHsKLQljb25zdCBjaGFyICogKCpn ZXRfZHJpdmVyX25hbWUpKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwotCWNvbnN0IGNoYXIgKiAoKmdl dF90aW1lbGluZV9uYW1lKShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLQlib29sICgqZW5hYmxlX3Np Z25hbGluZykoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci0JYm9vbCAoKnNpZ25hbGVkKShzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKTsKLQlzaWduZWQgbG9uZyAoKndhaXQpKHN0cnVjdCBmZW5jZSAqZmVuY2Us IGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7Ci0Jdm9pZCAoKnJlbGVhc2UpKHN0cnVj dCBmZW5jZSAqZmVuY2UpOwotCi0JaW50ICgqZmlsbF9kcml2ZXJfZGF0YSkoc3RydWN0IGZlbmNl ICpmZW5jZSwgdm9pZCAqZGF0YSwgaW50IHNpemUpOwotCXZvaWQgKCpmZW5jZV92YWx1ZV9zdHIp KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpOwotCXZvaWQgKCp0aW1l bGluZV92YWx1ZV9zdHIpKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUp Oworc3RydWN0IGRtYV9mZW5jZV9vcHMgeworCWNvbnN0IGNoYXIgKiAoKmdldF9kcml2ZXJfbmFt ZSkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworCWNvbnN0IGNoYXIgKiAoKmdldF90aW1lbGlu ZV9uYW1lKShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CisJYm9vbCAoKmVuYWJsZV9zaWduYWxp bmcpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKKwlib29sICgqc2lnbmFsZWQpKHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKTsKKwlzaWduZWQgbG9uZyAoKndhaXQpKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlLAorCQkJICAgIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7CisJdm9pZCAo KnJlbGVhc2UpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKKworCWludCAoKmZpbGxfZHJpdmVy X2RhdGEpKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCB2b2lkICpkYXRhLCBpbnQgc2l6ZSk7CisJ dm9pZCAoKmZlbmNlX3ZhbHVlX3N0cikoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNoYXIgKnN0 ciwgaW50IHNpemUpOworCXZvaWQgKCp0aW1lbGluZV92YWx1ZV9zdHIpKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlLAorCQkJCSAgIGNoYXIgKnN0ciwgaW50IHNpemUpOwogfTsKIAotdm9pZCBmZW5j ZV9pbml0KHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgKm9wcywK LQkJc3BpbmxvY2tfdCAqbG9jaywgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vKTsKK3ZvaWQg ZG1hX2ZlbmNlX2luaXQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGNvbnN0IHN0cnVjdCBkbWFf ZmVuY2Vfb3BzICpvcHMsCisJCSAgICBzcGlubG9ja190ICpsb2NrLCB1NjQgY29udGV4dCwgdW5z aWduZWQgc2Vxbm8pOwogCi12b2lkIGZlbmNlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpOwot dm9pZCBmZW5jZV9mcmVlKHN0cnVjdCBmZW5jZSAqZmVuY2UpOwordm9pZCBkbWFfZmVuY2VfcmVs ZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZik7Cit2b2lkIGRtYV9mZW5jZV9mcmVlKHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlKTsKIAogLyoqCi0gKiBmZW5jZV9wdXQgLSBkZWNyZWFzZXMgcmVmY291bnQg b2YgdGhlIGZlbmNlCisgKiBkbWFfZmVuY2VfcHV0IC0gZGVjcmVhc2VzIHJlZmNvdW50IG9mIHRo ZSBmZW5jZQogICogQGZlbmNlOglbaW5dCWZlbmNlIHRvIHJlZHVjZSByZWZjb3VudCBvZgogICov Ci1zdGF0aWMgaW5saW5lIHZvaWQgZmVuY2VfcHV0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCitzdGF0 aWMgaW5saW5lIHZvaWQgZG1hX2ZlbmNlX3B1dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsK IAlpZiAoZmVuY2UpCi0JCWtyZWZfcHV0KCZmZW5jZS0+cmVmY291bnQsIGZlbmNlX3JlbGVhc2Up OworCQlrcmVmX3B1dCgmZmVuY2UtPnJlZmNvdW50LCBkbWFfZmVuY2VfcmVsZWFzZSk7CiB9CiAK IC8qKgotICogZmVuY2VfZ2V0IC0gaW5jcmVhc2VzIHJlZmNvdW50IG9mIHRoZSBmZW5jZQorICog ZG1hX2ZlbmNlX2dldCAtIGluY3JlYXNlcyByZWZjb3VudCBvZiB0aGUgZmVuY2UKICAqIEBmZW5j ZToJW2luXQlmZW5jZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKICAqIFJldHVybnMgdGhl IHNhbWUgZmVuY2UsIHdpdGggcmVmY291bnQgaW5jcmVhc2VkIGJ5IDEuCiAgKi8KLXN0YXRpYyBp bmxpbmUgc3RydWN0IGZlbmNlICpmZW5jZV9nZXQoc3RydWN0IGZlbmNlICpmZW5jZSkKK3N0YXRp YyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2dldChzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSkKIHsKIAlpZiAoZmVuY2UpCiAJCWtyZWZfZ2V0KCZmZW5jZS0+cmVmY291bnQpOwpA QCAtMjA2LDEyICsyMDksMTMgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dl dChzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogfQogCiAvKioKLSAqIGZlbmNlX2dldF9yY3UgLSBnZXQg YSBmZW5jZSBmcm9tIGEgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qgd2l0aCByY3UgcmVhZCBsb2Nr CisgKiBkbWFfZmVuY2VfZ2V0X3JjdSAtIGdldCBhIGZlbmNlIGZyb20gYSByZXNlcnZhdGlvbl9v YmplY3RfbGlzdCB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgIHJjdSByZWFkIGxvY2sKICAq IEBmZW5jZToJW2luXQlmZW5jZSB0byBpbmNyZWFzZSByZWZjb3VudCBvZgogICoKICAqIEZ1bmN0 aW9uIHJldHVybnMgTlVMTCBpZiBubyByZWZjb3VudCBjb3VsZCBiZSBvYnRhaW5lZCwgb3IgdGhl IGZlbmNlLgogICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdShz dHJ1Y3QgZmVuY2UgKmZlbmNlKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICpkbWFf ZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIHsKIAlpZiAoa3JlZl9nZXRf dW5sZXNzX3plcm8oJmZlbmNlLT5yZWZjb3VudCkpCiAJCXJldHVybiBmZW5jZTsKQEAgLTIyMCw3 ICsyMjQsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdShzdHJ1 Y3QgZmVuY2UgKmZlbmNlKQogfQogCiAvKioKLSAqIGZlbmNlX2dldF9yY3Vfc2FmZSAgLSBhY3F1 aXJlIGEgcmVmZXJlbmNlIHRvIGFuIFJDVSB0cmFja2VkIGZlbmNlCisgKiBkbWFfZmVuY2VfZ2V0 X3JjdV9zYWZlICAtIGFjcXVpcmUgYSByZWZlcmVuY2UgdG8gYW4gUkNVIHRyYWNrZWQgZmVuY2UK ICAqIEBmZW5jZToJW2luXQlwb2ludGVyIHRvIGZlbmNlIHRvIGluY3JlYXNlIHJlZmNvdW50IG9m CiAgKgogICogRnVuY3Rpb24gcmV0dXJucyBOVUxMIGlmIG5vIHJlZmNvdW50IGNvdWxkIGJlIG9i dGFpbmVkLCBvciB0aGUgZmVuY2UuCkBAIC0yMzUsMTYgKzIzOSwxNyBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQogICoKICAq IFRoZSBjYWxsZXIgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGUgUkNVIHJlYWQgbG9jay4KICAqLwot c3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2UgKmZlbmNlX2dldF9yY3Vfc2FmZShzdHJ1Y3QgZmVu Y2UgKiBfX3JjdSAqZmVuY2VwKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKK2Rt YV9mZW5jZV9nZXRfcmN1X3NhZmUoc3RydWN0IGRtYV9mZW5jZSAqIF9fcmN1ICpmZW5jZXApCiB7 CiAJZG8gewotCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKIAogCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZSgqZmVuY2VwKTsKLQkJaWYgKCFmZW5jZSB8 fCAhZmVuY2VfZ2V0X3JjdShmZW5jZSkpCisJCWlmICghZmVuY2UgfHwgIWRtYV9mZW5jZV9nZXRf cmN1KGZlbmNlKSkKIAkJCXJldHVybiBOVUxMOwogCi0JCS8qIFRoZSBhdG9taWNfaW5jX25vdF96 ZXJvKCkgaW5zaWRlIGZlbmNlX2dldF9yY3UoKQorCQkvKiBUaGUgYXRvbWljX2luY19ub3RfemVy bygpIGluc2lkZSBkbWFfZmVuY2VfZ2V0X3JjdSgpCiAJCSAqIHByb3ZpZGVzIGEgZnVsbCBtZW1v cnkgYmFycmllciB1cG9uIHN1Y2Nlc3MgKHN1Y2ggYXMgbm93KS4KIAkJICogVGhpcyBpcyBwYWly ZWQgd2l0aCB0aGUgd3JpdGUgYmFycmllciBmcm9tIGFzc2lnbmluZwogCQkgKiB0byB0aGUgX19y Y3UgcHJvdGVjdGVkIGZlbmNlIHBvaW50ZXIgc28gdGhhdCBpZiB0aGF0CkBAIC0yNjEsMzcgKzI2 Niw0MSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfZ2V0X3JjdV9zYWZlKHN0 cnVjdCBmZW5jZSAqIF9fcmN1ICpmZW5jZXApCiAJCWlmIChmZW5jZSA9PSByY3VfYWNjZXNzX3Bv aW50ZXIoKmZlbmNlcCkpCiAJCQlyZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZihmZW5jZSk7CiAK LQkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJfSB3aGlsZSAo MSk7CiB9CiAKLWludCBmZW5jZV9zaWduYWwoc3RydWN0IGZlbmNlICpmZW5jZSk7Ci1pbnQgZmVu Y2Vfc2lnbmFsX2xvY2tlZChzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLXNpZ25lZCBsb25nIGZlbmNl X2RlZmF1bHRfd2FpdChzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGludHIsIHNpZ25lZCBsb25n IHRpbWVvdXQpOwotaW50IGZlbmNlX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBz dHJ1Y3QgZmVuY2VfY2IgKmNiLAotCQkgICAgICAgZmVuY2VfZnVuY190IGZ1bmMpOwotYm9vbCBm ZW5jZV9yZW1vdmVfY2FsbGJhY2soc3RydWN0IGZlbmNlICpmZW5jZSwgc3RydWN0IGZlbmNlX2Ni ICpjYik7Ci12b2lkIGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmZW5j ZSk7CitpbnQgZG1hX2ZlbmNlX3NpZ25hbChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CitpbnQg ZG1hX2ZlbmNlX3NpZ25hbF9sb2NrZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOworc2lnbmVk IGxvbmcgZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKKwkJ CQkgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOworaW50IGRtYV9mZW5jZV9hZGRf Y2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkgICBzdHJ1Y3QgZG1hX2ZlbmNl X2NiICpjYiwKKwkJCSAgIGRtYV9mZW5jZV9mdW5jX3QgZnVuYyk7Citib29sIGRtYV9mZW5jZV9y ZW1vdmVfY2FsbGJhY2soc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCisJCQkgICAgICAgc3RydWN0 IGRtYV9mZW5jZV9jYiAqY2IpOwordm9pZCBkbWFfZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZyhz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7CiAKIC8qKgotICogZmVuY2VfaXNfc2lnbmFsZWRfbG9j a2VkIC0gUmV0dXJuIGFuIGluZGljYXRpb24gaWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVkIHlldC4K KyAqIGRtYV9mZW5jZV9pc19zaWduYWxlZF9sb2NrZWQgLSBSZXR1cm4gYW4gaW5kaWNhdGlvbiBp ZiB0aGUgZmVuY2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBzaWduYWxl ZCB5ZXQuCiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRvIGNoZWNrCiAgKgogICogUmV0dXJu cyB0cnVlIGlmIHRoZSBmZW5jZSB3YXMgYWxyZWFkeSBzaWduYWxlZCwgZmFsc2UgaWYgbm90LiBT aW5jZSB0aGlzCiAgKiBmdW5jdGlvbiBkb2Vzbid0IGVuYWJsZSBzaWduYWxpbmcsIGl0IGlzIG5v dCBndWFyYW50ZWVkIHRvIGV2ZXIgcmV0dXJuCi0gKiB0cnVlIGlmIGZlbmNlX2FkZF9jYWxsYmFj aywgZmVuY2Vfd2FpdCBvciBmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nCi0gKiBoYXZlbid0IGJl ZW4gY2FsbGVkIGJlZm9yZS4KKyAqIHRydWUgaWYgZG1hX2ZlbmNlX2FkZF9jYWxsYmFjaywgZG1h X2ZlbmNlX3dhaXQgb3IKKyAqIGRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nIGhhdmVuJ3Qg YmVlbiBjYWxsZWQgYmVmb3JlLgogICoKICAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZmVuY2Ut PmxvY2sgdG8gYmUgaGVsZC4KICAqLwogc3RhdGljIGlubGluZSBib29sCi1mZW5jZV9pc19zaWdu YWxlZF9sb2NrZWQoc3RydWN0IGZlbmNlICpmZW5jZSkKK2RtYV9mZW5jZV9pc19zaWduYWxlZF9s b2NrZWQoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JaWYgKHRlc3RfYml0KEZFTkNFX0ZM QUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNF X0ZMQUdfU0lHTkFMRURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlp ZiAoZmVuY2UtPm9wcy0+c2lnbmFsZWQgJiYgZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpKSB7 Ci0JCWZlbmNlX3NpZ25hbF9sb2NrZWQoZmVuY2UpOworCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tl ZChmZW5jZSk7CiAJCXJldHVybiB0cnVlOwogCX0KIApAQCAtMjk5LDI3ICszMDgsMjcgQEAgZmVu Y2VfaXNfc2lnbmFsZWRfbG9ja2VkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCiB9CiAKIC8qKgotICog ZmVuY2VfaXNfc2lnbmFsZWQgLSBSZXR1cm4gYW4gaW5kaWNhdGlvbiBpZiB0aGUgZmVuY2UgaXMg c2lnbmFsZWQgeWV0LgorICogZG1hX2ZlbmNlX2lzX3NpZ25hbGVkIC0gUmV0dXJuIGFuIGluZGlj YXRpb24gaWYgdGhlIGZlbmNlIGlzIHNpZ25hbGVkIHlldC4KICAqIEBmZW5jZToJW2luXQl0aGUg ZmVuY2UgdG8gY2hlY2sKICAqCiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGZlbmNlIHdhcyBhbHJl YWR5IHNpZ25hbGVkLCBmYWxzZSBpZiBub3QuIFNpbmNlIHRoaXMKICAqIGZ1bmN0aW9uIGRvZXNu J3QgZW5hYmxlIHNpZ25hbGluZywgaXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gZXZlciByZXR1cm4K LSAqIHRydWUgaWYgZmVuY2VfYWRkX2NhbGxiYWNrLCBmZW5jZV93YWl0IG9yIGZlbmNlX2VuYWJs ZV9zd19zaWduYWxpbmcKLSAqIGhhdmVuJ3QgYmVlbiBjYWxsZWQgYmVmb3JlLgorICogdHJ1ZSBp ZiBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrLCBkbWFfZmVuY2Vfd2FpdCBvcgorICogZG1hX2ZlbmNl X2VuYWJsZV9zd19zaWduYWxpbmcgaGF2ZW4ndCBiZWVuIGNhbGxlZCBiZWZvcmUuCiAgKgotICog SXQncyByZWNvbW1lbmRlZCBmb3Igc2Vxbm8gZmVuY2VzIHRvIGNhbGwgZmVuY2Vfc2lnbmFsIHdo ZW4gdGhlCisgKiBJdCdzIHJlY29tbWVuZGVkIGZvciBzZXFubyBmZW5jZXMgdG8gY2FsbCBkbWFf ZmVuY2Vfc2lnbmFsIHdoZW4gdGhlCiAgKiBvcGVyYXRpb24gaXMgY29tcGxldGUsIGl0IG1ha2Vz IGl0IHBvc3NpYmxlIHRvIHByZXZlbnQgaXNzdWVzIGZyb20KICAqIHdyYXBhcm91bmQgYmV0d2Vl biB0aW1lIG9mIGlzc3VlIGFuZCB0aW1lIG9mIHVzZSBieSBjaGVja2luZyB0aGUgcmV0dXJuCiAg KiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBjYWxsaW5nIGhhcmR3YXJlLXNwZWNpZmlj IHdhaXQgaW5zdHJ1Y3Rpb25zLgogICovCiBzdGF0aWMgaW5saW5lIGJvb2wKLWZlbmNlX2lzX3Np Z25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2UpCitkbWFfZmVuY2VfaXNfc2lnbmFsZWQoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCiB7Ci0JaWYgKHRlc3RfYml0KEZFTkNFX0ZMQUdfU0lHTkFMRURf QklULCAmZmVuY2UtPmZsYWdzKSkKKwlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lHTkFM RURfQklULCAmZmVuY2UtPmZsYWdzKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlpZiAoZmVuY2UtPm9w cy0+c2lnbmFsZWQgJiYgZmVuY2UtPm9wcy0+c2lnbmFsZWQoZmVuY2UpKSB7Ci0JCWZlbmNlX3Np Z25hbChmZW5jZSk7CisJCWRtYV9mZW5jZV9zaWduYWwoZmVuY2UpOwogCQlyZXR1cm4gdHJ1ZTsK IAl9CiAKQEAgLTMyNywxNCArMzM2LDE1IEBAIGZlbmNlX2lzX3NpZ25hbGVkKHN0cnVjdCBmZW5j ZSAqZmVuY2UpCiB9CiAKIC8qKgotICogZmVuY2VfaXNfbGF0ZXIgLSByZXR1cm4gaWYgZjEgaXMg Y2hyb25vbG9naWNhbGx5IGxhdGVyIHRoYW4gZjIKKyAqIGRtYV9mZW5jZV9pc19sYXRlciAtIHJl dHVybiBpZiBmMSBpcyBjaHJvbm9sb2dpY2FsbHkgbGF0ZXIgdGhhbiBmMgogICogQGYxOglbaW5d CXRoZSBmaXJzdCBmZW5jZSBmcm9tIHRoZSBzYW1lIGNvbnRleHQKICAqIEBmMjoJW2luXQl0aGUg c2Vjb25kIGZlbmNlIGZyb20gdGhlIHNhbWUgY29udGV4dAogICoKICAqIFJldHVybnMgdHJ1ZSBp ZiBmMSBpcyBjaHJvbm9sb2dpY2FsbHkgbGF0ZXIgdGhhbiBmMi4gQm90aCBmZW5jZXMgbXVzdCBi ZQogICogZnJvbSB0aGUgc2FtZSBjb250ZXh0LCBzaW5jZSBhIHNlcW5vIGlzIG5vdCByZS11c2Vk IGFjcm9zcyBjb250ZXh0cy4KICAqLwotc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2xhdGVy KHN0cnVjdCBmZW5jZSAqZjEsIHN0cnVjdCBmZW5jZSAqZjIpCitzdGF0aWMgaW5saW5lIGJvb2wg ZG1hX2ZlbmNlX2lzX2xhdGVyKHN0cnVjdCBkbWFfZmVuY2UgKmYxLAorCQkJCSAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKmYyKQogewogCWlmIChXQVJOX09OKGYxLT5jb250ZXh0ICE9IGYyLT5jb250 ZXh0KSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzQzLDcgKzM1Myw3IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBmZW5jZV9pc19sYXRlcihzdHJ1Y3QgZmVuY2UgKmYxLCBzdHJ1Y3QgZmVuY2UgKmYyKQog fQogCiAvKioKLSAqIGZlbmNlX2xhdGVyIC0gcmV0dXJuIHRoZSBjaHJvbm9sb2dpY2FsbHkgbGF0 ZXIgZmVuY2UKKyAqIGRtYV9mZW5jZV9sYXRlciAtIHJldHVybiB0aGUgY2hyb25vbG9naWNhbGx5 IGxhdGVyIGZlbmNlCiAgKiBAZjE6CVtpbl0JdGhlIGZpcnN0IGZlbmNlIGZyb20gdGhlIHNhbWUg Y29udGV4dAogICogQGYyOglbaW5dCXRoZSBzZWNvbmQgZmVuY2UgZnJvbSB0aGUgc2FtZSBjb250 ZXh0CiAgKgpAQCAtMzUxLDI4ICszNjEsMzEgQEAgc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lz X2xhdGVyKHN0cnVjdCBmZW5jZSAqZjEsIHN0cnVjdCBmZW5jZSAqZjIpCiAgKiBzaWduYWxlZCBs YXN0LiBCb3RoIGZlbmNlcyBtdXN0IGJlIGZyb20gdGhlIHNhbWUgY29udGV4dCwgc2luY2UgYSBz ZXFubyBpcwogICogbm90IHJlLXVzZWQgYWNyb3NzIGNvbnRleHRzLgogICovCi1zdGF0aWMgaW5s aW5lIHN0cnVjdCBmZW5jZSAqZmVuY2VfbGF0ZXIoc3RydWN0IGZlbmNlICpmMSwgc3RydWN0IGZl bmNlICpmMikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2xhdGVy KHN0cnVjdCBkbWFfZmVuY2UgKmYxLAorCQkJCQkJc3RydWN0IGRtYV9mZW5jZSAqZjIpCiB7CiAJ aWYgKFdBUk5fT04oZjEtPmNvbnRleHQgIT0gZjItPmNvbnRleHQpKQogCQlyZXR1cm4gTlVMTDsK IAogCS8qCi0JICogY2FuJ3QgY2hlY2sganVzdCBGRU5DRV9GTEFHX1NJR05BTEVEX0JJVCBoZXJl LCBpdCBtYXkgbmV2ZXIgaGF2ZSBiZWVuCi0JICogc2V0IGlmIGVuYWJsZV9zaWduYWxpbmcgd2Fz bid0IGNhbGxlZCwgYW5kIGVuYWJsaW5nIHRoYXQgaGVyZSBpcwotCSAqIG92ZXJraWxsLgorCSAq IENhbid0IGNoZWNrIGp1c3QgRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUIGhlcmUsIGl0IG1h eSBuZXZlcgorCSAqIGhhdmUgYmVlbiBzZXQgaWYgZW5hYmxlX3NpZ25hbGluZyB3YXNuJ3QgY2Fs bGVkLCBhbmQgZW5hYmxpbmcgdGhhdAorCSAqIGhlcmUgaXMgb3ZlcmtpbGwuCiAJICovCi0JaWYg KGZlbmNlX2lzX2xhdGVyKGYxLCBmMikpCi0JCXJldHVybiBmZW5jZV9pc19zaWduYWxlZChmMSkg PyBOVUxMIDogZjE7CisJaWYgKGRtYV9mZW5jZV9pc19sYXRlcihmMSwgZjIpKQorCQlyZXR1cm4g ZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGYxKSA/IE5VTEwgOiBmMTsKIAllbHNlCi0JCXJldHVybiBm ZW5jZV9pc19zaWduYWxlZChmMikgPyBOVUxMIDogZjI7CisJCXJldHVybiBkbWFfZmVuY2VfaXNf c2lnbmFsZWQoZjIpID8gTlVMTCA6IGYyOwogfQogCi1zaWduZWQgbG9uZyBmZW5jZV93YWl0X3Rp bWVvdXQoc3RydWN0IGZlbmNlICosIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7Ci1z aWduZWQgbG9uZyBmZW5jZV93YWl0X2FueV90aW1lb3V0KHN0cnVjdCBmZW5jZSAqKmZlbmNlcywg dWludDMyX3QgY291bnQsCitzaWduZWQgbG9uZyBkbWFfZmVuY2Vfd2FpdF90aW1lb3V0KHN0cnVj dCBkbWFfZmVuY2UgKiwKIAkJCQkgICBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwor c2lnbmVkIGxvbmcgZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQoc3RydWN0IGRtYV9mZW5jZSAq KmZlbmNlcywKKwkJCQkgICAgICAgdWludDMyX3QgY291bnQsCisJCQkJICAgICAgIGJvb2wgaW50 ciwgc2lnbmVkIGxvbmcgdGltZW91dCk7CiAKIC8qKgotICogZmVuY2Vfd2FpdCAtIHNsZWVwIHVu dGlsIHRoZSBmZW5jZSBnZXRzIHNpZ25hbGVkCisgKiBkbWFfZmVuY2Vfd2FpdCAtIHNsZWVwIHVu dGlsIHRoZSBmZW5jZSBnZXRzIHNpZ25hbGVkCiAgKiBAZmVuY2U6CVtpbl0JdGhlIGZlbmNlIHRv IHdhaXQgb24KICAqIEBpbnRyOglbaW5dCWlmIHRydWUsIGRvIGFuIGludGVycnVwdGlibGUgd2Fp dAogICoKQEAgLTM4NCw0MSArMzk3LDQxIEBAIHNpZ25lZCBsb25nIGZlbmNlX3dhaXRfYW55X3Rp bWVvdXQoc3RydWN0IGZlbmNlICoqZmVuY2VzLCB1aW50MzJfdCBjb3VudCwKICAqIGRpcmVjdGx5 IG9yIGluZGlyZWN0bHkgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGZlbmNlLCBvdGhlcndpc2Ug dGhlCiAgKiBmZW5jZSBtaWdodCBiZSBmcmVlZCBiZWZvcmUgcmV0dXJuLCByZXN1bHRpbmcgaW4g dW5kZWZpbmVkIGJlaGF2aW9yLgogICovCi1zdGF0aWMgaW5saW5lIHNpZ25lZCBsb25nIGZlbmNl X3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBpbnRyKQorc3RhdGljIGlubGluZSBzaWdu ZWQgbG9uZyBkbWFfZmVuY2Vfd2FpdChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRy KQogewogCXNpZ25lZCBsb25nIHJldDsKIAotCS8qIFNpbmNlIGZlbmNlX3dhaXRfdGltZW91dCBj YW5ub3QgdGltZW91dCB3aXRoCisJLyogU2luY2UgZG1hX2ZlbmNlX3dhaXRfdGltZW91dCBjYW5u b3QgdGltZW91dCB3aXRoCiAJICogTUFYX1NDSEVEVUxFX1RJTUVPVVQsIG9ubHkgdmFsaWQgcmV0 dXJuIHZhbHVlcyBhcmUKIAkgKiAtRVJFU1RBUlRTWVMgYW5kIE1BWF9TQ0hFRFVMRV9USU1FT1VU LgogCSAqLwotCXJldCA9IGZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgaW50ciwgTUFYX1NDSEVE VUxFX1RJTUVPVVQpOworCXJldCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIs IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAogCXJldHVybiByZXQgPCAwID8gcmV0IDogMDsKIH0K IAotdTY0IGZlbmNlX2NvbnRleHRfYWxsb2ModW5zaWduZWQgbnVtKTsKK3U2NCBkbWFfZmVuY2Vf Y29udGV4dF9hbGxvYyh1bnNpZ25lZCBudW0pOwogCi0jZGVmaW5lIEZFTkNFX1RSQUNFKGYsIGZt dCwgYXJncy4uLikgXAorI2RlZmluZSBETUFfRkVOQ0VfVFJBQ0UoZiwgZm10LCBhcmdzLi4uKSBc CiAJZG8gewkJCQkJCQkJXAotCQlzdHJ1Y3QgZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKLQkJaWYg KElTX0VOQUJMRUQoQ09ORklHX0ZFTkNFX1RSQUNFKSkJCQlcCisJCXN0cnVjdCBkbWFfZmVuY2Ug Kl9fZmYgPSAoZik7CQkJCVwKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RNQV9GRU5DRV9UUkFD RSkpCQkJXAogCQkJcHJfaW5mbygiZiAlbGx1IyV1OiAiIGZtdCwJCQlcCiAJCQkJX19mZi0+Y29u dGV4dCwgX19mZi0+c2Vxbm8sICMjYXJncyk7CVwKIAl9IHdoaWxlICgwKQogCi0jZGVmaW5lIEZF TkNFX1dBUk4oZiwgZm10LCBhcmdzLi4uKSBcCisjZGVmaW5lIERNQV9GRU5DRV9XQVJOKGYsIGZt dCwgYXJncy4uLikgXAogCWRvIHsJCQkJCQkJCVwKLQkJc3RydWN0IGZlbmNlICpfX2ZmID0gKGYp OwkJCQlcCisJCXN0cnVjdCBkbWFfZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKIAkJcHJfd2Fybigi ZiAlbGx1IyV1OiAiIGZtdCwgX19mZi0+Y29udGV4dCwgX19mZi0+c2Vxbm8sCVwKIAkJCSAjI2Fy Z3MpOwkJCQkJXAogCX0gd2hpbGUgKDApCiAKLSNkZWZpbmUgRkVOQ0VfRVJSKGYsIGZtdCwgYXJn cy4uLikgXAorI2RlZmluZSBETUFfRkVOQ0VfRVJSKGYsIGZtdCwgYXJncy4uLikgXAogCWRvIHsJ CQkJCQkJCVwKLQkJc3RydWN0IGZlbmNlICpfX2ZmID0gKGYpOwkJCQlcCisJCXN0cnVjdCBkbWFf ZmVuY2UgKl9fZmYgPSAoZik7CQkJCVwKIAkJcHJfZXJyKCJmICVsbHUjJXU6ICIgZm10LCBfX2Zm LT5jb250ZXh0LCBfX2ZmLT5zZXFubywJXAogCQkJIyNhcmdzKTsJCQkJCVwKIAl9IHdoaWxlICgw KQogCi0jZW5kaWYgLyogX19MSU5VWF9GRU5DRV9IICovCisjZW5kaWYgLyogX19MSU5VWF9ETUFf RkVOQ0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mZW5jZS1hcnJheS5oIGIvaW5j bHVkZS9saW51eC9mZW5jZS1hcnJheS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5 ZWEyYmRlMTBhYzEuLjAwMDAwMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZlbmNlLWFycmF5 LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogZmVuY2UtYXJyYXk6IGFn Z3JlZ2F0ZXMgZmVuY2UgdG8gYmUgd2FpdGVkIHRvZ2V0aGVyCi0gKgotICogQ29weXJpZ2h0IChD KSAyMDE2IENvbGxhYm9yYSBMdGQKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuCi0gKiBBdXRob3JzOgotICoJR3VzdGF2byBQYWRvdmFuIDxndXN0YXZv QHBhZG92YW4ub3JnPgotICoJQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQu Y29tPgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Ci0gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkKLSAqIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCi0g KiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKLSAqIG1vcmUgZGV0YWlscy4KLSAq LwotCi0jaWZuZGVmIF9fTElOVVhfRkVOQ0VfQVJSQVlfSAotI2RlZmluZSBfX0xJTlVYX0ZFTkNF X0FSUkFZX0gKLQotI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+Ci0KLS8qKgotICogc3RydWN0IGZl bmNlX2FycmF5X2NiIC0gY2FsbGJhY2sgaGVscGVyIGZvciBmZW5jZSBhcnJheQotICogQGNiOiBm ZW5jZSBjYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHNpZ25hbGluZwotICogQGFycmF5OiByZWZlcmVu Y2UgdG8gdGhlIHBhcmVudCBmZW5jZSBhcnJheSBvYmplY3QKLSAqLwotc3RydWN0IGZlbmNlX2Fy cmF5X2NiIHsKLQlzdHJ1Y3QgZmVuY2VfY2IgY2I7Ci0Jc3RydWN0IGZlbmNlX2FycmF5ICphcnJh eTsKLX07Ci0KLS8qKgotICogc3RydWN0IGZlbmNlX2FycmF5IC0gZmVuY2UgdG8gcmVwcmVzZW50 IGFuIGFycmF5IG9mIGZlbmNlcwotICogQGJhc2U6IGZlbmNlIGJhc2UgY2xhc3MKLSAqIEBsb2Nr OiBzcGlubG9jayBmb3IgZmVuY2UgaGFuZGxpbmcKLSAqIEBudW1fZmVuY2VzOiBudW1iZXIgb2Yg ZmVuY2VzIGluIHRoZSBhcnJheQotICogQG51bV9wZW5kaW5nOiBmZW5jZXMgaW4gdGhlIGFycmF5 IHN0aWxsIHBlbmRpbmcKLSAqIEBmZW5jZXM6IGFycmF5IG9mIHRoZSBmZW5jZXMKLSAqLwotc3Ry dWN0IGZlbmNlX2FycmF5IHsKLQlzdHJ1Y3QgZmVuY2UgYmFzZTsKLQotCXNwaW5sb2NrX3QgbG9j azsKLQl1bnNpZ25lZCBudW1fZmVuY2VzOwotCWF0b21pY190IG51bV9wZW5kaW5nOwotCXN0cnVj dCBmZW5jZSAqKmZlbmNlczsKLX07Ci0KLWV4dGVybiBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGZl bmNlX2FycmF5X29wczsKLQotLyoqCi0gKiBmZW5jZV9pc19hcnJheSAtIGNoZWNrIGlmIGEgZmVu Y2UgaXMgZnJvbSB0aGUgYXJyYXkgc3Vic2NsYXNzCi0gKiBAZmVuY2U6IGZlbmNlIHRvIHRlc3QK LSAqCi0gKiBSZXR1cm4gdHJ1ZSBpZiBpdCBpcyBhIGZlbmNlX2FycmF5IGFuZCBmYWxzZSBvdGhl cndpc2UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9pc19hcnJheShzdHJ1Y3QgZmVu Y2UgKmZlbmNlKQotewotCXJldHVybiBmZW5jZS0+b3BzID09ICZmZW5jZV9hcnJheV9vcHM7Ci19 Ci0KLS8qKgotICogdG9fZmVuY2VfYXJyYXkgLSBjYXN0IGEgZmVuY2UgdG8gYSBmZW5jZV9hcnJh eQotICogQGZlbmNlOiBmZW5jZSB0byBjYXN0IHRvIGEgZmVuY2VfYXJyYXkKLSAqCi0gKiBSZXR1 cm5zIE5VTEwgaWYgdGhlIGZlbmNlIGlzIG5vdCBhIGZlbmNlX2FycmF5LAotICogb3IgdGhlIGZl bmNlX2FycmF5IG90aGVyd2lzZS4KLSAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgZmVuY2VfYXJy YXkgKnRvX2ZlbmNlX2FycmF5KHN0cnVjdCBmZW5jZSAqZmVuY2UpCi17Ci0JaWYgKGZlbmNlLT5v cHMgIT0gJmZlbmNlX2FycmF5X29wcykKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gY29udGFp bmVyX29mKGZlbmNlLCBzdHJ1Y3QgZmVuY2VfYXJyYXksIGJhc2UpOwotfQotCi1zdHJ1Y3QgZmVu Y2VfYXJyYXkgKmZlbmNlX2FycmF5X2NyZWF0ZShpbnQgbnVtX2ZlbmNlcywgc3RydWN0IGZlbmNl ICoqZmVuY2VzLAotCQkJCSAgICAgICB1NjQgY29udGV4dCwgdW5zaWduZWQgc2Vxbm8sCi0JCQkJ ICAgICAgIGJvb2wgc2lnbmFsX29uX2FueSk7Ci0KLSNlbmRpZiAvKiBfX0xJTlVYX0ZFTkNFX0FS UkFZX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaCBiL2luY2x1 ZGUvbGludXgvcmVzZXJ2YXRpb24uaAppbmRleCBiMGYzMDVlNzdiN2YuLjJlMzEzY2NhMDhmMCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCisrKyBiL2luY2x1ZGUvbGlu dXgvcmVzZXJ2YXRpb24uaApAQCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSBfTElOVVhfUkVTRVJW QVRJT05fSAogCiAjaW5jbHVkZSA8bGludXgvd3dfbXV0ZXguaD4KLSNpbmNsdWRlIDxsaW51eC9m ZW5jZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRh dGUuaD4KQEAgLTU5LDcgKzU5LDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgcmVzZXJ2YXRpb25fc2Vx Y291bnRfc3RyaW5nW107CiBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgewogCXN0cnVj dCByY3VfaGVhZCByY3U7CiAJdTMyIHNoYXJlZF9jb3VudCwgc2hhcmVkX21heDsKLQlzdHJ1Y3Qg ZmVuY2UgX19yY3UgKnNoYXJlZFtdOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKnNoYXJlZFtd OwogfTsKIAogLyoqCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Qg ewogCXN0cnVjdCB3d19tdXRleCBsb2NrOwogCXNlcWNvdW50X3Qgc2VxOwogCi0Jc3RydWN0IGZl bmNlIF9fcmN1ICpmZW5jZV9leGNsOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4 Y2w7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKIAlzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKnN0YWdlZDsKIH07CkBAIC0xMDcsNyArMTA3LDcg QEAgcmVzZXJ2YXRpb25fb2JqZWN0X2Zpbmkoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2Jq KQogewogCWludCBpOwogCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKLQlz dHJ1Y3QgZmVuY2UgKmV4Y2w7CisJc3RydWN0IGRtYV9mZW5jZSAqZXhjbDsKIAogCS8qCiAJICog VGhpcyBvYmplY3Qgc2hvdWxkIGJlIGRlYWQgYW5kIGFsbCByZWZlcmVuY2VzIG11c3QgaGF2ZQpA QCAtMTE1LDEyICsxMTUsMTIgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2Zpbmkoc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdCAqb2JqKQogCSAqLwogCWV4Y2wgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVj dGVkKG9iai0+ZmVuY2VfZXhjbCwgMSk7CiAJaWYgKGV4Y2wpCi0JCWZlbmNlX3B1dChleGNsKTsK KwkJZG1hX2ZlbmNlX3B1dChleGNsKTsKIAogCWZvYmogPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVj dGVkKG9iai0+ZmVuY2UsIDEpOwogCWlmIChmb2JqKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBmb2Jq LT5zaGFyZWRfY291bnQ7ICsraSkKLQkJCWZlbmNlX3B1dChyY3VfZGVyZWZlcmVuY2VfcHJvdGVj dGVkKGZvYmotPnNoYXJlZFtpXSwgMSkpOworCQkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVu Y2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwgMSkpOwogCiAJCWtmcmVlKGZvYmopOwogCX0K QEAgLTE1NSw3ICsxNTUsNyBAQCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qoc3RydWN0IHJl c2VydmF0aW9uX29iamVjdCAqb2JqKQogICogUkVUVVJOUwogICogVGhlIGV4Y2x1c2l2ZSBmZW5j ZSBvciBOVUxMCiAgKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGZlbmNlICoKK3N0YXRpYyBpbmxp bmUgc3RydWN0IGRtYV9mZW5jZSAqCiByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2woc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQogewogCXJldHVybiByY3VfZGVyZWZlcmVuY2VfcHJv dGVjdGVkKG9iai0+ZmVuY2VfZXhjbCwKQEAgLTE3MywxMCArMTczLDEwIEBAIHJlc2VydmF0aW9u X29iamVjdF9nZXRfZXhjbChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAgKiBSRVRV Uk5TCiAgKiBUaGUgZXhjbHVzaXZlIGZlbmNlIG9yIE5VTEwgaWYgbm9uZQogICovCi1zdGF0aWMg aW5saW5lIHN0cnVjdCBmZW5jZSAqCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVuY2UgKgog cmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpvYmopCiB7Ci0Jc3RydWN0IGZlbmNlICpmZW5jZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKIAl1bnNpZ25lZCBzZXE7CiByZXRyeToKIAlzZXEgPSByZWFkX3NlcWNvdW50X2JlZ2luKCZv YmotPnNlcSk7CkBAIC0xODYsMjIgKzE4NiwyMiBAQCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4 Y2xfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKIAkJcmN1X3JlYWRfdW5sb2Nr KCk7CiAJCWdvdG8gcmV0cnk7CiAJfQotCWZlbmNlID0gZmVuY2VfZ2V0KGZlbmNlKTsKKwlmZW5j ZSA9IGRtYV9mZW5jZV9nZXQoZmVuY2UpOwogCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiBm ZW5jZTsKIH0KIAogaW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopOwogdm9pZCByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3No YXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCi0JCQkJCSBzdHJ1Y3Qg ZmVuY2UgKmZlbmNlKTsKKwkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKIAogdm9pZCBy ZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAotCQkJCSAgICAgICBzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKKwkJCQkgICAgICAgc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2UpOwogCiBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9mZW5j ZXNfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkgICAgICBzdHJ1Y3Qg ZmVuY2UgKipwZmVuY2VfZXhjbCwKKwkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNl X2V4Y2wsCiAJCQkJICAgICAgdW5zaWduZWQgKnBzaGFyZWRfY291bnQsCi0JCQkJICAgICAgc3Ry dWN0IGZlbmNlICoqKnBzaGFyZWQpOworCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNo YXJlZCk7CiAKIGxvbmcgcmVzZXJ2YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJCQkgYm9vbCB3YWl0X2FsbCwgYm9vbCBpbnRy LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZXFuby1mZW5jZS5oIGIvaW5jbHVkZS9saW51 eC9zZXFuby1mZW5jZS5oCmluZGV4IGExYmE2YTVjY2RkNi4uYzU4YzUzNWQxMmE4IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L3NlcW5vLWZlbmNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZXFu by1mZW5jZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIF9fTElOVVhfU0VRTk9fRkVOQ0Vf SAogI2RlZmluZSBfX0xJTlVYX1NFUU5PX0ZFTkNFX0gKIAotI2luY2x1ZGUgPGxpbnV4L2ZlbmNl Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1 Zi5oPgogCiBlbnVtIHNlcW5vX2ZlbmNlX2NvbmRpdGlvbiB7CkBAIC0yOSwxNSArMjksMTUgQEAg ZW51bSBzZXFub19mZW5jZV9jb25kaXRpb24gewogfTsKIAogc3RydWN0IHNlcW5vX2ZlbmNlIHsK LQlzdHJ1Y3QgZmVuY2UgYmFzZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlIGJhc2U7CiAKLQljb25zdCBz dHJ1Y3QgZmVuY2Vfb3BzICpvcHM7CisJY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wczsK IAlzdHJ1Y3QgZG1hX2J1ZiAqc3luY19idWY7CiAJdWludDMyX3Qgc2Vxbm9fb2ZzOwogCWVudW0g c2Vxbm9fZmVuY2VfY29uZGl0aW9uIGNvbmRpdGlvbjsKIH07CiAKLWV4dGVybiBjb25zdCBzdHJ1 Y3QgZmVuY2Vfb3BzIHNlcW5vX2ZlbmNlX29wczsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZG1hX2Zl bmNlX29wcyBzZXFub19mZW5jZV9vcHM7CiAKIC8qKgogICogdG9fc2Vxbm9fZmVuY2UgLSBjYXN0 IGEgZmVuY2UgdG8gYSBzZXFub19mZW5jZQpAQCAtNDcsNyArNDcsNyBAQCBleHRlcm4gY29uc3Qg c3RydWN0IGZlbmNlX29wcyBzZXFub19mZW5jZV9vcHM7CiAgKiBvciB0aGUgc2Vxbm9fZmVuY2Ug b3RoZXJ3aXNlLgogICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBzZXFub19mZW5jZSAqCi10b19z ZXFub19mZW5jZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKQordG9fc2Vxbm9fZmVuY2Uoc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpCiB7CiAJaWYgKGZlbmNlLT5vcHMgIT0gJnNlcW5vX2ZlbmNlX29wcykK IAkJcmV0dXJuIE5VTEw7CkBAIC04Myw5ICs4Myw5IEBAIHRvX3NlcW5vX2ZlbmNlKHN0cnVjdCBm ZW5jZSAqZmVuY2UpCiAgKiBkbWEtYnVmIGZvciBzeW5jX2J1Ziwgc2luY2UgbWFwcGluZyBvciB1 bm1hcHBpbmcgdGhlIHN5bmNfYnVmIHRvIHRoZQogICogZGV2aWNlJ3Mgdm0gY2FuIGJlIGV4cGVu c2l2ZS4KICAqCi0gKiBJdCBpcyByZWNvbW1lbmRlZCBmb3IgY3JlYXRvcnMgb2Ygc2Vxbm9fZmVu Y2UgdG8gY2FsbCBmZW5jZV9zaWduYWwKKyAqIEl0IGlzIHJlY29tbWVuZGVkIGZvciBjcmVhdG9y cyBvZiBzZXFub19mZW5jZSB0byBjYWxsIGRtYV9mZW5jZV9zaWduYWwoKQogICogYmVmb3JlIGRl c3RydWN0aW9uLiBUaGlzIHdpbGwgcHJldmVudCBwb3NzaWJsZSBpc3N1ZXMgZnJvbSB3cmFwYXJv dW5kIGF0Ci0gKiB0aW1lIG9mIGlzc3VlIHZzIHRpbWUgb2YgY2hlY2ssIHNpbmNlIHVzZXJzIGNh biBjaGVjayBmZW5jZV9pc19zaWduYWxlZAorICogdGltZSBvZiBpc3N1ZSB2cyB0aW1lIG9mIGNo ZWNrLCBzaW5jZSB1c2VycyBjYW4gY2hlY2sgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKCkKICAqIGJl Zm9yZSBzdWJtaXR0aW5nIGluc3RydWN0aW9ucyBmb3IgdGhlIGhhcmR3YXJlIHRvIHdhaXQgb24g dGhlIGZlbmNlLgogICogSG93ZXZlciwgd2hlbiBvcHMuZW5hYmxlX3NpZ25hbGluZyBpcyBub3Qg Y2FsbGVkLCBpdCBkb2Vzbid0IGhhdmUgdG8gYmUKICAqIGRvbmUgYXMgc29vbiBhcyBwb3NzaWJs ZSwganVzdCBiZWZvcmUgdGhlcmUncyBhbnkgcmVhbCBkYW5nZXIgb2Ygc2Vxbm8KQEAgLTk2LDE4 ICs5NiwxOCBAQCBzZXFub19mZW5jZV9pbml0KHN0cnVjdCBzZXFub19mZW5jZSAqZmVuY2UsIHNw aW5sb2NrX3QgKmxvY2ssCiAJCSBzdHJ1Y3QgZG1hX2J1ZiAqc3luY19idWYsICB1aW50MzJfdCBj b250ZXh0LAogCQkgdWludDMyX3Qgc2Vxbm9fb2ZzLCB1aW50MzJfdCBzZXFubywKIAkJIGVudW0g c2Vxbm9fZmVuY2VfY29uZGl0aW9uIGNvbmQsCi0JCSBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzICpv cHMpCisJCSBjb25zdCBzdHJ1Y3QgZG1hX2ZlbmNlX29wcyAqb3BzKQogewogCUJVR19PTighZmVu Y2UgfHwgIXN5bmNfYnVmIHx8ICFvcHMpOwogCUJVR19PTighb3BzLT53YWl0IHx8ICFvcHMtPmVu YWJsZV9zaWduYWxpbmcgfHwKIAkgICAgICAgIW9wcy0+Z2V0X2RyaXZlcl9uYW1lIHx8ICFvcHMt PmdldF90aW1lbGluZV9uYW1lKTsKIAogCS8qCi0JICogb3BzIGlzIHVzZWQgaW4gZmVuY2VfaW5p dCBmb3IgZ2V0X2RyaXZlcl9uYW1lLCBzbyBuZWVkcyB0byBiZQorCSAqIG9wcyBpcyB1c2VkIGlu IGRtYV9mZW5jZV9pbml0IGZvciBnZXRfZHJpdmVyX25hbWUsIHNvIG5lZWRzIHRvIGJlCiAJICog aW5pdGlhbGl6ZWQgZmlyc3QKIAkgKi8KIAlmZW5jZS0+b3BzID0gb3BzOwotCWZlbmNlX2luaXQo JmZlbmNlLT5iYXNlLCAmc2Vxbm9fZmVuY2Vfb3BzLCBsb2NrLCBjb250ZXh0LCBzZXFubyk7CisJ ZG1hX2ZlbmNlX2luaXQoJmZlbmNlLT5iYXNlLCAmc2Vxbm9fZmVuY2Vfb3BzLCBsb2NrLCBjb250 ZXh0LCBzZXFubyk7CiAJZ2V0X2RtYV9idWYoc3luY19idWYpOwogCWZlbmNlLT5zeW5jX2J1ZiA9 IHN5bmNfYnVmOwogCWZlbmNlLT5zZXFub19vZnMgPSBzZXFub19vZnM7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaAppbmRl eCBhYTE3Y2NmYzJmNTcuLjNlM2FiODRmYzRjZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9z eW5jX2ZpbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oCkBAIC0xOCw4ICsxOCw4 IEBACiAjaW5jbHVkZSA8bGludXgva3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAj aW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgotI2lu Y2x1ZGUgPGxpbnV4L2ZlbmNlLWFycmF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+ CisjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLWFycmF5Lmg+CiAKIC8qKgogICogc3RydWN0IHN5 bmNfZmlsZSAtIHN5bmMgZmlsZSB0byBleHBvcnQgdG8gdGhlIHVzZXJzcGFjZQpAQCAtNDEsMTMg KzQxLDEzIEBAIHN0cnVjdCBzeW5jX2ZpbGUgewogCiAJd2FpdF9xdWV1ZV9oZWFkX3QJd3E7CiAK LQlzdHJ1Y3QgZmVuY2UJCSpmZW5jZTsKLQlzdHJ1Y3QgZmVuY2VfY2IgY2I7CisJc3RydWN0IGRt YV9mZW5jZQkqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIH07CiAKLSNkZWZpbmUg UE9MTF9FTkFCTEVEIEZFTkNFX0ZMQUdfVVNFUl9CSVRTCisjZGVmaW5lIFBPTExfRU5BQkxFRCBE TUFfRkVOQ0VfRkxBR19VU0VSX0JJVFMKIAotc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2Ny ZWF0ZShzdHJ1Y3QgZmVuY2UgKmZlbmNlKTsKLXN0cnVjdCBmZW5jZSAqc3luY19maWxlX2dldF9m ZW5jZShpbnQgZmQpOworc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0ZShzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSk7CitzdHJ1Y3QgZG1hX2ZlbmNlICpzeW5jX2ZpbGVfZ2V0X2ZlbmNl KGludCBmZCk7CiAKICNlbmRpZiAvKiBfTElOVVhfU1lOQ19IICovCmRpZmYgLS1naXQgYS9pbmNs dWRlL3RyYWNlL2V2ZW50cy9mZW5jZS5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNl LmgKc2ltaWxhcml0eSBpbmRleCA3MiUKcmVuYW1lIGZyb20gaW5jbHVkZS90cmFjZS9ldmVudHMv ZmVuY2UuaApyZW5hbWUgdG8gaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmgKaW5kZXgg ZDZkZmEwNWJhMzIyLi4xMTU3Y2I0YzNjNmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdHJhY2UvZXZl bnRzL2ZlbmNlLmgKKysrIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmgKQEAgLTEs MTcgKzEsMTcgQEAKICN1bmRlZiBUUkFDRV9TWVNURU0KLSNkZWZpbmUgVFJBQ0VfU1lTVEVNIGZl bmNlCisjZGVmaW5lIFRSQUNFX1NZU1RFTSBkbWFfZmVuY2UKIAogI2lmICFkZWZpbmVkKF9UUkFD RV9GRU5DRV9IKSB8fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9SRUFEKQotI2RlZmluZSBf VFJBQ0VfRkVOQ0VfSAorI2RlZmluZSBfVFJBQ0VfRE1BX0ZFTkNFX0gKIAogI2luY2x1ZGUgPGxp bnV4L3RyYWNlcG9pbnQuaD4KIAotc3RydWN0IGZlbmNlOworc3RydWN0IGRtYV9mZW5jZTsKIAot VFJBQ0VfRVZFTlQoZmVuY2VfYW5ub3RhdGVfd2FpdF9vbiwKK1RSQUNFX0VWRU5UKGRtYV9mZW5j ZV9hbm5vdGF0ZV93YWl0X29uLAogCiAJLyogZmVuY2U6IHRoZSBmZW5jZSB3YWl0aW5nIG9uIGYx LCBmMTogdGhlIGZlbmNlIHRvIGJlIHdhaXRlZCBvbi4gKi8KLQlUUF9QUk9UTyhzdHJ1Y3QgZmVu Y2UgKmZlbmNlLCBzdHJ1Y3QgZmVuY2UgKmYxKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSwgc3RydWN0IGRtYV9mZW5jZSAqZjEpLAogCiAJVFBfQVJHUyhmZW5jZSwgZjEpLAog CkBAIC00OCw5ICs0OCw5IEBAIFRSQUNFX0VWRU5UKGZlbmNlX2Fubm90YXRlX3dhaXRfb24sCiAJ CSAgX19lbnRyeS0+d2FpdGluZ19jb250ZXh0LCBfX2VudHJ5LT53YWl0aW5nX3NlcW5vKQogKTsK IAotREVDTEFSRV9FVkVOVF9DTEFTUyhmZW5jZSwKK0RFQ0xBUkVfRVZFTlRfQ0xBU1MoZG1hX2Zl bmNlLAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJPVE8oc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSksCiAKQEAgLTczLDU2ICs3Myw1 NiBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKGZlbmNlLAogCQkgIF9fZW50cnktPnNlcW5vKQogKTsK IAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9lbWl0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5j ZSwgZG1hX2ZlbmNlX2VtaXQsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlU UF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsK IAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9pbml0LAorREVGSU5FX0VWRU5UKGRtYV9mZW5j ZSwgZG1hX2ZlbmNlX2luaXQsCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlU UF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNlKQogKTsK IAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9kZXN0cm95LAorREVGSU5FX0VWRU5UKGRtYV9m ZW5jZSwgZG1hX2ZlbmNlX2Rlc3Ryb3ksCiAKLQlUUF9QUk9UTyhzdHJ1Y3QgZmVuY2UgKmZlbmNl KSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksCiAKIAlUUF9BUkdTKGZlbmNl KQogKTsKIAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9lbmFibGVfc2lnbmFsLAorREVGSU5F X0VWRU5UKGRtYV9mZW5jZSwgZG1hX2ZlbmNlX2VuYWJsZV9zaWduYWwsCiAKLQlUUF9QUk9UTyhz dHJ1Y3QgZmVuY2UgKmZlbmNlKSwKKwlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSks CiAKIAlUUF9BUkdTKGZlbmNlKQogKTsKIAotREVGSU5FX0VWRU5UKGZlbmNlLCBmZW5jZV9zaWdu YWxlZCwKK0RFRklORV9FVkVOVChkbWFfZmVuY2UsIGRtYV9mZW5jZV9zaWduYWxlZCwKIAotCVRQ X1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpCiApOwogCi1ERUZJTkVfRVZFTlQoZmVuY2UsIGZl bmNlX3dhaXRfc3RhcnQsCitERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2Vfd2FpdF9z dGFydCwKIAotCVRQX1BST1RPKHN0cnVjdCBmZW5jZSAqZmVuY2UpLAorCVRQX1BST1RPKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlKSwKIAogCVRQX0FSR1MoZmVuY2UpCiApOwogCi1ERUZJTkVfRVZF TlQoZmVuY2UsIGZlbmNlX3dhaXRfZW5kLAorREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1hX2Zl bmNlX3dhaXRfZW5kLAogCi0JVFBfUFJPVE8oc3RydWN0IGZlbmNlICpmZW5jZSksCisJVFBfUFJP VE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpLAogCiAJVFBfQVJHUyhmZW5jZSkKICk7CiAKLSNl bmRpZiAvKiAgX1RSQUNFX0ZFTkNFX0ggKi8KKyNlbmRpZiAvKiAgX1RSQUNFX0RNQV9GRU5DRV9I ICovCiAKIC8qIFRoaXMgcGFydCBtdXN0IGJlIG91dHNpZGUgcHJvdGVjdGlvbiAqLwogI2luY2x1 ZGUgPHRyYWNlL2RlZmluZV90cmFjZS5oPgotLSAKMi4xMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK