Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Mar 2017 16:51:04 +0000
From:      "asomers (Alan Somers)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] D9451: Constrain IPv6 interface routes to each FIB
Message-ID:  <fb72446cf287def9e9cac5f8e88fc51b@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-xl62ljmjgot45obmsgfw-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-xl62ljmjgot45obmsgfw-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_fb72446cf287def9e9cac5f8e88fc51b
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

VGhpcyByZXZpc2lvbiB3YXMgYXV0b21hdGljYWxseSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGNv
bW1pdHRlZCBjaGFuZ2VzLgpDbG9zZWQgYnkgY29tbWl0IHJTMzE1NDU4OiBDb25zdHJhaW4gSVB2
NiByb3V0ZXMgdG8gc2luZ2xlIEZJQnMgd2hlbiBuZXQuYWRkX2FkZHJfYWxsZmlicz0wIChhdXRo
b3JlZCBieSBhc29tZXJzKS4KCkNIQU5HRUQgUFJJT1IgVE8gQ09NTUlUCiAgaHR0cHM6Ly9yZXZp
ZXdzLmZyZWVic2Qub3JnL0Q5NDUxP3ZzPTI2MDUzJmlkPTI2MzU5I3RvYwoKUkVQT1NJVE9SWQog
IHJTIEZyZWVCU0Qgc3JjIHJlcG9zaXRvcnkKCkNIQU5HRVMgU0lOQ0UgTEFTVCBVUERBVEUKICBo
dHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDk0NTE/dnM9MjYwNTMmaWQ9MjYzNTkKClJFVklT
SU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EOTQ1MQoKQUZGRUNURUQg
RklMRVMKICBoZWFkL3N5cy9uZXRpbmV0Ni9pY21wNi5jCiAgaGVhZC9zeXMvbmV0aW5ldDYvaW42
LmMKICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfc3JjLmMKICBoZWFkL3N5cy9uZXRpbmV0Ni9uZDYu
YwogIGhlYWQvc3lzL25ldGluZXQ2L25kNi5oCiAgaGVhZC9zeXMvbmV0aW5ldDYvbmQ2X25ici5j
CiAgaGVhZC9zeXMvbmV0aW5ldDYvbmQ2X3J0ci5jCiAgaGVhZC90ZXN0cy9zeXMvbmV0aW5ldC9m
aWJzX3Rlc3Quc2gKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qu
b3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogamh1amhpdGlfYWRqZWN0
aXZpc20ub3JnLCAjbmV0d29yaywgYnosIGFzb21lcnMKQ2M6IGpjaCwgYnosIGltcCwgYWUsIGZy
ZWVic2QtbmV0LWxpc3QK

--b1_fb72446cf287def9e9cac5f8e88fc51b
Content-Type: text/x-patch; charset=utf-8; name="D9451.26359.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D9451.26359.patch"

ZGlmZiAtLWdpdCBhL2hlYWQvdGVzdHMvc3lzL25ldGluZXQvZmlic190ZXN0LnNoIGIvaGVhZC90
ZXN0cy9zeXMvbmV0aW5ldC9maWJzX3Rlc3Quc2gKLS0tIGEvaGVhZC90ZXN0cy9zeXMvbmV0aW5l
dC9maWJzX3Rlc3Quc2gKKysrIGIvaGVhZC90ZXN0cy9zeXMvbmV0aW5ldC9maWJzX3Rlc3Quc2gK
QEAgLTE2Myw3ICsxNjMsNiBAQAogCiBsb29wYmFja19hbmRfbmV0d29ya19yb3V0ZXNfb25fbm9u
ZGVmYXVsdF9maWJfaW5ldDZfYm9keSgpCiB7Ci0JYXRmX2V4cGVjdF9mYWlsICJQUjE5NjM2MSBJ
UHY2IG5ldHdvcmsgcm91dGVzIGRvbid0IHJlc3BlY3QgbmV0LmFkZF9hZGRyX2FsbGZpYnM9MCIK
IAkjIENvbmZpZ3VyZSB0aGUgVEFQIGludGVyZmFjZSB0byB1c2UgYSBub25yb3V0ZWFibGUgUkZD
Mzg0OQogCSMgYWRkcmVzcyBhbmQgYSBub24tZGVmYXVsdCBmaWIKIAlBRERSPSIyMDAxOmRiODo6
MiIKQEAgLTQ1MiwxNSArNDUxLDE0IEBACiB9CiBzbGFhY19vbl9ub25kZWZhdWx0X2ZpYjZfYm9k
eSgpCiB7CisJYXRmX3NraXAgIkJVRzIxNzg3MSBTTEFBQyBvbiBhIG5ld2x5IGNyZWF0ZWQgZXBh
aXIgc29tZXRpbWVzIGZhaWxzIHRvIGFkZCByb3V0ZXMiCiAJIyBDb25maWd1cmUgdGhlIGVwYWly
IGludGVyZmFjZXMgdG8gdXNlIG5vbnJvdXRlYWJsZSBSRkMzODQ5CiAJIyBhZGRyZXNzZXMgYW5k
IG5vbi1kZWZhdWx0IEZJQnMKIAlBRERSPSIyMDAxOmRiODo6MiIKIAlHQVRFV0FZPSIyMDAxOmRi
ODo6MSIKIAlTVUJORVQ9IjIwMDE6ZGI4OiIKIAlNQVNLPSI2NCIKIAotCWF0Zl9leHBlY3RfZmFp
bCAiUFIxOTYzNjEgSVB2NiBuZXR3b3JrIHJvdXRlcyBkb24ndCByZXNwZWN0IG5ldC5hZGRfYWRk
cl9hbGxmaWJzPTAiCi0KIAkjIENoZWNrIHN5c3RlbSBjb25maWd1cmF0aW9uCiAJaWYgWyAwICE9
IGBzeXNjdGwgLW4gbmV0LmFkZF9hZGRyX2FsbGZpYnNgIF07IHRoZW4KIAkJYXRmX3NraXAgIlRo
aXMgdGVzdCByZXF1aXJlcyBuZXQuYWRkX2FkZHJfYWxsZmlicz0wIgpAQCAtNDc4LDggKzQ3Niw4
IEBACiAJIyBDb25maWd1cmUgZXBhaXIgaW50ZXJmYWNlcwogCWdldF9lcGFpcgogCXNldHVwX2lm
YWNlICIkRVBBSVJBIiAiJEZJQjAiIGluZXQ2ICR7QUREUn0gJHtNQVNLfQotCWVjaG8gaWZjb25m
aWcgIiRFUEFJUkIiIHVwIGluZXQ2IGZpYiAkRklCMSAtaWZkaXNhYmxlZCBhY2NlcHRfcnRhZHYK
LQlpZmNvbmZpZyAiJEVQQUlSQiIgaW5ldDYgLWlmZGlzYWJsZWQgYWNjZXB0X3J0YWR2IGZpYiAk
RklCMSB1cAorCWVjaG8gc2V0ZmliICRGSUIxIGlmY29uZmlnICIkRVBBSVJCIiBpbmV0NiAtaWZk
aXNhYmxlZCBhY2NlcHRfcnRhZHYgZmliICRGSUIxIHVwCisJc2V0ZmliICRGSUIxIGlmY29uZmln
ICIkRVBBSVJCIiBpbmV0NiAtaWZkaXNhYmxlZCBhY2NlcHRfcnRhZHYgZmliICRGSUIxIHVwCiAJ
cnRhZHZkIC1wIHJ0YWR2ZC5waWQgLUMgcnRhZHZkLnNvY2sgLWMgL2Rldi9udWxsICIkRVBBSVJB
IgogCXJ0c29sICIkRVBBSVJCIgogCkBAIC01MTQsNyArNTEyLDcgQEAKIAljbGVhbnVwX2lmYWNl
cwogCWlmIFsgLWYgInJ0YWR2ZC5waWQiIF07IHRoZW4KIAkJcGtpbGwgLUYgcnRhZHZkLnBpZAot
CQlybSBydGFkdmQucGlkCisJCXJtIC1mIHJ0YWR2ZC5waWQKIAlmaQogCWlmIFsgLWYgInJmYzYy
MDR3My5zdGF0ZSIgXSA7IHRoZW4KIAkJc3lzY3RsICJuZXQuaW5ldDYuaXA2LnJmYzYyMDR3MyI9
YGNhdCAicmZjNjIwNHczLnN0YXRlImAKQEAgLTY4NSw4ICs2ODMsNiBAQAogCVRBUkdFVD0iMjAw
MTpkYjg6OjEwMCIKIAlTUkNESVI9YGF0Zl9nZXRfc3JjZGlyYAogCi0JYXRmX2V4cGVjdF9mYWls
ICJQUjE5NjM2MSBJUHY2IG5ldHdvcmsgcm91dGVzIGRvbid0IHJlc3BlY3QgbmV0LmFkZF9hZGRy
X2FsbGZpYnM9MCIKLQogCSMgQ2hlY2sgc3lzdGVtIGNvbmZpZ3VyYXRpb24KIAlpZiBbIDAgIT0g
YHN5c2N0bCAtbiBuZXQuYWRkX2FkZHJfYWxsZmlic2AgXTsgdGhlbgogCQlhdGZfc2tpcCAiVGhp
cyB0ZXN0IHJlcXVpcmVzIG5ldC5hZGRfYWRkcl9hbGxmaWJzPTAiCkBAIC03NjcsNyArNzYzLDcg
QEAKIAlsb2NhbCBFUEFJUkQKIAogCWlmIEVQQUlSRD1gaWZjb25maWcgZXBhaXIgY3JlYXRlYDsg
dGhlbgotCQkjIFJlY29yZCB0aGUgVEFQIGRldmljZSBzbyB3ZSBjYW4gY2xlYW4gaXQgdXAgbGF0
ZXIKKwkJIyBSZWNvcmQgdGhlIGVwYWlyIGRldmljZSBzbyB3ZSBjYW4gY2xlYW4gaXQgdXAgbGF0
ZXIKIAkJZWNobyAke0VQQUlSRH0gPj4gImlmYWNlc190b19jbGVhbnVwIgogCQlFUEFJUkE9JHtF
UEFJUkR9CiAJCUVQQUlSQj0ke0VQQUlSRCVhfWIKZGlmZiAtLWdpdCBhL2hlYWQvc3lzL25ldGlu
ZXQ2L25kNl9ydHIuYyBiL2hlYWQvc3lzL25ldGluZXQ2L25kNl9ydHIuYwotLS0gYS9oZWFkL3N5
cy9uZXRpbmV0Ni9uZDZfcnRyLmMKKysrIGIvaGVhZC9zeXMvbmV0aW5ldDYvbmQ2X3J0ci5jCkBA
IC01MDAsNyArNTAwLDcgQEAKIAogCWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1fQURELCAoc3Ry
dWN0IHNvY2thZGRyICopJmRlZiwKIAkgICAgKHN0cnVjdCBzb2NrYWRkciAqKSZnYXRlLCAoc3Ry
dWN0IHNvY2thZGRyICopJm1hc2ssCi0JICAgIFJURl9HQVRFV0FZLCAmbmV3cnQsIFJUX0RFRkFV
TFRfRklCKTsKKwkgICAgUlRGX0dBVEVXQVksICZuZXdydCwgbmV3LT5pZnAtPmlmX2ZpYik7CiAJ
aWYgKG5ld3J0KSB7CiAJCW5kNl9ydG1zZyhSVE1fQURELCBuZXdydCk7IC8qIHRlbGwgdXNlciBw
cm9jZXNzICovCiAJCVJURlJFRShuZXdydCk7CkBAIC01NTEsOCArNTUxLDggQEAKIAogLyoKICAq
IFJlbW92ZSB0aGUgZGVmYXVsdCByb3V0ZSBmb3IgYSBnaXZlbiByb3V0ZXIuCi0gKiBUaGlzIGlz
IGp1c3QgYSBzdWJyb3V0aW5lIGZ1bmN0aW9uIGZvciBkZWZyb3V0ZXJfc2VsZWN0KCksIGFuZCBz
aG91bGQKLSAqIG5vdCBiZSBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlLgorICogVGhpcyBpcyBq
dXN0IGEgc3Vicm91dGluZSBmdW5jdGlvbiBmb3IgZGVmcm91dGVyX3NlbGVjdF9maWIoKSwgYW5k
CisgKiBzaG91bGQgbm90IGJlIGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UuCiAgKi8KIHN0YXRp
YyB2b2lkCiBkZWZyb3V0ZXJfZGVscmVxKHN0cnVjdCBuZF9kZWZyb3V0ZXIgKmRyKQpAQCAtNTcx
LDcgKzU3MSw3IEBACiAKIAlpbjZfcnRyZXF1ZXN0KFJUTV9ERUxFVEUsIChzdHJ1Y3Qgc29ja2Fk
ZHIgKikmZGVmLAogCSAgICAoc3RydWN0IHNvY2thZGRyICopJmdhdGUsCi0JICAgIChzdHJ1Y3Qg
c29ja2FkZHIgKikmbWFzaywgUlRGX0dBVEVXQVksICZvbGRydCwgUlRfREVGQVVMVF9GSUIpOwor
CSAgICAoc3RydWN0IHNvY2thZGRyICopJm1hc2ssIFJURl9HQVRFV0FZLCAmb2xkcnQsIGRyLT5p
ZnAtPmlmX2ZpYik7CiAJaWYgKG9sZHJ0KSB7CiAJCW5kNl9ydG1zZyhSVE1fREVMRVRFLCBvbGRy
dCk7CiAJCVJURlJFRShvbGRydCk7CkBAIC02OTgsMTEgKzY5OCwxMSBAQAogCiAJLyoKIAkgKiBJ
ZiB0aGUgcm91dGVyIGlzIHRoZSBwcmltYXJ5IG9uZSwgY2hvb3NlIGEgbmV3IG9uZS4KLQkgKiBO
b3RlIHRoYXQgZGVmcm91dGVyX3NlbGVjdCgpIHdpbGwgcmVtb3ZlIHRoZSBjdXJyZW50IGdhdGV3
YXkKLQkgKiBmcm9tIHRoZSByb3V0aW5nIHRhYmxlLgorCSAqIE5vdGUgdGhhdCBkZWZyb3V0ZXJf
c2VsZWN0X2ZpYigpIHdpbGwgcmVtb3ZlIHRoZSBjdXJyZW50CisgICAgICAgICAqIGdhdGV3YXkg
ZnJvbSB0aGUgcm91dGluZyB0YWJsZS4KIAkgKi8KIAlpZiAoZGVsZHIpCi0JCWRlZnJvdXRlcl9z
ZWxlY3QoKTsKKwkJZGVmcm91dGVyX3NlbGVjdF9maWIoZGVsZHItPmlmcC0+aWZfZmliKTsKIAog
CS8qCiAJICogUmVsZWFzZSB0aGUgbGlzdCByZWZlcmVuY2UuCkBAIC03MzAsMTMgKzczMCwyMyBA
QAogICogZXZlbiB3aGVuIHRoZSBtdWx0aXBhdGggcm91dGluZyBpcyBhdmFpbGFibGUsIGJlY2F1
c2Ugd2UncmUgbm90IHN1cmUgYWJvdXQKICAqIHRoZSBiZW5lZml0cyBmb3Igc3R1YiBob3N0cyBj
b21wYXJpbmcgdG8gdGhlIHJpc2sgb2YgbWFraW5nIHRoZSBjb2RlCiAgKiBjb21wbGljYXRlZCBh
bmQgdGhlIHBvc3NpYmlsaXR5IG9mIGludHJvZHVjaW5nIGJ1Z3MuCisgKgorICogV2UgbWFpbnRh
aW4gYSBzaW5nbGUgbGlzdCBvZiByb3V0ZXJzIGZvciBtdWx0aXBsZSBGSUJzLCBvbmx5IGNvbnNp
ZGVyaW5nIG9uZQorICogYXQgYSB0aW1lIGJhc2VkIG9uIHRoZSByZWNlaXZpbmcgaW50ZXJmYWNl
J3MgRklCLiBJZiBAZmlibnVtIGlzIFJUX0FMTF9GSUJTLAorICogd2UgZG8gdGhlIHdob2xlIHRo
aW5nIG11bHRpcGxlIHRpbWVzLgogICovCiB2b2lkCi1kZWZyb3V0ZXJfc2VsZWN0KHZvaWQpCitk
ZWZyb3V0ZXJfc2VsZWN0X2ZpYihpbnQgZmlibnVtKQogewogCXN0cnVjdCBuZF9kZWZyb3V0ZXIg
KmRyLCAqc2VsZWN0ZWRfZHIsICppbnN0YWxsZWRfZHI7CiAJc3RydWN0IGxsZW50cnkgKmxuID0g
TlVMTDsKIAorCWlmIChmaWJudW0gPT0gUlRfQUxMX0ZJQlMpIHsKKwkJZm9yIChmaWJudW0gPSAw
OyBmaWJudW0gPCBydF9udW1maWJzOyBmaWJudW0rKykgeworCQkJZGVmcm91dGVyX3NlbGVjdF9m
aWIoZmlibnVtKTsKKwkJfQorCX0KKwogCU5ENl9STE9DSygpOwogCS8qCiAJICogTGV0J3MgaGFu
ZGxlIGVhc3kgY2FzZSAoMykgZmlyc3Q6CkBAIC03NTUsNyArNzY1LDcgQEAKIAlzZWxlY3RlZF9k
ciA9IGluc3RhbGxlZF9kciA9IE5VTEw7CiAJVEFJTFFfRk9SRUFDSChkciwgJlZfbmRfZGVmcm91
dGVyLCBkcl9lbnRyeSkgewogCQlJRl9BRkRBVEFfUkxPQ0soZHItPmlmcCk7Ci0JCWlmIChzZWxl
Y3RlZF9kciA9PSBOVUxMICYmCisJCWlmIChzZWxlY3RlZF9kciA9PSBOVUxMICYmIGRyLT5pZnAt
PmlmX2ZpYiA9PSBmaWJudW0gJiYKIAkJICAgIChsbiA9IG5kNl9sb29rdXAoJmRyLT5ydGFkZHIs
IDAsIGRyLT5pZnApKSAmJgogCQkgICAgTkQ2X0lTX0xMSU5GT19QUk9CUkVBQ0gobG4pKSB7CiAJ
CQlzZWxlY3RlZF9kciA9IGRyOwpAQCAtNzY3LDE0ICs3NzcsMTcgQEAKIAkJCWxuID0gTlVMTDsK
IAkJfQogCi0JCWlmIChkci0+aW5zdGFsbGVkKSB7CisJCWlmIChkci0+aW5zdGFsbGVkICYmIGRy
LT5pZnAtPmlmX2ZpYiA9PSBmaWJudW0pIHsKIAkJCWlmIChpbnN0YWxsZWRfZHIgPT0gTlVMTCkg
ewogCQkJCWluc3RhbGxlZF9kciA9IGRyOwogCQkJCWRlZnJvdXRlcl9yZWYoaW5zdGFsbGVkX2Ry
KTsKIAkJCX0gZWxzZSB7Ci0JCQkJLyogdGhpcyBzaG91bGQgbm90IGhhcHBlbi4gIHdhcm4gZm9y
IGRpYWdub3Npcy4gKi8KLQkJCQlsb2coTE9HX0VSUiwKLQkJICAgICJkZWZyb3V0ZXJfc2VsZWN0
OiBtb3JlIHRoYW4gb25lIHJvdXRlciBpcyBpbnN0YWxsZWRcbiIpOworCQkJCS8qCisJCQkJICog
dGhpcyBzaG91bGQgbm90IGhhcHBlbi4KKwkJCQkgKiB3YXJuIGZvciBkaWFnbm9zaXMuCisJCQkJ
ICovCisJCQkJbG9nKExPR19FUlIsICJkZWZyb3V0ZXJfc2VsZWN0X2ZpYjogbW9yZSB0aGFuICIK
KwkJCQkgICAgICAgICAgICAgIm9uZSByb3V0ZXIgaXMgaW5zdGFsbGVkXG4iKTsKIAkJCX0KIAkJ
fQogCX0KQEAgLTc4OSwxNCArODAyLDI0IEBACiAJaWYgKHNlbGVjdGVkX2RyID09IE5VTEwpIHsK
IAkJaWYgKGluc3RhbGxlZF9kciA9PSBOVUxMIHx8CiAJCSAgICBUQUlMUV9ORVhUKGluc3RhbGxl
ZF9kciwgZHJfZW50cnkpID09IE5VTEwpCi0JCQlzZWxlY3RlZF9kciA9IFRBSUxRX0ZJUlNUKCZW
X25kX2RlZnJvdXRlcik7CisJCQlkciA9IFRBSUxRX0ZJUlNUKCZWX25kX2RlZnJvdXRlcik7CiAJ
CWVsc2UKLQkJCXNlbGVjdGVkX2RyID0gVEFJTFFfTkVYVChpbnN0YWxsZWRfZHIsIGRyX2VudHJ5
KTsKLQkJZGVmcm91dGVyX3JlZihzZWxlY3RlZF9kcik7CisJCQlkciA9IFRBSUxRX05FWFQoaW5z
dGFsbGVkX2RyLCBkcl9lbnRyeSk7CisKKwkJLyogRW5zdXJlIHdlIHNlbGVjdCBhIHJvdXRlciBm
b3IgdGhpcyBGSUIuICovCisJCVRBSUxRX0ZPUkVBQ0hfRlJPTShkciwgJlZfbmRfZGVmcm91dGVy
LCBkcl9lbnRyeSkgeworCQkJaWYgKGRyLT5pZnAtPmlmX2ZpYiA9PSBmaWJudW0pIHsKKwkJCQlz
ZWxlY3RlZF9kciA9IGRyOworCQkJCWRlZnJvdXRlcl9yZWYoc2VsZWN0ZWRfZHIpOworCQkJCWJy
ZWFrOworCQkJfQorCQl9CiAJfSBlbHNlIGlmIChpbnN0YWxsZWRfZHIgIT0gTlVMTCkgewogCQlJ
Rl9BRkRBVEFfUkxPQ0soaW5zdGFsbGVkX2RyLT5pZnApOwotCQlpZiAoKGxuID0gbmQ2X2xvb2t1
cCgmaW5zdGFsbGVkX2RyLT5ydGFkZHIsIDAsIGluc3RhbGxlZF9kci0+aWZwKSkgJiYKKwkJaWYg
KChsbiA9IG5kNl9sb29rdXAoJmluc3RhbGxlZF9kci0+cnRhZGRyLCAwLAorCQkgICAgICAgICAg
ICAgICAgICAgICBpbnN0YWxsZWRfZHItPmlmcCkpICYmCiAJCSAgICBORDZfSVNfTExJTkZPX1BS
T0JSRUFDSChsbikgJiYKKwkJICAgIGluc3RhbGxlZF9kci0+aWZwLT5pZl9maWIgPT0gZmlibnVt
ICYmCiAJCSAgICBydHByZWYoc2VsZWN0ZWRfZHIpIDw9IHJ0cHJlZihpbnN0YWxsZWRfZHIpKSB7
CiAJCQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7CiAJCQlzZWxlY3RlZF9kciA9IGluc3Rh
bGxlZF9kcjsKQEAgLTgwOCwxOCArODMxLDMwIEBACiAJTkQ2X1JVTkxPQ0soKTsKIAogCS8qCi0J
ICogSWYgdGhlIHNlbGVjdGVkIHJvdXRlciBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5zdGFsbGVk
IG9uZSwKLQkgKiByZW1vdmUgdGhlIGluc3RhbGxlZCByb3V0ZXIgYW5kIGluc3RhbGwgdGhlIHNl
bGVjdGVkIG9uZS4KLQkgKiBOb3RlIHRoYXQgdGhlIHNlbGVjdGVkIHJvdXRlciBpcyBuZXZlciBO
VUxMIGhlcmUuCisJICogSWYgd2Ugc2VsZWN0ZWQgYSByb3V0ZXIgZm9yIHRoaXMgRklCIGFuZCBp
dCdzIGRpZmZlcmVudAorCSAqIHRoYW4gdGhlIGluc3RhbGxlZCBvbmUsIHJlbW92ZSB0aGUgaW5z
dGFsbGVkIHJvdXRlciBhbmQKKwkgKiBpbnN0YWxsIHRoZSBzZWxlY3RlZCBvbmUgaW4gaXRzIHBs
YWNlLgogCSAqLwogCWlmIChpbnN0YWxsZWRfZHIgIT0gc2VsZWN0ZWRfZHIpIHsKIAkJaWYgKGlu
c3RhbGxlZF9kciAhPSBOVUxMKSB7CiAJCQlkZWZyb3V0ZXJfZGVscmVxKGluc3RhbGxlZF9kcik7
CiAJCQlkZWZyb3V0ZXJfcmVsZShpbnN0YWxsZWRfZHIpOwogCQl9Ci0JCWRlZnJvdXRlcl9hZGRy
ZXEoc2VsZWN0ZWRfZHIpOworCQlpZiAoc2VsZWN0ZWRfZHIgIT0gTlVMTCkKKwkJCWRlZnJvdXRl
cl9hZGRyZXEoc2VsZWN0ZWRfZHIpOwogCX0KLQlkZWZyb3V0ZXJfcmVsZShzZWxlY3RlZF9kcik7
CisJaWYgKHNlbGVjdGVkX2RyICE9IE5VTEwpCisJCWRlZnJvdXRlcl9yZWxlKHNlbGVjdGVkX2Ry
KTsKK30KKworLyoKKyAqIE1haW50YWluIG9sZCBLUEkgZm9yIGRlZmF1bHQgcm91dGVyIHNlbGVj
dGlvbi4KKyAqIElmIHVuc3BlY2lmaWVkLCB3ZSBjYW4gcmUtc2VsZWN0IHJvdXRlcnMgZm9yIGFs
bCBGSUJzLgorICovCit2b2lkCitkZWZyb3V0ZXJfc2VsZWN0KHZvaWQpCit7CisJZGVmcm91dGVy
X3NlbGVjdF9maWIoUlRfQUxMX0ZJQlMpOwogfQogCiAvKgpAQCAtOTQyLDcgKzk3Nyw3IEBACiAJ
Vl9uZDZfbGlzdF9nZW5pZCsrOwogCU5ENl9XVU5MT0NLKCk7CiAKLQlkZWZyb3V0ZXJfc2VsZWN0
KCk7CisJZGVmcm91dGVyX3NlbGVjdF9maWIobmV3LT5pZnAtPmlmX2ZpYik7CiAKIAlyZXR1cm4g
KG4pOwogfQpAQCAtMTczMSw3ICsxNzY2LDcgQEAKIAlzdHJ1Y3QgcnRlbnRyeSAqcnQ7CiAJc3Ry
dWN0IHNvY2thZGRyX2luNiBtYXNrNjsKIAl1X2xvbmcgcnRmbGFnczsKLQlpbnQgZXJyb3IsIGFf
ZmFpbHVyZSwgZmlibnVtOworCWludCBlcnJvciwgYV9mYWlsdXJlLCBmaWJudW0sIG1heGZpYjsK
IAogCS8qCiAJICogaW42X2lmaW5pdCgpIHNldHMgbmQ2X3J0cmVxdWVzdCB0byBpZmFfcnRyZXF1
ZXN0IGZvciBhbGwgaWZhZGRycy4KQEAgLTE3NDIsOCArMTc3NywxNSBAQAogCW1hc2s2LnNpbjZf
YWRkciA9IHByLT5uZHByX21hc2s7CiAJcnRmbGFncyA9IChpZmEtPmlmYV9mbGFncyAmIH5JRkFf
UlRTRUxGKSB8IFJURl9VUDsKIAorCWlmKFZfcnRfYWRkX2FkZHJfYWxsZmlicykgeworCQlmaWJu
dW0gPSAwOworCQltYXhmaWIgPSBydF9udW1maWJzOworCX0gZWxzZSB7CisJCWZpYm51bSA9IGlm
YS0+aWZhX2lmcC0+aWZfZmliOworCQltYXhmaWIgPSBmaWJudW0gKyAxOworCX0KIAlhX2ZhaWx1
cmUgPSAwOwotCWZvciAoZmlibnVtID0gMDsgZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKysp
IHsKKwlmb3IgKDsgZmlibnVtIDwgbWF4ZmliOyBmaWJudW0rKykgewogCiAJCXJ0ID0gTlVMTDsK
IAkJZXJyb3IgPSBpbjZfcnRyZXF1ZXN0KFJUTV9BREQsCkBAIC0xODMxLDYgKzE4NzMsMTAgQEAK
IAkJaWYgKChvcHItPm5kcHJfc3RhdGVmbGFncyAmIE5EUFJGX09OTElOSykgPT0gMCkKIAkJCWNv
bnRpbnVlOwogCisJCWlmICghVl9ydF9hZGRfYWRkcl9hbGxmaWJzICYmCisJCSAgICBvcHItPm5k
cHJfaWZwLT5pZl9maWIgIT0gcHItPm5kcHJfaWZwLT5pZl9maWIpCisJCQljb250aW51ZTsKKwog
CQlpZiAob3ByLT5uZHByX3BsZW4gPT0gcHItPm5kcHJfcGxlbiAmJgogCQkgICAgaW42X2FyZV9w
cmVmaXhfZXF1YWwoJnByLT5uZHByX3ByZWZpeC5zaW42X2FkZHIsCiAJCSAgICAmb3ByLT5uZHBy
X3ByZWZpeC5zaW42X2FkZHIsIHByLT5uZHByX3BsZW4pKSB7CkBAIC0xODkxLDcgKzE5MzcsNyBA
QAogCXN0cnVjdCBydGVudHJ5ICpydDsKIAljaGFyIGlwNmJ1ZltJTkVUNl9BRERSU1RSTEVOXTsK
IAl1aW50NjRfdCBnZW5pZDsKLQlpbnQgZmlibnVtLCBhX2ZhaWx1cmU7CisJaW50IGZpYm51bSwg
bWF4ZmliLCBhX2ZhaWx1cmU7CiAKIAlORDZfT05MSU5LX0xPQ0tfQVNTRVJUKCk7CiAJTkQ2X1VO
TE9DS19BU1NFUlQoKTsKQEAgLTE5MDksOCArMTk1NSwxNiBAQAogCW1hc2s2LnNpbjZfbGVuID0g
c2l6ZW9mKHNhNik7CiAJYmNvcHkoJnByLT5uZHByX21hc2ssICZtYXNrNi5zaW42X2FkZHIsIHNp
emVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKIAorCWlmIChWX3J0X2FkZF9hZGRyX2FsbGZpYnMpIHsK
KwkJZmlibnVtID0gMDsKKwkJbWF4ZmliID0gcnRfbnVtZmliczsKKwl9IGVsc2UgeworCQlmaWJu
dW0gPSBpZnAtPmlmX2ZpYjsKKwkJbWF4ZmliID0gZmlibnVtICsgMTsKKwl9CisKIAlhX2ZhaWx1
cmUgPSAwOwotCWZvciAoZmlibnVtID0gMDsgZmlibnVtIDwgcnRfbnVtZmliczsgZmlibnVtKysp
IHsKKwlmb3IgKDsgZmlibnVtIDwgbWF4ZmliOyBmaWJudW0rKykgewogCQlydCA9IE5VTEw7CiAJ
CWVycm9yID0gaW42X3J0cmVxdWVzdChSVE1fREVMRVRFLCAoc3RydWN0IHNvY2thZGRyICopJnNh
NiwgTlVMTCwKIAkJICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmbWFzazYsIDAsICZydCwgZmlibnVt
KTsKZGlmZiAtLWdpdCBhL2hlYWQvc3lzL25ldGluZXQ2L25kNl9uYnIuYyBiL2hlYWQvc3lzL25l
dGluZXQ2L25kNl9uYnIuYwotLS0gYS9oZWFkL3N5cy9uZXRpbmV0Ni9uZDZfbmJyLmMKKysrIGIv
aGVhZC9zeXMvbmV0aW5ldDYvbmQ2X25ici5jCkBAIC0yNjIsOCArMjYyLDcgQEAKIAkJYnplcm8o
JmluZm8sIHNpemVvZihpbmZvKSk7CiAJCWluZm8ucnRpX2luZm9bUlRBWF9HQVRFV0FZXSA9IChz
dHJ1Y3Qgc29ja2FkZHIgKikmcnRfZ2F0ZXdheTsKIAotCQkvKiBBbHdheXMgdXNlIHRoZSBkZWZh
dWx0IEZJQi4gKi8KLQkJaWYgKHJpYl9sb29rdXBfaW5mbyhSVF9ERUZBVUxUX0ZJQiwgKHN0cnVj
dCBzb2NrYWRkciAqKSZkc3Q2LAorCQlpZiAocmliX2xvb2t1cF9pbmZvKGlmcC0+aWZfZmliLCAo
c3RydWN0IHNvY2thZGRyICopJmRzdDYsCiAJCSAgICAwLCAwLCAmaW5mbykgPT0gMCkgewogCQkJ
aWYgKChpbmZvLnJ0aV9mbGFncyAmIFJURl9BTk5PVU5DRSkgIT0gMCAmJgogCQkJICAgIHJ0X2dh
dGV3YXkuc2RsX2ZhbWlseSA9PSBBRl9MSU5LKSB7CkBAIC00ODUsNyArNDg0LDcgQEAKIAkJCXVp
bnQzMl90IHNjb3BlaWQ7CiAKIAkJCWluNl9zcGxpdHNjb3BlKCZpcDYtPmlwNl9kc3QsICZkc3Q2
LCAmc2NvcGVpZCk7Ci0JCQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihSVF9ERUZBVUxUX0ZJ
QiwgJmRzdDYsCisJCQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihmaWJudW0sICZkc3Q2LAog
CQkJICAgIHNjb3BlaWQsIGlmcCwgJnNyYzYsIE5VTEwpOwogCQkJaWYgKGVycm9yKSB7CiAJCQkJ
Y2hhciBpcDZidWZbSU5FVDZfQUREUlNUUkxFTl07CkBAIC05ODIsNyArOTgxLDcgQEAKIAkgKiBT
ZWxlY3QgYSBzb3VyY2Ugd2hvc2Ugc2NvcGUgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgZGVz
dC4KIAkgKi8KIAlpbjZfc3BsaXRzY29wZSgmZGFkZHI2LCAmZHN0NiwgJnNjb3BlaWQpOwotCWVy
cm9yID0gaW42X3NlbGVjdHNyY19hZGRyKFJUX0RFRkFVTFRfRklCLCAmZHN0NiwKKwllcnJvciA9
IGluNl9zZWxlY3RzcmNfYWRkcihmaWJudW0sICZkc3Q2LAogCSAgICBzY29wZWlkLCBpZnAsICZz
cmM2LCBOVUxMKTsKIAlpZiAoZXJyb3IpIHsKIAkJY2hhciBpcDZidWZbSU5FVDZfQUREUlNUUkxF
Tl07CmRpZmYgLS1naXQgYS9oZWFkL3N5cy9uZXRpbmV0Ni9uZDYuaCBiL2hlYWQvc3lzL25ldGlu
ZXQ2L25kNi5oCi0tLSBhL2hlYWQvc3lzL25ldGluZXQ2L25kNi5oCisrKyBiL2hlYWQvc3lzL25l
dGluZXQ2L25kNi5oCkBAIC00NjksNiArNDY5LDcgQEAKIHZvaWQgbmQ2X3JzX2lucHV0KHN0cnVj
dCBtYnVmICosIGludCwgaW50KTsKIHZvaWQgbmQ2X3JhX2lucHV0KHN0cnVjdCBtYnVmICosIGlu
dCwgaW50KTsKIHZvaWQgZGVmcm91dGVyX3Jlc2V0KHZvaWQpOwordm9pZCBkZWZyb3V0ZXJfc2Vs
ZWN0X2ZpYihpbnQgZmlibnVtKTsKIHZvaWQgZGVmcm91dGVyX3NlbGVjdCh2b2lkKTsKIHZvaWQg
ZGVmcm91dGVyX3JlZihzdHJ1Y3QgbmRfZGVmcm91dGVyICopOwogdm9pZCBkZWZyb3V0ZXJfcmVs
ZShzdHJ1Y3QgbmRfZGVmcm91dGVyICopOwpkaWZmIC0tZ2l0IGEvaGVhZC9zeXMvbmV0aW5ldDYv
bmQ2LmMgYi9oZWFkL3N5cy9uZXRpbmV0Ni9uZDYuYwotLS0gYS9oZWFkL3N5cy9uZXRpbmV0Ni9u
ZDYuYworKysgYi9oZWFkL3N5cy9uZXRpbmV0Ni9uZDYuYwpAQCAtMTU3LDYgKzE1Nyw3IEBACiAJ
c3RydWN0IHNvY2thZGRyX2RsIGd3OwogCXN0cnVjdCBpZm5ldCAqaWZwOwogCWludCB0eXBlOwor
CWludCBmaWJudW07CiAKIAlMTEVfV0xPQ0tfQVNTRVJUKGxsZSk7CiAKQEAgLTE5NCw4ICsxOTUs
OSBAQAogCXJ0aW5mby5ydGlfaW5mb1tSVEFYX0RTVF0gPSAoc3RydWN0IHNvY2thZGRyICopJmRz
dDsKIAlydGluZm8ucnRpX2luZm9bUlRBWF9HQVRFV0FZXSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikm
Z3c7CiAJcnRpbmZvLnJ0aV9hZGRycyA9IFJUQV9EU1QgfCBSVEFfR0FURVdBWTsKKwlmaWJudW0g
PSBWX3J0X2FkZF9hZGRyX2FsbGZpYnMgPyBSVF9BTExfRklCUyA6IGlmcC0+aWZfZmliOwogCXJ0
X21pc3Ntc2dfZmliKHR5cGUsICZydGluZm8sIFJURl9IT1NUIHwgUlRGX0xMREFUQSB8ICgKLQkg
ICAgdHlwZSA9PSBSVE1fQUREID8gUlRGX1VQOiAwKSwgMCwgUlRfREVGQVVMVF9GSUIpOworCSAg
ICB0eXBlID09IFJUTV9BREQgPyBSVEZfVVA6IDApLCAwLCBmaWJudW0pOwogfQogCiAvKgpAQCAt
MTIwMCw3ICsxMjAyLDcgQEAKIAogCWlmIChORF9JRklORk8oaWZwKS0+ZmxhZ3MgJiBORDZfSUZG
X0FDQ0VQVF9SVEFEVikgewogCQkvKiBSZWZyZXNoIGRlZmF1bHQgcm91dGVyIGxpc3QuICovCi0J
CWRlZnJvdXRlcl9zZWxlY3QoKTsKKwkJZGVmcm91dGVyX3NlbGVjdF9maWIoaWZwLT5pZl9maWIp
OwogCX0KIH0KIApAQCAtMTI1Myw3ICsxMjU1LDcgQEAKIG5kNl9pc19uZXdfYWRkcl9uZWlnaGJv
cihjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICphZGRyLCBzdHJ1Y3QgaWZuZXQgKmlmcCkKIHsK
IAlzdHJ1Y3QgbmRfcHJlZml4ICpwcjsKLQlzdHJ1Y3QgaWZhZGRyICpkc3RhZGRyOworCXN0cnVj
dCBpZmFkZHIgKmlmYTsKIAlzdHJ1Y3QgcnRfYWRkcmluZm8gaW5mbzsKIAlzdHJ1Y3Qgc29ja2Fk
ZHJfaW42IHJ0X2tleTsKIAljb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKmRzdDY7CkBAIC0xMjg3LDkg
KzEyODksNiBAQAogCWJ6ZXJvKCZpbmZvLCBzaXplb2YoaW5mbykpOwogCWluZm8ucnRpX2luZm9b
UlRBWF9EU1RdID0gKHN0cnVjdCBzb2NrYWRkciAqKSZydF9rZXk7CiAKLQkvKiBBbHdheXMgdXNl
IHRoZSBkZWZhdWx0IEZJQiBoZXJlLiBYWE1FIC0gd2h5PyAqLwotCWZpYm51bSA9IFJUX0RFRkFV
TFRfRklCOwotCiAJLyoKIAkgKiBJZiB0aGUgYWRkcmVzcyBtYXRjaGVzIG9uZSBvZiBvdXIgYWRk
cmVzc2VzLAogCSAqIGl0IHNob3VsZCBiZSBhIG5laWdoYm9yLgpAQCAtMTMwMywxOSArMTMwMiwz
MSBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKChwci0+bmRwcl9zdGF0ZWZsYWdzICYgTkRQUkZf
T05MSU5LKSA9PSAwKSB7Ci0JCQkvKiBBbHdheXMgdXNlIHRoZSBkZWZhdWx0IEZJQiBoZXJlLiAq
LwogCQkJZHN0NiA9IChjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKikmcHItPm5kcHJfcHJlZml4Owog
Ci0JCQlnZW5pZCA9IFZfbmQ2X2xpc3RfZ2VuaWQ7Ci0JCQlORDZfUlVOTE9DSygpOwotCi0JCQkv
KiBSZXN0b3JlIGxlbmd0aCBmaWVsZCBiZWZvcmUgcmV0cnlpbmcgbG9va3VwICovCi0JCQlydF9r
ZXkuc2luNl9sZW4gPSBzaXplb2YocnRfa2V5KTsKLQkJCWVycm9yID0gcmliX2xvb2t1cF9pbmZv
KGZpYm51bSwgZHN0NiwgMCwgMCwgJmluZm8pOworCQkJLyoKKwkJCSAqIFdlIG9ubHkgbmVlZCB0
byBjaGVjayBhbGwgRklCcyBpZiBhZGRfYWRkcl9hbGxmaWJzCisJCQkgKiBpcyB1bnNldC4gSWYg
c2V0LCBjaGVja2luZyBhbnkgRklCIHdpbGwgc3VmZmljZS4KKwkJCSAqLworCQkJZmlibnVtID0g
Vl9ydF9hZGRfYWRkcl9hbGxmaWJzID8gcnRfbnVtZmlicyAtIDEgOiAwOworCQkJZm9yICg7IGZp
Ym51bSA8IHJ0X251bWZpYnM7IGZpYm51bSsrKSB7CisJCQkJZ2VuaWQgPSBWX25kNl9saXN0X2dl
bmlkOworCQkJCU5ENl9SVU5MT0NLKCk7CiAKLQkJCU5ENl9STE9DSygpOwotCQkJaWYgKGdlbmlk
ICE9IFZfbmQ2X2xpc3RfZ2VuaWQpCi0JCQkJZ290byByZXN0YXJ0OworCQkJCS8qCisJCQkJICog
UmVzdG9yZSBsZW5ndGggZmllbGQgYmVmb3JlCisJCQkJICogcmV0cnlpbmcgbG9va3VwCisJCQkJ
ICovCisJCQkJcnRfa2V5LnNpbjZfbGVuID0gc2l6ZW9mKHJ0X2tleSk7CisJCQkJZXJyb3IgPSBy
aWJfbG9va3VwX2luZm8oZmlibnVtLCBkc3Q2LCAwLCAwLAorCQkJCQkJICAgICAgICAmaW5mbyk7
CisKKwkJCQlORDZfUkxPQ0soKTsKKwkJCQlpZiAoZ2VuaWQgIT0gVl9uZDZfbGlzdF9nZW5pZCkK
KwkJCQkJZ290byByZXN0YXJ0OworCQkJCWlmIChlcnJvciA9PSAwKQorCQkJCQlicmVhazsKKwkJ
CX0KIAkJCWlmIChlcnJvciAhPSAwKQogCQkJCWNvbnRpbnVlOwogCkBAIC0xMzQ2LDEzICsxMzU3
LDE4IEBACiAJICogSWYgdGhlIGFkZHJlc3MgaXMgYXNzaWduZWQgb24gdGhlIG5vZGUgb2YgdGhl
IG90aGVyIHNpZGUgb2YKIAkgKiBhIHAycCBpbnRlcmZhY2UsIHRoZSBhZGRyZXNzIHNob3VsZCBi
ZSBhIG5laWdoYm9yLgogCSAqLwotCWRzdGFkZHIgPSBpZmFfaWZ3aXRoZHN0YWRkcigoY29uc3Qg
c3RydWN0IHNvY2thZGRyICopYWRkciwgUlRfQUxMX0ZJQlMpOwotCWlmIChkc3RhZGRyICE9IE5V
TEwpIHsKLQkJaWYgKGRzdGFkZHItPmlmYV9pZnAgPT0gaWZwKSB7Ci0JCQlpZmFfZnJlZShkc3Rh
ZGRyKTsKLQkJCXJldHVybiAoMSk7CisJaWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfUE9JTlRPUE9J
TlQpIHsKKwkJSUZfQUREUl9STE9DSyhpZnApOworCQlUQUlMUV9GT1JFQUNIKGlmYSwgJmlmcC0+
aWZfYWRkcmhlYWQsIGlmYV9saW5rKSB7CisJCQlpZiAoaWZhLT5pZmFfYWRkci0+c2FfZmFtaWx5
ICE9IGFkZHItPnNpbjZfZmFtaWx5KQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGlmYS0+aWZhX2Rz
dGFkZHIgIT0gTlVMTCAmJgorCQkJICAgIHNhX2VxdWFsKGFkZHIsIGlmYS0+aWZhX2RzdGFkZHIp
KSB7CisJCQkJSUZfQUREUl9SVU5MT0NLKGlmcCk7CisJCQkJcmV0dXJuIDE7CisJCQl9CiAJCX0K
LQkJaWZhX2ZyZWUoZHN0YWRkcik7CisJCUlGX0FERFJfUlVOTE9DSyhpZnApOwogCX0KIAogCS8q
CkBAIC0xNDg1LDcgKzE1MDEsNyBAQAogCQkJLyoKIAkJCSAqIFdlIG5lZWQgdG8gdW5sb2NrIHRv
IGF2b2lkIGEgTE9SIHdpdGggcnQ2X2ZsdXNoKCkgd2l0aCB0aGUKIAkJCSAqIHJuaCBhbmQgZm9y
IHRoZSBjYWxscyB0byBwZnhsaXN0X29ubGlua19jaGVjaygpIGFuZAotCQkJICogZGVmcm91dGVy
X3NlbGVjdCgpIGluIHRoZSBibG9jayBmdXJ0aGVyIGRvd24gZm9yIGNhbGxzCisJCQkgKiBkZWZy
b3V0ZXJfc2VsZWN0X2ZpYigpIGluIHRoZSBibG9jayBmdXJ0aGVyIGRvd24gZm9yIGNhbGxzCiAJ
CQkgKiBpbnRvIG5kNl9sb29rdXAoKS4gIFdlIHN0aWxsIGhvbGQgYSByZWYuCiAJCQkgKi8KIAkJ
CUxMRV9XVU5MT0NLKGxuKTsKQEAgLTE1MDAsNyArMTUxNiw3IEBACiAKIAkJaWYgKGRyKSB7CiAJ
CQkvKgotCQkJICogU2luY2UgZGVmcm91dGVyX3NlbGVjdCgpIGRvZXMgbm90IGFmZmVjdCB0aGUK
KwkJCSAqIFNpbmNlIGRlZnJvdXRlcl9zZWxlY3RfZmliKCkgZG9lcyBub3QgYWZmZWN0IHRoZQog
CQkJICogb24tbGluayBkZXRlcm1pbmF0aW9uIGFuZCBNSVA2IG5lZWRzIHRoZSBjaGVjawogCQkJ
ICogYmVmb3JlIHRoZSBkZWZhdWx0IHJvdXRlciBzZWxlY3Rpb24sIHdlIHBlcmZvcm0KIAkJCSAq
IHRoZSBjaGVjayBub3cuCkBAIC0xNTEwLDcgKzE1MjYsNyBAQAogCQkJLyoKIAkJCSAqIFJlZnJl
c2ggZGVmYXVsdCByb3V0ZXIgbGlzdC4KIAkJCSAqLwotCQkJZGVmcm91dGVyX3NlbGVjdCgpOwor
CQkJZGVmcm91dGVyX3NlbGVjdF9maWIoZHItPmlmcC0+aWZfZmliKTsKIAkJfQogCiAJCS8qCkBA
IC0yMTA0LDIwICsyMTIwLDIwIEBACiAJICogUXVlc3Rpb246IGNhbiB3ZSByZXN0cmljdCB0aGUg
Zmlyc3QgY29uZGl0aW9uIHRvIHRoZSAiaXNfbmV3ZW50cnkiCiAJICogY2FzZT8KIAkgKiBYWFg6
IHdoZW4gd2UgaGVhciBhbiBSQSBmcm9tIGEgbmV3IHJvdXRlciB3aXRoIHRoZSBsaW5rLWxheWVy
Ci0JICogYWRkcmVzcyBvcHRpb24sIGRlZnJvdXRlcl9zZWxlY3QoKSBpcyBjYWxsZWQgdHdpY2Us
IHNpbmNlCisJICogYWRkcmVzcyBvcHRpb24sIGRlZnJvdXRlcl9zZWxlY3RfZmliKCkgaXMgY2Fs
bGVkIHR3aWNlLCBzaW5jZQogCSAqIGRlZnJ0cmxpc3RfdXBkYXRlIGNhbGxlZCB0aGUgZnVuY3Rp
b24gYXMgd2VsbC4gIEhvd2V2ZXIsIEkgYmVsaWV2ZQogCSAqIHdlIGNhbiBjb21wcm9taXNlIHRo
ZSBvdmVyaGVhZCwgc2luY2UgaXQgb25seSBoYXBwZW5zIHRoZSBmaXJzdAogCSAqIHRpbWUuCi0J
ICogWFhYOiBhbHRob3VnaCBkZWZyb3V0ZXJfc2VsZWN0KCkgc2hvdWxkIG5vdCBoYXZlIGEgYmFk
IGVmZmVjdAorCSAqIFhYWDogYWx0aG91Z2ggZGVmcm91dGVyX3NlbGVjdF9maWIoKSBzaG91bGQg
bm90IGhhdmUgYSBiYWQgZWZmZWN0CiAJICogZm9yIHRob3NlIGFyZSBub3QgYXV0b2NvbmZpZ3Vy
ZWQgaG9zdHMsIHdlIGV4cGxpY2l0bHkgYXZvaWQgc3VjaAogCSAqIGNhc2VzIGZvciBzYWZldHku
CiAJICovCiAJaWYgKChkb191cGRhdGUgfHwgaXNfbmV3ZW50cnkpICYmIHJvdXRlciAmJgogCSAg
ICBORF9JRklORk8oaWZwKS0+ZmxhZ3MgJiBORDZfSUZGX0FDQ0VQVF9SVEFEVikgewogCQkvKgog
CQkgKiBndWFyYW50ZWVkIHJlY3Vyc2lvbgogCQkgKi8KLQkJZGVmcm91dGVyX3NlbGVjdCgpOwor
CQlkZWZyb3V0ZXJfc2VsZWN0X2ZpYihpZnAtPmlmX2ZpYik7CiAJfQogfQogCmRpZmYgLS1naXQg
YS9oZWFkL3N5cy9uZXRpbmV0Ni9pbjZfc3JjLmMgYi9oZWFkL3N5cy9uZXRpbmV0Ni9pbjZfc3Jj
LmMKLS0tIGEvaGVhZC9zeXMvbmV0aW5ldDYvaW42X3NyYy5jCisrKyBiL2hlYWQvc3lzL25ldGlu
ZXQ2L2luNl9zcmMuYwpAQCAtMjk3LDcgKzI5Nyw3IEBACiAJICovCiAJLyogZ2V0IHRoZSBvdXRn
b2luZyBpbnRlcmZhY2UgKi8KIAlpZiAoKGVycm9yID0gaW42X3NlbGVjdGlmKGRzdHNvY2ssIG9w
dHMsIG1vcHRzLCAmaWZwLCBvaWZwLAotCSAgICAoaW5wICE9IE5VTEwpID8gaW5wLT5pbnBfaW5j
LmluY19maWJudW0gOiBSVF9ERUZBVUxUX0ZJQikpICE9IDApCisJICAgIChpbnAgIT0gTlVMTCkg
PyBpbnAtPmlucF9pbmMuaW5jX2ZpYm51bSA6IGZpYm51bSkpICE9IDApCiAJCXJldHVybiAoZXJy
b3IpOwogCiAjaWZkZWYgRElBR05PU1RJQwpAQCAtNTYzLDcgKzU2Myw3IEBACiAJdWludDMyX3Qg
ZmlibnVtOwogCWludCBlcnJvcjsKIAotCWZpYm51bSA9IChpbnAgIT0gTlVMTCkgPyBpbnAtPmlu
cF9pbmMuaW5jX2ZpYm51bSA6IFJUX0RFRkFVTFRfRklCOworCWZpYm51bSA9IGlucC0+aW5wX2lu
Yy5pbmNfZmlibnVtOwogCXJldGlmcCA9IE5VTEw7CiAKIAllcnJvciA9IGluNl9zZWxlY3RzcmMo
ZmlibnVtLCBkc3Rzb2NrLCBvcHRzLCBpbnAsIGNyZWQsICZyZXRpZnAsIHNyY3ApOwpkaWZmIC0t
Z2l0IGEvaGVhZC9zeXMvbmV0aW5ldDYvaW42LmMgYi9oZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYwot
LS0gYS9oZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYworKysgYi9oZWFkL3N5cy9uZXRpbmV0Ni9pbjYu
YwpAQCAtMTU5LDYgKzE1OSw3IEBACiAJc3RydWN0IHNvY2thZGRyX2RsIGdhdGV3YXk7CiAJc3Ry
dWN0IHNvY2thZGRyX2luNiBtYXNrLCBhZGRyOwogCXN0cnVjdCBydGVudHJ5IHJ0OworCWludCBm
aWJudW07CiAKIAkvKgogCSAqIGluaXRpYWxpemUgZm9yIHJ0bXNnIGdlbmVyYXRpb24KQEAgLTE3
Niw4ICsxNzcsOSBAQAogCXJ0LnJ0X2ZsYWdzID0gUlRGX0hPU1QgfCBSVEZfU1RBVElDOwogCWlm
IChjbWQgPT0gUlRNX0FERCkKIAkJcnQucnRfZmxhZ3MgfD0gUlRGX1VQOwotCS8qIEFubm91bmNl
IGFycml2YWwgb2YgbG9jYWwgYWRkcmVzcyB0byBhbGwgRklCcy4gKi8KLQlydF9uZXdhZGRybXNn
KGNtZCwgJmlhLT5pYV9pZmEsIDAsICZydCk7CisJZmlibnVtID0gVl9ydF9hZGRfYWRkcl9hbGxm
aWJzID8gUlRfQUxMX0ZJQlMgOiBpYTYyaWZhKGlhKS0+aWZhX2lmcC0+aWZfZmliOworCS8qIEFu
bm91bmNlIGFycml2YWwgb2YgbG9jYWwgYWRkcmVzcyB0byB0aGlzIEZJQi4gKi8KKwlydF9uZXdh
ZGRybXNnX2ZpYihjbWQsICZpYS0+aWFfaWZhLCAwLCAmcnQsIGZpYm51bSk7CiB9CiAKIGludApA
QCAtMjExNywxNSArMjExOSwxNSBAQAogCXVpbnQzMl90IHNjb3BlaWQ7CiAJaW50IGVycm9yOwog
CWNoYXIgaXA2YnVmW0lORVQ2X0FERFJTVFJMRU5dOworCWludCBmaWJudW07CiAKIAlLQVNTRVJU
KGwzYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQ2LAogCSAgICAoInNpbl9mYW1pbHkgJWQiLCBs
M2FkZHItPnNhX2ZhbWlseSkpOwogCi0JLyogT3VyIGxvY2FsIGFkZHJlc3NlcyBhcmUgYWx3YXlz
IG9ubHkgaW5zdGFsbGVkIG9uIHRoZSBkZWZhdWx0IEZJQi4gKi8KLQogCXNpbjYgPSAoY29uc3Qg
c3RydWN0IHNvY2thZGRyX2luNiAqKWwzYWRkcjsKIAlpbjZfc3BsaXRzY29wZSgmc2luNi0+c2lu
Nl9hZGRyLCAmZHN0LCAmc2NvcGVpZCk7Ci0JZXJyb3IgPSBmaWI2X2xvb2t1cF9uaF9iYXNpYyhS
VF9ERUZBVUxUX0ZJQiwgJmRzdCwgc2NvcGVpZCwgMCwgMCwgJm5oNik7CisJZmlibnVtID0gVl9y
dF9hZGRfYWRkcl9hbGxmaWJzID8gUlRfREVGQVVMVF9GSUIgOiBpZnAtPmlmX2ZpYjsKKwllcnJv
ciA9IGZpYjZfbG9va3VwX25oX2Jhc2ljKGZpYm51bSwgJmRzdCwgc2NvcGVpZCwgMCwgMCwgJm5o
Nik7CiAJaWYgKGVycm9yICE9IDAgfHwgKG5oNi5uaF9mbGFncyAmIE5IRl9HQVRFV0FZKSB8fCBu
aDYubmhfaWZwICE9IGlmcCkgewogCQlzdHJ1Y3QgaWZhZGRyICppZmE7CiAJCS8qCmRpZmYgLS1n
aXQgYS9oZWFkL3N5cy9uZXRpbmV0Ni9pY21wNi5jIGIvaGVhZC9zeXMvbmV0aW5ldDYvaWNtcDYu
YwotLS0gYS9oZWFkL3N5cy9uZXRpbmV0Ni9pY21wNi5jCisrKyBiL2hlYWQvc3lzL25ldGluZXQ2
L2ljbXA2LmMKQEAgLTIxNDcsNyArMjE0Nyw3IEBACiAJCSAqIHNvdXJjZSBhZGRyZXNzIG9mIHRo
ZSBlcnJvbmVvdXMgcGFja2V0LgogCQkgKi8KIAkJaW42X3NwbGl0c2NvcGUoJmlwNi0+aXA2X3Ny
YywgJmRzdDYsICZzY29wZWlkKTsKLQkJZXJyb3IgPSBpbjZfc2VsZWN0c3JjX2FkZHIoUlRfREVG
QVVMVF9GSUIsICZkc3Q2LAorCQllcnJvciA9IGluNl9zZWxlY3RzcmNfYWRkcihNX0dFVEZJQiht
KSwgJmRzdDYsCiAJCSAgICBzY29wZWlkLCBOVUxMLCAmc3JjNiwgJmhsaW0pOwogCiAJCWlmIChl
cnJvcikgewpAQCAtMjI4OSw3ICsyMjg5LDcgQEAKIAl1aW50MzJfdCBzY29wZWlkOwogCiAJaW42
X3NwbGl0c2NvcGUoJnJlZGRzdDYsICZrZHN0LCAmc2NvcGVpZCk7Ci0JaWYgKGZpYjZfbG9va3Vw
X25oX2Jhc2ljKFJUX0RFRkFVTFRfRklCLCAma2RzdCwgc2NvcGVpZCwgMCwgMCwmbmg2KT09MCl7
CisJaWYgKGZpYjZfbG9va3VwX25oX2Jhc2ljKGlmcC0+aWZfZmliLCAma2RzdCwgc2NvcGVpZCwg
MCwgMCwmbmg2KT09MCl7CiAJCWlmICgobmg2Lm5oX2ZsYWdzICYgTkhGX0dBVEVXQVkpID09IDAp
IHsKIAkJCW5kNmxvZygoTE9HX0VSUiwKIAkJCSAgICAiSUNNUDYgcmVkaXJlY3QgcmVqZWN0ZWQ7
IG5vIHJvdXRlICIKCg==


--b1_fb72446cf287def9e9cac5f8e88fc51b--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fb72446cf287def9e9cac5f8e88fc51b>