Skip site navigation (1)Skip section navigation (2)
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>