From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx111.postini.com [74.125.245.111]) by kanga.kvack.org (Postfix) with SMTP id 0C33C6B0032 for ; Wed, 26 Jun 2013 04:08:01 -0400 (EDT) Received: by mail-we0-f180.google.com with SMTP id w56so9774492wes.25 for ; Wed, 26 Jun 2013 01:08:00 -0700 (PDT) MIME-Version: 1.0 Reply-To: sedat.dilek@gmail.com In-Reply-To: References: <1372197144-13729-1-git-send-email-davidlohr.bueso@hp.com> Date: Wed, 26 Jun 2013 10:08:00 +0200 Message-ID: Subject: Re: [PATCH 00/11] sysv ipc shared mem optimizations From: Sedat Dilek Content-Type: multipart/mixed; boundary=089e013c683ce8a5e004e00a2440 Sender: owner-linux-mm@kvack.org List-ID: To: Davidlohr Bueso Cc: linux-mm , Andrew Morton , Rik van Riel , Manfred Spraul --089e013c683ce8a5e004e00a2440 Content-Type: text/plain; charset=UTF-8 On Wed, Jun 26, 2013 at 1:55 AM, Sedat Dilek wrote: > Hi, > > I have tested the patchset "sysv ipc shared mem optimizations" on top > of next-20130618. > > My typical rebuild with fakeroot & 'make deb-pkg' was fine. > > Further tests done with LPT-full (20130503): IPC and SYSCALLS > test-cases ran successfully. > > I am attaching the tarball I have sent already to Davidlohr which contains: > > 35070 Jun 26 00:37 3.10.0-rc6-next20130618-1-iniza-small.patch > 114002 Jun 26 00:48 config-3.10.0-rc6-next20130618-1-iniza-small > 84489 Jun 26 00:55 dmesg_3.10.0-rc6-next20130618-1-iniza-small.txt > 38996 Jun 26 00:57 runltp-f-ipc_3.10.0-rc6-next20130618-1-iniza-small_dash.txt > 760276 Jun 26 01:12 > runltp-f-syscalls_3.10.0-rc6-next20130618-1-iniza-small_dash.txt > > NOTES: > 1. 09/11 needed a small refresh as v2 (attached). > 2. [ PATCH] ipc,msq: fix race in msgrcv(2) (as v2) applied on top of > all (attached). > > Please feel free to add my Tested-by to the whole series. > I have re-tested this patchset also against next-20130624 (09/11 original fits here, 08/11 needs to be cleanpatch-ed). ( In addition I still need the ipc-msg-next fix mentioned above which is now in akpm's mmots. ) - Sedat - [1] http://ozlabs.org/~akpm/mmots/broken-out/ipcmsg-shorten-critical-region-in-msgrcv-fix-race-in-msgrcv2.patch > Regards, > - Sedat - --089e013c683ce8a5e004e00a2440 Content-Type: application/octet-stream; name="3.10.0-rc7-next20130624-4-iniza-small.patch" Content-Disposition: attachment; filename="3.10.0-rc7-next20130624-4-iniza-small.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hie8pgdd4 RGF2aWRsb2hyIEJ1ZXNvICgxMik6CiAgICAgIGlwYyxtc3E6IGZpeCByYWNlIGluIG1zZ3Jjdigy KQogICAgICBpcGMsc2htOiBpbnRyb2R1Y2UgbG9ja2xlc3MgZnVuY3Rpb25zIHRvIG9idGFpbiB0 aGUgaXBjIG9iamVjdAogICAgICBpcGMsc2htOiBzaG9ydGVuIGNyaXRpY2FsIHJlZ2lvbiBpbiBz aG1jdGxfZG93bgogICAgICBpcGM6IGRyb3AgaXBjY3RsX3ByZV9kb3duCiAgICAgIGlwYyxzaG06 IGludHJvZHVjZSBzaG1jdGxfbm9sb2NrCiAgICAgIGlwYyxzaG06IG1ha2Ugc2htY3RsX25vbG9j ayBsb2NrbGVzcwogICAgICBpcGMsc2htOiBzaG9ydGVuIGNyaXRpY2FsIHJlZ2lvbiBmb3Igc2ht Y3RsCiAgICAgIGlwYyxzaG06IGNsZWFudXAgZG9fc2htYXQgcGFzdGEKICAgICAgaXBjLHNobTog c2hvcnRlbiBjcml0aWNhbCByZWdpb24gZm9yIHNobWF0CiAgICAgIGlwYzogcmVuYW1lIGlkcy0+ cndfbXV0ZXgKICAgICAgaXBjLG1zZzogZHJvcCBtc2dfdW5sb2NrCiAgICAgIGlwYzogZG9jdW1l bnQgZ2VuZXJhbCBpcGMgbG9ja2luZyBzY2hlbWUKClNlZGF0IERpbGVrICg3KToKICAgICAga2J1 aWxkOiBkZWItcGtnOiBUcnkgdG8gZGV0ZXJtaW5lIGRpc3RyaWJ1dGlvbgogICAgICBrYnVpbGQ6 IGRlYi1wa2c6IEJ1bXAgeWVhciBpbiBkZWJpYW4vY29weXJpZ2h0IGZpbGUKICAgICAga2J1aWxk OiBkZWItcGtnOiBVcGRhdGUgZ2l0IHJlcG9zaXRvcnkgVVJMIGluIGRlYmlhbi9jb3B5cmlnaHQg ZmlsZQogICAgICBNZXJnZSB0YWcgJ25leHQtMjAxMzA2MjQnIG9mIGdpdDovL2dpdC5rZXJuZWwu b3JnLy4uLi9uZXh0L2xpbnV4LW5leHQgaW50byBMaW51eC1OZXh0LXYyMDEzMDYyNAogICAgICBN ZXJnZSBicmFuY2ggJ2RlYi1wa2ctMy4xMC1maXhlcycgaW50byAzLjEwLjAtcmM3LW5leHQyMDEz MDYyNC0xLWluaXphLXNtYWxsCiAgICAgIE1lcmdlIGJyYW5jaCAnaXBjLW1zZy1uZXh0LWZpeGVz LWZyb20tYWtwbS1tbW90cycgaW50byAzLjEwLjAtcmM3LW5leHQyMDEzMDYyNC00LWluaXphLXNt YWxsCiAgICAgIE1lcmdlIGJyYW5jaCAnc3lzdi1pcGMtc2htLW9wdGltaXphdGlvbnMtbmV4dDIw MTMwNjI0LXRlc3RpbmcnIGludG8gMy4xMC4wLXJjNy1uZXh0MjAxMzA2MjQtNC1pbml6YS1zbWFs bAoKIGluY2x1ZGUvbGludXgvaXBjX25hbWVzcGFjZS5oIHwgICAyICstCiBpcGMvbXNnLmMgICAg ICAgICAgICAgICAgICAgICB8ICAzNiArKystLS0tCiBpcGMvbmFtZXNwYWNlLmMgICAgICAgICAg ICAgICB8ICAgNCArLQogaXBjL3NlbS5jICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKystLS0K IGlwYy9zaG0uYyAgICAgICAgICAgICAgICAgICAgIHwgMjM5ICsrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLQogaXBjL3V0aWwuYyAgICAgICAgICAgICAgICAgICAgfCAg NTcgKysrKystLS0tLQogaXBjL3V0aWwuaCAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIHNj cmlwdHMvcGFja2FnZS9idWlsZGRlYiAgICAgIHwgIDE5ICsrKy0KIDggZmlsZXMgY2hhbmdlZCwg MjIwIGluc2VydGlvbnMoKyksIDE2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2lwY19uYW1lc3BhY2UuaCBiL2luY2x1ZGUvbGludXgvaXBjX25hbWVzcGFjZS5oCmlu ZGV4IGM0ZDg3MGIuLjE5YzE5YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXBjX25hbWVz cGFjZS5oCisrKyBiL2luY2x1ZGUvbGludXgvaXBjX25hbWVzcGFjZS5oCkBAIC0yMiw3ICsyMiw3 IEBAIHN0cnVjdCBpcGNfaWRzIHsKIAlpbnQgaW5fdXNlOwogCXVuc2lnbmVkIHNob3J0IHNlcTsK IAl1bnNpZ25lZCBzaG9ydCBzZXFfbWF4OwotCXN0cnVjdCByd19zZW1hcGhvcmUgcndfbXV0ZXg7 CisJc3RydWN0IHJ3X3NlbWFwaG9yZSByd3NlbTsKIAlzdHJ1Y3QgaWRyIGlwY3NfaWRyOwogCWlu dCBuZXh0X2lkOwogfTsKZGlmZiAtLWdpdCBhL2lwYy9tc2cuYyBiL2lwYy9tc2cuYwppbmRleCBh MWNmNzBlLi4xNGQ2NGY4IDEwMDY0NAotLS0gYS9pcGMvbXNnLmMKKysrIGIvaXBjL21zZy5jCkBA IC03MCw4ICs3MCw2IEBAIHN0cnVjdCBtc2dfc2VuZGVyIHsKIAogI2RlZmluZSBtc2dfaWRzKG5z KQkoKG5zKS0+aWRzW0lQQ19NU0dfSURTXSkKIAotI2RlZmluZSBtc2dfdW5sb2NrKG1zcSkJCWlw Y191bmxvY2soJihtc3EpLT5xX3Blcm0pCi0KIHN0YXRpYyB2b2lkIGZyZWVxdWUoc3RydWN0IGlw Y19uYW1lc3BhY2UgKiwgc3RydWN0IGtlcm5faXBjX3Blcm0gKik7CiBzdGF0aWMgaW50IG5ld3F1 ZShzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqLCBzdHJ1Y3QgaXBjX3BhcmFtcyAqKTsKICNpZmRlZiBD T05GSUdfUFJPQ19GUwpAQCAtMTcyLDcgKzE3MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtc2df cm1pZChzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBtc2dfcXVldWUgKnMpCiAgKiBA bnM6IG5hbWVzcGFjZQogICogQHBhcmFtczogcHRyIHRvIHRoZSBzdHJ1Y3R1cmUgdGhhdCBjb250 YWlucyB0aGUga2V5IGFuZCBtc2dmbGcKICAqCi0gKiBDYWxsZWQgd2l0aCBtc2dfaWRzLnJ3X211 dGV4IGhlbGQgKHdyaXRlcikKKyAqIENhbGxlZCB3aXRoIG1zZ19pZHMucndzZW0gaGVsZCAod3Jp dGVyKQogICovCiBzdGF0aWMgaW50IG5ld3F1ZShzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0 cnVjdCBpcGNfcGFyYW1zICpwYXJhbXMpCiB7CkBAIC0yNTksOCArMjU3LDggQEAgc3RhdGljIHZv aWQgZXhwdW5nZV9hbGwoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBpbnQgcmVzKQogICogcmVtb3Zl cyB0aGUgbWVzc2FnZSBxdWV1ZSBmcm9tIG1lc3NhZ2UgcXVldWUgSUQgSURSLCBhbmQgY2xlYW5z IHVwIGFsbCB0aGUKICAqIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHF1ZXVlLgogICoK LSAqIG1zZ19pZHMucndfbXV0ZXggKHdyaXRlcikgYW5kIHRoZSBzcGlubG9jayBmb3IgdGhpcyBt ZXNzYWdlIHF1ZXVlIGFyZSBoZWxkCi0gKiBiZWZvcmUgZnJlZXF1ZSgpIGlzIGNhbGxlZC4gbXNn X2lkcy5yd19tdXRleCByZW1haW5zIGxvY2tlZCBvbiBleGl0LgorICogbXNnX2lkcy5yd3NlbSAo d3JpdGVyKSBhbmQgdGhlIHNwaW5sb2NrIGZvciB0aGlzIG1lc3NhZ2UgcXVldWUgYXJlIGhlbGQK KyAqIGJlZm9yZSBmcmVlcXVlKCkgaXMgY2FsbGVkLiBtc2dfaWRzLnJ3c2VtIHJlbWFpbnMgbG9j a2VkIG9uIGV4aXQuCiAgKi8KIHN0YXRpYyB2b2lkIGZyZWVxdWUoc3RydWN0IGlwY19uYW1lc3Bh Y2UgKm5zLCBzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCkKIHsKQEAgLTI3MCw3ICsyNjgsOCBA QCBzdGF0aWMgdm9pZCBmcmVlcXVlKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0IGtl cm5faXBjX3Blcm0gKmlwY3ApCiAJZXhwdW5nZV9hbGwobXNxLCAtRUlEUk0pOwogCXNzX3dha2V1 cCgmbXNxLT5xX3NlbmRlcnMsIDEpOwogCW1zZ19ybWlkKG5zLCBtc3EpOwotCW1zZ191bmxvY2so bXNxKTsKKwlpcGNfdW5sb2NrX29iamVjdCgmbXNxLT5xX3Blcm0pOworCXJjdV9yZWFkX3VubG9j aygpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1zZywgdCwgJm1zcS0+cV9tZXNzYWdl cywgbV9saXN0KSB7CiAJCWF0b21pY19kZWMoJm5zLT5tc2dfaGRycyk7CkBAIC0yODIsNyArMjgx LDcgQEAgc3RhdGljIHZvaWQgZnJlZXF1ZShzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVj dCBrZXJuX2lwY19wZXJtICppcGNwKQogfQogCiAvKgotICogQ2FsbGVkIHdpdGggbXNnX2lkcy5y d19tdXRleCBhbmQgaXBjcCBsb2NrZWQuCisgKiBDYWxsZWQgd2l0aCBtc2dfaWRzLnJ3c2VtIGFu ZCBpcGNwIGxvY2tlZC4KICAqLwogc3RhdGljIGlubGluZSBpbnQgbXNnX3NlY3VyaXR5KHN0cnVj dCBrZXJuX2lwY19wZXJtICppcGNwLCBpbnQgbXNnZmxnKQogewpAQCAtMzg2LDkgKzM4NSw5IEBA IGNvcHlfbXNxaWRfZnJvbV91c2VyKHN0cnVjdCBtc3FpZDY0X2RzICpvdXQsIHZvaWQgX191c2Vy ICpidWYsIGludCB2ZXJzaW9uKQogfQogCiAvKgotICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHNv bWUgbXNnY3RsIGNvbW1hbmRzIHdoaWNoIHJlcXVpcmUgdGhlIHJ3X211dGV4CisgKiBUaGlzIGZ1 bmN0aW9uIGhhbmRsZXMgc29tZSBtc2djdGwgY29tbWFuZHMgd2hpY2ggcmVxdWlyZSB0aGUgcndz ZW0KICAqIHRvIGJlIGhlbGQgaW4gd3JpdGUgbW9kZS4KLSAqIE5PVEU6IG5vIGxvY2tzIG11c3Qg YmUgaGVsZCwgdGhlIHJ3X211dGV4IGlzIHRha2VuIGluc2lkZSB0aGlzIGZ1bmN0aW9uLgorICog Tk9URTogbm8gbG9ja3MgbXVzdCBiZSBoZWxkLCB0aGUgcndzZW0gaXMgdGFrZW4gaW5zaWRlIHRo aXMgZnVuY3Rpb24uCiAgKi8KIHN0YXRpYyBpbnQgbXNnY3RsX2Rvd24oc3RydWN0IGlwY19uYW1l c3BhY2UgKm5zLCBpbnQgbXNxaWQsIGludCBjbWQsCiAJCSAgICAgICBzdHJ1Y3QgbXNxaWRfZHMg X191c2VyICpidWYsIGludCB2ZXJzaW9uKQpAQCAtNDAzLDcgKzQwMiw3IEBAIHN0YXRpYyBpbnQg bXNnY3RsX2Rvd24oc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBpbnQgbXNxaWQsIGludCBjbWQs CiAJCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQlkb3duX3dyaXRlKCZtc2dfaWRzKG5zKS5yd19t dXRleCk7CisJZG93bl93cml0ZSgmbXNnX2lkcyhucykucndzZW0pOwogCXJjdV9yZWFkX2xvY2so KTsKIAogCWlwY3AgPSBpcGNjdGxfcHJlX2Rvd25fbm9sb2NrKG5zLCAmbXNnX2lkcyhucyksIG1z cWlkLCBjbWQsCkBAIC00NTksNyArNDU4LDcgQEAgb3V0X3VubG9jazA6CiBvdXRfdW5sb2NrMToK IAlyY3VfcmVhZF91bmxvY2soKTsKIG91dF91cDoKLQl1cF93cml0ZSgmbXNnX2lkcyhucykucndf bXV0ZXgpOworCXVwX3dyaXRlKCZtc2dfaWRzKG5zKS5yd3NlbSk7CiAJcmV0dXJuIGVycjsKIH0K IApAQCAtNDk0LDcgKzQ5Myw3IEBAIHN0YXRpYyBpbnQgbXNnY3RsX25vbG9jayhzdHJ1Y3QgaXBj X25hbWVzcGFjZSAqbnMsIGludCBtc3FpZCwKIAkJbXNnaW5mby5tc2dtbmIgPSBucy0+bXNnX2N0 bG1uYjsKIAkJbXNnaW5mby5tc2dzc3ogPSBNU0dTU1o7CiAJCW1zZ2luZm8ubXNnc2VnID0gTVNH U0VHOwotCQlkb3duX3JlYWQoJm1zZ19pZHMobnMpLnJ3X211dGV4KTsKKwkJZG93bl9yZWFkKCZt c2dfaWRzKG5zKS5yd3NlbSk7CiAJCWlmIChjbWQgPT0gTVNHX0lORk8pIHsKIAkJCW1zZ2luZm8u bXNncG9vbCA9IG1zZ19pZHMobnMpLmluX3VzZTsKIAkJCW1zZ2luZm8ubXNnbWFwID0gYXRvbWlj X3JlYWQoJm5zLT5tc2dfaGRycyk7CkBAIC01MDUsNyArNTA0LDcgQEAgc3RhdGljIGludCBtc2dj dGxfbm9sb2NrKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgaW50IG1zcWlkLAogCQkJbXNnaW5m by5tc2d0cWwgPSBNU0dUUUw7CiAJCX0KIAkJbWF4X2lkID0gaXBjX2dldF9tYXhpZCgmbXNnX2lk cyhucykpOwotCQl1cF9yZWFkKCZtc2dfaWRzKG5zKS5yd19tdXRleCk7CisJCXVwX3JlYWQoJm1z Z19pZHMobnMpLnJ3c2VtKTsKIAkJaWYgKGNvcHlfdG9fdXNlcihidWYsICZtc2dpbmZvLCBzaXpl b2Yoc3RydWN0IG1zZ2luZm8pKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlyZXR1cm4gKG1heF9p ZCA8IDApID8gMCA6IG1heF9pZDsKQEAgLTg5NSw2ICs4OTQsNyBAQCBsb25nIGRvX21zZ3Jjdihp bnQgbXNxaWQsIHZvaWQgX191c2VyICpidWYsIHNpemVfdCBidWZzeiwgbG9uZyBtc2d0eXAsIGlu dCBtc2dmbAogCQlpZiAoaXBjcGVybXMobnMsICZtc3EtPnFfcGVybSwgU19JUlVHTykpCiAJCQln b3RvIG91dF91bmxvY2sxOwogCisJCWlwY19sb2NrX29iamVjdCgmbXNxLT5xX3Blcm0pOwogCQlt c2cgPSBmaW5kX21zZyhtc3EsICZtc2d0eXAsIG1vZGUpOwogCQlpZiAoIUlTX0VSUihtc2cpKSB7 CiAJCQkvKgpAQCAtOTAzLDcgKzkwMyw3IEBAIGxvbmcgZG9fbXNncmN2KGludCBtc3FpZCwgdm9p ZCBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGJ1ZnN6LCBsb25nIG1zZ3R5cCwgaW50IG1zZ2ZsCiAJCQkg Ki8KIAkJCWlmICgoYnVmc3ogPCBtc2ctPm1fdHMpICYmICEobXNnZmxnICYgTVNHX05PRVJST1Ip KSB7CiAJCQkJbXNnID0gRVJSX1BUUigtRTJCSUcpOwotCQkJCWdvdG8gb3V0X3VubG9jazE7CisJ CQkJZ290byBvdXRfdW5sb2NrMDsKIAkJCX0KIAkJCS8qCiAJCQkgKiBJZiB3ZSBhcmUgY29weWlu ZywgdGhlbiBkbyBub3QgdW5saW5rIG1lc3NhZ2UgYW5kIGRvCkBAIC05MTEsMTAgKzkxMSw5IEBA IGxvbmcgZG9fbXNncmN2KGludCBtc3FpZCwgdm9pZCBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGJ1ZnN6 LCBsb25nIG1zZ3R5cCwgaW50IG1zZ2ZsCiAJCQkgKi8KIAkJCWlmIChtc2dmbGcgJiBNU0dfQ09Q WSkgewogCQkJCW1zZyA9IGNvcHlfbXNnKG1zZywgY29weSk7Ci0JCQkJZ290byBvdXRfdW5sb2Nr MTsKKwkJCQlnb3RvIG91dF91bmxvY2swOwogCQkJfQogCi0JCQlpcGNfbG9ja19vYmplY3QoJm1z cS0+cV9wZXJtKTsKIAkJCWxpc3RfZGVsKCZtc2ctPm1fbGlzdCk7CiAJCQltc3EtPnFfcW51bS0t OwogCQkJbXNxLT5xX3J0aW1lID0gZ2V0X3NlY29uZHMoKTsKQEAgLTkzMCwxMCArOTI5LDkgQEAg bG9uZyBkb19tc2dyY3YoaW50IG1zcWlkLCB2b2lkIF9fdXNlciAqYnVmLCBzaXplX3QgYnVmc3os IGxvbmcgbXNndHlwLCBpbnQgbXNnZmwKIAkJLyogTm8gbWVzc2FnZSB3YWl0aW5nLiBXYWl0IGZv ciBhIG1lc3NhZ2UgKi8KIAkJaWYgKG1zZ2ZsZyAmIElQQ19OT1dBSVQpIHsKIAkJCW1zZyA9IEVS Ul9QVFIoLUVOT01TRyk7Ci0JCQlnb3RvIG91dF91bmxvY2sxOworCQkJZ290byBvdXRfdW5sb2Nr MDsKIAkJfQogCi0JCWlwY19sb2NrX29iamVjdCgmbXNxLT5xX3Blcm0pOwogCQlsaXN0X2FkZF90 YWlsKCZtc3JfZC5yX2xpc3QsICZtc3EtPnFfcmVjZWl2ZXJzKTsKIAkJbXNyX2Qucl90c2sgPSBj dXJyZW50OwogCQltc3JfZC5yX21zZ3R5cGUgPSBtc2d0eXA7CkBAIC05NTcsNyArOTU1LDcgQEAg bG9uZyBkb19tc2dyY3YoaW50IG1zcWlkLCB2b2lkIF9fdXNlciAqYnVmLCBzaXplX3QgYnVmc3os IGxvbmcgbXNndHlwLCBpbnQgbXNnZmwKIAkJICogUHJpb3IgdG8gZGVzdHJ1Y3Rpb24sIGV4cHVu Z2VfYWxsKC1FSVJETSkgY2hhbmdlcyByX21zZy4KIAkJICogVGh1cyBpZiByX21zZyBpcyAtRUFH QUlOLCB0aGVuIHRoZSBxdWV1ZSBub3QgeWV0IGRlc3Ryb3llZC4KIAkJICogcmN1X3JlYWRfbG9j aygpIHByZXZlbnRzIHByZWVtcHRpb24gYmV0d2VlbiByZWFkaW5nIHJfbXNnCi0JCSAqIGFuZCB0 aGUgc3Bpbl9sb2NrKCkgaW5zaWRlIGlwY19sb2NrX2J5X3B0cigpLgorCQkgKiBhbmQgYWNxdWly aW5nIHRoZSBxX3Blcm0ubG9jayBpbiBpcGNfbG9ja19vYmplY3QoKS4KIAkJICovCiAJCXJjdV9y ZWFkX2xvY2soKTsKIApkaWZmIC0tZ2l0IGEvaXBjL25hbWVzcGFjZS5jIGIvaXBjL25hbWVzcGFj ZS5jCmluZGV4IDdlZTYxYmYuLjY3ZGM3NDQgMTAwNjQ0Ci0tLSBhL2lwYy9uYW1lc3BhY2UuYwor KysgYi9pcGMvbmFtZXNwYWNlLmMKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBmcmVlX2lwY3Moc3Ry dWN0IGlwY19uYW1lc3BhY2UgKm5zLCBzdHJ1Y3QgaXBjX2lkcyAqaWRzLAogCWludCBuZXh0X2lk OwogCWludCB0b3RhbCwgaW5fdXNlOwogCi0JZG93bl93cml0ZSgmaWRzLT5yd19tdXRleCk7CisJ ZG93bl93cml0ZSgmaWRzLT5yd3NlbSk7CiAKIAlpbl91c2UgPSBpZHMtPmluX3VzZTsKIApAQCAt OTMsNyArOTMsNyBAQCB2b2lkIGZyZWVfaXBjcyhzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0 cnVjdCBpcGNfaWRzICppZHMsCiAJCWZyZWUobnMsIHBlcm0pOwogCQl0b3RhbCsrOwogCX0KLQl1 cF93cml0ZSgmaWRzLT5yd19tdXRleCk7CisJdXBfd3JpdGUoJmlkcy0+cndzZW0pOwogfQogCiBz dGF0aWMgdm9pZCBmcmVlX2lwY19ucyhzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMpCmRpZmYgLS1n aXQgYS9pcGMvc2VtLmMgYi9pcGMvc2VtLmMKaW5kZXggNDEwODg4OS4uNjliNmEyMSAxMDA2NDQK LS0tIGEvaXBjL3NlbS5jCisrKyBiL2lwYy9zZW0uYwpAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBzZW1fdW5sb2NrKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSwgaW50IGxvY2tu dW0pCiB9CiAKIC8qCi0gKiBzZW1fbG9ja18oY2hlY2tfKSByb3V0aW5lcyBhcmUgY2FsbGVkIGlu IHRoZSBwYXRocyB3aGVyZSB0aGUgcndfbXV0ZXgKKyAqIHNlbV9sb2NrXyhjaGVja18pIHJvdXRp bmVzIGFyZSBjYWxsZWQgaW4gdGhlIHBhdGhzIHdoZXJlIHRoZSByd3NlbQogICogaXMgbm90IGhl bGQuCiAgKgogICogVGhlIGNhbGxlciBob2xkcyB0aGUgUkNVIHJlYWQgbG9jay4KQEAgLTQyNiw3 ICs0MjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2VtX3JtaWQoc3RydWN0IGlwY19uYW1lc3Bh Y2UgKm5zLCBzdHJ1Y3Qgc2VtX2FycmF5ICpzKQogICogQG5zOiBuYW1lc3BhY2UKICAqIEBwYXJh bXM6IHB0ciB0byB0aGUgc3RydWN0dXJlIHRoYXQgY29udGFpbnMga2V5LCBzZW1mbGcgYW5kIG5z ZW1zCiAgKgotICogQ2FsbGVkIHdpdGggc2VtX2lkcy5yd19tdXRleCBoZWxkIChhcyBhIHdyaXRl cikKKyAqIENhbGxlZCB3aXRoIHNlbV9pZHMucndzZW0gaGVsZCAoYXMgYSB3cml0ZXIpCiAgKi8K IAogc3RhdGljIGludCBuZXdhcnkoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBzdHJ1Y3QgaXBj X3BhcmFtcyAqcGFyYW1zKQpAQCAtNDkyLDcgKzQ5Miw3IEBAIHN0YXRpYyBpbnQgbmV3YXJ5KHN0 cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0IGlwY19wYXJhbXMgKnBhcmFtcykKIAogCiAv KgotICogQ2FsbGVkIHdpdGggc2VtX2lkcy5yd19tdXRleCBhbmQgaXBjcCBsb2NrZWQuCisgKiBD YWxsZWQgd2l0aCBzZW1faWRzLnJ3c2VtIGFuZCBpcGNwIGxvY2tlZC4KICAqLwogc3RhdGljIGlu bGluZSBpbnQgc2VtX3NlY3VyaXR5KHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwLCBpbnQgc2Vt ZmxnKQogewpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNlbV9zZWN1cml0 eShzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgaW50IHNlbWZsZykKIH0KIAogLyoKLSAqIENh bGxlZCB3aXRoIHNlbV9pZHMucndfbXV0ZXggYW5kIGlwY3AgbG9ja2VkLgorICogQ2FsbGVkIHdp dGggc2VtX2lkcy5yd3NlbSBhbmQgaXBjcCBsb2NrZWQuCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50 IHNlbV9tb3JlX2NoZWNrcyhzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwKIAkJCQlzdHJ1Y3Qg aXBjX3BhcmFtcyAqcGFyYW1zKQpAQCAtOTk0LDggKzk5NCw4IEBAIHN0YXRpYyBpbnQgY291bnRf c2VtemNudCAoc3RydWN0IHNlbV9hcnJheSAqIHNtYSwgdXNob3J0IHNlbW51bSkKIAlyZXR1cm4g c2VtemNudDsKIH0KIAotLyogRnJlZSBhIHNlbWFwaG9yZSBzZXQuIGZyZWVhcnkoKSBpcyBjYWxs ZWQgd2l0aCBzZW1faWRzLnJ3X211dGV4IGxvY2tlZAotICogYXMgYSB3cml0ZXIgYW5kIHRoZSBz cGlubG9jayBmb3IgdGhpcyBzZW1hcGhvcmUgc2V0IGhvbGQuIHNlbV9pZHMucndfbXV0ZXgKKy8q IEZyZWUgYSBzZW1hcGhvcmUgc2V0LiBmcmVlYXJ5KCkgaXMgY2FsbGVkIHdpdGggc2VtX2lkcy5y d3NlbSBsb2NrZWQKKyAqIGFzIGEgd3JpdGVyIGFuZCB0aGUgc3BpbmxvY2sgZm9yIHRoaXMgc2Vt YXBob3JlIHNldCBob2xkLiBzZW1faWRzLnJ3c2VtCiAgKiByZW1haW5zIGxvY2tlZCBvbiBleGl0 LgogICovCiBzdGF0aWMgdm9pZCBmcmVlYXJ5KHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3Ry dWN0IGtlcm5faXBjX3Blcm0gKmlwY3ApCkBAIC0xMTE2LDcgKzExMTYsNyBAQCBzdGF0aWMgaW50 IHNlbWN0bF9ub2xvY2soc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBpbnQgc2VtaWQsCiAJCXNl bWluZm8uc2VtbW51ID0gU0VNTU5VOwogCQlzZW1pbmZvLnNlbW1hcCA9IFNFTU1BUDsKIAkJc2Vt aW5mby5zZW11bWUgPSBTRU1VTUU7Ci0JCWRvd25fcmVhZCgmc2VtX2lkcyhucykucndfbXV0ZXgp OworCQlkb3duX3JlYWQoJnNlbV9pZHMobnMpLnJ3c2VtKTsKIAkJaWYgKGNtZCA9PSBTRU1fSU5G TykgewogCQkJc2VtaW5mby5zZW11c3ogPSBzZW1faWRzKG5zKS5pbl91c2U7CiAJCQlzZW1pbmZv LnNlbWFlbSA9IG5zLT51c2VkX3NlbXM7CkBAIC0xMTI1LDcgKzExMjUsNyBAQCBzdGF0aWMgaW50 IHNlbWN0bF9ub2xvY2soc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBpbnQgc2VtaWQsCiAJCQlz ZW1pbmZvLnNlbWFlbSA9IFNFTUFFTTsKIAkJfQogCQltYXhfaWQgPSBpcGNfZ2V0X21heGlkKCZz ZW1faWRzKG5zKSk7Ci0JCXVwX3JlYWQoJnNlbV9pZHMobnMpLnJ3X211dGV4KTsKKwkJdXBfcmVh ZCgmc2VtX2lkcyhucykucndzZW0pOwogCQlpZiAoY29weV90b191c2VyKHAsICZzZW1pbmZvLCBz aXplb2Yoc3RydWN0IHNlbWluZm8pKSkgCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJcmV0dXJuICht YXhfaWQgPCAwKSA/IDA6IG1heF9pZDsKQEAgLTE0MzEsOSArMTQzMSw5IEBAIGNvcHlfc2VtaWRf ZnJvbV91c2VyKHN0cnVjdCBzZW1pZDY0X2RzICpvdXQsIHZvaWQgX191c2VyICpidWYsIGludCB2 ZXJzaW9uKQogfQogCiAvKgotICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHNvbWUgc2VtY3RsIGNv bW1hbmRzIHdoaWNoIHJlcXVpcmUgdGhlIHJ3X211dGV4CisgKiBUaGlzIGZ1bmN0aW9uIGhhbmRs ZXMgc29tZSBzZW1jdGwgY29tbWFuZHMgd2hpY2ggcmVxdWlyZSB0aGUgcndzZW0KICAqIHRvIGJl IGhlbGQgaW4gd3JpdGUgbW9kZS4KLSAqIE5PVEU6IG5vIGxvY2tzIG11c3QgYmUgaGVsZCwgdGhl IHJ3X211dGV4IGlzIHRha2VuIGluc2lkZSB0aGlzIGZ1bmN0aW9uLgorICogTk9URTogbm8gbG9j a3MgbXVzdCBiZSBoZWxkLCB0aGUgcndzZW0gaXMgdGFrZW4gaW5zaWRlIHRoaXMgZnVuY3Rpb24u CiAgKi8KIHN0YXRpYyBpbnQgc2VtY3RsX2Rvd24oc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBp bnQgc2VtaWQsCiAJCSAgICAgICBpbnQgY21kLCBpbnQgdmVyc2lvbiwgdm9pZCBfX3VzZXIgKnAp CkBAIC0xNDQ4LDcgKzE0NDgsNyBAQCBzdGF0aWMgaW50IHNlbWN0bF9kb3duKHN0cnVjdCBpcGNf bmFtZXNwYWNlICpucywgaW50IHNlbWlkLAogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCi0JZG93 bl93cml0ZSgmc2VtX2lkcyhucykucndfbXV0ZXgpOworCWRvd25fd3JpdGUoJnNlbV9pZHMobnMp LnJ3c2VtKTsKIAlyY3VfcmVhZF9sb2NrKCk7CiAKIAlpcGNwID0gaXBjY3RsX3ByZV9kb3duX25v bG9jayhucywgJnNlbV9pZHMobnMpLCBzZW1pZCwgY21kLApAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAg b3V0X3VubG9jazA6CiBvdXRfdW5sb2NrMToKIAlyY3VfcmVhZF91bmxvY2soKTsKIG91dF91cDoK LQl1cF93cml0ZSgmc2VtX2lkcyhucykucndfbXV0ZXgpOworCXVwX3dyaXRlKCZzZW1faWRzKG5z KS5yd3NlbSk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvaXBjL3NobS5jIGIvaXBj L3NobS5jCmluZGV4IGM2YjRhZDUuLjkwMTc3ODYgMTAwNjQ0Ci0tLSBhL2lwYy9zaG0uYworKysg Yi9pcGMvc2htLmMKQEAgLTE5LDYgKzE5LDkgQEAKICAqIG5hbWVzcGFjZXMgc3VwcG9ydAogICog T3BlblZaLCBTV3NvZnQgSW5jLgogICogUGF2ZWwgRW1lbGlhbm92IDx4ZW11bEBvcGVudnoub3Jn PgorICoKKyAqIEJldHRlciBpcGMgbG9jayAoa2Vybl9pcGNfcGVybS5sb2NrKSBoYW5kbGluZwor ICogRGF2aWRsb2hyIEJ1ZXNvIDxkYXZpZGxvaHIuYnVlc29AaHAuY29tPiwgSnVuZSAyMDEzLgog ICovCiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC04MCw4ICs4Myw4IEBAIHZvaWQgc2ht X2luaXRfbnMoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zKQogfQogCiAvKgotICogQ2FsbGVkIHdp dGggc2htX2lkcy5yd19tdXRleCAod3JpdGVyKSBhbmQgdGhlIHNocCBzdHJ1Y3R1cmUgbG9ja2Vk LgotICogT25seSBzaG1faWRzLnJ3X211dGV4IHJlbWFpbnMgbG9ja2VkIG9uIGV4aXQuCisgKiBD YWxsZWQgd2l0aCBzaG1faWRzLnJ3c2VtICh3cml0ZXIpIGFuZCB0aGUgc2hwIHN0cnVjdHVyZSBs b2NrZWQuCisgKiBPbmx5IHNobV9pZHMucndzZW0gcmVtYWlucyBsb2NrZWQgb24gZXhpdC4KICAq Lwogc3RhdGljIHZvaWQgZG9fc2htX3JtaWQoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBzdHJ1 Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCkKIHsKQEAgLTEyNCw4ICsxMjcsMjggQEAgdm9pZCBfX2lu aXQgc2htX2luaXQgKHZvaWQpCiAJCQkJSVBDX1NITV9JRFMsIHN5c3ZpcGNfc2htX3Byb2Nfc2hv dyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNobWlkX2tlcm5lbCAqc2htX29idGFpbl9v YmplY3Qoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCBpbnQgaWQpCit7CisJc3RydWN0IGtlcm5f aXBjX3Blcm0gKmlwY3AgPSBpcGNfb2J0YWluX29iamVjdCgmc2htX2lkcyhucyksIGlkKTsKKwor CWlmIChJU19FUlIoaXBjcCkpCisJCXJldHVybiBFUlJfQ0FTVChpcGNwKTsKKworCXJldHVybiBj b250YWluZXJfb2YoaXBjcCwgc3RydWN0IHNobWlkX2tlcm5lbCwgc2htX3Blcm0pOworfQorCitz dGF0aWMgaW5saW5lIHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNobV9vYnRhaW5fb2JqZWN0X2NoZWNr KHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgaW50IGlkKQoreworCXN0cnVjdCBrZXJuX2lwY19w ZXJtICppcGNwID0gaXBjX29idGFpbl9vYmplY3RfY2hlY2soJnNobV9pZHMobnMpLCBpZCk7CisK KwlpZiAoSVNfRVJSKGlwY3ApKQorCQlyZXR1cm4gRVJSX0NBU1QoaXBjcCk7CisKKwlyZXR1cm4g Y29udGFpbmVyX29mKGlwY3AsIHN0cnVjdCBzaG1pZF9rZXJuZWwsIHNobV9wZXJtKTsKK30KKwog LyoKLSAqIHNobV9sb2NrXyhjaGVja18pIHJvdXRpbmVzIGFyZSBjYWxsZWQgaW4gdGhlIHBhdGhz IHdoZXJlIHRoZSByd19tdXRleAorICogc2htX2xvY2tfKGNoZWNrXykgcm91dGluZXMgYXJlIGNh bGxlZCBpbiB0aGUgcGF0aHMgd2hlcmUgdGhlIHJ3c2VtCiAgKiBpcyBub3QgbmVjZXNzYXJpbHkg aGVsZC4KICAqLwogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaG1fbG9jayhz dHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIGludCBpZCkKQEAgLTE4Miw3ICsyMDUsNyBAQCBzdGF0 aWMgdm9pZCBzaG1fb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKICAqIEBuczogbmFt ZXNwYWNlCiAgKiBAc2hwOiBzdHJ1Y3QgdG8gZnJlZQogICoKLSAqIEl0IGhhcyB0byBiZSBjYWxs ZWQgd2l0aCBzaHAgYW5kIHNobV9pZHMucndfbXV0ZXggKHdyaXRlcikgbG9ja2VkLAorICogSXQg aGFzIHRvIGJlIGNhbGxlZCB3aXRoIHNocCBhbmQgc2htX2lkcy5yd3NlbSAod3JpdGVyKSBsb2Nr ZWQsCiAgKiBidXQgcmV0dXJucyB3aXRoIHNocCB1bmxvY2tlZCBhbmQgZnJlZWQuCiAgKi8KIHN0 YXRpYyB2b2lkIHNobV9kZXN0cm95KHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0IHNo bWlkX2tlcm5lbCAqc2hwKQpAQCAtMjMwLDcgKzI1Myw3IEBAIHN0YXRpYyB2b2lkIHNobV9jbG9z ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAlzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHA7 CiAJc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zID0gc2ZkLT5uczsKIAotCWRvd25fd3JpdGUoJnNo bV9pZHMobnMpLnJ3X211dGV4KTsKKwlkb3duX3dyaXRlKCZzaG1faWRzKG5zKS5yd3NlbSk7CiAJ LyogcmVtb3ZlIGZyb20gdGhlIGxpc3Qgb2YgYXR0YWNoZXMgb2YgdGhlIHNobSBzZWdtZW50ICov CiAJc2hwID0gc2htX2xvY2sobnMsIHNmZC0+aWQpOwogCUJVR19PTihJU19FUlIoc2hwKSk7CkBA IC0yNDEsMTAgKzI2NCwxMCBAQCBzdGF0aWMgdm9pZCBzaG1fY2xvc2Uoc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEpCiAJCXNobV9kZXN0cm95KG5zLCBzaHApOwogCWVsc2UKIAkJc2htX3VubG9j ayhzaHApOwotCXVwX3dyaXRlKCZzaG1faWRzKG5zKS5yd19tdXRleCk7CisJdXBfd3JpdGUoJnNo bV9pZHMobnMpLnJ3c2VtKTsKIH0KIAotLyogQ2FsbGVkIHdpdGggbnMtPnNobV9pZHMobnMpLnJ3 X211dGV4IGxvY2tlZCAqLworLyogQ2FsbGVkIHdpdGggbnMtPnNobV9pZHMobnMpLnJ3c2VtIGxv Y2tlZCAqLwogc3RhdGljIGludCBzaG1fdHJ5X2Rlc3Ryb3lfY3VycmVudChpbnQgaWQsIHZvaWQg KnAsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zID0gZGF0YTsKQEAg LTI3NSw3ICsyOTgsNyBAQCBzdGF0aWMgaW50IHNobV90cnlfZGVzdHJveV9jdXJyZW50KGludCBp ZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAotLyogQ2FsbGVkIHdpdGgg bnMtPnNobV9pZHMobnMpLnJ3X211dGV4IGxvY2tlZCAqLworLyogQ2FsbGVkIHdpdGggbnMtPnNo bV9pZHMobnMpLnJ3c2VtIGxvY2tlZCAqLwogc3RhdGljIGludCBzaG1fdHJ5X2Rlc3Ryb3lfb3Jw aGFuZWQoaW50IGlkLCB2b2lkICpwLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBpcGNfbmFtZXNw YWNlICpucyA9IGRhdGE7CkBAIC0yODYsNyArMzA5LDcgQEAgc3RhdGljIGludCBzaG1fdHJ5X2Rl c3Ryb3lfb3JwaGFuZWQoaW50IGlkLCB2b2lkICpwLCB2b2lkICpkYXRhKQogCSAqIFdlIHdhbnQg dG8gZGVzdHJveSBzZWdtZW50cyB3aXRob3V0IHVzZXJzIGFuZCB3aXRoIGFscmVhZHkKIAkgKiBl eGl0J2VkIG9yaWdpbmF0aW5nIHByb2Nlc3MuCiAJICoKLQkgKiBBcyBzaHAtPiogYXJlIGNoYW5n ZWQgdW5kZXIgcndfbXV0ZXgsIGl0J3Mgc2FmZSB0byBza2lwIHNocCBsb2NraW5nLgorCSAqIEFz IHNocC0+KiBhcmUgY2hhbmdlZCB1bmRlciByd3NlbSwgaXQncyBzYWZlIHRvIHNraXAgc2hwIGxv Y2tpbmcuCiAJICovCiAJaWYgKHNocC0+c2htX2NyZWF0b3IgIT0gTlVMTCkKIAkJcmV0dXJuIDA7 CkBAIC0zMDAsMTAgKzMyMywxMCBAQCBzdGF0aWMgaW50IHNobV90cnlfZGVzdHJveV9vcnBoYW5l ZChpbnQgaWQsIHZvaWQgKnAsIHZvaWQgKmRhdGEpCiAKIHZvaWQgc2htX2Rlc3Ryb3lfb3JwaGFu ZWQoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zKQogewotCWRvd25fd3JpdGUoJnNobV9pZHMobnMp LnJ3X211dGV4KTsKKwlkb3duX3dyaXRlKCZzaG1faWRzKG5zKS5yd3NlbSk7CiAJaWYgKHNobV9p ZHMobnMpLmluX3VzZSkKIAkJaWRyX2Zvcl9lYWNoKCZzaG1faWRzKG5zKS5pcGNzX2lkciwgJnNo bV90cnlfZGVzdHJveV9vcnBoYW5lZCwgbnMpOwotCXVwX3dyaXRlKCZzaG1faWRzKG5zKS5yd19t dXRleCk7CisJdXBfd3JpdGUoJnNobV9pZHMobnMpLnJ3c2VtKTsKIH0KIAogCkBAIC0zMTUsMTAg KzMzOCwxMCBAQCB2b2lkIGV4aXRfc2htKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKIAkJcmV0 dXJuOwogCiAJLyogRGVzdHJveSBhbGwgYWxyZWFkeSBjcmVhdGVkIHNlZ21lbnRzLCBidXQgbm90 IG1hcHBlZCB5ZXQgKi8KLQlkb3duX3dyaXRlKCZzaG1faWRzKG5zKS5yd19tdXRleCk7CisJZG93 bl93cml0ZSgmc2htX2lkcyhucykucndzZW0pOwogCWlmIChzaG1faWRzKG5zKS5pbl91c2UpCiAJ CWlkcl9mb3JfZWFjaCgmc2htX2lkcyhucykuaXBjc19pZHIsICZzaG1fdHJ5X2Rlc3Ryb3lfY3Vy cmVudCwgbnMpOwotCXVwX3dyaXRlKCZzaG1faWRzKG5zKS5yd19tdXRleCk7CisJdXBfd3JpdGUo JnNobV9pZHMobnMpLnJ3c2VtKTsKIH0KIAogc3RhdGljIGludCBzaG1fZmF1bHQoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKQpAQCAtNDUyLDcgKzQ3NSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htX3ZtX29wcyA9 IHsKICAqIEBuczogbmFtZXNwYWNlCiAgKiBAcGFyYW1zOiBwdHIgdG8gdGhlIHN0cnVjdHVyZSB0 aGF0IGNvbnRhaW5zIGtleSwgc2l6ZSBhbmQgc2htZmxnCiAgKgotICogQ2FsbGVkIHdpdGggc2ht X2lkcy5yd19tdXRleCBoZWxkIGFzIGEgd3JpdGVyLgorICogQ2FsbGVkIHdpdGggc2htX2lkcy5y d3NlbSBoZWxkIGFzIGEgd3JpdGVyLgogICovCiAKIHN0YXRpYyBpbnQgbmV3c2VnKHN0cnVjdCBp cGNfbmFtZXNwYWNlICpucywgc3RydWN0IGlwY19wYXJhbXMgKnBhcmFtcykKQEAgLTU2MCw3ICs1 ODMsNyBAQCBub19maWxlOgogfQogCiAvKgotICogQ2FsbGVkIHdpdGggc2htX2lkcy5yd19tdXRl eCBhbmQgaXBjcCBsb2NrZWQuCisgKiBDYWxsZWQgd2l0aCBzaG1faWRzLnJ3c2VtIGFuZCBpcGNw IGxvY2tlZC4KICAqLwogc3RhdGljIGlubGluZSBpbnQgc2htX3NlY3VyaXR5KHN0cnVjdCBrZXJu X2lwY19wZXJtICppcGNwLCBpbnQgc2htZmxnKQogewpAQCAtNTcxLDcgKzU5NCw3IEBAIHN0YXRp YyBpbmxpbmUgaW50IHNobV9zZWN1cml0eShzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgaW50 IHNobWZsZykKIH0KIAogLyoKLSAqIENhbGxlZCB3aXRoIHNobV9pZHMucndfbXV0ZXggYW5kIGlw Y3AgbG9ja2VkLgorICogQ2FsbGVkIHdpdGggc2htX2lkcy5yd3NlbSBhbmQgaXBjcCBsb2NrZWQu CiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IHNobV9tb3JlX2NoZWNrcyhzdHJ1Y3Qga2Vybl9pcGNf cGVybSAqaXBjcCwKIAkJCQlzdHJ1Y3QgaXBjX3BhcmFtcyAqcGFyYW1zKQpAQCAtNjg0LDcgKzcw Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjb3B5X3NobWluZm9fdG9fdXNlcih2 b2lkIF9fdXNlciAqYnVmLCBzdHJ1Y3Qgc2htaW5mCiAKIC8qCiAgKiBDYWxjdWxhdGUgYW5kIGFk ZCB1c2VkIFJTUyBhbmQgc3dhcCBwYWdlcyBvZiBhIHNobS4KLSAqIENhbGxlZCB3aXRoIHNobV9p ZHMucndfbXV0ZXggaGVsZCBhcyBhIHJlYWRlcgorICogQ2FsbGVkIHdpdGggc2htX2lkcy5yd3Nl bSBoZWxkIGFzIGEgcmVhZGVyCiAgKi8KIHN0YXRpYyB2b2lkIHNobV9hZGRfcnNzX3N3YXAoc3Ry dWN0IHNobWlkX2tlcm5lbCAqc2hwLAogCXVuc2lnbmVkIGxvbmcgKnJzc19hZGQsIHVuc2lnbmVk IGxvbmcgKnN3cF9hZGQpCkBAIC03MTEsNyArNzM0LDcgQEAgc3RhdGljIHZvaWQgc2htX2FkZF9y c3Nfc3dhcChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAsCiB9CiAKIC8qCi0gKiBDYWxsZWQgd2l0 aCBzaG1faWRzLnJ3X211dGV4IGhlbGQgYXMgYSByZWFkZXIKKyAqIENhbGxlZCB3aXRoIHNobV9p ZHMucndzZW0gaGVsZCBhcyBhIHJlYWRlcgogICovCiBzdGF0aWMgdm9pZCBzaG1fZ2V0X3N0YXQo c3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCB1bnNpZ25lZCBsb25nICpyc3MsCiAJCXVuc2lnbmVk IGxvbmcgKnN3cCkKQEAgLTc0MCw5ICs3NjMsOSBAQCBzdGF0aWMgdm9pZCBzaG1fZ2V0X3N0YXQo c3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLCB1bnNpZ25lZCBsb25nICpyc3MsCiB9CiAKIC8qCi0g KiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgc29tZSBzaG1jdGwgY29tbWFuZHMgd2hpY2ggcmVxdWly ZSB0aGUgcndfbXV0ZXgKKyAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBzb21lIHNobWN0bCBjb21t YW5kcyB3aGljaCByZXF1aXJlIHRoZSByd3NlbQogICogdG8gYmUgaGVsZCBpbiB3cml0ZSBtb2Rl LgotICogTk9URTogbm8gbG9ja3MgbXVzdCBiZSBoZWxkLCB0aGUgcndfbXV0ZXggaXMgdGFrZW4g aW5zaWRlIHRoaXMgZnVuY3Rpb24uCisgKiBOT1RFOiBubyBsb2NrcyBtdXN0IGJlIGhlbGQsIHRo ZSByd3NlbSBpcyB0YWtlbiBpbnNpZGUgdGhpcyBmdW5jdGlvbi4KICAqLwogc3RhdGljIGludCBz aG1jdGxfZG93bihzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIGludCBzaG1pZCwgaW50IGNtZCwK IAkJICAgICAgIHN0cnVjdCBzaG1pZF9kcyBfX3VzZXIgKmJ1ZiwgaW50IHZlcnNpb24pCkBAIC03 NTcsMTQgKzc4MCwxMyBAQCBzdGF0aWMgaW50IHNobWN0bF9kb3duKHN0cnVjdCBpcGNfbmFtZXNw YWNlICpucywgaW50IHNobWlkLCBpbnQgY21kLAogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCi0J ZG93bl93cml0ZSgmc2htX2lkcyhucykucndfbXV0ZXgpOworCWRvd25fd3JpdGUoJnNobV9pZHMo bnMpLnJ3c2VtKTsKIAlyY3VfcmVhZF9sb2NrKCk7CiAKLQlpcGNwID0gaXBjY3RsX3ByZV9kb3du KG5zLCAmc2htX2lkcyhucyksIHNobWlkLCBjbWQsCi0JCQkgICAgICAgJnNobWlkNjQuc2htX3Bl cm0sIDApOworCWlwY3AgPSBpcGNjdGxfcHJlX2Rvd25fbm9sb2NrKG5zLCAmc2htX2lkcyhucyks IHNobWlkLCBjbWQsCisJCQkJICAgICAgJnNobWlkNjQuc2htX3Blcm0sIDApOwogCWlmIChJU19F UlIoaXBjcCkpIHsKIAkJZXJyID0gUFRSX0VSUihpcGNwKTsKLQkJLyogdGhlIGlwYyBsb2NrIGlz IG5vdCBoZWxkIHVwb24gZmFpbHVyZSAqLwogCQlnb3RvIG91dF91bmxvY2sxOwogCX0KIApAQCAt NzcyLDE0ICs3OTQsMTYgQEAgc3RhdGljIGludCBzaG1jdGxfZG93bihzdHJ1Y3QgaXBjX25hbWVz cGFjZSAqbnMsIGludCBzaG1pZCwgaW50IGNtZCwKIAogCWVyciA9IHNlY3VyaXR5X3NobV9zaG1j dGwoc2hwLCBjbWQpOwogCWlmIChlcnIpCi0JCWdvdG8gb3V0X3VubG9jazA7CisJCWdvdG8gb3V0 X3VubG9jazE7CiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgSVBDX1JNSUQ6CisJCWlwY19sb2Nr X29iamVjdCgmc2hwLT5zaG1fcGVybSk7CiAJCS8qIGRvX3NobV9ybWlkIHVubG9ja3MgdGhlIGlw YyBvYmplY3QgYW5kIHJjdSAqLwogCQlkb19zaG1fcm1pZChucywgaXBjcCk7CiAJCWdvdG8gb3V0 X3VwOwogCWNhc2UgSVBDX1NFVDoKKwkJaXBjX2xvY2tfb2JqZWN0KCZzaHAtPnNobV9wZXJtKTsK IAkJZXJyID0gaXBjX3VwZGF0ZV9wZXJtKCZzaG1pZDY0LnNobV9wZXJtLCBpcGNwKTsKIAkJaWYg KGVycikKIAkJCWdvdG8gb3V0X3VubG9jazA7CkBAIC03ODcsNiArODExLDcgQEAgc3RhdGljIGlu dCBzaG1jdGxfZG93bihzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIGludCBzaG1pZCwgaW50IGNt ZCwKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXRfdW5s b2NrMTsKIAl9CiAKIG91dF91bmxvY2swOgpAQCAtNzk0LDMzICs4MTksMjggQEAgb3V0X3VubG9j azA6CiBvdXRfdW5sb2NrMToKIAlyY3VfcmVhZF91bmxvY2soKTsKIG91dF91cDoKLQl1cF93cml0 ZSgmc2htX2lkcyhucykucndfbXV0ZXgpOworCXVwX3dyaXRlKCZzaG1faWRzKG5zKS5yd3NlbSk7 CiAJcmV0dXJuIGVycjsKIH0KIAotU1lTQ0FMTF9ERUZJTkUzKHNobWN0bCwgaW50LCBzaG1pZCwg aW50LCBjbWQsIHN0cnVjdCBzaG1pZF9kcyBfX3VzZXIgKiwgYnVmKQorc3RhdGljIGludCBzaG1j dGxfbm9sb2NrKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgaW50IHNobWlkLAorCQkJIGludCBj bWQsIGludCB2ZXJzaW9uLCB2b2lkIF9fdXNlciAqYnVmKQogeworCWludCBlcnI7CiAJc3RydWN0 IHNobWlkX2tlcm5lbCAqc2hwOwotCWludCBlcnIsIHZlcnNpb247Ci0Jc3RydWN0IGlwY19uYW1l c3BhY2UgKm5zOwogCi0JaWYgKGNtZCA8IDAgfHwgc2htaWQgPCAwKSB7Ci0JCWVyciA9IC1FSU5W QUw7Ci0JCWdvdG8gb3V0OworCS8qIHByZWxpbWluYXJ5IHNlY3VyaXR5IGNoZWNrcyBmb3IgKl9J TkZPICovCisJaWYgKGNtZCA9PSBJUENfSU5GTyB8fCBjbWQgPT0gU0hNX0lORk8pIHsKKwkJZXJy ID0gc2VjdXJpdHlfc2htX3NobWN0bChOVUxMLCBjbWQpOworCQlpZiAoZXJyKQorCQkJcmV0dXJu IGVycjsKIAl9CiAKLQl2ZXJzaW9uID0gaXBjX3BhcnNlX3ZlcnNpb24oJmNtZCk7Ci0JbnMgPSBj dXJyZW50LT5uc3Byb3h5LT5pcGNfbnM7Ci0KLQlzd2l0Y2ggKGNtZCkgeyAvKiByZXBsYWNlIHdp dGggcHJvYyBpbnRlcmZhY2UgPyAqLworCXN3aXRjaCAoY21kKSB7CiAJY2FzZSBJUENfSU5GTzoK IAl7CiAJCXN0cnVjdCBzaG1pbmZvNjQgc2htaW5mbzsKIAotCQllcnIgPSBzZWN1cml0eV9zaG1f c2htY3RsKE5VTEwsIGNtZCk7Ci0JCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwotCiAJCW1lbXNl dCgmc2htaW5mbywgMCwgc2l6ZW9mKHNobWluZm8pKTsKIAkJc2htaW5mby5zaG1tbmkgPSBzaG1p bmZvLnNobXNlZyA9IG5zLT5zaG1fY3RsbW5pOwogCQlzaG1pbmZvLnNobW1heCA9IG5zLT5zaG1f Y3RsbWF4OwpAQCAtODMwLDkgKzg1MCw5IEBAIFNZU0NBTExfREVGSU5FMyhzaG1jdGwsIGludCwg c2htaWQsIGludCwgY21kLCBzdHJ1Y3Qgc2htaWRfZHMgX191c2VyICosIGJ1ZikKIAkJaWYoY29w eV9zaG1pbmZvX3RvX3VzZXIgKGJ1ZiwgJnNobWluZm8sIHZlcnNpb24pKQogCQkJcmV0dXJuIC1F RkFVTFQ7CiAKLQkJZG93bl9yZWFkKCZzaG1faWRzKG5zKS5yd19tdXRleCk7CisJCWRvd25fcmVh ZCgmc2htX2lkcyhucykucndzZW0pOwogCQllcnIgPSBpcGNfZ2V0X21heGlkKCZzaG1faWRzKG5z KSk7Ci0JCXVwX3JlYWQoJnNobV9pZHMobnMpLnJ3X211dGV4KTsKKwkJdXBfcmVhZCgmc2htX2lk cyhucykucndzZW0pOwogCiAJCWlmKGVycjwwKQogCQkJZXJyID0gMDsKQEAgLTg0MiwxOSArODYy LDE1IEBAIFNZU0NBTExfREVGSU5FMyhzaG1jdGwsIGludCwgc2htaWQsIGludCwgY21kLCBzdHJ1 Y3Qgc2htaWRfZHMgX191c2VyICosIGJ1ZikKIAl7CiAJCXN0cnVjdCBzaG1faW5mbyBzaG1faW5m bzsKIAotCQllcnIgPSBzZWN1cml0eV9zaG1fc2htY3RsKE5VTEwsIGNtZCk7Ci0JCWlmIChlcnIp Ci0JCQlyZXR1cm4gZXJyOwotCiAJCW1lbXNldCgmc2htX2luZm8sIDAsIHNpemVvZihzaG1faW5m bykpOwotCQlkb3duX3JlYWQoJnNobV9pZHMobnMpLnJ3X211dGV4KTsKKwkJZG93bl9yZWFkKCZz aG1faWRzKG5zKS5yd3NlbSk7CiAJCXNobV9pbmZvLnVzZWRfaWRzID0gc2htX2lkcyhucykuaW5f dXNlOwogCQlzaG1fZ2V0X3N0YXQgKG5zLCAmc2htX2luZm8uc2htX3JzcywgJnNobV9pbmZvLnNo bV9zd3ApOwogCQlzaG1faW5mby5zaG1fdG90ID0gbnMtPnNobV90b3Q7CiAJCXNobV9pbmZvLnN3 YXBfYXR0ZW1wdHMgPSAwOwogCQlzaG1faW5mby5zd2FwX3N1Y2Nlc3NlcyA9IDA7CiAJCWVyciA9 IGlwY19nZXRfbWF4aWQoJnNobV9pZHMobnMpKTsKLQkJdXBfcmVhZCgmc2htX2lkcyhucykucndf bXV0ZXgpOworCQl1cF9yZWFkKCZzaG1faWRzKG5zKS5yd3NlbSk7CiAJCWlmIChjb3B5X3RvX3Vz ZXIoYnVmLCAmc2htX2luZm8sIHNpemVvZihzaG1faW5mbykpKSB7CiAJCQllcnIgPSAtRUZBVUxU OwogCQkJZ290byBvdXQ7CkBAIC04NjksMjcgKzg4NSwzMSBAQCBTWVNDQUxMX0RFRklORTMoc2ht Y3RsLCBpbnQsIHNobWlkLCBpbnQsIGNtZCwgc3RydWN0IHNobWlkX2RzIF9fdXNlciAqLCBidWYp CiAJCXN0cnVjdCBzaG1pZDY0X2RzIHRidWY7CiAJCWludCByZXN1bHQ7CiAKKwkJcmN1X3JlYWRf bG9jaygpOwogCQlpZiAoY21kID09IFNITV9TVEFUKSB7Ci0JCQlzaHAgPSBzaG1fbG9jayhucywg c2htaWQpOworCQkJc2hwID0gc2htX29idGFpbl9vYmplY3QobnMsIHNobWlkKTsKIAkJCWlmIChJ U19FUlIoc2hwKSkgewogCQkJCWVyciA9IFBUUl9FUlIoc2hwKTsKLQkJCQlnb3RvIG91dDsKKwkJ CQlnb3RvIG91dF91bmxvY2s7CiAJCQl9CiAJCQlyZXN1bHQgPSBzaHAtPnNobV9wZXJtLmlkOwog CQl9IGVsc2UgewotCQkJc2hwID0gc2htX2xvY2tfY2hlY2sobnMsIHNobWlkKTsKKwkJCXNocCA9 IHNobV9vYnRhaW5fb2JqZWN0X2NoZWNrKG5zLCBzaG1pZCk7CiAJCQlpZiAoSVNfRVJSKHNocCkp IHsKIAkJCQllcnIgPSBQVFJfRVJSKHNocCk7Ci0JCQkJZ290byBvdXQ7CisJCQkJZ290byBvdXRf dW5sb2NrOwogCQkJfQogCQkJcmVzdWx0ID0gMDsKIAkJfQorCiAJCWVyciA9IC1FQUNDRVM7CiAJ CWlmIChpcGNwZXJtcyhucywgJnNocC0+c2htX3Blcm0sIFNfSVJVR08pKQogCQkJZ290byBvdXRf dW5sb2NrOworCiAJCWVyciA9IHNlY3VyaXR5X3NobV9zaG1jdGwoc2hwLCBjbWQpOwogCQlpZiAo ZXJyKQogCQkJZ290byBvdXRfdW5sb2NrOworCiAJCW1lbXNldCgmdGJ1ZiwgMCwgc2l6ZW9mKHRi dWYpKTsKIAkJa2VybmVsX3RvX2lwYzY0X3Blcm0oJnNocC0+c2htX3Blcm0sICZ0YnVmLnNobV9w ZXJtKTsKIAkJdGJ1Zi5zaG1fc2Vnc3oJPSBzaHAtPnNobV9zZWdzejsKQEAgLTg5OSw0MyArOTE5 LDc2IEBAIFNZU0NBTExfREVGSU5FMyhzaG1jdGwsIGludCwgc2htaWQsIGludCwgY21kLCBzdHJ1 Y3Qgc2htaWRfZHMgX191c2VyICosIGJ1ZikKIAkJdGJ1Zi5zaG1fY3BpZAk9IHNocC0+c2htX2Nw cmlkOwogCQl0YnVmLnNobV9scGlkCT0gc2hwLT5zaG1fbHByaWQ7CiAJCXRidWYuc2htX25hdHRj aAk9IHNocC0+c2htX25hdHRjaDsKLQkJc2htX3VubG9jayhzaHApOwotCQlpZihjb3B5X3NobWlk X3RvX3VzZXIgKGJ1ZiwgJnRidWYsIHZlcnNpb24pKQorCQlyY3VfcmVhZF91bmxvY2soKTsKKwor CQlpZiAoY29weV9zaG1pZF90b191c2VyIChidWYsICZ0YnVmLCB2ZXJzaW9uKSkKIAkJCWVyciA9 IC1FRkFVTFQ7CiAJCWVsc2UKIAkJCWVyciA9IHJlc3VsdDsKIAkJZ290byBvdXQ7CiAJfQorCWRl ZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworb3V0X3VubG9jazoKKwlyY3VfcmVhZF91 bmxvY2soKTsKK291dDoKKwlyZXR1cm4gZXJyOworfQorCitTWVNDQUxMX0RFRklORTMoc2htY3Rs LCBpbnQsIHNobWlkLCBpbnQsIGNtZCwgc3RydWN0IHNobWlkX2RzIF9fdXNlciAqLCBidWYpCit7 CisJc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwOworCWludCBlcnIsIHZlcnNpb247CisJc3RydWN0 IGlwY19uYW1lc3BhY2UgKm5zOworCisJaWYgKGNtZCA8IDAgfHwgc2htaWQgPCAwKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCXZlcnNpb24gPSBpcGNfcGFyc2VfdmVyc2lvbigmY21kKTsKKwlucyA9 IGN1cnJlbnQtPm5zcHJveHktPmlwY19uczsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBJUENf SU5GTzoKKwljYXNlIFNITV9JTkZPOgorCWNhc2UgU0hNX1NUQVQ6CisJY2FzZSBJUENfU1RBVDoK KwkJcmV0dXJuIHNobWN0bF9ub2xvY2sobnMsIHNobWlkLCBjbWQsIHZlcnNpb24sIGJ1Zik7CisJ Y2FzZSBJUENfUk1JRDoKKwljYXNlIElQQ19TRVQ6CisJCXJldHVybiBzaG1jdGxfZG93bihucywg c2htaWQsIGNtZCwgYnVmLCB2ZXJzaW9uKTsKIAljYXNlIFNITV9MT0NLOgogCWNhc2UgU0hNX1VO TE9DSzoKIAl7CiAJCXN0cnVjdCBmaWxlICpzaG1fZmlsZTsKIAotCQlzaHAgPSBzaG1fbG9ja19j aGVjayhucywgc2htaWQpOworCQlyY3VfcmVhZF9sb2NrKCk7CisJCXNocCA9IHNobV9vYnRhaW5f b2JqZWN0X2NoZWNrKG5zLCBzaG1pZCk7CiAJCWlmIChJU19FUlIoc2hwKSkgewogCQkJZXJyID0g UFRSX0VSUihzaHApOwotCQkJZ290byBvdXQ7CisJCQlnb3RvIG91dF91bmxvY2sxOwogCQl9CiAK IAkJYXVkaXRfaXBjX29iaigmKHNocC0+c2htX3Blcm0pKTsKKwkJZXJyID0gc2VjdXJpdHlfc2ht X3NobWN0bChzaHAsIGNtZCk7CisJCWlmIChlcnIpCisJCQlnb3RvIG91dF91bmxvY2sxOwogCisJ CWlwY19sb2NrX29iamVjdCgmc2hwLT5zaG1fcGVybSk7CiAJCWlmICghbnNfY2FwYWJsZShucy0+ dXNlcl9ucywgQ0FQX0lQQ19MT0NLKSkgewogCQkJa3VpZF90IGV1aWQgPSBjdXJyZW50X2V1aWQo KTsKIAkJCWVyciA9IC1FUEVSTTsKIAkJCWlmICghdWlkX2VxKGV1aWQsIHNocC0+c2htX3Blcm0u dWlkKSAmJgogCQkJICAgICF1aWRfZXEoZXVpZCwgc2hwLT5zaG1fcGVybS5jdWlkKSkKLQkJCQln b3RvIG91dF91bmxvY2s7CisJCQkJZ290byBvdXRfdW5sb2NrMDsKIAkJCWlmIChjbWQgPT0gU0hN X0xPQ0sgJiYgIXJsaW1pdChSTElNSVRfTUVNTE9DSykpCi0JCQkJZ290byBvdXRfdW5sb2NrOwor CQkJCWdvdG8gb3V0X3VubG9jazA7CiAJCX0KIAotCQllcnIgPSBzZWN1cml0eV9zaG1fc2htY3Rs KHNocCwgY21kKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gb3V0X3VubG9jazsKLQogCQlzaG1fZmls ZSA9IHNocC0+c2htX2ZpbGU7CiAJCWlmIChpc19maWxlX2h1Z2VwYWdlcyhzaG1fZmlsZSkpCi0J CQlnb3RvIG91dF91bmxvY2s7CisJCQlnb3RvIG91dF91bmxvY2swOwogCiAJCWlmIChjbWQgPT0g U0hNX0xPQ0spIHsKIAkJCXN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlciA9IGN1cnJlbnRfdXNlcigp OwpAQCAtOTQ0LDMyICs5OTcsMzEgQEAgU1lTQ0FMTF9ERUZJTkUzKHNobWN0bCwgaW50LCBzaG1p ZCwgaW50LCBjbWQsIHN0cnVjdCBzaG1pZF9kcyBfX3VzZXIgKiwgYnVmKQogCQkJCXNocC0+c2ht X3Blcm0ubW9kZSB8PSBTSE1fTE9DS0VEOwogCQkJCXNocC0+bWxvY2tfdXNlciA9IHVzZXI7CiAJ CQl9Ci0JCQlnb3RvIG91dF91bmxvY2s7CisJCQlnb3RvIG91dF91bmxvY2swOwogCQl9CiAKIAkJ LyogU0hNX1VOTE9DSyAqLwogCQlpZiAoIShzaHAtPnNobV9wZXJtLm1vZGUgJiBTSE1fTE9DS0VE KSkKLQkJCWdvdG8gb3V0X3VubG9jazsKKwkJCWdvdG8gb3V0X3VubG9jazA7CiAJCXNobWVtX2xv Y2soc2htX2ZpbGUsIDAsIHNocC0+bWxvY2tfdXNlcik7CiAJCXNocC0+c2htX3Blcm0ubW9kZSAm PSB+U0hNX0xPQ0tFRDsKIAkJc2hwLT5tbG9ja191c2VyID0gTlVMTDsKIAkJZ2V0X2ZpbGUoc2ht X2ZpbGUpOwotCQlzaG1fdW5sb2NrKHNocCk7CisJCWlwY191bmxvY2tfb2JqZWN0KCZzaHAtPnNo bV9wZXJtKTsKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCXNobWVtX3VubG9ja19tYXBwaW5nKHNo bV9maWxlLT5mX21hcHBpbmcpOworCiAJCWZwdXQoc2htX2ZpbGUpOwotCQlnb3RvIG91dDsKLQl9 Ci0JY2FzZSBJUENfUk1JRDoKLQljYXNlIElQQ19TRVQ6Ci0JCWVyciA9IHNobWN0bF9kb3duKG5z LCBzaG1pZCwgY21kLCBidWYsIHZlcnNpb24pOwogCQlyZXR1cm4gZXJyOworCX0KIAlkZWZhdWx0 OgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLW91dF91bmxvY2s6Ci0Jc2htX3VubG9jayhzaHAp Owotb3V0Ogorb3V0X3VubG9jazA6CisJaXBjX3VubG9ja19vYmplY3QoJnNocC0+c2htX3Blcm0p Oworb3V0X3VubG9jazE6CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAJcmV0dXJuIGVycjsKIH0KIApA QCAtMTAzNyw3ICsxMDg5LDggQEAgbG9uZyBkb19zaG1hdChpbnQgc2htaWQsIGNoYXIgX191c2Vy ICpzaG1hZGRyLCBpbnQgc2htZmxnLCB1bG9uZyAqcmFkZHIsCiAJICogYWRkaXRpb25hbCBjcmVh dG9yIGlkLi4uCiAJICovCiAJbnMgPSBjdXJyZW50LT5uc3Byb3h5LT5pcGNfbnM7Ci0Jc2hwID0g c2htX2xvY2tfY2hlY2sobnMsIHNobWlkKTsKKwlyY3VfcmVhZF9sb2NrKCk7CisJc2hwID0gc2ht X29idGFpbl9vYmplY3RfY2hlY2sobnMsIHNobWlkKTsKIAlpZiAoSVNfRVJSKHNocCkpIHsKIAkJ ZXJyID0gUFRSX0VSUihzaHApOwogCQlnb3RvIG91dDsKQEAgLTEwNTEsMjQgKzExMDQsMzEgQEAg bG9uZyBkb19zaG1hdChpbnQgc2htaWQsIGNoYXIgX191c2VyICpzaG1hZGRyLCBpbnQgc2htZmxn LCB1bG9uZyAqcmFkZHIsCiAJaWYgKGVycikKIAkJZ290byBvdXRfdW5sb2NrOwogCisJaXBjX2xv Y2tfb2JqZWN0KCZzaHAtPnNobV9wZXJtKTsKIAlwYXRoID0gc2hwLT5zaG1fZmlsZS0+Zl9wYXRo OwogCXBhdGhfZ2V0KCZwYXRoKTsKIAlzaHAtPnNobV9uYXR0Y2grKzsKIAlzaXplID0gaV9zaXpl X3JlYWQocGF0aC5kZW50cnktPmRfaW5vZGUpOwotCXNobV91bmxvY2soc2hwKTsKKwlpcGNfdW5s b2NrX29iamVjdCgmc2hwLT5zaG1fcGVybSk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAllcnIg PSAtRU5PTUVNOwogCXNmZCA9IGt6YWxsb2Moc2l6ZW9mKCpzZmQpLCBHRlBfS0VSTkVMKTsKLQlp ZiAoIXNmZCkKLQkJZ290byBvdXRfcHV0X2RlbnRyeTsKKwlpZiAoIXNmZCkgeworCQlwYXRoX3B1 dCgmcGF0aCk7CisJCWdvdG8gb3V0X25hdHRjaDsKKwl9CiAKIAlmaWxlID0gYWxsb2NfZmlsZSgm cGF0aCwgZl9tb2RlLAogCQkJICBpc19maWxlX2h1Z2VwYWdlcyhzaHAtPnNobV9maWxlKSA/CiAJ CQkJJnNobV9maWxlX29wZXJhdGlvbnNfaHVnZSA6CiAJCQkJJnNobV9maWxlX29wZXJhdGlvbnMp OwogCWVyciA9IFBUUl9FUlIoZmlsZSk7Ci0JaWYgKElTX0VSUihmaWxlKSkKLQkJZ290byBvdXRf ZnJlZTsKKwlpZiAoSVNfRVJSKGZpbGUpKSB7CisJCWtmcmVlKHNmZCk7CisJCXBhdGhfcHV0KCZw YXRoKTsKKwkJZ290byBvdXRfbmF0dGNoOworCX0KIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHNm ZDsKIAlmaWxlLT5mX21hcHBpbmcgPSBzaHAtPnNobV9maWxlLT5mX21hcHBpbmc7CkBAIC0xMDk0 LDcgKzExNTQsNyBAQCBsb25nIGRvX3NobWF0KGludCBzaG1pZCwgY2hhciBfX3VzZXIgKnNobWFk ZHIsIGludCBzaG1mbGcsIHVsb25nICpyYWRkciwKIAkJICAgIGFkZHIgPiBjdXJyZW50LT5tbS0+ c3RhcnRfc3RhY2sgLSBzaXplIC0gUEFHRV9TSVpFICogNSkKIAkJCWdvdG8gaW52YWxpZDsKIAl9 Ci0JCQorCiAJYWRkciA9IGRvX21tYXBfcGdvZmYoZmlsZSwgYWRkciwgc2l6ZSwgcHJvdCwgZmxh Z3MsIDAsICZwb3B1bGF0ZSk7CiAJKnJhZGRyID0gYWRkcjsKIAllcnIgPSAwOwpAQCAtMTEwOSw3 ICsxMTY5LDcgQEAgb3V0X2ZwdXQ6CiAJZnB1dChmaWxlKTsKIAogb3V0X25hdHRjaDoKLQlkb3du X3dyaXRlKCZzaG1faWRzKG5zKS5yd19tdXRleCk7CisJZG93bl93cml0ZSgmc2htX2lkcyhucyku cndzZW0pOwogCXNocCA9IHNobV9sb2NrKG5zLCBzaG1pZCk7CiAJQlVHX09OKElTX0VSUihzaHAp KTsKIAlzaHAtPnNobV9uYXR0Y2gtLTsKQEAgLTExMTcsMjAgKzExNzcsMTMgQEAgb3V0X25hdHRj aDoKIAkJc2htX2Rlc3Ryb3kobnMsIHNocCk7CiAJZWxzZQogCQlzaG1fdW5sb2NrKHNocCk7Ci0J dXBfd3JpdGUoJnNobV9pZHMobnMpLnJ3X211dGV4KTsKLQotb3V0OgorCXVwX3dyaXRlKCZzaG1f aWRzKG5zKS5yd3NlbSk7CiAJcmV0dXJuIGVycjsKIAogb3V0X3VubG9jazoKLQlzaG1fdW5sb2Nr KHNocCk7Ci0JZ290byBvdXQ7Ci0KLW91dF9mcmVlOgotCWtmcmVlKHNmZCk7Ci1vdXRfcHV0X2Rl bnRyeToKLQlwYXRoX3B1dCgmcGF0aCk7Ci0JZ290byBvdXRfbmF0dGNoOworCXJjdV9yZWFkX3Vu bG9jaygpOworb3V0OgorCXJldHVybiBlcnI7CiB9CiAKIFNZU0NBTExfREVGSU5FMyhzaG1hdCwg aW50LCBzaG1pZCwgY2hhciBfX3VzZXIgKiwgc2htYWRkciwgaW50LCBzaG1mbGcpCmRpZmYgLS1n aXQgYS9pcGMvdXRpbC5jIGIvaXBjL3V0aWwuYwppbmRleCA0NzA0MjIzLi42OWVlM2MxIDEwMDY0 NAotLS0gYS9pcGMvdXRpbC5jCisrKyBiL2lwYy91dGlsLmMKQEAgLTE1LDYgKzE1LDE0IEBACiAg KiBKdW4gMjAwNiAtIG5hbWVzcGFjZXMgc3N1cHBvcnQKICAqICAgICAgICAgICAgT3BlblZaLCBT V3NvZnQgSW5jLgogICogICAgICAgICAgICBQYXZlbCBFbWVsaWFub3YgPHhlbXVsQG9wZW52ei5v cmc+CisgKgorICogR2VuZXJhbCBzeXN2IGlwYyBsb2NraW5nIHNjaGVtZToKKyAqICB3aGVuIGRv aW5nIGlwYyBpZCBsb29rdXBzLCB0YWtlIHRoZSBpZHMtPnJ3c2VtCisgKiAgICAgIHJjdV9yZWFk X2xvY2soKQorICogICAgICAgICAgb2J0YWluIHRoZSBpcGMgb2JqZWN0IChrZXJuX2lwY19wZXJt KQorICogICAgICAgICAgcGVyZm9ybSBzZWN1cml0eSwgY2FwYWJpbGl0aWVzLCBhdWRpdGluZyBh bmQgcGVybWlzc2lvbiBjaGVja3MsIGV0Yy4KKyAqICAgICAgICAgIGFjcXVpcmUgdGhlIGlwYyBs b2NrIChrZXJuX2lwY19wZXJtLmxvY2spIHRocm91Z2h0IGlwY19sb2NrX29iamVjdCgpCisgKiAg ICAgICAgICAgICBwZXJmb3JtIGRhdGEgdXBkYXRlcyAoaWU6IFNFVCwgUk1JRCwgTE9DSy9VTkxP Q0sgY29tbWFuZHMpCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CkBAIC0xMTksNyArMTI3 LDcgQEAgX19pbml0Y2FsbChpcGNfaW5pdCk7CiAgCiB2b2lkIGlwY19pbml0X2lkcyhzdHJ1Y3Qg aXBjX2lkcyAqaWRzKQogewotCWluaXRfcndzZW0oJmlkcy0+cndfbXV0ZXgpOworCWluaXRfcndz ZW0oJmlkcy0+cndzZW0pOwogCiAJaWRzLT5pbl91c2UgPSAwOwogCWlkcy0+c2VxID0gMDsKQEAg LTE3NCw3ICsxODIsNyBAQCB2b2lkIF9faW5pdCBpcGNfaW5pdF9wcm9jX2ludGVyZmFjZShjb25z dCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpoZWFkZXIsCiAgKglAaWRzOiBJZGVudGlmaWVyIHNl dAogICoJQGtleTogVGhlIGtleSB0byBmaW5kCiAgKgkKLSAqCVJlcXVpcmVzIGlwY19pZHMucndf bXV0ZXggbG9ja2VkLgorICoJUmVxdWlyZXMgaXBjX2lkcy5yd3NlbSBsb2NrZWQuCiAgKglSZXR1 cm5zIHRoZSBMT0NLRUQgcG9pbnRlciB0byB0aGUgaXBjIHN0cnVjdHVyZSBpZiBmb3VuZCBvciBO VUxMCiAgKglpZiBub3QuCiAgKglJZiBrZXkgaXMgZm91bmQgaXBjIHBvaW50cyB0byB0aGUgb3du aW5nIGlwYyBzdHJ1Y3R1cmUKQEAgLTIwOCw3ICsyMTYsNyBAQCBzdGF0aWMgc3RydWN0IGtlcm5f aXBjX3Blcm0gKmlwY19maW5ka2V5KHN0cnVjdCBpcGNfaWRzICppZHMsIGtleV90IGtleSkKICAq CWlwY19nZXRfbWF4aWQgCS0JZ2V0IHRoZSBsYXN0IGFzc2lnbmVkIGlkCiAgKglAaWRzOiBJUEMg aWRlbnRpZmllciBzZXQKICAqCi0gKglDYWxsZWQgd2l0aCBpcGNfaWRzLnJ3X211dGV4IGhlbGQu CisgKglDYWxsZWQgd2l0aCBpcGNfaWRzLnJ3c2VtIGhlbGQuCiAgKi8KIAogaW50IGlwY19nZXRf bWF4aWQoc3RydWN0IGlwY19pZHMgKmlkcykKQEAgLTI0Niw3ICsyNTQsNyBAQCBpbnQgaXBjX2dl dF9tYXhpZChzdHJ1Y3QgaXBjX2lkcyAqaWRzKQogICoJaXMgcmV0dXJuZWQuIFRoZSAnbmV3JyBl bnRyeSBpcyByZXR1cm5lZCBpbiBhIGxvY2tlZCBzdGF0ZSBvbiBzdWNjZXNzLgogICoJT24gZmFp bHVyZSB0aGUgZW50cnkgaXMgbm90IGxvY2tlZCBhbmQgYSBuZWdhdGl2ZSBlcnItY29kZSBpcyBy ZXR1cm5lZC4KICAqCi0gKglDYWxsZWQgd2l0aCB3cml0ZXIgaXBjX2lkcy5yd19tdXRleCBoZWxk LgorICoJQ2FsbGVkIHdpdGggd3JpdGVyIGlwY19pZHMucndzZW0gaGVsZC4KICAqLwogaW50IGlw Y19hZGRpZChzdHJ1Y3QgaXBjX2lkcyogaWRzLCBzdHJ1Y3Qga2Vybl9pcGNfcGVybSogbmV3LCBp bnQgc2l6ZSkKIHsKQEAgLTMxMiw5ICszMjAsOSBAQCBzdGF0aWMgaW50IGlwY2dldF9uZXcoc3Ry dWN0IGlwY19uYW1lc3BhY2UgKm5zLCBzdHJ1Y3QgaXBjX2lkcyAqaWRzLAogewogCWludCBlcnI7 CiAKLQlkb3duX3dyaXRlKCZpZHMtPnJ3X211dGV4KTsKKwlkb3duX3dyaXRlKCZpZHMtPnJ3c2Vt KTsKIAllcnIgPSBvcHMtPmdldG5ldyhucywgcGFyYW1zKTsKLQl1cF93cml0ZSgmaWRzLT5yd19t dXRleCk7CisJdXBfd3JpdGUoJmlkcy0+cndzZW0pOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTMz MSw3ICszMzksNyBAQCBzdGF0aWMgaW50IGlwY2dldF9uZXcoc3RydWN0IGlwY19uYW1lc3BhY2Ug Km5zLCBzdHJ1Y3QgaXBjX2lkcyAqaWRzLAogICoKICAqCU9uIHN1Y2Nlc3MsIHRoZSBJUEMgaWQg aXMgcmV0dXJuZWQuCiAgKgotICoJSXQgaXMgY2FsbGVkIHdpdGggaXBjX2lkcy5yd19tdXRleCBh bmQgaXBjcC0+bG9jayBoZWxkLgorICoJSXQgaXMgY2FsbGVkIHdpdGggaXBjX2lkcy5yd3NlbSBh bmQgaXBjcC0+bG9jayBoZWxkLgogICovCiBzdGF0aWMgaW50IGlwY19jaGVja19wZXJtcyhzdHJ1 Y3QgaXBjX25hbWVzcGFjZSAqbnMsCiAJCQkgICBzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwK QEAgLTM3Niw3ICszODQsNyBAQCBzdGF0aWMgaW50IGlwY2dldF9wdWJsaWMoc3RydWN0IGlwY19u YW1lc3BhY2UgKm5zLCBzdHJ1Y3QgaXBjX2lkcyAqaWRzLAogCSAqIFRha2UgdGhlIGxvY2sgYXMg YSB3cml0ZXIgc2luY2Ugd2UgYXJlIHBvdGVudGlhbGx5IGdvaW5nIHRvIGFkZAogCSAqIGEgbmV3 IGVudHJ5ICsgcmVhZCBsb2NrcyBhcmUgbm90ICJ1cGdyYWRhYmxlIgogCSAqLwotCWRvd25fd3Jp dGUoJmlkcy0+cndfbXV0ZXgpOworCWRvd25fd3JpdGUoJmlkcy0+cndzZW0pOwogCWlwY3AgPSBp cGNfZmluZGtleShpZHMsIHBhcmFtcy0+a2V5KTsKIAlpZiAoaXBjcCA9PSBOVUxMKSB7CiAJCS8q IGtleSBub3QgdXNlZCAqLwpAQCAtNDAyLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgaXBjZ2V0X3B1 YmxpYyhzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBpcGNfaWRzICppZHMsCiAJCX0K IAkJaXBjX3VubG9jayhpcGNwKTsKIAl9Ci0JdXBfd3JpdGUoJmlkcy0+cndfbXV0ZXgpOworCXVw X3dyaXRlKCZpZHMtPnJ3c2VtKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC00MTMsNyArNDIxLDcg QEAgc3RhdGljIGludCBpcGNnZXRfcHVibGljKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3Ry dWN0IGlwY19pZHMgKmlkcywKICAqCUBpZHM6IElQQyBpZGVudGlmaWVyIHNldAogICoJQGlwY3A6 IGlwYyBwZXJtIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVyIHRvIHJlbW92ZQog ICoKLSAqCWlwY19pZHMucndfbXV0ZXggKGFzIGEgd3JpdGVyKSBhbmQgdGhlIHNwaW5sb2NrIGZv ciB0aGlzIElEIGFyZSBoZWxkCisgKglpcGNfaWRzLnJ3c2VtIChhcyBhIHdyaXRlcikgYW5kIHRo ZSBzcGlubG9jayBmb3IgdGhpcyBJRCBhcmUgaGVsZAogICoJYmVmb3JlIHRoaXMgZnVuY3Rpb24g aXMgY2FsbGVkLCBhbmQgcmVtYWluIGxvY2tlZCBvbiB0aGUgZXhpdC4KICAqLwogIApAQCAtNjIx LDcgKzYyOSw3IEBAIHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNfb2J0YWluX29iamVjdChzdHJ1 Y3QgaXBjX2lkcyAqaWRzLCBpbnQgaWQpCiB9CiAKIC8qKgotICogaXBjX2xvY2sgLSBMb2NrIGFu IGlwYyBzdHJ1Y3R1cmUgd2l0aG91dCByd19tdXRleCBoZWxkCisgKiBpcGNfbG9jayAtIExvY2sg YW4gaXBjIHN0cnVjdHVyZSB3aXRob3V0IHJ3c2VtIGhlbGQKICAqIEBpZHM6IElQQyBpZGVudGlm aWVyIHNldAogICogQGlkOiBpcGMgaWQgdG8gbG9vayBmb3IKICAqCkBAIC03NDYsMjYgKzc1NCwx MCBAQCBpbnQgaXBjX3VwZGF0ZV9wZXJtKHN0cnVjdCBpcGM2NF9wZXJtICppbiwgc3RydWN0IGtl cm5faXBjX3Blcm0gKm91dCkKICAqIEl0IG11c3QgYmUgY2FsbGVkIHdpdGhvdXQgYW55IGxvY2sg aGVsZCBhbmQKICAqICAtIHJldHJpZXZlcyB0aGUgaXBjIHdpdGggdGhlIGdpdmVuIGlkIGluIHRo ZSBnaXZlbiB0YWJsZS4KICAqICAtIHBlcmZvcm1zIHNvbWUgYXVkaXQgYW5kIHBlcm1pc3Npb24g Y2hlY2ssIGRlcGVuZGluZyBvbiB0aGUgZ2l2ZW4gY21kCi0gKiAgLSByZXR1cm5zIHRoZSBpcGMg d2l0aCB0aGUgaXBjIGxvY2sgaGVsZCBpbiBjYXNlIG9mIHN1Y2Nlc3MKLSAqICAgIG9yIGFuIGVy ci1jb2RlIHdpdGhvdXQgYW55IGxvY2sgaGVsZCBvdGhlcndpc2UuCisgKiAgLSByZXR1cm5zIGEg cG9pbnRlciB0byB0aGUgaXBjIG9iamVjdCBvciBvdGhlcndpc2UsIHRoZSBjb3JyZXNwb25kaW5n IGVycm9yLgogICoKLSAqIENhbGwgaG9sZGluZyB0aGUgYm90aCB0aGUgcndfbXV0ZXggYW5kIHRo ZSByY3UgcmVhZCBsb2NrLgorICogQ2FsbCBob2xkaW5nIHRoZSBib3RoIHRoZSByd3NlbSBhbmQg dGhlIHJjdSByZWFkIGxvY2suCiAgKi8KLXN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNjdGxfcHJl X2Rvd24oc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLAotCQkJCSAgICAgIHN0cnVjdCBpcGNfaWRz ICppZHMsIGludCBpZCwgaW50IGNtZCwKLQkJCQkgICAgICBzdHJ1Y3QgaXBjNjRfcGVybSAqcGVy bSwgaW50IGV4dHJhX3Blcm0pCi17Ci0Jc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3A7Ci0KLQlp cGNwID0gaXBjY3RsX3ByZV9kb3duX25vbG9jayhucywgaWRzLCBpZCwgY21kLCBwZXJtLCBleHRy YV9wZXJtKTsKLQlpZiAoSVNfRVJSKGlwY3ApKQotCQlnb3RvIG91dDsKLQotCXNwaW5fbG9jaygm aXBjcC0+bG9jayk7Ci1vdXQ6Ci0JcmV0dXJuIGlwY3A7Ci19Ci0KIHN0cnVjdCBrZXJuX2lwY19w ZXJtICppcGNjdGxfcHJlX2Rvd25fbm9sb2NrKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywKIAkJ CQkJICAgICBzdHJ1Y3QgaXBjX2lkcyAqaWRzLCBpbnQgaWQsIGludCBjbWQsCiAJCQkJCSAgICAg c3RydWN0IGlwYzY0X3Blcm0gKnBlcm0sIGludCBleHRyYV9wZXJtKQpAQCAtNzgyLDggKzc3NCw3 IEBAIHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNjdGxfcHJlX2Rvd25fbm9sb2NrKHN0cnVjdCBp cGNfbmFtZXNwYWNlICpucywKIAogCWF1ZGl0X2lwY19vYmooaXBjcCk7CiAJaWYgKGNtZCA9PSBJ UENfU0VUKQotCQlhdWRpdF9pcGNfc2V0X3Blcm0oZXh0cmFfcGVybSwgcGVybS0+dWlkLAotCQkJ CSAgIHBlcm0tPmdpZCwgcGVybS0+bW9kZSk7CisJCWF1ZGl0X2lwY19zZXRfcGVybShleHRyYV9w ZXJtLCBwZXJtLT51aWQsIHBlcm0tPmdpZCwgcGVybS0+bW9kZSk7CiAKIAlldWlkID0gY3VycmVu dF9ldWlkKCk7CiAJaWYgKHVpZF9lcShldWlkLCBpcGNwLT5jdWlkKSB8fCB1aWRfZXEoZXVpZCwg aXBjcC0+dWlkKSAgfHwKQEAgLTg4NCw3ICs4NzUsNyBAQCBzdGF0aWMgdm9pZCAqc3lzdmlwY19w cm9jX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqcywgbG9mZl90ICpwb3MpCiAJICogVGFrZSB0aGUg bG9jayAtIHRoaXMgd2lsbCBiZSByZWxlYXNlZCBieSB0aGUgY29ycmVzcG9uZGluZwogCSAqIGNh bGwgdG8gc3RvcCgpLgogCSAqLwotCWRvd25fcmVhZCgmaWRzLT5yd19tdXRleCk7CisJZG93bl9y ZWFkKCZpZHMtPnJ3c2VtKTsKIAogCS8qIHBvcyA8IDAgaXMgaW52YWxpZCAqLwogCWlmICgqcG9z IDwgMCkKQEAgLTkxMSw3ICs5MDIsNyBAQCBzdGF0aWMgdm9pZCBzeXN2aXBjX3Byb2Nfc3RvcChz dHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKml0KQogCiAJaWRzID0gJml0ZXItPm5zLT5pZHNbaWZh Y2UtPmlkc107CiAJLyogUmVsZWFzZSB0aGUgbG9jayB3ZSB0b29rIGluIHN0YXJ0KCkgKi8KLQl1 cF9yZWFkKCZpZHMtPnJ3X211dGV4KTsKKwl1cF9yZWFkKCZpZHMtPnJ3c2VtKTsKIH0KIAogc3Rh dGljIGludCBzeXN2aXBjX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKml0KQpk aWZmIC0tZ2l0IGEvaXBjL3V0aWwuaCBiL2lwYy91dGlsLmgKaW5kZXggYjZhNmE4OC4uMGEzNjJm ZiAxMDA2NDQKLS0tIGEvaXBjL3V0aWwuaAorKysgYi9pcGMvdXRpbC5oCkBAIC05NCwxMCArOTQs MTAgQEAgdm9pZCBfX2luaXQgaXBjX2luaXRfcHJvY19pbnRlcmZhY2UoY29uc3QgY2hhciAqcGF0 aCwgY29uc3QgY2hhciAqaGVhZGVyLAogI2RlZmluZSBpcGNpZF90b19pZHgoaWQpICgoaWQpICUg U0VRX01VTFRJUExJRVIpCiAjZGVmaW5lIGlwY2lkX3RvX3NlcXgoaWQpICgoaWQpIC8gU0VRX01V TFRJUExJRVIpCiAKLS8qIG11c3QgYmUgY2FsbGVkIHdpdGggaWRzLT5yd19tdXRleCBhY3F1aXJl ZCBmb3Igd3JpdGluZyAqLworLyogbXVzdCBiZSBjYWxsZWQgd2l0aCBpZHMtPnJ3c2VtIGFjcXVp cmVkIGZvciB3cml0aW5nICovCiBpbnQgaXBjX2FkZGlkKHN0cnVjdCBpcGNfaWRzICosIHN0cnVj dCBrZXJuX2lwY19wZXJtICosIGludCk7CiAKLS8qIG11c3QgYmUgY2FsbGVkIHdpdGggaWRzLT5y d19tdXRleCBhY3F1aXJlZCBmb3IgcmVhZGluZyAqLworLyogbXVzdCBiZSBjYWxsZWQgd2l0aCBp ZHMtPnJ3c2VtIGFjcXVpcmVkIGZvciByZWFkaW5nICovCiBpbnQgaXBjX2dldF9tYXhpZChzdHJ1 Y3QgaXBjX2lkcyAqKTsKIAogLyogbXVzdCBiZSBjYWxsZWQgd2l0aCBib3RoIGxvY2tzIGFjcXVp cmVkLiAqLwpAQCAtMTMxLDkgKzEzMSw2IEBAIGludCBpcGNfdXBkYXRlX3Blcm0oc3RydWN0IGlw YzY0X3Blcm0gKmluLCBzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqb3V0KTsKIHN0cnVjdCBrZXJuX2lw Y19wZXJtICppcGNjdGxfcHJlX2Rvd25fbm9sb2NrKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywK IAkJCQkJICAgICBzdHJ1Y3QgaXBjX2lkcyAqaWRzLCBpbnQgaWQsIGludCBjbWQsCiAJCQkJCSAg ICAgc3RydWN0IGlwYzY0X3Blcm0gKnBlcm0sIGludCBleHRyYV9wZXJtKTsKLXN0cnVjdCBrZXJu X2lwY19wZXJtICppcGNjdGxfcHJlX2Rvd24oc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zLAotCQkJ CSAgICAgIHN0cnVjdCBpcGNfaWRzICppZHMsIGludCBpZCwgaW50IGNtZCwKLQkJCQkgICAgICBz dHJ1Y3QgaXBjNjRfcGVybSAqcGVybSwgaW50IGV4dHJhX3Blcm0pOwogCiAjaWZuZGVmIENPTkZJ R19BUkNIX1dBTlRfSVBDX1BBUlNFX1ZFUlNJT04KICAgLyogT24gSUEtNjQsIHdlIGFsd2F5cyB1 c2UgdGhlICI2NC1iaXQgdmVyc2lvbiIgb2YgdGhlIElQQyBzdHJ1Y3R1cmVzLiAgKi8gCmRpZmYg LS1naXQgYS9zY3JpcHRzL3BhY2thZ2UvYnVpbGRkZWIgYi9zY3JpcHRzL3BhY2thZ2UvYnVpbGRk ZWIKaW5kZXggYWNiODY1MC4uN2Q3YzlkOCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9wYWNrYWdlL2J1 aWxkZGViCisrKyBiL3NjcmlwdHMvcGFja2FnZS9idWlsZGRlYgpAQCAtMTcyLDkgKzE3MiwyMiBA QCBlbHNlCiBmaQogbWFpbnRhaW5lcj0iJG5hbWUgPCRlbWFpbD4iCiAKKyMgVHJ5IHRvIGRldGVy bWluZSBkaXN0cmlidXRpb24KK2lmIFsgLWUgJCh3aGljaCBsc2JfcmVsZWFzZSkgXTsgdGhlbgor ICAgICAgIGNvZGVuYW1lPSQobHNiX3JlbGVhc2UgLS1jb2RlbmFtZSAtLXNob3J0KQorICAgICAg IGlmIFsgIiRjb2RlbmFtZSIgIT0gIiIgXTsgdGhlbgorCQlkaXN0cmlidXRpb249JGNvZGVuYW1l CisgICAgICAgZWxzZQorCQlkaXN0cmlidXRpb249IlVOUkVMRUFTRUQiCisJCWVjaG8gIldBUk5J Tkc6IFRoZSBkaXN0cmlidXRpb24gY291bGQgTk9UIGJlIGRldGVybWluZWQhIgorICAgICAgIGZp CitlbHNlCisgICAgICAgZWNobyAiSElOVDogSW5zdGFsbCBsc2JfcmVsZWFzZSBiaW5hcnksIHRo aXMgaGVscHMgdG8gaWRlbnRpZnkgeW91ciBkaXN0cmlidXRpb24hIgorZmkKKwogIyBHZW5lcmF0 ZSBhIHNpbXBsZSBjaGFuZ2Vsb2cgdGVtcGxhdGUKIGNhdCA8PEVPRiA+IGRlYmlhbi9jaGFuZ2Vs b2cKLWxpbnV4LXVwc3RyZWFtICgkcGFja2FnZXZlcnNpb24pIHVuc3RhYmxlOyB1cmdlbmN5PWxv dworbGludXgtdXBzdHJlYW0gKCRwYWNrYWdldmVyc2lvbikgJGRpc3RyaWJ1dGlvbjsgdXJnZW5j eT1sb3cKIAogICAqIEN1c3RvbSBidWlsdCBMaW51eCBrZXJuZWwuCiAKQEAgLTE4OCwxMCArMjAx LDEwIEBAIFRoaXMgaXMgYSBwYWNrYWNrZWQgdXBzdHJlYW0gdmVyc2lvbiBvZiB0aGUgTGludXgg a2VybmVsLgogVGhlIHNvdXJjZXMgbWF5IGJlIGZvdW5kIGF0IG1vc3QgTGludXggZnRwIHNpdGVz LCBpbmNsdWRpbmc6CiBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgva2VybmVsCiAKLUNv cHlyaWdodDogMTk5MSAtIDIwMDkgTGludXMgVG9ydmFsZHMgYW5kIG90aGVycy4KK0NvcHlyaWdo dDogMTk5MSAtIDIwMTMgTGludXMgVG9ydmFsZHMgYW5kIG90aGVycy4KIAogVGhlIGdpdCByZXBv c2l0b3J5IGZvciBtYWlubGluZSBrZXJuZWwgZGV2ZWxvcG1lbnQgaXMgYXQ6Ci1naXQ6Ly9naXQu a2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXgtMi42Lmdp dAorZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRz L2xpbnV4LmdpdAogCiAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo= --089e013c683ce8a5e004e00a2440-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org