Date: Wed, 15 Apr 2009 21:06:13 +0300 From: Andriy Gapon <avg@icyb.net.ua> To: freebsd-multimedia@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>, Rui Paulo <rpaulo@FreeBSD.org>, "M. Warner Losh" <imp@bsdimp.com> Subject: strict signatures for kobj methods in sound subsystem Message-ID: <49E62215.4010309@icyb.net.ua>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------060901080909010407040201 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Please review the attached, largely mechanical, patch for sound subsystem. This patch is supposed to make all functions that implement kobj methods have strictly the same signatures as defined by the interfaces. The only non-mechanical change is in sys/dev/sound/pcm/channel_if.m: usage of setformat method in channel.c shows that this method is supposed to return error number and so int is more appropriate return type than u_int32_t. E.g.: r = CHANNEL_SETFORMAT(c->methods, c->devinfo, sndbuf_getfmt(b)); if (r == 0) r = chn_tryspeed(c, c->speed); } return r; } else return EINVAL; -- Andriy Gapon --------------060901080909010407040201 Content-Type: text/plain; name="sound_kobj.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sound_kobj.diff" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvaXNhL2FkMTgxNi5jIGIvc3lzL2Rldi9zb3Vu ZC9pc2EvYWQxODE2LmMKaW5kZXggNGM1ZWNhYi4uNzIzNzc4NCAxMDA2NDQKLS0tIGEvc3lz L2Rldi9zb3VuZC9pc2EvYWQxODE2LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9pc2EvYWQxODE2 LmMKQEAgLTI2OSw3ICsyNjksNyBAQCBhZDE4MTZtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIg Km0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAgICAg CXJldHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dV9pbnQzMl90CiBhZDE4MTZtaXhfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVf aW50MzJfdCBzcmMpCiB7CiAJc3RydWN0IGFkMTgxNl9pbmZvICphZDE4MTYgPSBtaXhfZ2V0 ZGV2aW5mbyhtKTsKQEAgLTM4Miw3ICszODIsNyBAQCBhZDE4MTZjaGFuX3NldGZvcm1hdChr b2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogI2VuZGlmCiB9CiAK LXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGFkMTgxNmNoYW5fc2V0c3BlZWQoa29i al90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBhZDE4 MTZfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zOTUsNyArMzk1LDcgQEAgYWQxODE2Y2hhbl9z ZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAgICAg CXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogYWQx ODE2Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90 IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgYWQxODE2X2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt NDU2LDcgKzQ1Niw3IEBAIGFkMTgxNmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpk YXRhLCBpbnQgZ28pCiAgICAgCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dV9pbnQzMl90CiBhZDE4MTZjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQog ewogCXN0cnVjdCBhZDE4MTZfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMv ZGV2L3NvdW5kL2lzYS9lc3MuYyBiL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCmluZGV4IDRl NTk3NzcuLjk4ZTFhYzcgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCisr KyBiL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCkBAIC01ODMsNyArNTgzLDcgQEAgZXNzY2hh bl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZXNzY2hh bl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7 CiAJc3RydWN0IGVzc19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTU5Nyw3ICs1OTcsNyBAQCBl c3NjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVl ZCkKIAlyZXR1cm4gY2gtPnNwZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf dAogZXNzY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz Ml90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgZXNzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt NjMwLDcgKzYzMCw3IEBAIGVzc2NoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRh LCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMy X3QKIGVzc2NoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0 IGVzc19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTc0MSw3ICs3NDEsNyBAQCBlc3NtaXhfc2V0 KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5z aWduZWQgcmlnaHQpCiAgICAgCXJldHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1z dGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3NtaXhfc2V0cmVjc3JjKHN0cnVjdCBz bmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAgICAgCXN0cnVjdCBlc3NfaW5mbyAq c2MgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvaXNh L21zcy5jIGIvc3lzL2Rldi9zb3VuZC9pc2EvbXNzLmMKaW5kZXggNDExMjk2Yi4uODZjYjgw MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9pc2EvbXNzLmMKKysrIGIvc3lzL2Rldi9z b3VuZC9pc2EvbXNzLmMKQEAgLTUyMCw3ICs1MjAsNyBAQCBtc3NtaXhfc2V0KHN0cnVjdCBz bmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmln aHQpCiAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwgOCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0 YXRpYyB1X2ludDMyX3QKIG1zc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwg dV9pbnQzMl90IHNyYykKIHsKIAlzdHJ1Y3QgbXNzX2luZm8gKm1zcyA9IG1peF9nZXRkZXZp bmZvKG0pOwpAQCAtNjA0LDcgKzYwNCw3IEBAIHltbWl4X3NldChzdHJ1Y3Qgc25kX21peGVy ICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJl dHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9p bnQzMl90CiB5bW1peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90 IHNyYykKIHsKIAlzdHJ1Y3QgbXNzX2luZm8gKm1zcyA9IG1peF9nZXRkZXZpbmZvKG0pOwpA QCAtMTE3MCw3ICsxMTcwLDcgQEAgbXNzY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9p ZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dAorc3RhdGljIHVfaW50MzJfdAogbXNzY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lk ICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IG1zc19jaGluZm8gKmNoID0g ZGF0YTsKQEAgLTExODQsNyArMTE4NCw3IEBAIG1zc2NoYW5fc2V0c3BlZWQoa29ial90IG9i aiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiByOwogfQogCi1zdGF0 aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtc3NjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qg b2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewogCXN0cnVjdCBtc3Nf Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xMjExLDcgKzEyMTEsNyBAQCBtc3NjaGFuX3RyaWdn ZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtc3NjaGFuX2dldHB0cihrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBtc3NfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYg LS1naXQgYS9zeXMvZGV2L3NvdW5kL2lzYS9zYjE2LmMgYi9zeXMvZGV2L3NvdW5kL2lzYS9z YjE2LmMKaW5kZXggZWIzNzMzNy4uZTU3Y2U2ZCAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3Vu ZC9pc2Evc2IxNi5jCisrKyBiL3N5cy9kZXYvc291bmQvaXNhL3NiMTYuYwpAQCAtMzY2LDcg KzM2Niw3IEBAIHNiMTZtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRl diwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAgICAgCXJldHVybiBsZWZ0IHwg KHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzYjE2 bWl4X3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewog ICAgIAlzdHJ1Y3Qgc2JfaW5mbyAqc2IgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKQEAgLTcwMCw3 ICs3MDAsNyBAQCBzYjE2Y2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg dV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj IHVfaW50MzJfdAogc2IxNmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg dV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsKQEAg LTcwOSw3ICs3MDksNyBAQCBzYjE2Y2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpk YXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIHNwZWVkOwogfQogCi1zdGF0aWMgaW50 CitzdGF0aWMgdV9pbnQzMl90CiBzYjE2Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwg dm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2JfY2hpbmZv ICpjaCA9IGRhdGE7CkBAIC03MzcsNyArNzM3LDcgQEAgc2IxNmNoYW5fdHJpZ2dlcihrb2Jq X3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQKK3N0YXRpYyB1X2ludDMyX3QKIHNiMTZjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lk ICpkYXRhKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBh L3N5cy9kZXYvc291bmQvaXNhL3NiOC5jIGIvc3lzL2Rldi9zb3VuZC9pc2Evc2I4LmMKaW5k ZXggM2IwZjI5NS4uNzM0N2M2MyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9pc2Evc2I4 LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9pc2Evc2I4LmMKQEAgLTM3Miw3ICszNzIsNyBAQCBz YnByb21peF9zZXQoc3RydWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25l ZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwg OCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHNicHJvbWl4X3NldHJl Y3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewogICAgIAlzdHJ1 Y3Qgc2JfaW5mbyAqc2IgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKQEAgLTQ1Myw3ICs0NTMsNyBA QCBzYm1peF9zZXQoc3RydWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25l ZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAobGVmdCA8PCA4 KTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogc2JtaXhfc2V0cmVjc3Jj KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJcmV0dXJuIDA7CkBA IC02MTQsNyArNjE0LDcgQEAgc2JjaGFuX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpk YXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50Citz dGF0aWMgdV9pbnQzMl90CiBzYmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsK QEAgLTYyMyw3ICs2MjMsNyBAQCBzYmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBzYl9zcGVlZChjaCk7CiB9CiAKLXN0 YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHNiY2hhbl9zZXRibG9ja3NpemUoa29ial90 IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2Jf Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC02NDgsNyArNjQ4LDcgQEAgc2JjaGFuX3RyaWdnZXIo a29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzYmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZv aWQgKmRhdGEpCiB7CiAJc3RydWN0IHNiX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0 IGEvc3lzL2Rldi9zb3VuZC9tYWNpby9hb2EuYyBiL3N5cy9kZXYvc291bmQvbWFjaW8vYW9h LmMKaW5kZXggNTRlZmU0Zi4uNjFhM2Q3MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9t YWNpby9hb2EuYworKysgYi9zeXMvZGV2L3NvdW5kL21hY2lvL2FvYS5jCkBAIC0xMzgsNyAr MTM4LDcgQEAgYW9hX2RtYV9kZWxldGUoc3RydWN0IGFvYV9kbWEgKmRtYSkKIAlmcmVlKGRt YSwgTV9ERVZCVUYpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhb2Ff Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJs b2Nrc3opCiB7CiAJc3RydWN0IGFvYV9kbWEgCQkqZG1hID0gZGF0YTsKQEAgLTE5Miw3ICsx OTIsNyBAQCBhb2FfY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p bnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dV9pbnQzMl90CiBhb2FfY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1 X2ludDMyX3Qgc3BlZWQpCiB7CiAJRFBSSU5URigoImFvYV9jaGFuX3NldHNwZWVkOiBzcGVl ZCA9ICV1XG4iLCBzcGVlZCkpOwpAQCAtMjAwLDcgKzIwMCw3IEBAIGFvYV9jaGFuX3NldHNw ZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4g KDQ0MTAwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogYW9hX2NoYW5f Z2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGFvYV9kbWEgCSAq ZG1hID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvbWFjaW8vZGF2YnVzLmMg Yi9zeXMvZGV2L3NvdW5kL21hY2lvL2RhdmJ1cy5jCmluZGV4IDE1OTA5ZjguLjFhZmI3ZWUg MTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWFjaW8vZGF2YnVzLmMKKysrIGIvc3lzL2Rl di9zb3VuZC9tYWNpby9kYXZidXMuYwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lk CWJ1cmd1bmR5X3NldF9vdXRwdXRzKHN0cnVjdCBkYXZidXNfc29mdGMgKmQsIHVfaW50IG1h c2spOwogc3RhdGljIHVfaW50CWJ1cmd1bmR5X3JlYWRfc3RhdHVzKHN0cnVjdCBkYXZidXNf c29mdGMgKmQsIHVfaW50IHN0YXR1cyk7CiBzdGF0aWMgaW50CWJ1cmd1bmR5X3NldChzdHJ1 Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsCiAJCSAgICB1 bnNpZ25lZCByaWdodCk7Ci1zdGF0aWMgaW50CWJ1cmd1bmR5X3NldHJlY3NyYyhzdHJ1Y3Qg c25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKTsKK3N0YXRpYyB1X2ludDMyX3QJYnVyZ3Vu ZHlfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOwogCiBz dGF0aWMga29ial9tZXRob2RfdCBidXJndW5keV9taXhlcl9tZXRob2RzW10gPSB7CiAJS09C Sk1FVEhPRChtaXhlcl9pbml0LCAJCWJ1cmd1bmR5X2luaXQpLApAQCAtMjkzLDcgKzI5Myw3 IEBAIGJ1cmd1bmR5X3NldChzdHJ1Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVu c2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRp YyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGJ1cmd1bmR5X3NldHJlY3NyYyhzdHJ1Y3Qgc25k X21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewogCXJldHVybiAoMCk7CkBAIC0zMTEsNyAr MzExLDcgQEAgc3RhdGljIHZvaWQJc2NyZWFtZXJfc2V0X291dHB1dHMoc3RydWN0IGRhdmJ1 c19zb2Z0YyAqZCwgdV9pbnQgbWFzayk7CiBzdGF0aWMgdV9pbnQJc2NyZWFtZXJfcmVhZF9z dGF0dXMoc3RydWN0IGRhdmJ1c19zb2Z0YyAqZCwgdV9pbnQgc3RhdHVzKTsKIHN0YXRpYyBp bnQJc2NyZWFtZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5z aWduZWQgbGVmdCwKIAkJICAgIHVuc2lnbmVkIHJpZ2h0KTsKLXN0YXRpYyBpbnQJc2NyZWFt ZXJfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOworc3Rh dGljIHVfaW50MzJfdCBzY3JlYW1lcl9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwg dV9pbnQzMl90IHNyYyk7CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IHNjcmVhbWVyX21peGVy X21ldGhvZHNbXSA9IHsKIAlLT0JKTUVUSE9EKG1peGVyX2luaXQsIAkJc2NyZWFtZXJfaW5p dCksCkBAIC00NzksNyArNDc5LDcgQEAgc2NyZWFtZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIg Km0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0 dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogc2NyZWFtZXJf c2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJcmV0 dXJuICgwKTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvbWFjaW8vc25hcHBlci5jIGIv c3lzL2Rldi9zb3VuZC9tYWNpby9zbmFwcGVyLmMKaW5kZXggOGFjY2ExMC4uZjkwNmIxOCAx MDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9tYWNpby9zbmFwcGVyLmMKKysrIGIvc3lzL2Rl di9zb3VuZC9tYWNpby9zbmFwcGVyLmMKQEAgLTkwLDExICs5MCwxMSBAQCBzdHJ1Y3Qgc25h cHBlcl9zb2Z0Ywogc3RhdGljIGludAlzbmFwcGVyX3Byb2JlKGRldmljZV90KTsKIHN0YXRp YyBpbnQgCXNuYXBwZXJfYXR0YWNoKGRldmljZV90KTsKIHN0YXRpYyBpbnQJc25hcHBlcl9p bml0KHN0cnVjdCBzbmRfbWl4ZXIgKm0pOwotc3RhdGljIHZvaWQJc25hcHBlcl91bmluaXQo c3RydWN0IHNuZF9taXhlciAqbSk7CitzdGF0aWMgaW50CXNuYXBwZXJfdW5pbml0KHN0cnVj dCBzbmRfbWl4ZXIgKm0pOwogc3RhdGljIGludAlzbmFwcGVyX3JlaW5pdChzdHJ1Y3Qgc25k X21peGVyICptKTsKIHN0YXRpYyBpbnQJc25hcHBlcl9zZXQoc3RydWN0IHNuZF9taXhlciAq bSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LAogCQkgICAgdW5zaWduZWQgcmlnaHQp Owotc3RhdGljIGludAlzbmFwcGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1 X2ludDMyX3Qgc3JjKTsKK3N0YXRpYyB1X2ludDMyX3QJc25hcHBlcl9zZXRyZWNzcmMoc3Ry dWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYyk7CiAKIHN0YXRpYyBkZXZpY2VfbWV0 aG9kX3Qgc25hcHBlcl9tZXRob2RzW10gPSB7CiAJLyogRGV2aWNlIGludGVyZmFjZS4gKi8K QEAgLTQxNywxMCArNDE3LDEwIEBAIHNuYXBwZXJfaW5pdChzdHJ1Y3Qgc25kX21peGVyICpt KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW50CiBzbmFwcGVy X3VuaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKQogewotCXJldHVybjsKKwlyZXR1cm4gKDAp OwogfQogCiBzdGF0aWMgaW50CkBAIC00NzgsNyArNDc4LDcgQEAgc25hcHBlcl9zZXQoc3Ry dWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25l ZCByaWdodCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQz Ml90CiBzbmFwcGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qg c3JjKQogewogCXJldHVybiAoMCk7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL21hY2lv L3R1bWJsZXIuYyBiL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5jCmluZGV4IDMwMDdl Y2UuLmZiYzBlZjkgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5j CisrKyBiL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5jCkBAIC05MCwxMSArOTAsMTEg QEAgc3RydWN0IHR1bWJsZXJfc29mdGMKIHN0YXRpYyBpbnQJdHVtYmxlcl9wcm9iZShkZXZp Y2VfdCk7CiBzdGF0aWMgaW50IAl0dW1ibGVyX2F0dGFjaChkZXZpY2VfdCk7CiBzdGF0aWMg aW50CXR1bWJsZXJfaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKTsKLXN0YXRpYyB2b2lkCXR1 bWJsZXJfdW5pbml0KHN0cnVjdCBzbmRfbWl4ZXIgKm0pOworc3RhdGljIGludAl0dW1ibGVy X3VuaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKTsKIHN0YXRpYyBpbnQJdHVtYmxlcl9yZWlu aXQoc3RydWN0IHNuZF9taXhlciAqbSk7CiBzdGF0aWMgaW50CXR1bWJsZXJfc2V0KHN0cnVj dCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwKIAkJICAgIHVu c2lnbmVkIHJpZ2h0KTsKLXN0YXRpYyBpbnQJdHVtYmxlcl9zZXRyZWNzcmMoc3RydWN0IHNu ZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYyk7CitzdGF0aWMgdV9pbnQzMl90CXR1bWJsZXJf c2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOwogCiBzdGF0 aWMgZGV2aWNlX21ldGhvZF90IHR1bWJsZXJfbWV0aG9kc1tdID0gewogCS8qIERldmljZSBp bnRlcmZhY2UuICovCkBAIC0zNjMsMTAgKzM2MywxMCBAQCB0dW1ibGVyX2luaXQoc3RydWN0 IHNuZF9taXhlciAqbSkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGlj IGludAogdHVtYmxlcl91bmluaXQoc3RydWN0IHNuZF9taXhlciAqbSkKIHsKLQlyZXR1cm47 CisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludApAQCAtNDI0LDcgKzQyNCw3IEBAIHR1 bWJsZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQg bGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAor c3RhdGljIHVfaW50MzJfdAogdHVtYmxlcl9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAq bSwgdV9pbnQzMl90IHNyYykKIHsKIAlyZXR1cm4gKDApOwpkaWZmIC0tZ2l0IGEvc3lzL2Rl di9zb3VuZC9taWRpL21wdTQwMS5jIGIvc3lzL2Rldi9zb3VuZC9taWRpL21wdTQwMS5jCmlu ZGV4IGRmZGY5NjkuLmU2OWNhZjYgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWlkaS9t cHU0MDEuYworKysgYi9zeXMvZGV2L3NvdW5kL21pZGkvbXB1NDAxLmMKQEAgLTc1LDE0ICs3 NSwxNCBAQCBzdHJ1Y3QgbXB1NDAxIHsKIHN0YXRpYyB2b2lkIG1wdTQwMV90aW1lb3V0KHZv aWQgKm0pOwogc3RhdGljIG1wdTQwMV9pbnRyX3QgbXB1NDAxX2ludHI7CiAKLXN0YXRpYyBp bnQgbXB1NDAxX21pbml0KGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0pOwotc3RhdGlj IGludCBtcHU0MDFfbXVuaW5pdChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptKTsKLXN0 YXRpYyBpbnQgbXB1NDAxX21pbnFzaXplKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0p Owotc3RhdGljIGludCBtcHU0MDFfbW91dHFzaXplKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0 MDEgKm0pOwotc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFjayhrb2JqX3Qgb2JqLCBzdHJ1 Y3QgbXB1NDAxICptLCBpbnQgZmxhZ3MpOwotc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFj a3Aoa29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSwgaW50IGZsYWdzKTsKLXN0YXRpYyBj b25zdCBjaGFyICptcHU0MDFfbWRlc2NyKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0s IGludCB2ZXJib3NpdHkpOwotc3RhdGljIGNvbnN0IGNoYXIgKm1wdTQwMV9tcHJvdmlkZXIo a29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSk7CitzdGF0aWMgaW50IG1wdTQwMV9taW5p dChzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSk7CitzdGF0aWMgaW50IG1wdTQwMV9t dW5pbml0KHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICptKTsKK3N0YXRpYyBpbnQgbXB1 NDAxX21pbnFzaXplKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICptKTsKK3N0YXRpYyBp bnQgbXB1NDAxX21vdXRxc2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSk7Citz dGF0aWMgdm9pZCBtcHU0MDFfbWNhbGxiYWNrKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lk ICptLCBpbnQgZmxhZ3MpOworc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFja3Aoc3RydWN0 IHNuZF9taWRpICpvYmosIHZvaWQgKm0sIGludCBmbGFncyk7CitzdGF0aWMgY29uc3QgY2hh ciAqbXB1NDAxX21kZXNjcihzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSwgaW50IHZl cmJvc2l0eSk7CitzdGF0aWMgY29uc3QgY2hhciAqbXB1NDAxX21wcm92aWRlcihzdHJ1Y3Qg c25kX21pZGkgKm9iaiwgdm9pZCAqbSk7CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IG1wdTQw MV9tZXRob2RzW10gPSB7CiAJS09CSk1FVEhPRChtcHVfaW5pdCwgbXB1NDAxX21pbml0KSwK QEAgLTIwOCw4ICsyMDgsOSBAQCBtcHU0MDFfdW5pbml0KHN0cnVjdCBtcHU0MDEgKm0pCiB9 CiAKIHN0YXRpYyBpbnQKLW1wdTQwMV9taW5pdChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAx ICptKQorbXB1NDAxX21pbml0KHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICpjb29raWUp CiB7CisJc3RydWN0IG1wdTQwMSAqbSA9IGNvb2tpZTsKIAlpbnQgaTsKIAogCUNNRChtLCBN UFVfUkVTRVQpOwpAQCAtMjMyLDI3ICsyMzMsMzAgQEAgbXB1NDAxX21pbml0KGtvYmpfdCBv YmosIHN0cnVjdCBtcHU0MDEgKm0pCiAKIAogaW50Ci1tcHU0MDFfbXVuaW5pdChrb2JqX3Qg b2JqLCBzdHJ1Y3QgbXB1NDAxICptKQorbXB1NDAxX211bmluaXQoc3RydWN0IHNuZF9taWRp ICpvYmosIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3QgbXB1NDAxICptID0gY29va2llOwog CiAJcmV0dXJuIE1QVUZPSV9VTklOSVQobSwgbS0+Y29va2llKTsKIH0KIAogaW50Ci1tcHU0 MDFfbWlucXNpemUoa29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSkKK21wdTQwMV9taW5x c2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqY29va2llKQogewogCXJldHVybiAx Mjg7CiB9CiAKIGludAotbXB1NDAxX21vdXRxc2l6ZShrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1 NDAxICptKQorbXB1NDAxX21vdXRxc2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAq Y29va2llKQogewogCXJldHVybiAxMjg7CiB9CiAKIHN0YXRpYyB2b2lkCi1tcHU0MDFfbWNh bGxiYWNrKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0sIGludCBmbGFncykKK21wdTQw MV9tY2FsbGJhY2soc3RydWN0IHNuZF9taWRpICpvYmosIHZvaWQgKmNvb2tpZSwgaW50IGZs YWdzKQogeworCXN0cnVjdCBtcHU0MDEgKm0gPSBjb29raWU7CisKICNpZiAwCiAJcHJpbnRm KCJtcHU0MDFfY2FsbGJhY2sgJXMgJXMgJXMgJXNcbiIsCiAJICAgIGZsYWdzICYgTV9SWCA/ ICJNX1JYIiA6ICIiLApAQCAtMjY3LDIxICsyNzEsMjMgQEAgbXB1NDAxX21jYWxsYmFjayhr b2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptLCBpbnQgZmxhZ3MpCiB9CiAKIHN0YXRpYyB2 b2lkCi1tcHU0MDFfbWNhbGxiYWNrcChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptLCBp bnQgZmxhZ3MpCittcHU0MDFfbWNhbGxiYWNrcChzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9p ZCAqY29va2llLCBpbnQgZmxhZ3MpCiB7CisJc3RydWN0IG1wdTQwMSAqbSA9IGNvb2tpZTsK KwogLyoJcHJpbnRmKCJtcHU0MDFfY2FsbGJhY2twXG4iKTsgKi8KIAltcHU0MDFfbWNhbGxi YWNrKG9iaiwgbSwgZmxhZ3MpOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqCi1tcHU0MDFf bWRlc2NyKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0sIGludCB2ZXJib3NpdHkpCitt cHU0MDFfbWRlc2NyKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICpjb29raWUsIGludCB2 ZXJib3NpdHkpCiB7CiAKIAlyZXR1cm4gImRlc2NyIG1wdTQwMSI7CiB9CiAKIHN0YXRpYyBj b25zdCBjaGFyICoKLW1wdTQwMV9tcHJvdmlkZXIoa29ial90IG9iaiwgc3RydWN0IG1wdTQw MSAqbSkKK21wdTQwMV9tcHJvdmlkZXIoc3RydWN0IHNuZF9taWRpICpvYmosIHZvaWQgKmNv b2tpZSkKIHsKIAlyZXR1cm4gInByb3ZpZGVyIG1wdTQwMSI7CiB9CmRpZmYgLS1naXQgYS9z eXMvZGV2L3NvdW5kL3BjaS9hbHM0MDAwLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9hbHM0MDAw LmMKaW5kZXggNmRmNWZmZC4uNDNlOWUzOSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9w Y2kvYWxzNDAwMC5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2FsczQwMDAuYwpAQCAtMjM2 LDcgKzIzNiw3IEBAIGFsc2NoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRp YyB1X2ludDMyX3QKIGFsc2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg dV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdAlzY19jaGluZm8gKmNoID0gZGF0YSwgKm90 aGVyOwpAQCAtMjU0LDcgKzI1NCw3IEBAIGFsc2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwg dm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3Rh dGljIGludAorc3RhdGljIHVfaW50MzJfdAogYWxzY2hhbl9zZXRibG9ja3NpemUoa29ial90 IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QJc2Nf Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC0yNjcsNyArMjY3LDcgQEAgYWxzY2hhbl9zZXRibG9j a3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIAly ZXR1cm4gYmxvY2tzaXplOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBh bHNjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19j aGluZm8gKmNoID0gZGF0YTsKQEAgLTU5NCw3ICs1OTQsNyBAQCBhbHNtaXhfc2V0KHN0cnVj dCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQg cmlnaHQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QK IGFsc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYykK IHsKIAlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKZGlmZiAtLWdp dCBhL3N5cy9kZXYvc291bmQvcGNpL2F0aWl4cC5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvYXRp aXhwLmMKaW5kZXggNmVjNTBiYS4uMzU1ZGRlNSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3Vu ZC9wY2kvYXRpaXhwLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvYXRpaXhwLmMKQEAgLTE4 NywxMyArMTg3LDEzIEBAIHN0YXRpYyBpbnQgYXRpaXhwX3dyY2Qoa29ial90LCB2b2lkICos IGludCwgdWludDMyX3QpOwogc3RhdGljIHZvaWQgICphdGlpeHBfY2hhbl9pbml0KGtvYmpf dCwgdm9pZCAqLCBzdHJ1Y3Qgc25kX2RidWYgKiwKIAkJCQkJCXN0cnVjdCBwY21fY2hhbm5l bCAqLCBpbnQpOwogc3RhdGljIGludCAgICBhdGlpeHBfY2hhbl9zZXRmb3JtYXQoa29ial90 LCB2b2lkICosIHVpbnQzMl90KTsKLXN0YXRpYyBpbnQgICAgYXRpaXhwX2NoYW5fc2V0c3Bl ZWQoa29ial90LCB2b2lkICosIHVpbnQzMl90KTsKK3N0YXRpYyB1aW50MzJfdCBhdGlpeHBf Y2hhbl9zZXRzcGVlZChrb2JqX3QsIHZvaWQgKiwgdWludDMyX3QpOwogc3RhdGljIGludCAg ICBhdGlpeHBfY2hhbl9zZXRmcmFnbWVudHMoa29ial90LCB2b2lkICosIHVpbnQzMl90LCB1 aW50MzJfdCk7Ci1zdGF0aWMgaW50ICAgIGF0aWl4cF9jaGFuX3NldGJsb2Nrc2l6ZShrb2Jq X3QsIHZvaWQgKiwgdWludDMyX3QpOworc3RhdGljIHVpbnQzMl90IGF0aWl4cF9jaGFuX3Nl dGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdWludDMyX3QpOwogc3RhdGljIHZvaWQgICBh dGlpeHBfYnVpbGRzZ2R0KHN0cnVjdCBhdGlpeHBfY2hpbmZvICopOwogc3RhdGljIGludCAg ICBhdGlpeHBfY2hhbl90cmlnZ2VyKGtvYmpfdCwgdm9pZCAqLCBpbnQpOwogc3RhdGljIF9f aW5saW5lIHVpbnQzMl90IGF0aWl4cF9kbWFwb3Moc3RydWN0IGF0aWl4cF9jaGluZm8gKik7 Ci1zdGF0aWMgaW50ICAgIGF0aWl4cF9jaGFuX2dldHB0cihrb2JqX3QsIHZvaWQgKik7Citz dGF0aWMgdWludDMyX3QgYXRpaXhwX2NoYW5fZ2V0cHRyKGtvYmpfdCwgdm9pZCAqKTsKIHN0 YXRpYyBzdHJ1Y3QgcGNtY2hhbl9jYXBzICphdGlpeHBfY2hhbl9nZXRjYXBzKGtvYmpfdCwg dm9pZCAqKTsKIAogc3RhdGljIHZvaWQgYXRpaXhwX2ludHIodm9pZCAqKTsKQEAgLTUxNSw3 ICs1MTUsNyBAQCBhdGlpeHBfY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgdWludDMyX3QgZm9ybWF0KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0 YXRpYyB1aW50MzJfdAogYXRpaXhwX2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdWludDMyX3Qgc3BkKQogewogCS8qIFhYWCBXZSdyZSBzdXBwb3NlZCB0byBkbyBW UkEvRFJBIHByb2Nlc3NpbmcgcmlnaHQgaGVyZSAqLwpAQCAtNTYxLDcgKzU2MSw3IEBAIGF0 aWl4cF9jaGFuX3NldGZyYWdtZW50cyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLAogCXJldHVy biAoMSk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogYXRpaXhwX2NoYW5f c2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6KQog ewogCXN0cnVjdCBhdGlpeHBfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC04MTgsNyArODE4LDcg QEAgYXRpaXhwX2NoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28p CiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBhdGlp eHBfY2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgYXRp aXhwX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kv Y21pLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9jbWkuYwppbmRleCBjZGExZTgyLi5mNWQxMDM0 IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9jbWkuYworKysgYi9zeXMvZGV2L3Nv dW5kL3BjaS9jbWkuYwpAQCAtNDA5LDcgKzQwOSw3IEBAIGNtaWNoYW5fc2V0Zm9ybWF0KGtv YmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGNtaWNoYW5fc2V0c3BlZWQoa29i al90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19j aGluZm8gKmNoID0gZGF0YTsKQEAgLTQ1NSw3ICs0NTUsNyBAQCBjbWljaGFuX3NldHNwZWVk KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4gY2gt PnNwZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY21pY2hhbl9zZXRi bG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkK IHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MDUsNyArNTA1LDcgQEAg Y21pY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY21pY2hhbl9nZXRw dHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvCSpjaCA9 IGRhdGE7CkBAIC03MTQsNyArNzE0LDcgQEAgY21pbWl4X3NldChzdHJ1Y3Qgc25kX21peGVy ICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBjbWltaXhfc2V0 cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJc3RydWN0 IHNjX2luZm8gKnNjID0gbWl4X2dldGRldmluZm8obSk7CkBAIC03NzUsNyArNzc1LDcgQEAg TUlYRVJfREVDTEFSRShjbWlfbWl4ZXIpOwogICovCiAKIHN0YXRpYyB1bnNpZ25lZCBjaGFy Ci1jbWlfbXJlYWQodm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MsIGludCByZWcpCitj bWlfbXJlYWQoc3RydWN0IG1wdTQwMSAqYXJnLCB2b2lkICp1bnVzZWQsIGludCByZWcpCiB7 CQogCXVuc2lnbmVkIGludCBkOwogCkBAIC03ODYsMTUgKzc4NiwxNiBAQCBjbWlfbXJlYWQo dm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MsIGludCByZWcpCiB9CiAKIHN0YXRpYyB2 b2lkCi1jbWlfbXdyaXRlKHZvaWQgKmFyZywgc3RydWN0IHNjX2luZm8gKnNjLCBpbnQgcmVn LCB1bnNpZ25lZCBjaGFyIGIpCitjbWlfbXdyaXRlKHN0cnVjdCBtcHU0MDEgKmFyZywgdm9p ZCAqdW51c2VkLCBpbnQgcmVnLCB1bnNpZ25lZCBjaGFyIGIpCiB7CiAKIAlidXNfc3BhY2Vf d3JpdGVfMSgwLDAsMHgzMzAgKyByZWcgLCBiKTsKIH0KIAogc3RhdGljIGludAotY21pX211 bmluaXQodm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MpCitjbWlfbXVuaW5pdChzdHJ1 Y3QgbXB1NDAxICphcmcsIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2Mg PSBjb29raWU7CiAKIAlzbmRfbXR4bG9jayhzYy0+bG9jayk7CiAJc2MtPm1wdV9pbnRyID0g MDsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2NzNDI4MS5jIGIvc3lzL2Rldi9z b3VuZC9wY2kvY3M0MjgxLmMKaW5kZXggNWI0YjgyMS4uNWFlMWI1OSAxMDA2NDQKLS0tIGEv c3lzL2Rldi9zb3VuZC9wY2kvY3M0MjgxLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvY3M0 MjgxLmMKQEAgLTI0NCw3ICsyNDQsNyBAQCBjczQyODFfZm9ybWF0X3RvX2Jwcyh1X2ludDMy X3QgZm9ybWF0KQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qIGFjOTcgY29kZWMgKi8KIAot c3RhdGljIHVfaW50MzJfdAorc3RhdGljIGludAogY3M0MjgxX3JkY2Qoa29ial90IG9iaiwg dm9pZCAqZGV2aW5mbywgaW50IHJlZ25vKQogewogICAgIHN0cnVjdCBzY19pbmZvICpzYyA9 IChzdHJ1Y3Qgc2NfaW5mbyAqKWRldmluZm87CkBAIC0yNzgsNyArMjc4LDcgQEAgY3M0Mjgx X3JkY2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vKQogICAgIHJldHVy biBjczQyODFfcmQoc2MsIENTNDI4MVBDSV9BQ1NEQSk7CiB9CiAKLXN0YXRpYyB2b2lkCitz dGF0aWMgaW50CiBjczQyODFfd3JjZChrb2JqX3Qgb2JqLCB2b2lkICpkZXZpbmZvLCBpbnQg cmVnbm8sIHVfaW50MzJfdCBkYXRhKQogewogICAgIHN0cnVjdCBzY19pbmZvICpzYyA9IChz dHJ1Y3Qgc2NfaW5mbyAqKWRldmluZm87CkBAIC0yOTUsNiArMjk1LDggQEAgY3M0MjgxX3dy Y2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1X2ludDMyX3QgZGF0 YSkKICAgICBpZiAoY3M0MjgxX3dhaXRjbHIoc2MsIENTNDI4MVBDSV9BQ0NUTCwgQ1M0Mjgx UENJX0FDQ1RMX0RDViwgMjUwKSA9PSAwKSB7CiAJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCJj czQyODFfd3JjZDogRENWIGRpZCBub3QgZ29cbiIpOwogICAgIH0KKworICAgIHJldHVybiAo MCk7CiB9CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IGNzNDI4MV9hYzk3X21ldGhvZHNbXSA9 IHsKQEAgLTMzNCw3ICszMzYsNyBAQCBjczQyODFjaGFuX2luaXQoa29ial90IG9iaiwgdm9p ZCAqZGV2aW5mbywgc3RydWN0IHNuZF9kYnVmICpiLCBzdHJ1Y3QgcGNtX2NoYW5uZQogICAg IHJldHVybiBjaDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3M0Mjgx Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJs b2Nrc2l6ZSkKIHsKICAgICBzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zNTYs NyArMzU4LDcgQEAgY3M0MjgxY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKICAgICByZXR1cm4gY2gtPmJsa3N6OwogfQog Ci1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBjczQyODFjaGFuX3NldHNwZWVkKGtv YmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKICAgICBzdHJ1Y3Qg c2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zOTksNyArNDAxLDcgQEAgY3M0MjgxY2hhbl9z ZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKICAg ICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3M0Mjgx Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKICAgICBzdHJ1Y3Qgc2Nf Y2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9jc2Fw Y20uYyBiL3N5cy9kZXYvc291bmQvcGNpL2NzYXBjbS5jCmluZGV4IGM5MzJjMWQuLmRmNWYy ZDAgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL2NzYXBjbS5jCisrKyBiL3N5cy9k ZXYvc291bmQvcGNpL2NzYXBjbS5jCkBAIC01NDgsNyArNTQ4LDcgQEAgY3NhY2hhbl9zZXRm b3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3NhY2hhbl9zZXRz cGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3Ry dWN0IGNzYV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTU1Nyw3ICs1NTcsNyBAQCBjc2FjaGFu X3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAly ZXR1cm4gY2gtPnNwZDsgLyogWFhYIGNhbGMgcmVhbCBzcGVlZCAqLwogfQogCi1zdGF0aWMg aW50CitzdGF0aWMgdV9pbnQzMl90CiBjc2FjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewogCXJldHVybiBDUzQ2MXhf QlVGRlNJWkUgLyAyOwpAQCAtNTg5LDcgKzU4OSw3IEBAIGNzYWNoYW5fdHJpZ2dlcihrb2Jq X3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQKK3N0YXRpYyB1X2ludDMyX3QKIGNzYWNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQg KmRhdGEpCiB7CiAJc3RydWN0IGNzYV9jaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBh L3N5cy9kZXYvc291bmQvcGNpL2RzMS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZHMxLmMKaW5k ZXggOWFkMjRmZC4uYjRjOTVmYyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvZHMx LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZHMxLmMKQEAgLTUxMiw3ICs1MTIsNyBAQCBk czFwY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZv cm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog ZHMxcGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw ZWVkKQogewogCXN0cnVjdCBzY19wY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MjIsNyArNTIy LDcgQEAgZHMxcGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz Ml90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf aW50MzJfdAogZHMxcGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0 YTsKQEAgLTU2Niw3ICs1NjYsNyBAQCBkczFwY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZv aWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj IHVfaW50MzJfdAogZHMxcGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7 CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0YTsKQEAgLTY0MCw3ICs2NDAsNyBAQCBk czFyY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZv cm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog ZHMxcmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw ZWVkKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC02NTAsNyArNjUw LDcgQEAgZHMxcmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz Ml90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf aW50MzJfdAogZHMxcmNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gZGF0 YTsKQEAgLTY5Niw3ICs2OTYsNyBAQCBkczFyY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZv aWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj IHVfaW50MzJfdAogZHMxcmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7 CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYv c291bmQvcGNpL2VtdTEwazEuYyBiL3N5cy9kZXYvc291bmQvcGNpL2VtdTEwazEuYwppbmRl eCA0M2NjNDEyLi5lMTE2NWM3IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUx MGsxLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW11MTBrMS5jCkBAIC03NjQsNyArNzY0 LDcgQEAgZW11cGNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50 MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2lu dDMyX3QKIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50 MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3Qgc2NfcGNoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNzcz LDcgKzc3Myw3IEBAIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4gY2gtPnNwZDsKIH0KIAotc3RhdGljIGludAor c3RhdGljIHVfaW50MzJfdAogZW11cGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZv aWQgKmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8g KmNoID0gZGF0YTsKQEAgLTgxOSw3ICs4MTksNyBAQCBlbXVwY2hhbl90cmlnZ2VyKGtvYmpf dCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dAorc3RhdGljIHVfaW50MzJfdAogZW11cGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQg KmRhdGEpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0YTsKQEAgLTkxNSw3ICs5 MTUsNyBAQCBlbXVyY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p bnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf aW50MzJfdAogZW11cmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p bnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC05 MzQsNyArOTM0LDcgQEAgZW11cmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBjaC0+c3BkOwogfQogCi1zdGF0aWMgaW50 CitzdGF0aWMgdV9pbnQzMl90CiBlbXVyY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwg dm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2NfcmNoaW5m byAqY2ggPSBkYXRhOwpAQCAtMTAzMyw3ICsxMDMzLDcgQEAgZW11cmNoYW5fdHJpZ2dlcihr b2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVtdXJjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2 b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xMDY4 LDggKzEwNjgsOSBAQCBzdGF0aWMga29ial9tZXRob2RfdCBlbXVyY2hhbl9tZXRob2RzW10g PSB7CiBDSEFOTkVMX0RFQ0xBUkUoZW11cmNoYW4pOwogCiBzdGF0aWMgdW5zaWduZWQgY2hh cgotZW11X21yZWFkKHZvaWQgKmFyZywgc3RydWN0IHNjX2luZm8gKnNjLCBpbnQgcmVnKQot ewkKK2VtdV9tcmVhZChzdHJ1Y3QgbXB1NDAxICphcmcsIHZvaWQgKmNvb2tpZSwgaW50IHJl ZykKK3sKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBjb29raWU7CiAJdW5zaWduZWQgaW50IGQ7 CiAKIAlkID0gZW11X3JkKHNjLCAweDE4ICsgcmVnLCAxKTsgCkBAIC0xMDc3LDE1ICsxMDc4 LDE3IEBAIGVtdV9tcmVhZCh2b2lkICphcmcsIHN0cnVjdCBzY19pbmZvICpzYywgaW50IHJl ZykKIH0KIAogc3RhdGljIHZvaWQKLWVtdV9td3JpdGUodm9pZCAqYXJnLCBzdHJ1Y3Qgc2Nf aW5mbyAqc2MsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikKK2VtdV9td3JpdGUoc3RydWN0 IG1wdTQwMSAqYXJnLCB2b2lkICpjb29raWUsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikK IHsKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBjb29raWU7CiAKIAllbXVfd3Ioc2MsIDB4MTgg KyByZWcsIGIsIDEpOwogfQogCiBzdGF0aWMgaW50Ci1lbXVfbXVuaW5pdCh2b2lkICphcmcs IHN0cnVjdCBzY19pbmZvICpzYykKK2VtdV9tdW5pbml0KHN0cnVjdCBtcHU0MDEgKmFyZywg dm9pZCAqY29va2llKQogeworCXN0cnVjdCBzY19pbmZvICpzYyA9IGNvb2tpZTsKIAogCXNu ZF9tdHhsb2NrKHNjLT5sb2NrKTsKIAlzYy0+bXB1X2ludHIgPSAwOwpkaWZmIC0tZ2l0IGEv c3lzL2Rldi9zb3VuZC9wY2kvZW11MTBreC1taWRpLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9l bXUxMGt4LW1pZGkuYwppbmRleCA3MzZlN2MyLi44MDQ5YzVhIDEwMDY0NAotLS0gYS9zeXMv ZGV2L3NvdW5kL3BjaS9lbXUxMGt4LW1pZGkuYworKysgYi9zeXMvZGV2L3NvdW5kL3BjaS9l bXUxMGt4LW1pZGkuYwpAQCAtNjUsOCArNjUsOSBAQCBzdGF0aWMgdWludDMyX3QJZW11X21p ZGlfY2FyZF9pbnRyKHZvaWQgKnAsIHVpbnQzMl90IGFyZyk7CiBzdGF0aWMgZGV2Y2xhc3Nf dCBlbXVfbWlkaV9kZXZjbGFzczsKIAogc3RhdGljIHVuc2lnbmVkIGNoYXIKLWVtdV9tcmVh ZCh2b2lkICphcmcgX191bnVzZWQsIHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MsIGludCBy ZWcpCitlbXVfbXJlYWQoc3RydWN0IG1wdTQwMSAqYXJnIF9fdW51c2VkLCB2b2lkICpjb29r aWUsIGludCByZWcpCiB7CisJc3RydWN0IGVtdV9taWRpX3NvZnRjICpzYyA9IGNvb2tpZTsK IAl1bnNpZ25lZCBpbnQgZDsKIAogCWQgPSAwOwpAQCAtNzksOCArODAsOSBAQCBlbXVfbXJl YWQodm9pZCAqYXJnIF9fdW51c2VkLCBzdHJ1Y3QgZW11X21pZGlfc29mdGMgKnNjLCBpbnQg cmVnKQogfQogCiBzdGF0aWMgdm9pZAotZW11X213cml0ZSh2b2lkICphcmcgX191bnVzZWQs IHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikK K2VtdV9td3JpdGUoc3RydWN0IG1wdTQwMSAqYXJnIF9fdW51c2VkLCB2b2lkICpjb29raWUs IGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikKIHsKKwlzdHJ1Y3QgZW11X21pZGlfc29mdGMg KnNjID0gY29va2llOwogCiAJaWYgKHNjLT5pc19lbXUxMGsxKQogCQllbXVfd3Ioc2MtPmNh cmQsIDB4MTggKyByZWcsIGIsIDEpOwpAQCAtODksOCArOTEsOSBAQCBlbXVfbXdyaXRlKHZv aWQgKmFyZyBfX3VudXNlZCwgc3RydWN0IGVtdV9taWRpX3NvZnRjICpzYywgaW50IHJlZywg dW5zaWduZWQgY2hhcgogfQogCiBzdGF0aWMgaW50Ci1lbXVfbXVuaW5pdCh2b2lkICphcmcg X191bnVzZWQsIHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MpCitlbXVfbXVuaW5pdChzdHJ1 Y3QgbXB1NDAxICphcmcgX191bnVzZWQsIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3QgZW11 X21pZGlfc29mdGMgKnNjID0gY29va2llOwogCiAJbXR4X2xvY2soJnNjLT5tdHgpOwogCXNj LT5tcHVfaW50ciA9IE5VTEw7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUx MGt4LXBjbS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW11MTBreC1wY20uYwppbmRleCA5OWZl ZmQ3Li4yYTMwNWRlIDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUxMGt4LXBj bS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2VtdTEwa3gtcGNtLmMKQEAgLTM4NSw3ICsz ODUsNyBAQCBlbXVfZHNwbWl4ZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVk IGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaAogCXJldHVybiAgKDApOwogfQog Ci1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlbXVfZHNwbWl4ZXJfc2V0cmVjc3Jj KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJc3RydWN0IGVtdV9w Y21faW5mbyAqc2M7CkBAIC00ODYsNyArNDg2LDcgQEAgZW11X2VmeG1peGVyX3NldChzdHJ1 Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVk IHJpZ2gKIAlyZXR1cm4gICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf dAogZW11X2VmeG1peGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptIF9fdW51c2Vk LCB1X2ludDMyX3Qgc3JjIF9fdW51c2VkKQogewogCXJldHVybiAoU09VTkRfTUFTS19NT05J VE9SKTsKQEAgLTc1Myw3ICs3NTMsNyBAQCBlbXVwY2hhbl9zZXRmb3JtYXQoa29ial90IG9i aiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50MzJfdCBmb3JtYXQpCiAJcmV0dXJu ICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlbXVwY2hhbl9zZXRz cGVlZChrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IHNw ZWVkKQogewogCXN0cnVjdCBlbXVfcGNtX3BjaGluZm8gKmNoID0gY19kZXZpbmZvOwpAQCAt NzYyLDcgKzc2Miw3IEBAIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVzZWQs IHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChjaC0+c3BkKTsK IH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlbXVwY2hhbl9zZXRibG9ja3Np emUoa29ial90IG9iaiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50MzJfdCBibG9j a3NpemUpCiB7CiAJc3RydWN0IGVtdV9wY21fcGNoaW5mbyAqY2ggPSBjX2RldmluZm87CkBA IC04MDQsNyArODA0LDcgQEAgZW11cGNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqIF9fdW51c2Vk LCB2b2lkICpjX2RldmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMg aW50CitzdGF0aWMgdWludDMyX3QKIGVtdXBjaGFuX2dldHB0cihrb2JqX3Qgb2JqIF9fdW51 c2VkLCB2b2lkICpjX2RldmluZm8pCiB7CiAJc3RydWN0IGVtdV9wY21fcGNoaW5mbyAqY2gg PSBjX2RldmluZm87CkBAIC05MDIsNyArOTAyLDcgQEAgZW11cmNoYW5fc2V0Zm9ybWF0KGtv YmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3QgZm9ybWF0KQog CXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogZW11cmNo YW5fc2V0c3BlZWQoa29ial90IG9iaiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50 MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5m bzsKQEAgLTkxNiw3ICs5MTYsNyBAQCBlbXVyY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqIF9f dW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IHNwZWVkKQogCXJldHVybiAoY2gt PnNwZCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogZW11cmNoYW5fc2V0 YmxvY2tzaXplKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMy X3QgYmxvY2tzaXplKQogewogCXN0cnVjdCBlbXVfcGNtX3JjaGluZm8gKmNoID0gY19kZXZp bmZvOwpAQCAtMTAwMSw3ICsxMDAxLDcgQEAgZW11cmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2Jq IF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQog Ci1zdGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIGVtdXJjaGFuX2dldHB0cihrb2JqX3Qg b2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8pCiB7CiAJc3RydWN0IGVtdV9wY21fcmNo aW5mbyAqY2ggPSBjX2RldmluZm87CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCBlbXVmeHJjaGFu X3NldGZvcm1hdChrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8gX191bnVz ZWQsIHVpbnQzMl90IGZvcgogCXJldHVybiAoRUlOVkFMKTsKIH0KIAotc3RhdGljIGludAor c3RhdGljIHVpbnQzMl90CiBlbXVmeHJjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVz ZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IGVtdV9w Y21fcmNoaW5mbyAqY2ggPSBjX2RldmluZm87CkBAIC0xMDgwLDcgKzEwODAsNyBAQCBlbXVm eHJjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywg dWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChjaC0+c3BkKTsKIH0KIAotc3RhdGljIGludAor c3RhdGljIHVpbnQzMl90CiBlbXVmeHJjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqIF9f dW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1 Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5mbzsKQEAgLTExNzEsNyArMTE3MSw3 IEBAIGVtdWZ4cmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2Rl dmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dWludDMyX3QKIGVtdWZ4cmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQg KmNfZGV2aW5mbykKIHsKIAlzdHJ1Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5m bzsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2VudnkyNC5jIGIvc3lzL2Rldi9z b3VuZC9wY2kvZW52eTI0LmMKaW5kZXggMGZkNTdkOC4uMTRmYTQ1ZiAxMDA2NDQKLS0tIGEv c3lzL2Rldi9zb3VuZC9wY2kvZW52eTI0LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW52 eTI0LmMKQEAgLTE4NywxMCArMTg3LDEwIEBAIHN0YXRpYyB2b2lkIGVudnkyNF9yMzJzbChz dHJ1Y3Qgc2NfY2hpbmZvICopOwogLyogY2hhbm5lbCBpbnRlcmZhY2UgKi8KIHN0YXRpYyB2 b2lkICplbnZ5MjRjaGFuX2luaXQoa29ial90LCB2b2lkICosIHN0cnVjdCBzbmRfZGJ1ZiAq LCBzdHJ1Y3QgcGNtX2NoYW5uZWwgKiwgaW50KTsKIHN0YXRpYyBpbnQgZW52eTI0Y2hhbl9z ZXRmb3JtYXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IGVudnky NGNoYW5fc2V0c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50 IGVudnkyNGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwor c3RhdGljIHVfaW50MzJfdCBlbnZ5MjRjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1 X2ludDMyX3QpOworc3RhdGljIHVfaW50MzJfdCBlbnZ5MjRjaGFuX3NldGJsb2Nrc2l6ZShr b2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKIHN0YXRpYyBpbnQgZW52eTI0Y2hhbl90cmln Z2VyKGtvYmpfdCwgdm9pZCAqLCBpbnQpOwotc3RhdGljIGludCBlbnZ5MjRjaGFuX2dldHB0 cihrb2JqX3QsIHZvaWQgKik7CitzdGF0aWMgdV9pbnQzMl90IGVudnkyNGNoYW5fZ2V0cHRy KGtvYmpfdCwgdm9pZCAqKTsKIHN0YXRpYyBzdHJ1Y3QgcGNtY2hhbl9jYXBzICplbnZ5MjRj aGFuX2dldGNhcHMoa29ial90LCB2b2lkICopOwogCiAvKiBtaXhlciBpbnRlcmZhY2UgKi8K QEAgLTEwODcsNyArMTA4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgewogCXswLCAweDEwfQogfTsK IAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0X3NldHNwZWVkKHN0cnVj dCBzY19pbmZvICpzYywgdV9pbnQzMl90IHNwZWVkKSB7CiAJdV9pbnQzMl90IGNvZGU7CiAJ aW50IGkgPSAwOwpAQCAtMTY5MSw3ICsxNjkxLDcgQEAgZW52eTI0Y2hhbl9zZXRmb3JtYXQo a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKICAgc3RhcnQgdHJp Z2dlcmQsIHNvbWUgb3RoZXIgY2hhbm5lbCBpcyBydW5uaW5nLCBhbmQgdGhhdCBjaGFubmVs J3MKICAgc3BlZWQgaXNuJ3Qgc2FtZSB3aXRoLCB0aGVuIHRyaWdnZXIgZnVuY3Rpb24gd2ls bCBmYWlsLgogKi8KLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVudnkyNGNoYW5f c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTE3MTYsNyArMTcxNiw3IEBAIGVu dnkyNGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw ZWVkKQogCXJldHVybiBjaC0+c3BlZWQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2lu dDMyX3QKIGVudnkyNGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX2NoaW5mbyAqY2ggPSBkYXRh OwpAQCAtMTg2NCw3ICsxODY0LDcgQEAgZW52eTI0Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmos IHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3Rh dGljIHVfaW50MzJfdAogZW52eTI0Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0 YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMv ZGV2L3NvdW5kL3BjaS9lbnZ5MjRodC5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW52eTI0aHQu YwppbmRleCBhOWQzMmUxLi4zN2Q4YmI1IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3Bj aS9lbnZ5MjRodC5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2VudnkyNGh0LmMKQEAgLTE4 NiwxMCArMTg2LDEwIEBAIHN0YXRpYyB2b2lkIGVudnkyNGh0X3IzMnNsKHN0cnVjdCBzY19j aGluZm8gKik7CiAvKiBjaGFubmVsIGludGVyZmFjZSAqLwogc3RhdGljIHZvaWQgKmVudnky NGh0Y2hhbl9pbml0KGtvYmpfdCwgdm9pZCAqLCBzdHJ1Y3Qgc25kX2RidWYgKiwgc3RydWN0 IHBjbV9jaGFubmVsICosIGludCk7CiBzdGF0aWMgaW50IGVudnkyNGh0Y2hhbl9zZXRmb3Jt YXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IGVudnkyNGh0Y2hh bl9zZXRzcGVlZChrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKLXN0YXRpYyBpbnQgZW52 eTI0aHRjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKK3N0 YXRpYyB1X2ludDMyX3QgZW52eTI0aHRjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1 X2ludDMyX3QpOworc3RhdGljIHVfaW50MzJfdCBlbnZ5MjRodGNoYW5fc2V0YmxvY2tzaXpl KGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwogc3RhdGljIGludCBlbnZ5MjRodGNoYW5f dHJpZ2dlcihrb2JqX3QsIHZvaWQgKiwgaW50KTsKLXN0YXRpYyBpbnQgZW52eTI0aHRjaGFu X2dldHB0cihrb2JqX3QsIHZvaWQgKik7CitzdGF0aWMgdV9pbnQzMl90IGVudnkyNGh0Y2hh bl9nZXRwdHIoa29ial90LCB2b2lkICopOwogc3RhdGljIHN0cnVjdCBwY21jaGFuX2NhcHMg KmVudnkyNGh0Y2hhbl9nZXRjYXBzKGtvYmpfdCwgdm9pZCAqKTsKIAogLyogbWl4ZXIgaW50 ZXJmYWNlICovCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBzdGF0aWMgc3RydWN0IHsKIAl7MCwg MHgxMH0KIH07CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVudnkyNGh0X3Nl dHNwZWVkKHN0cnVjdCBzY19pbmZvICpzYywgdV9pbnQzMl90IHNwZWVkKSB7CiAJdV9pbnQz Ml90IGNvZGUsIGkyc2ZtdDsKIAlpbnQgaSA9IDA7CkBAIC0xNjAyLDcgKzE2MDIsNyBAQCBl bnZ5MjRodGNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJf dCBmb3JtYXQpCiAgIHN0YXJ0IHRyaWdnZXJkLCBzb21lIG90aGVyIGNoYW5uZWwgaXMgcnVu bmluZywgYW5kIHRoYXQgY2hhbm5lbCdzCiAgIHNwZWVkIGlzbid0IHNhbWUgd2l0aCwgdGhl biB0cmlnZ2VyIGZ1bmN0aW9uIHdpbGwgZmFpbC4KICovCi1zdGF0aWMgaW50CitzdGF0aWMg dV9pbnQzMl90CiBlbnZ5MjRodGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsK QEAgLTE2MjcsNyArMTYyNyw3IEBAIGVudnkyNGh0Y2hhbl9zZXRzcGVlZChrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIGNoLT5zcGVlZDsKIH0K IAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0aHRjaGFuX3NldGJsb2Nr c2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewog CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTE3NzMsNyArMTc3Myw3IEBAIGVu dnkyNGh0Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0aHRj aGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19jaGlu Zm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2VzMTM3eC5j IGIvc3lzL2Rldi9zb3VuZC9wY2kvZXMxMzd4LmMKaW5kZXggOTg0YWFjOS4uNTk3MWU1MyAx MDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvZXMxMzd4LmMKKysrIGIvc3lzL2Rldi9z b3VuZC9wY2kvZXMxMzd4LmMKQEAgLTM0OSw3ICszNDksNyBAQCBlczEzNzBfbWl4c2V0KHN0 cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWdu ZWQgcmlnaHQpCiAJcmV0dXJuIChsIHwgKHIgPDwgOCkpOwogfQogCi1zdGF0aWMgaW50Citz dGF0aWMgdWludDMyX3QKIGVzMTM3MF9taXhzZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAq bSwgdWludDMyX3Qgc3JjKQogewogCXN0cnVjdCBlc19pbmZvICplczsKQEAgLTUzNSw3ICs1 MzUsNyBAQCBlc2NoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQz Ml90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWlu dDMyX3QKIGVzY2hhbjEzNzBfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWlu dDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IGVzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNTgw LDcgKzU4MCw3IEBAIGVzY2hhbjEzNzBfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChzcGVlZCk7CiB9CiAKLXN0YXRpYyBpbnQK K3N0YXRpYyB1aW50MzJfdAogZXNjaGFuMTM3MV9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lk ICpkYXRhLCB1aW50MzJfdCBzcGVlZCkKIHsKICAgCXN0cnVjdCBlc19jaGluZm8gKmNoID0g ZGF0YTsKQEAgLTYzOSw3ICs2MzksNyBAQCBlc2NoYW5fc2V0ZnJhZ21lbnRzKGtvYmpfdCBv YmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6LCB1aW50MzJfdCBibGtjbnQpCiAJcmV0 dXJuICgxKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlc2NoYW5fc2V0 YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6KQogewog ICAJc3RydWN0IGVzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtODIwLDcgKzgyMCw3IEBAIGVz Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4g KDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIGVzY2hhbl9nZXRwdHIo a29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZXNfY2hpbmZvICpjaCA9IGRh dGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9mbTgwMS5jIGIvc3lzL2Rldi9z b3VuZC9wY2kvZm04MDEuYwppbmRleCA4ZWU4ZjI4Li4wOTczOGQyIDEwMDY0NAotLS0gYS9z eXMvZGV2L3NvdW5kL3BjaS9mbTgwMS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2ZtODAx LmMKQEAgLTM4NCw3ICszODQsNyBAQCBzdHJ1Y3QgewogLyogYW55dGhpbmcgYWJvdmUgLT4g NDgwMDAgKi8KIH07CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGZtODAxY2hf c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog CXN0cnVjdCBmbTgwMV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTQxMSw3ICs0MTEsNyBAQCBm bTgwMWNoX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVl ZCkKIAlyZXR1cm4gZm04MDFfcmF0ZXNbaV0ucmF0ZTsKIH0KIAotc3RhdGljIGludAorc3Rh dGljIHVfaW50MzJfdAogZm04MDFjaF9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgZm04MDFfY2hpbmZvICpj aCA9IGRhdGE7CkBAIC00ODksNyArNDg5LDcgQEAgZm04MDFjaF90cmlnZ2VyKGtvYmpfdCBv YmosIHZvaWQgKmRhdGEsIGludCBnbykKIH0KIAogLyogQWxtb3N0IEFMU0EgY29weSAqLwot c3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZm04MDFjaF9nZXRwdHIoa29ial90IG9i aiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZm04MDFfY2hpbmZvICpjaCA9IGRhdGE7CmRp ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9oZGEvaGRhYy5jIGIvc3lzL2Rldi9zb3Vu ZC9wY2kvaGRhL2hkYWMuYwppbmRleCBlNTgwOTQ0Li44NmY2MzI0IDEwMDY0NAotLS0gYS9z eXMvZGV2L3NvdW5kL3BjaS9oZGEvaGRhYy5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2hk YS9oZGFjLmMKQEAgLTMzNzAsNyArMzM3MCw3IEBAIGhkYWNfY2hhbm5lbF9zZXRmb3JtYXQo a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3QgZm9ybWF0KQogCXJldHVybiAoRUlO VkFMKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBoZGFjX2NoYW5uZWxf c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3Qgc3BlZWQpCiB7CiAJ c3RydWN0IGhkYWNfY2hhbiAqY2ggPSBkYXRhOwpAQCAtMzUxOCw3ICszNTE4LDcgQEAgaGRh Y19jaGFubmVsX3NldGZyYWdtZW50cyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLAogCXJldHVy biAoMSk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaGRhY19jaGFubmVs X3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikK IHsKIAlzdHJ1Y3QgaGRhY19jaGFuICpjaCA9IGRhdGE7CkBAIC0zNTkyLDcgKzM1OTIsNyBA QCBoZGFjX2NoYW5uZWxfdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28p CiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBoZGFj X2NoYW5uZWxfZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGhk YWNfY2hhbiAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvaWNo LmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9pY2guYwppbmRleCA3MzUxMzU1Li5hMzNjOTg2IDEw MDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9pY2guYworKysgYi9zeXMvZGV2L3NvdW5k L3BjaS9pY2guYwpAQCAtMjY5LDcgKzI2OSw3IEBAIGljaF9yZGNkKGtvYmpfdCBvYmosIHZv aWQgKmRldmluZm8sIGludCByZWdubykKIH0KIAogc3RhdGljIGludAotaWNoX3dyY2Qoa29i al90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1aW50MTZfdCBkYXRhKQoraWNo X3dyY2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1aW50MzJfdCBk YXRhKQogewogCXN0cnVjdCBzY19pbmZvICpzYyA9IChzdHJ1Y3Qgc2NfaW5mbyAqKWRldmlu Zm87CiAKQEAgLTQzOSw3ICs0MzksNyBAQCBpY2hjaGFuX3NldGZvcm1hdChrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCB1aW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuICgwKTsKIH0KIAotc3Rh dGljIGludAorc3RhdGljIHVpbnQzMl90CiBpY2hjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmos IHZvaWQgKmRhdGEsIHVpbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19jaGluZm8gKmNo ID0gZGF0YTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCBpY2hjaGFuX3NldHNwZWVkKGtvYmpfdCBv YmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IHNwZWVkKQogCXJldHVybiAoY2gtPnNwZCk7CiB9 CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaWNoY2hhbl9zZXRibG9ja3NpemUo a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3QgYmxvY2tzaXplKQogewogCXN0cnVj dCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTUzNSw3ICs1MzUsNyBAQCBpY2hjaGFuX3Ry aWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAoMCk7CiB9 CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaWNoY2hhbl9nZXRwdHIoa29ial90 IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CmRp ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9tYWVzdHJvLmMgYi9zeXMvZGV2L3NvdW5k L3BjaS9tYWVzdHJvLmMKaW5kZXggY2VjNjkwYS4uMjE0MzA1MSAxMDA2NDQKLS0tIGEvc3lz L2Rldi9zb3VuZC9wY2kvbWFlc3Ryby5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL21hZXN0 cm8uYwpAQCAtMTM4MSwxMyArMTM4MSwxMyBAQCBhZ2dwY2hfc2V0Zm9ybWF0KGtvYmpfdCBv YmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGFnZ3BjaF9zZXRzcGVlZChrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJcmV0dXJuICgoc3RydWN0IGFn Z19jaGluZm8qKWRhdGEpLT5zcGVlZCA9IHNwZWVkOwogfQogCi1zdGF0aWMgaW50CitzdGF0 aWMgdV9pbnQzMl90CiBhZ2dwY2hfc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRh dGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IGFnZ19jaGluZm8gKmNoID0g ZGF0YTsKQEAgLTE0MzAsNyArMTQzMCw3IEBAIGFnZ3BjaF90cmlnZ2VyKGtvYmpfdCBvYmos IHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3Rh dGljIHVfaW50MzJfdAogYWdncGNoX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQog ewogCXN0cnVjdCBhZ2dfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xNTI2LDEzICsxNTI2LDEz IEBAIGFnZ3JjaF9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90 IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf dAogYWdncmNoX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBz cGVlZCkKIHsKIAlyZXR1cm4gKChzdHJ1Y3QgYWdnX3JjaGluZm8qKWRhdGEpLT5zcGVlZCA9 IHNwZWVkOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhZ2dyY2hfc2V0 YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUp CiB7CiAJc3RydWN0IGFnZ19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xNTc5LDcgKzE1Nzks NyBAQCBhZ2dyY2hfdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpzYywgaW50IGdvKQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhZ2dyY2hfZ2V0 cHRyKGtvYmpfdCBvYmosIHZvaWQgKnNjKQogewogCXN0cnVjdCBhZ2dfcmNoaW5mbyAqY2gg PSBzYzsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL21hZXN0cm8zLmMgYi9zeXMv ZGV2L3NvdW5kL3BjaS9tYWVzdHJvMy5jCmluZGV4IDhmMTA4NGMuLjEwZWJkYTAgMTAwNjQ0 Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL21hZXN0cm8zLmMKKysrIGIvc3lzL2Rldi9zb3Vu ZC9wY2kvbWFlc3RybzMuYwpAQCAtMTYyLDggKzE2Miw4IEBAIHN0cnVjdCBzY19pbmZvIHsK IHN0YXRpYyB2b2lkICptM19wY2hhbl9pbml0KGtvYmpfdCwgdm9pZCAqLCBzdHJ1Y3Qgc25k X2RidWYgKiwgc3RydWN0IHBjbV9jaGFubmVsICosIGludCk7CiBzdGF0aWMgaW50IG0zX3Bj aGFuX2ZyZWUoa29ial90LCB2b2lkICopOwogc3RhdGljIGludCBtM19wY2hhbl9zZXRmb3Jt YXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IG0zX3BjaGFuX3Nl dHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwotc3RhdGljIGludCBtM19wY2hh bl9zZXRibG9ja3NpemUoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7CitzdGF0aWMgdV9p bnQzMl90IG0zX3BjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwor c3RhdGljIHVfaW50MzJfdCBtM19wY2hhbl9zZXRibG9ja3NpemUoa29ial90LCB2b2lkICos IHVfaW50MzJfdCk7CiBzdGF0aWMgaW50IG0zX3BjaGFuX3RyaWdnZXIoa29ial90LCB2b2lk ICosIGludCk7CiBzdGF0aWMgaW50IG0zX3BjaGFuX3RyaWdnZXJfbG9ja2VkKGtvYmpfdCwg dm9pZCAqLCBpbnQpOwogc3RhdGljIHVfaW50MzJfdCBtM19wY2hhbl9nZXRwdHJfaW50ZXJu YWwoc3RydWN0IHNjX3BjaGluZm8gKik7CkBAIC0xNzQsOCArMTc0LDggQEAgc3RhdGljIHN0 cnVjdCBwY21jaGFuX2NhcHMgKm0zX3BjaGFuX2dldGNhcHMoa29ial90LCB2b2lkICopOwog c3RhdGljIHZvaWQgKm0zX3JjaGFuX2luaXQoa29ial90LCB2b2lkICosIHN0cnVjdCBzbmRf ZGJ1ZiAqLCBzdHJ1Y3QgcGNtX2NoYW5uZWwgKiwgaW50KTsKIHN0YXRpYyBpbnQgbTNfcmNo YW5fZnJlZShrb2JqX3QsIHZvaWQgKik7CiBzdGF0aWMgaW50IG0zX3JjaGFuX3NldGZvcm1h dChrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKLXN0YXRpYyBpbnQgbTNfcmNoYW5fc2V0 c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IG0zX3JjaGFu X3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKK3N0YXRpYyB1X2lu dDMyX3QgbTNfcmNoYW5fc2V0c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Citz dGF0aWMgdV9pbnQzMl90IG0zX3JjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwg dV9pbnQzMl90KTsKIHN0YXRpYyBpbnQgbTNfcmNoYW5fdHJpZ2dlcihrb2JqX3QsIHZvaWQg KiwgaW50KTsKIHN0YXRpYyBpbnQgbTNfcmNoYW5fdHJpZ2dlcl9sb2NrZWQoa29ial90LCB2 b2lkICosIGludCk7CiBzdGF0aWMgdV9pbnQzMl90IG0zX3JjaGFuX2dldHB0cl9pbnRlcm5h bChzdHJ1Y3Qgc2NfcmNoaW5mbyAqKTsKQEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgc3Ry dWN0IHBjbWNoYW5fY2FwcyAqbTNfcmNoYW5fZ2V0Y2Fwcyhrb2JqX3QsIHZvaWQgKik7CiBz dGF0aWMgaW50IG0zX2NoYW5fYWN0aXZlKHN0cnVjdCBzY19pbmZvICopOwogCiAvKiB0YWxr IHRvIHRoZSBjb2RlYyAtIGNhbGxlZCBmcm9tIGFjOTcuYyAqLwotc3RhdGljIGludAkgbTNf aW5pdGNkKGtvYmpfdCwgdm9pZCAqKTsKK3N0YXRpYyB1X2ludDMyX3QJIG0zX2luaXRjZChr b2JqX3QsIHZvaWQgKik7CiBzdGF0aWMgaW50CSBtM19yZGNkKGtvYmpfdCwgdm9pZCAqLCBp bnQpOwogc3RhdGljIGludCAgCSBtM193cmNkKGtvYmpfdCwgdm9pZCAqLCBpbnQsIHVfaW50 MzJfdCk7CiAKQEAgLTMwOSw3ICszMDksNyBAQCBtM193YWl0KHN0cnVjdCBzY19pbmZvICpz YykKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBhYzk3IGNvZGVjICovCiAKLXN0YXRpYyBp bnQKK3N0YXRpYyB1X2ludDMyX3QKIG0zX2luaXRjZChrb2JqX3Qga29iaiwgdm9pZCAqZGV2 aW5mbykKIHsKIAlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSAoc3RydWN0IHNjX2luZm8gKilkZXZp bmZvOwpAQCAtNTMyLDcgKzUzMiw3IEBAIG0zX3BjaGFuX3NldGZvcm1hdChrb2JqX3Qga29i aiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogICAgICAgICByZXR1cm4gKDAp OwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtM19wY2hhbl9zZXRzcGVl ZChrb2JqX3Qga29iaiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3Ry dWN0IHNjX3BjaGluZm8gKmNoID0gY2hkYXRhOwpAQCAtNTU1LDcgKzU1NSw3IEBAIG0zX3Bj aGFuX3NldHNwZWVkKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50MzJfdCBzcGVl ZCkKIAlyZXR1cm4gKHNwZWVkKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf dAogbTNfcGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVf aW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gY2hkYXRh OwpAQCAtODc4LDcgKzg3OCw3IEBAIG0zX3JjaGFuX3NldGZvcm1hdChrb2JqX3Qga29iaiwg dm9pZCAqY2hkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogICAgICAgICByZXR1cm4gKDApOwog fQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtM19yY2hhbl9zZXRzcGVlZChr b2JqX3Qga29iaiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0 IHNjX3JjaGluZm8gKmNoID0gY2hkYXRhOwpAQCAtOTAxLDcgKzkwMSw3IEBAIG0zX3JjaGFu X3NldHNwZWVkKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50MzJfdCBzcGVlZCkK IAlyZXR1cm4gKHNwZWVkKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog bTNfcmNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50 MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gY2hkYXRhOwpk aWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvbmVvbWFnaWMuYyBiL3N5cy9kZXYvc291 bmQvcGNpL25lb21hZ2ljLmMKaW5kZXggNGIwMTFiYi4uZTM5MWRiNSAxMDA2NDQKLS0tIGEv c3lzL2Rldi9zb3VuZC9wY2kvbmVvbWFnaWMuYworKysgYi9zeXMvZGV2L3NvdW5kL3BjaS9u ZW9tYWdpYy5jCkBAIC0zODAsNyArMzgwLDcgQEAgbm1jaGFuX3NldGZvcm1hdChrb2JqX3Qg b2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVybiBubV9zZXRjaChj aCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIG5tY2hhbl9zZXRzcGVl ZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0 IHNjX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtMzg5LDcgKzM4OSw3IEBAIG5tY2hhbl9zZXRz cGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJu IG5tX3NldGNoKGNoKT8gMCA6IGNoLT5zcGQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1 X2ludDMyX3QKIG5tY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg dV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7 CkBAIC00NDcsNyArNDQ3LDcgQEAgbm1jaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9p bnQzMl90CiBubWNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3Ry dWN0IHNjX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9w Y2kvc29sby5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvc29sby5jCmluZGV4IDVjZjc3NmQuLjFj M2Y2ZGMgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL3NvbG8uYworKysgYi9zeXMv ZGV2L3NvdW5kL3BjaS9zb2xvLmMKQEAgLTU1Niw3ICs1NTYsNyBAQCBlc3NjaGFuX3NldGZv cm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3NjaGFuX3NldHNw ZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKIAlzdHJ1 Y3QgZXNzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNTcwLDcgKzU3MCw3IEBAIGVzc2NoYW5f c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJl dHVybiBjaC0+c3BkOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3Nj aGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxv Y2tzaXplKQogewogCXN0cnVjdCBlc3NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC02MDgsNyAr NjA4LDcgQEAgZXNzY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBn bykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZXNz Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZXNzX2No aW5mbyAqY2ggPSBkYXRhOwpAQCAtNzIwLDcgKzcyMCw3IEBAIGVzc21peF9zZXQoc3RydWN0 IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25lZCBy aWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwgOCk7CiB9CiAKLXN0YXRpYyBp bnQKK3N0YXRpYyB1X2ludDMyX3QKIGVzc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhl ciAqbSwgdV9pbnQzMl90IHNyYykKIHsKICAgICAJc3RydWN0IGVzc19pbmZvICpzYyA9IG1p eF9nZXRkZXZpbmZvKG0pOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvdDRkd2F2 ZS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdDRkd2F2ZS5jCmluZGV4IDM5Y2UwMmUuLjQ0Yzcy NDIgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL3Q0ZHdhdmUuYworKysgYi9zeXMv ZGV2L3NvdW5kL3BjaS90NGR3YXZlLmMKQEAgLTUxMCw3ICs1MTAsNyBAQCB0cnBjaGFuX3Nl dGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiB0cnBjaGFuX3Nl dHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKIAlz dHJ1Y3QgdHJfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MTksNyArNTE5LDcgQEAgdHJwY2hh bl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJ cmV0dXJuIChjaC0+ZGVsdGEgKiA0ODAwMCkgPj4gMTI7CiB9CiAKLXN0YXRpYyBpbnQKK3N0 YXRpYyB1X2ludDMyX3QKIHRycGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQg KmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHRyX2NoaW5mbyAqY2gg PSBkYXRhOwpAQCAtNTYxLDcgKzU2MSw3IEBAIHRycGNoYW5fdHJpZ2dlcihrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0 YXRpYyB1X2ludDMyX3QKIHRycGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEp CiB7CiAJc3RydWN0IHRyX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNjI3LDcgKzYyNyw3IEBA IHRycmNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBm b3JtYXQpCiAKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogdHJyY2hhbl9z ZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJ c3RydWN0IHRyX3JjaGluZm8gKmNoID0gZGF0YTsKQEAgLTY0MSw3ICs2NDEsNyBAQCB0cnJj aGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkK IAlyZXR1cm4gKDQ4MDAwIDw8IDEyKSAvIGNoLT5kZWx0YTsKIH0KIAotc3RhdGljIGludAor c3RhdGljIHVfaW50MzJfdAogdHJyY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9p ZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgdHJfcmNoaW5mbyAq Y2ggPSBkYXRhOwpAQCAtNjgzLDcgKzY4Myw3IEBAIHRycmNoYW5fdHJpZ2dlcihrb2JqX3Qg b2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQK K3N0YXRpYyB1X2ludDMyX3QKIHRycmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRh dGEpCiB7CiAgCXN0cnVjdCB0cl9yY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9z eXMvZGV2L3NvdW5kL3BjaS92aWE4MjMzLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS92aWE4MjMz LmMKaW5kZXggNjhkZTgxYi4uMGYwM2Y0MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9w Y2kvdmlhODIzMy5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL3ZpYTgyMzMuYwpAQCAtNDY5 LDcgKzQ2OSw3IEBAIHZpYTgyMzNtc2dkX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpk YXRhLCB1aW50MzJfdCBmb3JtYXQpCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogU3BlZWQg c2V0dGluZyBmdW5jdGlvbnMgKi8KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiB2 aWE4MjMzd3Jfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3Qgc3Bl ZWQpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTQ4MSw3ICs0ODEs NyBAQCB2aWE4MjMzd3Jfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMy X3Qgc3BlZWQpCiAJcmV0dXJuICg0ODAwMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1 aW50MzJfdAogdmlhODIzM2R4c19zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1 aW50MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt NTAxLDcgKzUwMSw3IEBAIHZpYTgyMzNkeHNfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChzcGVlZCk7CiB9CiAKLXN0YXRpYyBp bnQKK3N0YXRpYyB1aW50MzJfdAogdmlhODIzM21zZ2Rfc2V0c3BlZWQoa29ial90IG9iaiwg dm9pZCAqZGF0YSwgdWludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNo ID0gZGF0YTsKQEAgLTU5OSw3ICs1OTksNyBAQCB2aWE4MjMzY2hhbl9zZXRmcmFnbWVudHMo a29ial90IG9iaiwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gKDEpOwogfQogCi1zdGF0aWMgaW50 CitzdGF0aWMgdWludDMyX3QKIHZpYTgyMzNjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2Jq LCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikKIHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAq Y2ggPSBkYXRhOwpAQCAtNjEwLDcgKzYxMCw3IEBAIHZpYTgyMzNjaGFuX3NldGJsb2Nrc2l6 ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikKIAlyZXR1cm4gKGNo LT5ibGtzeik7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogdmlhODIzM2No YW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHZpYV9jaGlu Zm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL3ZpYTgyYzY4 Ni5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKaW5kZXggZTA0ZTQ4MC4uYzkw NDQ0MyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKKysrIGIv c3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKQEAgLTMwMCw3ICszMDAsNyBAQCB2aWFj aGFuX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0 KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiB2aWFj aGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkK IHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtMzIzLDcgKzMyMyw3IEBA IHZpYWNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw ZWVkKQogCQlyZXR1cm4gNDgwMDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMy X3QKIHZpYWNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50 MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNoID0gZGF0YTsKQEAg LTM2MSw3ICszNjEsNyBAQCB2aWFjaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0 YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQz Ml90CiB2aWFjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVj dCB2aWFfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3Bj aS92aWJlcy5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdmliZXMuYwppbmRleCBlZTIwNWZlLi43 NWFlZDQxIDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS92aWJlcy5jCisrKyBiL3N5 cy9kZXYvc291bmQvcGNpL3ZpYmVzLmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdmNoYW5fZ2V0 Y2Fwcyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogICAgICAgICByZXR1cm4gJnNjX2NhcHM7 CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHN2Y2hhbl9zZXRibG9ja3Np emUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlz dHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0yMzQsNyArMjM0LDcgQEAgc3ZjaGFu X3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdmNoYW5f c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdnJj aGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAw OwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdnJjaGFuX2dldHB0cihr b2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19jaGluZm8JKmNoID0gZGF0 YTsKQEAgLTQyNCw3ICs0MjQsNyBAQCBzdnBjaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9p ZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dV9pbnQzMl90CiBzdnBjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewog CXN0cnVjdCBzY19jaGluZm8JKmNoID0gZGF0YTsKQEAgLTUzNiw3ICs1MzYsNyBAQCBzdl9t aXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBkZXYsIHVfaW50MzJfdCBs ZWZ0LCB1X2ludDMyX3QgcmlnaHQpCiAJcmV0dXJuIHN2X2dhaW4oc2MsIGRldiwgbGVmdCwg cmlnaHQpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdl9taXhfc2V0 cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBtYXNrKQogewogCXN0cnVj dCBzY19pbmZvCSpzYyA9IG1peF9nZXRkZXZpbmZvKG0pOwpkaWZmIC0tZ2l0IGEvc3lzL2Rl di9zb3VuZC9wY20vYWM5Ny5jIGIvc3lzL2Rldi9zb3VuZC9wY20vYWM5Ny5jCmluZGV4IDIy YzE0ZTguLjlmMWIxYmMgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNtL2FjOTcuYwor KysgYi9zeXMvZGV2L3NvdW5kL3BjbS9hYzk3LmMKQEAgLTEwNTMsNyArMTA1Myw3IEBAIGFj OTdtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQg bGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0dXJuIGFjOTdfc2V0bWl4ZXIoY29kZWMsIGRl diwgbGVmdCwgcmlnaHQpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBh Yzk3bWl4X3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQog ewogCWludCBpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY20vY2hhbm5lbF9pZi5t IGIvc3lzL2Rldi9zb3VuZC9wY20vY2hhbm5lbF9pZi5tCmluZGV4IDM0MjlhMzMuLjJiMzc1 NTcgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNtL2NoYW5uZWxfaWYubQorKysgYi9z eXMvZGV2L3NvdW5kL3BjbS9jaGFubmVsX2lmLm0KQEAgLTEyMCw3ICsxMjAsNyBAQCBNRVRI T0QgaW50IHNldGRpciB7CiAJaW50IGRpcjsKIH0gREVGQVVMVCBjaGFubmVsX25vc2V0ZGly OwogCi1NRVRIT0QgdV9pbnQzMl90IHNldGZvcm1hdCB7CitNRVRIT0QgaW50IHNldGZvcm1h dCB7CiAJa29ial90IG9iajsKIAl2b2lkICpkYXRhOwogCXVfaW50MzJfdCBmb3JtYXQ7CmRp ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjbS9mYWtlLmMgYi9zeXMvZGV2L3NvdW5kL3Bj bS9mYWtlLmMKaW5kZXggOWNkMTdlMS4uOTkxZjhlNSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9z b3VuZC9wY20vZmFrZS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNtL2Zha2UuYwpAQCAtODgs MTMgKzg4LDEzIEBAIGZrY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg dV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj IHVfaW50MzJfdAogZmtjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVf aW50MzJfdCBzcGVlZCkKIHsKIAlyZXR1cm4gc3BlZWQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0 YXRpYyB1X2ludDMyX3QKIGZrY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlyZXR1cm4gYmxvY2tzaXplOwpAQCAt MTA2LDcgKzEwNiw3IEBAIGZrY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf dAogZmtjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXJldHVybiAw OwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY20vdmNoYW4uYyBiL3N5cy9kZXYvc291 bmQvcGNtL3ZjaGFuLmMKaW5kZXggZDg4MTY1NC4uYmEwMjUyMyAxMDA2NDQKLS0tIGEvc3lz L2Rldi9zb3VuZC9wY20vdmNoYW4uYworKysgYi9zeXMvZGV2L3NvdW5kL3BjbS92Y2hhbi5j CkBAIC00MjAsNyArNDIwLDcgQEAgdmNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQg KmRhdGEsIHVpbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50 CitzdGF0aWMgdWludDMyX3QKIHZjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRh dGEsIHVpbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCB2Y2hpbmZvICpjaCA9IGRhdGE7CmRp ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3VzYi91YXVkaW9fcGNtLmMgYi9zeXMvZGV2L3Nv dW5kL3VzYi91YXVkaW9fcGNtLmMKaW5kZXggZTIyN2YxYi4uNWE0N2M5OCAxMDA2NDQKLS0t IGEvc3lzL2Rldi9zb3VuZC91c2IvdWF1ZGlvX3BjbS5jCisrKyBiL3N5cy9kZXYvc291bmQv dXNiL3VhdWRpb19wY20uYwpAQCAtNTcsMTMgKzU3LDEzIEBAIHVhX2NoYW5fc2V0Zm9ybWF0 KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKHVh dWRpb19jaGFuX3NldF9wYXJhbV9mb3JtYXQoZGF0YSwgZm9ybWF0KSk7CiB9CiAKLXN0YXRp YyBpbnQKK3N0YXRpYyB1aW50MzJfdAogdWFfY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2 b2lkICpkYXRhLCB1aW50MzJfdCBzcGVlZCkKIHsKIAlyZXR1cm4gKHVhdWRpb19jaGFuX3Nl dF9wYXJhbV9zcGVlZChkYXRhLCBzcGVlZCkpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg dWludDMyX3QKIHVhX2NoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs IHVpbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlyZXR1cm4gKHVhdWRpb19jaGFuX3NldF9wYXJh bV9ibG9ja3NpemUoZGF0YSwgYmxvY2tzaXplKSk7CkBAIC04OCw3ICs4OCw3IEBAIHVhX2No YW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJfQogfQogCi1z dGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIHVhX2NoYW5fZ2V0cHRyKGtvYmpfdCBvYmos IHZvaWQgKmRhdGEpCiB7CiAJcmV0dXJuICh1YXVkaW9fY2hhbl9nZXRwdHIoZGF0YSkpOwpA QCAtMTQxLDcgKzE0MSw3IEBAIHVhX21peGVyX3NldChzdHJ1Y3Qgc25kX21peGVyICptLCB1 bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKIAlyZXR1cm4g KGxlZnQgfCAocmlnaHQgPDwgOCkpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWludDMy X3QKIHVhX21peGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1aW50MzJfdCBz cmMpCiB7CiAJc3RydWN0IG10eCAqbXR4ID0gbWl4ZXJfZ2V0X2xvY2sobSk7Cg== --------------060901080909010407040201--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49E62215.4010309>