From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Sharma Date: Mon, 04 Oct 2004 19:46:41 +0000 Subject: Re: yet another sparse-detected bug fix Message-Id: <4161A8A1.4010002@intel.com> MIME-Version: 1 Content-Type: multipart/mixed; boundary="------------060200080304000004070908" List-Id: References: <200410041545.i94FjQd0031552@napali.hpl.hp.com> In-Reply-To: <200410041545.i94FjQd0031552@napali.hpl.hp.com> To: linux-ia64@vger.kernel.org This is a multi-part message in MIME format. --------------060200080304000004070908 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/4/2004 8:45 AM, David Mosberger wrote: Hi David, > Arun, > > copy_siginfo_from_user32() directly dereferences a user-pointer, which > is a no-no. At that point, to->si_code already has been initialized > so I think we can just use to->si_code instead. Compile-tested (only) > patch attached. > > Signed-off-by: davidm@hpl.hp.com I've been meaning to run sparse myself. But it wasn't very effective the last time I tried because of the missing __user annotations. Please review the attached patches that add the missing annotations so that we can make it easy to spot these errors in the future. -Arun --------------060200080304000004070908 Content-Type: text/plain; name="user-annotate-ia64.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="user-annotate-ia64.patch" SW5kZXg6IGxpbnV4LTIuNi1jdnMvaW5jbHVkZS9hc20taWE2NC91YWNjZXNzLmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvYWRzaGFybWEvZGlzazIvY3ZzL2xpbnV4LTIuNS9p bmNsdWRlL2FzbS1pYTY0L3VhY2Nlc3MuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOQpk aWZmIC11IC1yMS4xOSB1YWNjZXNzLmgKLS0tIGxpbnV4LTIuNi1jdnMvaW5jbHVkZS9hc20t aWE2NC91YWNjZXNzLmgJMjcgQXVnIDIwMDQgMTc6NDM6MTQgLTAwMDAJMS4xOQorKysgbGlu dXgtMi42LWN2cy9pbmNsdWRlL2FzbS1pYTY0L3VhY2Nlc3MuaAk0IE9jdCAyMDA0IDE5OjI4 OjI2IC0wMDAwCkBAIC02Nyw3ICs2Nyw3IEBACiAjZGVmaW5lIGFjY2Vzc19vayh0eXBlLCBh ZGRyLCBzaXplKQlfX2FjY2Vzc19vaygoYWRkciksIChzaXplKSwgZ2V0X2ZzKCkpCiAKIHN0 YXRpYyBpbmxpbmUgaW50Ci12ZXJpZnlfYXJlYSAoaW50IHR5cGUsIGNvbnN0IHZvaWQgKmFk ZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3ZlcmlmeV9hcmVhIChpbnQgdHlwZSwgY29uc3Qg dm9pZCBfX3VzZXIgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlyZXR1cm4gYWNj ZXNzX29rKHR5cGUsIGFkZHIsIHNpemUpID8gMCA6IC1FRkFVTFQ7CiB9CkBAIC0xODUsNyAr MTg1LDcgQEAKICAqLwogI2RlZmluZSBfX2RvX2dldF91c2VyKGNoZWNrLCB4LCBwdHIsIHNp emUsIHNlZ21lbnQpCQkJCQlcCiAoewkJCQkJCQkJCQkJXAotCWNvbnN0IF9fdHlwZW9mX18o KihwdHIpKSAqX19ndV9wdHIgPSAocHRyKTsJCQkJCVwKKwljb25zdCBfX3R5cGVvZl9fKCoo cHRyKSkgX191c2VyICpfX2d1X3B0ciA9IChwdHIpOwkJCQlcCiAJX190eXBlb2ZfXyAoc2l6 ZSkgX19ndV9zaXplID0gKHNpemUpOwkJCQkJCVwKIAlsb25nIF9fZ3VfZXJyID0gLUVGQVVM VCwgX19ndV92YWwgPSAwOwkJCQkJCVwKIAkJCQkJCQkJCQkJXApAQCAtMjEzLDcgKzIxMyw3 IEBACiAjZGVmaW5lIF9fZG9fcHV0X3VzZXIoY2hlY2ssIHgsIHB0ciwgc2l6ZSwgc2VnbWVu dCkJCQkJCVwKICh7CQkJCQkJCQkJCQlcCiAJX190eXBlb2ZfXyAoeCkgX19wdV94ID0gKHgp OwkJCQkJCQlcCi0JX190eXBlb2ZfXyAoKihwdHIpKSAqX19wdV9wdHIgPSAocHRyKTsJCQkJ CQlcCisJX190eXBlb2ZfXyAoKihwdHIpKSBfX3VzZXIgKl9fcHVfcHRyID0gKHB0cik7CQkJ CQlcCiAJX190eXBlb2ZfXyAoc2l6ZSkgX19wdV9zaXplID0gKHNpemUpOwkJCQkJCVwKIAls b25nIF9fcHVfZXJyID0gLUVGQVVMVDsJCQkJCQkJXAogCQkJCQkJCQkJCQlcCkBAIC0yNDAs MzEgKzI0MCw0MCBAQAogI2RlZmluZSBfX2NvcHlfZnJvbV91c2VyKHRvLCBmcm9tLCBuKQlf X2NvcHlfdXNlcigodG8pLCAoZnJvbSksIChuKSkKICNkZWZpbmUgX19jb3B5X3RvX3VzZXJf aW5hdG9taWMgX19jb3B5X3RvX3VzZXIKICNkZWZpbmUgX19jb3B5X2Zyb21fdXNlcl9pbmF0 b21pYyBfX2NvcHlfZnJvbV91c2VyCi0jZGVmaW5lIGNvcHlfdG9fdXNlcih0bywgZnJvbSwg bikJX19jb3B5X3RvZnJvbV91c2VyKCh0byksIChmcm9tKSwgKG4pLCAxKQotI2RlZmluZSBj b3B5X2Zyb21fdXNlcih0bywgZnJvbSwgbikJX19jb3B5X3RvZnJvbV91c2VyKCh0byksIChm cm9tKSwgKG4pLCAwKQogCi0jZGVmaW5lIF9fY29weV90b2Zyb21fdXNlcih0bywgZnJvbSwg biwgY2hlY2tfdG8pCQkJCQlcCisjZGVmaW5lIGNvcHlfdG9fdXNlcih0bywgZnJvbSwgbikJ CQkJCQkJXAogKHsJCQkJCQkJCQkJCVwKLQl2b2lkICpfX2N1X3RvID0gKHRvKTsJCQkJCQkJ CVwKKwl2b2lkIF9fdXNlciAqX19jdV90byA9ICh0byk7CQkJCQkJCVwKIAljb25zdCB2b2lk ICpfX2N1X2Zyb20gPSAoZnJvbSk7CQkJCQkJCVwKIAlsb25nIF9fY3VfbGVuID0gKG4pOwkJ CQkJCQkJXAogCQkJCQkJCQkJCQlcCi0JaWYgKF9fYWNjZXNzX29rKChsb25nKSAoKGNoZWNr X3RvKSA/IF9fY3VfdG8gOiBfX2N1X2Zyb20pLCBfX2N1X2xlbiwgZ2V0X2ZzKCkpKQlcCi0J CV9fY3VfbGVuID0gX19jb3B5X3VzZXIoX19jdV90bywgX19jdV9mcm9tLCBfX2N1X2xlbik7 CQkJXAorCWlmIChfX2FjY2Vzc19vaygobG9uZykgX19jdV90bywgX19jdV9sZW4sIGdldF9m cygpKSkJCQkJXAorCQlfX2N1X2xlbiA9IF9fY29weV91c2VyKCh2b2lkICopIF9fY3VfdG8s IF9fY3VfZnJvbSwgX19jdV9sZW4pOwkJXAorCV9fY3VfbGVuOwkJCQkJCQkJCVwKK30pCisK KyNkZWZpbmUgY29weV9mcm9tX3VzZXIodG8sIGZyb20sIG4pCQkJCQkJCVwKKyh7CQkJCQkJ CQkJCQlcCisJdm9pZCAqX19jdV90byA9ICh0byk7CQkJCQkJCQlcCisJY29uc3Qgdm9pZCBf X3VzZXIgKl9fY3VfZnJvbSA9IChmcm9tKTsJCQkJCQlcCisJbG9uZyBfX2N1X2xlbiA9IChu KTsJCQkJCQkJCVwKKwkJCQkJCQkJCQkJXAorCWlmIChfX2FjY2Vzc19vaygobG9uZykgX19j dV9mcm9tLCBfX2N1X2xlbiwgZ2V0X2ZzKCkpKQkJCQlcCisJCV9fY3VfbGVuID0gX19jb3B5 X3VzZXIoX19jdV90bywgKGNvbnN0IHZvaWQgKikgX19jdV9mcm9tLCBfX2N1X2xlbik7CVwK IAlfX2N1X2xlbjsJCQkJCQkJCQlcCiB9KQogCiAjZGVmaW5lIF9fY29weV9pbl91c2VyKHRv LCBmcm9tLCBzaXplKQlfX2NvcHlfdXNlcigodG8pLCAoZnJvbSksIChzaXplKSkKIAogc3Rh dGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1jb3B5X2luX3VzZXIgKHZvaWQgKnRvLCBjb25z dCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCitjb3B5X2luX3VzZXIgKHZvaWQgKnRv LCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKQogewogCWlmIChs aWtlbHkoYWNjZXNzX29rKFZFUklGWV9SRUFELCBmcm9tLCBuKSAmJiBhY2Nlc3Nfb2soVkVS SUZZX1dSSVRFLCB0bywgbikpKQogCQluID0gX19jb3B5X3VzZXIodG8sIGZyb20sIG4pOwog CXJldHVybiBuOwogfQogCi1leHRlcm4gdW5zaWduZWQgbG9uZyBfX2RvX2NsZWFyX3VzZXIg KHZvaWQgKiwgdW5zaWduZWQgbG9uZyk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBfX2RvX2Ns ZWFyX3VzZXIgKHZvaWQgX191c2VyICosIHVuc2lnbmVkIGxvbmcpOwogCiAjZGVmaW5lIF9f Y2xlYXJfdXNlcih0bywgbikJCV9fZG9fY2xlYXJfdXNlcih0bywgbikKIApAQCAtMjgxLDEx ICsyOTAsMTEgQEAKICAqIFJldHVybnM6IC1FRkFVTFQgaWYgZXhjZXB0aW9uIGJlZm9yZSB0 ZXJtaW5hdG9yLCBOIGlmIHRoZSBlbnRpcmUgYnVmZmVyIGZpbGxlZCwgZWxzZQogICogc3Ry bGVuLgogICovCi1leHRlcm4gbG9uZyBfX3N0cm5jcHlfZnJvbV91c2VyIChjaGFyICp0bywg Y29uc3QgY2hhciAqZnJvbSwgbG9uZyB0b19sZW4pOworZXh0ZXJuIGxvbmcgX19zdHJuY3B5 X2Zyb21fdXNlciAoY2hhciAqdG8sIGNvbnN0IGNoYXIgX191c2VyICpmcm9tLCBsb25nIHRv X2xlbik7CiAKICNkZWZpbmUgc3RybmNweV9mcm9tX3VzZXIodG8sIGZyb20sIG4pCQkJCQlc CiAoewkJCQkJCQkJCVwKLQljb25zdCBjaGFyICogX19zZnVfZnJvbSA9IChmcm9tKTsJCQkJ XAorCWNvbnN0IGNoYXIgX191c2VyICogX19zZnVfZnJvbSA9IChmcm9tKTsJCQkJXAogCWxv bmcgX19zZnVfcmV0ID0gLUVGQVVMVDsJCQkJCVwKIAlpZiAoX19hY2Nlc3Nfb2soKGxvbmcp IF9fc2Z1X2Zyb20sIDAsIGdldF9mcygpKSkJCVwKIAkJX19zZnVfcmV0ID0gX19zdHJuY3B5 X2Zyb21fdXNlcigodG8pLCBfX3NmdV9mcm9tLCAobikpOwlcCkBAIC0yOTMsMTEgKzMwMiwx MSBAQAogfSkKIAogLyogUmV0dXJuczogMCBpZiBiYWQsIHN0cmluZyBsZW5ndGgrMSAobWVt b3J5IHNpemUpIG9mIHN0cmluZyBpZiBvayAqLwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19z dHJsZW5fdXNlciAoY29uc3QgY2hhciAqKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fc3Ry bGVuX3VzZXIgKGNvbnN0IGNoYXIgX191c2VyICopOwogCiAjZGVmaW5lIHN0cmxlbl91c2Vy KHN0cikJCQkJXAogKHsJCQkJCQkJXAotCWNvbnN0IGNoYXIgKl9fc3Vfc3RyID0gKHN0cik7 CQkJXAorCWNvbnN0IGNoYXIgX191c2VyICpfX3N1X3N0ciA9IChzdHIpOwkJCVwKIAl1bnNp Z25lZCBsb25nIF9fc3VfcmV0ID0gMDsJCQlcCiAJaWYgKF9fYWNjZXNzX29rKChsb25nKSBf X3N1X3N0ciwgMCwgZ2V0X2ZzKCkpKQlcCiAJCV9fc3VfcmV0ID0gX19zdHJsZW5fdXNlcihf X3N1X3N0cik7CVwKQEAgLTMwOSw3ICszMTgsNyBAQAogICogKE4pLCBhIHZhbHVlIGdyZWF0 ZXIgdGhhbiBOIGlmIHRoZSBsaW1pdCB3b3VsZCBiZSBleGNlZWRlZCwgZWxzZQogICogc3Ry bGVuLgogICovCi1leHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0cm5sZW5fdXNlciAoY29uc3Qg Y2hhciAqLCBsb25nKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fc3Rybmxlbl91c2VyIChj b25zdCBjaGFyIF9fdXNlciAqLCBsb25nKTsKIAogI2RlZmluZSBzdHJubGVuX3VzZXIoc3Ry LCBsZW4pCQkJCQlcCiAoewkJCQkJCQkJXAo= --------------060200080304000004070908 Content-Type: text/plain; name="user-annotate.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="user-annotate.patch" SW5kZXg6IGxpbnV4LTIuNi1jdnMvYXJjaC9pYTY0L2lhMzIvaWEzMl9sZHQuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvaG9tZS9hZHNoYXJtYS9kaXNrMi9jdnMvbGludXgtMi41L2Fy Y2gvaWE2NC9pYTMyL2lhMzJfbGR0LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZm IC11IC1yMS41IGlhMzJfbGR0LmMKLS0tIGxpbnV4LTIuNi1jdnMvYXJjaC9pYTY0L2lhMzIv aWEzMl9sZHQuYwkyMyBPY3QgMjAwMyAwMDo0MToyMiAtMDAwMAkxLjUKKysrIGxpbnV4LTIu Ni1jdnMvYXJjaC9pYTY0L2lhMzIvaWEzMl9sZHQuYwk0IE9jdCAyMDA0IDE4OjI4OjE5IC0w MDAwCkBAIC0xMjYsNyArMTI2LDcgQEAKIH0KIAogYXNtbGlua2FnZSBpbnQKLXN5czMyX21v ZGlmeV9sZHQgKGludCBmdW5jLCB1bnNpZ25lZCBpbnQgcHRyLCB1bnNpZ25lZCBpbnQgYnl0 ZWNvdW50KQorc3lzMzJfbW9kaWZ5X2xkdCAoaW50IGZ1bmMsIHVuc2lnbmVkIGludCBfX3Vz ZXIgcHRyLCB1bnNpZ25lZCBpbnQgYnl0ZWNvdW50KQogewogCWludCByZXQgPSAtRU5PU1lT OwogCkluZGV4OiBsaW51eC0yLjYtY3ZzL2FyY2gvaWE2NC9pYTMyL2lhMzJfc2lnbmFsLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvYWRzaGFybWEvZGlzazIvY3ZzL2xpbnV4 LTIuNS9hcmNoL2lhNjQvaWEzMi9pYTMyX3NpZ25hbC5jLHYKcmV0cmlldmluZyByZXZpc2lv biAxLjIyCmRpZmYgLXUgLXIxLjIyIGlhMzJfc2lnbmFsLmMKLS0tIGxpbnV4LTIuNi1jdnMv YXJjaC9pYTY0L2lhMzIvaWEzMl9zaWduYWwuYwkyMiBTZXAgMjAwNCAwNDoxNjoyMiAtMDAw MAkxLjIyCisrKyBsaW51eC0yLjYtY3ZzL2FyY2gvaWE2NC9pYTMyL2lhMzJfc2lnbmFsLmMJ NCBPY3QgMjAwNCAxODo0MTo1OSAtMDAwMApAQCAtNjYsNyArNjYsNyBAQAogfTsKIAogaW50 Ci1jb3B5X3NpZ2luZm9fZnJvbV91c2VyMzIgKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdDMy ICpmcm9tKQorY29weV9zaWdpbmZvX2Zyb21fdXNlcjMyIChzaWdpbmZvX3QgKnRvLCBzaWdp bmZvX3QzMiBfX3VzZXIgKmZyb20pCiB7CiAJdW5zaWduZWQgbG9uZyB0bXA7CiAJaW50IGVy cjsKQEAgLTExMCw3ICsxMTAsNyBAQAogfQogCiBpbnQKLWNvcHlfc2lnaW5mb190b191c2Vy MzIgKHNpZ2luZm9fdDMyICp0bywgc2lnaW5mb190ICpmcm9tKQorY29weV9zaWdpbmZvX3Rv X3VzZXIzMiAoc2lnaW5mb190MzIgX191c2VyICp0bywgc2lnaW5mb190ICpmcm9tKQogewog CXVuc2lnbmVkIGludCBhZGRyOwogCWludCBlcnI7CkBAIC0yMDIsNyArMjAyLDcgQEAKICAq LwogCiBzdGF0aWMgaW50Ci1zYXZlX2lhMzJfZnBzdGF0ZV9saXZlIChzdHJ1Y3QgX2Zwc3Rh dGVfaWEzMiAqc2F2ZSkKK3NhdmVfaWEzMl9mcHN0YXRlX2xpdmUgKHN0cnVjdCBfZnBzdGF0 ZV9pYTMyIF9fdXNlciAqc2F2ZSkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1 cnJlbnQ7CiAJc3RydWN0IHB0X3JlZ3MgKnB0cDsKQEAgLTMxMCw3ICszMTAsNyBAQAogfQog CiBzdGF0aWMgaW50Ci1yZXN0b3JlX2lhMzJfZnBzdGF0ZV9saXZlIChzdHJ1Y3QgX2Zwc3Rh dGVfaWEzMiAqc2F2ZSkKK3Jlc3RvcmVfaWEzMl9mcHN0YXRlX2xpdmUgKHN0cnVjdCBfZnBz dGF0ZV9pYTMyIF9fdXNlciAqc2F2ZSkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9 IGN1cnJlbnQ7CiAJc3RydWN0IHB0X3JlZ3MgKnB0cDsKQEAgLTQ1Myw3ICs0NTMsNyBAQAog fQogCiBhc21saW5rYWdlIGxvbmcKLWlhMzJfcnRfc2lnc3VzcGVuZCAoY29tcGF0X3NpZ3Nl dF90ICp1c2V0LCB1bnNpZ25lZCBpbnQgc2lnc2V0c2l6ZSwgc3RydWN0IHNpZ3NjcmF0Y2gg KnNjcikKK2lhMzJfcnRfc2lnc3VzcGVuZCAoY29tcGF0X3NpZ3NldF90IF9fdXNlciAqdXNl dCwgdW5zaWduZWQgaW50IHNpZ3NldHNpemUsIHN0cnVjdCBzaWdzY3JhdGNoICpzY3IpCiB7 CiAJZXh0ZXJuIGxvbmcgaWE2NF9kb19zaWduYWwgKHNpZ3NldF90ICpvbGRzZXQsIHN0cnVj dCBzaWdzY3JhdGNoICpzY3IsIGxvbmcgaW5fc3lzY2FsbCk7CiAJc2lnc2V0X3Qgb2xkc2V0 LCBzZXQ7CkBAIC01MTIsOCArNTEyLDggQEAKIH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMz Ml9ydF9zaWdhY3Rpb24gKGludCBzaWcsIHN0cnVjdCBzaWdhY3Rpb24zMiAqYWN0LAotCQkg ICAgc3RydWN0IHNpZ2FjdGlvbjMyICpvYWN0LCB1bnNpZ25lZCBpbnQgc2lnc2V0c2l6ZSkK K3N5czMyX3J0X3NpZ2FjdGlvbiAoaW50IHNpZywgc3RydWN0IHNpZ2FjdGlvbjMyIF9fdXNl ciAqYWN0LAorCQkgICAgc3RydWN0IHNpZ2FjdGlvbjMyIF9fdXNlciAqb2FjdCwgdW5zaWdu ZWQgaW50IHNpZ3NldHNpemUpCiB7CiAJc3RydWN0IGtfc2lnYWN0aW9uIG5ld19rYSwgb2xk X2thOwogCXVuc2lnbmVkIGludCBoYW5kbGVyLCByZXN0b3JlcjsKQEAgLTU0Nyw3ICs1NDcs NyBAQAogCiAKIGFzbWxpbmthZ2UgbG9uZwotc3lzMzJfcnRfc2lncHJvY21hc2sgKGludCBo b3csIGNvbXBhdF9zaWdzZXRfdCAqc2V0LCBjb21wYXRfc2lnc2V0X3QgKm9zZXQsIHVuc2ln bmVkIGludCBzaWdzZXRzaXplKQorc3lzMzJfcnRfc2lncHJvY21hc2sgKGludCBob3csIGNv bXBhdF9zaWdzZXRfdCBfX3VzZXIgKnNldCwgY29tcGF0X3NpZ3NldF90IF9fdXNlciAqb3Nl dCwgdW5zaWduZWQgaW50IHNpZ3NldHNpemUpCiB7CiAJbW1fc2VnbWVudF90IG9sZF9mcyA9 IGdldF9mcygpOwogCXNpZ3NldF90IHM7CkBAIC01NzQsOCArNTc0LDggQEAKIH0KIAogYXNt bGlua2FnZSBsb25nCi1zeXMzMl9ydF9zaWd0aW1lZHdhaXQgKGNvbXBhdF9zaWdzZXRfdCAq dXRoZXNlLCBzaWdpbmZvX3QzMiAqdWluZm8sCi0JCXN0cnVjdCBjb21wYXRfdGltZXNwZWMg KnV0cywgdW5zaWduZWQgaW50IHNpZ3NldHNpemUpCitzeXMzMl9ydF9zaWd0aW1lZHdhaXQg KGNvbXBhdF9zaWdzZXRfdCBfX3VzZXIgKnV0aGVzZSwgc2lnaW5mb190MzIgX191c2VyICp1 aW5mbywKKwkJc3RydWN0IGNvbXBhdF90aW1lc3BlYyBfX3VzZXIgKnV0cywgdW5zaWduZWQg aW50IHNpZ3NldHNpemUpCiB7CiAJZXh0ZXJuIGludCBjb3B5X3NpZ2luZm9fdG9fdXNlcjMy IChzaWdpbmZvX3QzMiAqLCBzaWdpbmZvX3QgKik7CiAJbW1fc2VnbWVudF90IG9sZF9mcyA9 IGdldF9mcygpOwpAQCAtNjAwLDcgKzYwMCw3IEBACiB9CiAKIGFzbWxpbmthZ2UgbG9uZwot c3lzMzJfcnRfc2lncXVldWVpbmZvIChpbnQgcGlkLCBpbnQgc2lnLCBzaWdpbmZvX3QzMiAq dWluZm8pCitzeXMzMl9ydF9zaWdxdWV1ZWluZm8gKGludCBwaWQsIGludCBzaWcsIHNpZ2lu Zm9fdDMyIF9fdXNlciAqdWluZm8pCiB7CiAJbW1fc2VnbWVudF90IG9sZF9mcyA9IGdldF9m cygpOwogCXNpZ2luZm9fdCBpbmZvOwpAQCAtNjE1LDcgKzYxNSw3IEBACiB9CiAKIGFzbWxp bmthZ2UgbG9uZwotc3lzMzJfc2lnYWN0aW9uIChpbnQgc2lnLCBzdHJ1Y3Qgb2xkX3NpZ2Fj dGlvbjMyICphY3QsIHN0cnVjdCBvbGRfc2lnYWN0aW9uMzIgKm9hY3QpCitzeXMzMl9zaWdh Y3Rpb24gKGludCBzaWcsIHN0cnVjdCBvbGRfc2lnYWN0aW9uMzIgX191c2VyICphY3QsIHN0 cnVjdCBvbGRfc2lnYWN0aW9uMzIgX191c2VyICpvYWN0KQogewogCXN0cnVjdCBrX3NpZ2Fj dGlvbiBuZXdfa2EsIG9sZF9rYTsKIAl1bnNpZ25lZCBpbnQgaGFuZGxlciwgcmVzdG9yZXI7 CkBAIC02NDgsNyArNjQ4LDcgQEAKIH0KIAogc3RhdGljIGludAotc2V0dXBfc2lnY29udGV4 dF9pYTMyIChzdHJ1Y3Qgc2lnY29udGV4dF9pYTMyICpzYywgc3RydWN0IF9mcHN0YXRlX2lh MzIgKmZwc3RhdGUsCitzZXR1cF9zaWdjb250ZXh0X2lhMzIgKHN0cnVjdCBzaWdjb250ZXh0 X2lhMzIgX191c2VyICpzYywgc3RydWN0IF9mcHN0YXRlX2lhMzIgX191c2VyICpmcHN0YXRl LAogCQkgICAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgbWFzaykK IHsKIAlpbnQgIGVyciA9IDA7CkBAIC03MDUsNyArNzA1LDcgQEAKIH0KIAogc3RhdGljIGlu dAotcmVzdG9yZV9zaWdjb250ZXh0X2lhMzIgKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1 Y3Qgc2lnY29udGV4dF9pYTMyICpzYywgaW50ICpwZWF4KQorcmVzdG9yZV9zaWdjb250ZXh0 X2lhMzIgKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3Qgc2lnY29udGV4dF9pYTMyIF9f dXNlciAqc2MsIGludCAqcGVheCkKIHsKIAl1bnNpZ25lZCBpbnQgZXJyID0gMDsKIApAQCAt ODMwLDcgKzgzMCw3IEBACiBzZXR1cF9mcmFtZV9pYTMyIChpbnQgc2lnLCBzdHJ1Y3Qga19z aWdhY3Rpb24gKmthLCBzaWdzZXRfdCAqc2V0LCBzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MpCiB7 CiAJc3RydWN0IGV4ZWNfZG9tYWluICplZCA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+ZXhl Y19kb21haW47Ci0Jc3RydWN0IHNpZ2ZyYW1lX2lhMzIgKmZyYW1lOworCXN0cnVjdCBzaWdm cmFtZV9pYTMyIF9fdXNlciAqZnJhbWU7CiAJaW50IGVyciA9IDA7CiAKIAlmcmFtZSA9IGdl dF9zaWdmcmFtZShrYSwgcmVncywgc2l6ZW9mKCpmcmFtZSkpOwpAQCAtODk2LDcgKzg5Niw3 IEBACiAJCSAgICAgc2lnc2V0X3QgKnNldCwgc3RydWN0IHB0X3JlZ3MgKiByZWdzKQogewog CXN0cnVjdCBleGVjX2RvbWFpbiAqZWQgPSBjdXJyZW50X3RocmVhZF9pbmZvKCktPmV4ZWNf ZG9tYWluOwotCXN0cnVjdCBydF9zaWdmcmFtZV9pYTMyICpmcmFtZTsKKwlzdHJ1Y3QgcnRf c2lnZnJhbWVfaWEzMiBfX3VzZXIgKmZyYW1lOwogCWludCBlcnIgPSAwOwogCiAJZnJhbWUg PSBnZXRfc2lnZnJhbWUoa2EsIHJlZ3MsIHNpemVvZigqZnJhbWUpKTsKQEAgLTk4Miw3ICs5 ODIsNyBAQAogewogCXN0cnVjdCBwdF9yZWdzICpyZWdzID0gKHN0cnVjdCBwdF9yZWdzICop ICZzdGFjazsKIAl1bnNpZ25lZCBsb25nIGVzcCA9ICh1bnNpZ25lZCBpbnQpIHJlZ3MtPnIx MjsKLQlzdHJ1Y3Qgc2lnZnJhbWVfaWEzMiAqZnJhbWUgPSAoc3RydWN0IHNpZ2ZyYW1lX2lh MzIgKikoZXNwIC0gOCk7CisJc3RydWN0IHNpZ2ZyYW1lX2lhMzIgX191c2VyICpmcmFtZSA9 IChzdHJ1Y3Qgc2lnZnJhbWVfaWEzMiAqKShlc3AgLSA4KTsKIAlzaWdzZXRfdCBzZXQ7CiAJ aW50IGVheDsKIApAQCAtMTAxNSw3ICsxMDE1LDcgQEAKIHsKIAlzdHJ1Y3QgcHRfcmVncyAq cmVncyA9IChzdHJ1Y3QgcHRfcmVncyAqKSAmc3RhY2s7CiAJdW5zaWduZWQgbG9uZyBlc3Ag PSAodW5zaWduZWQgaW50KSByZWdzLT5yMTI7Ci0Jc3RydWN0IHJ0X3NpZ2ZyYW1lX2lhMzIg KmZyYW1lID0gKHN0cnVjdCBydF9zaWdmcmFtZV9pYTMyICopKGVzcCAtIDQpOworCXN0cnVj dCBydF9zaWdmcmFtZV9pYTMyIF9fdXNlciAqZnJhbWUgPSAoc3RydWN0IHJ0X3NpZ2ZyYW1l X2lhMzIgKikoZXNwIC0gNCk7CiAJc2lnc2V0X3Qgc2V0OwogCXN0YWNrX3Qgc3Q7CiAJaW50 IGVheDsKSW5kZXg6IGxpbnV4LTIuNi1jdnMvYXJjaC9pYTY0L2lhMzIvc3lzX2lhMzIuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9hZHNoYXJtYS9kaXNrMi9jdnMvbGludXgt Mi41L2FyY2gvaWE2NC9pYTMyL3N5c19pYTMyLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu NzIKZGlmZiAtdSAtcjEuNzIgc3lzX2lhMzIuYwotLS0gbGludXgtMi42LWN2cy9hcmNoL2lh NjQvaWEzMi9zeXNfaWEzMi5jCTIyIFNlcCAyMDA0IDA0OjE2OjIyIC0wMDAwCTEuNzIKKysr IGxpbnV4LTIuNi1jdnMvYXJjaC9pYTY0L2lhMzIvc3lzX2lhMzIuYwk0IE9jdCAyMDA0IDE4 OjIzOjE1IC0wMDAwCkBAIC0xMjgsNyArMTI4LDcgQEAKIAlyZXR1cm4gZXJyb3I7CiB9CiAK LWludCBjcF9jb21wYXRfc3RhdChzdHJ1Y3Qga3N0YXQgKnN0YXQsIHN0cnVjdCBjb21wYXRf c3RhdCAqdWJ1ZikKK2ludCBjcF9jb21wYXRfc3RhdChzdHJ1Y3Qga3N0YXQgKnN0YXQsIHN0 cnVjdCBjb21wYXRfc3RhdCBfX3VzZXIgKnVidWYpCiB7CiAJaW50IGVycjsKIApAQCAtOTI3 LDcgKzkyNyw3IEBACiB9OwogCiBhc21saW5rYWdlIGxvbmcKLXN5czMyX21tYXAgKHN0cnVj dCBtbWFwX2FyZ19zdHJ1Y3QgKmFyZykKK3N5czMyX21tYXAgKHN0cnVjdCBtbWFwX2FyZ19z dHJ1Y3QgX191c2VyICphcmcpCiB7CiAJc3RydWN0IG1tYXBfYXJnX3N0cnVjdCBhOwogCXN0 cnVjdCBmaWxlICpmaWxlID0gTlVMTDsKQEAgLTExNTUsMTQgKzExNTUsMTQgQEAKIH0KIAog c3RhdGljIGlubGluZSBsb25nCi1nZXRfdHYzMiAoc3RydWN0IHRpbWV2YWwgKm8sIHN0cnVj dCBjb21wYXRfdGltZXZhbCAqaSkKK2dldF90djMyIChzdHJ1Y3QgdGltZXZhbCAqbywgc3Ry dWN0IGNvbXBhdF90aW1ldmFsIF9fdXNlciAqaSkKIHsKIAlyZXR1cm4gKCFhY2Nlc3Nfb2so VkVSSUZZX1JFQUQsIGksIHNpemVvZigqaSkpIHx8CiAJCShfX2dldF91c2VyKG8tPnR2X3Nl YywgJmktPnR2X3NlYykgfCBfX2dldF91c2VyKG8tPnR2X3VzZWMsICZpLT50dl91c2VjKSkp OwogfQogCiBzdGF0aWMgaW5saW5lIGxvbmcKLXB1dF90djMyIChzdHJ1Y3QgY29tcGF0X3Rp bWV2YWwgKm8sIHN0cnVjdCB0aW1ldmFsICppKQorcHV0X3R2MzIgKHN0cnVjdCBjb21wYXRf dGltZXZhbCAqbywgc3RydWN0IHRpbWV2YWwgX191c2VyICppKQogewogCXJldHVybiAoIWFj Y2Vzc19vayhWRVJJRllfV1JJVEUsIG8sIHNpemVvZigqbykpIHx8CiAJCShfX3B1dF91c2Vy KGktPnR2X3NlYywgJm8tPnR2X3NlYykgfCBfX3B1dF91c2VyKGktPnR2X3VzZWMsICZvLT50 dl91c2VjKSkpOwpAQCAtMTE5Miw3ICsxMTkyLDcgQEAKIGV4dGVybiBzdHJ1Y3QgdGltZXpv bmUgc3lzX3R6OwogCiBhc21saW5rYWdlIGxvbmcKLXN5czMyX2dldHRpbWVvZmRheSAoc3Ry dWN0IGNvbXBhdF90aW1ldmFsICp0diwgc3RydWN0IHRpbWV6b25lICp0eikKK3N5czMyX2dl dHRpbWVvZmRheSAoc3RydWN0IGNvbXBhdF90aW1ldmFsIF9fdXNlciAqdHYsIHN0cnVjdCB0 aW1lem9uZSBfX3VzZXIgKnR6KQogewogCWlmICh0dikgewogCQlzdHJ1Y3QgdGltZXZhbCBr dHY7CkBAIC0xMjA4LDcgKzEyMDgsNyBAQAogfQogCiBhc21saW5rYWdlIGxvbmcKLXN5czMy X3NldHRpbWVvZmRheSAoc3RydWN0IGNvbXBhdF90aW1ldmFsICp0diwgc3RydWN0IHRpbWV6 b25lICp0eikKK3N5czMyX3NldHRpbWVvZmRheSAoc3RydWN0IGNvbXBhdF90aW1ldmFsIF9f dXNlciAqdHYsIHN0cnVjdCB0aW1lem9uZSBfX3VzZXIgKnR6KQogewogCXN0cnVjdCB0aW1l dmFsIGt0djsKIAlzdHJ1Y3QgdGltZXNwZWMga3RzOwpAQCAtMTI3MCw3ICsxMjcwLDcgQEAK IH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9nZXRkZW50cyAodW5zaWduZWQgaW50IGZk LCBzdHJ1Y3QgY29tcGF0X2RpcmVudCAqZGlyZW50LCB1bnNpZ25lZCBpbnQgY291bnQpCitz eXMzMl9nZXRkZW50cyAodW5zaWduZWQgaW50IGZkLCBzdHJ1Y3QgY29tcGF0X2RpcmVudCBf X3VzZXIgKmRpcmVudCwgdW5zaWduZWQgaW50IGNvdW50KQogewogCXN0cnVjdCBmaWxlICog ZmlsZTsKIAlzdHJ1Y3QgY29tcGF0X2RpcmVudCAqIGxhc3RkaXJlbnQ7CkBAIC0xMzI2LDcg KzEzMjYsNyBAQAogfQogCiBhc21saW5rYWdlIGxvbmcKLXN5czMyX3JlYWRkaXIgKHVuc2ln bmVkIGludCBmZCwgdm9pZCAqZGlyZW50LCB1bnNpZ25lZCBpbnQgY291bnQpCitzeXMzMl9y ZWFkZGlyICh1bnNpZ25lZCBpbnQgZmQsIHZvaWQgX191c2VyICpkaXJlbnQsIHVuc2lnbmVk IGludCBjb3VudCkKIHsKIAlpbnQgZXJyb3I7CiAJc3RydWN0IGZpbGUgKiBmaWxlOwpAQCAt MTQzNCw3ICsxNDM0LDcgQEAKICAqIHNvIHdlIGhhdmUgdG8gaW1wbGVtZW50IHRoaXMgc3lz dGVtIGNhbGwgaGVyZS4KICAqLwogYXNtbGlua2FnZSBsb25nCi1zeXMzMl90aW1lIChpbnQg KnRsb2MpCitzeXMzMl90aW1lIChpbnQgX191c2VyICp0bG9jKQogewogCWludCBpOwogCXN0 cnVjdCB0aW1ldmFsIHR2OwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAKIAkJIHN0cnVjdCBjb21w YXRfcnVzYWdlICpydSk7CiAKIGFzbWxpbmthZ2UgbG9uZwotc3lzMzJfd2FpdHBpZCAoaW50 IHBpZCwgdW5zaWduZWQgaW50ICpzdGF0X2FkZHIsIGludCBvcHRpb25zKQorc3lzMzJfd2Fp dHBpZCAoaW50IHBpZCwgdW5zaWduZWQgaW50IF9fdXNlciAqc3RhdF9hZGRyLCBpbnQgb3B0 aW9ucykKIHsKIAlyZXR1cm4gY29tcGF0X3N5c193YWl0NChwaWQsIHN0YXRfYWRkciwgb3B0 aW9ucywgTlVMTCk7CiB9CkBAIC0xNjI3LDcgKzE2MjcsNyBAQAogfQogCiBpbnQKLXNhdmVf aWEzMl9mcHN0YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IGlhMzJfdXNl cl9pMzg3X3N0cnVjdCAqc2F2ZSkKK3NhdmVfaWEzMl9mcHN0YXRlIChzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywgc3RydWN0IGlhMzJfdXNlcl9pMzg3X3N0cnVjdCBfX3VzZXIgKnNhdmUp CiB7CiAJc3RydWN0IHN3aXRjaF9zdGFjayAqc3dwOwogCXN0cnVjdCBwdF9yZWdzICpwdHA7 CkBAIC0xNjU2LDcgKzE2NTYsNyBAQAogfQogCiBzdGF0aWMgaW50Ci1yZXN0b3JlX2lhMzJf ZnBzdGF0ZSAoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBpYTMyX3VzZXJfaTM4 N19zdHJ1Y3QgKnNhdmUpCityZXN0b3JlX2lhMzJfZnBzdGF0ZSAoc3RydWN0IHRhc2tfc3Ry dWN0ICp0c2ssIHN0cnVjdCBpYTMyX3VzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpzYXZlKQog ewogCXN0cnVjdCBzd2l0Y2hfc3RhY2sgKnN3cDsKIAlzdHJ1Y3QgcHRfcmVncyAqcHRwOwpA QCAtMTY4OSw3ICsxNjg5LDcgQEAKIH0KIAogaW50Ci1zYXZlX2lhMzJfZnB4c3RhdGUgKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgaWEzMl91c2VyX2Z4c3Jfc3RydWN0ICpz YXZlKQorc2F2ZV9pYTMyX2ZweHN0YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3Ry dWN0IGlhMzJfdXNlcl9meHNyX3N0cnVjdCBfX3VzZXIgKnNhdmUpCiB7CiAJc3RydWN0IHN3 aXRjaF9zdGFjayAqc3dwOwogCXN0cnVjdCBwdF9yZWdzICpwdHA7CkBAIC0xNzI4LDcgKzE3 MjgsNyBAQAogfQogCiBzdGF0aWMgaW50Ci1yZXN0b3JlX2lhMzJfZnB4c3RhdGUgKHN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgaWEzMl91c2VyX2Z4c3Jfc3RydWN0ICpzYXZl KQorcmVzdG9yZV9pYTMyX2ZweHN0YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3Ry dWN0IGlhMzJfdXNlcl9meHNyX3N0cnVjdCBfX3VzZXIgKnNhdmUpCiB7CiAJc3RydWN0IHN3 aXRjaF9zdGFjayAqc3dwOwogCXN0cnVjdCBwdF9yZWdzICpwdHA7CkBAIC0xOTIwLDcgKzE5 MjAsNyBAQAogfSBpYTMyX3N0YWNrX3Q7CiAKIGFzbWxpbmthZ2UgbG9uZwotc3lzMzJfc2ln YWx0c3RhY2sgKGlhMzJfc3RhY2tfdCAqdXNzMzIsIGlhMzJfc3RhY2tfdCAqdW9zczMyLAor c3lzMzJfc2lnYWx0c3RhY2sgKGlhMzJfc3RhY2tfdCBfX3VzZXIgKnVzczMyLCBpYTMyX3N0 YWNrX3QgX191c2VyICp1b3NzMzIsCiAJCSAgIGxvbmcgYXJnMiwgbG9uZyBhcmczLCBsb25n IGFyZzQsIGxvbmcgYXJnNSwgbG9uZyBhcmc2LCBsb25nIGFyZzcsIGxvbmcgc3RhY2spCiB7 CiAJc3RydWN0IHB0X3JlZ3MgKnB0ID0gKHN0cnVjdCBwdF9yZWdzICopICZzdGFjazsKQEAg LTE5ODksNyArMTk4OSw3IEBACiB9OwogCiBhc21saW5rYWdlIGxvbmcKLXN5czMyX3N5c2N0 bCAoc3RydWN0IHN5c2N0bDMyICphcmdzKQorc3lzMzJfc3lzY3RsIChzdHJ1Y3Qgc3lzY3Rs MzIgX191c2VyICphcmdzKQogewogI2lmZGVmIENPTkZJR19TWVNDVEwKIAlzdHJ1Y3Qgc3lz Y3RsMzIgYTMyOwpAQCAtMjAzNSw3ICsyMDM1LDcgQEAKIH0KIAogYXNtbGlua2FnZSBsb25n Ci1zeXMzMl9uZXd1bmFtZSAoc3RydWN0IG5ld191dHNuYW1lICpuYW1lKQorc3lzMzJfbmV3 dW5hbWUgKHN0cnVjdCBuZXdfdXRzbmFtZSBfX3VzZXIgKm5hbWUpCiB7CiAJaW50IHJldCA9 IHN5c19uZXd1bmFtZShuYW1lKTsKIApAQCAtMjA0Niw3ICsyMDQ2LDcgQEAKIH0KIAogYXNt bGlua2FnZSBsb25nCi1zeXMzMl9nZXRyZXN1aWQxNiAodTE2ICpydWlkLCB1MTYgKmV1aWQs IHUxNiAqc3VpZCkKK3N5czMyX2dldHJlc3VpZDE2ICh1MTYgX191c2VyICpydWlkLCB1MTYg X191c2VyICpldWlkLCB1MTYgX191c2VyICpzdWlkKQogewogCXVpZF90IGEsIGIsIGM7CiAJ aW50IHJldDsKQEAgLTIwODYsNyArMjA4Niw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLWdyb3Vw czE2X3RvX3VzZXIoc2hvcnQgKmdyb3VwbGlzdCwgc3RydWN0IGdyb3VwX2luZm8gKmdyb3Vw X2luZm8pCitncm91cHMxNl90b191c2VyKHNob3J0IF9fdXNlciAqZ3JvdXBsaXN0LCBzdHJ1 Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbykKIHsKIAlpbnQgaTsKIAlzaG9ydCBncm91cDsK QEAgLTIxMDEsNyArMjEwMSw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLWdyb3VwczE2X2Zyb21f dXNlcihzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbywgc2hvcnQgKmdyb3VwbGlzdCkK K2dyb3VwczE2X2Zyb21fdXNlcihzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbywgc2hv cnQgX191c2VyICpncm91cGxpc3QpCiB7CiAJaW50IGk7CiAJc2hvcnQgZ3JvdXA7CkBAIC0y MTE2LDcgKzIxMTYsNyBAQAogfQogCiBhc21saW5rYWdlIGxvbmcKLXN5czMyX2dldGdyb3Vw czE2IChpbnQgZ2lkc2V0c2l6ZSwgc2hvcnQgKmdyb3VwbGlzdCkKK3N5czMyX2dldGdyb3Vw czE2IChpbnQgZ2lkc2V0c2l6ZSwgc2hvcnQgX191c2VyICpncm91cGxpc3QpCiB7CiAJaW50 IGk7CiAKQEAgLTIxNDEsNyArMjE0MSw3IEBACiB9CiAKIGFzbWxpbmthZ2UgbG9uZwotc3lz MzJfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBzaG9ydCAqZ3JvdXBsaXN0KQorc3lz MzJfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBzaG9ydCBfX3VzZXIgKmdyb3VwbGlz dCkKIHsKIAlzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbzsKIAlpbnQgcmV0dmFsOwpA QCAtMjE3OSw3ICsyMTc5LDcgQEAKIH0KIAogc3RhdGljIGludAotcHV0c3RhdDY0IChzdHJ1 Y3Qgc3RhdDY0ICp1YnVmLCBzdHJ1Y3Qga3N0YXQgKmtidWYpCitwdXRzdGF0NjQgKHN0cnVj dCBzdGF0NjQgX191c2VyICp1YnVmLCBzdHJ1Y3Qga3N0YXQgKmtidWYpCiB7CiAJaW50IGVy cjsKIAl1NjQgaGRldjsKQEAgLTIyMTQsNyArMjIxNCw3IEBACiB9CiAKIGFzbWxpbmthZ2Ug bG9uZwotc3lzMzJfc3RhdDY0IChjaGFyICpmaWxlbmFtZSwgc3RydWN0IHN0YXQ2NCAqc3Rh dGJ1ZikKK3N5czMyX3N0YXQ2NCAoY2hhciBfX3VzZXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgc3Rh dDY0IF9fdXNlciAqc3RhdGJ1ZikKIHsKIAlzdHJ1Y3Qga3N0YXQgczsKIAlsb25nIHJldCA9 IHZmc19zdGF0KGZpbGVuYW1lLCAmcyk7CkBAIC0yMjI0LDcgKzIyMjQsNyBAQAogfQogCiBh c21saW5rYWdlIGxvbmcKLXN5czMyX2xzdGF0NjQgKGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qg c3RhdDY0ICpzdGF0YnVmKQorc3lzMzJfbHN0YXQ2NCAoY2hhciBfX3VzZXIgKmZpbGVuYW1l LCBzdHJ1Y3Qgc3RhdDY0IF9fdXNlciAqc3RhdGJ1ZikKIHsKIAlzdHJ1Y3Qga3N0YXQgczsK IAlsb25nIHJldCA9IHZmc19sc3RhdChmaWxlbmFtZSwgJnMpOwpAQCAtMjIzNCw3ICsyMjM0 LDcgQEAKIH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9mc3RhdDY0ICh1bnNpZ25lZCBp bnQgZmQsIHN0cnVjdCBzdGF0NjQgKnN0YXRidWYpCitzeXMzMl9mc3RhdDY0ICh1bnNpZ25l ZCBpbnQgZmQsIHN0cnVjdCBzdGF0NjQgX191c2VyICpzdGF0YnVmKQogewogCXN0cnVjdCBr c3RhdCBzOwogCWxvbmcgcmV0ID0gdmZzX2ZzdGF0KGZkLCAmcyk7CkBAIC0yMjYxLDcgKzIy NjEsNyBAQAogfTsKIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9zeXNpbmZvIChzdHJ1Y3Qg c3lzaW5mbzMyICppbmZvKQorc3lzMzJfc3lzaW5mbyAoc3RydWN0IHN5c2luZm8zMiBfX3Vz ZXIgKmluZm8pCiB7CiAJc3RydWN0IHN5c2luZm8gczsKIAlsb25nIHJldCwgZXJyOwpAQCAt MjMxMiw3ICsyMzEyLDcgQEAKIH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9zY2hlZF9y cl9nZXRfaW50ZXJ2YWwgKHBpZF90IHBpZCwgc3RydWN0IGNvbXBhdF90aW1lc3BlYyAqaW50 ZXJ2YWwpCitzeXMzMl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgKHBpZF90IHBpZCwgc3RydWN0 IGNvbXBhdF90aW1lc3BlYyBfX3VzZXIgKmludGVydmFsKQogewogCW1tX3NlZ21lbnRfdCBv bGRfZnMgPSBnZXRfZnMoKTsKIAlzdHJ1Y3QgdGltZXNwZWMgdDsKQEAgLTIzMjcsMTkgKzIz MjcsMTkgQEAKIH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9wcmVhZCAodW5zaWduZWQg aW50IGZkLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBjb3VudCwgdTMyIHBvc19sbywgdTMy IHBvc19oaSkKK3N5czMyX3ByZWFkICh1bnNpZ25lZCBpbnQgZmQsIHZvaWQgX191c2VyICpi dWYsIHVuc2lnbmVkIGludCBjb3VudCwgdTMyIHBvc19sbywgdTMyIHBvc19oaSkKIHsKIAly ZXR1cm4gc3lzX3ByZWFkNjQoZmQsIGJ1ZiwgY291bnQsICgodW5zaWduZWQgbG9uZykgcG9z X2hpIDw8IDMyKSB8IHBvc19sbyk7CiB9CiAKIGFzbWxpbmthZ2UgbG9uZwotc3lzMzJfcHdy aXRlICh1bnNpZ25lZCBpbnQgZmQsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGNvdW50LCB1 MzIgcG9zX2xvLCB1MzIgcG9zX2hpKQorc3lzMzJfcHdyaXRlICh1bnNpZ25lZCBpbnQgZmQs IHZvaWQgX191c2VyICpidWYsIHVuc2lnbmVkIGludCBjb3VudCwgdTMyIHBvc19sbywgdTMy IHBvc19oaSkKIHsKIAlyZXR1cm4gc3lzX3B3cml0ZTY0KGZkLCBidWYsIGNvdW50LCAoKHVu c2lnbmVkIGxvbmcpIHBvc19oaSA8PCAzMikgfCBwb3NfbG8pOwogfQogCiBhc21saW5rYWdl IGxvbmcKLXN5czMyX3NlbmRmaWxlIChpbnQgb3V0X2ZkLCBpbnQgaW5fZmQsIGludCAqb2Zm c2V0LCB1bnNpZ25lZCBpbnQgY291bnQpCitzeXMzMl9zZW5kZmlsZSAoaW50IG91dF9mZCwg aW50IGluX2ZkLCBpbnQgX191c2VyICpvZmZzZXQsIHVuc2lnbmVkIGludCBjb3VudCkKIHsK IAltbV9zZWdtZW50X3Qgb2xkX2ZzID0gZ2V0X2ZzKCk7CiAJbG9uZyByZXQ7CkBAIC0yMzg4 LDcgKzIzODgsNyBAQAogICogRXhhY3RseSBsaWtlIGZzL29wZW4uYzpzeXNfb3BlbigpLCBl eGNlcHQgdGhhdCBpdCBkb2Vzbid0IHNldCB0aGUgT19MQVJHRUZJTEUgZmxhZy4KICAqLwog YXNtbGlua2FnZSBsb25nCi1zeXMzMl9vcGVuIChjb25zdCBjaGFyICogZmlsZW5hbWUsIGlu dCBmbGFncywgaW50IG1vZGUpCitzeXMzMl9vcGVuIChjb25zdCBjaGFyIF9fdXNlciAqZmls ZW5hbWUsIGludCBmbGFncywgaW50IG1vZGUpCiB7CiAJY2hhciAqIHRtcDsKIAlpbnQgZmQs IGVycm9yOwpAQCAtMjQyMyw3ICsyNDIzLDcgQEAKIH07IAogCiBhc21saW5rYWdlIGxvbmcK LXN5czMyX2Vwb2xsX2N0bChpbnQgZXBmZCwgaW50IG9wLCBpbnQgZmQsIHN0cnVjdCBlcG9s bF9ldmVudDMyICpldmVudCkKK3N5czMyX2Vwb2xsX2N0bChpbnQgZXBmZCwgaW50IG9wLCBp bnQgZmQsIHN0cnVjdCBlcG9sbF9ldmVudDMyIF9fdXNlciAqZXZlbnQpCiB7CiAJbW1fc2Vn bWVudF90IG9sZF9mcyA9IGdldF9mcygpOwogCXN0cnVjdCBlcG9sbF9ldmVudCBldmVudDY0 OwpAQCAtMjQ0OCw3ICsyNDQ4LDcgQEAKIH0KIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9l cG9sbF93YWl0KGludCBlcGZkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQzMiAqZXZlbnRzLCBpbnQg bWF4ZXZlbnRzLAorc3lzMzJfZXBvbGxfd2FpdChpbnQgZXBmZCwgc3RydWN0IGVwb2xsX2V2 ZW50MzIgX191c2VyICpldmVudHMsIGludCBtYXhldmVudHMsCiAJCSBpbnQgdGltZW91dCkK IHsKIAlzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2ZW50czY0ID0gTlVMTDsKQEAgLTI1MjYsNyAr MjUyNiw3IEBACiAgKiBTZXQgYSBnaXZlbiBUTFMgZGVzY3JpcHRvcjoKICAqLwogYXNtbGlu a2FnZSBpbnQKLXN5czMyX3NldF90aHJlYWRfYXJlYSAoc3RydWN0IGlhMzJfdXNlcl9kZXNj ICp1X2luZm8pCitzeXMzMl9zZXRfdGhyZWFkX2FyZWEgKHN0cnVjdCBpYTMyX3VzZXJfZGVz YyBfX3VzZXIgKnVfaW5mbykKIHsKIAlzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdCA9ICZjdXJy ZW50LT50aHJlYWQ7CiAJc3RydWN0IGlhMzJfdXNlcl9kZXNjIGluZm87CkBAIC0yNTg3LDcg KzI1ODcsNyBAQAogI2RlZmluZSBHRVRfVVNFQUJMRShkZXNjKQkoKChkZXNjKS0+YiA+PiAy MCkgJiAxKQogCiBhc21saW5rYWdlIGludAotc3lzMzJfZ2V0X3RocmVhZF9hcmVhIChzdHJ1 Y3QgaWEzMl91c2VyX2Rlc2MgKnVfaW5mbykKK3N5czMyX2dldF90aHJlYWRfYXJlYSAoc3Ry dWN0IGlhMzJfdXNlcl9kZXNjIF9fdXNlciAqdV9pbmZvKQogewogCXN0cnVjdCBpYTMyX3Vz ZXJfZGVzYyBpbmZvOwogCXN0cnVjdCBkZXNjX3N0cnVjdCAqZGVzYzsKQEAgLTI2MjAsNyAr MjYyMCw3IEBACiAJCSB0aW1lcl90ICogY3JlYXRlZF90aW1lcl9pZCk7CiAKIGFzbWxpbmth Z2UgbG9uZwotc3lzMzJfdGltZXJfY3JlYXRlKHUzMiBjbG9jaywgc3RydWN0IHNpZ2V2ZW50 MzIgKnNlMzIsIHRpbWVyX3QgKnRpbWVyX2lkKQorc3lzMzJfdGltZXJfY3JlYXRlKHUzMiBj bG9jaywgc3RydWN0IHNpZ2V2ZW50MzIgX191c2VyICpzZTMyLCB0aW1lcl90IF9fdXNlciAq dGltZXJfaWQpCiB7CiAJc3RydWN0IHNpZ2V2ZW50IHNlOwogCW1tX3NlZ21lbnRfdCBvbGRm czsKQEAgLTI3MjQsNyArMjcyNCw3IEBACiBleHRlcm4gaW50IGRvX2FkanRpbWV4KHN0cnVj dCB0aW1leCAqKTsKIAogYXNtbGlua2FnZSBsb25nCi1zeXMzMl9hZGp0aW1leChzdHJ1Y3Qg dGltZXgzMiAqdXRwKQorc3lzMzJfYWRqdGltZXgoc3RydWN0IHRpbWV4MzIgX191c2VyICp1 dHApCiB7CiAJc3RydWN0IHRpbWV4IHR4YzsKIAlpbnQgcmV0Owo= --------------060200080304000004070908--