Date: Wed, 14 Feb 2018 21:18:07 +0000 From: Phabricator <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] D9270: Add support for user-supplied Host-Uniq tag and handle PADM messages in Netgraph PPPoE Message-ID: <70f877d53d8a1a6ad628fa7a36d709ca@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org> References: <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_70f877d53d8a1a6ad628fa7a36d709ca Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 VGhpcyByZXZpc2lvbiB3YXMgbm90IGFjY2VwdGVkIHdoZW4gaXQgbGFuZGVkOyBpdCBsYW5kZWQg aW4gc3RhdGUgIk5lZWRzIFJldmlldyIuClRoaXMgcmV2aXNpb24gd2FzIGF1dG9tYXRpY2FsbHkg dXBkYXRlZCB0byByZWZsZWN0IHRoZSBjb21taXR0ZWQgY2hhbmdlcy4KQ2xvc2VkIGJ5IGNvbW1p dCByUzMyOTI3OTogbmdfcHBwb2UoOCk6IGFkZCBzdXBwb3J0IGZvciB1c2VyLXN1cHBsaWVkIEhv c3QtVW5pcSB0YWcuIChhdXRob3JlZCBieSBldWdlbiwgY29tbWl0dGVkIGJ5ICkuCgpDSEFOR0VE IFBSSU9SIFRPIENPTU1JVAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EOTI3MD92cz0z MjQ4NyZpZD0zOTMyMCN0b2MKClJFUE9TSVRPUlkKICByUyBGcmVlQlNEIHNyYyByZXBvc2l0b3J5 CgpDSEFOR0VTIFNJTkNFIExBU1QgVVBEQVRFCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3Jn L0Q5MjcwP3ZzPTMyNDg3JmlkPTM5MzIwCgpSRVZJU0lPTiBERVRBSUwKICBodHRwczovL3Jldmll d3MuZnJlZWJzZC5vcmcvRDkyNzAKCkFGRkVDVEVEIEZJTEVTCiAgaGVhZC9zaGFyZS9tYW4vbWFu NC9uZ19wcHBvZS40CiAgaGVhZC9zeXMvbmV0Z3JhcGgvbmdfcHBwb2UuYwogIGhlYWQvc3lzL25l dGdyYXBoL25nX3BwcG9lLmgKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZpZXdzLmZy ZWVic2Qub3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogYWxlLCAjbWFu cGFnZXMsIHdibG9jaywgI25ldHdvcmssIGp1bGlhbiwgbWF2LCBhZHJpYW4sIGdsZWJpdXMsIGZy YW5jb19vcG5zZW5zZS5vcmcsIGV1Z2VuX2dyb3NiZWluLm5ldApDYzogZ2FyZ2EsIGV1Z2VuX2dy b3NiZWluLm5ldCwgZnJhbmNvX29wbnNlbnNlLm9yZywgbWxlb25lODdfaG90bWFpbC5jb20sIGds ZWJpdXMsIHdibG9jaywgbWF2LCBwb29scm9vbV9nbWFpbC5jb20sIGltcCwgZnJlZWJzZC1uZXQt bGlzdAo= --b1_70f877d53d8a1a6ad628fa7a36d709ca Content-Type: text/x-patch; charset=utf-8; name="D9270.39320.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D9270.39320.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL25ldGdyYXBoL25nX3BwcG9lLmggYi9oZWFkL3N5cy9uZXRn cmFwaC9uZ19wcHBvZS5oCi0tLSBhL2hlYWQvc3lzL25ldGdyYXBoL25nX3BwcG9lLmgKKysrIGIv aGVhZC9zeXMvbmV0Z3JhcGgvbmdfcHBwb2UuaApAQCAtNTIsOCArNTIsMTAgQEAKIAogI2RlZmlu ZSBOR01fUFBQT0VfQ09PS0lFCQkxMDg5ODkzMDcyCiAjZGVmaW5lIE5HTV9QUFBPRV9TRVRNQVhQ X0NPT0tJRQkxNDQxNjI0MzIyCisjZGVmaW5lIE5HTV9QUFBPRV9QQURNX0NPT0tJRQkJMTQ4ODQw NTgyMgogCiAjZGVmaW5lCVBQUE9FX1NFUlZJQ0VfTkFNRV9TSVpFCQk2NCAvKiBmb3Igbm93ICov CisjZGVmaW5lCVBQUE9FX1BBRE1fVkFMVUVfU0laRQkJMTI4IC8qIGZvciBub3cgKi8KIAogLyog SG9vayBuYW1lcyAqLwogI2RlZmluZSBOR19QUFBPRV9IT09LX0VUSEVSTkVUCSJldGhlcm5ldCIK QEAgLTg0LDcgKzg2LDExIEBACiAJTkdNX1BQUE9FX1NFVE1PREUgID0gMTIsIC8qIHNldCB0byBz dGFuZGFyZCBvciBjb21wYXQgbW9kZXMgKi8KIAlOR01fUFBQT0VfR0VUTU9ERSAgPSAxMywgLyog c2VlIGN1cnJlbnQgbW9kZSAqLwogCU5HTV9QUFBPRV9TRVRFTkFERFIgPSAxNCwgLyogc2V0IEV0 aGVybmV0IGFkZHJlc3MgKi8KLQlOR01fUFBQT0VfU0VUTUFYUCAgPSAxNSAvKiBTZXQgUFBQLU1h eC1QYXlsb2FkIHZhbHVlICovCisJTkdNX1BQUE9FX1NFVE1BWFAgICA9IDE1LCAvKiBTZXQgUFBQ LU1heC1QYXlsb2FkIHZhbHVlICovCisJTkdNX1BQUE9FX1NFTkRfSFVSTCA9IDE2LCAvKiBTZW5k IFBBRE0gSFVSTCBtZXNzYWdlICovCisJTkdNX1BQUE9FX0hVUkwgICAgICA9IDE3LCAvKiBIVVJM IGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzICovCisJTkdNX1BQUE9FX1NFTkRfTU9UTSA9IDE4 LCAvKiBTZW5kIFBBRE0gTU9UTSBtZXNzYWdlICovCisJTkdNX1BQUE9FX01PVE0gICAgICA9IDE5 ICAvKiBNT1RNIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzICovCiB9OwogCiAvKioqKioqKioq KioqKioqKioqKioqKioKQEAgLTE1Nyw2ICsxNjMsMTMgQEAKIAl1aW50MTZfdAlkYXRhOwogfTsK IAorLyoKKyAqIFRoaXMgc3RydWN0dXJlIGlzIHVzZWQgdG8gc2VuZCBQQURNIG1lc3NhZ2VzIGZy b20gc2VydmVyIHRvIGNsaWVudC4KKyAqLworc3RydWN0IG5ncHBwb2VfcGFkbSB7CisJY2hhcglt c2dbUFBQT0VfUEFETV9WQUxVRV9TSVpFXTsKK307CisKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29uc3Rh bnRzIGFuZCBkZWZpbml0aW9ucyBzcGVjaWZpYyB0byBwcHBvZQogICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAt MTcxLDYgKzE4NCw3IEBACiAjZGVmaW5lIFBBRFJfQ09ERQkweDE5CiAjZGVmaW5lIFBBRFNfQ09E RQkweDY1CiAjZGVmaW5lIFBBRFRfQ09ERQkweGE3CisjZGVmaW5lIFBBRE1fQ09ERQkweGQzCiAK IC8qIFRhZyBpZGVudGlmaWVycyAqLwogI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElBTgpAQCAt MTgxLDYgKzE5NSw4IEBACiAjZGVmaW5lIFBUVF9BQ19DT09LSUUJKDB4MDEwNCkKICNkZWZpbmUg UFRUX1ZFTkRPUiAJKDB4MDEwNSkKICNkZWZpbmUgUFRUX1JFTEFZX1NJRAkoMHgwMTEwKQorI2Rl ZmluZSBQVFRfSFVSTAkoMHgwMTExKQkvKiBQUFBvRSBFeHRlbnNpb25zIChDQVJSRUwpICovCisj ZGVmaW5lIFBUVF9NT1RNCSgweDAxMTIpCS8qIFBQUG9FIEV4dGVuc2lvbnMgKENBUlJFTCkgKi8K ICNkZWZpbmUJUFRUX01BWF9QQVlMCSgweDAxMjApCS8qIFBQUC1NYXgtUGF5bG9hZCAoUkZDNDYz OCkgKi8KICNkZWZpbmUgUFRUX1NSVl9FUlIgICAgICgweDAyMDEpCiAjZGVmaW5lIFBUVF9TWVNf RVJSICAJKDB4MDIwMikKQEAgLTE5OCw2ICsyMTQsOCBAQAogI2RlZmluZSBQVFRfQUNfQ09PS0lF CSgweDA0MDEpCiAjZGVmaW5lIFBUVF9WRU5ET1IgCSgweDA1MDEpCiAjZGVmaW5lIFBUVF9SRUxB WV9TSUQJKDB4MTAwMSkKKyNkZWZpbmUgUFRUX0hVUkwJKDB4MTEwMSkJLyogUFBQb0UgRXh0ZW5z aW9ucyAoQ0FSUkVMKSAqLworI2RlZmluZSBQVFRfTU9UTQkoMHgxMjAxKQkvKiBQUFBvRSBFeHRl bnNpb25zIChDQVJSRUwpICovCiAjZGVmaW5lCVBUVF9NQVhfUEFZTAkoMHgyMDAxKQkvKiBQUFAt TWF4LVBheWxvYWQgKFJGQzQ2MzgpICovCiAjZGVmaW5lIFBUVF9TUlZfRVJSICAgICAoMHgwMTAy KQogI2RlZmluZSBQVFRfU1lTX0VSUiAgCSgweDAyMDIpCmRpZmYgLS1naXQgYS9oZWFkL3N5cy9u ZXRncmFwaC9uZ19wcHBvZS5jIGIvaGVhZC9zeXMvbmV0Z3JhcGgvbmdfcHBwb2UuYwotLS0gYS9o ZWFkL3N5cy9uZXRncmFwaC9uZ19wcHBvZS5jCisrKyBiL2hlYWQvc3lzL25ldGdyYXBoL25nX3Bw cG9lLmMKQEAgLTE3NSw2ICsxNzUsMjAgQEAKIAkgICZuZ19wYXJzZV91aW50MTZfdHlwZSwKIAkg IE5VTEwKIAl9LAorICAgICAgICB7CisJICBOR01fUFBQT0VfQ09PS0lFLAorCSAgTkdNX1BQUE9F X1NFTkRfSFVSTCwKKwkgICJzZW5kX2h1cmwiLAorCSAgJm5ncHBwb2VfaW5pdF9kYXRhX3N0YXRl X3R5cGUsCisJICBOVUxMCisgICAgICAgIH0sCisgICAgICAgIHsKKwkgIE5HTV9QUFBPRV9DT09L SUUsCisJICBOR01fUFBQT0VfU0VORF9NT1RNLAorCSAgInNlbmRfbW90bSIsCisJICAmbmdwcHBv ZV9pbml0X2RhdGFfc3RhdGVfdHlwZSwKKwkgIE5VTEwKKyAgICAgICAgfSwKIAl7IDAgfQogfTsK IApAQCAtMjI2LDkgKzI0MCwxMSBAQAogCWNvbnN0IHN0cnVjdCBwcHBvZV90YWcJKnRhZ3NbTlVN VEFHU107CiAJdV9pbnQJCQlzZXJ2aWNlX2xlbjsKIAl1X2ludAkJCWFjX25hbWVfbGVuOworCXVf aW50CQkJaG9zdF91bmlxX2xlbjsKIAogCXN0cnVjdCBkYXRhdGFnCQlzZXJ2aWNlOwogCXN0cnVj dCBkYXRhdGFnCQlhY19uYW1lOworCXN0cnVjdCBkYXRhdGFnCQlob3N0X3VuaXE7CiB9OwogdHlw ZWRlZiBzdHJ1Y3Qgc2Vzc19uZWcgKm5lZ3A7CiAKQEAgLTU4OSwyMiArNjA1LDQ3IEBACiBwcHBv ZV9maW5kdW5pcShub2RlX3Agbm9kZSwgY29uc3Qgc3RydWN0IHBwcG9lX3RhZyAqdGFnKQogewog CWhvb2tfcAlob29rID0gTlVMTDsKLQl1bmlvbiB1bmlxIHVuaXE7CisJc2Vzc3AJc3A7CiAKLQli Y29weSh0YWcgKyAxLCB1bmlxLmJ5dGVzLCBzaXplb2Yodm9pZCAqKSk7CiAJLyogQ3ljbGUgdGhy b3VnaCBhbGwga25vd24gaG9va3MuICovCiAJTElTVF9GT1JFQUNIKGhvb2ssICZub2RlLT5uZF9o b29rcywgaGtfaG9va3MpIHsKIAkJLyogU2tpcCBhbnkgbm9uc2Vzc2lvbiBob29rLiAqLwogCQlp ZiAoTkdfSE9PS19QUklWQVRFKGhvb2spID09IE5VTEwpCiAJCQljb250aW51ZTsKLQkJaWYgKHVu aXEucG9pbnRlciA9PSBOR19IT09LX1BSSVZBVEUoaG9vaykpCisJCXNwID0gTkdfSE9PS19QUklW QVRFKGhvb2spOworCQkvKiBTa2lwIGFscmVhZHkgY29ubmVjdGVkIHNlc3Npb25zLiAqLworCQlp ZiAoc3AtPm5lZyA9PSBOVUxMKQorCQkJY29udGludWU7CisJCWlmIChzcC0+bmVnLT5ob3N0X3Vu aXFfbGVuID09IG50b2hzKHRhZy0+dGFnX2xlbikgJiYKKwkJICAgIGJjbXAoc3AtPm5lZy0+aG9z dF91bmlxLmRhdGEsIChjb25zdCBjaGFyICopKHRhZyArIDEpLAorCQkgICAgIHNwLT5uZWctPmhv c3RfdW5pcV9sZW4pID09IDApCiAJCQlicmVhazsKIAl9Ci0JQ1RSMyhLVFJfTkVULCAiJTIwczog bWF0Y2hlZCAlcCBmb3IgJXAiLCBfX2Z1bmNfXywgaG9vaywgdW5pcS5wb2ludGVyKTsKKwlDVFIz KEtUUl9ORVQsICIlMjBzOiBtYXRjaGVkICVwIGZvciAlcCIsIF9fZnVuY19fLCBob29rLCBzcCk7 CiAKIAlyZXR1cm4gKGhvb2spOwogfQogCitzdGF0aWMgaG9va19wCitwcHBvZV9maW5kY29va2ll KG5vZGVfcCBub2RlLCBjb25zdCBzdHJ1Y3QgcHBwb2VfdGFnICp0YWcpCit7CisJaG9va19wCWhv b2sgPSBOVUxMOworCXVuaW9uIHVuaXEgY29va2llOworCisJYmNvcHkodGFnICsgMSwgY29va2ll LmJ5dGVzLCBzaXplb2Yodm9pZCAqKSk7CisJLyogQ3ljbGUgdGhyb3VnaCBhbGwga25vd24gaG9v a3MuICovCisJTElTVF9GT1JFQUNIKGhvb2ssICZub2RlLT5uZF9ob29rcywgaGtfaG9va3MpIHsK KwkJLyogU2tpcCBhbnkgbm9uc2Vzc2lvbiBob29rLiAqLworCQlpZiAoTkdfSE9PS19QUklWQVRF KGhvb2spID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJaWYgKGNvb2tpZS5wb2ludGVyID09IE5H X0hPT0tfUFJJVkFURShob29rKSkKKwkJCWJyZWFrOworCX0KKwlDVFIzKEtUUl9ORVQsICIlMjBz OiBtYXRjaGVkICVwIGZvciAlcCIsIF9fZnVuY19fLCBob29rLCBjb29raWUucG9pbnRlcik7CisK KwlyZXR1cm4gKGhvb2spOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFN0YXJ0IG9mIE5l dGdyYXBoIGVudHJ5cG9pbnRzLgkJCQkJICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC03NDQs MTcgKzc4NSwyOSBAQAogCQljYXNlIE5HTV9QUFBPRV9MSVNURU46CiAJCWNhc2UgTkdNX1BQUE9F X09GRkVSOgogCQljYXNlIE5HTV9QUFBPRV9TRVJWSUNFOgorCQljYXNlIE5HTV9QUFBPRV9TRU5E X0hVUkw6CisJCWNhc2UgTkdNX1BQUE9FX1NFTkRfTU9UTToKIAkJCW91cm1zZyA9IChzdHJ1Y3Qg bmdwcHBvZV9pbml0X2RhdGEgKiltc2ctPmRhdGE7CiAJCQlpZiAobXNnLT5oZWFkZXIuYXJnbGVu IDwgc2l6ZW9mKCpvdXJtc2cpKSB7CiAJCQkJbG9nKExPR19FUlIsICJuZ19wcHBvZVsleF06IGlu aXQgZGF0YSB0b28gIgogCQkJCSAgICAic21hbGxcbiIsIG5vZGUtPm5kX0lEKTsKIAkJCQlMRUFW RShFTVNHU0laRSk7CiAJCQl9Ci0JCQlpZiAobXNnLT5oZWFkZXIuYXJnbGVuIC0gc2l6ZW9mKCpv dXJtc2cpID4KLQkJCSAgICBQUFBPRV9TRVJWSUNFX05BTUVfU0laRSkgewotCQkJCWxvZyhMT0df RVJSLCAibmdfcHBwb2VbJXhdOiBzZXJ2aWNlIG5hbWUgIgotCQkJCSAgICAidG9vIGJpZ1xuIiwg bm9kZS0+bmRfSUQpOwotCQkJCUxFQVZFKEVNU0dTSVpFKTsKKwkJCWlmIChtc2ctPmhlYWRlci5j bWQgPT0gTkdNX1BQUE9FX1NFTkRfSFVSTCB8fAorCQkJICAgIG1zZy0+aGVhZGVyLmNtZCA9PSBO R01fUFBQT0VfU0VORF9NT1RNKSB7CisJCQkJaWYgKG1zZy0+aGVhZGVyLmFyZ2xlbiAtIHNpemVv Zigqb3VybXNnKSA+CisJCQkJICAgIFBQUE9FX1BBRE1fVkFMVUVfU0laRSkgeworCQkJCQlsb2co TE9HX0VSUiwgIm5nX3BwcG9lWyV4XTogbWVzc2FnZSAiCisJCQkJCSAgICAidG9vIGJpZ1xuIiwg bm9kZS0+bmRfSUQpOworCQkJCQlMRUFWRShFTVNHU0laRSk7CisJCQkJfQorCQkJfSBlbHNlIHsK KwkJCQlpZiAobXNnLT5oZWFkZXIuYXJnbGVuIC0gc2l6ZW9mKCpvdXJtc2cpID4KKwkJCQkgICAg UFBQT0VfU0VSVklDRV9OQU1FX1NJWkUpIHsKKwkJCQkJbG9nKExPR19FUlIsICJuZ19wcHBvZVsl eF06IHNlcnZpY2UgbmFtZSAiCisJCQkJCSAgICAidG9vIGJpZ1xuIiwgbm9kZS0+bmRfSUQpOwor CQkJCQlMRUFWRShFTVNHU0laRSk7CisJCQkJfQogCQkJfQogCQkJaWYgKG1zZy0+aGVhZGVyLmFy Z2xlbiAtIHNpemVvZigqb3VybXNnKSA8CiAJCQkgICAgb3VybXNnLT5kYXRhX2xlbikgewpAQCAt Nzk0LDYgKzg0NywyMCBAQAogCQkJaWYgKG1zZy0+aGVhZGVyLmNtZCA9PSBOR01fUFBQT0VfU0VS VklDRSkKIAkJCQlicmVhazsKIAorCQkJLyoKKwkJCSAqIFBBRE0gbWVzc2FnZXMgYXJlIHNldCB1 cCBvbiBhY3RpdmUgc2Vzc2lvbnMuCisJCQkgKi8KKwkJCWlmIChtc2ctPmhlYWRlci5jbWQgPT0g TkdNX1BQUE9FX1NFTkRfSFVSTCB8fAorCQkJICAgIG1zZy0+aGVhZGVyLmNtZCA9PSBOR01fUFBQ T0VfU0VORF9NT1RNKSB7CisJCQkJaWYgKHNwLT5zdGF0ZSAhPSBQUFBPRV9ORVdDT05ORUNURUQg JiYKKwkJCQkgICAgc3AtPnN0YXRlICE9IFBQUE9FX0NPTk5FQ1RFRCkgeworCQkJCQlsb2coTE9H X05PVElDRSwgIm5nX3BwcG9lWyV4XTogc2Vzc2lvbiBpcyBub3QgIgorCQkJCQkgICAgImFjdGl2 ZVxuIiwgbm9kZS0+bmRfSUQpOworCQkJCQlMRUFWRShFSVNDT05OKTsKKwkJCQl9CisJCQkJYnJl YWs7CisJCQl9CisKIAkJCWlmIChzcC0+c3RhdGUgIT0gUFBQT0VfU05PTkUpIHsKIAkJCQlsb2co TE9HX05PVElDRSwgIm5nX3BwcG9lWyV4XTogU2Vzc2lvbiBhbHJlYWR5ICIKIAkJCQkgICAgImFj dGl2ZVxuIiwgbm9kZS0+bmRfSUQpOwpAQCAtODQ4LDI4ICs5MTUsNzIgQEAKIAkJCSAqIENoZWNr IHRoZSBob29rIGV4aXN0cyBhbmQgaXMgVW5pbml0aWFsaXNlZC4KIAkJCSAqIFNlbmQgYSBQQURJ IHJlcXVlc3QsIGFuZCBzdGFydCB0aGUgdGltZW91dCBsb2dpYy4KIAkJCSAqIFN0b3JlIHRoZSBv cmlnaW5hdG9yIG9mIHRoaXMgbWVzc2FnZSBzbyB3ZSBjYW4gc2VuZAotCQkJICogYSBzdWNjZXNz IG9mIGZhaWwgbWVzc2FnZSB0byB0aGVtIGxhdGVyLgorCQkJICogYSBzdWNjZXNzIG9yIGZhaWwg bWVzc2FnZSB0byB0aGVtIGxhdGVyLgogCQkJICogTW92ZSB0aGUgc2Vzc2lvbiB0byBTSU5JVC4K IAkJCSAqIFNldCB1cCB0aGUgc2Vzc2lvbiB0byB0aGUgY29ycmVjdCBzdGF0ZSBhbmQKIAkJCSAq IHN0YXJ0IGl0LgogCQkJICovCi0JCQlpbnQJaSwgYWNubGVuID0gMCwgYWNuc2VwID0gMCwgc3J2 bGVuOworCQkJaW50CWFjbnBvcywgYWNubGVuID0gMCwgYWNuc2VwID0gMDsKKwkJCWludAlodXBv cywgaHVsZW4gPSAwLCBodXNlcCA9IDA7CisJCQlpbnQJaSwgc3J2cG9zLCBzcnZsZW47CisJCQlh Y25wb3MgPSAwOwogCQkJZm9yIChpID0gMDsgaSA8IG91cm1zZy0+ZGF0YV9sZW47IGkrKykgewog CQkJCWlmIChvdXJtc2ctPmRhdGFbaV0gPT0gJ1xcJykgewogCQkJCQlhY25sZW4gPSBpOwogCQkJ CQlhY25zZXAgPSAxOwogCQkJCQlicmVhazsKIAkJCQl9CiAJCQl9Ci0JCQlzcnZsZW4gPSBvdXJt c2ctPmRhdGFfbGVuIC0gYWNubGVuIC0gYWNuc2VwOworCQkJaHVwb3MgPSBhY25sZW4gKyBhY25z ZXA7CisJCQlmb3IgKGkgPSBodXBvczsgaSA8IG91cm1zZy0+ZGF0YV9sZW47IGkrKykgeworCQkJ CWlmIChvdXJtc2ctPmRhdGFbaV0gPT0gJ3wnKSB7CisJCQkJCWh1bGVuID0gaSAtIGh1cG9zOwor CQkJCQlodXNlcCA9IDE7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCXNydnBvcyA9IGh1 cG9zICsgaHVsZW4gKyBodXNlcDsKKwkJCXNydmxlbiA9IG91cm1zZy0+ZGF0YV9sZW4gLSBzcnZw b3M7CiAKLQkJCWJjb3B5KG91cm1zZy0+ZGF0YSwgbmVnLT5hY19uYW1lLmRhdGEsIGFjbmxlbik7 CisJCQliY29weShvdXJtc2ctPmRhdGEgKyBhY25wb3MsIG5lZy0+YWNfbmFtZS5kYXRhLCBhY25s ZW4pOwogCQkJbmVnLT5hY19uYW1lX2xlbiA9IGFjbmxlbjsKIAorCQkJbmVnLT5ob3N0X3VuaXEu aGRyLnRhZ190eXBlID0gUFRUX0hPU1RfVU5JUTsKKwkJCWlmIChodWxlbiA9PSAwKSB7CisJCQkJ LyogTm90IHByb3ZpZGVkLCBnZW5lcmF0ZSBvbmUgKi8KKwkJCQluZWctPmhvc3RfdW5pcS5oZHIu dGFnX2xlbiA9IGh0b25zKHNpemVvZihzcCkpOworCQkJCWJjb3B5KCZzcCwgbmVnLT5ob3N0X3Vu aXEuZGF0YSwgc2l6ZW9mKHNwKSk7CisJCQkJbmVnLT5ob3N0X3VuaXFfbGVuID0gc2l6ZW9mKHNw KTsKKwkJCX0gZWxzZSBpZiAoaHVsZW4gPiAyICYmIG91cm1zZy0+ZGF0YVtodXBvc10gPT0gJzAn ICYmCisJCQkgIG91cm1zZy0+ZGF0YVtodXBvcyArIDFdID09ICd4JyAmJiBodWxlbiAlIDIgPT0g MCkgeworCQkJCS8qIEhleCBlbmNvZGVkICovCisJCQkJc3RhdGljIGNvbnN0IGNoYXIgaGV4ZGln WzE2XSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKwkJCQlpbnQgajsKKworCQkJCW5lZy0+aG9zdF91 bmlxLmhkci50YWdfbGVuID0gaHRvbnMoKHVpbnQxNl90KShodWxlbiAvIDIgLSAxKSk7CisJCQkJ Zm9yIChpID0gMDsgaSA8IGh1bGVuIC0gMjsgaSsrKSB7CisJCQkJCWZvciAoaiA9IDA7CisJCQkJ CSAgICAgaiA8IDE2ICYmCisJCQkJCSAgICAgb3VybXNnLT5kYXRhW2h1cG9zICsgMiArIGldICE9 IGhleGRpZ1tqXTsKKwkJCQkJICAgICBqKyspOworCQkJCQlpZiAoaiA9PSAxNikKKwkJCQkJCUxF QVZFKEVJTlZBTCk7CisJCQkJCWlmIChpICUgMiA9PSAwKQorCQkJCQkJbmVnLT5ob3N0X3VuaXEu ZGF0YVtpIC8gMl0gPSBqIDw8IDQ7CisJCQkJCWVsc2UKKwkJCQkJCW5lZy0+aG9zdF91bmlxLmRh dGFbaSAvIDJdIHw9IGo7CisJCQkJfQorCQkJCW5lZy0+aG9zdF91bmlxX2xlbiA9IGh1bGVuIC8g MiAtIDE7CisJCQl9IGVsc2UgeworCQkJCS8qIFBsYWluIHN0cmluZyAqLworCQkJCW5lZy0+aG9z dF91bmlxLmhkci50YWdfbGVuID0gaHRvbnMoKHVpbnQxNl90KWh1bGVuKTsKKwkJCQliY29weShv dXJtc2ctPmRhdGEgKyBodXBvcywgbmVnLT5ob3N0X3VuaXEuZGF0YSwgaHVsZW4pOworCQkJCW5l Zy0+aG9zdF91bmlxX2xlbiA9IGh1bGVuOworCQkJfQorCiAJCQluZWctPnNlcnZpY2UuaGRyLnRh Z190eXBlID0gUFRUX1NSVl9OQU1FOwogCQkJbmVnLT5zZXJ2aWNlLmhkci50YWdfbGVuID0gaHRv bnMoKHVpbnQxNl90KXNydmxlbik7Ci0JCQliY29weShvdXJtc2ctPmRhdGEgKyBhY25sZW4gKyBh Y25zZXAsCi0JCQkgICAgbmVnLT5zZXJ2aWNlLmRhdGEsIHNydmxlbik7CisJCQliY29weShvdXJt c2ctPmRhdGEgKyBzcnZwb3MsIG5lZy0+c2VydmljZS5kYXRhLCBzcnZsZW4pOwogCQkJbmVnLT5z ZXJ2aWNlX2xlbiA9IHNydmxlbjsKIAkJCXBwcG9lX3N0YXJ0KHNwKTsKIAkJCWJyZWFrOwpAQCAt ODc5LDcgKzk5MCw3IEBACiAJCQkgKiBDaGVjayB0aGUgaG9vayBleGlzdHMgYW5kIGlzIFVuaW5p dGlhbGlzZWQuCiAJCQkgKiBJbnN0YWxsIHRoZSBzZXJ2aWNlIG1hdGNoaW5nIHN0cmluZy4KIAkJ CSAqIFN0b3JlIHRoZSBvcmlnaW5hdG9yIG9mIHRoaXMgbWVzc2FnZSBzbyB3ZSBjYW4gc2VuZAot CQkJICogYSBzdWNjZXNzIG9mIGZhaWwgbWVzc2FnZSB0byB0aGVtIGxhdGVyLgorCQkJICogYSBz dWNjZXNzIG9yIGZhaWwgbWVzc2FnZSB0byB0aGVtIGxhdGVyLgogCQkJICogTW92ZSB0aGUgaG9v ayB0byAnTElTVEVOSU5HJwogCQkJICovCiAJCQluZWctPnNlcnZpY2UuaGRyLnRhZ190eXBlID0g UFRUX1NSVl9OQU1FOwpAQCAtMTAxOSw2ICsxMTMwLDkyIEBACiAJCQlwcml2cC0+bWF4X3BheWxv YWQuaGRyLnRhZ19sZW4gPSBodG9ucyhzaXplb2YodWludDE2X3QpKTsKIAkJCXByaXZwLT5tYXhf cGF5bG9hZC5kYXRhID0gaHRvbnMoKigodWludDE2X3QgKiltc2ctPmRhdGEpKTsKIAkJCWJyZWFr OworCQljYXNlIE5HTV9QUFBPRV9TRU5EX0hVUkw6CisJCSAgICB7CisJCQlzdHJ1Y3QgbWJ1ZiAq bTsKKworCQkJLyogR2VuZXJhdGUgYSBwYWNrZXQgb2YgdGhhdCB0eXBlLiAqLworCQkJbSA9IG1f Z2V0aGRyKE1fTk9XQUlULCBNVF9EQVRBKTsKKwkJCWlmIChtID09IE5VTEwpCisJCQkJbG9nKExP R19OT1RJQ0UsICJuZ19wcHBvZVsleF06IHNlc3Npb24gb3V0IG9mICIKKwkJCQkgICAgIm1idWZz XG4iLCBub2RlLT5uZF9JRCk7CisJCQllbHNlIHsKKwkJCQlzdHJ1Y3QgcHBwb2VfZnVsbF9oZHIg KndoOworCQkJCXN0cnVjdCBwcHBvZV90YWcgKnRhZzsKKwkJCQlpbnQgICAgIGVycm9yID0gMDsK KworCQkJCXdoID0gbXRvZChtLCBzdHJ1Y3QgcHBwb2VfZnVsbF9oZHIgKik7CisJCQkJYmNvcHko JnNwLT5wa3RfaGRyLCB3aCwgc2l6ZW9mKCp3aCkpOworCisJCQkJLyogUmV2ZXJ0IHRoZSBzdG9y ZWQgaGVhZGVyIHRvIERJU0MvUEFETSBtb2RlLiAqLworCQkJCXdoLT5waC5jb2RlID0gUEFETV9D T0RFOworCQkJCS8qCisJCQkJICogQ29uZmlndXJlIGV0aGVydHlwZSBkZXBlbmRpbmcgb24gd2hh dAorCQkJCSAqIHdhcyB1c2VkIGR1cmluZyBzZXNzaW9ucyBzdGFnZS4KKwkJCQkgKi8KKwkJCQlp ZiAod2gtPmVoLmV0aGVyX3R5cGUgPT0KKwkJCQkgICAgRVRIRVJUWVBFX1BQUE9FXzNDT01fU0VT UykKKwkJCQkJd2gtPmVoLmV0aGVyX3R5cGUgPSBFVEhFUlRZUEVfUFBQT0VfM0NPTV9ESVNDOwor CQkJCWVsc2UKKwkJCQkJd2gtPmVoLmV0aGVyX3R5cGUgPSBFVEhFUlRZUEVfUFBQT0VfRElTQzsK KwkJCQkvKgorCQkJCSAqIEFkZCBQQURNIG1lc3NhZ2UgYW5kIGFkanVzdCBzaXplcy4KKwkJCQkg Ki8KKwkJCQl0YWcgPSAodm9pZCAqKSgmd2gtPnBoICsgMSk7CisJCQkJdGFnLT50YWdfdHlwZSA9 IFBUVF9IVVJMOworCQkJCXRhZy0+dGFnX2xlbiA9IGh0b25zKG91cm1zZy0+ZGF0YV9sZW4pOwor CQkJCXN0cm5jcHkoKGNoYXIgKikodGFnICsgMSksIG91cm1zZy0+ZGF0YSwgb3VybXNnLT5kYXRh X2xlbik7CisJCQkJbS0+bV9wa3RoZHIubGVuID0gbS0+bV9sZW4gPSBzaXplb2YoKndoKSArIHNp emVvZigqdGFnKSArCisJCQkJICAgIG91cm1zZy0+ZGF0YV9sZW47CisJCQkJd2gtPnBoLmxlbmd0 aCA9IGh0b25zKHNpemVvZigqdGFnKSArIG91cm1zZy0+ZGF0YV9sZW4pOworCQkJCU5HX1NFTkRf REFUQV9PTkxZKGVycm9yLAorCQkJCSAgICBwcml2cC0+ZXRoZXJuZXRfaG9vaywgbSk7CisJCQl9 CisJCQlicmVhazsKKwkJICAgIH0KKwkJY2FzZSBOR01fUFBQT0VfU0VORF9NT1RNOgorCQkgICAg eworCQkJc3RydWN0IG1idWYgKm07CisKKwkJCS8qIEdlbmVyYXRlIGEgcGFja2V0IG9mIHRoYXQg dHlwZS4gKi8KKwkJCW0gPSBtX2dldGhkcihNX05PV0FJVCwgTVRfREFUQSk7CisJCQlpZiAobSA9 PSBOVUxMKQorCQkJCWxvZyhMT0dfTk9USUNFLCAibmdfcHBwb2VbJXhdOiBzZXNzaW9uIG91dCBv ZiAiCisJCQkJICAgICJtYnVmc1xuIiwgbm9kZS0+bmRfSUQpOworCQkJZWxzZSB7CisJCQkJc3Ry dWN0IHBwcG9lX2Z1bGxfaGRyICp3aDsKKwkJCQlzdHJ1Y3QgcHBwb2VfdGFnICp0YWc7CisJCQkJ aW50ICAgICBlcnJvciA9IDA7CisKKwkJCQl3aCA9IG10b2QobSwgc3RydWN0IHBwcG9lX2Z1bGxf aGRyICopOworCQkJCWJjb3B5KCZzcC0+cGt0X2hkciwgd2gsIHNpemVvZigqd2gpKTsKKworCQkJ CS8qIFJldmVydCB0aGUgc3RvcmVkIGhlYWRlciB0byBESVNDL1BBRE0gbW9kZS4gKi8KKwkJCQl3 aC0+cGguY29kZSA9IFBBRE1fQ09ERTsKKwkJCQkvKgorCQkJCSAqIENvbmZpZ3VyZSBldGhlcnR5 cGUgZGVwZW5kaW5nIG9uIHdoYXQKKwkJCQkgKiB3YXMgdXNlZCBkdXJpbmcgc2Vzc2lvbnMgc3Rh Z2UuCisJCQkJICovCisJCQkJaWYgKHdoLT5laC5ldGhlcl90eXBlID09CisJCQkJICAgIEVUSEVS VFlQRV9QUFBPRV8zQ09NX1NFU1MpCisJCQkJCXdoLT5laC5ldGhlcl90eXBlID0gRVRIRVJUWVBF X1BQUE9FXzNDT01fRElTQzsKKwkJCQllbHNlCisJCQkJCXdoLT5laC5ldGhlcl90eXBlID0gRVRI RVJUWVBFX1BQUE9FX0RJU0M7CisJCQkJLyoKKwkJCQkgKiBBZGQgUEFETSBtZXNzYWdlIGFuZCBh ZGp1c3Qgc2l6ZXMuCisJCQkJICovCisJCQkJdGFnID0gKHZvaWQgKikoJndoLT5waCArIDEpOwor CQkJCXRhZy0+dGFnX3R5cGUgPSBQVFRfTU9UTTsKKwkJCQl0YWctPnRhZ19sZW4gPSBodG9ucyhv dXJtc2ctPmRhdGFfbGVuKTsKKwkJCQlzdHJuY3B5KChjaGFyICopKHRhZyArIDEpLCBvdXJtc2ct PmRhdGEsIG91cm1zZy0+ZGF0YV9sZW4pOworCQkJCW0tPm1fcGt0aGRyLmxlbiA9IG0tPm1fbGVu ID0gc2l6ZW9mKCp3aCkgKyBzaXplb2YoKnRhZykgKworCQkJCSAgICBvdXJtc2ctPmRhdGFfbGVu OworCQkJCXdoLT5waC5sZW5ndGggPSBodG9ucyhzaXplb2YoKnRhZykgKyBvdXJtc2ctPmRhdGFf bGVuKTsKKwkJCQlOR19TRU5EX0RBVEFfT05MWShlcnJvciwKKwkJCQkgICAgcHJpdnAtPmV0aGVy bmV0X2hvb2ssIG0pOworCQkJfQorCQkJYnJlYWs7CisJCSAgICB9CiAJCWRlZmF1bHQ6CiAJCQlM RUFWRShFSU5WQUwpOwogCQl9CkBAIC0xMDYxLDEwICsxMjU4LDYgQEAKIAlub2RlX3AJbm9kZSA9 IE5HX0hPT0tfTk9ERShob29rKTsKIAlwcml2X3AJcHJpdnAgPSBOR19OT0RFX1BSSVZBVEUobm9k ZSk7CiAJbmVncAluZWcgPSBzcC0+bmVnOwotCXN0cnVjdCB7Ci0JCXN0cnVjdCBwcHBvZV90YWcg aGRyOwotCQl1bmlvbgl1bmlxCWRhdGE7Ci0JfSBfX3BhY2tlZCB1bmlxdGFnOwogCXN0cnVjdCAg bWJ1ZiAqbTA7CiAJaW50CWVycm9yOwogCkBAIC0xMDgwLDExICsxMjczLDggQEAKIAltZW1jcHko KHZvaWQgKikmbmVnLT5wa3QtPnBrdF9oZWFkZXIuZWgsICZwcml2cC0+ZWgsCiAJICAgIHNpemVv ZihzdHJ1Y3QgZXRoZXJfaGVhZGVyKSk7CiAJbmVnLT5wa3QtPnBrdF9oZWFkZXIucGguY29kZSA9 IFBBRElfQ09ERTsKLQl1bmlxdGFnLmhkci50YWdfdHlwZSA9IFBUVF9IT1NUX1VOSVE7Ci0JdW5p cXRhZy5oZHIudGFnX2xlbiA9IGh0b25zKCh1X2ludDE2X3Qpc2l6ZW9mKHVuaXF0YWcuZGF0YSkp OwotCXVuaXF0YWcuZGF0YS5wb2ludGVyID0gc3A7CiAJaW5pdF90YWdzKHNwKTsKLQlpbnNlcnRf dGFnKHNwLCAmdW5pcXRhZy5oZHIpOworCWluc2VydF90YWcoc3AsICZuZWctPmhvc3RfdW5pcS5o ZHIpOwogCWluc2VydF90YWcoc3AsICZuZWctPnNlcnZpY2UuaGRyKTsKIAlpZiAocHJpdnAtPm1h eF9wYXlsb2FkLmRhdGEgIT0gMCkKIAkJaW5zZXJ0X3RhZyhzcCwgJnByaXZwLT5tYXhfcGF5bG9h ZC5oZHIpOwpAQCAtMTE2Myw2ICsxMzUzLDUyIEBACiAJcmV0dXJuIChlcnJvcik7CiB9CiAKK3N0 YXRpYyBpbnQKK3NlbmRfaHVybChzZXNzcCBzcCwgY29uc3Qgc3RydWN0IHBwcG9lX3RhZyAqdGFn KQoreworCWludCBlcnJvciwgdGxlbjsKKwlzdHJ1Y3QgbmdfbWVzZyAqbXNnOworCXN0cnVjdCBu Z3BwcG9lX3BhZG0gKnBhZG07CisKKwlDVFIyKEtUUl9ORVQsICIlMjBzOiBjYWxsZWQgJWQiLCBf X2Z1bmNfXywgc3AtPlNlc3Npb25fSUQpOworCisJTkdfTUtNRVNTQUdFKG1zZywgTkdNX1BQUE9F X0NPT0tJRSwgTkdNX1BQUE9FX0hVUkwsCisJICAgIHNpemVvZihzdHJ1Y3QgbmdwcHBvZV9wYWRt KSwgTV9OT1dBSVQpOworCWlmIChtc2cgPT0gTlVMTCkKKwkJcmV0dXJuIChFTk9NRU0pOworCisJ cGFkbSA9IChzdHJ1Y3QgbmdwcHBvZV9wYWRtICopbXNnLT5kYXRhOworCXRsZW4gPSBtaW4oUFBQ T0VfUEFETV9WQUxVRV9TSVpFIC0gMSwgbnRvaHModGFnLT50YWdfbGVuKSk7CisJc3RybmNweShw YWRtLT5tc2csIChjb25zdCBjaGFyICopKHRhZyArIDEpLCB0bGVuKTsKKwlwYWRtLT5tc2dbdGxl bl0gPSAnXDAnOworCU5HX1NFTkRfTVNHX0lEKGVycm9yLCBOR19IT09LX05PREUoc3AtPmhvb2sp LCBtc2csIHNwLT5jcmVhdG9yLCAwKTsKKworCXJldHVybiAoZXJyb3IpOworfQorCitzdGF0aWMg aW50CitzZW5kX21vdG0oc2Vzc3Agc3AsIGNvbnN0IHN0cnVjdCBwcHBvZV90YWcgKnRhZykKK3sK KwlpbnQgZXJyb3IsIHRsZW47CisJc3RydWN0IG5nX21lc2cgKm1zZzsKKwlzdHJ1Y3QgbmdwcHBv ZV9wYWRtICpwYWRtOworCisJQ1RSMihLVFJfTkVULCAiJTIwczogY2FsbGVkICVkIiwgX19mdW5j X18sIHNwLT5TZXNzaW9uX0lEKTsKKworCU5HX01LTUVTU0FHRShtc2csIE5HTV9QUFBPRV9DT09L SUUsIE5HTV9QUFBPRV9NT1RNLAorCSAgICBzaXplb2Yoc3RydWN0IG5ncHBwb2VfcGFkbSksIE1f Tk9XQUlUKTsKKwlpZiAobXNnID09IE5VTEwpCisJCXJldHVybiAoRU5PTUVNKTsKKworCXBhZG0g PSAoc3RydWN0IG5ncHBwb2VfcGFkbSAqKW1zZy0+ZGF0YTsKKwl0bGVuID0gbWluKFBQUE9FX1BB RE1fVkFMVUVfU0laRSAtIDEsIG50b2hzKHRhZy0+dGFnX2xlbikpOworCXN0cm5jcHkocGFkbS0+ bXNnLCAoY29uc3QgY2hhciAqKSh0YWcgKyAxKSwgdGxlbik7CisJcGFkbS0+bXNnW3RsZW5dID0g J1wwJzsKKwlOR19TRU5EX01TR19JRChlcnJvciwgTkdfSE9PS19OT0RFKHNwLT5ob29rKSwgbXNn LCBzcC0+Y3JlYXRvciwgMCk7CisKKwlyZXR1cm4gKGVycm9yKTsKK30KKwogLyoKICAqIFJlY2Vp dmUgZGF0YSBmcm9tIHNlc3Npb24gaG9vayBhbmQgZG8gc29tZXRoaW5nIHdpdGggaXQuCiAgKi8K QEAgLTEzMjAsNiArMTU1Niw3IEBACiAJY29uc3QgcHJpdl9wCQlwcml2cCA9IE5HX05PREVfUFJJ VkFURShub2RlKTsKIAlzZXNzcAkJCXNwOwogCWNvbnN0IHN0cnVjdCBwcHBvZV90YWcJKnV0YWcg PSBOVUxMLCAqdGFnID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgcHBwb2VfdGFnCXNudGFnID0geyBQ VFRfU1JWX05BTUUsIDAgfTsKIAljb25zdCBzdHJ1Y3QgcHBwb2VfZnVsbF9oZHIgKndoOwogCWNv bnN0IHN0cnVjdCBwcHBvZV9oZHIJKnBoOwogCW5lZ3AJCQluZWcgPSBOVUxMOwpAQCAtMTQwOSwx MSArMTY0Niw4IEBACiAJCQkgKiBwcm9jZXNzaW5nLgogCQkJICovCiAJCQl0YWcgPSBnZXRfdGFn KHBoLCBQVFRfU1JWX05BTUUpOwotCQkJaWYgKHRhZyA9PSBOVUxMKSB7Ci0JCQkJQ1RSMShLVFJf TkVULCAiJTIwczogUEFESSB3L28gU2VydmljZS1OYW1lIiwKLQkJCQkgICAgX19mdW5jX18pOwot CQkJCUxFQVZFKEVORVRVTlJFQUNIKTsKLQkJCX0KKwkJCWlmICh0YWcgPT0gTlVMTCkKKwkJCQl0 YWcgPSAmc250YWc7CiAKIAkJCS8qCiAJCQkgKiBGaXJzdCwgdHJ5IHRvIG1hdGNoIFNlcnZpY2Ut TmFtZSBhZ2FpbnN0IG91ciAKQEAgLTE0MzgsOCArMTY3Miw3IEBACiAJCQkgKiBGb3Igbm93IHNp bXBseSBhY2NlcHQgdGhlIGZpcnN0IHdlIHJlY2VpdmUuCiAJCQkgKi8KIAkJCXV0YWcgPSBnZXRf dGFnKHBoLCBQVFRfSE9TVF9VTklRKTsKLQkJCWlmICgodXRhZyA9PSBOVUxMKSB8fAotCQkJICAg IChudG9ocyh1dGFnLT50YWdfbGVuKSAhPSBzaXplb2Yoc3ApKSkgeworCQkJaWYgKHV0YWcgPT0g TlVMTCkgewogCQkJCWxvZyhMT0dfTk9USUNFLCAibmdfcHBwb2VbJXhdOiBubyBob3N0ICIKIAkJ CQkgICAgInVuaXF1ZSBmaWVsZFxuIiwgbm9kZS0+bmRfSUQpOwogCQkJCUxFQVZFKEVORVRVTlJF QUNIKTsKQEAgLTE1MjksNyArMTc2Miw3IEBACiAJCQkJTEVBVkUoRU5FVFVOUkVBQ0gpOwogCQkJ fQogCi0JCQlzZW5kaG9vayA9IHBwcG9lX2ZpbmR1bmlxKG5vZGUsIHV0YWcpOworCQkJc2VuZGhv b2sgPSBwcHBvZV9maW5kY29va2llKG5vZGUsIHV0YWcpOwogCQkJaWYgKHNlbmRob29rID09IE5V TEwpCiAJCQkJTEVBVkUoRU5FVFVOUkVBQ0gpOwogCkBAIC0xNjA1LDggKzE4MzgsNyBAQAogCQkJ ICogc2V0IHVzIGludG8gU2Vzc2lvbiBtb2RlLgogCQkJICovCiAJCQl1dGFnID0gZ2V0X3RhZyhw aCwgUFRUX0hPU1RfVU5JUSk7Ci0JCQlpZiAoKHV0YWcgPT0gTlVMTCkgfHwKLQkJCSAgICAobnRv aHModXRhZy0+dGFnX2xlbikgIT0gc2l6ZW9mKHNwKSkpIHsKKwkJCWlmICh1dGFnID09IE5VTEwp IHsKIAkJCQlMRUFWRSAoRU5FVFVOUkVBQ0gpOwogCQkJfQogCQkJc2VuZGhvb2sgPSBwcHBvZV9m aW5kdW5pcShub2RlLCB1dGFnKTsKQEAgLTE2NTksNiArMTg5MSwxOSBAQAogCQkJLyogRGlzY29u bmVjdCB0aGF0IGhvb2suICovCiAJCQluZ19ybWhvb2tfc2VsZihzcC0+aG9vayk7CiAJCQlicmVh azsKKwkJY2FzZQlQQURNX0NPREU6CisJCQkvKgorCQkJICogV2UgYXJlIGEgY2xpZW50OgorCQkJ ICogZmluZCBtYXRjaGluZyBwZWVyL3Nlc3Npb24gY29tYmluYXRpb24uCisJCQkgKi8KKwkJCXNw ID0gcHBwb2VfZmluZHNlc3Npb24ocHJpdnAsIHdoKTsKKwkJCWlmIChzcCA9PSBOVUxMKQorCQkJ CUxFQVZFIChFTkVUVU5SRUFDSCk7CisJCQlpZiAoKHRhZyA9IGdldF90YWcocGgsIFBUVF9IVVJM KSkpCisJCQkJc2VuZF9odXJsKHNwLCB0YWcpOworCQkJaWYgKCh0YWcgPSBnZXRfdGFnKHBoLCBQ VFRfTU9UTSkpKQorCQkJCXNlbmRfbW90bShzcCwgdGFnKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJTEVBVkUoRVBGTk9TVVBQT1JUKTsKIAkJfQpAQCAtMTc4MSw3ICsyMDI2LDcgQEAKIAkJ CXN0cnVjdCBtYnVmICptOwogCiAJCQkvKiBHZW5lcmF0ZSBhIHBhY2tldCBvZiB0aGF0IHR5cGUu ICovCi0JCQlNR0VUSERSKG0sIE1fTk9XQUlULCBNVF9EQVRBKTsKKwkJCW0gPSBtX2dldGhkcihN X05PV0FJVCwgTVRfREFUQSk7CiAJCQlpZiAobSA9PSBOVUxMKQogCQkJCWxvZyhMT0dfTk9USUNF LCAibmdfcHBwb2VbJXhdOiBzZXNzaW9uIG91dCBvZiAiCiAJCQkJICAgICJtYnVmc1xuIiwgbm9k ZS0+bmRfSUQpOwpAQCAtMTc5MSw4ICsyMDM2LDYgQEAKIAkJCQlpbnQJbXNnbGVuID0gc3RybGVu KFNJR05PRkYpOwogCQkJCWludAllcnJvciA9IDA7CiAKLQkJCQltLT5tX3BrdGhkci5yY3ZpZiA9 IE5VTEw7Ci0JCQkJbS0+bV9wa3RoZHIubGVuID0gbS0+bV9sZW4gPSBzaXplb2YoKndoKTsKIAkJ CQl3aCA9IG10b2QobSwgc3RydWN0IHBwcG9lX2Z1bGxfaGRyICopOwogCQkJCWJjb3B5KCZzcC0+ cGt0X2hkciwgd2gsIHNpemVvZigqd2gpKTsKIApAQCAtMTgxNSw4ICsyMDU4LDggQEAKIAkJCQl0 YWctPnRhZ190eXBlID0gUFRUX0dFTl9FUlI7CiAJCQkJdGFnLT50YWdfbGVuID0gaHRvbnMoKHVf aW50MTZfdCltc2dsZW4pOwogCQkJCXN0cm5jcHkoKGNoYXIgKikodGFnICsgMSksIFNJR05PRkYs IG1zZ2xlbik7Ci0JCQkJbS0+bV9wa3RoZHIubGVuID0gKG0tPm1fbGVuICs9IHNpemVvZigqdGFn KSArCi0JCQkJICAgIG1zZ2xlbik7CisJCQkJbS0+bV9wa3RoZHIubGVuID0gbS0+bV9sZW4gPSBz aXplb2YoKndoKSArIHNpemVvZigqdGFnKSArCisJCQkJICAgIG1zZ2xlbjsKIAkJCQl3aC0+cGgu bGVuZ3RoID0gaHRvbnMoc2l6ZW9mKCp0YWcpICsgbXNnbGVuKTsKIAkJCQlOR19TRU5EX0RBVEFf T05MWShlcnJvciwKIAkJCQkJcHJpdnAtPmV0aGVybmV0X2hvb2ssIG0pOwpAQCAtMTkzMyw2ICsy MTc2LDggQEAKIAkJY2FzZQlQVFRfU1lTX0VSUjoKIAkJY2FzZQlQVFRfR0VOX0VSUjoKIAkJY2Fz ZQlQVFRfTUFYX1BBWUw6CisJCWNhc2UJUFRUX0hVUkw6CisJCWNhc2UJUFRUX01PVE06CiAJCQli cmVhazsKIAkJfQogCQlwdCA9IChjb25zdCBzdHJ1Y3QgcHBwb2VfdGFnKilwdG47CmRpZmYgLS1n aXQgYS9oZWFkL3NoYXJlL21hbi9tYW40L25nX3BwcG9lLjQgYi9oZWFkL3NoYXJlL21hbi9tYW40 L25nX3BwcG9lLjQKLS0tIGEvaGVhZC9zaGFyZS9tYW4vbWFuNC9uZ19wcHBvZS40CisrKyBiL2hl YWQvc2hhcmUvbWFuL21hbjQvbmdfcHBwb2UuNApAQCAtMzUsNyArMzUsNyBAQAogLlwiICRGcmVl QlNEJAogLlwiICRXaGlzdGxlOiBuZ19wcHBvZS44LHYgMS4xIDE5OTkvMDEvMjUgMjM6NDY6Mjcg YXJjaGllIEV4cCAkCiAuXCIKLS5EZCBTZXB0ZW1iZXIgMTUsIDIwMTUKKy5EZCBGZWJydWFyeSAx NCwgMjAxOAogLkR0IE5HX1BQUE9FIDQKIC5PcwogLlNoIE5BTUUKQEAgLTEwNCwxMiArMTA0LDMz IEBACiBJdCBtdXN0IGJlIG5ld2x5IGNyZWF0ZWQgYW5kIGEgc2VydmljZSBuYW1lIGNhbiBiZSBn aXZlbiBhcyBhbiBhcmd1bWVudC4KIEl0IGlzIGxlZ2FsIHRvIHNwZWNpZnkgYSB6ZXJvLWxlbmd0 aCBzZXJ2aWNlIG5hbWUsIHRoaXMgaXMgY29tbW9uCiBvbiBzb21lIERTTCBzZXR1cHMuCi1JdCBp cyBwb3NzaWJsZSB0byByZXF1ZXN0IGEgY29ubmVjdGlvbiB0byBhIHNwZWNpZmljCi1hY2Nlc3Mg Y29uY2VudHJhdG9yIGJ5IGl0cyBuYW1lIHVzaW5nIHRoZSAiQUMtTmFtZVxcU2VydmljZS1OYW1l IiBzeW50YXguCi1BIHNlc3Npb24gcmVxdWVzdCBwYWNrZXQgd2lsbCBiZSBicm9hZGNhc3RlZCBv biB0aGUgRXRoZXJuZXQuCitJdCBpcyBwb3NzaWJsZSB0byByZXF1ZXN0IGEgY29ubmVjdGlvbiB0 byBhIHNwZWNpZmljIGFjY2VzcyBjb25jZW50cmF0b3IsCithbmQvb3Igc2V0IGEgc3BlY2lmaWMg SG9zdC1VbmlxIHRhZywgcmVxdWlyZWQgYnkgc29tZSBJbnRlcm5ldCBwcm92aWRlcnMsCit1c2lu ZyB0aGUKKy5RcSBMaSBbQUMtTmFtZVxcXVtIb3N0LVVuaXF8XVNlcnZpY2UtTmFtZQorc3ludGF4 LgorVG8gc2V0IGEgYmluYXJ5IEhvc3QtVW5pcSwgaXQgbXVzdCBiZSBlbmNvZGVkIGFzIGEgaGV4 YWRlY2ltYWwgbG93ZXJjYXNlCitzdHJpbmcgYW5kIHByZWZpeGVkIHdpdGggCisuUXEgTGkgMHgg LAorZm9yIGV4YW1wbGUgCisuUXEgTGkgMHg2ZDc5MmQ3NDYxNjcKK2lzIGVxdWl2YWxlbnQgdG8K Ky5RcSBMaSBteS10YWcgLgorQSBzZXNzaW9uIHJlcXVlc3QgcGFja2V0IHdpbGwgYmUgYnJvYWRj YXN0IG9uIHRoZSBFdGhlcm5ldC4KIFRoaXMgY29tbWFuZCB1c2VzIHRoZQogLkR2IG5ncHBwb2Vf aW5pdF9kYXRhCiBzdHJ1Y3R1cmUgc2hvd24gYmVsb3cuCitGb3IgZXhhbXBsZSwgdGhpcyBpbml0 IGRhdGEgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8KK2Nvbm5lY3QgdG8KKy5RcSBMaSBteS1pc3AK K3NlcnZpY2Ugd2l0aAorLlFxIExpIG15LWhvc3QKK3VuaXEgdGFnLCBhY2NlcHRpbmcgb25seQor LlFxIExpIHJlbW90ZS1hYworYXMgYWNjZXNzIGNvbmNlbnRyYXRvcjoKKy5CZCAtbGl0ZXJhbCAt b2Zmc2V0IGluZGVudAorInJlbW90ZS1hY1xcbXktaG9zdHxteS1pc3AiCisuRWQKIC5JdCBEdiBO R01fUFBQT0VfTElTVEVOIFBxIEljIHBwcG9lX2xpc3RlbgogVGVsbCBhIG5vbWluYXRlZCBuZXds eSBjcmVhdGVkIGhvb2sgdGhhdCBpdHMgc2Vzc2lvbiBzaG91bGQgZW50ZXIKIHRoZSBzdGF0ZSBt YWNoaW5lIGFzIGEgc2VydmVyIGxpc3RlbmVyLgpAQCAtMjU4LDcgKzI3OSw0MSBAQAogICAgIHVp bnQxNl90IGRhdGE7CiB9OwogLkVkCisuSXQgRHYgTkdNX1BQUE9FX1NFTkRfSFVSTCBQcSBJYyBz ZW5kX2h1cmwKK1RlbGwgYSBub21pbmF0ZWQgaG9vayB3aXRoIGFuIGFjdGl2ZSBzZXNzaW9uIHRv IHNlbmQgYSBQQURNIG1lc3NhZ2Ugd2l0aAorYSBIVVJMIHRhZy4KK1RoZSBhcmd1bWVudCBpcyB0 aGUgVVJMIHRvIGJlIGRlbGl2ZXJlZCB0byB0aGUgY2xpZW50OgorLkJkIC1saXRlcmFsIC1vZmZz ZXQgaW5kZW50CituZ2N0bCBtc2cgZnhwMDpvcnBoYW5zIHNlbmRfaHVybCAneyBob29rPSJteUhv b2siIGRhdGE9Imh0dHA6Ly9leGFtcGxlLm5ldC9jcGUiIH0nCisuRWQKKy5JdCBEdiBOR01fUFBQ T0VfU0VORF9NT1RNIFBxIEljIHNlbmRfbW90bQorVGVsbCBhIG5vbWluYXRlZCBob29rIHdpdGgg YW4gYWN0aXZlIHNlc3Npb24gdG8gc2VuZCBhIFBBRE0gbWVzc2FnZSB3aXRoCithIE1PVE0gdGFn LgorVGhlIGFyZ3VtZW50IGlzIHRoZSBtZXNzYWdlIHRvIGJlIGRlbGl2ZXJlZCB0byB0aGUgY2xp ZW50OgorLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CituZ2N0bCBtc2cgZnhwMDpvcnBoYW5z IHNlbmRfbW90bSAneyBob29rPSJteUhvb2siIGRhdGE9IldlbGNvbWUgYWJvYXJkIiB9JworLkVk CiAuRWwKKy5QcAorVGhlIHR3byBjb21tYW5kcyBhYm92ZSB1c2UgdGhlIHNhbWUgbmdwcHBvZV9p bml0X2RhdGEgc3RydWN0dXJlIGRlc2NyaWJlZAorYWJvdmUuCisuQmwgLXRhZyAtd2lkdGggM24K Ky5JdCBEdiBOR01fUFBQT0VfSFVSTAorVGhpcyBjb21tYW5kIGlzIHNlbnQgdG8gdGhlIG5vZGUg dGhhdCBzdGFydGVkIHRoaXMgc2Vzc2lvbiB3aGVuIGEgUEFETQorbWVzc2FnZSB3aXRoIGEgSFVS TCB0YWcgaXMgcmVjZWl2ZWQsIGFuZCBjb250YWlucyBhIFVSTCB0aGF0IHRoZSBob3N0IGNhbgor cGFzcyB0byBhIHdlYiBicm93c2VyIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIuCisuSXQg RHYgTkdNX1BQUE9FX01PVE0KK1RoaXMgY29tbWFuZCBpcyBzZW50IHRvIHRoZSBub2RlIHRoYXQg c3RhcnRlZCB0aGlzIHNlc3Npb24gd2hlbiBhIFBBRE0KK21lc3NhZ2Ugd2l0aCBhIE1PVE0gdGFn IGlzIHJlY2VpdmVkLCBhbmQgY29udGFpbnMgYSBNZXNzYWdlIE9mIFRoZQorTWludXRlIHRoYXQg dGhlIGhvc3QgY2FuIGRpc3BsYXkgdG8gdGhlIHVzZXIuCisuRWwKKy5QcAorVGhlIHR3byBjb21t YW5kcyBhYm92ZSB1c2UgYSBjb21tb24gZGF0YSBzdHJ1Y3R1cmU6CisuQmQgLWxpdGVyYWwgLW9m ZnNldCA0bgorc3RydWN0IG5ncHBwb2VfcGFkbSB7CisgICAgY2hhciAgICBtc2dbUFBQT0VfUEFE TV9WQUxVRV9TSVpFXTsKK307CisuRWQKIC5TaCBTSFVURE9XTgogVGhpcyBub2RlIHNodXRzIGRv d24gdXBvbiByZWNlaXB0IG9mIGEKIC5EdiBOR01fU0hVVERPV04KCg== --b1_70f877d53d8a1a6ad628fa7a36d709ca--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?70f877d53d8a1a6ad628fa7a36d709ca>